Я создал этот метод, который обрабатывает изменение размера кнопки.Я хотел большую кнопку для сенсорного экрана.Я использую это для установки времени, часов и минут.Он отлично обрабатывает 2 символа в ширину.
public static void setScrollBarWidthOnJSpinnerWith2Numbers(JSpinner spinner) {
spinner.setLayout(null);
int fontSize = 160;
int buttonSize = 87;
Component c = spinner.getComponent(0);
if (c instanceof BasicArrowButton) {
BasicArrowButton b = (BasicArrowButton) c;
b.setBounds(190, 2, 0, 0);
b.setSize(buttonSize, buttonSize);
}
Component c2 = spinner.getComponent(1);
if (c2 instanceof BasicArrowButton) {
BasicArrowButton b = (BasicArrowButton) c2;
b.setBounds(190, buttonSize + 2, 0, 0);
b.setSize(buttonSize, buttonSize);
}
Component c3 = spinner.getComponent(2);
if (c3 instanceof NumberEditor || c3 instanceof ListEditor) {
DefaultEditor ne = (DefaultEditor) c3;
ne.setBounds(2, 2, 10, 20);
ne.setSize(180, fontSize);
ne.setAlignmentY(0);
}
spinner.setFont(new Font("Tahoma", Font.PLAIN, fontSize));
spinner.setSize(new Dimension(279, 179));
}