java top.dialog控件,java – 如何只为他的父级创建JDialog onTop?
可以说,我们有几个JFrame窗口同时可见,并且每个窗口都出现JDialog.当我们的窗口处于级联模式和对话框setAlwaysOnTop为真时,所有对话框将在最后一个窗口中可见.
我只想将Dialog组件与其所有者关联起来,这样当你在Frames之间切换时,你只会在顶部获得一个对话框,并且在单击一个框架时不会丢失该对话框.
对话框有这样的构造函数:
setAlwaysOnTop(true);
setModal(false);
提前致谢!
解决方法:
How to make JDialog onTop only for his parent?
> setParent in the constructor properly
>必须使用setModalityType f.e. ModalityType.DOCUMENT_MODAL ModalityType.APPLICATION_MODAL而不是setModal
> setModal对初始化/是此JDialog的父级的容器有效
>不要使用多个JFrame,而是使用JDialog,将此容器重新用于其他操作
例如
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SuperConstructor extends JFrame {
private static final long serialVersionUID = 1L;
public SuperConstructor() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setPreferredSize(new Dimension(300, 300));
setTitle("Super constructor");
Container cp = getContentPane();
JButton b = new JButton("Show dialog");
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
FirstDialog firstDialog = new FirstDialog(SuperConstructor.this);
}
});
cp.add(b, BorderLayout.SOUTH);
JButton bClose = new JButton("Close");
bClose.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
System.exit(0);
}
});
add(bClose, BorderLayout.NORTH);
pack();
setVisible(true);
}
public static void main(String args[]) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
SuperConstructor superConstructor = new SuperConstructor();
}
});
}
private class FirstDialog extends JDialog {
private static final long serialVersionUID = 1L;
FirstDialog(final Frame parent) {
super(parent, "FirstDialog");
setPreferredSize(new Dimension(200, 200));
setLocationRelativeTo(parent);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setModalityType(Dialog.ModalityType.APPLICATION_MODAL);
JButton bNext = new JButton("Show next dialog");
bNext.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
SecondDialog secondDialog = new SecondDialog(parent, false);
}
});
add(bNext, BorderLayout.NORTH);
JButton bClose = new JButton("Close");
bClose.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
setVisible(false);
}
});
add(bClose, BorderLayout.SOUTH);
pack();
setVisible(true);
}
}
private int i;
private class SecondDialog extends JDialog {
private static final long serialVersionUID = 1L;
SecondDialog(final Frame parent, boolean modal) {
//super(parent); // Makes this dialog unfocusable as long as FirstDialog is visible
setPreferredSize(new Dimension(200, 200));
setLocation(300, 50);
setModal(modal);
setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
setTitle("SecondDialog " + (i++));
setModalityType(Dialog.ModalityType.APPLICATION_MODAL);
JButton bClose = new JButton("Close");
bClose.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
setVisible(false);
}
});
add(bClose, BorderLayout.SOUTH);
pack();
setVisible(true);
}
}
}
标签:java,modal-dialog,swing,jdialog
来源: https://codeday.me/bug/20190529/1179407.html
java top.dialog控件,java – 如何只为他的父级创建JDialog onTop?相关推荐
- java程序获取外部java程序的控件,将 Java 小程序迁移到 Microsoft J# 浏览器控件-JSP教程,Java技巧及代码...
visual j# .net 小组 microsoft corporation 摘要:通过 microsoft j# 浏览器控件,开发人员可以将所编写的在 java 虚拟机上运行的 java 小程序迁 ...
- Java调用ocx控件以及dll
2019独角兽企业重金招聘Python工程师标准>>> http://lvqingboy-163-com.iteye.com/blog/769358 通过Java调用OCX控件有几种 ...
- 龙博方案网Big Faceless Java图形展现控件详细介绍及下载
2019独角兽企业重金招聘Python工程师标准>>> Graph Library 是用于以Java创建图形和图表的Java类库.它使用全三维模式,可在 PNG.Flash.PDF或 ...
- java调用ocx控件(ActiveX控件),SWT调用ocx(ActiveX)
java调用ocx控件(ActiveX控件),SWT调用ocx(ActiveX) 注 : OLE.OCX.ActiveX不进行过多阐述,简单理解就是插件,组件类 调用成功,即可展示ocx对应的窗口 ...
- java调用ocx控件获取数据_Java调用ocx控件以及dll
通过Java调用OCX控件有几种方法,JNI.JACOB.Jawin等 1.JNI 最直接的方式,也是最麻烦的方式,需要自己完成所有的工作,不推荐. 2.Jawin 尝试了一下,效果不错,但相对来说, ...
- JQuery1.2.6 ui.dialog控件在IE6下标题栏显示不正常的问题解决
由于项目中用到了jquery1.2.6版的dialog控件,可以较好地解决一些用户选择.单位选择的问题,也比较美观,但后来发现在IE6下显示有点不正常,截图请参见最后,经过查看源代码发现只要将css里 ...
- java swing 表格控件_java swing 开发 -JTable
最近利用空闲时间自己琢磨了一下java swing 编程,其实在从事javaweb之前我一直向往的就是java swing 开发,不知道为什么可能当时觉得Windows上的exe程序很是神奇,关于wi ...
- java图形用户界面控件介绍,GUI(图形用户界面)详解
一.GUI(图形用户界面) GUI Graphical User Interface(图形用户接口) 用图形的方式,来显示计算机操作的界面,这样更方便更直观 CLI Command line User ...
- Java Web打印控件(纯java手写版)
场景: 向数据库中添加一条记录时,调用客户端局域网中的打印机自动将数据打印出来.(当然是客户端打印,服务器端打印还要控件???) 要求: 不弹出.不打印预览.直接自动打印.(静默打印) 需要兼容各大浏 ...
最新文章
- 想法1 : 突然萌发的 “天时地利人和”-----优化
- mysql实现组队_TiDB Hackathon 参考选题扩充,组队参赛走起!
- The Linux Command Line读书笔记(二)
- AndroidStudio下载安装教程(图文教程)
- AI大神贾扬清确认将离开Facebook,加入阿里硅谷研究院
- linux lvm管理实例,Linux系统管理之LVM案例
- GDCM:打印dicom文件的LookupTable的测试程序
- java break 在if 中使用_java中使用国密SM4算法详解
- MySQL流浪记(二)—— MySQL介绍及其特性
- 指点聚源码论坛全站源码 WordPress内核
- Asynchronous(异步处理-Promise)
- Kaggle 数据清洗挑战 Day 3 - 快速解析日期(date)数据
- SpringBoot整合freemarker找不到静态资源ftl文件解决办法
- linux android开发环境搭建
- 基于stm32智能车的设计(ucosiii)---北京之行
- 工作周记 - 第四周 (2016/06/12 - 2016/06/18) 我没喝多,但是今天话多了 - -
- 计算机派位志愿填报技巧,小升初电脑派位操作流程详解
- 2017年sfdc工作总结_Schema Builder
- 从键盘输入直接三角形的两条直接边的长度,求斜边的长度和三角形的面积,计算结果保留两位小数
- 微信开发之——接口调用频率xianzh