2

开始使用 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了public。

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

你能给我指出一些方向吗?

4

1 回答 1

5

tempmedespCost在您的班级中被定义为私有

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

您可以将 的可见性更改tempmedespCost为 protected 或创建一个 getter 让您访问tempmedespCost

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

于 2012-04-30T14:05:38.467 回答