Swing常用窗体


Swing 主要具有以下特点:

( 1 )轻量级组件。

( 2 )可插入外观组件。

窗体作为Swing的应用程序中组件的承载体,处于非常重要的地位。Swing中常用的窗体包括JFrame和JDialog.

swing 常用组件如下:

1.JFrame窗体

JFrame 实际上不仅仅让程序员把组件放入其中并呈现给用户。比起它表面上的简单性,它实际上是 Swing 包中最复杂的组件。为了最大程度地简化组件,在独立于操作系统的 Swing 组件与实际运行这些组件的操作系统之间,JFrame 起着桥梁的作用。JFrame 在本机操作系统中是以窗口的形式注册的,这么做之后,就可以得到许多熟悉的操作系统窗口的特性:最小化/最大化、改变大小、移动。

构造方法:

方法 描述
public JFrame() 创建一个初始不可见,无标题的窗体
public JFrame(String title) 创建一个初始不可见, 有标题的窗体

例:

JFrame jf=new JFrame("标题");
Container container = jf.getContainer();

Swing 组件的窗体通常与组件和容器有关,所以在 JFrame 对象创建完成后,需要调用 getContentpane() 方法将窗体转换为容器,然后在容器中添加组件或设置布局管理器。通常,这个容器用来包含和显示组件。如果需要将组件添加至容器,可以使用来自 Container 类的 add() 方法进行设置。

例:

container.add(new JButton("按钮"));

例:

import java.awt.*;
import javax.swing.*; public class Example1 extends JFrame {
    public void CreateJFrame(String title) {
        JFrame jf = new JFrame(title); 
        Container container = jf.getContentPane(); 
        JLabel jl = new JLabel("这是一个 JFrame 窗体"); 
        jl.setHorizontalAlignment(SwingConstants.CENTER);  
        container.add(jl);      
        container.setBackground(Color.white);
        jf.setVisible(true);       
        jf.setSize(200, 150);        
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);       
    }     public static void main(String[] args) {
        new Example1().CreateJFrame("标题");
    }
}

JFrame 类中的两种构造方法分别为无参的构造方法和有参的构造方法,第一种形式的构造方法可以创建一个厨师不可见。没有标题的新窗体;第二种形式的构造方法再实例化该 JFrame 对象时可以创建一个不可见但具有标题的窗体。可以使用 JFrame 对象调用 show() 方法使窗体可见,但是该方法早已被新版 JDK 所弃用,通常视同 setVisible(true) 方法使窗体可见。同时可以使用 setSize(int x , int y) 方法设置窗体大小,其中 x 与 y 变量分别代表窗体的宽和高。

创建窗体后,需要给予窗体一个关闭方式,可以调用 setDefaultCloseOperation() 方法关闭窗体。Java 为窗体关闭提供了多种方式,常用的有一下 4 中:

    1.DO_NOTHING_ON_CLOSE 。    代表什么都不做就将窗体关闭。

    2.DISPOSE_ON_CLOSE 。    代表任何注册监听程序对象后会自动隐藏并释放窗体。

    3.HIDE_ON_CLOSE 。    代表隐藏窗口的默认默认窗口关闭。

    4.EXIT_ON_CLOSE 。        代表退出应用程序默认窗口关闭

这几种操作实质上是将一个 int 类型的常量封装在 java.swing.WindowConstants 接口中。

JDialog 窗体


JDialog 窗体是 Swing 组件中的对话框,它继承了 AWT 组件中 java.awt.Dialog 类。

JDialog 窗体的功能是从一个窗体中弹出另一个窗体,就像是在使用 IE 浏览器时弹出的确定对话框一样。JDialog 窗体实质上就是另一种类型的窗体,它与 JFrame 窗体类似,在使用时也需要调用 getContentPane() 方法将窗体转换为容器,然后再容器中设置窗体特性。

在应用程序中创建 JDialog 窗体需要实例化 JDialog 类,通常使用以下几个 JDialog 类的构造方法。

1.publi JDialog() :创建一个没有标题和父窗体的对话框 。

2.public JDialog(Frame f) :创建一个指定父窗体的对话框,但该窗体没有标题 。

3.public JDialog(Frame f , boolean model) :创建一个指定类型的对话框,并指定父窗体,但该窗体没有指定标题 。

4.public JDialog(Frame f ,String title) :创建一个指定标题和父窗体的对话框 。

5.public JDialog(Frame f , String title , boolean model) :创建一个指定标题、窗体和模式的对话框。

例:

import java.awt.*;     
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;        class MyJDialog extends JDialog{        
    public MyJDialog (MyFrame frame) {
        super(frame,"第一个 JDialog 窗体",true); 
        Container container = getContentPane();        
        container.add(new JLabel("这是一个对话框"));        
        setBounds(120, 120, 100, 100);       
    }
} public class MyFrame extends JFrame {            public static void main(String[] args) {
        new MyFrame();        
    }     public MyFrame() {
        Container container = getContentPane();
        container.setLayout(null);
        JLabel jl = new JLabel("这是一个 JFrame 窗体");
        jl.setHorizontalAlignment(SwingConstants.CENTER);
        container.add(jl);
        JButton jButton = new JButton("弹出对话框");
        jButton.setBounds(10, 10, 100, 21);
        jButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                new MyJDialog(MyFrame.this).setVisible(true); 
            }
        });
        container.add(jButton);
        container.setBackground(Color.white);
        setSize(200, 200);
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
        setVisible(true);
    }
}

