用java的swing实现一个框架上有两个分页面在同一个页面上,三个按钮实现六个页面的跳转
时间: 2024-02-05 16:11:45 浏览: 199
好的,以下是一个简单的实现:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TwoPanelFrame extends JFrame implements ActionListener {
private JPanel panel1, panel2;
private JButton button1, button2, button3;
private CardLayout cardLayout;
public TwoPanelFrame() {
super("Two Panel Frame");
// 设置窗口大小和位置
setSize(500, 400);
setLocationRelativeTo(null);
// 创建两个分页面和三个按钮
panel1 = new JPanel();
panel2 = new JPanel();
button1 = new JButton("Panel 1 -> Panel 2");
button1.addActionListener(this);
button2 = new JButton("Panel 2 -> Panel 1");
button2.addActionListener(this);
button3 = new JButton("Panel 1/2");
button3.addActionListener(this);
// 给两个分页面添加一些组件
panel1.add(new JLabel("This is Panel 1"));
panel2.add(new JLabel("This is Panel 2"));
// 创建一个卡片布局,并将两个分页面添加到窗口中
cardLayout = new CardLayout();
setLayout(cardLayout);
add(panel1, "Panel 1");
add(panel2, "Panel 2");
// 添加三个按钮到窗口底部
JPanel buttonPanel = new JPanel(new GridLayout(1, 3));
buttonPanel.add(button1);
buttonPanel.add(button2);
buttonPanel.add(button3);
add(buttonPanel, BorderLayout.SOUTH);
// 显示窗口
setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button1) {
// 将焦点切换到 Panel 2
cardLayout.show(getContentPane(), "Panel 2");
} else if (e.getSource() == button2) {
// 将焦点切换到 Panel 1
cardLayout.show(getContentPane(), "Panel 1");
} else if (e.getSource() == button3) {
// 在 Panel 1 和 Panel 2 之间切换
if (panel1.isVisible()) {
cardLayout.show(getContentPane(), "Panel 2");
} else {
cardLayout.show(getContentPane(), "Panel 1");
}
}
}
public static void main(String[] args) {
new TwoPanelFrame();
}
}
```
这个程序创建了一个具有两个分页面和三个按钮的窗口。当单击按钮时,它会切换到不同的页面。其中,`CardLayout`类用于管理分页面的切换,`ActionListener`接口用于监听按钮的单击事件。
阅读全文