java - 无法将包装在 JPanel 中的 JButton 添加到 JTable 中

标签 java swing jtable jbutton flowlayout

我有一个 JTable,其中表格的最后一列用于添加 2 个按钮。以下是我的 JTable 的格式。

enter image description here

下面是我的代码

private class ViewLawyersDisplayData extends ComponentAdapter
     {
        @Override
        public void componentShown(ComponentEvent e) 
        {
            dbConnector = new DBHandler();
            dbConnector.makeConnection();

            ResultSet rs =  dbConnector.selectAllLawyerDetails();

            if(rs==null)
            {
                JOptionPane.showMessageDialog(null,"The table is empty");
            }
            else
            {
                try
                {
                    while(rs.next())
                    {
                        int id = rs.getInt("lawyer_id");
                        String name = rs.getString("Name");
                        String address = rs.getString("Address");
                        String email = rs.getString("Email");
                        String phone = rs.getString("Phone");

                        JButton update = new JButton("Update");
                        JButton delete = new JButton("Delete");

                        JPanel btnPanel = new JPanel();
                        btnPanel.setLayout(new FlowLayout());
                        btnPanel.add(update);
                        btnPanel.add(delete);

                        Object[]row = {id,name,address,email,phone,btnPanel};

                        DefaultTableModel model = (DefaultTableModel) viewLawyersTable.getModel();
                        model.addRow(row);
                    }
                }
                catch(SQLException sqlE)
                {
                    JOptionPane.showMessageDialog(null,sqlE.getLocalizedMessage());
                }
            }
        }
     }

但是我无法将按钮添加到最后一列中。它不显示按钮,而是在列中显示一些错误文本。下面是它向我显示的错误文本。

javax.swing.JPanel[,0,0,0x0,invalid,layout=java.awt.FlowLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=9,maximumSize=,minimumSize=,preferredSize=]

我该如何解决这个问题?

最佳答案

您不能将 Swing 组件添加到表格中,因为表格不用于显示实际组件。

参见 Table Button Column对于为表格列中的按钮提供渲染器/编辑器的一种解决方案。

关于java - 无法将包装在 JPanel 中的 JButton 添加到 JTable 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25707854/

相关文章:

java - 三角学和角度收敛

java - JTable 和 JScrollPane 问题

java - 在运行时刷新java程序

java - 创建通用列表列表

java - 对这行Java代码如何按降序排序感到困惑

java - 检查 Java 中导致错误的奇数整数

java - 自定义 JFileChooser。如何返回变量?

java - Mig 布局不遵循单元格约束

java - 填充 FlowLayout 的空白空间

java - 如何插入/删除列到 JTable java