【发布时间】:2013-12-10 05:43:56
【问题描述】:
我对 Java Swing 比较陌生,我在理解网格布局如何做某些事情时遇到了一些困难,如果不能,那么据说更强大的 gridbag 布局可以做到这一点。
这是我尝试使用网格布局的程序
import javax.swing.*;
import java.awt.*;
//import java.awt.event.*;
public class Swing24
{
public static void main(String[] args)
{
JFrame f1= new JFrame("Grid Layout Test");
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.setResizable(true);
f1.setLocation(500,200);
f1.setSize(600,600);
JPanel p1 = new JPanel();
p1.setBackground(Color.black);
f1.add(p1);
JButton b1= new JButton("Button 1");
b1.setBackground(Color.white);
JButton b2= new JButton("Button 2");
b2.setBackground(Color.white);
JButton b3= new JButton("Button 3");
b3.setBackground(Color.white);
JLabel lb1=new JLabel(" Label 1");
lb1.setForeground(Color.orange);
//lb1.setOpaque(true);
lb1.setBackground(Color.yellow);
JLabel lb2=new JLabel(" Label 2");
lb2.setBackground(Color.orange);
lb2.setOpaque(true);
GridLayout glm1=new GridLayout(2,3,0,0);
p1.setLayout(glm1);
p1.add(b1);
p1.add(b2);
p1.add(b3);
p1.add(lb1);
p1.add(lb2);
f1.setVisible(true);
}
}
上面的程序允许我将容器分成 2 行和 3 列。基本上我可以用网格布局将一个容器分成 m 行和 n 列。但它会连续添加组件(按钮和标签)。
问题1:如何在大小为(10,10)的网格中直接向单元格(4,3)添加按钮? 问题2:一个按钮可以在网格布局中占据多个单元格吗?
如果以上任何一个问题的答案都不可能,那么 gridbag 布局如何帮助解决问题。 我尝试使用带有按钮的网格包布局。但它被放置在中心!比如说,我怎样才能把它放在一个容器中的单元格(4,3)中,该容器可以分为大小(10,10)
【问题讨论】: