同样,我将使用键绑定来解决此问题,并使用绑定到JSpinner的InputMap的绑定,该JSpinner的InputMap具有焦点时将处于活动状态:
InputMap inputMap = spinner.getInputMap(JComponent.WHEN_FOCUSED);
可以运行的小型示例程序如下所示:
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
import javax.swing.*;
@SuppressWarnings("serial")
public class ChangeStepSize extends JPanel {
private static final String DOUBLE_STEP = "double step";
public static final int SMALL_STEP_SIZE = 1;
public static final int BIG_STEP_SIZE = 10;
// bind to the "d" key, but you could use any key you'd like
private static final int SPECIAL_KEY = KeyEvent.VK_D;
private SpinnerNumberModel numberModel = new SpinnerNumberModel(50, 0, 100, 1);
private JSpinner spinner = new JSpinner(numberModel);
public ChangeStepSize() {