JPanel wird nach Buttonklick nicht angezeigt

aandroidd

Mitglied
Hallo Leute,
ich hatte ja schonmal einen Thread geöffnet, der aber etwas "schwammig" war.
Ich habe mich an die Entwicklung einer GUI für ein Schulverwaltungsprogramm gemacht.
Das funktioniert alles bis hierhin auch fast, ich muss zwar das Layout noch ändern, da das BorderLayout nicht so angemessen ist, aber das ist nebensächlich.

Das Problem:
Ich wollte ein JPanel öffnen lassen, sobald auf den Button "buttonschueler" geklickt wird, auf dem Sich dann ein Label und ein Textfeld befinden...Wenn ich das Programm jedoch ausführe, geschieht nach klicken auf den Button "buttonschueler" nichts.

Danke im Voraus!🙂

Hier der Code:
Java:
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JFrame;
import java.awt.Dimension;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class gui extends javax.swing.JFrame
{
	private static final long serialVersionUID = -3916999143368903548L;

	private static final ActionListener ActionListener = null;
	
	private Toolkit t;
	private int x=0,y=0, width=800, height=600;
	private JMenuBar menubar1;
	private JMenu menu1;
	private JMenuItem menu1_item1;
	private JButton buttonschueler, buttonlehrer;
	
	public gui ()
	{
		t = Toolkit.getDefaultToolkit();
		
		Dimension d = t.getScreenSize();
		
		x = (int) ((d.getWidth() - width) / 2);
		y = (int) ((d.getHeight() - height) / 2);
		setBounds(x,y,width, height);
		
		setTitle("Schulverwaltung");
		
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		this.initComponents();
		this.initListeners();
		
		setVisible(true);
	}
	
	private void initComponents()
	{
   
		this.getContentPane().setLayout(new BorderLayout(5,5) );
		
		this.menubar1 = new JMenuBar();
		
		this.menu1 = new JMenu("Datei");
		
		this.menu1_item1 = new JMenuItem("TestTest");
		
		this.menubar1.add(this.menu1);
		this.menu1.add(this.menu1_item1);
		
		this.setJMenuBar(this.menubar1);
		
		this.buttonschueler = new JButton("Neuen Sch\u00fcler hinzuf\u00fcgen");
		this.buttonlehrer = new JButton("Neuen Lehrer hinzuf\u00fcgen");
		this.getContentPane().add(this.buttonschueler, BorderLayout.NORTH);
		this.getContentPane().add(this.buttonlehrer, BorderLayout.CENTER);
	}
	
	private void initListeners()
	{
		this.menu1_item1.addActionListener(new ActionListener()
		{
			@Override
			public void actionPerformed(ActionEvent e) 
			{
				JOptionPane.showMessageDialog(null, "Dies ist nur ein Test!");	
			}
		});	
		
		this.buttonschueler.addActionListener(new ActionListener()
		{

			@Override
			public void actionPerformed(ActionEvent f) 
			{
				// TODO
				JPanel panel1 = new JPanel();
				panel1.setSize(250, 250);
				JLabel label = new JLabel("Vorname:");
		        panel1.add(label);
				JTextField Vorname = new JTextField(20);
				panel1.add(Vorname);
				panel1.setVisible(true);
			}
			
		});
	}
	
	public static void main(String [] args)
	{
		new gui();
	}
}
 
Zuletzt bearbeitet:
Packe dein JPanel auf ein JFrame, dann klappt das auch!

Hat zwar nichts damit zu tun, aber schau dir nochmal Zeil 14 an - ist ja gruselig!
 
Ich frage mich gerade wie die Zeile dorthin gekommen ist, ich seh sie grad zum ersten mal 😱

Aber danke für den Tipp, es funktioniert jetzt🙂


Jetzt möchte ich den Text aus dem Textfeld noch auslesen und in eine set-Methode einbauen, sprich wenn der Inhalt des Textfeldes Vorname "Olaf" ist, soll der Vorname des Schülers gleich Olaf gesetzt werden.

Sorry, bin auf diesem Teilgebiet absoluter Neuling:/
 

Zurück
Oben