java 点击菜单显示面板_JAVA 创建一个带菜单的窗口,点击菜单项,窗口显示不同内容,这个怎么实现?最好用卡片布局。...
时间: 2024-03-10 14:45:39 浏览: 157
可以使用Java Swing中的JMenuBar和JMenu来实现带菜单的窗口,并使用JMenuItem来实现菜单项的点击事件。
以下是一个简单的示例代码,使用了卡片布局:
```java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MenuDemo extends JFrame implements ActionListener {
private JMenuBar menuBar;
private JMenu menu;
private JMenuItem menuItem1, menuItem2;
private JPanel cardPanel;
private CardLayout cardLayout;
public MenuDemo() {
super("Menu Demo");
// 创建菜单栏和菜单项
menuBar = new JMenuBar();
menu = new JMenu("Menu");
menuItem1 = new JMenuItem("Panel 1");
menuItem2 = new JMenuItem("Panel 2");
menuItem1.addActionListener(this);
menuItem2.addActionListener(this);
menu.add(menuItem1);
menu.add(menuItem2);
menuBar.add(menu);
setJMenuBar(menuBar);
// 创建卡片布局和面板
cardLayout = new CardLayout();
cardPanel = new JPanel(cardLayout);
cardPanel.add(new JLabel("Panel 1"), "panel1");
cardPanel.add(new JLabel("Panel 2"), "panel2");
add(cardPanel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(300, 200);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == menuItem1) {
cardLayout.show(cardPanel, "panel1");
} else if (e.getSource() == menuItem2) {
cardLayout.show(cardPanel, "panel2");
}
}
public static void main(String[] args) {
new MenuDemo();
}
}
```
在这个示例中,我们创建了一个JMenuBar和一个JMenu,然后添加了两个JMenuItem。当菜单项被点击时,我们使用卡片布局中的show()方法来显示对应的面板。
阅读全文