XHotSniperX
Lt. Junior Grade
- Registriert
- Jan. 2008
- Beiträge
- 474
Hallöschen 
ich möchte ein Fenster machen, wo es Buttons gibt und wenn einer geklickt wird, dann soll einfach der Inhalt des Fensters sich ändern. Quasi ein neues JPanel drauf und das alte löschen. Leider friert der Knopf ein und bleibt stecken...
Habe gelesen, dass invokeLater helfen soll mit neuem Runnable und so weiter. Bringt aber nichts. Warum friert es bei mir immer ein?
Ich würde gerne wissen, wie man das macht und wie man durch den Buttonklick Methoden anderer Klassen ausführt, ohne, dass es einfriert. Danke
Hier mal ein Beispiel, wo ich den Inhalt des Fensters einfach entfernen möchte:
achso repaint() hat nach validate() gefehlt xD
ich möchte ein Fenster machen, wo es Buttons gibt und wenn einer geklickt wird, dann soll einfach der Inhalt des Fensters sich ändern. Quasi ein neues JPanel drauf und das alte löschen. Leider friert der Knopf ein und bleibt stecken...
Habe gelesen, dass invokeLater helfen soll mit neuem Runnable und so weiter. Bringt aber nichts. Warum friert es bei mir immer ein?
Ich würde gerne wissen, wie man das macht und wie man durch den Buttonklick Methoden anderer Klassen ausführt, ohne, dass es einfriert. Danke
Hier mal ein Beispiel, wo ich den Inhalt des Fensters einfach entfernen möchte:
Code:
import ...
public class Test extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Test frame = new Test();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Test() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
JButton btnNewButton = new JButton("New button");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
SwingUtilities.invokeLater(
new Runnable(){
public void run(){
getContentPane().removeAll();
validate();
}
}
);
}
});
contentPane.add(btnNewButton, BorderLayout.WEST);
}
}
Ergänzung ()
achso repaint() hat nach validate() gefehlt xD