在Swing中,容器可以用来组织界面布局,容器中可以添加容器和组件。常用的有如下几种:
顶层容器:JFrame,JApplet,JDialog,JWindow
中间容器:JPanel,JScrollPane,JSplitPane,JToolBar
特殊容器:在GUI上起特殊作用的中间层,如JInternalFrame,JLayeredPane,JRootPane.
这篇博客将抽取其中几个常用容器为大家介绍,剩余的在之后用到了再介绍。

JFrame

JFrame是是个顶层容器,是屏幕上window的对象,能够最大化、最小化、关闭。
在上一篇博客《JAVA图形界面(GUI)》中的Swing示例中已经用到了。

上图就是JFrame的运行效果,中间显示”Hello Swing”的是Jpanel面板,在下面会介绍。

构造方法

方法名说明
JFrame()构造一个初始时不可见的新窗体
JFrame(GraphicsConfiguration gc)以屏幕设备的指定 GraphicsConfiguration 和空白标题创建一个Frame
JFrame(String title)创建一个新的、初始不可见的、具有指定标题的 Frame
JFrame(String title, GraphicsConfiguration gc)创建一个具有指定标题和指定屏幕设备的GraphicsConfiguration的JFrame

使用示例

import javax.swing.JFrame;

public class SwingDemo extends JFrame
{
   public static void main(String[] args)
   {
      // 实例化JFrame对象并设置窗体标题
      JFrame frame = new JFrame("Swing Demo");
      // 设置窗体大小
      frame.setSize(300, 150);
      // 设置默认关闭操作为:关闭时退出
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      // 设置窗体在屏幕上的位置
      frame.setLocation(100, 100);
      // 设置窗体是否显示
      frame.setVisible(true);
   }
}

JDialog

对话框也是一个窗体,在对话框上没有最大化和最小化按钮。

方法名说明
JDialog()创建一个没有标题并且没有指定 Frame 所有者的无模式对话框
JDialog(Dialog owner)创建一个没有标题但将指定的 Dialog 作为其所有者的无模式对话框
JDialog(Dialog owner, boolean modal)创建一个具有指定所有者 Dialog 和模式的对话框
JDialog(Dialog owner, String title)创建一个具有指定标题和指定所有者对话框的无模式对话框
JDialog(Dialog owner, String title, boolean modal)创建一个具有指定标题、模式和指定所有者 Dialog 的对话框
JDialog(Dialog owner, String title, boolean modal, GraphicsConfiguration gc)创建一个具有指定标题、所有者Dialog、模式和 GraphicsConfiguration 的对话框。
JDialog(Frame owner)创建一个没有标题但将指定的 Frame 作为其所有者的无模式对话框
JDialog(Frame owner, boolean modal)创建一个具有指定所有者 Frame、模式和空标题的对话框。
JDialog(Frame owner, String title)创建一个具有指定标题和指定所有者窗体的无模式对话框
JDialog(Frame owner, String title, boolean modal)创建一个具有指定标题、所有者 Frame 和模式的对话框
JDialog(Frame owner, String title, boolean modal, GraphicsConfiguration gc)创建一个具有指定标题、所有者 Frame、模式和 GraphicsConfiguration 的对话框
JDialog(Window owner)创建一个具有指定所有者 Window 和空标题的无模式对话框
JDialog(Window owner, Dialog.ModalityType modalityType)创建一个具有指定所有者 Window、模式和空标题的对话框
JDialog(Window owner, String title)创建一个具有指定标题和所有者 Window 的无模式对话框
JDialog(Window owner, String title, Dialog.ModalityType modalityType)创建一个具有指定标题、所有者 Window 和模式的对话框
JDialog(Window owner, String title, Dialog.ModalityType modalityType, GraphicsConfiguration gc)创建一个具有指定标题、所有者 Window、模式和 GraphicsConfiguration 的对话框
import java.awt.Frame;

import javax.swing.JDialog;
import javax.swing.JFrame;

public class SwingDemo
{
   public static void main(String[] args)
   {
      JDialog dialog = new JDialog((Frame) null, "Dialog");
      // 设置窗体大小
      dialog.setSize(300, 150);
      // 设置默认关闭操作为:关闭时退出
      dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
      // 设置窗体在屏幕上的位置
      dialog.setLocation(100, 100);
      // 设置窗体是否显示
      dialog.setVisible(true);
   }
}

运行效果:

Dialog

JWindow

JWindow是一个没有边框的窗体。

方法名说明
JWindow()创建未指定所有者的窗口
JWindow(Frame owner)使用指定的所有者框架创建窗口
JWindow(GraphicsConfiguration gc)使用屏幕设备的指定 GraphicsConfiguration 创建窗口
JWindow(Window owner)使用指定的所有者窗口创建窗口
JWindow(Window owner, GraphicsConfiguration gc)使用屏幕设备的指定所有者窗口和 GraphicsConfiguration 创建窗口
import javax.swing.JFrame;
import javax.swing.JWindow;

public class SwingDemo
{
   public static void main(String[] args)
   {
      JWindow window = new JWindow();
      // 设置窗体大小
      window.setSize(300, 150);
      // 设置窗体在屏幕上的位置
      window.setLocation(100, 100);
      // 设置窗体是否显示
      window.setVisible(true);
   }
}

JPanel

JPanel属于中间容器,不可独立存在,需要依附于其他容器,在GUI开发中,JPanel经常使用,利用JPanel,我们可以轻易的对组件进行布局。

构造方法

方法名说明
JPanel()创建具有双缓冲和流布局的新 JPanel
JPanel(boolean isDoubleBuffered)创建具有 FlowLayout 和指定缓冲策略的新 JPanel
JPanel(LayoutManager layout)创建具有指定布局管理器的新缓冲 JPanel
JPanel(LayoutManager layout, boolean isDoubleBuffered)创建具有指定布局管理器和缓冲策略的新JPanel
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