我需要在我的应用程序中实现字体大小切换。但是当我增加字体的大小时,RadioButtons 保持相同的大小并且在具有高分辨率的小屏幕上,我的客户无法轻松点击它。有没有办法以编程方式调整 RadioButton 的圆形物体的大小,而无需深入研究 L&F 并手动重新绘制图标(这很复杂,因为应用程序针对具有不同 UI 的多个平台,并且每个平台都必须有 7 个图标)。
完美的解决方案可能如下所示:
- 提取原生 UI 图标。
- 调整大小
- 将调整大小的图标设置为组件的图标。
如何实施第 1 步?可能吗?
编辑:这是我迄今为止尝试过的
public class IconImageSaver extends JFrame{
public IconImageSaver() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setBounds(0,0,100,100);
setVisible(true);
JRadioButton rad1 = new JRadioButton();
rad1.setBounds(10,10,40,40);
add(rad1);
Icon icon = UIManager.getIcon("RadioButton.icon");//(1) trying to get icon
int w = icon.getIconWidth(),h = icon.getIconHeight();
Image i = rad1.createImage(w, h);
Image i2 = rad1.createImage(w,h);
Graphics g = i.getGraphics();
Graphics g2 = i2.getGraphics();
g.setColor(Color.CYAN);
g.fillRect(0, 0, w, h);
rad1.setIcon(new ImageIcon(i));//setting icons
g2.setColor(Color.RED);
g2.fillRect(0, 0, w, h);
rad1.setPressedIcon(new ImageIcon(i2));//setting icons
}
public static void main(String[] args) {
new IconImageSaver();
}
}
在位置 (1) 我试图获取图标图像,但它只返回背景颜色。无法理解为什么。为各种状态设置图标按预期工作。