You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

按钮水平居顶排列,点击后表格无法垂直置于按钮下方的问题

问题解决:点击按钮后表格显示在按钮下方的布局调整

问题原因

你当前的代码把表格直接添加到水平方向的BoxPanel中,点击按钮后表格会和原有按钮横向并排,这就是不符合预期的核心原因——水平面板的子组件会沿水平方向排列,而非垂直。

解决方案

调整整体布局结构:用垂直BoxPanel作为外层容器,分为上下两部分——上方是水平排列的按钮栏,下方是专门用来承载表格的容器。按钮点击时,将表格添加到下方的容器中,就能实现表格在按钮下方显示的效果。

修改后的代码:

// 外层垂直面板,分为按钮栏和表格容器两部分
contents = new BoxPanel(Orientation.Vertical) {
  // 上方的水平按钮栏
  val buttonPanel = new BoxPanel(Orientation.Horizontal) {
    contents += Button("Top 10 most commun runways latitude") {
      val headers = Array.tabulate(10) {"Col-" + _}.toSeq
      val rowData = Array.tabulate[Any](10, 10) {"" + _ + ":" + _}
      // 清空表格容器,再添加新表格
      tableContainer.contents.clear()
      tableContainer.contents += new ScrollPane(new Table(rowData, headers))
    }
    contents += Button("10 highest and lowest number of countries") {
      // 这里可以添加对应表格的逻辑,同样操作tableContainer
      tableContainer.contents.clear()
      // tableContainer.contents += 你的表格组件
    }
    contents += Button("Type of runways per country") {
      // 同理处理
      tableContainer.contents.clear()
      // tableContainer.contents += 你的表格组件
    }
  }
  contents += buttonPanel

  // 下方的表格容器,初始为空
  val tableContainer = new BoxPanel(Orientation.Vertical) {}
  contents += tableContainer
}

关键修改点

  • 外层使用Orientation.Vertical的BoxPanel,让按钮栏和表格容器纵向排列
  • 单独创建tableContainer作为表格的承载容器,点击按钮时操作这个容器的内容(先清空再添加新表格,避免重复添加)
  • 按钮依然放在水平的BoxPanel中,保持横向排列的样式

效果对比

当前效果

当前效果

期望效果

期望效果

内容的提问来源于stack exchange,提问作者Kev74

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 12:40:13