PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : GUI geht nur auf WIndows?



tr0nix
08.05.2007, 20:22
Moin zusammen

Ich habe ein kleines Problem. Folgender Code gibt unter Windows ein Fenster mit einem Textfeld und Label, wobei das Label den Wert des Textfeldes annimmt wenn Enter gedrückt wird. Unter Linux kompiliert alles sauber, gibt jedoch ein leeres Fenster.

Any hints?


import javax.swing.*; import java.awt.*;
import java.awt.event.*;

public class TextEvent extends JFrame implements ActionListener {
JLabel output;
TextEvent() {
JTextField text = new JTextField();
output = new JLabel();
text.addActionListener(this);
add(text, BorderLayout.NORTH);
add(output, BorderLayout.SOUTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

public void actionPerformed(ActionEvent e) {
output.setText("Eingabe: " + e.getActionCommand());
}

public static void main(String argv[]) {
TextEvent te = new TextEvent();
te.setBounds(200, 200, 100, 120);
te.setVisible(true);
}
}
.
.
.
EDIT (autom. Beitragszusammenführung) :
.
Ok habs rausgekriegt.. zuunterst im Konstruktor noch pack(); aufrufen..

darktrym
08.05.2007, 20:43
Ich hab den Code unter Linux getestet. Er funktioniert genauso wie unter Windows XP.

Auf beiden System ist Java 6 drauf.

Hello World
09.05.2007, 00:29
Benutzt Du beryl, compiz oder ähnliches Gedöns? Java bzw. Swing hat da einen Bug, der dafür sorgt, dass das nicht korrekt miteinander funktioniert, das pack() ist eigentlich unnötig. Ein Workaround ist es, ein anderes AWT-Toolkit einzustellen, z. B. mit export AWT_TOOLKIT=MToolkit (oder man trägt die Zeile AWT_TOOLKIT=MToolkit in /etc/environment ein und loggt sich neu ein).

tr0nix
09.05.2007, 09:47
Ok danke, probiere ich zuhause mal aus. Weil irgendwie hat es nach dem pack() schon funktioniert, aber ComboBoxen sind total buggy - ich kann immer nur die ersten 3 Einträge auswählen, sehe zwar die anderen und kann sie anklicken, aber der Wert wird nicht übernommen.

Gebe heute Abend nochmals Feedback :)

Gruess & Danke
Joel

tr0nix
11.05.2007, 17:20
Ok hat sich geklärt, ich hab scheinbar 2 JREs installiert gehabt, die eine davon frissts, die andere nicht :). Falls jemand Details will kann ichs nachschauen, sonst lass ich's mal so sein und bin froh, dass es funktioniert.