简体   繁体   中英

Access a class object from its inner class

This method is inside JFrame object, how can I pass that JFrame object as an argument to the method in its inner class?? My code is: The comment explains what I am interested to do:

public void runTime(){        
        ActionListener action = new ActionListener(){
            public void actionPerformed(ActionEvent e){
                count++;                
                text.setText(new Integer(count).toString());
                while (count==2012){
                    //I want to pass the frame that holds this rather than null, how it is possible?
                    JOptionPane.showMessageDialog(null, "HelloEnd", "End of World", JOptionPane.INFORMATION_MESSAGE, new ImageIcon("explode.jpg"));
                    break;
                }
            }
        };
        tr = new Timer(1000,action);
        tr.start();
    }

Hopefully, this question wasn't answered before . Anyway, try

 JOptionPane.showMessageDialog(JFrame.this, "HelloEnd", "End of World", JOptionPane.INFORMATION_MESSAGE, new ImageIcon("explode.jpg"));

您可以使用OuterClassName.this

AFAIK, if your method is not static, you can use this and super keywords. Here's some tutorial . Eg:

JOptionPane.showMessageDialog(this, "HelloEnd", "End of World", JOptionPane.INFORMATION_MESSAGE, new ImageIcon("explode.jpg"));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM