假设我有一个gui,gui由两部分组成,每个部分都有自己的类。
所以一个类包含一个JLabel
第二类包含带有提交按钮的文本字段
我将如何让这两个组件相互通信?
这当然是一个简单的例子,但是如果我有两个用于提交数据的类,一个用于显示提交数据的类,那么如何让两个组件进行通信?
答案 0 :(得分:2)
一些想法:
无论MVC如何,都可能有一个控制器类,通过嵌套的JPanel
和JTextField
等获取对UI对象(iE JLabel
s)的所有必要引用构造函数。
在构造时,该控制器可以将自身附加到那些嵌套组件。
控制器最好包含嵌套的,内部的或可能是匿名的类,用于实现监听器接口,而不是将监听器接口添加到控制器本身。首先,要封装这些侦听器,其次要避免事件源的区别,如果需要为多个组件(源)实现相同的接口。这些侦听器实现(可能是非常通用的PropertyChangeListener
)可以充当或使用mediator对象(如上所述)来更新其他组件。
答案 1 :(得分:1)
如果您有提交按钮,则可以向其添加动作侦听器。单击时,您可以调用其他类中将接收字符串的方法,然后将其显示在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新手的格式感到抱歉