我正在使用GUI並嘗試獲取不同的按鈕來執行不同的任務。將多個actionListener添加到多個JButton中
當前,每個按鈕導致相同的ActionListener。
public class GUIController {
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
public static void createAndShowGUI() {
JFrame frame = new JFrame("GUI");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new GridLayout(3,3));
JLabel leight =new JLabel("8");
frame.getContentPane().add(leight);
JLabel lfive =new JLabel("0");
frame.getContentPane().add(lfive);
JLabel lthree =new JLabel("0");
frame.getContentPane().add(lthree);
JButton beight =new JButton("Jug 8");
frame.getContentPane().add(beight);
JButton bfive =new JButton("Jug 5");
frame.getContentPane().add(bfive);
JButton bthree =new JButton("Jug 3");
frame.getContentPane().add(bthree);
LISTN ccal = new LISTN (leight,lfive,lthree);
beight.addActionListener(ccal);
bfive.addActionListener(ccal);
bthree.addActionListener(ccal);
frame.pack();
frame.setVisible(true);
}
}
我的ActionListener文件
public class JugPuzzleGUILISTN implements ActionListener {
JLabel leight;
JLabel lfive;
JLabel lthree;
JugPuzzleGUILISTN(JLabel leight,JLabel lfive, JLabel lthree){
this.leight = leight;
this.lfive = lfive;
this.lthree = lthree;
}
public void actionPerformed(ActionEvent e) {
}
}
}
什麼我在動作事件編寫適用於所有的三個按鈕,我怎樣才能讓這個每個按鈕都有自己的功能? 非常感謝!
'我怎樣才能讓每個按鈕都有自己的功能?' - 爲每個按鈕添加一個不同的ActionListener。 – camickr
您可以使用單個偵聽器並使用'actionCommand'或'source'屬性;你可以使用'clientProperty';你可以爲每個按鈕使用不同的監聽器;你可以使用'Action' API ...許多有據可查的想法 – MadProgrammer