>Java >java지도 시간 >버튼을 사용하지 않고 타이머를 사용하여 다른 JFrame의 모달리스 JDialog를 표시하려면 어떻게 해야 합니까?

버튼을 사용하지 않고 타이머를 사용하여 다른 JFrame의 모달리스 JDialog를 표시하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-10-26 10:59:29339검색

How can I use a timer to display a modaless JDialog from another JFrame without using buttons?

버튼 없이 타이머를 사용하여 다른 JFrame에서 하나의 JFrame 호출

버튼을 사용하여 중첩된 JFrame의 표시를 트리거하는 대신 모드리스 사용을 고려하세요. 대화. 이 기술은 더욱 명확하고 효율적인 접근 방식을 제공합니다.

구현:

1. 모덜리스 대화 상자:

  • 기본 프레임과 상호 작용할 수 있는 최상위 컨테이너인 모덜리스 JDialog를 만듭니다.

2. 카운트다운 타이머:

  • javax.swing.Timer를 활용하여 특정 시간 간격에 JDialog를 자동으로 여는 카운트다운을 시작합니다.

3. PropertyChangeListener:

  • JDialog에 대한 PropertyChangeListener를 등록하여 해당 값 속성의 변경 사항을 모니터링합니다.

4. 표시 대화 상자:

  • 속성 변경 이벤트가 시작되면 JDialog를 숨기고 WINDOW_CLOSING 이벤트를 전달하여 닫습니다.

사용 사례:

다음 코드 조각은 이 기술을 보여줍니다.

<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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.