java - 我可以阅读但无法编辑主类内容

标签 java netbeans

我正在使用 netbeans 来通过用户界面进行编程... 我有一个名为“NewJFrame.java”(A) 的主类和另一个类 名为“NewClass.java”(B)。类 A 扩展为类 B,如下所示:

public class NewClass extends NewJFrame{
   ...
}

ClassA 的内容是公共(public)静态的,如下所示:

public static javax.swing.JTextField TextBox1;

我在 classA 中还有一个按钮。所以当我单击该按钮时,它会调用一个函数 来自 classB 并且该函数需要编辑 TextBox1 的文本...

这是我单击按钮时发生的情况:

private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                               

    String Str1;
    NewClass nc = new NewClass();
    Str1=nc.call();

}

这是ClassB中的函数:

public String call()
{

    String Str;
    Str = TextBox1.getText();
    TextBox1.setText(Str + "1");  //This part isn't work.
    JOptionPane.showConfirmDialog(null,Str,"22222222",JOptionPane.PLAIN_MESSAGE);
    return Str;
}

所以我可以读取 TextBox1 的文本并将其显示在消息框中,但无法编辑他的文本。 如果我将此代码放在主类中,它可以完美工作,但在另一个类中,它不起作用。 有人可以帮我解决这个问题吗?

(我使用的是 netbeans 6.9.1)

<小时/>

我只是尝试使用另一个类来添加我的代码,因为我不希望所有代码都保留在同一个文件中,这没有用...来吧,有人需要知道如何做到这一点,而你不能全部编写*.java 文件中的代码对吗?

最佳答案

您遇到的问题与 NetBeans IDE 无关, 使用此代码的任何 IDE 都会遇到同样的问题。

实现此目的的一种方法是在 NewClass 中聚合 NewJFrame 类 而不是扩展它:

让我用一些代码来解释一下:

public class NewClass {
    private NewJFrame frame = null;

    public NewClass(NewJFrame frame) {
        this.frame = frame;
    }

    public String call()
    {

        String text;
        text = frame.TextBox1.getText();
        frame.TextBox1.setText(text + "1");  //This will work now.
        JOptionPane.showConfirmDialog(null,text,"22222222",JOptionPane.PLAIN_MESSAGE);
        return text;
    }

}

在这里,我们将收到对调用 JFrame 类的引用,并将使用字段 在该类中定义。

private void jToggleButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                               

    String Str1;
    NewClass nc = new NewClass(this); // see the parameter we are passing here
    Str1=nc.call();

}

当我们创建 NewClass 类的对象时,我们将传递该对象的引用 当前正在调用NewJFrame对象

这可以工作,检查一下。

现在来看看为什么你的代码不起作用。当NewClass扩展NewJFrame时 当您创建 NewClass 类的新对象时,它包含一个单独的 NewJFrame 的副本,与调用 NewJFrame 引用不同 该字段正在另一个 JFrame 中设置,而不是您想要的。

谨致
图沙尔乔希,那格浦尔

关于java - 我可以阅读但无法编辑主类内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4112542/

相关文章:

java - 如何将 Swing 组件从 JFrame 移动到 JScrollPane?

java - Maven项目依赖Ant项目

java - 用于将数据从 Excel 插入 MySQL 的 JDBC 库

java - Netbeans GUI 不显示对象

java - <class> 的类型是 netbeans 中的错误错误

java - 严重 : Allocate exception for servlet <myservlet-name> java. lang.ClassNotFoundException:<myservlet> 异常

java - Netbeans 开发 PHP 脚本时速度很慢

java - 将 JMX MBean 访问记录到日志文件中

java - JFreeChart : Zoom-in for domain axis is not working when CategoryAxis is used

java - 列出 Spring IoC 容器中的注入(inject)顺序