【问题标题】:add jbutton over jtable在 jtable 上添加 jbutton
【发布时间】:2014-06-04 23:33:36
【问题描述】:

如何在单元格区域上添加一个 jbutton?这是 cleansheets 应用程序,我必须在单元格区域(而不是单元格内部)上添加一个 jbutton,我不知道如何执行此操作。我尝试与 JLayeredPane 一起玩,但到目前为止没有运气

http://imgur.com/V0c3jSD

【问题讨论】:

    标签: java button user-interface layer


    【解决方案1】:

    所有 Swing 组件都从 Container 扩展而来,因此您可以将任何组件添加到 JTable。关键是设置组件的边界。比如:

    Rectangle cell = table.getCellRect(....);
    JButton button = new JButton(...);
    button.setBounds( cell );
    table.add( button );
    table.repaint();
    

    【讨论】:

    • 我无法向单元格本身添加任何内容。我必须在表格上创建一个面板来添加按钮。我还必须将按钮定位在单击鼠标的位置
    • 这不会向单元格添加任何内容。单元格不是真正的组件,它只是被涂成看起来像一个单元格。您可以使用我提供给您的代码在 JTable 中的任何位置添加一个真正的组件。该组件将绘制在表格顶部,这意味着它绘制在单元格顶部。如果您希望在鼠标单击时使用它,则使用来自 MouseEvent 的信息来确定组件的位置。
    • 您的解决方案在这里不起作用。如果有帮助,这是应用程序的 javadoc csheets.sourceforge.net/api
    • @user3079785,确保解决方案有效。发布您的SSCCE 来说明问题。那就是创建一个带有 JTable 的 JFrame 并将一个 JButton 添加到表中。整个代码应该是大约 20 行代码。在这样一个简单的例子中测试这个概念,以证明它是有效的。一旦你得到这个工作,然后你将 MouseListener 添加到代码中以测试按钮的动态放置。最后,在您了解该方法的工作原理后,将逻辑添加到您的实际应用程序中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-27
    • 2014-09-24
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多