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(),不知道为什么。

3 Solutions collect form web for “Java / Swing:低调的button高度?”

几个选项:

 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(例如NimbusAqua )支持JComponent.sizeVariant ,如调整组件大小使用客户端属性中所述

也许只是玩button的边框:

 Insets insets = button.getInsets(); insets.top = 0; insets.bottom = 0; button.setMargin( insets ); 
  • 使用带有Swing GUI类和侦听器的JFileChooser
  • 在Java中用button单击在JPanel中画一条线
  • 是否有可能使用jtextfield和Jlist自动完成?
  • 有没有JLabel的“自动换行”属性?
  • 刷新jtable中的行的背景颜色
  • 在面板中添加一个复杂的图像,在一个自定义的用户界面中,周围有button
  • 为什么我的JLabel没有显示出来
  • JOptionPane - 检查用户input,并防止closures,直到条件满足
  • 如何在swing中实现dynamicGUI
  • JPanel的位置和大小根据屏幕大小而变化
  • 限制JTextField中的字符数