gpt4 book ai didi

java - 更改菜单栏和菜单项字体

转载 作者:行者123 更新时间:2023-12-01 21:10:04 27 4
gpt4 key购买 nike

我正在尝试使菜单栏项目和项目的项目更大或更小,我之前在这里搜索过(所以请不要将其标记为重复)并且我没有发布过任何帖子发现正在工作。

我尝试了以下代码但没有成功:

Font f = new Font("sans-serif", Font.PLAIN, 12);
UIManager.put("menuBar.font", f);

还有

menuBar.setFont(new Font(menuBar.getFont().getFontName(), menuBar.getFont().getStyle(), 12));

这是我尝试编辑字体的代码:

private class foo{
private JMenu mnArchivo;
private JMenuBar menuBar;
menuBar = new JMenuBar();
frmAdministracinHospital.setJMenuBar(menuBar);

JRadioButtonMenuItem rdbtnmntmGrande = new JRadioButtonMenuItem("Grande");
rdbtnmntmGrande.addActionListener(new MiGrandeActionListener());
rdbtnmntmGrande.setIcon(new ImageIcon(PrincipalWindow.class.getResource("/presentacion/fontbig.png")));
buttonGroup.add(rdbtnmntmGrande);
mnTamanoFuente.add(rdbtnmntmGrande);

private class MiGrandeActionListener implements ActionListener {
public void actionPerformed(ActionEvent e) {

Font f = new Font(menuBar.getFont().getFontName(), menuBar.getFont().getStyle(), 12);
UIManager.put("Menu.font", f);
}
}

请问有什么线索吗?

最佳答案

那是因为UIManager中没有“menuBar.font”键类,应该是:

UIManager.put("MenuBar.font", f);

即大写字母很重要或者:

UIManager.put("MenuItem.font", f);

每个JMenuItem的字体

这是一个list这些属性

还相关:Changing a JMenuBar's font

<小时/>

编辑:添加 mcve

我看不出它在哪里不起作用,如果我运行这段代码,它对我来说工作得很好

import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;

public class UIManagerFontChangeExample {

private JFrame frame;
private JLabel label;
private JMenuItem item1, item2;
private JMenu menu;
private JMenuBar bar;

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
Font f = new Font("sans-serif", Font.PLAIN, 12);
UIManager.put("Menu.font", f);
UIManager.put("MenuItem.font", f);
UIManagerFontChangeExample example = new UIManagerFontChangeExample();
example.createAndShowGui();
}
});
}

public void createAndShowGui() {
frame = new JFrame("Font changing example");
label = new JLabel("This is a label");
bar = new JMenuBar();
menu = new JMenu("Menu");
item1 = new JMenuItem("Item1");
item2 = new JMenuItem("Item2");

menu.add(item1);
menu.add(item2);
bar.add(menu);

frame.add(label);
frame.setJMenuBar(bar);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}

更改字体之前:

enter image description here

更改字体后:

enter image description here

我上面添加的代码名为:Minimal, Complete and Verifiable Example ,下次,请发布一个有效的,和我一样,这样我们就可以复制粘贴,我没有使用 actionListener 因为问题与操作无关,而是与字体相关。或者 Icon 因为它也不相关,我做了一个完整的示例代码,您可以复制粘贴并查看它是如何工作的,而无需修改任何内容,这就是您所要求的。

对于 MenuBar 字体,您需要调用:

UIManager.put("Menu.font", f);

对于MenuItem

UIManager.put("MenuItem.font", f);

关于java - 更改菜单栏和菜单项字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41351173/

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