是否可以在其單元格渲染器中設置JTable列的寬度?我試過下面的代碼,但它似乎什麼都不做。單元格渲染器設置列寬
//in main class where table defined;
table.getColumnModel().getColumn(0).setCellRenderer(renderer);
//in renderer class;
setSize(10, getPreferredSize().height);
是否可以在其單元格渲染器中設置JTable列的寬度?我試過下面的代碼,但它似乎什麼都不做。單元格渲染器設置列寬
//in main class where table defined;
table.getColumnModel().getColumn(0).setCellRenderer(renderer);
//in renderer class;
setSize(10, getPreferredSize().height);
1)其可以設置JTable Column's
寬度此(非常簡單的)方式
TableColumnModel tcm = myTable.getColumnModel();
tcm.getColumn(0).setPreferredWidth(int);
2)I表明不這樣做內部TableRenderer
,
因爲我不每次渲染器被觸發時,都看不到重繪原因
,並從你的代碼,你張貼在這裏不適合我真的不清楚是什麼/如何/在哪裏/爲什麼
其實我現在使用這個方法設置widht,但是我有大約20多個表totaly使用這個通用的渲染器。這個渲染器設置了相關表的行號。我想知道如果我可以設置它的寬度這是所有這些表格的通用位置。或者任何其他方法來集中設置此列寬度。 – cacert
試圖避免這種情況,因爲Renderer從很多事件中工作並重新繪製TableCell,有兩種方法1)通過計算TableCell中的max_lengh和每個TableColumn的separatelly來計算TableColumn的widht 2)手動編寫代碼,其中setPreferredSize爲每個TableColumns, 3)僅在開始時調用此代碼,然後通過(從某些內置的)刷新 – mKorbel
謝謝你的說服性和簡單的解釋。 – cacert
沒有,不要:不要一次換呼叫目標的狀態(getXXCellRendererComponent)方面的所有參數嚴格只讀 – kleopatra