2010-07-26 39 views
1

我需要更改應用程序中每個JButton的行爲(這是一個研究項目)。我們認爲使用某個方面來更改所有按鈕的最佳方法是,它可以保持它的清潔 - 我們不必將所有262個實例都更改爲新類型。我們遇到了困難。我們編寫的方面不會修改JOptionPane中的按鈕,就像我們項目中的其他每個按鈕一樣。下面是我有建議:如何使用AspectJ更改JOptionPane中的按鈕

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

這一個JButton的所有其他構造相匹配,但它似乎缺少由JOptionPane的使用的一個。我如何訪問他們的創作?我在AOP還是個新手,所以也許這是不可能做到的。

回答

0

我認爲AspectJ默認忽略了javax包。由於選項窗格按鈕是在外觀和代碼中創建的(例如,請參閱javax.swing.plaf.basic包中的BasicOptionPaneUI.ButtonFactory),這可能是它被忽略的原因。也許看看更改配置選項以允許/包含javax包?

+0

這個解釋肯定是有道理的。我將不得不嘗試弄清楚我明天何時可以將它編織到'javax'包中。感謝您的提示! – geowa4 2010-07-26 23:20:32