4
나는 힘의 수의 순서를 나타내는 사용자 지정 JSpinner를 만들려고합니다. 2, 1-2-4-8-16처럼. AbstractSpinnerModel을 확장하고 구현 된 메소드 (getNextValue 등)를 변경하면됩니다. 문제는 내 사용자 정의 JSpinner의 화살표 키가 작동하지 않는다는 것입니다. 둘 중 하나를 클릭해도 아무 것도 바뀌지 않습니다. 나는 현재 값의 이전 값과 다음 값을 보여줄 필요가있다. (이전 값 = 4 현재 값 = 8 다음 값 = 16). 어떤 도움을 이해할 수있을 것이다사용자 지정 Spinner 모델 만들기
import java.awt.*;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class Hw5SpinnerModel extends JFrame {
public static void main(String[] args) {
Hw5SpinnerModel frame = new Hw5SpinnerModel();
}
public Hw5SpinnerModel() {
setTitle("Hw5SpinnerModel");
setSize(350, 300);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JSpinner jspn = new JSpinner(new CustomSpinnerModel());
final JLabel jlbl = new JLabel("");
add(jspn, BorderLayout.NORTH);
add(jlbl, BorderLayout.CENTER);
jspn.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
jlbl.setText(jspn.getPreviousValue() + jspn.getValue() + jspn.getNextValue());
}
});
//jlbl.setText(jspn.getNextValue() + "");
setVisible(true);
}
public class CustomSpinnerModel extends AbstractSpinnerModel {
Integer i = 1;
@Override
public Object getValue() {
return i;
}
@Override
public void setValue(Object value) {
i = (Integer) value;
}
@Override
public Object getNextValue() {
return 2 * i;
}
@Override
public Object getPreviousValue() {
return i/2;
}
}
}
:
여기 내 코드입니다.
예, 감사합니다 100 %를 사용할 수 있습니다. – HalilM