GUI: Knöpfe erscheinen spät, Etiketten gar nicht

Zweifaenger

Mitglied
Hallo zusammen,

ich bin bei der Programmierung einer Oberfläche angelangt. Das CP (siehe Code) , welches auf die 3 anderen Controlpanel verteilen soll, habe ich wie folgt programmiert:

Java:
package gui;

import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;



public class CPStart {

	private int x = 0, y = 0, width = 919, height = 322;
	
	//Fenster
	private JFrame window;
	private Toolkit t;
	
	//Knöpfe
	private JButton knopfCpBenutzer;
	private JButton knopfCpArtikel;
	private JButton knopfCpShop;
	private JButton knopfBeenden;
	
	//Etiketten
	private JLabel etikettTitel;
	
	
	
	
	
	
	
	public CPStart()
	{
		
		//Fenster
		t = Toolkit.getDefaultToolkit();
		Dimension d = t.getScreenSize();
		
		x = (int) ((d.getWidth() - width) / 2);
		y = (int) ((d.getHeight() - height) / 2);
		
		window = new javax.swing.JFrame();
		window.setTitle("Controlpanel - Start");
		window.setBounds(x, y, width, height);
		window.getContentPane().setLayout(null);
		window.setResizable(false);
		window.setVisible(true);
		
		
		
		
		
		//Knöpfe
		knopfCpBenutzer = new JButton("Controlpanel - Benutzer");
		knopfCpBenutzer.setBounds(94, 161, 191, 39);
		knopfCpBenutzer.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				knopfBenutzerCpGedrueckt();
			}
		});
		window.getContentPane().add(knopfCpBenutzer);
		
		
		knopfCpArtikel = new JButton("Controlpanel - Artikel");
		knopfCpArtikel.setBounds(364, 161, 191, 39);
		knopfCpArtikel.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				knopfArtikelCpGedrueckt();
			}
		});
		window.getContentPane().add(knopfCpArtikel);
		
		
		knopfCpShop = new JButton("Controlpanel - Shop");
		knopfCpShop.setBounds(634, 161, 191, 39);
		knopfCpShop.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				knopfShopCpGedrueckt();
			}
		});
		window.getContentPane().add(knopfCpShop);
		
		
		knopfBeenden = new JButton("Beenden");
		knopfBeenden.setBounds(788, 270, 112, 30);
		knopfBeenden.addActionListener(new ActionListener() {
			@Override
			public void actionPerformed(ActionEvent e) {
				knopfBeendenGedrueckt();
			}
		});
		window.getContentPane().add(knopfBeenden);
		
		
		//Etiketten
		etikettTitel = new JLabel("Wilkommen im Controlpanel des Moviestores");
		etikettTitel.setBounds(291, 38, 331, 37);
		window.getContentPane().add(etikettTitel);
		
		
		
	}
	
	
	
	
	public static void main(String[] args )
	{
		new CPStart();
	}
	
	
	
	public void knopfBenutzerCpGedrueckt()
	{
		System.out.println("BenutzerCP gedrueckt");
	}
	
	public void knopfArtikelCpGedrueckt()
	{
		System.out.println("ArtikelCP gedrueckt");
	}
	
	public void knopfShopCpGedrueckt()
	{
		System.out.println("ShopCP gedrueckt");
	}
	
	public void knopfBeendenGedrueckt()
	{
		System.exit(0);
	}
	
	
}


Folgende Probleme treten dabei auf:
- die Knöpfe erscheinen erst wenn ich einmal irgendwo anders hin als in das Fenster klicke
- das Etikett/der Text erscheint gar nicht :/ kann mir einer weiterhelfen?

Ja mir ist bewusst, dass man eigentlich mit Layouts arbeiten sollte, jedoch habe ich hier schon alle Koordinaten vorgegeben sodass ich ohne Layouts gearbeitet habe.

Gruß Zweifaenger
 
versuch mal das "window.setVisible(true);" ganz an das ende von CPStart zu setzen.
Das sollte zumindest bei den Knöpfen helfen.

Gruß Hddlbrmpft
 
immer erst zum schluss das fenster auf visible(true) setzen. dann lädt das Programm erst die einzelnen Komponenten und dann wird das gesamte fenster sichtbar gemacht ... ansonsten musst du ( wie du sicherlich festgestellt hast ) erst über die Position der einzelnen Buttons, o. ä., fahren dass sie geladen werden.
 

Neue Themen


Zurück
Oben