我遇到了问题,我无法单击按钮。它们的行为就像只是带有按钮设计的文本字段。
\n\n我的Main:
tableModStudents = (DefaultTableModel) studentsTable.getModel();\n studentsTable.getColumn(studentsTable.getColumnName(8))\n .setCellRenderer(new JButtonRenderer());\n studentsTable.getColumn(studentsTable.getColumnName(8))\n .setCellEditor(new JButtonEditor());\nRun Code Online (Sandbox Code Playgroud)\n\n我的CellRenderer:
public class JButtonRenderer implements TableCellRenderer { \n private JButton button = new JButton();\n\n public Component getTableCellRendererComponent(JTable table,\n Object buttonText, boolean isSelected, boolean hasFocus, \n int row, int column) {\n table.setShowGrid(true);\n button.setText("Details");\n button.setToolTipText(buttonText.toString());\n return button;\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我的CellEditor:
public class JButtonEditor extends AbstractCellEditor implements TableCellEditor {\n\n private JButton button;\n private String txt;\n\n public JButtonEditor() {\n super();\n button = new JButton();\n button.setOpaque(true);\n button.addActionListener(new ActionListener() {\n public void actionPerformed(ActionEvent ae) {\n System.out.println("Button gedr\xc3\xbcckt!");\n }\n });\n }\n\n public Object getCellEditorValue() {\n return null;\n }\n\n public boolean isCellEditable(EventObject anEvent) {\n return true;\n }\n\n public boolean shouldSelectCell(EventObject anEvent) {\n return false;\n }\n\n public boolean stopCellEditing() {\n return super.stopCellEditing();\n }\n\n public void cancelCellEditing() {\n }\n\n public void addCellEditorListener(CellEditorListener l) {\n }\n\n public void removeCellEditorListener(CellEditorListener l) {\n }\n\n public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {\n txt = (value == null) ? "" : value.toString();\n button.setText(txt);\n return button;\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n你能找出其中的问题吗?它让我发疯...
\n\n非常感谢 :)
\n| 归档时间: |
|
| 查看次数: |
2126 次 |
| 最近记录: |