所以我有一个显示来自database
的数据的表,但是因为有很多数据输出到表中,所以它超出了我为JFrame设置的bounds
。
我尝试在下方添加ScrollPane,但不是允许我scroll down the 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);
}
}
答案 0 :(得分:3)
您似乎将JPanel pnlTable
添加到多个容器中,首先添加到scrollPane
,然后添加到Container mainCon
(因此它不在scrollPane
中,因为组件可以是只在一个容器中)。因此,当您将scrollPane
separetly添加到ViewAll
时,它不会显示任何内容,因为它是空的。
所以使用:
mainCon.add(scrollPane);
或删除mainCon.add(pnlTable);
并仅使用:
this.add(scrollPane);