第18章Swing程序设计

 Swing用于开发桌面窗体程序用于JDK的第二代GUI框架,其功能比JDK第一代GUI框架AWT更为强大,性能更加优良。但因为Swing技术推出时间太早,七性能,开发效率等不及一些其他的留下技术,所以目前市场大多数桌面窗体都不是由java开发的,Swing技术也书简被广大开发人员放弃了

        不过Swing是JDK自带的功能,并且能非常好的体现出java语言在面对对象,接口时间等方面设计模式,又能提供直观的呈现运行效果,有所以本书还能纳入此内容,本章不能深入的讲解Swing技术,仅会介绍一些常用组件的使用方法

        Swing中大多数数组件均为轻量级组件,使用Swing开发出的窗体风格与当前平台(如WindowsLinux等)的窗体风格保持一致  本章讲解了主要介绍了Swing的基本要素,包括窗体的布局,容器,常用组件,如何创建表格等内容

 18.2常用窗体

创建一个不可的,具有标题的窗体如下:

JFrame jf =new JFrame("登入系统");
Container container = jf.getContenPane();
在创建窗体后,先调用getContentPane()方法将窗体转换为容器,再使用add()方法或者remove()方法想容器中添加组件或者删除容器中的组件,向容器中添加按钮 代码如下:

JButton okBtn = new JButton("确定");
container.add(okBth);//添加按钮
container.remove(okBth);//删除容器中的按钮
创建窗体后,要对窗体惊醒设置  设置大小 位置,是否可见等等

setBounds(int x,int y,int width,int leight)
//设置窗体左上角在屏幕中的坐标(x,y),窗体的宽度为widttth,窗体的高度为height。
setLocation(int x,int y);//设置窗体左上角在屏幕中的坐标为(x,y)
setSize(int width,int heigth);设置窗体的宽度为width,高度为height
setVisibale(boolean b);//设置窗体是否可见。b为true时窗体为可见;b为false时窗体为不可见
setDefaultCloseOperation(int operation);
//设置窗体的关闭方式,默认值为DISPOSE_ON_CLOSE  Java语言提供了多种窗体的关闭方式,
 JFrame窗体关闭的几种方式

窗体关闭方式    实现功能
DO_NOTHING_ON_CLOSE    关闭窗体时,不触发任何操作
DISPOSE_ON_CLOSE    关闭窗体时,释放窗体资源,窗体会消失但是程序不会停止
HIDE_ON_CLOSE    关闭窗体时,仅隐藏舱体,不释放资源
EXIT_ON_CLOSE    关闭窗体时,释放窗体资源并关闭程序
 创建一个JFreamTest类 在JFreamTest类中创建一个内容为“这是JFrame窗体”后把这个白哦前添加到窗体中  代码如下:

import java.awt.Container;
 
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;
 
public class jFreamTest {
 
    public static void main(String[] args) {
        JFrame jf = new JFrame();//创建一个窗口对象
        jf.setTitle("创建一个JFrame 窗体");//设置窗口标题
        Container container = jf.getContentPane();//获取主容器
        JLabel jl = new JLabel("这是一个JFrame 窗体");//一个文本标签
        jl.setHorizontalAlignment(SwingConstants.CENTER);//将标签上的文字居中
        container.add(jl);//将标签添加到著容器中
        jf.setSize(300,150);//设置窗体宽高
        jf.setLocation(320,240);//设置窗体在屏幕中出现的位置
        jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//关闭窗体则停止程序
        jf.setVisible(true);//让窗体展示出来
    }
}

 代码图如下:

 运行结果如下:

18.2.2JDialog对话框

        JDialong对话框继承了java.awt.Dialog类,其功能是从一个窗体弹出另一个窗体,如使用IE浏览器时弹出的确定对话框JDialog对话框与JFrame窗体类似,被使用也需要先调用getContentPane()方法Jdialog对话捐给转换为容器再对JDialog对话框进行设置

