当前位置: 首页 > 面试题库 >

如何以编程方式关闭消息对话框?

段铭晨
2023-03-14
问题内容

我对joptionpane有疑问。

使用JOptionPane.showMessageDialog(…),我们可以创建一个消息对话框。但是如何以编程方式将其关闭?


问题答案:

您总是可以通过获取其持有的任何组件的WindowAncestor来获得对JOptionPane的引用,然后调用dispose()setVisible(false)返回Window。该窗口可以通过使用获得SwingUtilities.getWindowAncestor(component)

例如:

import java.awt.Window;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class CloseOptionPane {

   @SuppressWarnings("serial")
   private static void createAndShowGui() {
      final JLabel label = new JLabel();
      int timerDelay = 1000;
      new Timer(timerDelay , new ActionListener() {
         int timeLeft = 5;

         @Override
         public void actionPerformed(ActionEvent e) {
            if (timeLeft > 0) {
               label.setText("Closing in " + timeLeft + " seconds");
               timeLeft--;
            } else {
               ((Timer)e.getSource()).stop();
               Window win = SwingUtilities.getWindowAncestor(label);
               win.setVisible(false);
            }
         }
      }){{setInitialDelay(0);}}.start();

      JOptionPane.showMessageDialog(null, label);

   }

   public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
         public void run() {
            createAndShowGui();
         }
      });
   }
}


 类似资料:
  • 编辑:包括示例代码- > mainapp.Java-负责处理应用程序的Java类 controller.java-相应的控制器文件 design.FXML-通过mainapp.java加载并由controller.java控制的应用程序的FXML文件 compute.java-执行计算的另一个java类。 公共类Compute{Alert Alert; } 还有,有没有其他的解决方案可以做到这一点

  • 问题内容: JFrame与用户按下X关闭按钮或按在Windows上)相同,获得关闭的正确方法是什么? 我通过以下方式设置了我想要的默认关闭操作: 它完全符合我想要的上述控件的功能。这个问题不是关于这个的。 我真正想做的是使GUI的行为与按下X关闭按钮的行为相同。 假设我要扩展,然后通过来添加我的适配器的实例作为侦听器。我想看到的调用相同的序列通过,以及作为将与出现X关闭按钮。可以这么说,撕开窗户与

  • 我的主类扩展了JPanel,我在这个面板上创建了一个表和一个按钮。现在我想在用户按下它时关闭这个面板。在互联网上关闭面板的例子是关于JFrame.JPanel有解决方案吗?

  • 我正在使用netty 4.0。24.4决赛。 我需要以编程方式启动/停止网络服务器。 在启动服务器时,线程在 请提供一些如何正确操作的提示。下面是由主类调用的EchoServer。谢谢 更新:我用以下方式更改了EchoServer类。其想法是在新线程中启动服务器,并保留到EventLoopGroup的链接。这条路对吗?

  • 问题内容: 我想制作一个锁屏应用程序。当手机处于锁定模式时,它将在插入USB时关闭手机,以防止其他用户访问手机数据。有谁知道如何以编程方式关闭Android设备,以使其他人在设备处于锁定模式时无法访问数据? 这是在锁定屏幕活动上锁定主屏幕按钮的代码: 问题答案: 使用公开的Android SDK是不可能的。

  • 我想以编程方式取消系统生成的报警对话框。我已经尝试了这里提供的所有解决方案(stackoverflow)但似乎都不起作用。这是普遍接受的答案,但它只排除了通知面板和最近的任务菜单。 我已经在操作系统版本4.0.3、4.2.2、4.4.2和5.1.1的设备上测试了它,它在所有这些设备上都具有相同的行为。有一些应用程序实际上可以取消所有的系统对话框(Mubble)。有人能建议一下是怎么做的吗? 谢谢