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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘云龙 中级黑马   /  2013-1-17 12:57  /  1507 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


  1. import  javax.swing.*;
  2. import java.awt.*;
  3. import java.awt.event.*;

  4. public class Test
  5. {
  6.         public static void main(String[] args)
  7.         {
  8.                 new MyFrame();
  9.         }
  10. }

  11. class MyFrame
  12. {
  13.         MyFrame()
  14.         {
  15.                 JFrame f = new JFrame("MyFrame");
  16.                 f.setLayout(new BorderLayout());
  17.                 f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  18.                 f.setVisible(true);
  19.                 f.setBounds(120,100,200,230);

  20.                 JLabel lab = new JLabel();

  21.                 JButton btn = new JButton();
  22.                 btn.addActionListener(new ActionListener()
  23.                 {
  24.                         public void actionPerformed(ActionEvent e)
  25.                         {
  26.                                 lab.setText("success!");//这里提示:从内部类中访问局部变量 lab;需要被声明为最终类型!
  27.                                                                                 //有没有方法不设置成final类型,而用一个控件控制另一个控件的动作?
  28.                                 //System.out.println("button");
  29.                         }
  30.                 });

  31.                 f.add(lab,BorderLayout.SOUTH);
  32.                 f.add(btn,BorderLayout.EAST);
  33.         }
  34. }
复制代码

3 个回复

倒序浏览
不知道你说的一个控件控制另一个控件的动作是什么意思?

你是想在 actionPerformed事件里用lab.setText("success!");这句修改lab标签的文字吗?
回复 使用道具 举报
这样写就可以了:
mport  javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class Test2
{
        public static void main(String[] args)
        {
                new MyFrame();
        }
}

class MyFrame
{
            JLabel lab = new JLabel();
        MyFrame()
        {
                JFrame f = new JFrame("MyFrame");
                f.setLayout(new BorderLayout());
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.setVisible(true);
                f.setBounds(120,100,200,230);

               

                JButton btn = new JButton();
                btn.addActionListener(new ActionListener()
                {
                        public void actionPerformed(ActionEvent e)
                        {
                                lab.setText("success!");//这里没有了错误提示                      }
                });

                f.add(lab,BorderLayout.SOUTH);
                f.add(btn,BorderLayout.EAST);
        }
}
回复 使用道具 举报
yong230 发表于 2013-1-17 14:27
这样写就可以了:
mport  javax.swing.*;
import java.awt.*;

嗯  是这样的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马