请编写一个Java程序实现如下图所示的“系统登录”窗口(LoginFrame): 提示: 窗口中显示的标题图片不限,可以自行更换,或者也可以用任意字体显示为“系统登录”; 本窗体中实际使用的就是简单的流布局管理器,只要在程序中适当调整窗口的宽度和高度即可实现对应效果; 可以查阅文档看看用什么方法可以使得用户无法调整窗口大小
时间: 2024-03-10 10:47:28 浏览: 94
以下是一个简单的Java程序实现“系统登录”窗口:
```java
import javax.swing.*;
import java.awt.*;
public class LoginFrame extends JFrame {
public LoginFrame() {
setTitle("系统登录");
setResizable(false); // 禁止用户调整窗口大小
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImageIcon icon = new ImageIcon("logo.png"); // 标题图片
JLabel label = new JLabel(icon);
label.setHorizontalAlignment(SwingConstants.CENTER);
JLabel userLabel = new JLabel("用户名:");
JTextField userField = new JTextField(20);
JLabel pwdLabel = new JLabel("密 码:");
JPasswordField pwdField = new JPasswordField(20);
JButton loginButton = new JButton("登录");
loginButton.addActionListener(e -> {
// 登录按钮的点击事件
String username = userField.getText();
String password = String.valueOf(pwdField.getPassword());
// TODO: 实现登录逻辑
});
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
panel.add(userLabel);
panel.add(userField);
panel.add(pwdLabel);
panel.add(pwdField);
panel.add(loginButton);
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
contentPane.add(label, BorderLayout.NORTH);
contentPane.add(panel, BorderLayout.CENTER);
pack(); // 自动调整窗口大小以适应内容
setLocationRelativeTo(null); // 将窗口居中显示
}
public static void main(String[] args) {
new LoginFrame().setVisible(true);
}
}
```
在上面的程序中,我们使用了`JFrame`类作为窗口容器,并设置了标题、禁止用户调整窗口大小以及默认的关闭行为。使用了`ImageIcon`来加载标题图片,并使用`JLabel`来显示图片。使用`JLabel`、`JTextField`、`JPasswordField`和`JButton`来实现输入框和登录按钮,并将它们添加到一个`JPanel`中。使用`FlowLayout`来管理`JPanel`中的组件布局。最后,将`JLabel`和`JPanel`添加到窗口容器中,并调用`pack()`方法自动调整窗口大小以适应内容,将窗口居中显示。
阅读全文