簡體   English   中英

JTable 和 JScrollPane 未按應有的方式顯示

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM