Вы можете добавить 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
:


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

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