Veröffentlicht 17. Februar 201114 j Hallo, ich habe mir ein kleines Programm geschrieben: import javax.swing.*; import java.awt.*; import java.awt.event.*; class action extends JFrame{ private static final long serialVersionUID =-1113582265865921787L; JButton weiter,abbruch; JTextField x1,x2,x3,x4,x5,x6; class MeinActionLauscher implements ActionListener{ public void actionPerformed(ActionEvent e){ x1.setText("Hallo"); } } action(String titel) { super(titel); weiter = new JButton("Weiter"); abbruch = new JButton("Abbruch"); x1 = new JTextField("",15); x2 = new JTextField("",15); x3 = new JTextField("",15); x4 = new JTextField("",15); x5 = new JTextField("",15); x6 = new JTextField("",15); setLayout(new FlowLayout()); add(x1); add(x2); add(x3); add(x4); add(x5); add(x6); add(weiter); add(abbruch); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); weiter.addActionListener(new MeinActionLauscher()); } } public class Main{ public static void main(String[] args){ action fenster = new action("Titel"); fenster.pack(); fenster.setSize(500,200); fenster.setVisible(true); } } Leider hängt sich die GUI bei dem Buttondruck auf. Weiß jemand warum die GUI sich aufhängt?(Habe Linux Debian) mfg Asgar13
21. Februar 201114 j Hallo, unter Windows 7 32-Bit mit Netbeans und Java 6.23 bekomme ich keinen Fehler, die GUI arbeitet einwandfrei. Dürfte also an einer veralteten/buggy Java-Version für Debian liegen (falls du auch das "originale" Java benutzt und nicht etwa gcj).
21. Februar 201114 j Danke für die Antworten^^ Ich habe jetzt ein catch in den ActionLauscher eingebaut(import auch) und der gibt mir keine Fehlermeldung class MeinActionLauscher implements ActionListener{ public void actionPerformed(ActionEvent e){ try{ String aCmdStr ="sh /home/name mk.sh"; Runtime.getRuntime().exec(aCmdStr).waitFor(); Runtime.getRuntime().exec(new String[]{"/bin/sh", "-c", "ls -la"}); x1.setText("Funktioniert"); } catch(IOException ioexp){ x1.setText("Fehler beim ausführen der Datei..."); } catch(InterruptedException iexp){ x2.setText("Fehler beim ausführen der Datei..."); } } } Leider compiliere ich dies schon über gcj. name@mytux:~/Desktop$ name@mytux:~/Desktop$ gcj --main=Main -o test Main.java name@mytux:~/Desktop$ ./test Getötet name@mytux:~/Desktop$ Habt Ihr weitere Vorschläge?
21. Februar 201114 j Nimm mal den Exception Catch mit auf. Wenn dieser auch schon fehlschlägt, kann dies wirklich nur an der Konstellation mit deiner gewählten Distribution liegen.
23. Februar 201114 j catch(Exception exp){ x3.setText("Fehler beim ausführen der Datei..."); } Habe ich jetzt gemacht. Funktioniert immer noch nicht. Heißt wohl sich über Distributionen informieren. Wenn ich den Fehler gefunden habe poste ich ihn hier rein.
23. Februar 201114 j name@mytux:~$ uname -a Linux mytux 2.6.26-2-686 #1 SMP Thu Nov 25 01:53:57 UTC 2010 i686 GNU/Linux name@mytux:~$ cat /etc/issue Debian GNU/Linux 5.0 \n \l Soweit meine Distributionen. Ich habe das Programm dann auf einen anderen Linux Debian Rechner(gleiche Software andere Hardware) getestet und da bricht er bei einem Mouseklick ab. Dann suche ich mal weiter^^
23. Februar 201114 j Hallo, würde nicht tippen dass es an der Hardware liegt. BTW: Debbug mit setText halte ich für schlecht, mach lieber nen Druck des Stacktrace , daran könnte es auch noch liegen.
24. Februar 201114 j Ok, ich habe eine GUI mit java SWT hinbekommen und diese läuft auch, bleibt nur noch die Frage, wieso swing nicht funktioniert? Danke nochmal für die Hilfe
25. Februar 201114 j Bei mir unter Ubuntu läuft Dein Programm auch einwandfrei. Nutzt Du das Open JDK oder das von Sun?
6. März 201114 j Nimm das von Sun. Open JDK macht durchaus manchmal Probleme, die schlecht nachzuvollziehen sind.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.