簡體   English   中英

多個jradiobutton的動作監聽器

[英]actionlistener for multiple jradiobutton

我有一個for循環內的多個jradiobutton,我試圖將偵聽器放在它上面,這就是我發現的結果:

多個單選按鈕的動作偵聽器

創建二維的JRadioButton數組,例如

  JRadioButton[][] jRadioButtons = new JRadioButton[8][]; ButtonGroup bg = new ButtonGroup(); JPanel panel = new JPanel(); panel.setLayout(new GridLayout(8, 8)); for (int i = 0; i < 8; i++) { for (int j = 0; j < 8; j++) { JRadioButton btn = new JRadioButton(); btn.addActionListener(listener); btn.setName("Btn[" + i + "," + j + "]"); bg.add(btn); panel.add(btn); // can be used for other operations jRadioButtons[i][j] = btn; } } 

這是所有JRadioButton的單個ActionListener

 ActionListener listener = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { JRadioButton btn = (JRadioButton) e.getSource(); System.out.println("Selected Button = " + btn.getName()); } }; 

我有點理解,但我仍然有一些澄清:

  1. 二維jradiobutton的目的是什么? 我的意思是說我有點想為jradiobuttons設置一個名稱,但據我所知,它僅用於顯示。 是的,以確認這是您選擇的jradiobutton,但我不知道將actionlistener用作按鈕的目的是什么
  2. 二維jradiobutton真的有必要嗎?
  3. 我可以只使用jradiobuttons的名稱嗎

做這樣的事情:

if(NameOfJRadioButton.isSelected())

{

//some procedures

}

^(我似乎無法將其轉換為代碼:/)

如果是這樣,我該怎么辦? 或者您對如何為多個jradiobutton放置偵聽器有其他建議嗎? 謝謝您的任何建議:)

在第一點和第二點,二維數組的原因是未知的,因為它不是您的代碼,但對於使用JRadioButtons根本不是必需的。 但是,將所有按鈕都放在某種類型的數組中很有用,無論是數組列表還是buttonGroup(按鈕的擺動列表),用於在調用動作時檢查按鈕的內容。 例如,在第3點,此數組列表將允許您循環瀏覽並檢查已選擇了哪些按鈕並采取相應的措施。

動作偵聽器的目的是在用戶單擊按鈕時執行動作。 最普遍的用途是這樣做,因此僅允許用戶選擇一定數量的JRadioButton或在選定它們后將其禁用。 例如在字符選擇菜單上。

暫無
暫無

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

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