A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 侯凯斌 中级黑马   /  2013-1-31 15:20  /  1184 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 侯凯斌 于 2013-2-18 11:45 编辑

有两个问题  
1   有时候我运行的时候TextArea  不会显示出来  不知道是不是myeclipse的bug还是代码问题
2  为什么我的TextField  和TextArea   要设置成final  下面才能访问呢?
  1. public class test {
  2.         public static void main(String[] args) {

  3.                 Frame f = new Frame("窗体");
  4.                 f.setSize(600, 400);// 设置宽 高
  5.                 f.setLocation(400, 150);// 设置初始位置
  6.                 // f.setBounds() 设置 坐标 宽 高
  7.                 // 设置布局方式
  8.                 f.setLayout(new FlowLayout());
  9.                 f.setVisible(true);
  10.                
  11.                 f.addWindowListener(new WindowAdapter() {
  12.                           public void windowClosing(WindowEvent e) {
  13.                                   System.exit(0);
  14.                           }
  15.                 });

  16.                 // 创建单行文本框组件
  17.                 final TextField tf = new TextField(30);
  18.                 // 把文本框组件绑定到窗体
  19.                 f.add(tf);

  20.                 Button b2 = new Button("提交");
  21.                 f.add(b2);
  22.                 // 创建多行文本框
  23.                 final TextArea ta = new TextArea(10, 80);
  24.                 f.add(ta);

  25.                 b2.addActionListener(new ActionListener() {

  26.                         public void actionPerformed(ActionEvent e) {
  27.                                 String text = tf.getText();
  28.                                 ta.append(text+"\r\n");
  29.                                 
  30.                                 tf.setText("");

  31.                         }
  32.                 });

  33.         }
  34. }
复制代码

2 个回复

倒序浏览
本帖最后由 朱玉玺 于 2013-2-1 10:21 编辑

因为你是内部类调用外部类的局部变量,所以要加final,另外,写GUI最好不要把这些实现,写在main方法中;可以把GUI整体作为一个类,然后main中创建这个类的实例,否则由于main的特殊性,容易导致这样那样的问题。至于为什么要加final,你可以想一下,当你调用ta的时候,main函数已经执行完了,textArea作为局部变量,此时已经不存在了,那你怎么才能找到textArea?所以需要加final,把它定义成全局变量~

评分

参与人数 1黑马币 +5 收起 理由
黄锦成 + 5

查看全部评分

回复 使用道具 举报
非常感谢,我明白了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马