[英]Multiple Output Issue JRadioButton, default selection, else if, ActionListener
[英]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()); } };
我有點理解,但我仍然有一些澄清:
做這樣的事情:
if(NameOfJRadioButton.isSelected())
{
//some procedures
}
^(我似乎無法將其轉換為代碼:/)
如果是這樣,我該怎么辦? 或者您對如何為多個jradiobutton放置偵聽器有其他建議嗎? 謝謝您的任何建議:)
在第一點和第二點,二維數組的原因是未知的,因為它不是您的代碼,但對於使用JRadioButtons根本不是必需的。 但是,將所有按鈕都放在某種類型的數組中很有用,無論是數組列表還是buttonGroup(按鈕的擺動列表),用於在調用動作時檢查按鈕的內容。 例如,在第3點,此數組列表將允許您循環瀏覽並檢查已選擇了哪些按鈕並采取相應的措施。
動作偵聽器的目的是在用戶單擊按鈕時執行動作。 最普遍的用途是這樣做,因此僅允許用戶選擇一定數量的JRadioButton或在選定它們后將其禁用。 例如在字符選擇菜單上。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.