0

ユーザーがウィンドウを閉じるたびに例外をスローしたいのですが、これが可能かどうかはわかりません。ここに私がやりたいことのいくつかのコードがあります:

import java.awt.event.*;
import javax.swing.*;


public class ExceptionTest extends JFrame{

    public static void main(String[] args) {
        try {
            new ExceptionTest();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public ExceptionTest() throws Exception{
        super("Exception Test");
        setDefaultCloseOperation(DISPOSE_ON_CLOSE);

        addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosed(WindowEvent e) {
                super.windowClosed(e);
                //Throw Exception
            }
        });

        pack();
        setLocationRelativeTo(null);
        setVisible(true);
    }

}
4

3 に答える 3

2

RunTimeException代わりに次のように使用できます。

public ExceptionTest()  {
    super("Exception Test");
    setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosed(WindowEvent e)throws RuntimeException {
            throw new RuntimeException("WindowClosedException");
        }
    });
于 2013-05-16T16:27:31.583 に答える
2

基本的に、あらゆる種類の RuntimeExceptions をそこにスローできます。ここで RuntimeExceptions のリストを見つけることができます: RuntimeException (Java Platform SE 6)

import java.awt.event.*;
import javax.swing.*;


public class ExceptionTest extends JFrame{

    public static void main(String[] args) {
        try {
            new ExceptionTest();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public ExceptionTest() throws Exception{
    super("Exception Test");
    setDefaultCloseOperation(DISPOSE_ON_CLOSE);

    addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosed(WindowEvent e) {
            super.windowClosed(e);
            throw new IllegalArgumentException("User closed this window!");
        }
    });

    pack();
    setLocationRelativeTo(null);
    setVisible(true);
}

}

于 2013-05-16T16:30:13.363 に答える
1

RuntimeException をスローできます

addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosed(WindowEvent e) {
                super.windowClosed(e);
                throw new RuntimeException();
            }
         });
于 2013-05-16T16:27:18.867 に答える