我使用NetBeans为学校做工作。我有一个巨大的JPanel,包含一个巨大的JFrame。 JFrame作为5个小JFrame,1是带按钮的菜单,其他是带有文本的框,当我在按钮中选择时它将交换。 当一个框显示时,其他的框使用以下代码是不可见的(不知道它是否是最好的):
public ConversorUI() {
initComponents();
PanelVazio.setVisible(true);
PanelTemp.setVisible(false);
PanelComp.setVisible(false);
PanelMoedas.setVisible(false);
this.pack();
}
我的问题是, 当我运行我的程序时,我有一个没有任何空间的大空间,只有在它下面的组件出现 。我希望它们出现在我的窗口顶部。我能做什么 ?
ANSWER 经过一段时间的搜索后,我意识到我可以将布局从JPanel设置为卡片布局,并相互创建JPanels,用代码激活它们:
private void DinheiroButtonActionPerformed(java.awt.event.ActionEvent evt) {
//Remove Panels
CAIXA.removeAll();
CAIXA.repaint();
CAIXA.revalidate();
//Add Panels
CAIXA.add(DinheiroBox);
CAIXA.repaint();
CAIXA.revalidate();
}
答案 0 :(得分:0)
您可以一次加载一个jframe 因为您添加的每个jframe都有自己的位置,并且可见性不会删除任何内容 尝试保存每个jframe并进行更改 删除旧的并添加新的
答案 1 :(得分:0)
看起来你正在使用Java Swing,对吧?
如果你的JPanel包含JFrame,那么你做错了什么。要构建正确的UI,您必须在JFrame中添加JPanel。
此外,要获得正确的组件顺序并需要配置相应的布局,here就是说明。
答案 2 :(得分:0)
为什么使用多个JFrame来执行此操作?从我所看到的最好是使用可以处理各个任务的JPanels,例如菜单和按钮等。
我自己使用javax.swing比较新,但据我所知,每个窗口一次只能有1帧(就像其他人说的那样)。
从我能够从您的项目中辨别出来,您可能甚至不需要多个面板。您只需要一个带有按钮的菜单面板,以及根据按钮显示文本的多个标签或JLabel。您可以在编写addActionListener时使用setText方法,如下所示:
Query(Mymodel).filter(MyModel.managers.comparator.contains(["user@gmail.com"]))