如何在 Java 中為每個 JCheckBox 的選擇設定助記鍵?
設定助記鍵,以便使用者可以使用鍵盤鍵選中複選框。例如,可以使用 ALT 設定鍵
checkBox1.setMnemonic(KeyEvent.VK_F); checkBox2.setMnemonic(KeyEvent.VK_T); checkBox3.setMnemonic(KeyEvent.VK_R); checkBox4.setMnemonic(KeyEvent.VK_C); checkBox5.setMnemonic(KeyEvent.VK_A);
在上面,我們為複選框 1 設定鍵 ALT+F、為複選框 2 設定鍵 ALT+T,依此類推。
下面是一個示例。在這裡,我們為每個複選框的選擇設定了助記鍵
示例
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class SwingDemo { private JFrame mainFrame; private JLabel headerLabel; private JLabel statusLabel; private JPanel controlPanel; public SwingDemo(){ prepareGUI(); } public static void main(String[] args){ SwingDemo swingControlDemo = new SwingDemo(); swingControlDemo.showCheckBoxDemo(); } private void prepareGUI(){ mainFrame = new JFrame("Java Swing"); mainFrame.setSize(600,400); mainFrame.setLayout(new GridLayout(3, 1)); mainFrame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent windowEvent){ System.exit(0); } }); headerLabel = new JLabel("", JLabel.CENTER); statusLabel = new JLabel("",JLabel.CENTER); statusLabel.setSize(350,100); controlPanel = new JPanel(); controlPanel.setLayout(new FlowLayout()); mainFrame.add(headerLabel); mainFrame.add(controlPanel); mainFrame.add(statusLabel); mainFrame.setVisible(true); } private void showCheckBoxDemo(){ headerLabel.setText("Favourite Sports"); final JCheckBox checkBox1 = new JCheckBox("Football"); final JCheckBox checkBox2 = new JCheckBox("Tennis"); final JCheckBox checkBox3 = new JCheckBox("Rugby"); final JCheckBox checkBox4 = new JCheckBox("Cricket"); final JCheckBox checkBox5 = new JCheckBox("Racing"); checkBox1.setMnemonic(KeyEvent.VK_F); checkBox2.setMnemonic(KeyEvent.VK_T); checkBox3.setMnemonic(KeyEvent.VK_R); checkBox4.setMnemonic(KeyEvent.VK_C); checkBox5.setMnemonic(KeyEvent.VK_A); checkBox1.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { statusLabel.setText("Football Checkbox: "+ (e.getStateChange()==1?"checked":"unchecked")); } }); checkBox2.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { statusLabel.setText("Tennis Checkbox: "+ (e.getStateChange()==1?"checked":"unchecked")); } }); checkBox3.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { statusLabel.setText("Rugby Checkbox is "+ (e.getStateChange()==1?"checked":"unchecked")); } }); checkBox4.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { statusLabel.setText("Cricket Checkbox is "+ (e.getStateChange()==1?"checked":"unchecked")); } }); checkBox5.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { statusLabel.setText("Racing Checkbox is "+ (e.getStateChange()==1?"checked":"unchecked")); } }); controlPanel.add(checkBox1); controlPanel.add(checkBox2); controlPanel.add(checkBox3); controlPanel.add(checkBox4); controlPanel.add(checkBox5); mainFrame.setVisible(true); } }
輸出
現在,按下為複選框設定的鍵。假設首先對於足球,我們將按下 Alt+F,因為我們在程式碼中設定了相同的內容(setMnemonic(KeyEvent.VK_F))
在上面,由於我們使用了鍵 Alt+F,因此現在選中了足球複選框
廣告