gpt4 book ai didi

java - Java Mac OSX native 外观和感觉是否尊重 UIManager 字体更改?

转载 作者:行者123 更新时间:2023-11-30 05:12:33 24 4
gpt4 key购买 nike

我有一个 java 小程序,唯一可以正常工作的外观和感觉是 native mac 小程序。我想让字体更大一点,并尝试使用标准 UIManager 方法

UIManager.put("Label.font", new Font("Georgia", Font.PLAIN, 18));

这不会产生任何变化。当然,它不会抛出异常。

有谁知道原生 Mac 的外观和感觉是否会忽略这些?

我知道有一些特定的方法可以使 mac 上的控件具有不同的大小,但这些似乎只会使它们更小。您不能使控件大于常规控件。

最佳答案

updateComponentTreeUI(...) 方法(在由trashgod 提供的“启动后更改LAF”链接中引用)仅适用于 FontUIResource,不适用于 Font。仅当您需要在启动后多次更改字体时,这才有意义。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.plaf.*;

public class ChangeFont extends JFrame
{
private int size = 12;
private JComponent component;

public ChangeFont()
{
JTextArea textArea = new JTextArea();
textArea.append( "updateComponentTreeUI will only work on a FontUIResource\n\n" );
textArea.append( "1) click the FontUIResource button as many times as you want\n" );
textArea.append( "2) after you click the Font button, neither button will work" );
getContentPane().add(textArea, BorderLayout.NORTH);

JButton west = new JButton( "FontUIResource" );
west.addActionListener( new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
update( new FontUIResource("monospaced", Font.PLAIN, size) );
}
});
getContentPane().add(west, BorderLayout.WEST );

JButton east = new JButton( "Font" );
east.addActionListener( new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
update( new Font("monospaced", Font.PLAIN, size) );
}
});
getContentPane().add(east, BorderLayout.EAST );

component = new JTable(5, 5);
getContentPane().add(component, BorderLayout.SOUTH);
}

private void update(Font font)
{
UIManager.put("Table.font", font);
UIManager.put("TextArea.font", font);
SwingUtilities.updateComponentTreeUI( this );
size += 2;
pack();
}

public static void main(String[] args)
{
ChangeFont frame = new ChangeFont();
frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
frame.pack();
frame.setLocationRelativeTo( null );
frame.setVisible(true);
}
}

关于java - Java Mac OSX native 外观和感觉是否尊重 UIManager 字体更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2892721/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com