JOPtionPane.showOptionDialog solto na tela o que fazer?
4 respostas
E
elrodrigalves
Amigos… estou com um problema e já faz tres dias que não consigo resolver. Criei uma Jframe como tela principal,e adicionei um menu. Na opcao sair do menu, coloquei um JopPane.shwouDialog confirmando “Sim” ou “Não”, mas esse componente pode ser arrastado pra fora da tela principal como resolver esse problema? Por favor me ajude quem puder.
Veja o codigo:
jmiAbandonar=newJMenuItem("Abandonar Sistema");jmiAbandonar.setMnemonic('A');jmSair.add(jmiAbandonar);jmiAbandonar.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){Object[]options={"Sim","Não"};intn=JOptionPane.showOptionDialog(null,"Deseja encerrar o programa","Confirmação",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,options,options[0]);if(n==0)System.exit(0);}});
O problema é que vc não está definindo quem é o “pai” do seu JOptionPane. Vc passou “null” para o método showOptionDialog. Tente passar uma referência para o seu JFrame.
Abraço!
M
meio-desligado
você está passando null como argumento de
JOptionPane.showOptionDialog
Tire o null e coloque referencia para a janela (JFrame) da aplicação
quando o usuário clicar fora do diálogo ele toma um choque elétrico
E
elrodrigalves
Desculpe a minha ignorancia, mas não entendi.
eu comeco o codigo assim:
importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassPrincipalextendsJFrame{// Variavel da barra de menuprivateJMenuBarjmbBarra;// Variáveis do Menu PrincipalprivateJMenujmFiladeespera;privateJMenujmEstacionamento;privateJMenujmAla;privateJMenujmAdministracao;privateJMenujmSobre;privateJMenujmSair;// Variáveis dos sub itens do menuprivateJMenuItemjmiInserirveiculo;privateJMenuItemjmiDesistir;privateJMenuItemjmiImprimirfila;privateJMenuItemjmiTotalizarfila;privateJMenuItemjmiEstacionar;privateJMenuItemjmiRemover;privateJMenuItemjmiTotalizarestacionamento;privateJMenuItemjmiImprimirala;privateJMenuItemjmiTotalizarala;privateJMenuItemjmiUsuario;privateJMenuItemjmiComponente;privateJMenuItemjmiTarifa;privateJMenuItemjmiAbrircaixa;privateJMenuItemjmiFecharcaixa;privateJMenuItemjmiBackup;privateJMenuItemjmiRestore;privateJMenuItemjmiAluno;privateJMenuItemjmiAbandonar;// componentes da Janela PrincipalprivateJDesktopPanetelaPrincipal;publicPrincipal(){super(" Projeto Interdisciplinar Horizontal 2006/2");telaPrincipal=newJDesktopPane();getContentPane().add(telaPrincipal);// Cria os componentes da Janela// Menu Fila de Espera ------------------------------------------jmFiladeespera=newJMenu("Fila de Espera");jmFiladeespera.setMnemonic('F');// Sub-menu ----------------------------------------------------jmiInserirveiculo=newJMenuItem("Inserir Veículo");jmiInserirveiculo.setMnemonic('I');jmFiladeespera.add(jmiInserirveiculo);jmiDesistir=newJMenuItem("Desistir");jmiDesistir.setMnemonic('I');jmFiladeespera.add(jmiDesistir);jmiImprimirfila=newJMenuItem("Imprimir ");jmiImprimirfila.setMnemonic('I');jmFiladeespera.add(jmiImprimirfila);jmiTotalizarfila=newJMenuItem("Totalizar a fila");jmiTotalizarfila.setMnemonic('I');jmFiladeespera.add(jmiTotalizarfila);// Execucao da opcao do submenujmiInserirveiculo.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){JInternalFrameframe=newJInternalFrame("teste",true,true,true,true);Containercontainer=frame.getContentPane();frame.pack();telaPrincipal.add(frame);frame.setBounds(170,150,700,500);frame.setResizable(false);frame.setIconifiable(false);frame.setVisible(true);}});// Sub-menu - Abandonar ----------------------------------------jmiAbandonar=newJMenuItem("Abandonar Sistema");jmiAbandonar.setMnemonic('A');jmSair.add(jmiAbandonar);jmiAbandonar.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEventevent){Object[]options={"Sim","Não"};intn=JOptionPane.showOptionDialog(telaPrincipal,"Deseja encerrar o programa","Confirmação",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE,null,options,options[0]);if(n==0)System.exit(0);}});
Eu fiz dessa forma mas ainda não funcionou, o que está errado?
Outra coisa: na opcao do MenuItem jmiInserirveiculo como faço para abrir o frame maximizado?