class AboutDialog$1
    implements MouseListener
{    public void mouseEntered(MouseEvent mouseevent)
    {
    }    public void mouseClicked(MouseEvent arg0)
    {
        JTextField textField = (JTextField)arg0.getSource();
        textField.selectAll();
    }    final AboutDialog$1 this$0 ;    AboutDialog$1()
    {
        super();
        this$0 = AboutDialog.this;
    }

}public class AboutDialog extends JDialog { public AboutDialog(Frame owner, boolean modal) {
super(owner, modal);
setTitle("About Android Screen Monitor");
setBounds(0, 0, 320, 140);
setResizable(false);
JLabel labelApp = new JLabel("Android Screen Monitor Version 2.10");
JLabel labelCopyright = new JLabel(
"Copyright (C) 2009-2010 adakoda Al rights reserved.");
JTextField labelUrl = new JTextField(
"http://www.adakoda.com/adakoda/android/asm/");
labelUrl.setEditable(false);
labelUrl.setBorder(new EmptyBorder(0, 0, 0, 0));
labelUrl.addMouseListener(new MouseListener() { public void mouseReleased(MouseEvent mouseevent) {
} public void mousePressed(MouseEvent mouseevent) {
} public void mouseExited(MouseEvent mouseevent) {
} public void mouseEntered(MouseEvent mouseevent) {
} public void mouseClicked(MouseEvent arg0) {
JTextField textField = (JTextField) arg0.getSource();
textField.selectAll();
} final AboutDialog this$0= AboutDialog.this;

});
JButton buttonOK = new JButton("OK");
buttonOK.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {
onOK();
} final AboutDialog this$0 = AboutDialog.this; /* {
this$0 = AboutDialog.this;
super();
}*/
});
Container container1 = new Container();
FlowLayout flowLayout = new FlowLayout(1, 5, 5);
container1.setLayout(flowLayout);
container1.add(labelApp);
container1.add(labelCopyright);
container1.add(labelUrl);
container1.add(buttonOK);
Container containger = getContentPane();
containger.add(container1, "Center");
containger.add(buttonOK, "South");
AbstractAction actionOK = new AbstractAction() { public void actionPerformed(ActionEvent e) {
onOK();
} final AboutDialog this$0  = AboutDialog.this;
/*{
this$0 = AboutDialog.this;
super();
}*/
};
AbstractAction actionCancel = new AbstractAction() { public void actionPerformed(ActionEvent e) {
onCancel();
} final AboutDialog this$0 = AboutDialog.this; /* {
this$0 = AboutDialog.this;
super();
}*/
};
JComponent targetComponent = getRootPane();
InputMap inputMap = targetComponent.getInputMap();
inputMap.put(KeyStroke.getKeyStroke(10, 0), "OK");
inputMap.put(KeyStroke.getKeyStroke(27, 0), "Cancel");
targetComponent.setInputMap(1, inputMap);
targetComponent.getActionMap().put("OK", actionOK);
targetComponent.getActionMap().put("Cancel", actionCancel);
} private void onOK() {
dispose();
} private void onCancel() {
dispose();
}}上面是2个类,只关注上面第一个类中的红色部分即可!

解决方案 »

  1.   

    引用楼主 thinkbank_chen 的回复:
    Java codefinal AboutDialog$1 this$0 ;//编译不通过AboutDialog$1()
    {
    super();
    this$0 = AboutDialog.this;//编译不通过
    }需要说明的是AboutDialog$1和AboutDialog两个类是在不同的文件中
      

  2.   

    这个AboutDialog$1比较像是AboutDialog中addMouseListener时创建的匿名内部类其构造方法试图将其与其enclosing class关联起来
    this$0 = AboutDialog.this;意译而不用直译
      

  3.   

    反编译得到的内部类不需要单独存在,内部类的jad文件统统删掉就OK了