簡體   English   中英

將JScrollPane添加到JTable中不會顯示

[英]Adding JScrollPane to JTable doesn't show up

我對Javas波動還很陌生,如果這很瑣碎,請對不起。 這是構造函數,我排除了不必要的表單項。 (我嘗試運行這樣短的代碼,但問題仍然出現)

//This just opens a connection to MySQL server, this doesn't create any problems.
bp = BazaPodataka.getBaza();

//Forming the main frame..
JFrame frame = new JFrame();
{
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    frame.setBounds(d.width/2 - sirina/2, d.height/2 - visina/2, sirina, visina);
}
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new BorderLayout(0, 0));

//Adding a layered pane so I can place items inside the form more 'freely'
JLayeredPane layeredPane = new JLayeredPane();
frame.getContentPane().add(layeredPane, BorderLayout.CENTER);

    //Adding a table
JTable table = new JTable();
String[] rowData = {"Name:", "Price:", "Cathegory:", "Sum:"};
DefaultTableModel model = new DefaultTableModel(rowData, 0);
JScrollPane skrol = new JScrollPane(table);
table.setModel(model);
//The 2 lines below work as intended
ResultSet rs = (ResultSet) bp.query("SELECT * FROM table"); //This calls a query        
popuniTabelu(rs, model); //This populates the table.
table.setBounds(10, 110, 500, 350);
table.setEnabled(false);
table.setShowHorizontalLines(false);
layeredPane.add(table);

填充表並顯示它不是問題,表“表”內部有足夠的信息,用戶甚至需要向下滾動。

但這是問題開始的地方,滾動條沒有出現。 我如何從這里實現它。 我嘗試了以下在Google上找到的解決方案,但它們的總結大致如下:

JScrollPane scroll = new JScrollPane(table);

在我看來,這根本行不通。

這個問題可能很簡單,如果是這樣,對不起,我還在學習揮桿動作。 另外,對不起我的英語不好,這不是我的母語。 :)

另外,如果我忘了包含一些內容,請告訴我。

謝謝!

您將table添加到兩個組件中:

JScrollPane skrol = new JScrollPane(table);

layeredPane.add(table);

由於Swing組件只能具有一個父組件,因此第二個語句首先要被覆蓋,因此您的JScrollPane為空。 似乎您需要刪除layeredPane.add(table);

正如這里提到的

每個GUI組件只能包含一次。 如果某個組件已經在容器中,並且您嘗試將其添加到另一個容器中,則該組件將從第一個容器中刪除,然后添加到第二個容器中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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