使用BorderPanel填充MainFrame

时间:2014-09-11 20:46:05

标签: java swing scala scala-swing

我基本上想要使用SplitPanel来填充我的MainFrame,这将占用MainFrame中的所有可用空间。我读到了一种方法是将BorderPanel添加到MainFrame,并将SplitPane添加到BorderPanel的中心。

object SwingApp extends SimpleSwingApplication {

  def top = new MainFrame {

    peer.setUndecorated(true) //with this hack it works but I don't feel like it's the purpose of the function

    object splitPane extends SplitPane(Orientation.Vertical, new Button(), new Button())

    contents = new BorderPanel {
      import BorderPanel.Position._

      val center = splitPane
      layout(center)  = Center
    }
  }
}

我的问题是BorderPanel似乎采用尽可能小的最小尺寸(此处为0),当我希望它实际填充整个框架时。

我在MainFrame中设置了一个解决方案

peer.setUndecorate(true)

但感觉很脏,通过阅读文档,我不知道它为什么会起作用。是不是有更好的方式?

1 个答案:

答案 0 :(得分:0)

您可以使用BorderFactory添加边框并指定厚度(此处为10)。

panel.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0), 10));