作者mrker (ꬮ....)
看板java
标题Re: [问题] 如何同步两个JTable的JTableHeader
时间Tue Dec 3 19:38:38 2013
※ 引述《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
1F:→ sbrhsieh:要让 column 宽度可用滑鼠任意调整要关掉auto resize 12/04 00:54
2F:→ sbrhsieh:aTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); 12/04 00:59
3F:推 dream1124:sb真的又强又热心 12/04 01:00
4F:→ sbrhsieh:这样子就不会调整宽度後,table又自行去调整而怪怪的( 12/04 01:00
5F:→ sbrhsieh:我被断了 :p 12/04 01:02
6F:→ sbrhsieh:使用同一个 column model 後,不必自己作同步 column wid 12/04 01:04
7F:→ sbrhsieh:因为column width是column model 所管理 12/04 01:06
8F:→ mrker:XS大太强了!Swing我真的苦手,又多又杂,明天来试试!感恩 12/04 01:38
9F:→ sbrhsieh:避免误会,syncTableHeader只需作一次,不需有调整就作 12/04 01:59
10F:→ mrker:test fine 感谢sb大热心的指导 谢谢!! 12/06 08:38