Swing JFrame aus anderer Klasse starten/anzeigen

McDonnough

Mitglied
Wahrscheinlich ist die Lösung ganz einfach, aber ich stehe seit etwa einer Stunde einfach auf dem Schlauch.

Ich habe eine Klasse, in der ich meine GUI erstelle, was auch wunderbar funktioniert, solange ich das aus derselben Klasse mache. Mein eigentliches Ziel ist es aber, die GUI aus einer anderen Klasse zu starten, was daher kommt, dass der User wählen können, ob er eine GUI will, oder nicht.

Main.java (> GUI)
Java:
    private JFrame frame;
	private GridBagConstraints 	gbConst;
	private JTextField			messageField;
	private JButton 			sendButton;
	
	public Main(ServerInterface server) {
		this.server = server;
		frame = new JFrame("Meine GUI");
		
		initComponents();
		
		frame.setSize(300, 200);
		frame.setVisible(true);
	}

	private void initComponents() {
		frame.setLayout(new GridBagLayout());
		
		gbConst = new GridBagConstraints();
		gbConst.insets = new Insets(5, 5, 5, 5);
		
		messageField = new JTextField(10);
		
		sendButton = new JButton("Senden");
		sendButton.addActionListener(this);
		
		gbConst.gridx = 0;
		gbConst.gridy = 0;
		gbConst.gridheight = 1;
		gbConst.gridwidth = 1;
		
		frame.add(messageField, gbConst);
		
		gbConst.gridx = 1;
		frame.add(sendButton, gbConst);
		
		frame.addWindowListener(this);
	}
	
	public JFrame getFrame() {
		return frame;
	}

Wie kann ich nun diese GUI aus einer anderen Klasse anzeigen lassen?
 
Hallo McDonnough,

versuch's mal so:
Java:
Runnable gui = new Runnable() {

    public void run() {
        Main main = new Main(server);
    }
};
//GUI must start on EventDispatchThread:
EventQueue.invokeLater(gui);
Gruß,
André
 
Ich war irgendwie einfach schon zu lange auf gestern (bzw. heute).
Habe nämlich gemerkt, dass die GUI nicht gestartet wurde, weil vorher noch eine Wert von der Konsole eingelesen wird.
Wenn das gemacht wird, startet die GUI ohne Probleme.
Trotzdem danke für die Antwort!

Der Thread kann als erledigt markiert werden.
 

Neue Themen


Zurück
Oben