当我使用GridBagLayout更改面板中的标签文本时,我的按钮大小会发生变化

时间:2018-03-20 20:16:43

标签: java button label gridbaglayout

我有一个简单的JFrame类,在那个类中我遇到GridBagLayout的问题,每当我更改标签文本时,下面的按钮会适应相同大小的标签。我希望它能让按钮在标签文本发生变化时不会改变尺寸。这是我创建主面板的代码:

public void createView( JFrame frame)
{   
  panel = new JPanel( new GridBagLayout() );

  GridBagConstraints c;
  c = new GridBagConstraints();
  c.gridx = 2;
  c.gridy = 0;      

  label = new JLabel( "  Guesses: " + guesses);
  c.fill = GridBagConstraints.HORIZONTAL;
  c.gridwidth = 1;
  panel.add( label, c);

  for ( int i = 0; i < 25; i++ )
  {

     c.gridx++;

     if ( i % 5 == 0 )
     {
        c.gridy++;
        c.gridx = 0;
     }

     button = new JButton( "BOX " + ( i + 1 ) );
     button.addActionListener( new Action() );
     panel.add( button, c);
  }

  panel.setBackground( Color.YELLOW);
  frame.add( panel);
}

1 个答案:

答案 0 :(得分:0)

https://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#setMaximumSize(java.awt.Dimension)

setMaximumSize(Dimension)为按钮调用此方法并设置常量大小:)