JOptionPane.showConfirmDialog

PessoALL, boa tarde!

resposta = JOptionPane.showConfirmDialog( null,"Confirma a exclusão", "Exclusão",JOptionPane.YES_NO_OPTION);

Como eu faço pra aparecer em portugues a pergunta “YES, NO”?

Desde já agradeço.

1 curtida
Object[] options = { "Confirmar", "Cancelar" };
JOptionPane.showOptionDialog(null, "Clique Confirmar para continuar", "Informação", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]);

Usa o showOptionDialog… blz?

1 curtida

blz javateco, mas eu quero colocar aquele simbolo de interrogação que tem showConfirmDialog, tem a possibilidade?

Marcos

[quote=“MarcosNunes”]blz javateco, mas eu quero colocar aquele simbolo de interrogação que tem showConfirmDialog, tem a possibilidade?

Marcos[/quote]

É só vc colocar QUESTION_MESSAGE no lugar do WARNING_MESSAGE

:wink:

aproveitando o tópico, sou inciante em java, nesse código aí, no caso, a variável resposta receberia o que?

true? false? ou o q? entendem minha duvida?

como que eh feita esse tipo de manipulaçao dos botoes? quando o cara clicar em confirmar, vai retornar o que à resposta? e se clicar em cancel?

obrigado!

Tudo bem?

Entendi sim… o que vai acontecer é o seguinte. Por exemplo:

Object[] options = { "Confirmar", "Cancelar" }; 

Quando vc passa as opções (conforma acima) e clicar em Confirmar, o JOptionPane irá retorna a posição do “Confirmar” no array, que neste caso é 0 e 1 para Cancelar… caso vc clique no x, é retornado -1. Desta forma tem como vc verificar qual botão foi clicado…

blz :?:

hummm valeu!! entendi…

então, tipo, se eu quiser q enquanto o cara não clicar em “Não” ele fique executando o programa, eu faria:

[code]
import javax.swing.JOptionPane;
public class E4 {

public static void main(String[] args) {

             declarações;

             while (options == 0) {

                       comandos;
                       Object[] options = { "Sim", "Não" }; 
           JOptionPane.showOptionDialog(null, "Rodar o programa de novo?", "De novo?", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]);

              }

}
}[/code]???
axo q não, testei e nao deu certo, erro:
Duplicate local variable options (sublinhando “options” em Object [b]options…)
The type of the expression must be an array type but it resolved to int (sublinhando “options[0]” no fim do JOptionPane…

q parte q eu to fazendo asneira? :?

acho q pode ser isso:

vc tem q iniciar a variavel options antes do while pois vc ta usando ela na condição do while…

ao meu ver ficaria assim… (deve ter um outro jeito) mas cheguei a isso

[code]import javax.swing.JOptionPane;
public class E4 {

public static void main(String[] args) {

             declarações; 
             
            Object[] options = { "Sim", "Não" }; 
          int opcao = JOptionPane.showOptionDialog(null, "Rodar o programa de novo?", "De novo?", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]); 


             while (opcao == 0 || opcao == -1) { 

                       comandos; 
          opcao = JOptionPane.showOptionDialog(null, "Rodar o programa de novo?", "De novo?", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]); 

              } 

}
}[/code]

OBs: naum testei… vou testar mais tarde,… e vejo isso…

mas aí assim, ele já iniciaria o programa perguntando se deseja executar o programa de novo, né? aí fica “esteticamente feio”…

como vc fazem esse negoço pro cara, se quiser rodar o prog. de novo? eh assim mesmo? ou o q?

mto obrigado

Faça um do/while:

int opcao=0;
do{
    .Aqui você coloca o seu programa
    .
    .
 op=Integer.parseInt(JOptionPane.showInputDialog("Deseja continuar?Digite 1 para sair "));
}while(op!=1);

é só vc mudar uma linha ai,… q ele naum pergunta no começo…

[code]import javax.swing.JOptionPane;
public class E4 {

public static void main(String[] args) {

            Object[] options = { "Sim", "Não" }; 

          int opcao = 0;
           while (opcao == 0 || opcao == -1) { 

          opcao = JOptionPane.showOptionDialog(null, "Rodar o programa de novo?", "De novo?", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]); 

              } 

}
}[/code]

como eu disse… deve ter um jeito diferente… mas desse jeito funciona… eu naum sei o q seu programa vai fazer… naum tenho como lhe dar a melhor solução…

Depois do do-while,
coloque um

if(op==1)System.exit(0);

Bem Lembrado RenanCCP… senaum o processo vai fica aberto… hehehe

[quote=“RenanCCP”]Faça um do/while:

int opcao=0; do{ .Aqui você coloca o seu programa . . op=Integer.parseInt(JOptionPane.showInputDialog("Deseja continuar?Digite 1 para sair ")); }while(op!=1); [/quote] Não quero que o usuário “digite”, saca? tenho q fazer bunitinho, via JOptionPane…

=============

[quote]
é só vc mudar uma linha ai,… q ele naum pergunta no começo…[/quote]mudei e ficou a mesma coisa, cara! os mesmos erros… ai funcionou? pq sera q aqui tah dano pau?

Esse do RenanCPP eu naum testei…

mas o q eu fiz… tava funcionando normal

ah eh! realment! nao tinha visto que vc tinha trocado pela variável opcao era isso! blzinha! valeu galera!!!

[quote=MarcosNunesPJ]PessoALL, boa tarde!

resposta = JOptionPane.showConfirmDialog( null,"Confirma a exclusão", "Exclusão",JOptionPane.YES_NO_OPTION);

Como eu faço pra aparecer em portugues a pergunta “YES, NO”?

Desde já agradeço.[/quote]

Object[] options = { "+", "-","x", ":"};  
    int opcao2 = JOptionPane.showOptionDialog(null, "Clique na operação a qual deseja realizar:", "Operação", JOptionPane.DEFAULT_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]);
       if(opcao2 == 0)
       {
           JOptionPane.showMessageDialog(null, "+");
       }else if(opcao2 == 1)
       {
           JOptionPane.showMessageDialog(null, "-");
       }
       else if(opcao2 == 2)
       {
           JOptionPane.showMessageDialog(null, "X");
         
       }else if(opcao2 == 3)
       {
           JOptionPane.showMessageDialog(null, ":");
       }