3

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

如何访问它?

4

4 回答 4

6

只需将 TextField 设为 Public Static 即可。然后你可以使用 ClassName.TextFiledName 访问 TextField

于 2012-09-10T10:26:06.380 回答
2

一个简单的解决方案是在您实现 ActionListener 的类中创建一个构造函数,并在构造函数中传递您需要更新或检索值的组件。

此解决方案将起作用,但有一种更好的方法可以使代码更可重用。查看观察者模式并在您的代码中使用它。

于 2012-09-10T10:11:42.807 回答
0

好吧,因为没有SSCCE,这将是一个普遍的答案。
首先,您可以将文本框设为公共静态字段并从其他类访问它,但这将是您编写的最糟糕的代码之一。其次,您可以使用很酷但随着程序变得复杂而表现不佳的 setter/getters 方法。Setter/getter 将在组件之间创建紧密耦合。最后我建议使用观察者模式。这看起来像是对自行车使用核武器,但最终还是值得一开始的麻烦——而且你在这个过程中学到了一些东西。
更多信息和示例源代码可以在Source Making中找到。

于 2012-09-10T10:08:56.863 回答
0

您应该有一个Controller从中创建面板的类。保持对控制器类中面板的引用。在您的中公开一个 getter 方法CustomPanel1以返回 TextField 中的文本(而不是文本字段本身)。CustomPanel2同样,您也可以从Controllerand keep 参考创建第二个。在您的控制器中定义监听器类并将其传递给您的第二个面板。在第二个面板中,将侦听器添加到您的按钮。

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

摇摆教程

于 2012-09-10T11:18:43.840 回答