Мне удалось это исправить, но я не понимаю, почему один и тот же код приводит к разным результатам.У некоторых одноклассников была такая же проблема.
Проблема в том, что я использую miVentana.setVisible(true);
до chicha();
, элементы внутри JPanel будут отображаться при выполнении, но если я запустлю его снова, иногда они не будут видныпока я не изменил размер окна, несколько раз не было видно даже цвета фона JPanel.Просто щелкнув по нижней части «Выполнить» в IDE, не меняя ничего другого.
Я пробовал это 10 раз подряд, и элементы были видны только с 4-й попытки.
Может ли это произойти из-за некоторыхпамять, оставшаяся от предыдущих выполнений кода?
Я использую Eclipse Version: Photon Release (4.8.0).
Это код со странным поведением:
public class Ej10 extends JFrame {
public Ej10() {
setLayout(null);
}
static Ej10 miVentana = new Ej10();
public static void main(String[] args) {
miVentana.setTitle("Ejercicio10");
miVentana.setBounds(20, 20, 500, 600);
miVentana.setLocationRelativeTo(null);
miVentana.setVisible(true);
chicha();
//miVentana.setVisible(true);
}
static void chicha() {
JPanel miPanel = new JPanel();
miPanel.setLayout(new BoxLayout(miPanel, BoxLayout.PAGE_AXIS));
miPanel.setBounds(20, 20, 350, 450);
miPanel.setBackground(Color.CYAN);
JLabel lUsuario = new JLabel("Usuario:");
lUsuario.setVisible(true);
JTextField campoUsuario = new JTextField();
JLabel lPwd = new JLabel("Contraseña:");
JPasswordField campoPwd = new JPasswordField();
JButton bAcceso = new JButton("Acceder");
miPanel.add(lUsuario);
miPanel.add(campoUsuario);
miPanel.add(lPwd);
miPanel.add(campoPwd);
miPanel.add(bAcceso);
miPanel.setVisible(true);
miVentana.add(miPanel);
}
}