我使用这个代码安装了Monaco字体。但是,在
设置 -> 编辑器 -> 颜色和字体 -> 字体
中没有出现。我该怎么办?您需要在目录/usr/share/fonts/truetype/
中创建一个名为monaco
的文件夹,并将字体文件monaco.ttf
复制到该文件夹中。
然后运行命令fc-cache -v -f
UIManager.put("XXX.font", new Font("fontName", style, size))
其中XXX是UI组件的名称,如Label、TextField、Tree等。您可以在这里找到Swing组件的完整列表(IntelliJ使用Swing框架构建):Java Swing UI属性列表? 执行插件后,所有新的字体设置都将应用于IntelliJ的UI。以下是代码示例:import com.intellij.openapi.project.Project;
import com.intellij.openapi.wm.ToolWindow;
import com.intellij.openapi.wm.ToolWindowFactory;
import com.intellij.ui.content.Content;
import com.intellij.ui.content.ContentFactory;
import javax.swing.*;
import java.awt.*;
public class MyUIPlugin implements ToolWindowFactory
{
private ToolWindow myToolWindow;
public static final String TOOL_WINDOW_ID = "MyUISettings";
public MyUIPlugin() {}
// Create the tool window content.
public void createToolWindowContent(final Project project, final ToolWindow toolWindow) {
myToolWindow = toolWindow;
this.createContent(toolWindow);
}
public void createContent(final ToolWindow toolWindow) {
final ContentFactory contentFactory = toolWindow.getContentManager().getFactory();
JLabel myPluginUI = new JLabel("This is empty panel with my custom fonts settings behind it");
final Content content = contentFactory.createContent(myPluginUI, "", true);
toolWindow.getContentManager().addContent(content);
UIManager.put("TextField.font", new Font(...));
UIManager.put("List.font", new Font(...));
UIManager.put("Label.font", new Font(...));
UIManager.put("Button.font", new Font(...));
.....
SwingUtilities.updateComponentTreeUI(myPluginUI);
}
}
此外,您甚至可以编写小的Swing代码,而不是使用JLabel
占位符,通过调用GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts()
获取UI元素列表和系统中所有可用字体的列表。并且您可以在插件窗口中为不同的组件类型分配不同的字体,并完全自定义IntelliJ UI字体。
设置 -> 编辑器 -> 颜色和字体 -> 字体
选项中,必须禁用仅显示等宽字体
。请查看更新。 - Anton Dozortsev