想要从程序中的另一个.java文件访问textfield

时间:2013-10-11 06:31:20

标签: java swing netbeans

我的项目中有很多.java文件。从FTall.java我想访问FormTTS.java的{text field} t1('main'jFrame - > jPanel2)

T1 is here

我现在正因此而得到错误,因为找不到符号t1。

这是私人的,我无法将其改为公开

编辑: 我已经使用此代码从FormTTS.java中打开FTall: 在FormTTS中的按钮

     FTall forma = new FTall();
JFrame frame = forma.getFrame();
forma.setVisible(true);

这是在FTall

 public JFrame getFrame() {
     return jFrame1;
}

2 个答案:

答案 0 :(得分:2)

由于代码的结构方式,您需要为FormTTS.t1

提供一些方法

FormTTS中,提供一种公开t1的方法,例如getMainTextField ......

public JTextField getMainTextField() {
    return t1;
}

您接下来的问题是FTall需要引用FormTTS的实例。可能最简单的方法是将引用传递给FTall

的构造函数
private FormTTS mainForm;

public FTall(FormTTS mainForm) {
    this.mainForm= mainForm;
}

这样,您只需使用t1引用...

即可访问mainForm
JTextField field = mainForm.getMainTextField();

就我个人而言,我宁愿不公开文本字段,因为它提供了对访问者的过多访问权限,而我更喜欢return文本,如果需要提供更改它的方法......

所以在FormTTS中,我可能会做类似......

public String getMainText() {
    return t1.getText();
}

// Do this only if you need to have write access
public void setMainText(String text) {
    t1.setText(text);
}

但那只是我......

要获得该值,您将使用与上述类似的方法(获取文本字段)

String text = mainForm.getMainText();

答案 1 :(得分:0)

如果我理解你的问题,首先要确保你的文本字段在访问之前进入范围,一旦它进入,然后使用setter在必需的类中设置它的参考,然后你可以访问它。