gpt4 book ai didi

java - Netbeans Swing 图形用户界面

转载 作者:行者123 更新时间:2023-12-02 03:51:57 25 4
gpt4 key购买 nike

我已使用 Swing 在 Netbeans 中创建了一个 GUI,但无法理解在 GUI 中设置文本区域值的最佳方法。

该 GUI 的 netbeans 类称为 JFrameTest,并且有一个 public static void main 方法用于在该 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 显示 GUI 的代码是:

    JFrameTest newwindow = new JFrameTest();
newwindow.setVisible(true);

我明白了这么多,但我无法引用我的文本区域 newwindow.JTextFiles 因为 netbeans 在以下位置设置了所有 init 组件:

private void iniComponents() 

保密!

我不明白为什么 Netbeans 设计者制作 GUI,以便您无法从类外部设置文本字段等的值。

最好的前进方向是什么?将 GUI 放入 GetFiles 类中还是......?

谢谢

-AL

像这样:

    public String assigntext(String directorystring) {
JTextFiles.setText(directorystring);
}

最佳答案

I can not understand why Netbeans designer makes the GUI so that you can not set the values of text fields etc from outside the class.

出于同样的原因,当您创建自己的类时应该为它们提供私有(private)字段,这些字段不能从外部类直接访问和不加区别地操作。它的名字叫information hiding或封装,是面向对象编程原则的支柱,因为它有助于降低代码复杂性,从而减少错误。如果您需要更改字段的状态,请通过公共(public)方法以受控方式执行此操作 - 您可以使用 NetBeans 生成的 GUI 来执行此操作。

如果您确实使用公共(public)方法,请尽量减少暴露类的字段。因此,例如,如果您希望外部类从 JTextField、fooTextField 获取文本,则更喜欢这样:

public String getFooTextFieldText() {
return fooTextField.getText();
}

在此:

public JTextField getFooTextField {
return fooTextField;
}
<小时/>

您的问题是:

public String assigntext(String directorystring) {
JTextFiles.setText(directorystring);
}

这类似于 ssetter 方法,并且由于使用 setter 类型方法,您正在更改实例的状态,但通常不期望任何返回,因此您可以将此设置为 void:

// note the difference?
public void assigntext(String directorystring) {
JTextFiles.setText(directorystring);
}

关于java - Netbeans Swing 图形用户界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35803541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com