アプリにフォントサイズの切り替えを実装する必要があります。しかし、フォントのサイズを大きくしても、ラジオボタンは同じサイズのままで、高解像度の小さな画面では、顧客は簡単にヒットできません。L&Fに掘り下げてアイコンを手動で再描画せずに、プログラムでRadioButtonの丸いもののサイズを変更する方法はありますか(アプリは異なる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)でアイコン画像を取得しようとしていますが、背景色のみが返されます。理由がわかりません。さまざまな状態のアイコンの設定は、意図したとおりに機能します。