我需要更改应用程序中每个JButton的行为(这是一个研究项目)。我们觉得使用方面更改所有按钮的最佳方法是保持干净 - 我们不必将所有262个实例更改为新类型。我们遇到了障碍。我们编写的方面不会像在项目中的每个其他按钮那样修改JOptionPane中的按钮。以下是我的建议:
after() returning(JButton button): call(*.new(..)) || call(* newInstance(..)) {
init(button);
}
这匹配JButton的每个其他构造函数,但似乎缺少JOptionPane使用的构造函数。我如何访问他们的作品?我仍然是AOP的新人,所以也许甚至不可能这样做。
答案 0 :(得分:1)
我认为AspectJ默认忽略javax
包。由于选项窗格按钮是在外观代码中创建的(例如,请参阅BasicOptionPaneUI.ButtonFactory
包中的javax.swing.plaf.basic
),这可能是它被忽略的原因。也许看看更改配置选项以允许/包含javax包?