JTable和JScrollPane没有显示



为什么不工作(不显示在GUI中)

JTable table=new JTable(20,20);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JScrollPane tableScrollPane=new JScrollPane(table);
tableScrollPane.setBounds(10,70,540,280);
tableScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
tableScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
add(tableScrollPane);

然而这确实(确实显示在GUI中)。

JTable table=new JTable(20,20);
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
JScrollPane tableScrollPane=new JScrollPane();
tableScrollPane.setBounds(10,70,540,280);
tableScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
tableScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
tableScrollPane.add(table);
add(tableScrollPane);

为什么会这样,它们不应该做同样的事情吗?

为什么会这样,它们不应该做同样的事情吗?

JScrollPane包含许多组件,包括滚动条和viewport,并使用自己的内部布局管理器来设置每个组件的位置。你不能只是"添加";滚动窗格的一个组件,因为布局管理器不支持这个。

请阅读Swing教程中关于滚动窗格如何工作的部分以获取更多信息。

组件(在本例中为JTable)需要添加到"viewport"中。

你可以使用:

JScrollPane scrollPane = new JScrollPane( table );

JScrollPane scrollPane = new JScrollPane( );    
scrollPanwe.setViewportView( table );

最新更新