JOptionPane.showConfirmDialog

16 respostas
M

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.

16 Respostas

J
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?

M

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

Marcos

J

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

Marcos

É só vc colocar QUESTION_MESSAGE no lugar do WARNING_MESSAGE

:wink:

M

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!

J

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 :?:

M

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:

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]);

                  }
} 
}
???????? 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? :?

I

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
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]); 

                  } 
} 
}

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

M

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

R

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);
I

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

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]); 

                  } 
} 
}

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...

R

Depois do do-while,
coloque um

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

I

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

M

“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);

Não quero que o usuário “digite”, saca? tenho q fazer bunitinho, via JOptionPane…

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


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

I

Esse do RenanCPP eu naum testei…

mas o q eu fiz… tava funcionando normal

M

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

J

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.

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, ":");
       }
Criado 11 de maio de 2004
Ultima resposta 13 de fev. de 2014
Respostas 16
Participantes 6