我试图创建这个基本的图形用户界面,但不能让我的面板设置正确。(数字是像素大小)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,一个在中心。 –