Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何禁用JSpinner的键盘和鼠标输入?_Java_Swing_Jspinner - Fatal编程技术网

Java 如何禁用JSpinner的键盘和鼠标输入?

Java 如何禁用JSpinner的键盘和鼠标输入?,java,swing,jspinner,Java,Swing,Jspinner,当我试图通过键盘或鼠标使JSpinner不可编辑时,如下所示: ((DefaultEditor) mySpinner.getEditor()).getTextField().setEditable(false); mySpinner.setEnabled(false); 它禁用任何键盘输入和粘贴,但我仍然可以单击向上/向下按钮并更改值 如何禁用向上/向下按钮?如果微调器使用JSpinner.DefaultEditor或其子类,则以下代码可以工作(禁用键盘导航,微调器按钮不工作,但可以选择并复制

当我试图通过键盘或鼠标使JSpinner不可编辑时,如下所示:

((DefaultEditor) mySpinner.getEditor()).getTextField().setEditable(false);
mySpinner.setEnabled(false);
它禁用任何键盘输入和粘贴,但我仍然可以单击向上/向下按钮并更改值


如何禁用向上/向下按钮?

如果微调器使用JSpinner.DefaultEditor或其子类,则以下代码可以工作(禁用键盘导航,微调器按钮不工作,但可以选择并复制微调器中显示的值)

如果微调器有一个自定义编辑器,其中包含JTextComponent以外的内容,那么仍然可以使用相同的方法(禁用微调器,重新启用微调器编辑器使用的实际组件,使用其API将该组件标记为只读)

JSpinner component = ...;

component.setEnabled( false );
if ( component.getEditor() instanceof JSpinner.DefaultEditor ) {
   JSpinner.DefaultEditor editor = ( JSpinner.DefaultEditor ) component.getEditor();
   editor.getTextField().setEnabled( true );
   editor.getTextField().setEditable( false );
}
// Disabling mouse input without desabling the JSpinner itself
JSpinner spinner = ...;
// set the minimum and maximum values to the current value, 
// thus preventing changes to the spinner's current value
SpinnerNumberModel snm = (SpinnerNumberModel) spinner.getModel();
snm.setMinimum((Integer)spinner.getValue());
snm.setMaximum((Integer)spinner.getValue());