Java + Swing に基づくデスクトップ アプリケーションの開発で、ラジオ ボタンの横にあるテキストの代わりに画像やスピナーのような別のウィジェットを作成するという問題に直面しました。
画像またはスピナーをクリックすると、対応する radioButton も選択されます。
出来ますか?もしそうなら、どのように?
Java + Swing に基づくデスクトップ アプリケーションの開発で、ラジオ ボタンの横にあるテキストの代わりに画像やスピナーのような別のウィジェットを作成するという問題に直面しました。
画像またはスピナーをクリックすると、対応する radioButton も選択されます。
出来ますか?もしそうなら、どのように?
私には、コンストラクターに指定されたアイコン付きの JRadioButton が機能していないようです。「ネイティブラジオボタンアイコン」を特定のアイコンに置き換えます。元は「ラジオボタンアイコン」以外のアイコン付きラジオボタンを求めていたのではないかと思います。
バグ #4177248により、Sun バグ データベースで動作についていくつかの議論がありましたが、変更は行われていません。
代わりに、JRadioButtonMenuItemを試すことができますが、それで望ましくない動作が発生する可能性がありますか?
JRadioButton と JRadioButtonMenuItem の両方の簡単な評価:
public class IconRadioButtonEval {
public static void main(String[] args) throws Exception {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
// Use some arbitrary working URL to an icon
URL url =
new URL(
"http://mikeo.co.uk/demo/sqlspatial/Images/RSS_Icon.png");
Icon icon = new ImageIcon(url);
JRadioButton button = new JRadioButton(icon);
panel.add(new JLabel("RadioButton with icon:"));
panel.add(button);
panel.add(new JLabel("RadioButtonMenuItem with icon:"));
panel.add(new JRadioButtonMenuItem(icon));
frame.getContentPane().add(panel);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
空の文字列を持つ JRadioButton の隣にある別のコンポーネントに関するジャスティンの提案は、ほとんどの場合うまくいくはずです。
まあ、JRadioButton
それを取るためのコンストラクタがありIcon
ます。これを使用して、横にアイコンを表示できます。
-- 指定されたイメージを持ち、テキストを持たない、最初は選択されていないラジオ ボタンを作成します。
JRadioButton
それ以外の場合、 s テキストを空にして、その隣に別のコンポーネントを配置するのはかなり簡単です。次に、そのコンポーネントにリスナーを追加してJRadioButton
、他のコンポーネントがクリックされたときに がクリックされるようにする必要があります。