【发布时间】:2017-06-29 09:13:59
【问题描述】:
我想设置一个 JButton,使其图标与左侧对齐,而文本居中。
我找到了如何让其中一个处于左侧、另一个右侧或两者处于相同设置,但我找不到我要查找的内容。
当然,我总是可以重新定义 paint 方法,但我正在寻找一种更精简的方法来做到这一点。
【问题讨论】:
我想设置一个 JButton,使其图标与左侧对齐,而文本居中。
我找到了如何让其中一个处于左侧、另一个右侧或两者处于相同设置,但我找不到我要查找的内容。
当然,我总是可以重新定义 paint 方法,但我正在寻找一种更精简的方法来做到这一点。
【问题讨论】:
您可以将layout manager 添加到您的JButton,例如Border Layout 会有所帮助:
您创建一个带有Icon 的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 的中心:
我认为这没什么大不了的,因为没有边框几乎察觉不到
【讨论】:
JButton 被按下并具有相同的功能,它所做的只是改变它的外观