Topic: 有趣的问题

  Print this page

1.有趣的问题 Copy to clipboard
Posted by: javanewer
Posted on: 2004-01-08 09:57

我用jbuilder9建立了一个progect,该progect含两个frame(frame1,frame2),
每个frame各有一个jbutton和jtextarea
(即frame1里有jbutton1和jtextarea1,frame2里有jbutton2和jtextarea2)
程序主要代码如下:

//jbutton1点击事件
public class Frame1 extends JFrame {
Frame2 Framesecond=new Frame2();

void jButton1_actionPerformed(ActionEvent e) {
   Framesecond.show();
}
}

//jbutton2点击事件
public class Frame2 extends JFrame {
void jButton2_actionPerformed(ActionEvent e) {
Frame1 FrameFirst=new Frame1();
FrameFirst.jtextarea1.setText("123");
this.dispose();
}
}
运行后为什么jtextarea1的值没有改变?
望各位高手赐教!
在其它编译器我也遇到了这个问题(如.net)

2.Re:有趣的问题 [Re: javanewer] Copy to clipboard
Posted by: sgecko
Posted on: 2004-01-08 11:06

>>void jButton2_actionPerformed(ActionEvent e) {
>>Frame1 FrameFirst=new Frame1();
>>FrameFirst.jtextarea1.setText("123");

你这里创建了新的Frame1的实例 - FrameFirst,它不是你在屏幕上看到的那个Frame1的实例,实际上它根本没有显示出来。把上面这段代码改成这样你就看到发生了什么事:

void jButton2_actionPerformed(ActionEvent e) {
Frame1 FrameFirst=new Frame1();
FrameFirst.jtextarea1.setText("123");
//添加下面这两行
FrameFirst.pack();
FrameFirst.show();

3.Re:有趣的问题 [Re: javanewer] Copy to clipboard
Posted by: javanewer
Posted on: 2004-01-09 08:06

按照楼上添加两行的说法,Frame1的实例FrameFirst确实正确的显示出来了,但是先前显示的Frame1还存在,如何使Frame1和Frame1的实例FrameFirst两个窗口仅显示一个(即两者不要同时显示在屏幕上)?

4.Re:有趣的问题 [Re: javanewer] Copy to clipboard
Posted by: nsd
Posted on: 2004-01-09 10:13

你可以在Frame1中实例化Frame2的时候把自己的引用传递过去,这样Framesecond就还能找到FrameFirst。顺便提醒一下,给变量命名不要用大写开头,不是规范的做法。

5.Re:有趣的问题 [Re: javanewer] Copy to clipboard
Posted by: Wendy0007
Posted on: 2004-04-06 10:51

顶!!!
学习……


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923