标签: jtable

如何清除jTable的内容?

我有一个jTable,它有一个像这样定义的表模型:

javax.swing.table.TableModel dataModel = 
     new javax.swing.table.DefaultTableModel(data, columns);
tblCompounds.setModel(dataModel);
Run Code Online (Sandbox Code Playgroud)

有谁知道如何清除其内容?就这样它返回一个空表?

java swing jtable

16
推荐指数
2
解决办法
8万
查看次数

保持对TableModel更改的JTable选择

JTable当我们做一个fireTableDataChanged()fireTableRowsUpdated()来自时,我们看到选择被清除TableModel.

这是预期的,还是我们做错了什么?我没有看到JTable关于清除/保留模型更新选择的(或其他相关类)的任何属性.

如果这是默认行为,是否有一种防止这种情况的好方法?也许某种方式在更新之前"锁定"选择并在之后解锁?

开发人员一直在尝试在更新之前保存选择并重新应用它.这有点慢.

这是Windows XP上的Java 1.4.2,如果这很重要的话.我们仅限于基于我们使用的某些供应商代码的版本.

java swing jtable tablemodel

15
推荐指数
1
解决办法
1万
查看次数

将JComboBox放入JTable

我想将各个JComboBox放入JTable的每个单元格中.即.每个单元格的JComboBox内容并不相同.

我基本上希望能够只调用以下代码将一行JComboBox添加到JTable中.任何人有任何想法?谢谢

JComboBox cb1 = new JComboBox(...);
JComboBox cb2 = new JComboBox(...);
model.addRow(new Object[] {"Row name", cb1, cb2} );

JComboBox cb3 = new JComboBox(...);
JComboBox cb4 = new JComboBox(...);
model.addRow(new Object[] {"Row name 2", cb3, cb4} );
Run Code Online (Sandbox Code Playgroud)

我能找到的最接近的示例代码如下.但是对于单个列的JComboBox内容是相同的.不是我需要的解决方案.

TableColumn col = table.getColumnModel().getColumn(vColIndex);
col.setCellEditor(new MyComboBoxEditor(values));
Run Code Online (Sandbox Code Playgroud)

哪里

public class MyComboBoxEditor extends DefaultCellEditor {
    public MyComboBoxEditor(String[] items) {
        super(new JComboBox(items));
    }
}
Run Code Online (Sandbox Code Playgroud)

java jtable jcombobox

15
推荐指数
2
解决办法
4万
查看次数

为什么JTable总是触发ListSelectionListener两次?

对所选行的任何更改JTable都会触发添加ListSelectionListener两次是否正常?

是否有可能ListSelectionListener只触发一次?

java swing jtable event-handling

15
推荐指数
2
解决办法
6179
查看次数

单击以编辑JTable单元格

目前,JTable单元格在第一次单击时被选中,而在第二个单元格上则被编辑.

是否可以在第一次点击时直接编辑它?

java swing jtable

15
推荐指数
3
解决办法
1万
查看次数

如何将下拉菜单添加到JTable单元格

这可能是之前提出的问题.我在帖子之前搜索了很多,但是找不到任何可接受的.

有人可以告诉我如何做到这一点.我只需要在单击单元格时得到一个下拉菜单,这样我就必须从中选择一个值(作为限制用户选择的方法).

如果有人可以帮助我,我相信它会帮助很多人.有很多类似的问题,但没有任何明确的答案.请回答一下细节.一个例子将非常感谢..

谢谢!

java swing jtable tablecelleditor jcombobox

15
推荐指数
1
解决办法
2万
查看次数

如何从JTable中删除选定的行?

我试过这个:

public void removeSelectedFromTable(JTable from)
{
    int[] rows = from.getSelectedRows();
    TableModel tm= from.getModel();

    while(rows.length>0)
    {
        ((DefaultTableModel)tm).removeRow(from.convertRowIndexToModel(rows[0]));

        rows = from.getSelectedRows();
    }
    from.clearSelection();
}
Run Code Online (Sandbox Code Playgroud)

但是,它有时会留下一个.可能是什么问题?

jtable

14
推荐指数
5
解决办法
5万
查看次数

如何从JTable中删除一行?

我想从JTable中删除一些行.我该怎么做?

java swing jtable

14
推荐指数
4
解决办法
10万
查看次数

为什么我的JTable错误地排序整数列?

我有一个使用DefaultTableModel的JTable,我允许在用户点击列标题时进行排序.但是,当用户单击具有integer类型数据的列的标头时,它不能正确排序.它似乎是按String而不是整数类型排序.

这是我的代码中我实际将数据添加到表中的部分:

        DefaultTableModel aModel = (DefaultTableModel) mainView.logEntryTable.getModel();
                    ResultSetMetaData rsmd;             try {
            mainView.logEntriesTableModel.setRowCount(0);
            rsmd = rs.getMetaData();

            int colNo = rsmd.getColumnCount();
            while(rs.next()){
                Object[] objects = new Object[colNo];
                for(int i=0;i<colNo;i++){
                    objects[i]=rs.getObject(i+1);
                }
                aModel.addRow(objects);
                count++;
            }
            mainView.logEntryTable.setModel(aModel);
            mainView.logEntryTable.getColumnModel().getColumn(0).setMaxWidth(80);
Run Code Online (Sandbox Code Playgroud)

所以我试图覆盖该方法并最终得到:

            @Override
            public Class<?> getColumnClass(int columnIndex){
                if( columnIndex == 0){
                    // Return the column class for the integer column
                }else{
                    // Return the column class like we normally would have if we didn't override this method
                }

                return null;
            }
        };
Run Code Online (Sandbox Code Playgroud)

我以前从未覆盖过这个,我不太清楚我在这里做什么.

java sorting swing jtable

14
推荐指数
2
解决办法
2万
查看次数

如何在JTable上执行不区分大小写的过滤器?

我正在制作一个带有文本字段的表格,您可以在其中输入单词来过滤表格.它有效,但我想要做的是能够用输入的单词过滤它,但忽略单词的情况.有没有办法在不创建自定义的情况下完成此操作RowFilter

您可以运行此SCCEE以查看我正在谈论的内容.我想能够输入usa并且它将过滤USA.

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.RowFilter;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;

public class TestTableSortFilter extends JApplet {

    private String[] columnNames
            = {"Country", "Capital", "Population in Millions", "Democracy"};

    private Object[][] data = {
        {"USA", "Washington DC", 280, true},
        {"Canada", "Ottawa", 32, true},
        {"United Kingdom", "London", 60, true},
        {"Germany", "Berlin", 83, true},
        {"France", "Paris", 60, true},
        {"Norway", "Oslo", 4.5, …
Run Code Online (Sandbox Code Playgroud)

java swing jtable rowfilter

14
推荐指数
1
解决办法
7796
查看次数