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 |