问题
How can I access all the member field of the class which contains the function initTimer() from within the AbstractActionClass?
Thanks
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);
}
回答1:
Try,
ClassName.this.foo
where foo
is a class member. For more information, see JLS §15.8.4 Qualified this.
回答2:
Assuming your outer class is called OuterClass
, then OuterClass.this.whatever
来源:https://stackoverflow.com/questions/7574865/how-can-i-access-private-class-members-of-container-class-within-the-anonymouse