有个JAVA项目,部分源码丢失,只能通过jd-gui反编译。现在遇到个问题, implements 的ActionListener,都会单独生成一个类。比如下面的 HomePane$6,感觉就是HomePane的一个内部类。文件中出现一大堆的类似access$8的变量,请问下,下面的代码,该如何理解?ActionListener的事件,绑定的是哪个控件?有没有什么好的反编译工具,可以解决类似问题?谢谢。
final class HomePane$6
implements ActionListener
{
HomePane$6(HomePane paramHomePane, JTable paramJTable, ProcessBar paramProcessBar, LabelTextField paramLabelTextField1, Choice paramChoice, LabelTextField paramLabelTextField2, LabelTextField paramLabelTextField3) {}
public void actionPerformed(ActionEvent e)
{
try
{
HomePane.access$8(this.this$0);
int[] select = this.val$table.getSelectedRows();
for (int i = 0; i < select.length; i++)
{
this.val$processBar.showProcess(select.length, i, "正在导出");
int index = select[i];
String idReport = ((List)HomePane.access$6(this.this$0).get(index)).get(0).toString();
HomePane.access$9(this.this$0, this.val$ltfSourceServer, this.val$chDB.getSelectedItem(), this.val$ltfSourceUser, this.val$ltfSourcePassword, idReport);
}
HomePane.access$10(this.this$0).close();
HomePane.access$11(this.this$0, null);
this.val$processBar.showProcess(100L, 99, "导出完成");
Runtime.getRuntime().exec("notepad.exe c:\\output.txt");
}
catch (Exception localException) {}
}
}。
final class HomePane$6
implements ActionListener
{
HomePane$6(HomePane paramHomePane, JTable paramJTable, ProcessBar paramProcessBar, LabelTextField paramLabelTextField1, Choice paramChoice, LabelTextField paramLabelTextField2, LabelTextField paramLabelTextField3) {}
public void actionPerformed(ActionEvent e)
{
try
{
HomePane.access$8(this.this$0);
int[] select = this.val$table.getSelectedRows();
for (int i = 0; i < select.length; i++)
{
this.val$processBar.showProcess(select.length, i, "正在导出");
int index = select[i];
String idReport = ((List)HomePane.access$6(this.this$0).get(index)).get(0).toString();
HomePane.access$9(this.this$0, this.val$ltfSourceServer, this.val$chDB.getSelectedItem(), this.val$ltfSourceUser, this.val$ltfSourcePassword, idReport);
}
HomePane.access$10(this.this$0).close();
HomePane.access$11(this.this$0, null);
this.val$processBar.showProcess(100L, 99, "导出完成");
Runtime.getRuntime().exec("notepad.exe c:\\output.txt");
}
catch (Exception localException) {}
}
}。
似乎就不可以,采用类似 class testInner { } 的方法调用,请二位继续帮忙分析下。谢谢。