我的项目中有很多.java文件。从FTall.java我想访问FormTTS.java的{text field} t1('main'jFrame - > jPanel2)
我现在正因此而得到错误,因为找不到符号t1。
这是私人的,我无法将其改为公开
编辑: 我已经使用此代码从FormTTS.java中打开FTall: 在FormTTS中的按钮
FTall forma = new FTall();
JFrame frame = forma.getFrame();
forma.setVisible(true);
这是在FTall
public JFrame getFrame() {
return jFrame1;
}
答案 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在必需的类中设置它的参考,然后你可以访问它。