Java 对话框/JDialog类/输入输出技术

Java Swing 专栏收录该内容
18 篇文章 0 订阅

JDialog类

JDialog类和JFrame类都是Window的子类,实例都属于底层容器,唯一的区别就是对话框必须要依赖于某个窗口
同样也是不允许添加到其他容器中

JDialog类的构造方法

  • JDialog()//无参数的构造方法
  • JDialog(JFrame owner)//带依赖者的对话框
  • JDialog(JFrame owner,String title)//带依赖者带标题的对话框
  • JDialog(JFrame owner,String title,boolean modal)//带依赖者带标题的对话框,设置为哪个模式

其余方法和JFrame类的大致上都可用,但有个是设置模式的

  • setModal(boolean)//设置模式

对话框的模式

  • 有模式 //当对话框出现是不能再操作当前程序的其他窗口
  • 无模式 //当对话框出现时能自由操作(不阻塞)

通过例子

首先创建窗口

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class myWindow extends JFrame implements ActionListener {
    JButton jButton;
    JTextArea jTextArea;
    myDialog myDialog;
    myWindow(){
        setTitle("我的窗口");
        setBounds(400,400,400,500);
        setLayout(new FlowLayout());
        Container con = this.getContentPane();
        con.setBackground(new Color(0x366728));
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true);
        myDialog = new myDialog(this,"我是对话框",true); //对话框实例化
        jButton = new JButton("点击显示对话框");
        jButton.addActionListener(this);
        add(jButton);
        jTextArea = new JTextArea(10,30);
        add(new JScrollPane(jTextArea));
        validate();
    }
    @Override
    public void actionPerformed(ActionEvent actionEvent) {
        myDialog.setLocation(this.getX()+this.getWidth(),this.getY());  //设置位置
        myDialog.setVisible(true);   //从这里开始停止执行下列代码(阻塞)
        if(myDialog.getMessage() == 1){
            jTextArea.append("在对话框中点了YES\n");
        }
        else if (myDialog.getMessage() == 0){
            jTextArea.append("在对话框中点了NO\n");
        }
        else if (myDialog.getMessage() == -1){
            jTextArea.append("在对话框中点了关闭\n");
        }
    }
}

然后创建对话框

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class myDialog extends JDialog implements ActionListener {
    static final int YES = 1,NO = 0;
    int message = -1;
    JButton yes,no;
    myDialog(JFrame jFrame,String s,boolean boo){
        super(jFrame,s,boo);    //调用父类的构造方法
        setSize(200,200);
        setLayout(new FlowLayout());
        yes = new JButton("YES");
        yes.addActionListener(this);
        add(yes);
        no = new JButton(("NO"));
        no.addActionListener(this);
        add(no);
        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {  //当删除对话框时将对话框消失
                message = -1;
                setVisible(false);  //不可见
            }
        });
    }
    @Override
    public void actionPerformed(ActionEvent actionEvent) {
        if (actionEvent.getSource() == yes){
            message = YES;
            setVisible(false);  //不可见
        }
        else if(actionEvent.getSource() == no){
            message = NO;
            setVisible(false);
        }
    }
    public int getMessage() {
        return message;
    }
}

最后进行测试

public class Example11_1 {
    public static void main(String[] args) {
        myWindow myWindow = new myWindow();
    }
}

运行结果
在这里插入图片描述

  • 要注意的是对话框是依赖于当前窗口的,应该在窗口中实例化

输入/输出技术

输入输出(I/O)系统是计算机与外界进行数据交换的通道

1.接口的功能及分类

接口又称为界面,世界两个相对独立的子系统之间的相连部分

主要功能有

  • 地址译码功能
  • 在主机和I/O设备间交换数据/控制命令及状态信息
  • 支持主机采用程序查询/中断/DMA等访问方式
  • 提供主机和I/O设备所需的缓冲/暂存/驱动功能
  • 进行数据的类型/格式等方面的转换

接口的分类

  • 按数据的传送格式分为并行接口和串行接口
  • 按主机访问I/O设备的控制方式,可分为程序查询接口,中断接口,DMA接口以及通道控制器,I/O处理机
  • 按时序控制方式可分为同步接口和异步接口

2.主机和外设间的连接方式
主机和外设见得连接方式常见的由总线型,星型,通道方式,和I/O处理机等,其中总线型方式是基本方式

3.I/O接口的编址方式

  • 与内存单元统一编址
  • I/O接口单独编址

4.CPU与外设之间的交换数据的方式

  1. 直接程序控制
  2. 中断方式
    所谓的中断就是当CPU正在执行程序的过程中,由于外部的事件发生使得CPU暂时中止正在执行的程序,转去执行另一事件,当事件执行完毕时再回过头来执行未完成的程序//引起中断的事件成为事件源,CPU内部发生的事件成为内部中断源,外部发生的事件成为外部中断源
    //当I/O接口准备好接收数据或准备好向CPU传送数据时,就发出中断信号通知CPU.//从而提高CPU的利用率
    //由于需要执行若干条指令才能处理一次中断事件,因此无法满足高速的批量数据传送要求,所以引入DMA方式
  3. 直接存储器存取方式(DMA)
    基本思想就是采用专用部件生成访存地址并控制访存过程
  4. 通道控制方式

CSS

CSS 导航条
添加链接描述
CSS 图像透明度

JavaScript

JavaScript 函数 Call
JavaScript 函数 Apply
JavaScript 闭包

CET4P169

industrial
accord
screen
gratitude
schedule
preference
limitation
error
disturb
cancer

  • 0
    点赞
  • 0
    评论
  • 2
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 像素格子 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值