2

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

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

这与 JButton 的所有其他构造函数匹配,但似乎缺少 JOptionPane 使用的构造函数。我怎样才能访问他们的创作?我还是 AOP 的新手,所以也许这甚至不可能。

4

1 回答 1

1

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

于 2010-07-26T22:23:50.130 回答