本文介紹了Java FlowLayout Inside FlowLayout的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在嘗試設計類似于瀏覽器標題欄(瀏覽器的頂部)。左側有選項卡,右側有最小化、調整大小(最小化/最大化)、退出按鈕。
為此,我試著這樣做。
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout(FlowLayout.RIGHT));
JPanel tabpanel= new JPanel();
tabpanel.setLayout(new FlowLayout(FlowLayout.LEFT));
tabpanel.add(new JButton("Tab 1"));
tabpanel.add(new JButton("Tab 2"));
panel.add(tabpanel);
panel.add(new JButton("Minimize"));
panel.add(new JButton("Resize"));
panel.add(new JButton("Quit"));
根據需要在右側創建了退出、調整大小、最小化按鈕,但在最小化按鈕附近創建了標簽,而不是在框架的左側。我認為應該有方法或任何東西來填充剩余的內容,或者我應該使用另一種布局?感謝任何幫助
推薦答案
我強烈推薦GridBagLayout
,它是可用的最靈活和可配置的布局管理器之一,但它也帶來了復雜性
public class HeaderPane extends JPanel {
public HeaderPane() {
setLayout(new GridBagLayout());
add(new JButton("Tab 1"));
add(new JButton("Tab 2"));
GridBagConstraints gbc = new GridBagConstraints();
gbc.weightx = 1;
gbc.anchor = GridBagConstraints.BASELINE_TRAILING;
add(new JButton("Minimize"), gbc);
add(new JButton("Maximise"));
add(new JButton("Close"));
}
}