标签: jtable

在JTable列中设置右对齐

我正在为计费工具创建一个应用程序.我希望使用右对齐显示金额列.如何为JTable列设置正确的对齐方式?

java swing jtable

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

将JScroll Pane缩小到与JTable相同的高度

我目前在JScrollPanes中嵌套了JTables,如下所示:

在此输入图像描述

我的问题是,在创建表时,每个表中的行数是可变的.我想要做的是如果表太短,则使JScrollpane变小,但如果表太长,我想将它保持在设定的大小.

我怎么能做到这一点?

java swing jtable jscrollpane

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

JTable可点击列排序:排序对单元格内容进行排序,但不更新单元格格式?

我有一个可排序的JTable设置来使用自定义扩展AbstractTableModel.但是,这个表的某些行为是我的预期,我希望得到一些关于如何解决这个问题的建议.

我将JTable设置为可排序使用:

thisJTable.setAutoCreateRowSorter(true);
Run Code Online (Sandbox Code Playgroud)

这允许我按预期单击列标题对表进行排序.

但是,我发现当我通过单击列标题对表进行排序时,我的行的格式(背景和前景色)也没有排序.

我根据它们包含的值设置了这些行的颜色编码.当我按列标题排序时,给定行NUMBER的格式保持不变(尽管之前在该行中的内容已移动).

通过覆盖prepareRendererJTable 的默认调用来设置行的颜色:

thisTable = new JTable(thisModel){

    //Set up custom rendering - Sets background color of row to correct value
    public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
        Component c = super.prepareRenderer(renderer, row, column);
        CustTableModel thisModel = (CustTableModel) getModel();
        c.setBackground(thisModel.getRowBackgroundColor(row));
        c.setForeground(thisModel.getRowForeColor(row));
        return c;
    }
};
Run Code Online (Sandbox Code Playgroud)

有没有更好/不同的方法来解决这个问题?

我是否应该使用不同的方法来进行渲染,这种方法可以在排序中更新JTable的渲染?

或者我是否想要编写自己的排序方法?

解决方案(谢谢mKorbel!)

我以为我会发布我的解决方案,因为我不得不玩这个,因为我不确定新索引是否也会传递给prepareRenderer.

 thisTable = new JTable(thisModel){

    //Set up custom rendering - Sets background color of row to correct value
    public …
Run Code Online (Sandbox Code Playgroud)

java swing jtable abstracttablemodel

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

Java:删除DefaultTableModel的所有行

我想删除DefaultTable的所有行.我发现了两种在Internet上删除它们的常用方法,但在我的情况下它们都不起作用,因为我的DefaultTableModel中不存在这些方法.我想知道为什么:S.我使用DefaultTableModel的代码是

DefaultTableModel Table =(DefaultTableModel)Table.getModel();

删除的一种方法是

Table.removeRow(Table.getRowCount() - 1);

但是这个removerow方法在我的DefaultTableModel中不存在.

请帮帮我.

java swing jtable defaulttablemodel

19
推荐指数
4
解决办法
3万
查看次数

如何将工具提示添加到jtable中的单元格?

我有一张表,每行代表一张图片.在路径I中,存储其绝对路径.字符串有点长,我想当我将鼠标悬停在特定单元格上时,工具提示应弹出包含来自单元格的信息的鼠标旁边.

java swing jtable tooltip listener

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

TableModel与ColumnModel:谁拥有列值?

JTable.getModel().getColumnName()和之间有什么区别JTable.getColumnModel().getColumn(index).getHeaderValue()?这两个似乎没有共享任何数据.我的猜测是TableModel.getColumnName()指示列的文本表示,TableColumn.getHeaderValue()TableColumn.getHeaderRenderer()确定列的外观(它不需要是纯文本).

什么保证两者保持同步?如果两者发生冲突会怎样?

java swing jtable

17
推荐指数
1
解决办法
8001
查看次数

如何清除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万
查看次数

如何更改JTable标题的字体?

我想设置JTable标头的字体.你知不知道怎么?

java fonts jtable jtableheader

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

如何在JTable单元中单击JButton?

我有一个带有自定义单元格渲染器的JTable.该单元格是一个包含JTextField和JButton的JPanel.JTextField包含一个整数,当用户单击JButton时,应该增加整数.

问题是当我在JTable单元格中使用它时,无法单击JButton.如何使其可点击?

在此输入图像描述

这是我的测试代码:

public class ActiveTable extends JFrame {

    public ActiveTable() {
        RecordModel model = new RecordModel();
        model.addRecord(new Record());
        JTable table = new JTable(model);
        EditorAndRenderer editorAndRenderer = new EditorAndRenderer();
        table.setDefaultRenderer(Object.class, editorAndRenderer);
        table.setDefaultEditor(Object.class, editorAndRenderer);
        table.setRowHeight(38);

        add(new JScrollPane(table));
        setPreferredSize(new Dimension(600, 400));
        pack();
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setTitle("Active Table");
        setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                new ActiveTable();
            }
        });
    }

    class RecordModel extends AbstractTableModel {

        private final List<Record> records = new ArrayList<Record>();

        @Override
        public int getColumnCount() …
Run Code Online (Sandbox Code Playgroud)

java swing jtable jbutton tablecellrenderer

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

Java JTable - 只能编辑一列

我想知道如何使JTable的一列可编辑,其他列必须是不可编辑的.

我已经覆盖了isCellEditable()但是这会将每个单元格更改为不可编辑.Thnx提前.

java swing jtable

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