如何使TextArea正确适合工具栏?

时间:2018-02-24 19:19:50

标签: scala javafx scalafx

我正在编写一个简单的WebBrowser应用程序,我希望在窗口顶部有一个搜索栏。我的舞台的根是一个TabPane,目前只有一个标签。

stage = new PrimaryStage{
  scene = new Scene{
    minHeight = 600
    minWidth = 600
    root = tabPane
  }
}

将其内容设置为方法initBrowser返回的BorderPane:

def initBrowser: BorderPane = new BorderPane{
  top = initToolBar
  center = new StackPane()
}

然后我在initToolBar

中定义ToolBar
def initToolBar: ToolBar = new ToolBar{
  prefHeight = 10
  prefWidth = 10
  val buttonContainer = new HBox{
    padding = Insets(2, 2, 2, 2)
    val b = new Button{
      text = "Search"
    }
    children.add(b)
  }
  val queryTextContainer = new HBox{
    padding = Insets(2, 2, 2, 2)
    val querytext = new TextArea{
      maxHeight = 10
    }
    children.add(querytext)
  }
  items.addAll(
    buttonContainer,
    new Separator(),
    queryTextContainer
  )
}

This is the result that i am getting

And this is without the TextArea(but looks better)

当排除TextArea时,ToolBar看起来很好但是一旦我添加了TextArea,我就会遇到大小调整问题。我是Javafx的新手,我希望改善我的工具栏的外观。我试过设置prefHeight,maxHeight等等,但到目前为止这还没有用。所以具体我要问的是如何使我的工具栏看起来像我发布的第二张图片中的那个,但仍然包含TextArea,创建一个Web浏览器地址栏?我正在使用Scala和ScalaFX。我将不胜感激任何帮助或指导。谢谢。

我已经更新了initToolBar方法的代码:

def initToolBar: ToolBar = new ToolBar{
  prefHeight = 40
  maxHeight = 40
  padding = Insets(10, 10, 10, 10)
  val b = new Button{
  text = "Search"
  prefHeight = 20
  margin = Insets(10, 0, 10, 0)
}
val t = new TextArea{
  prefHeight = 10
  maxHeight = 10
  margin = Insets(10, 0, 10, 0)
}
items.addAll(b, new Separator(), t)
}

这是当前结果的照片: doesn't fit toolbar

0 个答案:

没有答案