Veröffentlicht 15. Mai 200322 j Hallo Leutz, hab ma wieder ne Frage: Un zwar hab ich einen JButton, der mit nem ActionListener z.B eine Hälfte einer SplitPane sichtbar macht. Wenn ich ein weiteres Mal auf den Button drücke, soll die Hälfte wieder verschwinden. Also hab ich mir das so gedacht: jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { jButton1_actionPerformed(e); } }); ...und dann... void jButton1_actionPerformed(ActionEvent e) { if(bottomPane.isVisible() == false) { bottomPane.setVisible(true); } else { bottomPane.setVisible(false); } So, sieht einfach aus, ist es eigentlich auch. Ich kann mir nur nicht erklären, warum das ganze nur einmal funktioniert. Also drücke Button --> SplitPane da --> drücke Button --> SplitPane weg --> drücke Button --> nix tut sich mehr. Kann mir jemand helfen? Danke.
15. Mai 200322 j Hi! Also auf Anhieb seh ich da keinen Fehler oder dergleichen.. Aber poste doch mal deinen kompletten Quellcode, vielleicht finden wir ja dann die Lösung deines Problems! Ist außerdem einfacher zu testen! (Copy,Paste&Compile! :D:D) Gruß Azrael
16. Mai 200322 j Es geht noch ein kleines bisschen einfacher (deine if-Abfrage). void jButton1_actionPerformed(ActionEvent e) { bottomPane.setVisible( !bottomPane.isVisible() ); }
16. Mai 200322 j Danke, hat aber auch nix gebracht. Den ganzen Source kann/darf ich leider nicht posten. Vielleicht gehts ja gar nicht mit ActionPerformed sondern mit ItemStateChange oder PropertyChange oder stateChanged? Hm, muß mal nach nem anderen Lösungsweg suchen.
16. Mai 200322 j Also, leg ich das ganze auf ne JTable statt JSplitPane, gehts einwandfrei. Das liegt folglich an der SplitPane. Nunja, da werd ich mal in den Bugreports suchen.
16. Mai 200322 j Hier die Lösung: void jButton1_actionPerformed(ActionEvent e) { if(bottomPane.isVisible()) bottomPane.setVisible(false); else { bottomPane.setVisible(true); } jSplitPane1.updateUI(); } jSplitPane1.updateUI() --- durch Zufall drauf gestoßen. Hab mir ja gedacht, dass es einfach sein muß. Bis denne....
17. Mai 200322 j Anstatt: Original geschrieben von GeneralChang void jButton1_actionPerformed(ActionEvent e) { if(bottomPane.isVisible()) bottomPane.setVisible(false); else { bottomPane.setVisible(true); } jSplitPane1.updateUI(); } einfach void jButton1_actionPerformed(ActionEvent e) { bottomPane.setVisible( !bottomPane.isVisible() ); jSplitPane1.updateUI(); } ! Ist wesentlich schöner und vor allem ohne "if"!!
19. Mai 200322 j Mach dir doch einfach mal ein paar System.out.println´s in deine if-Blocks, ob du überhaupt in die entsprechenden Blöcke kommst. Snowghost
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.