我一直有一些 JPanel 没有出现的问题(可能是因为所有东西都是在摆动中穿线的?)。我已经尝试在添加位置重新排序,添加SwingUtilities.invokeLater(...);
但仍然没有工作。在谷歌上搜索,他们中的大多数人只是说使用 invokeLater 函数,这对我不起作用。我假设它不需要布局管理器,因为大小和位置是由 .SetBounds() 完成的?这是我目前得到的代码
public class MenuLogin extends JPanel{
private JTextField txtUsername;
private JPasswordField txtPassword;
public MenuLogin(){
setBounds(0, 0, 380, 205);
setBackground(Color.WHITE);
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JLabel lblLogin = new JLabel("Login");
lblLogin.setBounds(155, 5, 85, 42);
lblLogin.setFont(new Font("Trebuchet MS", Font.PLAIN, 36));
lblLogin.setHorizontalAlignment(SwingConstants.CENTER);
JPanel form = new JPanel(); // The panel that won't show
form.setBorder(null);
form.setBounds(10, 74, 390, 195);
add(form);
form.setLayout(null);
form.setVisible(true);
txtUsername = new JTextField();
txtUsername.setFont(new Font("Trebuchet MS", Font.PLAIN, 17));
txtUsername.setToolTipText("Username");
txtUsername.setBounds(10, 30, 370, 30);
txtUsername.setColumns(16);
form.add(txtUsername);
txtPassword = new JPasswordField();
txtPassword.setFont(new Font("Trebuchet MS", Font.PLAIN, 17));
txtPassword.setToolTipText("Password");
txtPassword.setColumns(16);
txtPassword.setBounds(10, 78, 370, 30);
form.add(txtPassword);
JButton btnProceed = new JButton("Proceed");
btnProceed.setFont(new Font("Trebuchet MS", Font.PLAIN, 15));
btnProceed.setBounds(150, 119, 94, 30);
form.add(btnProceed);
JButton btnPlayAsGuest = new JButton("Play As Guest");
btnPlayAsGuest.setFont(new Font("Trebuchet MS", Font.PLAIN, 9));
btnPlayAsGuest.setBounds(291, 161, 89, 23);
form.add(btnPlayAsGuest);
JButton btnSignUp = new JButton("Sign Up");
btnSignUp.setFont(new Font("Trebuchet MS", Font.PLAIN, 13));
btnSignUp.setBounds(155, 160, 83, 23);
form.add(btnSignUp);
add(lblLogin);
}
});
}
}
唯一的事情是,第一个 JLabel 显示...
关于为什么它仍然没有显示的任何建议都会很好。谢谢。