第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何修改附加到多個 JButton 的動作偵聽器的參數(shù)?

如何修改附加到多個 JButton 的動作偵聽器的參數(shù)?

慕哥6287543 2022-10-26 17:25:54
我有一個任務(wù),我必須為一個繪畫應(yīng)用程序項(xiàng)目創(chuàng)建一個按鈕數(shù)組,一切都完成了,但我被困在分配/引用/修改我的動作偵聽器上。它的工作方式(假設(shè))是我有一個循環(huán),它創(chuàng)建、分配一個名稱,并向動作偵聽器添加一個名為 myShapes 的 JButton 數(shù)組。由此,我應(yīng)該有一個名為 listener() 的 actionlistener;給每個 jbutton 一個 int 1-6,設(shè)置當(dāng)前的 actionPerformed 狀態(tài)。int actionNum = 1;ActionListener listener = new ActionListener() {    @Override    public void actionPerformed(ActionEvent e) {        currentAction = actionNum;    }};  //........................................................................String[] myShapesName = {"brushBut", "lineBut", "ellipseBut", "rectBut", "strokeBut", "fillBut"};//String[] myLisName = {"brushButL", "lineButL", "ellipseButL", "rectButL", "strokeButL", "fillButL"};JButton[][] myShapes = new JButton[3][2];for (int i = 0; i < 3; i++) {    for (int j = 0; j < 2; j++) {        myShapes[i][j] = new JButton();        myShapes[i][j].setBounds(0, 0, 50, 50);//(100, 200);        myShapes[i][j].setName(myShapesName[i+j]);        myShapes[i][j].setBackground(null);        myShapes[i][j].putClientProperty("id",        String.valueOf(myShapesName[i+j]).concat(String.valueOf(j)));        MyShapesBox.add(myShapes[i][j]);        System.out.println(listener);    }}問題是我不知道如何更改 actionlistener 以便它為所有 6 個 Jbuttons 提供不同的 actionPerformed 狀態(tài),因?yàn)槊總€狀態(tài)代表不同的畫筆。我嘗試了幾種方法,例如嘗試創(chuàng)建一個動作列表數(shù)組并重命名它們,但這會導(dǎo)致錯誤或循環(huán)中斷,這是分配所需的,并以最后一次嘗試結(jié)束。不幸的是,這目前超出了我的范圍。如果在這上面呆了 2 天,我就很難過。
查看完整描述

1 回答

?
明月笑刀無情

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個贊

我的第一個想法是創(chuàng)建一個動作類,它將一個int值作為其構(gòu)造函數(shù)的一部分,為簡單起見,我將其設(shè)為內(nèi)部類,但您可以使用外部類,但您需要傳遞更多詳細(xì)信息,例如...


public class TestPane extends JPanel {


    private int currenAction;


    public TestPane() {

        String[] myShapesName = {"brushBut", "lineBut", "ellipseBut", "rectBut", "strokeBut", "fillBut"};

        //String[] myLisName = {"brushButL", "lineButL", "ellipseButL", "rectButL", "strokeButL", "fillButL"};


        setLayout(new GridLayout(3, 2));

        JButton[][] myShapes = new JButton[3][2];

        int action = 0;

        for (int i = 0; i < 3; i++) {

            for (int j = 0; j < 2; j++) {

                myShapes[i][j] = new JButton();

                myShapes[i][j].setBounds(0, 0, 50, 50);//(100, 200);

                myShapes[i][j].setName(myShapesName[i + j]);

                myShapes[i][j].setBackground(null);

                myShapes[i][j].putClientProperty("id",

                        String.valueOf(myShapesName[i + j]).concat(String.valueOf(j)));


                myShapes[i][j].addActionListener(new ButtonAction(action));

                action++;

                add(myShapes[i][j]);

            }

        }

    }


    public class ButtonAction implements ActionListener {


        private int actionNum;


        public ButtonAction(int actionNum) {

            this.actionNum = actionNum;

        }


        @Override

        public void actionPerformed(ActionEvent arg0) {

            currenAction = actionNum;

            System.out.println(actionNum);

        }


    }


}


查看完整回答
反對 回復(fù) 2022-10-26
  • 1 回答
  • 0 關(guān)注
  • 127 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號