Hallo,
Das hier ist mein erstes GUI Projekt.
Ich habe eine (statisch genutzte) GUI-Klasse mit einer statischen Methode die von einer
anderen Klasse in ihrer main-Methode aufgerufen wird.
Die Klasse enthällt die GUI-Komponenten als statische Attribute und eine innere Klasse
die ActionListener implementiert.
Von diesem ActionListener erzeuge ich im Konstruktor zusammen mit den GUI-Komponenten ein Objekt.
Das Listener-Objekt übergebe ich per add... an mehrere Buttons.
Es führt abhängig vom ActionCommand der Buttonevents per switch-Anweisung unterschiedliche Befehle aus.
In einem Befehl wird ein neuer JLabel erzeugt und dem Fenster hinzugefügt.
Ein ActionEvent soll eine Schrift im Fenster erzeugen was erst nach 10-30 Sekunden passiert und oft nur dann überhaupt erscheint wenn man das Fenster minimiert und dann wieder maximiert.
Woran mag es liegen ? Vielleicht wird der Code in einem nicht geeigneten Thread ausgeführt oder liegt es wirklich an der Art der Implementierung...
Andere Klasse
Das hier ist mein erstes GUI Projekt.
Ich habe eine (statisch genutzte) GUI-Klasse mit einer statischen Methode die von einer
anderen Klasse in ihrer main-Methode aufgerufen wird.
Die Klasse enthällt die GUI-Komponenten als statische Attribute und eine innere Klasse
die ActionListener implementiert.
Von diesem ActionListener erzeuge ich im Konstruktor zusammen mit den GUI-Komponenten ein Objekt.
Das Listener-Objekt übergebe ich per add... an mehrere Buttons.
Es führt abhängig vom ActionCommand der Buttonevents per switch-Anweisung unterschiedliche Befehle aus.
In einem Befehl wird ein neuer JLabel erzeugt und dem Fenster hinzugefügt.
Ein ActionEvent soll eine Schrift im Fenster erzeugen was erst nach 10-30 Sekunden passiert und oft nur dann überhaupt erscheint wenn man das Fenster minimiert und dann wieder maximiert.
Woran mag es liegen ? Vielleicht wird der Code in einem nicht geeigneten Thread ausgeführt oder liegt es wirklich an der Art der Implementierung...
Java:
public class KundeUI
{
//import Anweisungen sind hier weggelassen
public static JButton button;
public static JLabel script;
public static JFrame First;
//---------------------------------------------------------------
private static class Watcher implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
String s = e.getActionCommand();
System.out.println(s);
switch(s)
{
case "one": KundeUI.button.setText("gut");
break;
case "sec": KundeUI.script = new JLabel("success");
script.setBounds(100, 100,100,100);
First.getContentPane().add(script);
break;
default: KundeUI.button.setEnabled(false);
}
}
}
public static void token() {
Watcher w = new Watcher();
First = new JFrame();
First.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
First.setSize(800, 600);
First.setVisible(true);
First.setLocationRelativeTo(null);
First.setLayout(null);
First.setTitle("First");
JLabel test = new JLabel("Erster Text");
First.getContentPane().add(test);
test.setBounds(100, 100, 100, 200);
JButton second = new JButton("TEST");
second.setBounds(600, 100, 60, 30);
second.setActionCommand("sec");
second.addActionListener(w);
First.add(second);
JButton one = new JButton("one");
one.setBounds(10,10,80,150);
one.addActionListener(w);
one.setActionCommand("one");
JTextField main = new JTextField();
main.setBounds(1, 529, 70, 40);
main.setEditable(true);
main.setBackground(Color.BLUE);
First.getContentPane().add(one);
First.getContentPane().add(main);
main.setForeground(Color.RED);
button = new JButton("else");
button.setBounds(500, 50, 80, 150);
First.getContentPane().add(button);
button.addActionListener(w);
//Das ist alles nur testweise zu verstehen
}
}
Andere Klasse
Java:
public class Start {
public static void main(String[] args) {
KundeUI.token();
}
}