gpt4 book ai didi

JAVA 使用 UI 管理器设置 JButton() 的属性

转载 作者:行者123 更新时间:2023-12-03 23:13:28 28 4
gpt4 key购买 nike

嘿,我想为 jbutton 设置属性:setContentAreaFilled(false)。我无法使用 UI 管理器执行此操作:

UIManager.put("Button.contentAreaFilled", false);

但是值没有改变。任何人都可以建议解决方法或代码中的缺陷。

最佳答案

我认为使用 UIManager 是不可能的,我已经在我的电脑(Windows 10,jre1.8.0_131)和那个键(Button.contentAreaFilled) 不存在(我也尝试使用不同的 LookAndFeel)。

您可以找到 UIManager 键的列表 here .

此外,this link (由 Rob Camick 提供)提供了一个漂亮的 GUI 来检查您机器上安装的不同 LAF 中的键默认值(下面的屏幕截图)。

enter image description here

您可以使用工厂方法在您的 GUI 中创建所有按钮,在该方法中将内容区域填充设置为 false。

编辑

您无法决定哪些键将被 ComponentUI 类使用,除非您创建自己的 LookAndFeel

例如,如果您想查看如何安装 JPanel 默认背景和其他属性,请查看 javax.swing.plaf.basic.BasicPanelUI 类,例如:

protected void installDefaults(JPanel p) {
LookAndFeel.installColorsAndFont(p,
"Panel.background",
"Panel.foreground",
"Panel.font");
LookAndFeel.installBorder(p,"Panel.border");
LookAndFeel.installProperty(p, "opaque", Boolean.TRUE);
}

我不建议你玩这个,但如果你愿意,你可以阅读:

我从未尝试过,但我认为它可能会非常痛苦。

我强烈建议你使用静态工厂方法来创建你的按钮:它会更简单和安全,例如:

import javax.swing.JButton;
public class ButtonsFactory
{
public static JButton createButton (String text) {
JButton button = new JButton (text);
button.setContentAreaFilled (false);
// set any other property ...
return button;
}
}

现在您可以通过简单地调用在您的应用程序中创建每个按钮:

JButton button = ButtonsFactory.createButton ("...");

显然,您可以提供更多方法来创建具有不同参数的按钮或其他组件。

关于JAVA 使用 UI 管理器设置 JButton() 的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46906908/

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