Başka bir GUI nesnesinin durumuna bağlı olarak diğer GUI nesnelerinin davranışını değiştirmek genellikle gereklidir. Örneğin. Bir düğmeye basıldığında, bir etiket ismini değiştirmelidir. Ancak, JButton myButton = new JButton(myButtonAction);
gibi bir AbstractAction nesnesini kullandığımda, AbstractAction öğesinden devraldığı nesnede GUI nesnelerine başvuruma ihtiyacım var. GUI'de sadece AbstractAction nesnelerini oluşturmalı ve gerekli tüm GUI referanslarını AbstractAction nesnelerine aktarmalı mıyım yoksa kötü stil olarak kabul edilebilir mi?Java: Bir GUI bileşenlerini bir AbstractAction nesnesinden nasıl başvuruyorsunuz?
daha somut hale getirmek için:
// AbstractAction
public class MyAction extends AbstractAction {
public MyAction(String name,
String description, Integer mnemonic, JLabel) {
super(name);
putValue(SHORT_DESCRIPTION, description);
putValue(MNEMONIC_KEY, mnemonic);
}
public void actionPerformed(ActionEvent e) {
// do something
}
}
}
public class GUI{
public Action myAction = null;
public GUI(){
JLabel label = new JLabel("text");
//This is not a good idea:
myAction = new MyAction("some text" , desc, new Integer(KeyEvent.VK_Q), label);
JButton myButton = new JButton(myAction);
}
}
Başka bir örnek için yanıt vermek üzere düzenleme konusuna bakın. –