请帮我用JAVA代码实现 要求可以跟上面那串代码联动需求描述 实现点击首页的注册和登录的菜单项后,弹出注册窗体和登录窗体。 思路分析 1. 使用JDialog对话框实现注册窗体和登录窗体。 2. 为注册菜单项和登录菜单项设置动作监听器。
时间: 2023-12-14 14:38:02 浏览: 30
好的,下面是实现的JAVA代码:
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class LoginAndRegisterDemo extends JFrame{
private JMenuBar menuBar;
private JMenu menu;
private JMenuItem loginItem, registerItem;
public LoginAndRegisterDemo() {
setTitle("登录注册窗体");
setSize(300, 200);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
menuBar = new JMenuBar();
setJMenuBar(menuBar);
menu = new JMenu("菜单");
menuBar.add(menu);
loginItem = new JMenuItem("登录");
registerItem = new JMenuItem("注册");
menu.add(loginItem);
menu.add(registerItem);
loginItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
showLoginDialog();
}
});
registerItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
showRegisterDialog();
}
});
setVisible(true);
}
private void showLoginDialog() {
JDialog loginDialog = new JDialog(this, "登录", true);
loginDialog.setSize(200, 150);
loginDialog.setLocationRelativeTo(this);
loginDialog.setLayout(new BorderLayout());
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3, 2));
panel.add(new JLabel("用户名:"));
panel.add(new JTextField());
panel.add(new JLabel("密码:"));
panel.add(new JPasswordField());
panel.add(new JButton("登录"));
panel.add(new JButton("取消"));
loginDialog.add(panel, BorderLayout.CENTER);
loginDialog.setVisible(true);
}
private void showRegisterDialog() {
JDialog registerDialog = new JDialog(this, "注册", true);
registerDialog.setSize(200, 150);
registerDialog.setLocationRelativeTo(this);
registerDialog.setLayout(new BorderLayout());
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3, 2));
panel.add(new JLabel("用户名:"));
panel.add(new JTextField());
panel.add(new JLabel("密码:"));
panel.add(new JPasswordField());
panel.add(new JButton("注册"));
panel.add(new JButton("取消"));
registerDialog.add(panel, BorderLayout.CENTER);
registerDialog.setVisible(true);
}
public static void main(String[] args) {
new LoginAndRegisterDemo();
}
}
```
在该代码中,我们创建了一个继承自JFrame的类LoginAndRegisterDemo,来实现我们的需求。在构造函数中,我们创建了菜单栏、菜单、登录和注册菜单项,并将它们添加到菜单中。接着,我们为登录菜单项和注册菜单项分别设置了ActionListener,当用户点击这些菜单项时,系统会弹出登录和注册对话框,分别对应showLoginDialog()和showRegisterDialog()方法。
在showLoginDialog()和showRegisterDialog()方法中,我们创建了一个JDialog对话框,并设置其大小、位置、布局等属性。在这个对话框中,我们使用了JPanel面板,来放置用户名、密码和按钮等组件。最后,我们将面板添加到对话框中,并设置对话框可见。
在main()方法中,我们创建了LoginAndRegisterDemo对象,并启动程序。
这样,我们就成功地实现了登录注册对话框的弹出效果。