2

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

T1在这里

我现在只因为这个而遇到错误,因为它找不到符号 t1。

它是私人的,我不能将其更改为公开的

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

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

这在 FTall

 public JFrame getFrame() {
     return jFrame1;
}
4

2 回答 2

2

由于您的代码的结构方式,您需要提供一些方法FormTTS.t1

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

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();
于 2013-10-11T06:49:14.963 回答
0

如果我理解您的问题,首先确保您的文本字段在访问之前进入范围,一旦进入,然后使用设置器在所需类中设置其引用,然后您就可以访问它。

于 2013-10-11T06:43:09.823 回答