【发布时间】:2014-06-07 02:47:36
【问题描述】:
我正在尝试创建这个基本的 GUI,但无法正确设置我的面板。(数字是像素大小)
我尝试使用本教程作为参考 (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,但话虽如此,我的主要建议是让您尝试一下,如果仍然有问题,请显示代码。否则,我们将很难猜测您可能做错了什么。
-
我已经发布了我的代码 :)
-
您只添加一个按钮...尝试添加其他按钮,一个在 NORTH,一个在中心。
-
.....................更好的尝试