Nếu spinner sử dụng JSpinner.DefaultEditor hoặc phân lớp của nó thì mã sau hoạt động (tắt điều hướng bàn phím, nút spinner không hoạt động, nhưng có thể chọn và sao chép giá trị được hiển thị trong spinner).
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);
}
Nếu spinner có một trình soạn thảo tuỳ chỉnh với một cái gì đó khác sau đó JTextComponent, sau đó nó có lẽ vẫn có thể sử dụng phương pháp tương tự (vô hiệu hóa các spinner, kích hoạt lại các thành phần thực tế được sử dụng bởi các biên tập viên spinner, nhãn hiệu đó thành phần là chỉ đọc bằng API của nó).
Nguồn
2011-08-22 18:15:13