पर पुन: प्रयोज्य क्रियाओं का उपयोग करके सर्वश्रेष्ठ अभ्यास मैंने अपने स्विंग अनुप्रयोगों में क्रियाओं को पुन: प्रयोज्य बनाने के तरीके पर अलग-अलग चीजों की कोशिश की। मैं भारी वजन, 1000+ लाइन वर्गों (बहुत सारे आंतरिक/एनन कक्षाओं के साथ) पर एक मित्र नहीं हूं और अपने कोड को कई वर्गों में विभाजित करने का प्रयास करता हूं। इस प्रकार उन्हें आसानी से पुन: प्रयोज्य और विनिमय योग्य बनाते हैं।जीयूआई घटक
मैं हर लड़ाई अपने ही वर्गJMenuBar और JToolBar में इसका इस्तेमाल करने के लिए किए गए एक आवेदन पत्र में एक ही क्रिया पुन: उपयोग लिए। कृपया नीचे दिए गए न्यूनतम उदाहरण पर एक नज़र डालें।
क्या यह एक अच्छा चुनिंदा अभ्यास है (एसएसपी स्थिर आंतरिक कक्षाओं का उपयोग कर)?
public class SomeGUI extends JFrame {
public static void main(String[] args)
{
new SomeGUI();
}
public SomeGUI()
{
setJMenuBar(new MyMenuBar());
add(new MyToolBar());
setSize(400, 400);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
class MyMenuBar extends JMenuBar {
JMenu menu = new JMenu("File");
public MyMenuBar()
{
add(menu);
menu.add(new JMenuItem(new Actions.NewAction("New", null, "New File", KeyEvent.VK_N)));
}
}
class MyToolBar extends JToolBar {
public MyToolBar()
{
add(new Actions.NewAction("New", null, "New File", KeyEvent.VK_N));
}
}
class Actions {
static class NewAction extends AbstractAction {
public NewAction(String name, ImageIcon icon, String desc, Integer mnemonic)
{
super(name, icon);
putValue(SHORT_DESCRIPTION, desc);
putValue(MNEMONIC_KEY, mnemonic);
}
@Override
public void actionPerformed(ActionEvent paramActionEvent)
{
System.out.println("do the new action...");
}
}
}
आपकी सलाह के लिए तत्पर हैं। अग्रिम में धन्यवाद।
कोड समीक्षा के लिए समर्पित एक स्टैक एक्सचेंज साइट है: http://codereview.stackexchange.com/ – Andrea
अच्छा प्रश्न +1 – mKorbel