2011-01-04 8 views
2

Ich habe diesen Code, der ohne Fehler ausgeführt wird, aber es läuft nicht so, wie ich es geplant habe. Ich versuche herauszufinden, warum meine Schaltfläche "Weiter" nicht angezeigt wird, wenn ich auf die Schaltfläche "wichtig !!" klicke.JDialog modales Problem Java GUI

Die einzige Sache, die angezeigt wird, ist ein leeres Popup-Fenster, das Teil des Codes JDialog ist und es auf modal und sichtbar gesetzt. Ich kann es einfach nicht herausfinden. Wenn mir jemand helfen kann, würde ich das sehr schätzen.

JPanel hehePanel = new JPanel(new FlowLayout(FlowLayout.RIGHT,10,20)); 
JDialog dialog = new JDialog((JFrame)null); 
dialog.getContentPane().add(hehePanel,BorderLayout.CENTER); 
JButton hButton = new JButton("important!!"); 
JButton fButton = new JButton(" on construction !!"); 
JButton exitButton = new JButton("EXIT CAW "); 
hehePanel.add(hButton); 
hButton.addActionListener(new ActionListener() { 
    public void actionPerformed(ActionEvent e) { 
     final JPanel hehePanel = new JPanel(); 
     final JDialog dialog = new JDialog(); 
     dialog.getContentPane().add(hehePanel,BorderLayout.PAGE_END); 
     dialog.toFront(); 
     dialog.setModal(true); 
     dialog.pack(); 
     dialog.setLocationRelativeTo(null); 
     dialog.setVisible(true); 
     JButton closebutton = new JButton("Continue"); 
     closebutton.setActionCommand("continue"); 
     closebutton.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent evt) { 
       if (evt.getActionCommand().equals("continue")) { 
        dialog.dispose(); 
       } 
      } 
     }); 
     hehePanel.add(closebutton); 
    } 
}); 

hehePanel.add(fButton); 
hehePanel.add(exitButton); 

Antwort

5

benötigen Sie den Dialog sichtbar in den Dialog vor machen alle Komponenten hinzuzufügen, und bevor Sie pack() den Dialog.

Der gesamte Code nachdialog.setVisible(true) wird nicht ausgeführt, bis der Dialog geschlossen wird.

+1

danke sehr viel mann ich schätze sehr! – thegamer