2010-08-26 31 views
0

简单地说,我想让java做我想做的事情,但我无法控制布局管理其他任何自动调整大小以实现其感觉。Java布局,如何最大化固定高度窗格和填充屏幕其余部分的窗格!

我想要的是一个固定高度的“footer”和顶部的“main”区域,以自动调整窗口的高度。

对于两者都具有最小尺寸但没有最大尺寸的水平。

是否有可能(我知道这不过是感觉它不是ATM!)

请帮帮忙!

千恩万谢

编辑:从下面的建议更新时间:

public JPanel getPanDescription() 
    { 
     JPanel masterPane = new JPanel(); 
     masterPane.setMaximumSize(new Dimension(999999,400)); 
     masterPane.setMinimumSize(new Dimension(100,400)); 
      <snip> 
      return masterPane; 
    } 

this.panDescription = getPanDescription(); 

this.panPage = new JPanel(new BorderLayout()); 

this.panPage.add(this.searchPanel, BorderLayout.CENTER); 
this.panPage.add(this.panDescription, BorderLayout.PAGE_END); 

工作得很好,但根据panDescription的内容,取决于它的大小。 它仍然只是调整内容:S

+0

为什么你不希望它调整到panDescription的大小?如果这是一个问题,请更好地设置panDescription的大小 - 如果必须的话,将其放入另一个容器中。边界布局通常是您想要进入的顶层布局,即使您只是使用“中心”和单边,它的工作方式与您始终想要的一样。 – 2010-08-26 18:03:55

回答

4

使用BorderLayout。将您的页脚添加到底部位置。将页脚的最大尺寸设置为所需的固定高度,并且宽度比您的窗口更大。

 
JPanel mainPanel = new JPanel(); 
JPanel footerPanel = new JPanel(); 

this.setLayout(new BorderLayout()); 
this.add(mainPanel); 
this.add(footerPanel, BorderLayout.SOUTH); 

footerPanel.setMaximumSize(new Dimension(10000, 100)); 
footerPanel.setPreferredSize(new Dimension(600, 100)); 
footerPanel.setMinimumSize(new Dimension(1, 100)); 
+0

真的没有“只要你可以扩展”选项?像-1或甚至0?我必须弥补一个最大数量? Java的有点奇怪:lol: 我会给这个镜头(这实际上是我想要做的atm已经) – Dorjan 2010-08-26 17:31:44

+0

+1建议BorderLayout。但是没有必要设置最大或最小尺寸。 BorderLayout将忽略这些值并自动拉伸面板宽度以适合框架的大小。面板的首选高度由添加到其中的组件决定。 – camickr 2010-08-26 17:31:48

+0

虽然这不是什么事情,但埃里克说,有更多的水,但现在我遇到另一个问题,我敢肯定其实是另一个问题。 – Dorjan 2010-08-26 17:39:53

相关问题