2 qq496872668 qq496872668 于 2016.03.06 23:46 提问

java 怎么给按钮设置索引?

我想给按钮4和按钮5添加鼠标单击事件,但是我不知道怎么加,求大神给个方法
import java.awt.*;
import javax.swing.*;
public class yt extends JFrame{
static int t;
public static JButton an;

public static void main(String[] args) {
    JFrame j=new JFrame();
    Container c=j.getContentPane();
    JPanel j1=new JPanel();
    j1.setLayout(new FlowLayout(1,10,10));
    for(t=0;t<10;t++){
         an=new JButton("按钮"+t);
         j1.add(an);
    }

    c.add(j1);


    j.setVisible(true);
    j.setSize(400,300);
    j.setDefaultCloseOperation(EXIT_ON_CLOSE);

}

}

5个回答

xionglangs
xionglangs   Rxr 2016.03.07 15:15
已采纳

public class yt extends JFrame {
public static void main(String[] args) {
anniu();
}

public static void anniu() {
    JFrame j = new JFrame();
    Container c = j.getContentPane();
    JPanel j1 = new JPanel();
    j1.setLayout(new FlowLayout(1, 10, 10));
    for (int t = 0; t < 10; t++) {
        final JButton an = new JButton("按钮" + t);
        j1.add(an);
        an.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.out.println(an.getText());
                if ("按钮4".equals(an.getText())) {
                    System.out.println("按钮4");
                } else if ("按钮5".equals(an.getText())) {
                    System.out.println("按钮5");
                }
            }
        });
    }

    c.add(j1);
    j.setVisible(true);
    j.setSize(400, 300);
    j.setDefaultCloseOperation(EXIT_ON_CLOSE);
}

}

你在对象an上添加监听事件就一直会监听按钮9,因为你的对象for循环里面每次都重新给了个地址,所以an的地址其实就是按钮9的地址,改成这样就可以了。

u013596119
u013596119   Rxr 2016.03.06 23:50
 for(t=0;t<10;t++){
         Button tempb=new JButton("按钮"+t);
                if(t==4){
                    tempb.addActionListener(...);
                }
                    if(t==5){
                    tempb.addActionListener(...);
                }
         j1.add(tempb);
    }

u013596119
u013596119 应该是JButton,少打了个J
接近 2 年之前 回复
u013596119
u013596119   Rxr 2016.03.07 00:12
ArrayList<Button> buttons=new ArrayList<Button>();
  for(t=0;t<10;t++){
         Button tempb=new JButton("按钮"+t);
                buttons.add(tempb);
         j1.add(buttons.get(t));
    }
        buttons.get(4).addActionListener(...);
Royal_lr
Royal_lr   Ds   Rxr 2016.03.07 09:59

添加一个actionlistener,,事件监听就行了,,

WinsenJiansbomber
WinsenJiansbomber   2016.03.07 10:37

设置按钮属性,查文档找属性

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!