CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  J2SE / 基础类

为何用了二个面板,不能设置其中一个面板的文本框的内容?

楼主fly_ya(老猫)2006-03-08 19:50:15 在 Java / J2SE / 基础类 提问

import   java.awt.*;  
  import   java.awt.event.ActionEvent;  
  import   java.awt.event.ActionListener;  
  import   javax.swing.*;  
   
  public   class   SwingTest   {  
  public   static   void   main(String[]   args)   {  
  CFrame   frame   =   new   CFrame();  
  }  
  }  
   
  class   CFrame   extends   JFrame{  
  CPanelUp   panelUp   =   new   CPanelUp();       //   上面显示的结果文本框面板.  
  CPaneDown   panelDown   =   new   CPaneDown();     //   下面显示的计算器的按钮面板.  
   
  CFrame(){     //   JFrame默认的边框布局.  
  this.add(panelUp,BorderLayout.NORTH);      
  this.add(panelDown,BorderLayout.CENTER);  
  this.setSize(220,280);  
  this.setLocation(100,100);  
  this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
  this.setVisible(true);  
  }  
  }  
   
  class   CPanelUp   extends   JPanel{  
  TextField   resultText   =   new   TextField(20);  
   
  CPanelUp(){  
  this.setBackground(Color.RED);  
  this.add(resultText);  
   
  }  
   
  class   Event   implements   ActionListener{  
  public   void   actionPerformed(ActionEvent   e)   {  
  JButton   clicked   =   (JButton)e.getSource();  
   
  resultText.setText(clicked.getText());     //   这里为什么不能设置文本框的值.  
     
  System.out.println(clicked.getText());     //   而在这里却可以发现按钮确实单击了.  
   
  System.out.println(resultText.getText());   //   文本框的值也可以get出来.  
  }  
   
  }  
  }  
   
  class   CPaneDown   extends   JPanel{  
  JButton   button   =   new   JButton("按钮");  
   
  CPaneDown(){  
  this.add(button);  
  CPanelUp   tt   =   new   CPanelUp();  
   
  button.addActionListener(tt.new   Event());  
  }  
  }  
   
   
   
  问题点数:100、回复次数:3Top

1 楼tjjzs(王、)回复于 2006-03-09 11:24:10 得分 100

你确定不行?  
  输出结果:  
  按钮  
  按钮  
   
   
  代码中这两句要这么写:  
          this.getContentPane().add(panelUp,   BorderLayout.NORTH);  
          this.getContentPane().add(panelDown,   BorderLayout.CENTER);Top

2 楼tjjzs(王、)回复于 2006-03-09 11:53:08 得分 0

不好意思,没看清楚楼主的意思  
  用了两个面板的确是不行  
  面板刷新的问题吧  
  把按钮和文本框放在同一个panel里就行了  
  Top

3 楼fly_ya(老猫)回复于 2006-03-10 18:41:48 得分 0

class   CPaneDown   extends   JPanel{  
  JButton   button   =   new   JButton("按钮");  
   
  CPaneDown(){  
  this.add(button);  
  CPanelUp   tt   =   new   CPanelUp();  
   
  button.addActionListener(tt.new   Event());  
  }  
  }  
   
   
  实际上,在CPanelUp   tt   =   new   CPanelUp();这里又重新生成了一个CPanelUp对象,  
  而这一个对象并不是在Frame中产生的,所以在Frame中的CpanelUp中的Text是不  
  会发生改变的。Top

相关问题

  • 判断文本框内容
  • 请问如何用SendMessage为一个文本框设置文本内容?
  • 请问,要将将文本框的内容靠左边,应该如何设置?
  • 能不能用代码设置水晶报表中文本框的内容?
  • 文本框边框线颜色设置
  • 在文本框中插入图片,怎么设置才能使得图片中不会有内容被盖住?
  • 判断文本框内容问题
  • 逐行读取文本框中内容?
  • 判断文本框内容改变
  • 如何将文本框对像作为变量传给函数,由函数设置这个文本框的值

关键词

  • 文本框
  • 面板
  • cpanedown
  • cpanelup
  • resulttext
  • cframe
  • jbutton
  • 按钮
  • jframe
  • gettext

得分解答快速导航

  • 帖主:fly_ya
  • tjjzs

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo