从另一个类的JPanel文本字段中获取价值

时间:2012-09-10 08:11:03

标签: java swing

我有JPanel文本框,另一个面板中保存按钮。如果单击“保存”按钮 我必须得到第一个面板文本框值。

如何访问它?

4 个答案:

答案 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并保留参考。在控制器中定义侦听器类并将其传递给第二个面板。在第二个面板中,将监听器添加到按钮中。

这将是一个简单的解决方案。

Swing Tutorial