[英]JTable and JScrollPane not shown as they should
為什么這不起作用(不在 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 包含許多組件,包括滾動條和視口,並使用其自己的內部布局管理器來設置每個組件的位置。 您不能只是將組件“添加”到滾動窗格,因為布局管理器不支持這一點。
閱讀 Swing 教程中有關滾動窗格如何工作的部分以獲取更多信息。
需要將組件(在本例中為 JTable)添加到滾動窗格的“視口”。
您可以使用:
JScrollPane scrollPane = new JScrollPane( table );
或者
JScrollPane scrollPane = new JScrollPane( );
scrollPanwe.setViewportView( table );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.