Java 正在尝试为我的登录框设置背景图像
我想创建一个像这样的登录框架()。 我使用Java 正在尝试为我的登录框设置背景图像,java,swing,Java,Swing,我想创建一个像这样的登录框架()。 我使用setBounds()方法设置这些组件,方法是使用setBound将setLayout()设置为null。现在我想在我的登录框中添加一个背景图像,但由于我使用了setLayout()将其设置为null,因此无法设置图像 `public LoginFrame() { JFrame frame=new JFrame("Login"); frame.setDefaultCloseOperation(frame.EXI
setBounds()
方法设置这些组件,方法是使用setBound
将setLayout()设置为null。现在我想在我的登录框中添加一个背景图像,但由于我使用了setLayout()
将其设置为null,因此无法设置图像
`public LoginFrame()
{
JFrame frame=new JFrame("Login");
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.setLayout(null);
uid=new JLabel("Email Id");
uid.setBounds(60,50,120,25);
frame.add(uid);
tid=new JTextField(20);
tid.setBounds(120, 50,150,24);
frame.add(tid);
upass=new JLabel("Password");
upass.setBounds(53,80,120,25);
frame.add(upass);
tpass=new JPasswordField(20);
tpass.setBounds(120, 80,150,24);
frame.add(tpass);
Login=new JButton("Login");
Login.setBounds(150,110,80,25);
frame.add(Login);
frame.setSize(370,216);
frame.setResizable(false);
frame.setVisible(true);
frame.setLocationRelativeTo(null);
JLabel background=new JLabel(new ImageIcon("C:\\Users\\Tousif\\Desktop\\Login.jpg"));
add(background);
}
public static void main(String []arg)
{
new LoginFrame();
}
}`尝试此操作,您需要使用
setContentPane
添加背景图像。您需要先添加背景图像,然后再添加标签、文本字段等其他对象
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
public class LoginFrame{
public LoginFrame() {
JLabel uid, upass;
JTextField tid;
JPasswordField tpass;
JButton Login;
JFrame frame = new JFrame("Login");
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
frame.setLayout(null);
JLabel background = new JLabel(new ImageIcon(
"C:\\Users\\Tousif\\Desktop\\Login.jpg"));
frame.setContentPane(background);
uid = new JLabel("Email Id");
uid.setBounds(60, 50, 120, 25);
frame.add(uid);
tid = new JTextField(20);
tid.setBounds(120, 50, 150, 24);
frame.add(tid);
upass = new JLabel("Password");
upass.setBounds(53, 80, 120, 25);
frame.add(upass);
tpass = new JPasswordField(20);
tpass.setBounds(120, 80, 150, 24);
frame.add(tpass);
Login = new JButton("Login");
Login.setBounds(150, 110, 80, 25);
frame.add(Login);
frame.setSize(370, 216);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] arg) {
new LoginFrame();
}
}
但是由于我使用setLayout()将其设置为null,因此无法设置图像
没错。不要使用空布局。Swing设计用于布局管理器
作为一个简单的例子,您可以执行以下操作:
JLabel background = new JLabel(...);
background.setLayout( new GridLayout(0, 2) );
background.add(label1);
background.add(textField1);
background.add(label2);
background.add(textField2);
frame.add(background);
如果您不喜欢该布局,请使用其他用户