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

想要从程序中的另一个.java文件访问textfield吗,java,swing,netbeans,Java,Swing,Netbeans,我的项目中有许多.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.setVi

我的项目中有许多.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;
}

如果我理解你的问题很简单,首先确保你的文本字段在访问之前进入作用域,一旦它进入,然后使用setter在所需的类中设置其引用,然后你就可以访问它。

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

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

public JTextField getMainTextField() {
    return t1;
}
下一个问题是
FTall
需要引用
FormTTS
的实例。最简单的方法可能是将引用传递给
FTall

private FormTTS mainForm;

public FTall(FormTTS mainForm) {
    this.mainForm= mainForm;
}
这将允许您通过使用
main表单
reference来访问
t1

JTextField field = mainForm.getMainTextField();
就个人而言,我不想公开文本字段,因为它给了调用方太多的访问权限,相反,我更愿意
返回
文本,如果需要,提供一种方法来更改它

所以在
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);
}
但那只是我

要获取该值,可以使用与上面类似的方法(获取文本字段)


那个区域的能见度是多少?@MadProgrammerHelp@BlackPanther这有什么关系?无论如何,它是可见的。如果它不可见,那么它也不应该显示错误!我所说的可见性是指变量的范围。它是公共的、私有的还是受保护的,或者它是否具有包级别的作用域?既然你说你是新来的,我不确定你是否有getter和setter,或者只是创建默认或公共访问的字段。如果它是一个私有字段,并且您遵循约定,那么应该有一个setter方法,使用该方法可以设置值,前提是您拥有该类的实例。嘿,我是一个新手,甚至听不懂您说的一个词。请明确创建您的字段并确保其范围,然后通过设置器将该字段的引用传递给您的类,然后当您所需的类进入scopeSir时,您将获得所创建字段的引用我想使用您喜欢的,我不想要写访问权限。你让我在FormTTS中写:public
String getMainText(){return t1.getText();}
,但是在FTall中写什么呢???因此,FTall中的一个变量从
String text=FormTTS.getMainText()行中的FormTTSSir获取t1的值它显示了一个错误->无法从静态上下文引用非静态方法getMainText(),这不是我写的。您需要对
FormTTS
实例的引用,在创建该实例时,应将其传递给
FTall
,这样您就可以访问其方法和信息,因为您提供的特定实例我没有得到它;这是您编写的右
String text=mainForm.getMainText()和as主窗体为FormTTS;我写了
String text=FormTTS.getMainText()在FTall.java中。。。如果不是这样,那么代码应该是什么?
mainForm
FormTTS
的一个实例,有一个区别;)
String text = mainForm.getMainText();