gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-30 21:20:07 24 4
gpt4 key购买 nike

我有一个关于 joptionpane 的问题。

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

最佳答案

您始终可以通过获取它持有的任何组件的 WindowAncestor 来获取对 JOptionPane 的引用,然后在 Window 上调用 dispose()setVisible(false)回来。可以使用 SwingUtilities.getWindowAncestor(component)

获取 Window

例如:

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();
}
});
}
}

关于java - 如何以编程方式关闭消息对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9860731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com