Hallo, ich habe folgendes Problem. Ich starte ein Programm, welches die GUI initialisert. Dann kommt eine Pause und dann soll in eine Text in die GUI geschrieben werden. Nur leider erscheint das Fenster beim Programmstart und nach einer Pause wird es mit den Elementen gefüllt und dann steht auch schon der Text da.
Die Pause ist nur zur Verdeutlichung des Problems. Normalerweise läuft da anderer Code.
Was mache ich verkehrt?
Gruß
Holger
Die Pause ist nur zur Verdeutlichung des Problems. Normalerweise läuft da anderer Code.
Was mache ich verkehrt?
Gruß
Holger
Code:
import java.awt.EventQueue;
public class TestKlasse
{
private GUI gui;
public TestKlasse()
{
gui = new GUI();
try
{
Thread.sleep(1000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
gui.textPane.setText("TestKlasse");
}
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
new TestKlasse();
}
});
}
}
Code:
import java.awt.Font;
import java.util.ArrayList;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyleContext;
public class GUI
{
private JFrame hauptFenster;
private JPanel buttonPanel;
public JTextPane textPane;
private int channelAreaX = 20;
private int channelAreaY = 30;
private ArrayList<JButton> configButtons = new ArrayList<JButton>();
public GUI()
{
buildGUI();
}
public void buildGUI()
{
hauptFenster = new JFrame("TestKlasse");
hauptFenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
hauptFenster.getContentPane().setLayout(null);
buttonPanel = new JPanel();
buttonPanel.setLayout(null);
buttonPanel.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
buttonPanel.setBounds(channelAreaX, channelAreaY, 290, 130);
String buttonPanelTitle = "Konfiguration";
Border borderbuttonPanel = BorderFactory.createTitledBorder(buttonPanelTitle);
buttonPanel.setBorder(borderbuttonPanel);
hauptFenster.getContentPane().add(buttonPanel);
StyleContext.NamedStyle centerStyle = StyleContext.getDefaultStyleContext().new NamedStyle();
StyleConstants.setAlignment(centerStyle,StyleConstants.ALIGN_CENTER);
textPane = new JTextPane();
textPane.setBorder(new EtchedBorder(EtchedBorder.LOWERED, null, null));
textPane.setEditable(false);
textPane.setBounds(channelAreaX, 70, 251, 40);
textPane.setLogicalStyle(centerStyle);
textPane.setText("");
textPane.setFont(new java.awt.Font("Courier New", Font.PLAIN, 14));
textPane.setFocusable(false);
buttonPanel.add(textPane);
configButtons.add(new JButton());
configButtons.get(0).setText("Load");
configButtons.get(0).setBounds(channelAreaX, channelAreaY, 65, 23);
configButtons.get(0).setEnabled(false);
buttonPanel.add(configButtons.get(0));
configButtons.add(new JButton());
configButtons.get(1).setText("Save/Send");
configButtons.get(1).setBounds(channelAreaX + 75, channelAreaY, 95, 23);
configButtons.get(1).setEnabled(false);
buttonPanel.add(configButtons.get(1));
configButtons.add(new JButton());
configButtons.get(2).setText("Reset");
configButtons.get(2).setBounds(channelAreaX + 180, channelAreaY, 70, 23);
configButtons.get(2).setEnabled(false);
buttonPanel.add(configButtons.get(2));
hauptFenster.setPreferredSize(new java.awt.Dimension(350, 220));
hauptFenster.pack();
hauptFenster.setResizable(false);
hauptFenster.setLocationRelativeTo(null);
hauptFenster.setVisible(true);
}
}