2016-04-23 129 views
0

我有這個問題。該按鈕佔用了整個JFrame。我試過改變JFrame和JButton的尺寸,但沒有改變。它完全隱藏了下面的JTable。有人可以告訴我我做錯了什麼。更改尺寸JButton

JFrame FRAME = new JFrame(); 
    JButton BUTTON = new JButton("OK"); 
    FRAME.add(new JScrollPane(TableName)); 
    BUTTON.setPreferredSize(new Dimension(20,30)); 
    FRAME.add(BUTTON); 
    FRAME.setSize(700, 600); 
    FRAME.setVisible(true); 
    FRAME.setLocationRelativeTo(null); 

回答

2

的一個JFrame的默認佈局管理器是一個BorderLayout。您正試圖添加兩個組件CENTER,這是不允許的。只顯示最後添加的一個。

將組件添加到BorderLayout時需要指定約束條件。你的代碼應該是這樣的:

frame.add(new JScrollPane(TableName), BorderLayout.CENTER); 
    button.setPreferredSize(new Dimension(20,30)); 
    frame.add(button, BorderLayout.PAGE_START); 

此外,變量名稱不應該是大寫。遵循Java約定。

請參閱How to Use BorderLayout的Swing教程中的部分以獲取更多信息和工作示例。教程代碼還將向您展示如何更好地構建程序,以便遵循Swing編碼約定。

0

不要將按鈕直接添加到框架,首先創建一個JPanel,將該按鈕添加到面板,然後將面板添加到框架。

-1
JFrame frame = new JFrame(); 
    // frame.setBounds(x axis, y axis, weight, height) 
    frame.setBounds(10,10,304,214); 
    frame.getContentPane().setLayout(null); 

    JButton button = new JButton("Button"); 
    button.setBounds(98, 75, 126, 39); 
    frame.getContentPane().add(button); 
    frame.setVisible(true); 
+0

(1-)由於太多原因,請不要在此處列出空佈局。絕對沒有理由這樣做。 Swing旨在與佈局經理一起使用。 – camickr