在JFrame中添加一张图片为登录界面背景Java代码
时间: 2024-02-03 15:12:59 浏览: 28
可以通过在JFrame中添加一个JLabel来实现添加一张图片作为登录界面的背景。
以下是一个简单的示例代码:
```java
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class LoginFrame extends JFrame {
public LoginFrame() {
setTitle("登录");
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setResizable(false);
// 创建一个 JPanel,用于放置 JLabel
JPanel panel = new JPanel() {
private static final long serialVersionUID = 1L;
// 重写 paintComponent 方法,将图片绘制在 JPanel 上
@Override
protected void paintComponent(Graphics g) {
ImageIcon icon = new ImageIcon("background.jpg");
Image img = icon.getImage();
g.drawImage(img, 0, 0, this.getWidth(), this.getHeight(), this);
}
};
// 设置 JPanel 的布局为空布局,使 JLabel 能够自由定位
panel.setLayout(null);
// 创建一个 JLabel,用于显示登录界面的标题
JLabel label = new JLabel("欢迎登录");
label.setBounds(150, 50, 100, 30);
// 将 JLabel 添加到 JPanel 上
panel.add(label);
// 将 JPanel 设置为 JFrame 的内容面板
setContentPane(panel);
}
public static void main(String[] args) {
LoginFrame frame = new LoginFrame();
frame.setVisible(true);
}
}
```
在上面的代码中,我们通过创建一个继承了 JPanel 的匿名内部类来绘制图片,并将这个 JPanel 设置为 JFrame 的内容面板,从而实现了在登录界面中添加一张图片作为背景的效果。