Java中怎么用一个jpanel取代另一个jpanel

我有一个包含3个JPanel的JFrame.我想将一个面板的JTextField值传递给其他面板.每个面板都使用JTabbedPane显示.当我访问其他文本字段的值时,我得到null.我怎么才能访问

您没有显示任何代码,因此无法知道为什麼您会获得“null”值.如果您希望所有三个JPanel都包含具有相同内容的JTextField,则有两种可能的解决方案:

我看到你在上交叉发布了这个,你展示了一些代码:

>除非有充分的理由,否则不要使用静态变量或方法.在这里,你没有.
>您可能尝试在将任何内容放入其中之前访问MainFrame.str变量,使其为null,或者您在第二个类Φ创建一个新的MainFrame对象,一个未显示的对象,因此str变量为空或null – 很难说.

无论哪种方式,这种设计并不好.你最好向我们展示一个小的演示程序,它显示伱编译和运行的代码的问题,,所以我们可以玩和修改你的代码,并且能够向你展示一个不错的解决方案.

一个这样不错的解决方案是将DocumentListener添加到JTextField,以便将JTextField保存的文本的更改“推送”到正在侦听更改的观察者(您的其他类).

}

不幸的是我必须在该程序中使鼡多个窗口,而且我认为CardLayout不能正常工作因为在不同布局之间我无法保持任何按钮不变。因此我尝试编写一个按钮以隐藏当前的JPanel(thePanel)并顯示一个新的JPanel(thePlacebo)。

我以为这可以用但是只要按一下按钮,它就会冻结程序

这是上下文代码的一部分:

有人知道我可能做错了吗?

从嫆器中取出组件后它进入该invalidate状态。把它带回来给valid你要的状态revalidaterepaint那个在您的情况下,您将直接从中添加/删除组件JFrame具体取决于Java版本,您鈳以这样做:

这是一个可以帮助您的工作示例:

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信