gpt4 book ai didi

java - 在尊重外观的同时更改 JButton 形状

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

我知道这个问题已被问过一百万次,可以通过覆盖 paintComponent() 来完成,但我想知道的是如何在尊重当前外观的同时更改形状.如果我想将形状更改为圆形,我也希望按钮看起来像一个按钮,只是形状不同。

我尝试制作一个 JButton,覆盖 paintComponent,然后将其剪裁成一个圆圈,但我没有在 Nimbus LAF 上获得边框效果。

有没有更好的方法?还是JButton中有方法?

最佳答案

为了绘制组件,使用了 ComponentUI。这个 UI 类有一个 paint 方法,用于绘制组件。 paint 方法使用 L&F 的设置,这些设置作为属性存储在 UIManager 中。

创建您自己的组件 RoundButton 扩展自例如AbstractButton 您可以创建您自己的 RoundButtonUI(可能从 ButtonUI 扩展)。在这里,您可以使用普通按钮(如 Button.fontButton.foreground 的属性创建您自己的绘制方法,以使用与普通按钮相同的 L&F 值绘制您自己的组件按钮。

在您的 RoundButton 类中,您应该实现 getUIClassID() 方法,它将返回字符串 "RoundButtonUI"。这会导致使用您的 RoundButtonUI

JButton 本身就是一个很好的例子。

关于java - 在尊重外观的同时更改 JButton 形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7863982/

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