是否可以在使用AbsoluteLayout的JFrame的邊緣周圍留出一些額外的空間?當我有一個按鈕作爲JFrame上最下面的組件時,它將被定位在JFrame窗口的底部邊緣上,並且看起來很糟糕。我想知道是否有一種方法可以在使用AbsoluteLayout時在組件和JFrame的邊緣之間添加一些額外的空間。Java:AbsoluteLayout中的額外空間
0
A
回答
0
您可以使用Box.createRigidArea(尺寸)創建一個可以在按鈕下方添加的空白空間。
2
建議:
- 當你將組件添加到一個JFrame,你實際上是將它添加到JFrame的contentPane中。爲了給contentPane一個「緩衝區」邊界,考慮給它一個EmptyBorder(...),參數是int常量,用於組件周圍所需的邊界量。
- 避免對任何東西使用「絕對」佈局,特別是將組件放置在佈局管理器的易放置位置(例如GUI底部)。
例如,記在下面如何中部,底部JPanel的不走出去的GUI的邊緣,因爲空邊框的代碼創建的GUI:
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.*;
public class ButtonAtBottom {
private static void createAndShowGui() {
JPanel bottomPanel = new JPanel();
bottomPanel.add(new JButton("Bottom Button"));
bottomPanel.setBorder(BorderFactory.createTitledBorder("Bottom Panel"));
JPanel centerPanel = new JPanel();
centerPanel.setBorder(BorderFactory.createTitledBorder("Center Panel"));
JPanel mainPanel = new JPanel(new BorderLayout());
mainPanel.add(centerPanel, BorderLayout.CENTER);
mainPanel.add(bottomPanel, BorderLayout.PAGE_END);
// **** here I add the border to the mainPanel which I'll
// make into the contentPane
int eb = 25;
mainPanel.setBorder(BorderFactory.createEmptyBorder(eb, eb, eb, eb));
// don't set the preferredSize per Kleopatra, but am doing it
// here simply to make code shorter for this sscce
mainPanel.setPreferredSize(new Dimension(500, 400));
JFrame frame = new JFrame("ButtonAtBottom");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(mainPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}
+1
大聲咧嘴笑:-) – kleopatra 2012-03-01 12:43:00
0
設置一個您的內容面板上的空白邊框,其中SIZE
是您需要的填充量。
JFrame frame = new JFrame();
JPanel panel = new JPanel(null);
panel.setBorder(BorderFactory.createEmptyBorder(SIZE,SIZE,SIZE,SIZE);
frame.setContentPane(panel);
//The rest
的參數是爲上,左,下,右填充,所以如果你想在每一個邊緣不同墊襯,可以進行相應的設置。
相關問題
- 1. 的額外空間
- 2. 額外的空間
- 3. 的額外空間
- 4. TableLayout中的額外空間
- 5. Opera中的額外空間
- 6. 額外的空白空間
- 7. 額外空間HTML
- 8. DataGrid的額外空間
- 9. 額外的空間ie7
- 10. 額外的玉空間
- 11. html的額外空間?
- 12. 額外SyntaxHighlighter的空間
- 13. 我的圖中額外的空間
- 14. 額外的空間,另外一個
- 15. BeautifulSoup返回意外的額外空間
- 16. IE9中的CSS額外空間問題
- 17. Firefox中額外的垂直空間
- 18. 自定義PSObject中的額外空間
- 19. Android - 刪除viewpager中的額外空間
- 20. IE中TD的額外空間
- 21. 實際設備中的額外空間
- 22. awk輸出中的額外空間
- 23. 刪除PowerShell中的額外空間
- 24. 額外空間部件
- 25. Chrome - CSS - 額外空間
- 26. CSS額外的水平空白空間
- 27. TextInputLayout和TextView之間的額外空間
- 28. 從列值中刪除額外空間
- 29. WordPress的:頁腳下的額外空間
- 30. 擺脫QLabel頂部的額外空間
AbsoluteLayout實際上沒有佈局 - 不要使用它 – kleopatra 2012-03-01 12:43:45