【问题标题】:Can I add a button to a JTable column header?我可以向 JTable 列标题添加按钮吗?
【发布时间】:2011-01-02 20:58:49
【问题描述】:

我有一个 JTable,其中每一行的第一列是一个复选框。用户可以选择和取消选择各个列。我有这个工作。

现在我想在列标题中添加一个复选框,可用于“全选”和“取消全选”。我很困惑我应该如何去做这件事。我不知道如何将我选择的组件放在特定的列标题中。

你有什么建议?

【问题讨论】:

    标签: java swing jtable


    【解决方案1】:

    Here 是一个例子,有人想做同样的事情。

    【讨论】:

      【解决方案2】:

      当然可以!

      通过header = table.getTableHeader() 获取表头。这将返回一个组件。您可以通过header.add(btn) 添加其他组件,如按钮等。

      [编辑] 在添加按钮之前,您需要将布局设置为:

      header.setLayout(new BorderLayout()); //if u need someother layout you can set
      

      这是因为默认情况下标题的布局为空。

      【讨论】:

      • 并不是那么简单,因为当该组件被绘制时,它将不再是“活动”组件(即您无法单击它)。您必须创建代码来捕获单击点并将其传递给复选框操作侦听器。查看 Mark 的帖子(以及链接中的示例)
      • @timmyd...不需要如此复杂的代码,这是不必要的。我在上面的答案中使用 Jcheckbox 尝试了我的代码,它工作得很好。请检查并删除反对票。
      【解决方案3】:

      请参阅此处https://stackoverflow.com/a/29963916/1201614 以获取有关如何将控件添加到表头的示例

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-11-30
        • 2011-01-03
        • 2016-05-01
        • 1970-01-01
        • 2010-11-03
        • 1970-01-01
        • 1970-01-01
        • 2013-06-15
        相关资源
        最近更新 更多