使用不带按钮的计时器从另一个 JFrame 调用一个 JFrame
不要使用按钮来触发嵌套 JFrame 的显示,而是考虑使用无模式对话。该技术提供了一种更清洁、更高效的方法。
实现:
1.无模式对话框:
2.倒计时计时器:
3. PropertyChangeListener:
4.显示对话框:
用例:
以下代码片段演示了此技术:
<code class="java">import javax.swing.*; public class TimedDialogExample { // Countdown time in seconds private static final int TIME_OUT = 10; public static void main(String[] args) { SwingUtilities.invokeLater(() -> { // Create a frame JFrame frame = new JFrame("Main Frame"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(400, 300); // Create a dialog JDialog dialog = new JDialog(frame); dialog.setSize(300, 200); // Create a timer to display the dialog after TIME_OUT seconds Timer timer = new Timer(1000, e -> { // Hide the dialog dialog.setVisible(false); // Dispatch a WINDOW_CLOSING event to close the dialog dialog.dispatchEvent(new WindowEvent(dialog, WindowEvent.WINDOW_CLOSING)); }); timer.start(); // Set the dialog's content JPanel panel = new JPanel(); panel.add(new JLabel("This is the dialog")); dialog.add(panel); // Make the frame visible frame.setVisible(true); // Display the dialog after TIME_OUT seconds timer.stop(); dialog.setVisible(true); }); } }</code>
通过采用此技术,您可以自动打开嵌套的 JDialog,而不需要额外的按钮。这种方法提供了简化且直观的用户体验,特别是当显示时间至关重要时。
以上是如何使用计时器在不使用按钮的情况下从另一个 JFrame 显示无模式 JDialog?的详细内容。更多信息请关注PHP中文网其他相关文章!