【发布时间】:2011-02-18 15:54:34
【问题描述】:
我正在尝试制作一个带有简单登录屏幕的小程序,如果我使用普通组件它可以正常工作,但如果我使用摆动组件,则该对象在单击之前不会显示。我会使用常规组件,但我需要一个隐藏的密码字段(如果有非 Swing 版本,请告诉我)。
我试图在左上角垂直放置。
public class RdpApplet extends JApplet {
JButton Connect;
JTextField Username;
JPasswordField Password;
JLabel UsernameLabel;
JLabel PasswordLabel;
//(Snip)
public void paint(Graphics g){
}
public void start(){
}
public void stop(){
}
public void init(){
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JPanel panel = new JPanel (new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.insets = new Insets(2,5,1,1);
gbc.weightx = 1.0;
gbc.anchor = GridBagConstraints.WEST;
gbc.gridwidth = GridBagConstraints.REMAINDER;
UsernameLabel = new JLabel("Username:");
panel.add(UsernameLabel,gbc);
Username = new JTextField(15);
panel.add(Username,gbc);
PasswordLabel = new JLabel("Password:");
panel.add(PasswordLabel,gbc);
Password = new JPasswordField(15);
panel.add(Password,gbc);
Connect = new JButton("Connect");
panel.add(Connect,gbc);
gbc.weighty = 1.0;
gbc.anchor = gbc.NORTHWEST;
setLayout(new FlowLayout(FlowLayout.LEFT));
add(panel);
validate();
panel.validate();
}});
}
//(Snip)
}
如果我使用 JButton 和 JTextField 和 JLabel,则项目在我与它们交互之前不会显示(单击文本字段,鼠标悬停在按钮上,我无法显示标签)如果我使用正常版本我在标签周围得到了丑陋的灰色背景。
谁能帮我看看我做错了什么才能让一切正常运行。
编辑: 从 Applet 更改为 JApplet 并没有解决问题。
编辑2: 添加了其他方法。
编辑3: 光标现在从用户名框中开始,但在与之交互之前,一切仍然是不可见的。使用所有最新建议更新了代码。
【问题讨论】: