解决Linux系统下字体没有宋体和黑体问题

碰到了两次这个问题,所以写篇博客记录一下。

第一次:

在部署后台项目时,发现验证码出现了乱码的情况,就是验证码中的内容并不是常规设置好的字母和数字。

第二次:

因为本机用的操作系统就是linux(ubuntu),在使用wps进行文本编辑时发现找不到黑体字体。

解决方案:

都差不多,首先需要两个字体文件黑体(simhei.ttf),宋体(simsun.ttc)

这里可以在windows下的C:\Windows\Fonts下找到这两个文件为了方便可以在这里下载

具体配置步骤:

1.切换到指定目录:cd /usr/share/fonts/

2.创建文件夹:mkdir chinese

3.将上面准备好的字体文件拷贝到创建的chinese文件夹下

4.修改权限:chmod -R 755 /usr/share/fonts/chinese

5.修改配置文件:vim /etc/fonts/fonts.conf

5.清除缓存:fc-cache

这时字体已经加载到系统中了。

 

好的,下面是经过修改后的代码,只保留了字体下拉框,且只包含宋体黑体两种字体选项: ```java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class FontChooser extends JFrame implements ActionListener { private JLabel textLabel; private JComboBox<String> fontBox; private JButton closeButton; public FontChooser() { super("Font Chooser"); // create components textLabel = new JLabel("Font Preview"); fontBox = new JComboBox<>(new String[] {"宋体", "黑体"}); closeButton = new JButton("Close"); // set default font textLabel.setFont(new Font("宋体", Font.PLAIN, 12)); // add components to panel JPanel panel = new JPanel(new GridLayout(2, 1)); panel.add(textLabel); panel.add(fontBox); // add event listeners fontBox.addActionListener(this); closeButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { dispose(); } }); // add panel to frame add(panel, BorderLayout.CENTER); add(closeButton, BorderLayout.SOUTH); // set frame properties setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(300, 200); setLocationRelativeTo(null); setVisible(true); } public void actionPerformed(ActionEvent e) { String fontName = (String) fontBox.getSelectedItem(); textLabel.setFont(new Font(fontName, Font.PLAIN, 12)); } public static void main(String[] args) { new FontChooser(); } } ``` 这个程序创建了一个名为 "Font Chooser" 的窗口,包含一个文本标签和一个字体下拉框。默认情况下,文本标签的字体为 "宋体"、大小为 12、无样式效果。当用户选择不同的字体选项时,文本标签的字体会相应地改变。单击关闭按钮可将窗口关闭。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值