有没有办法以编程方式对JTable进行排序?
我的JTable排序工作正常(使用setRowSorter),以便当用户按任意列时,表将被排序。
我知道,SWingX
JXTable可能可以工作,但我不想麻烦,因为其他所有事情现在都可以正常工作,而且我不知道NetBeans的可视化编辑器如何处理JXTable等。
编辑: 选定的答案是指我的声明(现已删除),该声明对Sun的页面的答案不起作用。 那只是我的无知引起的环境问题。
对我来说效果很好:
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class TableBasic extends JFrame
{
public TableBasic()
{
String[] columnNames = {"Date", "String", "Long", "Boolean"};
Object[][] data =
{
{new Date(), "A", new Long(1), Boolean.TRUE },
{new Date(), "B", new Long(2), Boolean.FALSE},
{new Date(), "C", new Long(9), Boolean.TRUE },
{new Date(), "D", new Long(4), Boolean.FALSE}
};
final JTable table = new JTable(data, columnNames)
{
// Returning the Class of each column will allow different
// renderers and editors to be used based on Class
public Class getColumnClass(int column)
{
// Lookup first non-null data on column
for (int row = 0; row < getRowCount(); row++)
{
Object o = getValueAt(row, column);
if (o != null)
return o.getClass();
}
return Object.class;
}
};
table.setPreferredScrollableViewportSize(table.getPreferredSize());
table.setAutoCreateRowSorter(true);
// DefaultRowSorter has the sort() method
DefaultRowSorter sorter = ((DefaultRowSorter)table.getRowSorter());
ArrayList list = new ArrayList();
list.add( new RowSorter.SortKey(2, SortOrder.ASCENDING) );
sorter.setSortKeys(list);
sorter.sort();
JScrollPane scrollPane = new JScrollPane( table );
getContentPane().add( scrollPane );
}
public static void main(String[] args)
{
TableBasic frame = new TableBasic();
frame.setDefaultCloseOperation( EXIT_ON_CLOSE );
frame.pack();
frame.setLocationRelativeTo( null );
frame.setVisible(true);
}
}
下次在无法正常工作时发布SSCCE。
问题内容: 启动应用程序时,未选择任何行。但我想表明第一行已被选中。 这该怎么做?我是否需要设置行的颜色? 更新:我尝试了table.setRowSelectionInterval(0,0)。我知道它应该可以工作,但是有一条错误消息: 问题答案: 您可以调用setRowSelectionInterval来做到这一点: 选择第一行。
我还可以在控制台中看到这些行: 我的应用程序服务器是weblogic 12c
我试图实现一个非常简单的用例,一个UI特性,其中: null 这些建议和类似的建议都不起作用。我也试着愚弄一下反应,看看我能不能做点什么!我使用了真实的DOM: 而且也没用。我甚至无法理解的一件事是这样的建议:将ref作为一个方法(我“猜测”),我甚至没有尝试它,因为我有很多这样的组件,我需要ref来进一步获得每个组件的值,我无法想象如果我的ref没有命名,我如何获得的值! 所以你能给出一个想法,
问题内容: 我正在将Xcode7和Swift与Storyboards一起使用。当我打开LaunchScreen.storyboard并尝试在其上设置自定义类时,Xcode抱怨一个人不能在LaunchScreen故事板上拥有自定义类。所以我的问题是,有什么方法可以对LaunchScreen进行编程编码,因为我想避免使用IB在其上拖放元素。 问题答案: 否, 在 您的应用开始执行 之前 会显示启动屏幕
问题内容: 我有一个JTable,其属性AutoCreateRowSorter设置为true。单击时效果很好,但如果单击时仅将鼠标移动1px,则不会出现排序,这在某些情况下不舒服。如何解决这个问题? UPD我只想在释放鼠标时显示排序。 问题答案: 肮脏的方法(请阅读: 如果您不是绝对地绝望,请确切地知道自己在做什么!请不要这样做 ),方法是挂接到uiDelegate安装的MouseListener