我在java中创建了这个登录表单,我希望在其中添加背景图像但是我尝试但无济于事。我怎么能让它成为可能?
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class LogIn extends JFrame {
JFrame f;
JTextField t1, t2;
JButton btn;
JLabel lbl1, lbl2,img;
public LogIn() {
// setLayout(new BorderLayout());
img = new JLabel
(new ImageIcon("C:\\Users\\AF Computer\\Downloads\\picture.jpg"));
f = new JFrame("LogIn Form");
lbl1 = new JLabel("User Name:");
t1 = new JTextField();
lbl2 = new JLabel("Password:");
t2 = new JTextField();
btn = new JButton("Log In");
lbl1.setBounds(10, 80, 70, 30);
t1.setBounds(80, 80, 250, 30);
lbl2.setBounds(10, 130, 70, 30);
t2.setBounds(80, 130, 250, 30);
btn.setBounds(230, 200, 100, 40);
f.add(img);
f.add(lbl1);
f.add(lbl2);
f.add(t1);
f.add(t2);
f.add(btn);
f.setLayout(new FlowLayout());
f.setLayout(null);
f.setVisible(true);
f.setSize(1000, 700);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setResizable(false);
}
public static void main(String[] args) {
new LogIn();
}
}
答案 0 :(得分:0)
我看到你正在设置JLabel的界限,但不是img
。如果您没有为JFrame使用任何布局,则还必须设置img
标签的边界,否则使用JFrame的默认布局,将只显示其中一个组件。
添加以下代码(如果您决定使用绝对定位):
this.setLayout(null);
img.setBounds(/*your bounds*/);
如果还建议从JPanel扩展并将面板添加到JFrame而不是为JFrame创建新的子类。