制作一个可滚动的 Column Control 弹出 Table
Make a scrollable ColumnControl popup JXTable
下午好。我对 JXtable
的属性有一个有趣的问题。
问题是我创建了包含太多列的 JXTable
,所以我决定让用户使用 ColumnControlButton
默认情况下的 [=] 选择要显示的列12=] 在 SwingX 库中。
由于我的列太多,当我按下ColumnControl
按钮时,它并没有显示所有可以是hided/displayed的列。默认 ColumnControl
不带有可滚动的 属性 来管理这种情况。我需要某种代码,例如与 JXTable
一起使用的代码。我不知道,也许类似于 .setHorizontalScrollEnabled(true)
,这样我就可以看到 ColumnControl
中的所有列。
我提前感谢你们的回答......
顺便说一句,这是加载 table:
的代码
public static void load_resg() throws Exception{
String[] titles = new String[80];
for(int i=0; i<80; i++){
titles[i]=NbP[i];
}
modelResg=new DefaultTableModel(null, titles){
@Override
public boolean isCellEditable(int i, int i1) {
return false; //To change body of generated methods, choose Tools | Templates.
}
};
BufferedReader bw = new BufferedReader(new FileReader("Out\Depth.txt"));
String line;
while((line=bw.readLine())!=null){
modelResg.addRow(line.split(";"));
}
bw.close();
resg.setIntercellSpacing(new Dimension(5, 5));
resg.setHighlighters(HighlighterFactory.createSimpleStriping());
resg.setHorizontalScrollEnabled(true);
resg.packSelected();
resg.setSortable(true);
resg.getColumnControl();
resg.setColumnControlVisible(true);
resg.setModel(modelResg);
}
您应该可以使用设计用于 JTable
的 Table Column Manager。它将显示带有 JCheckBoxMenuItem
的所有列的菜单,因此您可以选择要显示的列。
but it doesn't add a vertical scroll bar to the pop up, so it doesn't let me see all the columns
当您有那么多菜单项时,您可能想要使用 Menu Scroller。这将允许您控制一次显示多少个菜单项,然后将添加 up/down 按钮以滚动浏览剩余的菜单项。
在 TableColumnManager
class 的 showPopup(...)
方法中,我添加了以下代码行:
MenuScroller.setScrollerFor(popup, 10);
popup.show(header, r.x, r.height);
一次显示 10 个菜单项。将鼠标悬停在箭头上会导致菜单滚动。
下午好。我对 JXtable
的属性有一个有趣的问题。
问题是我创建了包含太多列的 JXTable
,所以我决定让用户使用 ColumnControlButton
默认情况下的 [=] 选择要显示的列12=] 在 SwingX 库中。
由于我的列太多,当我按下ColumnControl
按钮时,它并没有显示所有可以是hided/displayed的列。默认 ColumnControl
不带有可滚动的 属性 来管理这种情况。我需要某种代码,例如与 JXTable
一起使用的代码。我不知道,也许类似于 .setHorizontalScrollEnabled(true)
,这样我就可以看到 ColumnControl
中的所有列。
我提前感谢你们的回答......
顺便说一句,这是加载 table:
的代码public static void load_resg() throws Exception{
String[] titles = new String[80];
for(int i=0; i<80; i++){
titles[i]=NbP[i];
}
modelResg=new DefaultTableModel(null, titles){
@Override
public boolean isCellEditable(int i, int i1) {
return false; //To change body of generated methods, choose Tools | Templates.
}
};
BufferedReader bw = new BufferedReader(new FileReader("Out\Depth.txt"));
String line;
while((line=bw.readLine())!=null){
modelResg.addRow(line.split(";"));
}
bw.close();
resg.setIntercellSpacing(new Dimension(5, 5));
resg.setHighlighters(HighlighterFactory.createSimpleStriping());
resg.setHorizontalScrollEnabled(true);
resg.packSelected();
resg.setSortable(true);
resg.getColumnControl();
resg.setColumnControlVisible(true);
resg.setModel(modelResg);
}
您应该可以使用设计用于 JTable
的 Table Column Manager。它将显示带有 JCheckBoxMenuItem
的所有列的菜单,因此您可以选择要显示的列。
but it doesn't add a vertical scroll bar to the pop up, so it doesn't let me see all the columns
当您有那么多菜单项时,您可能想要使用 Menu Scroller。这将允许您控制一次显示多少个菜单项,然后将添加 up/down 按钮以滚动浏览剩余的菜单项。
在 TableColumnManager
class 的 showPopup(...)
方法中,我添加了以下代码行:
MenuScroller.setScrollerFor(popup, 10);
popup.show(header, r.x, r.height);
一次显示 10 个菜单项。将鼠标悬停在箭头上会导致菜单滚动。