黑马程序员技术交流社区

标题: 关于GUI的问题,求帮助 [打印本页]

作者: 侯凯斌    时间: 2013-1-31 15:20
标题: 关于GUI的问题,求帮助
本帖最后由 侯凯斌 于 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. }
复制代码

作者: 朱玉玺    时间: 2013-2-1 10:17
本帖最后由 朱玉玺 于 2013-2-1 10:21 编辑

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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2