请帮我写段Java代码,要求jframe窗口中背景图片随窗口大小变大或变小,有一个文本框和密码框,上下排列,并在窗口居中,并且文本框要能显示出来
时间: 2023-06-19 15:09:22 浏览: 97
好的,以下是实现您要求的Java代码:
```java
import javax.swing.*;
import java.awt.*;
public class Demo extends JFrame {
private JTextField textField;
private JPasswordField passwordField;
public Demo() {
// 设置窗口标题
setTitle("Demo");
// 设置窗口大小
setSize(500, 400);
// 设置窗口居中
setLocationRelativeTo(null);
// 设置关闭按钮的默认操作
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建一个面板
JPanel panel = new JPanel() {
// 重写 paintComponent() 方法,在面板上绘制背景图片
public void paintComponent(Graphics g) {
Image img = new ImageIcon("background.jpg").getImage();
g.drawImage(img, 0, 0, getWidth(), getHeight(), this);
}
};
// 设置面板布局为 BoxLayout,并且上下排列
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
// 创建文本框和密码框
textField = new JTextField();
passwordField = new JPasswordField();
// 将文本框和密码框添加到面板中
panel.add(textField);
panel.add(passwordField);
// 将面板添加到窗口中
add(panel);
// 显示窗口
setVisible(true);
}
public static void main(String[] args) {
new Demo();
}
}
```
请将代码中的 `"background.jpg"` 替换为您自己的背景图片路径。
阅读全文