JScrollPane中放JTable,为什么不显示滚动条呢?

时间:2022-05-30 07:52:43

this.table = new JTable(new DefaultTableModel(this.getRowData(),this.getColumns()));
this.table.setPreferredSize(new Dimension(1500,320));
// this.table.setPreferredScrollableViewportSize(new Dimension(1500,320));
JScrollPane scrollPane = new JScrollPane();
scrollPane.getViewport().add(table);
scrollPane.setBounds(new Rectangle(10,250,800,350));


table的preferredSize已经走出了JScrollPane的大小,可是为什么JScrollPane还不显示滚动条呢?

7 个解决方案

#1


上面有错字   走出-> 超出

#2


你是不是没有把JScrollPane 加到容器上啊

#3


to 2L:已经加了

#4


scrollPane.getViewport().add(table);
你是这样加的?
试试这样呢

this.table = new JTable(new DefaultTableModel(this.getRowData(),this.getColumns()));
        this.table.setPreferredSize(new Dimension(1500,320));
        JScrollPane scrollPane = new JScrollPane(this.table);        scrollPane.setBounds(new Rectangle(10,250,800,350));

#5



// Create a table with 10 rows and 5 columns
JTable table = new JTable(10, 5);

// Make the table vertically scrollable
JScrollPane scrollPane = new JScrollPane(table);
By default, a table is created with auto resize enabled. This means that if the user changes the width of the table, the columns automatically expand or shrink so that all the columns are entirely visible. In this mode, there is no need for a horizontal scrollbar. In order to get horizontal scrolling, auto resize must be disabled. 
COPY
// Disable auto resizing to make the table horizontal scrollable
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);




引自:http://www.exampledepot.com/egs/javax.swing.table/Hscroll.html

解决了,可是现在出现了另一个奇怪的现象:我设置PreferredSize()后再getPreferredSize(),结果竟然不是我设置的那个了,为什么呢?

#6


各位,怎么把JLabel 显示文本的位置往后调一点距离,但不想设置成center,  我知道对JButton可以用setMargin()来设置,可是JLabel怎么解决?  我试了setHorizontalTextPosition()不起作用

#7


結帖了

#1


上面有错字   走出-> 超出

#2


你是不是没有把JScrollPane 加到容器上啊

#3


to 2L:已经加了

#4


scrollPane.getViewport().add(table);
你是这样加的?
试试这样呢

this.table = new JTable(new DefaultTableModel(this.getRowData(),this.getColumns()));
        this.table.setPreferredSize(new Dimension(1500,320));
        JScrollPane scrollPane = new JScrollPane(this.table);        scrollPane.setBounds(new Rectangle(10,250,800,350));

#5



// Create a table with 10 rows and 5 columns
JTable table = new JTable(10, 5);

// Make the table vertically scrollable
JScrollPane scrollPane = new JScrollPane(table);
By default, a table is created with auto resize enabled. This means that if the user changes the width of the table, the columns automatically expand or shrink so that all the columns are entirely visible. In this mode, there is no need for a horizontal scrollbar. In order to get horizontal scrolling, auto resize must be disabled. 
COPY
// Disable auto resizing to make the table horizontal scrollable
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);




引自:http://www.exampledepot.com/egs/javax.swing.table/Hscroll.html

解决了,可是现在出现了另一个奇怪的现象:我设置PreferredSize()后再getPreferredSize(),结果竟然不是我设置的那个了,为什么呢?

#6


各位,怎么把JLabel 显示文本的位置往后调一点距离,但不想设置成center,  我知道对JButton可以用setMargin()来设置,可是JLabel怎么解决?  我试了setHorizontalTextPosition()不起作用

#7


結帖了