Как я могу получить доступ к закрытым членам класса контейнера внутри внутреннего класса anonymouse? - PullRequest
2 голосов
/ 27 сентября 2011

Как я могу получить доступ ко всем полям-членам класса, который содержит функцию initTimer () из AbstractActionClass?
Спасибо

private void initTimer()
    {
       Action updateClockAction = new AbstractAction() {
                public void actionPerformed(ActionEvent e){
                    JLabel secLabel = m_GameApplet.GetJpanelStartNetGame().GetJlabelSeconds();
                    secLabel.setFont(new java.awt.Font("Lucida Handwriting", 1, 36));
                    secLabel.setForeground(Color.red);
                    secLabel.setText(Integer.toString(m_TimerSeconds));
                    if(m_TimerSeconds >0)
                    {
                        m_TimerSeconds--;
                    }
                    else if (m_TimerSeconds == 0)
                    {
                        m_Timer.stop();
                        m_GameApplet.GetJpanelStartNetGame().GetJlabelSeconds().setText("0");
                        m_GameApplet.GetJpanelStartNetGame().GetJbuttonFinish().setVisible(false);
                        //Checking whether time ended for both players and no solution was recieved
                        if(!m_WasGameDecisived)
                        {
                            System.out.println("Tie - No one had a solution in the given time");
                            //askUserForAnotherRoundLeaveTableOrExitProgram();//////////////////////////////////////////////To implement
                        }
                    }
                }
            };
            m_Timer = new Timer(1000, updateClockAction);
    }

Ответы [ 2 ]

4 голосов
/ 27 сентября 2011

Попробуйте,

ClassName.this.foo

где foo является членом класса. Для получения дополнительной информации см. JLS §15.8.4 Квалифицировано это .

2 голосов
/ 27 сентября 2011

Если ваш внешний класс называется OuterClass, то OuterClass.this.whatever

...