在 MyJDialog 类中,由于它继承了 JDialog 类,所以可以在构造方法中使用 super 关键字调用 JDialog 构造方法。在这里使用了 public JDialog(Frame f , String title , boolean model) 这种形式的构造方法,相应地设置了自定义的 JFrame 窗体以及对话框的标题和窗体类型。JDialog 窗体与 JFrame 窗体形式基本相同,设置在设置窗体的特性时调用的方法名称都基本相同,如设置窗体大小。窗体关闭状态等。





转载于https://www.codeleading.com/article/63722672609/

Swing常用窗体的更多相关文章

  1. 2018.4.27 Java的Swing常用事件

    Swing常用事件 1.Java Swing中处理事件的一般步骤是: (1)新建一个组件(JButton) (2)将该组件添加到面板中(JPanel) (3)注册监听器以监听事件源产生的事件(如Act ...

  2. Swing学习篇 API [一]Swing常用组件

    1.按钮(Jbutton) Swing中的按钮是Jbutton,它是javax.swing.AbstracButton类的子类,swing中的按钮可以显示图像,并且可以将按钮设置为窗口的默认图标,而且 ...

  3. (1)Swing创建窗体

    本系列使用Intellij IDEA 2017.3.4版本 一.运行窗体 1. 2. 3. 4. 5. 6. 给JPanel起个名字 -如From 7. 8. 9. 生成 import javax.s ...

  4. (3)Swing常用组件

    JTextField-文本框 继承自javax.swing.text.JTextComponent类

  5. Swing常用容器

    3.Swing(AWT的子类) 3.1窗口.面板 public class myJFrame extends JFrame { //JFrame是一个顶级窗口 public myJFrame() { ...

  6. swing常用布局

    1,FlowLayout 窗口的默认布局 设置窗口布局方法(下面不重复 setLayout(new FlowLayout()); 设置容器布局方法 比如容器 con1 con1.setLayout(n ...

  7. 十一、Swing

    1.Swing常用窗体 (1)JFrame框架窗体 JFrame窗体是一个容器,是Swing程序中各组件的载体. 语法:JFrame jf = new JFrame(title); Container ...

  8. 第13章 Swing程序设计----常用面板

    面板也是一个Swing容器,它可以作为容器容纳其他组件,但它也必须被添加到其他容器中. Swing常用的面板包括JPanel面板和JScrollPanel面板. 1.JPanel面板 import j ...

  9. 【Swing程序设计/常用面板】

    面板也是一个Swing容器,可以作为容器容纳其他组件,但是它必须要被添加到其他容器中.Swing常见的面板是JPanel面板和JScrollPanel面板. JPanel面板可以聚集一些组件来布局. ...

  10. Winform中的窗体一些常用属性

    Winform窗体的常用窗体属性 1)窗体全屏显示 this.DesktopBounds = Screen.GetWorkingArea(this);  //全屏显示桌面 注:可以放在初始化方法中,也 ...

随机推荐

  1. 给 SSH 启用二次身份验证

    转载自:https://mp.weixin.qq.com/s/ssuhFbfaHxxzGmLg6Y2MjA 目前来说,二次验证(这里就不做过多解释了)是比较常用的安全手段,通过设置二次验证(谷歌或其他 ...

  2. Elasticsearch集群管理之添加、删除节点

    1.问题抛出 1.1 新增节点问题 我的群集具有黄色运行状况,因为它只有一个节点,因此副本保持未分配状态,我想要添加一个节点,该怎么弄? 1.2 删除节点问题 假设集群中有5个节点,我必须在运行时删除 ...

  3. Docker目录/var/lib/docker/containers文件太大

    Docker在不重建容器的情况下,日志文件默认会一直追加,时间一长会逐渐占满服务器的硬盘的空间,内存消耗也会一直增加,本篇来了解一些控制日志文件的方法. 查出占用磁盘较大的文件 Docker 的日志文 ...

  4. 3.配置Grafana Dashboard

    本次我们通过部署 Grafana 来进行图形展示,Grafana 为我们提供了非常多的图形模板. Grafana 官网:https://grafana.com/ 1.下载安装 Grafana 我们使用 ...

  5. .Net 7 C#11 原始字符串

    .Net7 的到来的同时,也带来了 C# 11,而令我最期待的就是 C# 11 的 原始字符串了,当我知道这个的时候,简直比过年还要开心. 非原始字符串 首先我们看看现在写字符串的方式 var str ...

  6. Opengl ES之VBO和VAO

    前言 本文主要介绍了什么是VBO/VAO,为什么需要使用VBO/VAO以及如何使用VBO和VAO. VBO 什么是VBO VBO(vertex Buffer Object):顶点缓冲对象.是在显卡存储 ...

  7. [笔记] CSP 初赛 部分知识整理

    几年前整理的东西,要不就发到网上吧 不过现在这些东西里面也有很多考得比以前少了 卡特兰数 \(f(i)=\sum_\limits{i=0}^{n-1}{f(i)f(n-i-1)}\) 其中\(f(0) ...

  8. python-数据描述与分析(1)

    数据描述与分析 在进行数据分析之前,我们需要做的事情是对数据有初步的了解,这个了解就涉及对行业的了解和对数据本身的敏感程度,通俗来说就是对数据的分布有大概的理解,此时我们需要工具进行数据的描述,观测数 ...

  9. 文心ERNIE-ViLG,你的免费插图画师

    你是否想拥有一个专属画师,免费为你的优美文字插上几幅优美的插图?如今依然实现 最近AI作画确实很火,在DALL-E和Imagen崭露头角之后,ERNIE-ViLG.Stable-Diffusion(S ...

  10. C++ 标准文档

    正式的 C++ 标准文档不是免费的,需要付费购买,可以到 ISO Store 或者其成员国的标准商店购买正版(中国 SACinfo 标准信息服务网,美国 ANSI WebStore,其他成员国可查看 ...