Java / Swing:低调的button高度?
我想减less一个JButton的垂直大小。 下面的代码适用于K> 1,但似乎无法缩小大小。 有什么build议么?
JButton button = /* ... get button here ... */ Dimension d = button.getPreferredSize(); d.setSize(d.getWidth(), d.getHeight()*K); button.setPreferredSize(d);
编辑:我正在使用JavaBuilders + MigLayout。 它看起来像我必须做button.setMaxSize(d);
而不是setPreferredSize(),不知道为什么。
几个选项:
import java.awt.*; public class FrameTest { public static void main(String[] args) { JFrame jf = new JFrame("Demo"); jf.getContentPane().setLayout(new FlowLayout()); // Ordinary button jf.add(new JButton("button 1")); // Smaller font jf.add(new JButton("button 2") {{ setFont(getFont().deriveFont(7f)); }}); // Similar to your suggestion: jf.add(new JButton("button 3") {{ Dimension d = getPreferredSize(); d.setSize(d.getWidth(), d.getHeight()*.5); setPreferredSize(d); }}); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.pack(); jf.setVisible(true); } }
产生
作为替代,一些L&F(例如Nimbus , Aqua )支持JComponent.sizeVariant
,如调整组件大小和使用客户端属性中所述 。
也许只是玩button的边框:
Insets insets = button.getInsets(); insets.top = 0; insets.bottom = 0; button.setMargin( insets );