So verwenden Sie eine Tastenkombination für einen JButton in Java
Wenn Sie einem JButton eine Tastenkombination zuweisen, möchten Sie, dass die Schaltfläche reagiert wenn eine bestimmte Taste ohne die Maus gedrückt wird. Dies kann erreicht werden, indem eine Aktion für die Schaltfläche erstellt wird. Die Aktion wird dann vom ActionListener konfiguriert und mit einem KeyStroke verbunden.
Eine Vielzahl von Ressourcen finden Sie im Swing-Tutorial, einschließlich Abschnitten zu:
Beispiel:
<code class="java">import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.border.*; public class CalculatorPanel extends JPanel { // Use Action here private JTextField display; public CalculatorPanel() { // Implement Action here Action numberAction = new AbstractAction() { @Override public void actionPerformed(ActionEvent e) { display.replaceSelection(e.getActionCommand()); } }; setLayout( new BorderLayout() ); display = new JTextField(); display.setEditable( false ); display.setHorizontalAlignment(JTextField.RIGHT); add(display, BorderLayout.NORTH); JPanel buttonPanel = new JPanel(); buttonPanel.setLayout( new GridLayout(0, 5) ); add(buttonPanel, BorderLayout.CENTER); for (int i = 0; i < 10; i++) { String text = String.valueOf(i); JButton button = new JButton( text ); button.addActionListener( numberAction ); button.setBorder( new LineBorder(Color.BLACK) ); button.setPreferredSize( new Dimension(30, 30) ); buttonPanel.add( button ); // Implement KeyStroke here InputMap inputMap = buttonPanel.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); inputMap.put(KeyStroke.getKeyStroke(text), text); inputMap.put(KeyStroke.getKeyStroke("NUMPAD" + text), text); buttonPanel.getActionMap().put(text, numberAction); } } private static void createAndShowUI() { JFrame frame = new JFrame("Calculator Panel"); frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); frame.add( new CalculatorPanel() ); frame.pack(); frame.setLocationRelativeTo( null ); frame.setVisible(true); } public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { createAndShowUI(); } }); } }</code>
Das obige ist der detaillierte Inhalt vonWie kann ich einem JButton mithilfe einer Aktion in Java eine Tastenkombination zuweisen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!