2017-02-10 25 views
1

JButtonを設定して、テキストが中央に配置されているときにそのアイコンが左に揃うようにしたいとします。JButtonアイコンを左側に整列してテキストを中央に置く

私はそれらのうちの1つを左に、もう1つを右に、または両方を同じ設定にする方法を見つけましたが、私が探しているものを見つけることができませんでした。

もちろん、私はいつもの塗料の方法を再定義することができますが、私はそれを行うためのよりリーンな方法を探しています。

答えて

4

あなたは、たとえばBorder Layoutが役立つだろう、あなたのJButtonlayout managerを追加することができます。

をあなたはテキスト「私をクリックしてください」とIconと1でJLabelを作成します。

JLabel iconLabel = new JLabel(new ImageIcon(this.getClass().getResource("king.png"))); 
JLabel clickMe = new JLabel("Click me", SwingConstants.CENTER); //We give it the center alignment so it stays on the center of the label. 

その後、あなたはJButtonを作成し、それに罫線レイアウトを付け、必要な位置にコンポーネントを追加します。

button.setLayout(new BorderLayout()); 
button.add(iconLabel, BorderLayout.WEST); 
button.add(clickMe, BorderLayout.CENTER); 

私はclickMeラベルがJButtonの中央に右ではありませんので、あなたは、各ラベルがどのように見えるか見ることができるように、各ラベルに国境を与えたが、そのJLabelの中央に:

enter image description hereenter image description here

私はそれがほとんど感知できないだとして、それは大したことではないと思う/ボーダーO W

enter image description here

+0

素晴らしい、ありがとう!ロールオーバー、押された、または選択されたときの表示も異なりますか? –

+0

@VicSeedoubleyewは「ロールオーバー」という意味ですか?そして、 "異なった表示"で?クリックすると、JButtonが押されているようになり、同じ機能を持ちます。その外観を変更するだけです。 – Frakcool

+0

@VicSeedoubleyew "ロールオーバー"の意味を取得しますが、異なった表示 "を明確にすることはできますか? – Frakcool

関連する問題