用java实现教职工办事大厅。要求通过点击左边的目录Button,可以实现右边面板的切换。
时间: 2024-02-15 09:04:38 浏览: 47
您可以通过使用Java Swing库来实现这个功能。下面是一个简单的实现示例:
首先,您需要创建一个 JFrame 窗口并添加一个 JPanel 面板,用于容纳您的目录 Button 和右边的面板。
```java
import javax.swing.*;
import java.awt.*;
public class MainFrame extends JFrame {
private JPanel panel;
public MainFrame() {
setTitle("教职工办事大厅");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(800, 600);
setLocationRelativeTo(null);
// 创建左边的目录 Button
JButton btn1 = new JButton("面板1");
JButton btn2 = new JButton("面板2");
JButton btn3 = new JButton("面板3");
// 监听 Button 点击事件
btn1.addActionListener(e -> showPanel(new Panel1()));
btn2.addActionListener(e -> showPanel(new Panel2()));
btn3.addActionListener(e -> showPanel(new Panel3()));
// 创建右边的面板
panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.setBackground(Color.WHITE);
panel.add(new JLabel("请选择一个面板"), BorderLayout.CENTER);
// 创建左边的目录面板
JPanel menuPanel = new JPanel();
menuPanel.setLayout(new GridLayout(3, 1));
menuPanel.add(btn1);
menuPanel.add(btn2);
menuPanel.add(btn3);
// 将左边的目录面板和右边的面板添加到主窗口中
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(menuPanel, BorderLayout.WEST);
contentPane.add(panel, BorderLayout.CENTER);
}
// 显示右边的面板
private void showPanel(JPanel p) {
panel.removeAll();
panel.add(p, BorderLayout.CENTER);
panel.updateUI();
}
public static void main(String[] args) {
MainFrame frame = new MainFrame();
frame.setVisible(true);
}
}
```
接下来,您需要创建三个 JPanel 面板,作为右边显示的面板。这里只提供一个面板的示例:
```java
import javax.swing.*;
import java.awt.*;
public class Panel1 extends JPanel {
public Panel1() {
setLayout(new BorderLayout());
setBackground(Color.WHITE);
add(new JLabel("这是面板1"), BorderLayout.CENTER);
}
}
```
在每个面板中,您可以添加需要显示的组件、文本框、按钮等等。然后,通过在目录 Button 上添加 ActionListener 监听器,当用户单击 Button 时,将显示与该 Button 对应的面板。在 showPanel() 方法中,我们通过 removeAll() 方法删除当前面板,并使用 updateUI() 方法更新 GUI。
您可以根据需要修改按钮和面板的数量和布局,以及添加其他组件和功能。希望这可以帮助到您!