我已經具有的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