java gui 打开另一个_java – 从另一个类访问GUI组件

首先尊重封装规则.将您的字段设为私有.接下来,您需要获取需要访问的字段的getter.

public class GUI {

private JTextField field = new JTextField();

public GUI() {

// pass this instance of GUI to other class

SomeListener listener = new SomeListener(GUI.this);

}

public JTextField getTextField() {

return field;

}

}

然后,您将要将GUI传递给任何需要访问文本字段的类.说一个ActionListener类.使用构造函数注入(或“传递引用”)来传递GUI类.执行此操作时,SomeListener中引用的GUI是相同的,并且您不会创建新的GUI(它不会引用您需要的同一实例).

public class SomeListener implements ActionListener {

private GUI gui;

private JTextField field;

public SomeListener(GUI gui) {

this.gui = gui;

this.field = gui.getTextField();

}

}

虽然上述方法可行,但可能是不必要的.首先考虑一下你想要对文本字段做什么.如果某些操作可以在GUI类中执行,但您只需要访问类中的某些内容来执行它,那么您可以使用需要执行某些操作的方法来实现接口.像这样的东西

public interface Performable {

public void someMethod();

}

public class GUI implements Performable {

private JTextField field = ..

public GUI() {

SomeListener listener = new SomeListener(GUI.this);

}

@Override

public void someMethod() {

field.setText("Hello");

}

}

public class SomeListener implements ActionListener {

private Performable perf;

public SomeListener(Performable perf) {

this.perf = perf;

}

@Override

public void actionPerformed(ActionEvent e) {

perf.someMethod();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值