Hallo zusammen,
ich habe mich mal in die GUI von Java eingearbeitet, einfach weil es für die berufliche Zukunft von Vorteil ist aus meiner Sicht, damit auszukennen. Außerdem mache ich es interessehalber^^
Ich arbeite mit dem JFrame, und habe das Problem, dass ich mit mehrfachem ausführen des Codes unterschiedliche Ergebnisse habe. Mal wird ein Label nicht angezeigt, mal ein Textfield. Mein Sourcecode ist schon relativ groß mittlerweile, aber auch im Beispiel eines Tutorials ist das bei mir der Fall. Ich habe Java extra mal geupdated, aber hat nicht geholfen. Auch das Projekt als .jar zu exportieren hat nicht viel gebracht. Ist das ein bekannter Bug von JFrame?
Um einfach mal ein Beispiel zu bringen von meinem Code nehme ich einfach den aus dem Brotcruncher Videotutorial, da, wiegesagt das Problem bei mir auch da auftritt.
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class CFrame extends JFrame{
JLabel text; //Erstellt text des Typs JLabel
JButton button;
JTextField textField;
public CFrame(){
setVisible(true);
setSize(500, 300); //setzt die Größe
setDefaultCloseOperation(JFrame.EXIT\_ON\_CLOSE); // Schließt Fenster bei "Schließen" Symbol
setLocation(500, 500);
setLocationRelativeTo(null); //Setzt Fenster in die Mitte
setTitle("Name des Programms");
setResizable(false);
setLayout(null);
text = new JLabel("Hallo Welt"); //Gibt "text" den String "Hallo Welt"
text.setBounds(0,0,500,10); //Setzt die Koordinaten für den Text - x,y,width,height
Font textFont = new Font("Arial", Font.BOLD + Font.ITALIC, 10); //Erstellt Fonteigenschaften
text.setFont(textFont); //gibt "text" die Schriftart von "textFont"
add(text); //Fügt den Text endgültig hinzu
button = new JButton("Klick mich");
button.setBounds(20, 20, 100, 20);
button.addActionListener(new CListener()); //Weist dem Button den Listener zu
add(button);
textField = new JTextField();
textField.setBounds(50, 50, 300, 20);
add(textField);
}
public class CListener implements ActionListener{ //Action Listener achtet auf Events von Button
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
text.setText(textField.getText()); //ändert den vorher erstellten Text.
//Die Funktion getText holt den String aus dem TextField
} // Action Listener achtet auf Buttoninteraktion
}
}
Kann mir da wer weiterhelfen?
Vielen Dank im Vorraus,
Viele Grüße