开始使用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上。
你能指点我吗?
答案 0 :(得分:5)
tempmedespCost
在您的班级中被定义为私人
private
成员只能由属于该类成员的函数加入。班级的孩子(如Servico
)无法访问私人领域。
您可以将tempmedespCost
的可见度更改为受保护,也可以创建一个允许您访问tempmedespCost
的获取者
我建议你在Controlling Access to Members of a Class中阅读一些关于Java可见性的文档。