带有FlowLayout的JPanel会自行调整大小

时间:2012-02-24 23:39:29

标签: java swing jpanel miglayout flowlayout

我在JFrame中有JPanel(但它们的大小不同,JFrame是全屏)。 JPanel有一个FlowLayout,因为我动态地添加了小方块(JPanels)。正方形排列得很好(它们在JPanel结束时移动到下一行),直到我调整JFrame的大小 - 然后这些正方形显示在一行中,是什么使它们的一部分不可见(它们在屏幕结束时消失)和JPanel调整大小。我该怎么做才能保持JPanel的永久尺寸? JFrame的LayoutManager是MigLayout。

1 个答案:

答案 0 :(得分:2)

一种可能的解决方案:覆盖其getPreferredSize()方法以返回常量Dimension。

public class MyPanel extends JPanel {
   private static final int PANEL_W = 400;
   private static final int PANEL_H = 300;

   public MyPanel() {
      // ... etc...
   }


   @Override
   public Dimension getPreferredSize() {
      return new Dimension(PANEL_W, PANEL_H);
   }

   // ... etc...
}