找出哪一行被排序以及它是升序还是降序

Find out which row is sorted and if it is ascending or descending

我通过扩展 DefaultTableCellHeaderRenderer

创建了自定义 table header
public class TableHeaderRenderer extends DefaultTableCellHeaderRenderer
{
    private JPanel panel;
    private JLabel label;

    public TableHeaderRenderer()
    {
        panel = new JPanel();
        label = new JLabel(" ");
        label.setHorizontalAlignment(JLabel.CENTER);
        panel.add(label);
    }

    public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column)
    {
        label.setText(String.valueOf(value));
        label.setBorder(BorderFactory.createMatteBorder(0, (column == 0 ? 1 : 0), 1, 1, Color.Red));
        return panel;
    }
}

我想做的是显示在许多其他 table 中显示的已排序列的向上或向下小箭头。
我曾尝试搜索以找出对哪一列进行了排序以及排序顺序,但没有结果。

任何人都可以建议我如何去做吗?

我通过执行以下操作得到了显示的箭头。

我换了

label_.setText(String.valueOf(value));

if (table.getRowSorter() != null && table.getRowSorter().getSortKeys() != null && !table.getRowSorter().getSortKeys().isEmpty() &&
        table.getRowSorter().getSortKeys().get(0).getColumn() == column)
{
    if (table.getRowSorter().getSortKeys().get(0).getSortOrder() == SortOrder.ASCENDING)
    {
        label_.setText(String.valueOf(value) + "  \u25b2");
    }
    else if (table.getRowSorter().getSortKeys().get(0).getSortOrder() == SortOrder.DESCENDING)
    {
        label_.setText(String.valueOf(value) + "  \u25bc");
    }
}
else
{
    label_.setText(String.valueOf(value));
}

并且箭头显示正常。