gpt4 book ai didi

Java滚动 Pane 不添加到面板而是显示白屏

转载 作者:行者123 更新时间:2023-12-01 22:17:05 24 4
gpt4 key购买 nike

所以我有一个表显示来自数据库的数据,但由于有大量数据被输出到表中,它远远超出了我设置的边界对于 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com