如何使用AspectJ更改JOptionPane中的按钮

时间:2010-07-26 21:20:28

标签: java aop aspectj

我需要更改应用程序中每个JButton的行为(这是一个研究项目)。我们觉得使用方面更改所有按钮的最佳方法是保持干净 - 我们不必将所有262个实例更改为新类型。我们遇到了障碍。我们编写的方面不会像在项目中的每个其他按钮那样修改JOptionPane中的按钮。以下是我的建议:

after() returning(JButton button): call(*.new(..)) || call(* newInstance(..)) {
    init(button);
}

这匹配JButton的每个其他构造函数,但似乎缺少JOptionPane使用的构造函数。我如何访问他们的作品?我仍然是AOP的新人,所以也许甚至不可能这样做。

1 个答案:

答案 0 :(得分:1)

我认为AspectJ默认忽略javax包。由于选项窗格按钮是在外观代码中创建的(例如,请参阅BasicOptionPaneUI.ButtonFactory包中的javax.swing.plaf.basic),这可能是它被忽略的原因。也许看看更改配置选项以允许/包含javax包?