2017-02-10 18 views
1

Я хотел бы настроить JButton так, чтобы его значок был выровнен слева от него, а текст центрирован.Выровнять значок JButton влево и сохранить текст в центре

Я нашел, как один из них ушел, другой справа или оба в той же настройке, но я не мог найти то, что искал.

Конечно, я всегда могу переопределить методы , но я ищу более простой способ сделать это.

ответ

4

Вы можете добавить layout manager к вашему JButton, например Border Layout поможет:

Вы создаете JLabel с Icon и один с текстом «Нажмите меня»:

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

Я думаю, что это не имеет большого значения, как это почти незаметны без границ

enter image description here

+0

awesome, спасибо! так что это также будет отображаться по-разному при перекатывании, нажатии или выборе? –

+0

@ VicSeedoubleyew, что вы подразумеваете под «перевернутым»? И с «дисплеем по-разному»? Когда вы нажмете, это будет похоже на любой нажатый JButton и имеющий ту же функциональность, все, что он делает, это изменение его внешнего вида. – Frakcool

+0

@VicSeedoubleyew. Я понимаю, что вы имеете в виду «перевернуться», но я до сих пор не понимаю, что вы имеете в виду », показать по-разному ", можете ли вы уточнить? – Frakcool

 Смежные вопросы

  • Нет связанных вопросов^_^