public  JDialong();创建一个没有标题和父窗体的对话框
public  JDialong(Frame f);//创建一个没有标题的,但有父窗体的对话框
public  JDialong(Frame f ,boolean model);//创建一个没有标题但指定
父窗体和模式的对话框 如果model为true,那么弹出对话框后,用户无法操作父窗体
public  JDialong(Frame f ,String title);
//创建一个指定标题和父窗体的对话框 
public  JDialong(Frame f ,boolean model);//创建一个指定标题  父窗体和模式的对话框
 例题在弹窗中弹出对话框:

 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
 
class MyJDialog extends JDialog{//自定义对话框类  继承了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 {//自定义窗体类  继承JFrame
    public MyFrame() {//窗体的构造方法
        Container container=getContentPane();//获得窗体的构造方法
        container.setLayout(null);//容器使用绝对布局
        JButton bl=new JButton("弹出对话框");//创建一个按钮
        bl.setBounds(10,10,100,21);//定义按钮在容器中的坐标和大小
        bl.addActionListener(new ActionListener() {//为按钮添加单击事件
            public void actionPerformed(ActionEvent e) {//单机事件的触发方法
                MyJDialog dialog=new MyJDialog(MyFrame.this);//创建MYJDialo对话框
                dialog.setVisible(true);//使对话框可见
            }
        });
        container.add(bl);//将按钮添加到容器中
        setSize(200,200);//窗体的宽高
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);//关闭窗体则停止程序
        setVisible(true);//使窗体可见
        ;}
        public static void main(String[] args){
            new MyFrame();
        }
    }

 代码图如下:

 运行结果图:

18.2.3JOptionPane小型对话框

一个非常便捷的小型对话框,该类用于创建对话框的方法都是静态方法,无需创建对象即可弹出,在日常开发中经常使用该类唐初提示确认用户需求  

4种创建对话框的方法

        方法    描述
showConfirmDialog()    确认框,询问一个确认问题,如yes/no/cancel
showIputDialog()    输入框,可以让用户向程序输入某些之
showMessageDialog()    通知框,告知用户某事已经发生
showOptionDialog()    自定义对话框,集合了上述3种对话框的全部功能
自定义对话框:

public static int showOptionDialog( Component parentComponent
    Oject message;
    String title;
    int optionType;
    int messageType;
    lcon icon; 
    Object[] options;
    Object initialValue)
}
参数如下:

parentComponent:知名对话框在哪个窗体上显示,如果传入就提的窗体对象和,
对话框会在该窗体居中位置先是  如果传入的是null则会在屏幕中间弹出对话框
message:提示信息
title:对话框的标题
optionType:指定可用对话框的选项的整数
messageType:指定消息种类的整数,主要确定来字可插入外观的图标
options:只是用户可能选择的对象组成的数组。如果对象是组件,则可以正确的呈现,非String对象使用toString方法呈现,如果此参数为null,则由外观确定选项
initiaIValueL表示对话框默认的对象只用options时才有意义,可以为null
以下有四种对话框的例题  代码如下:

弹出会话框

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JOptionPane;
 
public class Demo {
 
    public static void main(String[] args) {
        Object o[]= {new JButton("是的"),new JButton("再想想")};//按钮对象的Object数组
        Icon icon = new ImageIcon("src/注意.png");//获取图标对象
        JOptionPane.showOptionDialog(null,
                "你准备好了吗?",
                "注意了!",
                JOptionPane.DEFAULT_OPTION,
                JOptionPane.DEFAULT_OPTION,
                icon,o,null);
    }
 
}

代码图以及运行结果图:

 确认框:

import javax.swing.JOptionPane;
 
public class Demo1 {
 
    public static void main(String[] args) {
        int answer=JOptionPane.showConfirmDialog
(null, "确定离开吗?","标题",JOptionPane.YES_NO_OPTION);
        //18.4
            }
 
    }
代码图以及运行结果图:

 输入框:

import javax.swing.JOptionPane;
 
public class Demo3 {
 
    public static void main(String[] args) {
        String name=JOptionPane.showInputDialog(null,"请输入您的姓名");
 
    }
 
}
代码图以及运行结果图: 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值