使用GUI控件自动生成的jTextArea在类外为什么不能对其操作?
各位老师,我碰到的问题问题如下:
我使用Netbeans里的控件做了一个软件界面,其中有一个文本域jTextArea是用来显示数据库里信息的,下面代码的第一行就是控件拉好后系统自动生成的代码。printData()方法是我想用来对这个文本域设置显示文本信息的方法。我想把这个方法封装一下,写一个专门的类来描述它,因为要涉及到数据库中数据的实时显示,需要另做定时器来调用这个方法。遇到的问题是这样的:当我把这个方法单独拿出来建立了一个类后,在这个新建的类里,是无法访问jTextArea1这个文本域的,无法对其进行操作。有没有解决这个问题的方法呢?各位老师,谢谢!初学java,或许问题本身幼稚,各位老师见谅!
public javax.swing.JTextArea jTextArea1;
// End of variables declaration
public void printData(){
java.util.List<Sensor> sensorInfo = new ArrayList<Sensor>();
DataBase db_light=new DataBase();
sensorInfo =db_light.getData();
Iterator<Sensor> sensorInfoIte = sensorInfo.iterator(); //
while (sensorInfoIte.hasNext()) {
Sensor sensorData= new Sensor();
sensorData=sensorInfoIte.next();
jTextArea1.append(""+ sensorData.getDate());
jTextArea1.append(" ");
jTextArea1.append(""+ sensorData.getLight());
jTextArea1.append(" ");
jTextArea1.append(""+ sensorData.getTemperature());
jTextArea1.append("\n");
}
}
------解决方案--------------------class JP {
public javax.swing.JTextArea jTextArea1;
....
}
class JP2 {
new JP().jTextArea1.append(""+ sensorData.getDate());
}
为什么要这样做呢?
------解决方案--------------------你要显示数据到指定文本上肯定不能new嘛
new了就是新的窗体对象,怎么可能显示到原来的窗体对象上
新类中添加一个构造函数,参数是JTextArea ,构造对象的时候传你要改变的JTextArea 对象进去