Jtable如何加水平滚动条??

时间:2022-02-13 19:46:05
JTable table = new JTable(model);
getContentPane().add(new JScrollPane(),Border.CENTER);
这个是默认的添加滚动条,但是垂直的,如何加水平滚动条呢?

8 个解决方案

#1


table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

#2


你的代码是不是这样的:
JTable table = new JTable(model);
getContentPane().add(new JScrollPane(table),Border.CENTER);

如果是这样的,你所看到的默认的滚动条并不是JTable的,而是JScrollPane的。
对于JScroolPane类的构造函数JScrollPane(),其垂直和水平滚动条只是在需要的时候才出现,坦白点说就是当JTable的HEIGHT>JScrollPane的HEIGHT时,垂直滚动条出现;JTable的WIDTH>JScrollPane的WIDTH时,水平滚动条出现。
若你一定要让水平滚动条出现,可如下:
getContentPane().add(new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS),Border.CENTER);


ps:
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
是用来设置JTable的列宽度是否随着JTable的变化而变化。
off固定不变。~

#3


table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
加这个吧

#4


2楼的兄弟说的非常的对,table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)加了这句话,我的table列没有自动的扩展填满jpanel,而只显示自己的数据,当我把某一列拉长的时候才出现水平滚动条,为此我用了getContentPane().add(new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS),Border.CENTER);
可是还不是我想要的,苦苦思索中..........

#5


table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
是这个

#6


你想要什么样的啊,
JScrollPane里加个table就成啦,其它的什么都不用设置,它的滚动条会自动出来啊,不管哪个方向的啊

#7


table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
正解+王道

#8


这个是对的,但是我的数据取出来有几列没有用我就隐藏了,所以显示的时候右边就缺了2列,看着很不舒服,我把显示的列扩宽了,它确实显示了水平滚动条,可是怎么解决隐藏的列问题呢?

#1


table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);

#2


你的代码是不是这样的:
JTable table = new JTable(model);
getContentPane().add(new JScrollPane(table),Border.CENTER);

如果是这样的,你所看到的默认的滚动条并不是JTable的,而是JScrollPane的。
对于JScroolPane类的构造函数JScrollPane(),其垂直和水平滚动条只是在需要的时候才出现,坦白点说就是当JTable的HEIGHT>JScrollPane的HEIGHT时,垂直滚动条出现;JTable的WIDTH>JScrollPane的WIDTH时,水平滚动条出现。
若你一定要让水平滚动条出现,可如下:
getContentPane().add(new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS),Border.CENTER);


ps:
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
是用来设置JTable的列宽度是否随着JTable的变化而变化。
off固定不变。~

#3


table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
加这个吧

#4


2楼的兄弟说的非常的对,table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF)加了这句话,我的table列没有自动的扩展填满jpanel,而只显示自己的数据,当我把某一列拉长的时候才出现水平滚动条,为此我用了getContentPane().add(new JScrollPane(table,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS),Border.CENTER);
可是还不是我想要的,苦苦思索中..........

#5


table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
是这个

#6


你想要什么样的啊,
JScrollPane里加个table就成啦,其它的什么都不用设置,它的滚动条会自动出来啊,不管哪个方向的啊

#7


table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
正解+王道

#8


这个是对的,但是我的数据取出来有几列没有用我就隐藏了,所以显示的时候右边就缺了2列,看着很不舒服,我把显示的列扩宽了,它确实显示了水平滚动条,可是怎么解决隐藏的列问题呢?