面板也是一个Swing容器,它可以作为容器容纳其他组件,但它也必须被添加到其他容器中。Swing中常用的面板包括JPanel面板以及JScrollPane面板
一、JPanel面板
JPanel面板可以聚集一些组件来布局,示例如下:
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
public class JPanelTest extends JFrame{
public JPanelTest() {
Container c = getContentPane();
c.setLayout(new GridLayout(2,1,10,10));
JPanel p1 = new JPanel(new GridLayout(1,3,10,10));
JPanel p2 = new JPanel(new GridLayout(1,2,10,10));
JPanel p3 = new JPanel(new GridLayout(1,2,10,10));
JPanel p4 = new JPanel(new GridLayout(2,1,10,10));
p1.add(new JButton("1"));
p1.add(new JButton("2"));
p1.add(new JButton("3"));
p2.add(new JButton("4"));
p2.add(new JButton("5"));
p3.add(new JButton("6"));
p3.add(new JButton("7"));
p4.add(new JButton("8"));
p4.add(new JButton("9"));
p4.add(new JButton("10"));
c.add(p1);
c.add(p2);
c.add(p3);
c.add(p4);
setSize(300,300);
setTitle("这是一个JPanel的窗体");
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String args[]) {
new JPanelTest();
}
}
上述示例运行结果如下:
二、JScrollPane面板
在设置界面时,可能会遇到在一个较小的容器窗口中显示一个较大部分的内容的情况,这时可以使用JScrollPane面板,该面板自带滚动条,也是一种容器,但是这种容器只能放置一个组件,并且不可以使用布局管理器。示例如下:
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.WindowConstants;
public class JScrollPaneTest extends JFrame{
public JScrollPaneTest() {
Container c = getContentPane();
JTextArea ta = new JTextArea(20,50);
JScrollPane sp = new JScrollPane(ta);
c.add(sp);
setTitle("带滚动条的文字编辑器");
setSize(200,200);
setVisible(true);
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
}
public static void main(String args[]) {
new JScrollPaneTest();
}
}
上述示例运行结果如下图所示: