Netbeans Swing GUI
问题描述:
我在使用Swing的Netbeans中创建了一个GUI,并且无法理解在GUI中设置文本区域值的最佳方法。Netbeans Swing GUI
这个GUI在NetBeans类被称为JFrameTest并没有对这个JFrameTestClass内显示GUI公共静态无效的主要方法:
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new JFrameTest().setVisible(true);
}
});
}
从另一个类调用的GetFiles我想显示该GUI
现在,并将名为JTextFiles的文本区域设置为字符串值。
的代码显示来自GetFiles的图形用户界面是:
JFrameTest newwindow = new JFrameTest();
newwindow.setVisible(true);
这一点我理解,但我不能引用我的文字区域newwindow.JTextFiles因为NetBeans的设置全部初始化组件:
private void iniComponents()
为私人!
我不明白为什么Netbeans设计师制作图形用户界面,以便您不能从课堂外设置文本字段等的值。
什么是最好的前进方向?将GUI放入GetFiles类或....?
感谢
-AL
像这样:
public String assigntext(String directorystring) {
JTextFiles.setText(directorystring);
}
答
我不明白为什么Netbeans的设计师,使图形用户界面,让你不能从设置的文本字段等的值课外。
出于同样的原因,当你创建自己的类你应该给他们不能直接访问,从外部类胡乱操作私有字段。它被称为information hiding或封装,并且是面向对象编程原则的一个支柱,因为它有助于降低代码复杂性并从而减少错误。如果您需要更改字段的状态,请通过公共方法以受控方式执行 - 您可以使用NetBeans生成的GUI执行此操作。
如果您确实使用公共方法,那么这样做可以使您的类的字段最少。因此,举例来说,如果你想要一个课外摆脱一个JTextField,fooTextField文字,喜欢这样的:
public String getFooTextFieldText() {
return fooTextField.getText();
}
在此:
public JTextField getFooTextField {
return fooTextField;
}
重新您的问题关于:
public String assigntext(String directorystring) {
JTextFiles.setText(directorystring);
}
这类似于ssetter方法,并且因为使用setter类型方法,您将更改实例的状态,但通常是d on't期待任何回报,你会做这个空白:
// note the difference?
public void assigntext(String directorystring) {
JTextFiles.setText(directorystring);
}
因此该方法的语法,以文本字段的值设置为: –
@AlGrant:我不清楚在刚刚你上面问,而且我不确定什么“上课”是 - 你的意思是“同一个”班吗?这完全取决于,有时代码需要在同一个类中,有时在不同的类中,这取决于代码和问题的具体情况(我们目前所知甚少)。但永远记住一个关于类的关键规则,[单一责任原则](https://en.wikipedia.org/wiki/Single_responsibility_principle):每个类都应该对单一功能负责。 –
因此,设置文本字段值的方法的语法是: [code] public String setFooTextFieldText(String text){ setText(FooTextFieldText); } [/ code] 干杯 –