Swing程序设计(2)JFrame窗体

文章目录


前言

        该文将较为详细地介绍了Swing组件中的JFrame窗体。JFrame窗体是大部分Swing组件的一个载体,这些组件都要在这个窗体上面。而JDialog是一个对话框,可以理解为JFrame窗体向下细分的一个对话框窗体。


一、JFrame窗体的介绍

        1.创建JFrame窗体

        JFrame窗体是Swing应用程序中各个组件的承载体,处于十分重要的位置。在开发程序界面时,通过继承 java.swing.JFrame类,创建一个窗体对象,在这个窗体中添加组件,同时为组件设置事件(通常做法:创建一个方法进行此操作,再于main静态方法中实例化调用)。        

        语法:

JFrame jf = new JFrame(title);
//jf:JFrame类的对象
Container container = jf.getContentPane();
//container:Container类的对象,使用JFrame对象调用getContentPane()方法获取

                getContentPane() 方法:Swing组件的窗体于组件和容器相关,所以在创建完JFrame对象后,需要调用getContentPane() 方法将窗体转换为容器,然后才能在该窗体(容器)中添加组件或设置布局管理器。              

        2.窗体容器中添加或移除组件

        (1)添加组件至容器的语法:add()方法

                容器对象.add(new 组件("组件名称"));

                  实例: 

container.add(new JButton("按钮"));
//向 container 容器添加了一个“按钮”组件

                   添加后,界面效果展示:

       (2)将组件从容器中删除的语法:remove()方法

                 容器对象.remove(new 组件(”按钮“));               

                  实例:

container.remove(new JButton("按钮"));
//从container容器中删去一个“按钮”的组件

                   移除后,界面效果展示: 

二.JFrame窗体的使用 

        1.JFrame类的常用构造方法

        第一种形式的构造方法:创建一个不可见没有标题的新窗体。 (要使用 setVisible(布尔值)方法使得窗体可见,一但可见,并且在main静态方法中实例化该方法后,点击运行就会生成这个窗体)

public JFrame(){

    //some codes

}

         第二种形式的构造方法:创建一个不可见有标题的新窗体。(本实例中采取此方法,并且都要用setVisible()方法,在main静态方法中实例化)        

public JFrame(String title){
    //title为窗体的标题,可自定义
    //some codes

}

            实例:                                  

import javax.swing.*;
import java.awt.*;
//导入swing包,awt包

public class Demo extends JFrame{
//定义一个继承了JFrame窗体类的类,使其可以随意调用JFrame类中的方法
    public void MyJFrame(String title){
        //创建一个方法,用于构建窗体
        JFrame jf = new JFrame(title);
        //实例化一个JFrame窗体类对象,括号中为窗体的标题
        jf.setBounds(200, 200, 1000, 100);
        Container container = jf.getContentPane();
        //使用getContentPane()方法,获取该JFrame类对象的容器
        JLabel jLabel = new JLabel("创建了一个父窗体");
        //创建了一个JLabel标签对象,并且添加了内容
        jLabel.setHorizontalAlignment(SwingConstants.CENTER);
        //使标签上的文字居中
        container.add(jLabel);
        //将标签添加到容器中
        container.setBackground(Color.WHITE);
        //设置容器的背景颜色
        jf.setVisible(true);
        //使窗体可见
        jf.setDefaultCloseOperation(EXIT_ON_CLOSE);
        //设置窗体的关闭方式

    }

    public static void main(String[] args) {
        //在主方法中实例化 Demo类中的 MyJFrame方法
        new Demo().MyJFrame("创建了窗体");
    }
}

        输出结果: 

        在该实例中,Demo类继承了JFrame类,在该类创建的MyJFrame方法实例化JFrame对象,这是创建JFrame窗体的常用方法。

        2.实例相关语法

                   (1)setVisible()方法:使运行后,窗体可视化,在桌面生成窗体。(默认为false)

jf.setVisible(true);
//括号中的布尔值为是否显示窗体

                   (2)setBounds()方法:设置窗体的生成位置,窗体大小。

jf.setBounds(200, 300, 1000, 100);
/* 设置窗体对象窗体左上角的生成位置为:
 *    水平方法(x):200像素
 *    竖直方向(y):300像素
 * 设置窗体大小为:
 *    宽(x):1000像素
 *    高(y):100像素
*/

                   (3)setHorizontalAlignment()方法:设置文本的生成位置

