Hallo,
ich versuche mich gerade in Swing und nutze hier auch den Windows Builder.
Ich habe folgendes Video gefunden und möchte das auch so nachstellen:
Prinzipiell möchte ich einfach ein kleines Programm haben, bei dem ich ein Menü habe. Und je nachdem auf welchen Menüpunkt ich klicke, soll der Hauptscreen angepasst werden. Also Menüitem clicken -> andere Seite in dem Content Bereich anzeigen.
Leider funktioniert aber der Klick auf das Menü Item nicht, sodass die Seite sich wechselt.
Was mache ich falsch?
Hier mein Code:
Kann hier jemand helfen?
ich versuche mich gerade in Swing und nutze hier auch den Windows Builder.
Ich habe folgendes Video gefunden und möchte das auch so nachstellen:
Prinzipiell möchte ich einfach ein kleines Programm haben, bei dem ich ein Menü habe. Und je nachdem auf welchen Menüpunkt ich klicke, soll der Hauptscreen angepasst werden. Also Menüitem clicken -> andere Seite in dem Content Bereich anzeigen.
Leider funktioniert aber der Klick auf das Menü Item nicht, sodass die Seite sich wechselt.
Was mache ich falsch?
Hier mein Code:
Java:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLayeredPane;
import java.awt.CardLayout;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JMenu;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JLabel;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JButton;
public class Test extends JFrame {
private JPanel contentPane;
private JLayeredPane layeredPane;
private JPanel panel1;
private JPanel panel2;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Test frame = new Test();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Test() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu mnNewMenu = new JMenu("Generel");
menuBar.add(mnNewMenu);
JMenuItem mntmNewMenuItem = new JMenuItem("Startseite");
mntmNewMenuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
switchPanel(panel1);
}
});
mnNewMenu.add(mntmNewMenuItem);
JMenuItem mntmNewMenuItem_1 = new JMenuItem("Einstellung");
mntmNewMenuItem_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
switchPanel(panel2);
}
});
mnNewMenu.add(mntmNewMenuItem_1);
JMenu mnNewMenu_1 = new JMenu("Sonstiges");
menuBar.add(mnNewMenu_1);
JMenuItem mntmNewMenuItem_2 = new JMenuItem("Version");
mnNewMenu_1.add(mntmNewMenuItem_2);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
layeredPane = new JLayeredPane();
layeredPane.setBounds(5, 5, 440, 246);
contentPane.add(layeredPane);
layeredPane.setLayout(new CardLayout(0, 0));
panel1 = new JPanel();
layeredPane.add(panel1, "name_180517695084643");
panel1.setLayout(null);
JLabel lblNewLabel = new JLabel("Panel1");
lblNewLabel.setBounds(47, 6, 164, 62);
panel1.add(lblNewLabel);
JButton btnNewButton = new JButton("New button");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
switchPanel(panel2);
}
});
btnNewButton.setBounds(57, 68, 117, 29);
panel1.add(btnNewButton);
panel2 = new JPanel();
layeredPane.add(panel2, "name_180517708202294");
panel2.setLayout(null);
JLabel lblNewLabel_1 = new JLabel("New label");
lblNewLabel_1.setBounds(182, 105, 61, 16);
panel2.add(lblNewLabel_1);
}
public void switchPanel(JPanel panel) {
layeredPane.removeAll();
layeredPane.add(panel);
layeredPane.repaint();
layeredPane.revalidate();
}
}
Kann hier jemand helfen?