关于封装弹窗丶java教程网的信息

发布时间:2022-11-19

本文目录一览:

  1. JAVA的弹窗怎么做?
  2. 哪里有java视频教程?求推荐。
  3. 哪有免费的JAVA教程?

JAVA的弹窗怎么做?

JAVA弹窗有下面常见的2种方法实现:

  • 通过 JDialog(模式窗口)类来实现,里面的写法类似 JFrame
    重点方法提示: setModal(true);
    • 当设置为 true 表示如果不关闭这个弹窗,那么主界面的其他组件都无法操作,该弹窗置于其他窗口的前面
    • 当设置为 false 表示可以绕开本弹窗,对主界面的其他组件进行操作
      优点: 功能强大,扩展性强
      缺点: 代码量大
  • 通过 JOptionPane(提示框)来实现
    优点: 代码量少,简单,方便,普通场景已经够用
    缺点: 扩展性不够,复杂逻辑难以实现

示例场景

当用户对文本域的文字进行操作后,在退出时提示用户是否要保存已经更改后的内容。如果用户没有修改内容,则不需要提示。

重点代码

  • addDocumentListener:用于实现对文本内容发生改变时进行响应
  • addWindowListener:用于实现对窗口进行操作时进行响应

完整代码如下:

import java.awt.Font;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class JDDemo extends JFrame implements DocumentListener, WindowListener {
    JTextArea jta;
    boolean flag;
    public JDDemo() {
        jta = new JTextArea(); // 文本域
        jta.setText("床前明月光"); // 文本域的文字--可以通过IO加载txt文档的文字
        jta.setFont(new Font("宋体", Font.BOLD, 20)); // 文本域的字体
        jta.setLineWrap(true); // 设置自动换行
        jta.getDocument().addDocumentListener(this); // 添加文档变化事件的响应.比如修改,删除等
        JScrollPane jsp = new JScrollPane(jta); // 滚动面板(当文字太多时,显示滚动条)
        add(jsp);
        setTitle("主窗口"); // 标题
        setSize(300, 260); // 大小
        setLocationRelativeTo(null); // 居中
        setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); // 点击窗口的关闭按钮时,执行windowClosing的代码
        addWindowListener(this);
        setVisible(true); // 窗口可见
    }
    public static void main(String[] args) {
        new JDDemo();
    }
    // 实现WindowListener接口,需要重写下面的6个方法, windowClosing专门处理关闭时的方法
    public void windowOpened(WindowEvent e) {}
    public void windowClosing(WindowEvent e) {
        if (flag) {
            int n = JOptionPane.showConfirmDialog(null, "已经更改了内容,需要保存后再退出吗?", "提示", JOptionPane.YES_NO_OPTION);
            // n等于-1表示关闭了弹出的对话框等情况的默认值
            // n等于0(JOptionPane.YES_OPTION)表示选择了Yes
            // n等于1(JOptionPane.NO_OPTION)表示选择了No
            if (n == JOptionPane.YES_OPTION) {
                // 把文字保存到文件的代码省略...
                System.out.println("正在使用IO进行保存..ing");
                closeFrame(); // 关闭窗口并退出
            } else if (n == JOptionPane.NO_OPTION) {
                System.out.println("放弃保存修改.马上退出");
                closeFrame();
            }
        } else {
            closeFrame();
        }
    }
    public void windowClosed(WindowEvent e) {}
    public void windowIconified(WindowEvent e) {}
    public void windowDeiconified(WindowEvent e) {}
    public void windowActivated(WindowEvent e) {}
    public void windowDeactivated(WindowEvent e) {}
    // 文档事件,有下面三个,如果触发其中一个,都可以认为修改了文档,所以需要在退出时进行提示,是否保存
    public void insertUpdate(DocumentEvent e) { // 插入
        flag = true;
    }
    public void removeUpdate(DocumentEvent e) { // 删除
        flag = true;
    }
    public void changedUpdate(DocumentEvent e) { // 改变
        flag = true;
    }
    // 关闭窗口的方法
    public void closeFrame() {
        this.setVisible(false); // 窗口不可见
        this.dispose(); // 窗口销毁
        System.exit(0); // JVM虚拟机退出
    }
}

运行效果图

哪里有java视频教程?求推荐。

以下是几个推荐的Java视频教程网站:

  1. Codecademy
    Codecademy 是一家国外知名的在线学习编程的网站,虽然全英文,但大多数单词通俗易懂,适合提高英语阅读能力。Codecademy 会根据你的爱好和目前水平推荐合适的课程。
  2. 慕课网
    慕课网是国内最好的编程类学习网站之一,资源丰富,以独家视频教程为特色,学习成本较低,几乎涵盖所有主流技术。
  3. 实验楼
    实验楼是以实验为核心的 IT 在线教育网站,格外注重实践操作,提供各种挑战任务,学习效率较高。

哪有免费的JAVA教程?

以下是一些免费的 Java 教程资源:

  • 百度网盘免费资源在线学习
    • 链接:(未提供)
    • 提取码:qrd2

教程内容包括:

  • 千锋 Java 基础教程:第 19 章 项目实战
  • 千锋 Java 基础教程:第 18 章 GUI 事件处理
  • 千锋 Java 基础教程:第 17 章 XML 与 JSON
  • 千锋 Java 基础教程:第 16 章 注解
  • 千锋 Java 基础教程:第 15 章 枚举
  • 千锋 Java 基础教程:第 14 章 正则表达式
  • 千锋 Java 基础教程:第 13 章 泛型
  • 千锋 Java 基础教程:第 12 章 反射与内省
  • 千锋 Java 基础教程:第 11 章 网络编程
  • 千锋 Java 基础教程:第 10 章 多线程与并发
  • 千锋 Java 基础教程:第 09 章 集合
  • 千锋 Java 基础教程:第 08 章 文件与 IO
  • 千锋 Java 基础教程:第 07 章 常用类库
  • 千锋 Java 基础教程:第 06 章 Eclipse 与异常处理