开始使用netbeans创建一个简单的GUI,现在我遇到了一些问题。

我有这个:

package my.sccsymapp;

public class sccsymapp extends javax.swing.JFrame {
    /*SOME CODE*/
    public static void main(String args[]) {
        /*SOME CODE*/
    }
    // Variables declaration - do not modify
    private javax.swing.JTextField tempmedespCost;
    // End of variables declaration
}


如果我运行此程序,它将按预期工作。 test放在我的JTextField上。

但是我想做的是在代码的其他一些类中使用tempmedespCost.setText("test");

我有这个课:

package my.sccsymapp;

import java.util.*;

public class Servico extends sccsymapp{
    /*SOME CODE*/
    public void relat (){
    /*SOME CODE*/
    tempmedespCost.setText("test");
    }
    /*SOME CODE*/
}


现在它说:

tempmedespCost has private access in my.sccsymapp.sccsymapp

因此,我已将tempmedespCost更改为公开。

现在没有显示错误,运行没有错误,但是test不在我的JTextField上。

你能指出我的方向吗?

最佳答案

tempmedespCost在您的班级中定义为私人

private成员只能由属于该类成员的函数访问。班级的子级(如Servico)不能访问私有字段。

您可以将tempmedespCost的可见性更改为受保护,也可以创建一个允许您访问tempmedespCost的吸气剂。

我建议您阅读Controlling Access to Members of a Class中有关Java可见性的一些文档。

关于java - Java在JTextField上显示结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10384995/

10-10 19:34