簡體   English   中英

從Jtable移除一列並重新排列

[英]Remove a column from Jtable and rearrange it

我有JComboBox選擇指定。 我有JTable,它的列是EmpId,Name,Status,Start Time,End Time。 當我選擇名稱“職員”時,JTable應該只顯示EmpId,名稱,狀態。如果我選​​擇名稱“勞工”,則JTable應該出現與EmpId,名稱,狀態,開始時間,結束時間列。 我做了這件事,但它給出了一個錯誤,

jTable1.removeColumn(jTable1.getColumnModel()。getColumn(3)); jTable1.removeColumn(jTable1.getColumnModel()。getColumn(4));

然后僅出現EmpId,Name,Status,End Time,並且給出arrayoutofboundsexception

這是什么錯誤

並且我還需要再次選擇那些列(3和4(開始時間,結束時間列))以在選擇名稱“文員”時顯示,因此我使用了此代碼,但未提供所需的輸出

String desig=cmbAtSelectDesig.getSelectedItem().toString();
if(desig.contentEquals("Clerk")){
 jTable3.addColumn(jTable3.getColumnModel().getColumn(3));
           jTable3.addColumn(jTable3.getColumnModel().getColumn(4));
}
   What is the mistake here Please Give me a solution        

從數組中間刪除對象后,它將刪除呈現此列的TableColumn ,因此保存所有列的當前數組將為“ PRIOR size -1”,因此右側的數組(最后一個)將移至在左側,您的“結束時間”位置現在位於“ 3”,為避免此問題,甚至不要考慮刪除兩次第3列,這很不專業而且比較混亂,只需從數組末尾開始刪除即可,4- -> 3

更新:

首先,我之前從未使用過JTABLE,幾乎可以肯定的是,我所做的一切使所有JAVA社區陷入了尷尬境地……

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;


public class Tester {
    JFrame frane;
    JPanel mainP;
    JTable table;
    public void testIt() {
        frane=new JFrame("testing");
        populateGui();
        frane.setContentPane(mainP);
        frane.pack();
        frane.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frane.setVisible(true);
    }
    private void populateGui() {
        mainP=new JPanel();
        String[] colName={"first col","second","3rd coll"};
        String[][] information={
                    {"DUCK","QUACK","MacDuck"}
                };
        table=new JTable(information, colName);
        table.removeColumn(table.getColumnModel().getColumn(2));
        System.out.println(table.
                getColumnModel().
                    getColumnCount()
        );
        System.out.println(table.
                getModel().
                    getColumnCount()
        );
        table=new JTable(table.getModel());  // yet all the data object that were present in data array () "information" are still there
        /*table.addColumn(
                table.getColumnModel().          there is no column 2 since it was removed from ColumRendere (ColumnModel)
                    getColumn(2));*/
        mainP.add(table);
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM