Java Jtable隐藏一些列

Java Jtable隐藏一些列,java,jtable,Java,Jtable,如何从对象中的某些列(而不是所有列)生成表?这是所需的输出: ID|Author|Messages ---------------------------- 2 |Alice | My first message 5 |Alice | My second message 6 |Bob | Hello 这就是目标 private String[] columnNames = {"ID","Author", "HideThis", "Mess

如何从对象中的某些列(而不是所有列)生成表?这是所需的输出:

 ID|Author|Messages
 ----------------------------
 2 |Alice | My first message   
 5 |Alice | My second message
 6 |Bob   | Hello
这就是目标

      private String[] columnNames
            = {"ID","Author", "HideThis", "Messages"};

    private Object[][] data = {
        {"2", "Alice", "Hide this", "My first message"},
        {"5", "Alice", "Hide this", "My second message"},
        {"6", "Bob", "Hide this", "Hello"}
    };
    private DefaultTableModel model = new DefaultTableModel(data, columnNames);
我是否必须创建一个新的数据对象并只复制相关列,或者是否有一种方法可以说columnSetHidden(2)?

DefaultTableModel=new DefaultTableModel(ProcessArray(data,1),columnNames);
公共对象[][]ProcessArray(对象[][]arr,int-colindex){
列表点=数组.asList(arr);
对于(int i=0;i
DefaultTableModel
中没有Api规范来删除
,但是您可以
自定义
二维数组并删除所需的列。然后将处理后的数组传递给
DefaultTableModel
的构造函数。但是,您仍然需要更改列名

 DefaultTableModel model = new DefaultTableModel(ProcessArray(data,1),columnNames);

 public Object[][] ProcessArray(Object[][] arr,int colindex) {

            List points = Arrays.asList(arr);
            for (int i = 0; i < arr.length; i++) {
                for (int j = 0; j < arr[i].length; j++) {
                   points.remove(arr[i][colindex]);
                }
             }
             Object[][] returnData = (Object[][]) points.toArray();
             return returnData;

        }