Re: [問題] 如何同步兩個JTable的JTableHeader
※ 引述《sbrhsieh (十年一夢)》之銘言:
: ※ 引述《mrker (ꬮ....)》之銘言:
: : Dears
: : 最近小弟在同步兩個JTable的狀態
: : 會需要同步
: : 1. JTable外面是用JScrollPane包,所以必須同步垂直和水平的卷軸 (done)
: : 2. JTableHeader每個column的寬度,讓兩個JTable永遠看起來是等寬的 (done)
: : 3. JTable設定RecordingAllowed為true,可讓JTableHeader的column互相調換,
: : 這部分的同步目前完全沒idea
: : 望各位版上的高手們可以指點小弟一下
: : 謝謝!!
: 可否說明同步兩個 JTable 的意義與用途?
: 這兩個 JTable 內顯示的數據是否相同?
: 兩者的 column 在數量上、內容上是否相同?
: 假如說兩個 JTable 的 column 在意義上是完全相同的(除了 column 裡各 row
: 所承載的數據不同),那麼最簡單(正確)的做法是讓兩個 JTable 使用同一個
: TableColumnModel,如此一來不需要額外去同步兩個 JTable 的各欄寬與欄的
: 順序等等。
感謝s大的幫忙
是的兩個JTable內顯示的數據和column都是相同的
只是資料數據不同 (譬如一個是show男生的資料,另一個是show女生的資料)
我有試過s大的方法,如下
public static void syncTableHeader(final JTable table1, final JTable table2) {
table1.getTableHeader()
.setColumnModel(table2.getTableHeader().getColumnModel());
}
兩邊的ColumnModel可正常同步了,雖然拖曳的特效並不會一起顯示
但是奇怪的是,TableHeader原本每個欄位的寬度都可以拖拉調整 (像是檔案總管這樣)
加上這個method,竟會造成 table1 拖曳困難,這倒是比較奇怪...
因為同步兩個ScrollPane的ScrollBar也是類似的方法,
但不會有其中一邊特別難拖曳...
補上同步ScrollBar的方法
public static void syncTwoScrollBar(JScrollPane scrollpane1,
JScrollPane scrollpane2,
Orientation orientation) {
switch (orientation) {
case VERTICAL:
scrollpane1.getVerticalScrollBar().setModel(
scrollpane2.getVerticalScrollBar().getModel());
break;
case HORIZONTAL:
scrollpane1.getHorizontalScrollBar().setModel(
scrollpane2.getHorizontalScrollBar().getModel());
break;
}
}
懇請大家指點一下了,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.250.142.207
→
12/04 00:54, , 1F
12/04 00:54, 1F
→
12/04 00:59, , 2F
12/04 00:59, 2F
推
12/04 01:00, , 3F
12/04 01:00, 3F
→
12/04 01:00, , 4F
12/04 01:00, 4F
→
12/04 01:02, , 5F
12/04 01:02, 5F
→
12/04 01:04, , 6F
12/04 01:04, 6F
→
12/04 01:06, , 7F
12/04 01:06, 7F
→
12/04 01:38, , 8F
12/04 01:38, 8F
→
12/04 01:59, , 9F
12/04 01:59, 9F
→
12/06 08:38, , 10F
12/06 08:38, 10F
討論串 (同標題文章)
java 近期熱門文章
PTT數位生活區 即時熱門文章