Java Swing未显示正确的字体集

Java Swing未显示正确的字体集,java,swing,fonts,jlist,Java,Swing,Fonts,Jlist,我在JScrollPane的内部有一个JList,并将字体设置为Tahoma,普通,20,出于某种原因,它仍然显示为非常小的文本,我不确定这是为什么 为了使这不是一段庞大的代码,我已经尽可能地精简了它 存储此内容的框架使用GridBagLayout ArrayUtil.ArrayToListModel转换任何列表到列表模式 JFrame=newjframe(); 机架立根(100450300); frame.setDefaultCloseOperation(WindowConstants.HID

我在
JScrollPane
的内部有一个
JList
,并将字体设置为
Tahoma
,普通,20,出于某种原因,它仍然显示为非常小的文本,我不确定这是为什么

为了使这不是一段庞大的代码,我已经尽可能地精简了它 存储此内容的框架使用GridBagLayout

ArrayUtil.ArrayToListModel
转换任何
列表到<代码>列表模式

JFrame=newjframe();
机架立根(100450300);
frame.setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
GridBagLayout GridBagLayout=新的GridBagLayout();
gridBagLayout.columnWidths=新的int[]{0};
gridBagLayout.rowHeights=new int[]{0};
gridBagLayout.columnWeights=新的双精度[]{1.0};
gridBagLayout.rowWeights=新的双精度[]{1.0};
frame.getContentPane().setLayout(gridBagLayout);
JScrollPane showlistScrollPane=新的JScrollPane();
GridBagConstraints gbc_showlistScrollPane=新的GridBagConstraints();
gbc_showlistScrollPane.insets=新的insets(0,0,0,5);
gbc_showlistScrollPane.fill=GridBagConstraints.BOTH;
gbc_showlistScrollPane.gridx=0;
gbc_showlistScrollPane.gridy=0;
frame.getContentPane().add(showlistScrollPane,gbc_showlistScrollPane);
ArrayList randomData=新的ArrayList();
随机数据。添加(“随机drhgiudrhgiudhri”);
添加(“数据dsirhgodhroih”);
ListModel pagesList=ArrayUtil.ArrayToListModel(随机数据);
showlist=新的JList(页面列表);
setFont(新字体(“Tahoma”,Font.PLAIN,20));
showlistScrollPane.setViewportView(showlist);

无论我为
showlist
制作了多大或多小的字体,它都不会改变其默认字体。

JList
中显示内容的方式不是由
JList
定义的,而是由分配给
JList
列表渲染器定义的,因此

showlist.setFont(new Font("Tahoma", Font.PLAIN, 20));
JList中显示的内容没有影响

请查看以了解更多详细信息

例如

import java.awt.Component;
import java.awt.EventQueue;
import java.awt.Font;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class Test1 {

    public static void main(String[] args) {
        new Test1();
    }

    public Test1() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                    ex.printStackTrace();
                }

                JList list = new JList(new String[]{"Happy list", "of happy things", "bunnies", "unicorns", "sharks"});
                list.setCellRenderer(new BigFontListCellRenderer());

                JFrame frame = new JFrame("Testing");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.add(new JScrollPane(list));
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class BigFontListCellRenderer extends DefaultListCellRenderer {

        @Override
        public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
            super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
            setFont(new Font("Tahoma", Font.PLAIN, 20));
            return this;
        }

    }

}

导入java.awt.Component;
导入java.awt.EventQueue;
导入java.awt.Font;
导入javax.swing.DefaultListCellRenderer;
导入javax.swing.JFrame;
导入javax.swing.JList;
导入javax.swing.JScrollPane;
导入javax.swing.UIManager;
导入javax.swing.UnsupportedLookAndFeelException;
公共类Test1{
公共静态void main(字符串[]args){
新Test1();
}
公共测试1(){
invokeLater(新的Runnable(){
@凌驾
公开募捐{
试一试{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(ClassNotFoundException |实例化Exception | IllegalacessException |不支持ookandfeelException ex){
例如printStackTrace();
}
JList list=newjlist(新字符串[]{“快乐列表”、“快乐事物”、“兔子”、“独角兽”、“鲨鱼”});
setCellRenderer(新的BigFontListCellRenderer());
JFrame=新JFrame(“测试”);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(新的JScrollPane(列表));
frame.pack();
frame.setLocationRelativeTo(空);
frame.setVisible(true);
}
});
}
公共类BigFontListCellRenderer扩展了DefaultListCellRenderer{
@凌驾
公共组件getListCellRenderComponent(JList列表、对象值、int索引、布尔isSelected、布尔cellHasFocus){
getListCellRenderComponent(列表、值、索引、isSelected、cellHasFocus);
setFont(新字体(“Tahoma”,Font.PLAIN,20));
归还这个;
}
}
}

JList
中显示内容的方式不是由
JList
定义的,而是由分配给
JList
列表定义的,因此

showlist.setFont(new Font("Tahoma", Font.PLAIN, 20));
JList中显示的内容没有影响

请查看以了解更多详细信息

例如

import java.awt.Component;
import java.awt.EventQueue;
import java.awt.Font;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class Test1 {

    public static void main(String[] args) {
        new Test1();
    }

    public Test1() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                    ex.printStackTrace();
                }

                JList list = new JList(new String[]{"Happy list", "of happy things", "bunnies", "unicorns", "sharks"});
                list.setCellRenderer(new BigFontListCellRenderer());

                JFrame frame = new JFrame("Testing");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.add(new JScrollPane(list));
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class BigFontListCellRenderer extends DefaultListCellRenderer {

        @Override
        public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
            super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
            setFont(new Font("Tahoma", Font.PLAIN, 20));
            return this;
        }

    }

}

导入java.awt.Component;
导入java.awt.EventQueue;
导入java.awt.Font;
导入javax.swing.DefaultListCellRenderer;
导入javax.swing.JFrame;
导入javax.swing.JList;
导入javax.swing.JScrollPane;
导入javax.swing.UIManager;
导入javax.swing.UnsupportedLookAndFeelException;
公共类Test1{
公共静态void main(字符串[]args){
新Test1();
}
公共测试1(){
invokeLater(新的Runnable(){
@凌驾
公开募捐{
试一试{
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}catch(ClassNotFoundException |实例化Exception | IllegalacessException |不支持ookandfeelException ex){
例如printStackTrace();
}
JList list=newjlist(新字符串[]{“快乐列表”、“快乐事物”、“兔子”、“独角兽”、“鲨鱼”});
setCellRenderer(新的BigFontListCellRenderer());
JFrame=新JFrame(“测试”);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(新的JScrollPane(列表));
frame.pack();
frame.setLocationRelativeTo(空);
frame.setVisible(true);
}
});
}
公共类BigFontListCellRenderer扩展了DefaultListCellRenderer{
@凌驾
公共组件getListCellRenderComponent(JList列表、对象值、int索引、布尔isSelected、布尔cellHasFocus){
getListCellRenderComponent(列表、值、索引、isSelected、cellHasFocus);
setFont(新字体(“Tahoma”,Font.PLAIN,20));
归还这个;
}
}
}
平均值