欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

2、Java Swing JFrame和JPanel:窗口容器和面板容器

发布时间:2025/3/20 42 豆豆
生活随笔 收集整理的这篇文章主要介绍了 2、Java Swing JFrame和JPanel:窗口容器和面板容器 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

在 Swing 中,任何其他组件都必须位于一个顶层容器中

JFrame 窗口和 JPanel 面板是常用的顶层容器,本节详细介绍这两个容器的使用方法。

JFrame 窗口

JFrame 用来设计类似于 Windows 系统中窗口形式的界面。

JFrame 是 Swing 组件的顶层容器,该类继承了 AWT 的 Frame 类,支持 Swing 体系结构的高级 GUI 属性。

JFrame 类的常用构造方法如下所示。

  • JFrame():构造一个初始时不可见的新窗体。
  • JFrame(String title):创建一个具有 title 指定标题的不可见新窗体。

当创建一个 JFrame 类的实例化对象后,其他组件并不能够直接放到容器上面,需要将组件添加至内容窗格,而不是直接添加至 JFrame 对象。示例代码如下:

frame.getContentPane().add(b);

使用 JFrame 类创建 GUI 界面时,其组件的布局组织示意如图 1 所示。

在图 1 中显示有“大家好”的 Swing 组件需要放到内容窗格的上面,内容窗格再放到 JFrame 顶层容器的上面。菜单栏可以直接放到顶层容器 JFrame 上,而不通过内容窗格。内容窗格是一个透明的没有边框的中间容器。