jLabel.setHorizontalAlignment(SwingConstants.CENTER);
//SwingConstants.CENTER  swing组件内容居中
//由于是JLabel对象调用,所以标签的内容居中

                   (4)setBackground()方法:设置背景颜色

container.setBackground(Color.WHITE);
//设置了容器的背景颜色为白色,Color对象调用颜色为 白色 WHITE

                   (5)setDefaultCloseOperation()方法:设置关闭方式

jf.setDefaultCloseOperation(EXIT_ON_CLOSE);
//设置窗体对象的关闭方式为 关闭,并停止运行程序
常用的四种关闭方式解释
DO_NOTHING_ON_CLOSE若无任何操作,则关闭窗体,不会终止程序
DISPOSE_ON_CLOSE任何注册监听程序对象后,自动关闭并释放窗体资源,不会终止程序
HIDE_ON_CLOSE关闭窗体,但不终止程序运行
EXIT_ON_CLOSE关闭窗体,并且终止程序运行


总结

        以上就是对java语言中Swing程序设计中JFrame窗体的使用的介绍。技术内容可能有所过时,适合在校新生学习,欢迎补充指正,博主会及时进行反馈。

  • 4
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 1/16 页 1.1 Java Swing GUI 组件技术教学参考示例(第 2 部分) 1.1.1 Swing ToolBar 组件的应用实例 1、窗口内的内容面板 JFrame 对象本身是不能附加组件的(尽管它为顶层容器,但是不能把组件直接加到顶层 容器中),也就是说调用 frame.append(...)这样的方法会出错,是不正确的。添加组件应该放 在内容面板(Content Panel),内容面板是一个 Container 对象,添加到 JFrame 的组件都只能放 到它上面。 Swing 窗体中含有一个称为内容面板的容器(ContentPane),在顶层容器上放内容面板, 然后把组件加入到内容面板中。 2、JToolBar 是用于显示常用工具控件的容器 (1)主要的用途 一般我们在设计软件时, 会将所有功能依放置在菜单中(JMenu),但当功能数量相当多时, 可能造成用户操作一个简单的操作就必须繁复的寻找菜单中相关的功能,这将造成用户操作 上的负担。若我们能将一般常用的功能以工具栏方式呈现在菜单下,让用户很快得到他想要 的功能,不仅增加用户使用软件的意愿,也加速工作的运行效率.这就是使用 ToolBar 的好处。 (2)用户可以拖拽出一个独立的可显示工具控件的窗口,常用方法有: 1) JToolBar(String name) //构造方法 2) getComponentIndex(Component c) //返回一个组件的序号 3) getComponentAtIndex(int i) //得到一个指定序号的组件 3、添加一个 NavigatorToolBar (1)从 javax.swing.JToolBar 继承、包名称为 com.px1987.javaapplication.swing.toolbar 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 2/16 页 (2)NavigatorToolBar 的代码示例 package com.px1987.javaapplication.swing.toolbar; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JToolBar; import com.px1987.javaapplication.swing.SwingExplorerMainFrame; public class NavigatorToolBar extends JToolBar { private SwingExplorerMainFrame oneSwingExplorerMainFrame=null; JLabel backButton=null; JLabel pullDownButton=null; public NavigatorToolBar() { super(); } 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究, 3/16 页 public NavigatorToolBar(String name,SwingExplorerMainFrame oneSwingExplorerMainFrame) { super(name); this.oneSwingExplorerMainFrame=oneSwingExplorerMainFrame; this.setFloatable(false); //设置该工具条不可拖动 createAllButtonsInToolBar(); } public NavigatorToolBar(int orientation) { super(orientation); } public NavigatorToolBar(String name) { super(name); } public NavigatorToolBar(String name, int orientation) { super(name, orientation); } public void createAllButtonsInToolBar(){ backButton=new JLabel("后退"); backButton.setToolTipText("点击我可以回退到上个面板"); backButton.setIcon(new ImageIcon(getClass().getResource( "/images/mainframe/toolbar/navigator/b
JAVA 面向对象程序设计教程 第9章Java Swing图形用户界面 第9章Java-Swing图形用户界面-Java面向对象程序设计教程-微课视频-程杰-清华大学出版社全文共27页,当前为第1页。 第9章Java Swing图形用户界面 第9章Java-Swing图形用户界面-Java面向对象程序设计教程-微课视频-程杰-清华大学出版社全文共27页,当前为第2页。 9.1 Java Swing概述 9.2 JFrame窗口 9.3布局管理器 9.4 常用控件 9.5事件处理机制 9.6 JDialog对话框 9.7 应用实例:打地鼠小游戏 第9章Java Swing图形用户界面 第9章Java-Swing图形用户界面-Java面向对象程序设计教程-微课视频-程杰-清华大学出版社全文共27页,当前为第3页。 通过GUI(Graphic User Interface,图形用户界面),用户与程序之间可以方便地进行交互。Javajava.awt包,即Java抽象窗口工具包(Abstract Window Toolkit,AWT)提供了许多用来设计GUI的组件Java早起进行用户界面设计时,主要使用java.awt包提供的,如Button(按钮)、TextField(文本框)和List(列表)等。JDK1.2推出后,增加了一个新的javax.swing包,该包提供了功能更为强大的用来设计GUI的。 9.1 Java Swing概述 第9章Java-Swing图形用户界面-Java面向对象程序设计教程-微课视频-程杰-清华大学出版社全文共27页,当前为第4页。 Java提供的JFrame的实例是一个底层容器,即通常所说的窗口。其他组件必须被添加到底层容器中,以便借助这个底层容器和操作系统进行信息交互。简单地讲,如果应用程序需要一个按钮,并希望用户和按钮交互,即用户单击按钮使程序做出某种相应的操作,那么这个按钮必须出现在底层容器中,否则用户无法看到按钮,更无法让用户和按钮交互。 9.2 JFrame窗口 第9章Java-Swing图形用户界面-Java面向对象程序设计教程-微课视频-程杰-清华大学出版社全文共27页,当前为第5页。 当把一个组件添加到容器中时,希望控制组件在容器中的位置和尺寸,这就需要学习布局设计的知识,因为组件在容器中的位置和尺寸是由布局管理器来决定的。所有的容器都会引用一个布局管理器实例,通过它来自动进行组建的布局管理。 9.3布局管理器 第9章Java-Swing图形用户界面-Java面向对象程序设计教程-微课视频-程杰-清华大学出版社全文共27页,当前为第6页。 流布局管理器是最简单的布局管理器,FlowLayout布局管理器是Panel和Applet的默认布局管理器。按照组建的添加次序将它们从左到右地放置在容器中。 9.3.1FlowLayout布局 第9章Java-Swing图形用户界面-Java面向对象程序设计教程-微课视频-程杰-清华大学出版社全文共27页,当前为第7页。 9.3.2BorderLayout布局 BorderLayout为在容器中放置组件提供了一个稍微复杂的布局方案。边界布局管理器将整个容器分为5个区域,分别为东、西、南、北和中间。北占据容器上方,东占据容器右侧,以此推。中区域是东、南、西、北都填满后剩下的区域,组件可以放置在指定的一个区域。 第9章Java-Swing图形用户界面-Java面向对象程序设计教程-微课视频-程杰-清华大学出版社全文共27页,当前为第8页。 9.3.3GridLayout布局 GridLayout是使用较多的布局,其基本的布局策略是把容器划分成若干行乘若干列的网格区域,组件就位于这些划分出来的小格中。 第9章Java-Swing图形用户界面-Java面向对象程序设计教程-微课视频-程杰-清华大学出版社全文共27页,当前为第9页。 窗体上的使用的是一个两行三列的网格布局,将窗体划分为了两行三列共六个部分,每个部分放上一个按钮组件。 this.setLayout(new GridLayout(2, 3)); this.add(button1); this.add(button2); this.add(button3); this.add(button4); this.add(button5); this.add(button6); 9.3.3GridLayout布局 第9章Java-Swing图形用户界面-Java面向对象程序设计教程-微课视频-程杰-清华大学出版社全文共27页,当前为第10页。 下面的布局又是如何实现的呢? 9.3.3GridLayout布局 第9章Java-Swing图形用户界面-Java面向对象程序设计教程-微课视频-程杰-清华

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵果森森

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值