展开全部

JAVA弹窗,有下面常见的2种方法实现:通过JDialog(模式32313133353236313431303231363533e4b893e5b19e31333363376562窗口) 类来实现.里面的写法类似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. java helloworld代码_java学习应用篇|逃不掉的HelloWorld

    本文知识点 1.表白不是发起进攻的冲锋号,而是吹响胜利的号角 2.除了爱情不讲道理,公理也不讲道理 3.这世界,离了javac,也是可以运行的! 4.Hello,寺水 写程序并不是写代码 看前面啰啰嗦 ...

  2. java 编写代码_Java 7:如何编写非常快速的Java代码

    java 编写代码 当我第一次写此博客时,我的目的是向您介绍ThreadLocalRandom类,它是Java 7中新增的用于生成随机数的类. 我在一系列微基准测试中分析了ThreadLocalRan ...

  3. java游戏代码_Java与Kotlin系列文章之性能问题详解

    作者丨Jakub Anioła 译者丨姜雨生 策划丨田晓旭 随着对 Kotlin 越来越深入的了解,我发现市面上关于 Kotlin 方面,比较深入的资料几乎是 0,所以我决定,将 Kotlin 各个方 ...

  4. java 定时器代码_Java定时器代码的编写

    Java定时器代码的编写 在某些时候, 我们需要实现这样的`功能,某一程序隔一段时间执行一次,而这一事情由系统本身来完成,并不是人为的触发,我们一般可称此为定时器任务.其实到Java中,实现起来是非常 ...

  5. java四则运算代码_Java实现简单四则运算

    GitHub 项目地址 PSP PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 10 10 · Estima ...

  6. java 文件下载代码_java文件下载代码实例(单文件下载和多文件打包下载)

    这篇文章主要介绍了java文件下载代码实例(单文件下载和多文件打包下载),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最近项目有需要写文件下载相关 ...

  7. java日历代码_JAVA日历代码,怎么做?

    展开全部 import java.util.Date; import java.util.Calendar; import java.text.DateFormat; import java.text ...

  8. java 闹钟代码_JAVA可视化闹钟源码

    1 packageClock;2 3 importsun.audio.AudioPlayer;4 importsun.audio.AudioStream;5 6 import javax.swing. ...

  9. java 股票 代码_Java中利用散列表实现股票行情的查询_java

    ---- 在java中,提供了一个散列表类Hashtable,利用该类,我们可以按照特定的方式来存储数据,从而达到快速检索的目的.本文以查询股票的收盘数据为例,详细地说明java中散列表的使用方法. ...

  10. python可以测试java的代码吗_使用python做你自己的自动化测试--对Java代码做单元测试 (2)-导入第三方jar包裹...

    使用Jython对Java做单元测试,当然,为了测试开发java代码.这涉及到引入第三包的问题,如何导入第三方的包? 您可以使用http://blog.csdn.net/powerccna/artic ...

最新文章

  1. CvMat,Mat和IplImage之间的转化和拷贝
  2. 德约科维奇横扫纳达尔夺冠 加冕澳网七冠王
  3. 水域大小 Java_水域大小
  4. Pycharm 社区版本Database Navigator 安装教程
  5. MYSQL: DML/DDL/DCL
  6. POJ 1724 ROADS(bfs最短路)
  7. html数字增加动态效果,jQuery实现数字自动增加或者减少的动画效果示例_泠吢_前端开发者...
  8. 在Windows 7中打开Telent客户端服务
  9. 马斯克自曝特斯拉渣产能原因:我错了,过分信任自动化机器人
  10. 深度学习自学(三十二):半监督焦点人物检测
  11. w10系统服务器管理器,Win10如何打开服务管理器
  12. 实验三 循环程序设计
  13. Python 离散小波变换(DWT) pywt库
  14. 转一篇Java基础的文章,比较有深度的,就转来收藏了
  15. Java 扫描微信公众号二维码,关注并自动登录网站
  16. [转]Linux面试题(2020最新版)
  17. 你不知道的 React 最佳实践
  18. Windows10安装Markdown安装教程(超级详细)
  19. 2021年11月逆向练习
  20. Oracle 11.2.0.3 ORA-12012 ORA-29280 ORA-06512 错误 解决方法

热门文章

  1. 关于MFC窗口隐藏的方法
  2. 查看360极速浏览器保存的密码方法步骤
  3. 风险预测模型_5分+整合多中心临床样本构建5分子胰腺癌预后模型
  4. 17AHU排位赛2 A题(最小生成树、LCA维护树上路径)
  5. oracle数据库查询,sql没问题,数据库也有数据,方法没错,项目运行就是查不出数据
  6. 计算机和机械类哪个工资高,机械工程师和软件工程师哪个工资高前景好?
  7. 2020全球C++及系统软件技术大会议程
  8. html压缩工具中文,HTML Compress(html压缩工具)
  9. 给自己的心灵一把独到的标尺
  10. 推荐一款非常实用的VR手势插件VRBasics