JFrame 类中的常用方法:

  • JFrame()----创建一个无标题的窗口。

  • JFrame(String s)----创建标题为s的窗口。

  • public voidsetBounds(int a,int b,int width,int height)----设置窗口的初始位置是(a,b),即距屏幕左面a个像素,距屏幕上方b个像素,窗口的宽是width,高是height。

  • public void setSize(int width,int height)----设置窗口的大小。

  • public void setLocation(int x,int y)----设置窗口的位置,默认位置是(0,0)。

  • public void setVisible(boolean b)----设置窗口是否可见,窗口默认是不可见的。

  • public voidsetResizable(boolean b)----设置窗口是否可调整大小,默认可调整大小。

  • public voiddispose()----撤销当前窗口,并释放当前窗口所使用的资源。

  • publicvoid setExtendedState(int state)----设置窗口的扩展状态,其中参数state取JFrame类中的下列类常量:

  • MAXIMIZED_HORIZ (水平方向最大化),
    MAXIMIZED_VERT (垂直方向最大化),
    MAXIMIZED_BOTH (水平、垂直方向都最大化)。

  • publicvoid setDefaultCloseOperation(int operation)----该方法用来设置单击窗体右上角的关闭图标后,程序会做出怎样的处理,其中的参数operation取JFrame类中的下列int型static常量,程序根据参数operation取值做出不同的处理:
  • DO_NOTHING_ON_CLOSE(什么也不做), HIDE_ON_CLOSE (隐藏当前窗口), DISPOSE_ON_CLOSE (隐藏当前窗口,并释放窗体占有的其他资源), EXIT_ON_CLOSE (结束窗口所在的应用程序)。
  • getContentPane()---- 返回此窗体的 contentPane 对象
  • getDefaultCloseOperation()---- 返回用户在此窗体上单击“关闭”按钮时执行的操作
  • setContentPane(Container contentPane)---- 设置 contentPane 属性
  • setDefaultLookAndFeelDecorated (boolean defaultLookAndFeelDecorated)---- 设置 JFrame 窗口使用的 Windows 外观(如边框、关闭窗口的小部件、标题等)
  • setIconImage(Image image)---- 设置要作为此窗口图标显示的图像
  • setJMenuBar( JMenuBar menubar) ----设置此窗体的菜单栏
  • setLayout(LayoutManager manager) ----设置 LayoutManager 属性
  • 例 1
    在了解窗口组件 JFrame 的语法之后,下面使用 JFrame 类创建一个窗口。要求设置窗口的标题为“Java 第一个 GUI 程序”,并向窗口内添加“这是使用 JFrame 类创建的窗口”文本。具体实现代码如下:

    import javax.swing.JFrame; import javax.swing.JLabel; import java.awt.*; public class JFrameDemo extends JFrame {public JFrameDemo(){setTitle("Java 第一个 GUI 程序"); //设置显示窗口标题setSize(400,200); //设置窗口显示尺寸setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //置窗口是否可以关闭JLabel jl=new JLabel("这是使用JFrame类创建的窗口"); //创建一个标签Container c=getContentPane(); //获取当前窗口的内容窗格c.add(jl); //将标签组件添加到内容窗格上setVisible(true); //设置窗口是否可见}public static void main(String[] agrs){new JFrameDemo(); //创建一个实例化对象} }

    上述代码创建的 JFrameDemo 类继承了 JFrame 类,因此 JFrameDemo 类可以直接使用 JFrame 类的方法

    setTitle() 方法用来设置窗口标题,setDefaultCloseOperation() 方法用来设置响应方式,即当单击“关闭”按钮时退出该程序。

    在构造方法中使用 JLabel 类创建一个标签对象 jl,其参数是标签的文本提示信息。JFrame 框架的 getContentPane() 方法获取了内容窗格对象,并使用 add() 方法将标签添加到内容窗格上。最后的 setVisible() 方法是从父类中继承的方法。

    程序运行的窗口结果如图 2 所示。

    JPanel 面板

    JPanel 是一种中间层容器,它能容纳组件并将组件组合在一起,但它本身必须添加到其他容器中使用。

    JPanel 类的构造方法如下。

  • JPanel():使用默认的布局管理器创建新面板,默认的布局管理器为 FlowLayout。
  • JPanel(LayoutManagerLayout layout):创建指定布局管理器的 JPanel 对象。
  • JPanel 类的常用方法:

  • Component add(Component comp)---- 将指定的组件追加到此容器的尾部

  • void remove(Component comp) ----从容器中移除指定的组件

  • void setFont(Font f) ----设置容器的字体

  • void setLayout(LayoutManager mgr) ----设置容器的布局管理器

  • void setBackground(Color c) ----设置组件的背景色

  • 例 2
    编写一个使用 JPanel 组件的窗口程序。要求设置标题为“Java的第二个GUI程序”,然后向窗口中添加一个面板,并设置面板上显示的文本为“这是放在JPanel上的标签”,设置面板背景颜色为白色。具体实现代码如下:

    import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import java.awt.*; public class JPanelDemo { public static void main(String[] agrs){JFrame jf=new JFrame("Java第二个GUI程序"); //创建一个JFrame对象jf.setBounds(300, 100300100是位置), 400, 200400,200是大小)); //设置窗口大小和位置JPanel jp=new JPanel(); //创建一个JPanel对象JLabel jl=new JLabel("这是放在JPanel上的标签"); //创建一个标签jp.setBackground(Color.white); //设置背景色jp.add(jl); //将标签添加到面板jf.add(jp); //将面板添加到窗口jf.setVisible(true); //设置窗口可见} }

    如上述代码,首先创建了一个 JFrame 对象,并设置其大小和位置,
    然后创建了一个 JPanel对象表示面板,调用 setBackground() 方法设置面板的背景色为白色,调用 add() 方法将标签添加到此面板。
    JFrame 类的 add() 方法将 JPanel 面板添加到 JFmme 窗口中。最后调用 setVisible() 方法将窗口设置为可见。

    运行程序,显示的窗口如图 3 所示。

    总结

    以上是生活随笔为你收集整理的2、Java Swing JFrame和JPanel:窗口容器和面板容器的全部内容,希望文章能够帮你解决所遇到的问题。

    如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。