//前辈这个程序照您说的改了还是会报错.
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
class zhuFrame extends JFrame
{ //创建一个文本区
JPanel jpb=new JPanel();//创建按键面板
JPanel jptx=new JPanel();//创建文本区面板
JTextArea jtx=new JTextArea("一,二,三,四,五,六,七,八,九,十");//创建文本区
JButton jbo=new JButton("打开动作窗口");//创建按键
public zhuFrame()//构造函数
{
super.setDefaultCloseOperation(3);//设置窗体的关闭按钮
setLayout(new BorderLayout());//设置布局
add(jpb,BorderLayout.NORTH);//增加文本区
jpb.setLayout(new FlowLayout());//设置布局为流式
jpb.add(jbo);//在面板上加上按键
jbo.addActionListener(new ActionListener(){//按键添加监听器
public void actionPerformed(ActionEvent e)
{
new ling();//打开ling窗体
}
});
add(jptx,BorderLayout.CENTER);//添加文本区面板
jptx.setLayout(new GridLayout());//设置布局为网络
jptx.add(jtx);//文本区面板加上文本区
setSize(600,480);//设置窗体大小
show(); //显示窗体
}
}
class Run//运行类
{
public static void main(String args[])
{
new zhuFrame();//打开zhuFrame窗体
}
}
class ling extends JFrame//另一个窗体
{
///////////////////////////////////////////////////////////////////////////////
// zhuFrame z=new zhuFrame();//为了能调用zhuFrame的jtx这里加了一个实例
zhuFrame z;
//***********************
//但是问题是这里会产生一个zhuFrame窗体;
//请问如何不让它产生这个窗体,而且还能调用zhuFrame的jtx
JButton jb1=new JButton("改变zhuFrame的文本框内容");//创建一个按钮
// public ling()//构造函数
public ling(zhuFrame z)
{//***********************
super.setDefaultCloseOperation(3);//设置窗体的关闭按钮
this.z=z;
//*****************
///////////////////////////////////////////////////////////////////////////////
add(jb1);//添加这个按钮
jb1.addActionListener(new ActionListener(){//添加按钮监听器
public void actionPerformed(ActionEvent e)
{
int x=9999;//定义一个数
double y=x * Math.random();//定义另一个数
z.jtx.setText(""+y);//改变zhuFrame中的jtx文本区内容
}
});
setSize(200,200);//设置窗体大小
Toolkit t=Toolkit.getDefaultToolkit();//得到屏幕尺寸
int w=t.getScreenSize().width;//定义一个变量接受屏幕的宽
setLocation( (int)w-getSize().width,0);//设定ling窗体的显示位置
show();//显示窗体
}
}
//报错如下
/*
--------------------Configuration: <Default>--------------------
D:\JAVA\huatu\huatutan.java:24: cannot find symbol
symbol : constructor ling()
location: class ling
new ling();//打开ling窗体
^
D:\JAVA\huatu\huatutan.java:64: local variable z is accessed from within inner class; needs to be declared final
z.jtx.setText(""+y);//改变zhuFrame中的jtx文本区内容
^
Note: D:\JAVA\huatu\huatutan.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
2 errors
Process completed.
*/