簡體   English   中英

JButton的gridLayout,每個JButton的actionListener

[英]gridLayout of JButtons, actionListener for each JButton

我有一個JButtons的gridLayout。 我想在actionPerformed函數中將每個JButton彼此區分開。 我不想為每個JButton命名。 用戶隨機按下JButton。 有什么方法可以知道按下了哪個按鈕? 有可能的?

    [....]
    tUsuariCPU = new JButton[mida][mida];
    for (int i=0;i<size;i++){
        for (int j=0;j<size;j++){
            JButton temp = new JButton();
            tUsuariCPU[i][j] = temp; 
            temp.addActionListener(this);
            panel.add(temp);
        }
      }
   }

   public void actionPerformed(ActionEvent e) {}
          [....]

   }

如果希望使用單個ActionListener ,則可以通過使用getSource按鈕並將實例與JButton實例進行比較來檢查哪個組件觸發了事件。 下面使用一個循環遍歷JButton的2D數組:

public void actionPerformed(ActionEvent e) {}
    for ( int i = 0; i < tUsuariCPU.length; i++ ){
        for ( int j = 0; j < tUsuariCPU[i].length; j++ ){
            if ( e.getSource() == tUsuariCPU[i][j] ){
                //do something
            }
        }
    }
}

或者,您可以為每個按鈕添加一個ActionListener,或設置JButton的ActionCommand並使用此值確定哪個JButton觸發了事件( e.getActionCommand().equals(myButton.getActionCommand())

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM