我試圖創建這個基本的圖形用戶界面,但不能讓我的面板設置正確。(數字是像素大小)BorderLayout,GridLayout,GridBagLayout?我應該使用哪個?
我使用本教程爲基準(http://www.youtube.com/watch?v=Kl3klve_rmQ)嘗試,但,我的工作從不一樣。
我的代碼在類的頂部聲明瞭變量,然後創建了一個添加組件(面板,按鈕等)的構造函數,然後它調用main方法中的構造函數。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
公共類FinalProject擴展JPanel {
private static final long serialVersionUID = 1L;
static JPanel nav;
static JPanel queue;
static JPanel menu;
GridBagConstraints gbc = new GridBagConstraints();
public FinalProject()
{
nav = new JPanel();
nav.setLayout(new GridBagLayout());
nav.setBackground(Color.RED);
gbc.gridy = 0;
gbc.gridx = 0;
gbc.gridheight = 1;
gbc.gridwidth = 1;
add(nav, gbc);
queue = new JPanel();
queue.setLayout(new GridBagLayout());
queue.setBackground(Color.GREEN);
gbc.gridy = 1;
gbc.gridx = 1;
gbc.gridheight = 1;
gbc.gridwidth = 1;
add(queue, gbc);
menu = new JPanel();
menu.setLayout(new GridBagLayout());
menu.setBackground(Color.BLUE);
gbc.gridy = 2;
gbc.gridx = 2;
gbc.gridheight = 1;
gbc.gridwidth = 1;
add(menu, gbc);
}
public static void main(String[] args)
{
FinalProject p = new FinalProject();
JFrame f = new JFrame();
f.add(nav);
f.add(queue);
f.add(menu);
f.setTitle("Subway");
f.setSize(800, 500);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
f.setResizable(false);
f.add(p);
}
}
我應該怎樣去獲得這樣的佈局嗎?面板中的面板,相互獨立的面板等?
我的建議是:主要是你需要的是一個BorderLayout的,但話說回來,我的主要建議是讓你嘗試一下,然後顯示代碼,如果你仍然有問題。否則,我們很難猜測你可能會做錯什麼。 –
我已經發布了我的代碼:) – Michael
您只添加一個按鈕...嘗試添加其他人,一個在NORTH,一個在中心。 –