【发布时间】:2019-03-06 20:19:45
【问题描述】:
我设法修复了它,但我不明白为什么相同的代码会导致不同的结果。有些同学也遇到过同样的问题。
问题是我在chicha();之前使用miVentana.setVisible(true);,JPanel中的元素将在执行时显示,但如果我再次运行它,有时它们在我调整窗口大小之前不会可见,有几次甚至不可见JPanel 背景颜色可见。只需单击 IDE 上的“运行”底部,无需更改任何其他内容。
我只是连续尝试了 10 次,元素仅在第 4 次尝试时可见。
这可能来自之前执行代码时留下的一些内存垃圾吗?
我正在使用 Eclipse 版本: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);
}
}
【问题讨论】:
标签: java swing jframe jpanel visibility