我在 Eclipse 中有一個(gè)包含復(fù)選框的首選項(xiàng)頁面。這是家長偏好頁面。子首選項(xiàng)頁面應(yīng)包含基于父頁面中某些復(fù)選框值的不同字段編輯器。示例:如果選中父項(xiàng)中的復(fù)選框,則在子項(xiàng)中創(chuàng)建一個(gè)文本字段。我想在按應(yīng)用時(shí)更新/重繪子頁面。我試圖通過以下方式做到這一點(diǎn):我的子頁面類如下所示:public class MyChildPreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage覆蓋 setVisible 方法:@Overridepublic void setVisible(final boolean visible){ super.setVisible(visible); if (visible) createFieldEditors(); }我的 createFieldEditors 方法每次都使用相同的 Composite 創(chuàng)建字段。盡管如此,仍然沒有更新。有沒有辦法在更改焦點(diǎn)/可見性時(shí)重新觸發(fā)首選項(xiàng)頁面創(chuàng)建?
2 回答

動(dòng)漫人物
TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊
您應(yīng)該只創(chuàng)建一次字段編輯器。
您可以覆蓋propertyChange的方法,F(xiàn)ieldEditorPreferencePage被告知關(guān)于每個(gè)嗜好性變化:
@Override
public void propertyChange(PropertyChangeEvent event) {
String propertyId = event.getProperty();
...
super.propertyChange();
}

白豬掌柜的
TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
你可以試試打電話FieldEditorPreferencePage#initialize()
嗎?這需要load()
每位現(xiàn)場編輯。
添加回答
舉報(bào)
0/150
提交
取消