忻州人在郑州 2023-05-20 11:36 采纳率: 100%
浏览 58
已结题

Java图形界面GUI的问题

如何对JDialog的弹窗设置点击窗体右上角叉号关闭?如何对JDialog的弹窗设置点击窗体右上角叉号关闭?

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-05-20 14:33
    关注
    • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/7452517
    • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:Java GUI:不用JDialog实现窗口跳转后无法操作原窗口
    • 除此之外, 这篇博客: Java图形界面编程--对话框JDialog(模态对话框,非模态对话框)中的 对话框JDialog(模态对话框,非模态对话框) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
    • package com.lddx.day0309;
      
      import java.awt.event.ActionEvent;
      import java.awt.event.ActionListener;
      
      import javax.swing.JButton;
      import javax.swing.JDialog;
      import javax.swing.JFrame;
      import javax.swing.JPanel;
      
      //对话框JDialog(模态对话框,非模态对话框)
      public class TestDialog {
      	public static void main(String[] args) {
      		
      		TestDialog d=new TestDialog();
      		d.init();
      	}
      	JFrame f=new JFrame();
      	public void init(){
      		
      		JPanel p=new JPanel();
      		JButton b1=new JButton("模态按钮");
      		JButton b2=new JButton("非模态按钮");
      		
      		//把内部类绑定到按钮
      		MyListener ml=new MyListener();
      		b1.addActionListener(ml);
      		b2.addActionListener(ml);
      		
      		p.add(b1);
      		p.add(b2);
      		f.add(p);
      		
      		f.setTitle("对话框");
      		f.setSize(600, 600);
      		f.setVisible(true);
      		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      	}
      	//定义内部类实现接口ActionListener接口
      	public class MyListener implements ActionListener{
      
      		public void actionPerformed(ActionEvent e) {
      			String str=e.getActionCommand();//获得事件源内容
      			System.out.println(str);	
      			if(str.equals("模态按钮"))
      			{
      				JDialog  d=new JDialog(f,"模态对话框");
      				d.setModal(true);//设置对话框为模态对话框
      				d.setSize(300, 300);
      				d.setTitle("What are doing!");
      				d.setVisible(true);//设置对话框可见
      			}
      			else
      			{
      				JDialog  d=new JDialog(f,"非模态对话框");
      				d.setModal(false);//设置对话框为非模态对话框
      				d.setSize(300, 300);
      				d.setTitle("你弄啥嘞!");
      				d.setVisible(true);//设置对话框可见
      			}
      		}
      	}
      }
      
      
    • 以下回答由chatgpt基于相关博客总结生成:

      回答:

      可以使用以下代码来设置JDialog的关闭方式:

      d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
      

      其中,d为JDialog的实例化对象。该代码会在JDialog被关闭时销毁该对话框,实现关闭操作。完整代码如下:

      JDialog  d=new JDialog(f, "模态对话框");
      d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
      d.setModal(true);//设置对话框为模态对话框
      d.setSize(300, 300);
      d.setTitle("What are doing!");
      d.setVisible(true);//设置对话框可见
      
      JDialog  d=new JDialog(f, "非模态对话框");
      d.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
      d.setModal(false);//设置对话框为非模态对话框
      d.setSize(300, 300);
      d.setTitle("你弄啥嘞!");
      d.setVisible(true);//设置对话框可见
      

      其中,也可以将参数DISPOSE_ON_CLOSE替换成其他选项,如HIDE_ON_CLOSE等,具体使用可以根据不同情况自行选择。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月28日
  • 已采纳回答 5月20日
  • 创建了问题 5月20日