Я пытаюсь создать апплет с простым экраном входа в систему, если я использую обычные компоненты, он работает нормально, но если я использую компоненты 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, элементы не отображаются до тех пор, пока я с ними не взаимодействую (щелкните текстовое поле, наведите курсор мыши на кнопку, я не могу получить метку для отображения) и если я использую обычный версии я получаю уродливые серые фоны вокруг этикеток.
Может кто-нибудь помочь показать мне, что я делаю неправильно, чтобы все работало правильно.
EDIT:
Переход с апплета на JApplet не решил проблему.
EDIT2:
добавлены другие методы.
EDIT3:
Курсор теперь запускается в поле имени пользователя, но все остается невидимым, пока с ним не взаимодействуют. Обновлен код со всеми последними предложениями.