我有JPanel
文本框,另一个面板中保存按钮。如果单击“保存”按钮
我必须得到第一个面板文本框值。
如何访问它?
答案 0 :(得分:5)
只需将TextField设为Public Static即可。然后你可以使用ClassName.TextFiledName
访问TextField答案 1 :(得分:2)
一个简单的解决方案是在实现ActionListener的类中创建一个构造函数,并在构造函数中传入需要更新或检索值的组件。
此解决方案可行,但有一种更好的方法可以使代码更具可重用性。请查看observer pattern并在您的代码中使用它。
答案 2 :(得分:0)
因为没有SSCCE,这将是一个普遍的答案
首先,您可以将文本框设置为公共静态字段,并从其他类访问它,但这将是您将编写的最差代码之一。其次,您可以使用setter / getters方法,这些方法虽然很酷,但随着程序变得复杂而表现不佳。 Setters / getters将在组件之间创建紧密耦合。最后我建议使用Observer模式。看起来好像是使用核武器来对付自行车,但最终它值得最初的麻烦 - 你在这个过程中学到了一些东西。
可以在Source making找到更多信息和示例源代码。
答案 3 :(得分:0)
您应该从创建面板的位置获得Controller
课程。保持对控制器类中面板的引用。在CustomPanel1
中展示一个getter方法,以返回TextField中的文本(而不是textfield本身)。同样,您也可以从CustomPanel2
创建第二个Controller
并保留参考。在控制器中定义侦听器类并将其传递给第二个面板。在第二个面板中,将监听器添加到按钮中。
这将是一个简单的解决方案。