Java jTable中的jButton不可单击
我的问题是,我不能点击按钮。它们的行为就像是带有按钮设计的文本字段 我的Java jTable中的jButton不可单击,java,swing,jtable,jbutton,Java,Swing,Jtable,Jbutton,我的问题是,我不能点击按钮。它们的行为就像是带有按钮设计的文本字段 我的Main: tableModStudents = (DefaultTableModel) studentsTable.getModel(); studentsTable.getColumn(studentsTable.getColumnName(8)) .setCellRenderer(new JButtonRenderer()); studentsTable.get
Main
:
tableModStudents = (DefaultTableModel) studentsTable.getModel();
studentsTable.getColumn(studentsTable.getColumnName(8))
.setCellRenderer(new JButtonRenderer());
studentsTable.getColumn(studentsTable.getColumnName(8))
.setCellEditor(new JButtonEditor());
myCellRenderer
:
public class JButtonRenderer implements TableCellRenderer {
private JButton button = new JButton();
public Component getTableCellRendererComponent(JTable table,
Object buttonText, boolean isSelected, boolean hasFocus,
int row, int column) {
table.setShowGrid(true);
button.setText("Details");
button.setToolTipText(buttonText.toString());
return button;
}
}
myCellEditor
:
public class JButtonEditor extends AbstractCellEditor implements TableCellEditor {
private JButton button;
private String txt;
public JButtonEditor() {
super();
button = new JButton();
button.setOpaque(true);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
System.out.println("Button gedrückt!");
}
});
}
public Object getCellEditorValue() {
return null;
}
public boolean isCellEditable(EventObject anEvent) {
return true;
}
public boolean shouldSelectCell(EventObject anEvent) {
return false;
}
public boolean stopCellEditing() {
return super.stopCellEditing();
}
public void cancelCellEditing() {
}
public void addCellEditorListener(CellEditorListener l) {
}
public void removeCellEditorListener(CellEditorListener l) {
}
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
txt = (value == null) ? "" : value.toString();
button.setText(txt);
return button;
}
}
你能找到问题所在吗?它让我疯狂
非常感谢:)退房
它将按钮渲染器和编辑器组合在一个类中
您所需要做的就是提供自定义
操作
,以便在调用按钮时调用(通过单击按钮或调用其助记符)。这上面有一些指向解决方案的链接。太棒了!好极了,轻松