为什么我不能用 UImanager 更改 JSpinner 的字体大小?Font defaultFont = new Font("宋体", Font.PLAIN, 20);
UIManager.put("JSpinner.font", defaultFont); 字体大小不变。
直接用setFont也不行Font defaultFont = new Font("宋体", Font.PLAIN, 20);
UIManager.put("JSpinner.font", defaultFont);
spinner.setFont(defaultFont);

解决方案 »

  1.   

    UIManager.put("Spinner.font", defaultFont);
      

  2.   

    UIManager.put("Spinner.font", defaultFont)
    也不起作用啊,Mr Hunter.
      

  3.   

    JTextField可以改变,JSpinner就不行。我在网上找到下面这个例子
    import java.awt.*;
    import javax.swing.*;
     
    public class SpinnerSize
    {
        public SpinnerSize()
        {
            String[] suits = { "spades", "diamonds", "clubs", "hearts" };
            SpinnerListModel suitModel = new SpinnerListModel(suits);
            JSpinner suitSpinner = new JSpinner(suitModel);
     
            // set the preferred size
            Dimension d = suitSpinner.getPreferredSize();
            d.width = 100;
            suitSpinner.setPreferredSize(d);
     
            // modify the JTextField appearance
            JSpinner.ListEditor editor = new JSpinner.ListEditor(suitSpinner);
            JTextField tf = editor.getTextField();
            tf.setHorizontalAlignment(JTextField.CENTER);
            tf.setFont(new Font("lucida sans regular", Font.PLAIN, 16));
            suitSpinner.setEditor(editor);
     
            JPanel panel = new JPanel();
            panel.add(suitSpinner);
            JFrame f = new JFrame();
            f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            f.getContentPane().add(panel);
            f.setSize(300,100);
            f.setLocation(200,200);
            f.setVisible(true);
        }
     
        public static void main(String[] args)
        {
            new SpinnerSize();
        }
    }