java实现点击按钮弹出新窗体功能
作者:聆听梦飞扬 发布时间:2022-02-18 14:39:55
标签:java,点击弹出
本文实例为大家分享了Java实现点击按钮弹出新窗体的功能,旧窗体不进行操作
分析:对于自定义窗体来说,最简单直接的做法就是让新窗体继承javax.swing.JDialog(对话框属于顶级窗口,跟JFrame同级),在创建该窗体后加上setModalityType()就可实现打开新窗口后原窗口不能动作,关闭新窗口后方可动作的操作。而setModalityType()方法中里面的参数是java.awt 枚举 Dialog.ModalityType,而枚举Dialog.ModalityType有几个常用的常量,1.APPLICATION_MODAL 对话框阻塞同一 Java 应用程序中的所有顶层窗口(它自己的子层次结构中的顶层窗口除外);2.DOCUMENT_MODAL 对话框阻塞对同一文档中所有顶层窗口的输入(它自己的子层次结构中的顶层窗口除外);3. MODELESS 对话框不阻塞任何顶层窗口;4.TOOLKIT_MODAL 对话框阻塞从同一工具包运行所有顶层窗口(它自己的子层次结构中的顶层窗口除外)。
下面我写了一个简单demo:
public class SwingTest extends JFrame implements ActionListener {
JButton jb = new JButton();
public SwingTest() {
this.setTitle("Java——");
jb.setText("确定");
jb.setMnemonic('a');
this.add(jb);
this.setBounds(200, 300, 250, 300);
this.setVisible(true);
jb.addActionListener(this); //由于SwingTest实现了ActionListener接口,所以给jb添加的ActionListener就是SwingTest实例。
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {// 实现ActionListener接口的actionPerformed接口。
JDialog frame = new JDialog();//构造一个新的JFrame,作为新窗口。
frame.setBounds(// 让新窗口与SwingTest窗口示例错开50像素。
new Rectangle(
(int) this.getBounds().getX() + 50,
(int) this.getBounds().getY() + 50,
(int) this.getBounds().getWidth(),
(int) this.getBounds().getHeight()
)
);
JLabel jl = new JLabel();// 注意类名别写错了。
frame.getContentPane().add(jl);
jl.setText("这是新窗口");
jl.setVerticalAlignment(JLabel.CENTER);
jl.setHorizontalAlignment(JLabel.CENTER);// 注意方法名别写错了。
// 参数 APPLICATION_MODAL:阻塞同一 Java 应用程序中的所有顶层窗口(它自己的子层次
frame.setModalityType(Dialog.ModalityType.APPLICATION_MODAL); // 设置模式类型。
frame.setVisible(true);
}
public static void main(String args[]) {
SwingTest s = new SwingTest();
}
}
来源:https://blog.csdn.net/ygl19920119/article/details/79723512


猜你喜欢
- C# 8.0中的模式匹配相对C# 7.0来说有了进一步的增强,对于如下类:class Point{ public
- 互连网早期的时候,主机间的互连使用的是NCP协议。这种协议本身有很多缺陷,如:不能互连不同的主机,不能互连不同的操作系统,没有纠错功能。为了
- 1. 前言不知道小伙伴对于日期字段,在项目中都是如何处理的,是单独给每个字段都自定义日期格式还是做全局格式设置?这个我之前啊,是
- 方法一:public class MainActivity extends Activity { @O
- 本篇博客我们继续的来聊SpringMVC的东西,下方我们将会聊到js、css这些静态文件的加载配置,以及服务器推送的两种实现方式。当然我们在
- 最近在学ssh,一直搞不懂$,%,#的区别,做了点小练习,慢慢也懂了一点,将自己所学的也记录下来吧。 存在一下一个实
- 一、Arthas官方文档https://arthas.aliyun.com/doc/二、springBoot整合方式1、pom文件引入<
- WPF实现 Gitee泡泡菜单框架使用大于等于.NET40;Visual Studio 2022;项目使用 MIT 开源
- 本篇紧接上一篇内容继续,还是从继承里的细节开始1.代码块初始化关于代码块的定义和使用因为之前已经进行过介绍,所以这里就不再赘述,我们所关注的
- 首先在layout布局中设置按钮和一个ImageView<Button android:id="@+id/sel
- 闲来无事,刚学会把git部署到远程服务器,没事做,所以简单做了一个抓取网页信息的小工具,里面的一些数值如果设成参数的话可能扩展性能会更好!希
- 编写C#程序的时候,我们都遇到过配置文件,而如今绝大多数的配置文件都是用XML写的。所以在处理的时候就需要操作XML文件。那么C#如何操作X
- springboot启动时自动加载application.properties或者application.yml,如何定义自己的配置让spr
- 一、前言最近在看android fragment与Activity进行数据传递的部分,看到了接口回调的内容,今天来总结一下。二、回调的含义和
- Unity 跑马灯抽奖效果实现代码,供大家参考,具体内容如下这边用到插件是NGUI+Dotween,思路简单说下:先排版,通过移动图片蒙版来
- 如果对共享的可变数据的访问不能同步,其后果非常可怕,即使这个变量是原子可读写的。下面考虑一个线程同步方面的问题。对于线程同步,Java类库提
- 为什么需要方法回调?方法回调是功能定义和功能分离的一种手段,是一种松耦合的设计思想。在JAVA中回调是通过接口来实现的。作为一种系统架构,必
- NoHttp是专门做Android网络请求与下载的框架,NoHttp基本使用方法如下本文demo源码下载地址: http://xiazai.
- 五丶封装(1)包的概念与创建1>概念在我们的电脑上有许多的文件,我们为了方便管理,大致给它们进行了不同的命名。然后在不同的文件夹下面再
- /// 构造随机数 种子static int GetRandomSeed(){ byte[] byt