-2

どういうわけか、.dispose() で JFrame にアクセスして閉じることができず、nullPointerException が発生します。System.exit(0) もやりたくありません。JFrame に直接アクセスするにはどうすればよいですか? JFrame を閉じるための回避策はありますか?

 public static void main(String[] args) 
{
    EventQueue.invokeLater(new Runnable() 
    {
        public void run() 
        {
            try 
            {
                frame = new ScannerUI();
                frame.setVisible(true);                         
            } 
            catch (Exception e) 
            {
                e.printStackTrace();
            }           

        }
    });         

}

... (さらに下に、まだ JFrame にアクセスできないため、nullpointerexception が返されます)

                    btnBack.setBounds(400, 270, 80, 40);
                    panel.add(btnBack);
                    btnBack.setText ("BACK");       
                    btnBack.addActionListener(new ActionListener() 
                    {
                        public void actionPerformed(ActionEvent e) 
                        {
                            //ScannerUI.DISPOSE_ON_CLOSE();
                            //frame.dispose();
                            //this.dispose();
                            //frame.setVisible(false);
                            //System.out.println ("dsakjf;dsalkhfsa;lklf");

                            //System.exit(0);
                            //JFrame test = ScannerUI.frame;
                            //test.dispose();
                            //  p = false;
                            System.out.println ("asdfasfas");

                            System.exit(frame.dispose());
                        }
                    });         
4

2 に答える 2