java - 重写 JButton 中的 Paint() 方法

标签 java swing paint jbutton look-and-feel

我有一个扩展 JButton 的类,因为我使用的自定义外观会忽略 isOpaque() 调用。我的意思是,即使我在按钮和所有父面板上调用了 setOpaque (false),按钮的背景也会呈现。我已经从公司设计人员处确认这是 LAF 的问题,所以除了扩展类(class)之外我无能为力。 所以我的问题是,如何实现 Paint() 方法以不渲染背景而仅渲染按钮图标? 干杯

已解决:如果有人感兴趣,我想要的答案是使用 button.setContentAreaFilled(false);

最佳答案

绘画是通过三种方法完成的:paintComponent、paintBorder和paintChildren。它们按该顺序调用,并且第一个绘制组件的背景。如果您重载其中一个并保留其他两个,应该没问题。

关于java - 重写 JButton 中的 Paint() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5065314/

相关文章:

java - 运行时初始化 : *** terminating: Java arch not 64 Bit or not detected

Java String ReplaceAll 方法给出非法重复错误?

java - 在远程计算机上启用端口 8443 以进行 https 访问

java - 单击一个按钮时禁用其余按钮

java - JComboBox 类型不是泛型

java - 如何使用 javax.ws.rs.client.WebTarget 从 REST 客户端发送 json 对象

java - Swing 渲染在 JDK 1.8 中出现损坏,在 JDK 1.7 中正确

java - 为什么子 JComponent 没有调用 Paint(Graphics g)?

java - 不能在 JFrame 中绘制超过一个正方形

java - 选项卡是哪种对象?