假设我有一个 gui,gui 由两部分组成,每个部分都有自己的类。
所以一个类包含一个 JLabel。
第二类包含一个带有提交按钮的文本字段。
我将如何让这两个组件相互通信?
这当然是一个简单的例子,但是如果我有两个类,其中一个用于提交数据,一个用于显示提交的数据,那么如何使这两个组件通信?
假设我有一个 gui,gui 由两部分组成,每个部分都有自己的类。
所以一个类包含一个 JLabel。
第二类包含一个带有提交按钮的文本字段。
我将如何让这两个组件相互通信?
这当然是一个简单的例子,但是如果我有两个类,其中一个用于提交数据,一个用于显示提交的数据,那么如何使这两个组件通信?
一些想法:
不管 MVC 是什么,都可能有一个控制器类,通过构造函数获取对 UI 对象(JPanel
具有嵌套JTextField
s 和s 的 iE 等)的所有必要引用。JLabel
在构造时,该控制器可以将自己附加到那些嵌套组件。控制器最好包含嵌套的、内部的或者可能是匿名的类来实现监听器接口,而不是把监听器接口添加到控制器本身。第一,封装这些监听器,第二,避免事件源区分,如果需要为多个组件(源)实现相同的接口。然后这些监听器实现(可能非常通用PropertyChangeListener
)可以充当或使用中介对象(如前所述)来更新其他组件。
如果你有一个提交按钮,你可以给它添加一个动作监听器。单击后,您可以调用其他类中的方法,该方法将接收字符串,然后将其显示在您的 JLabel 上。然而,为不同的组件拥有多个类通常不是一个好主意,而拥有像 Sam 所说的那样的 MVC 要好得多。
带 JTextArea 的类
//Have this object created
JLabelClass JLC = new JLabelClass();
//When submit button is clicked run this
JLC.displayText(JTextArea.getText());
使用 JLabel 的内部类
//add this method
public void displayText(String text){
JLabel.setText(text);
//Refresh Gui and display stuff....
}
希望这会有所帮助...对于格式我对 StackOverflow 还是新手感到抱歉