我已经具有的JTable一些行一个秋千的GUI和Columns.How我应该添加一个按钮JTable中来排?如何添加按钮,在JTable中的一行在Swing的Java
24
A
回答
32
您不会将它添加到行 - 您将其添加到单元格。 This tutorial描述你所需要的。
8
Table Button Column给一个方法。
20
您可以将Component添加为表格单元格。
首先,应实现有一个JButton作为父类的类和两个接口是的TableCellRenderer和TableCellEditor的。
应该实现TableCellEditor的原因是用于接收按钮的动作事件。
public class TableButton extends JButton implements TableCellRenderer, TableCellEditor {
private int selectedRow;
private int selectedColumn;
Vector<TableButtonListener> listener;
public TableButton(String text) {
super(text);
listener = new Vector<TableButtonListener>();
addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
for(TableButtonListener l : listener) {
l.tableButtonClicked(selectedRow, selectedColumn);
}
}
});
}
public void addTableButtonListener(TableButtonListener l) {
listener.add(l);
}
public void removeTableButtonListener(TableButtonListener l) {
listener.remove(l);
}
@Override
public Component getTableCellRendererComponent(JTable table,
Object value, boolean isSelected, boolean hasFocus, int row, int col) {
return this;
}
@Override
public Component getTableCellEditorComponent(JTable table,
Object value, boolean isSelected, int row, int col) {
selectedRow = row;
selectedColumn = col;
return this;
}
@Override
public void addCellEditorListener(CellEditorListener arg0) {
}
@Override
public void cancelCellEditing() {
}
@Override
public Object getCellEditorValue() {
return "";
}
@Override
public boolean isCellEditable(EventObject arg0) {
return true;
}
@Override
public void removeCellEditorListener(CellEditorListener arg0) {
}
@Override
public boolean shouldSelectCell(EventObject arg0) {
return true;
}
@Override
public boolean stopCellEditing() {
return true;
}
}
然后,我添加了一个名为TableButtonListener的EventListener来处理按钮事件,如下所示。
public interface TableButtonListener extends EventListener {
public void tableButtonClicked(int row, int col);
}
并使用上面的Renderer/Editor。
TableButton buttonEditor = new TableButton("Button");
buttonEditor.addButtonListener(new TableButtonListener() {
@Override
public void tableButtonClicked(int row, int col) {
// do something
}
});
TableColumn col = new TableColumn(1, 80);
col.setCellRenderer(buttonEditor);
col.setCellEditor(buttonEditor);
cols.addColumn(colPattern);
如果你想显示不同的按钮的每一行标签,你应该插入的代码块到getTableCellRendererComponent和getTableCellEditorComponent这是修改按钮的标签。
编辑:代码编译现在。修复了TableButton构造函数中的包围错误。
相关问题
- 1. 如何在JTable中添加新行,同时按一下按钮
- 2. 如何在Java Swing中为多个按钮添加多个ActionListeners
- 3. 如何在Swing的JTable列中添加不同的JComboBox项目
- 4. 如何在java swing中的复制按钮中添加拷贝功能
- 5. 如何添加列值的Java Swing到JTable的?
- 6. 如何在jtable中添加字段java
- 7. 如何在javascript中添加一行时添加按钮
- 8. 将按钮添加到jtable
- 9. 将按钮添加到jtable
- 10. 在java swing中的一个按钮上执行多个操作
- 11. 在Java Swing中将按钮添加到JPanel
- 12. 如何将按钮添加到JTable的行?
- 13. 的Java Swing按钮
- 14. Swing - 添加按钮JList
- 15. 如何在JTable中添加行?
- 16. 来自TableModel的JTable - 将按钮添加到每一行
- 17. 如何在Android的同一行中添加两个按钮?
- 18. 如何在按下按钮后在applet(java)中添加图片?
- 19. Java Swing:如何从另一个页面按钮刷新JTable模型
- 20. 如何在java swing中通过jtable中的数据显示组?
- 21. 如何在Drupal7中添加一个按钮点击按钮?
- 22. 在Java/Swing中更改按钮位置
- 23. 如何在java中的单个框架中添加jtable和Jtextpane?
- 24. 如何使用eclipse在java swing中设置jtable的文本
- 25. 如何在面板的同一行添加两个按钮?
- 26. 如何在datagrid列的第一行添加按钮?
- 27. Java Swing JPanel留在JTable的顶端
- 28. 如何在Java GUI中添加一行?
- 29. Java swing,在我的paint组件中创建一个按钮
- 30. java/swing:显示JTable中潜在的拖放目标行
好的,谢谢Droidln.net – 2009-09-25 05:50:41
无需感谢,只需勾选标记:) – Bostone 2009-09-25 16:12:56
waw!我刚刚打开了该示例,并意识到源代码向CellEditor添加了一个“新的JCheckbox”。 但实际上它呈现为JButton。无论如何,我的问题是,为什么我们应该把JCheckBox放进去呢? :( – gumuruh 2012-01-10 09:48:17