使用java swing编写一个frame,frame里建立多个panel,点击按钮切换panel
时间: 2024-03-27 13:38:48 浏览: 140
swing多个jpanel布局切换实例
4星 · 用户满意度95%
好的,以下是一个简单的示例代码,演示了如何使用Java Swing编写一个Frame,里面包含多个Panel,以及一个按钮,点击按钮可以切换Panel:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class MyFrame extends JFrame implements ActionListener {
private JPanel panel1;
private JPanel panel2;
private JButton switchButton;
public MyFrame() {
// 设置Frame的基本属性
setTitle("Panel切换示例");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建两个Panel
panel1 = new JPanel();
panel1.setBackground(Color.RED);
panel2 = new JPanel();
panel2.setBackground(Color.BLUE);
// 创建一个按钮,用于切换Panel
switchButton = new JButton("切换面板");
switchButton.addActionListener(this);
// 将Panel和Button添加到Frame中
add(panel1, BorderLayout.CENTER);
add(switchButton, BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e) {
// 点击按钮时,切换Panel
if (e.getSource() == switchButton) {
if (getContentPane().getComponent(0) == panel1) {
getContentPane().remove(panel1);
getContentPane().add(panel2, BorderLayout.CENTER);
} else {
getContentPane().remove(panel2);
getContentPane().add(panel1, BorderLayout.CENTER);
}
validate();
}
}
public static void main(String[] args) {
MyFrame frame = new MyFrame();
frame.setVisible(true);
}
}
```
在这个示例代码中,我们首先创建了一个继承自JFrame的类MyFrame,在MyFrame的构造函数中创建了两个Panel(panel1和panel2),以及一个按钮(switchButton)。然后将panel1和switchButton添加到Frame中。
当点击按钮时,会触发actionPerformed方法,判断当前显示的Panel是哪一个,然后将其移除,并添加另一个Panel,最后调用validate方法重新绘制Frame。
这样就完成了一个简单的Panel切换的示例。
阅读全文