所以我有一个表显示来自数据库
的数据,但由于有大量数据被输出到表中,它远远超出了我设置的边界
对于 JFrame。
我尝试在下面添加一个 ScrollPane,但它不允许我向下滚动 GUI
,而是在整个 GUI
上显示白色!我所需要做的就是制作它,这样我就可以向下滚动以查看整个表格!
这是我的代码:
public class ViewAll extends JFrame{
//Jtextfields, buttons, labels
private static JButton one = new JButton("Back");
private static JLabel lblMembTitle = new JLabel("<html><h1>All Members</h1></html>");
private static JLabel lblPlayTitle = new JLabel("<html><h1>All Playlists</h1><br /></html>");
//Containers, Panels, Scrollpanes
private Container mainCon = this.getContentPane();
private static JPanel pnlTable = new JPanel();
//Tables
private static JTable tblShowAllMemb = new JTable();
private static JTable tblShowAllPlay = new JTable();
JScrollPane scrollPane = new JScrollPane(pnlTable, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
public ViewAll(){
super("Search/Edit/Delete Members");
this.setBounds(400, 800, 854,400);
//Add panel and create table model
mainCon.add(pnlTable);
MemTableModel tblMembers = new MemTableModel();
PlayTableModel tblPlaylist = new PlayTableModel();
this.add(scrollPane);
//Add table and set tableModel
pnlTable.add(lblMembTitle);
pnlTable.add(tblShowAllMemb);
tblShowAllMemb.setModel(tblMembers);
pnlTable.add(lblPlayTitle);
pnlTable.add(tblShowAllPlay);
tblShowAllPlay.setModel(tblPlaylist);
}
}
最佳答案
看来您将 JPanel pnlTable
添加到多个容器,首先添加到 scrollPane
,然后添加到 Container mainCon
(因此它不在scrollPane
,作为一个组件只能位于一个容器中)。因此,当您将 scrollPane
单独添加到 ViewAll
时,它不会显示任何内容,因为它是空的。
所以使用:
mainCon.add(scrollPane);
或删除mainCon.add(pnlTable);
并仅使用:
this.add(scrollPane);
关于Java滚动 Pane 不添加到面板而是显示白屏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30754795/