我用按钮创建了框架,当按下它时,所有内容都被删除并替换为新内容。但是我无法显示标签,这是我的代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
getContentPane().removeAll();
jLabel2 = new javax.swing.JLabel();
jLabel2.setFont(new java.awt.Font("Tahoma", 0, 12));
jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel2.setText("Hello World!");
jLabel2.setLocation(80, 80);
jLabel2.setVisible(true);
getContentPane().add(jLabel2);
getContentPane().repaint();
pack();
}
我做错了什么? :(
答案 0 :(得分:2)
而不是repaint()
尝试validate()
。
答案 1 :(得分:1)
不要尝试删除所有内容并添加新组件,而是使用CardLayout
,这将“分层”面板,让您在它们之间导航。请参阅How to use CardLayout,您可以看到一个简单示例here
您还可以查看如何将CardLayout
与Netbeans GUI Builder here
答案 2 :(得分:1)
您应该使用validate()
代替repaint
。你的其他资源看起来很好。
validate方法用于使容器再次布置其子组件。在显示容器后修改此容器的子组件(添加到容器中或从容器中删除,或更改布局相关信息)时,应调用它。