2010-05-26 6 views
7

मैं जावा का उपयोग कर एक फ़ाइल एक्सप्लोरर बनाने के लिए सेट हूँ। इसका लक्ष्य डिफ़ॉल्ट एक्सप्लोरर के व्यवहार को जितना संभव हो सके अनुकरण करना है, जो अंतर्निहित ओएस हो सकता है।जावा का उपयोग कर फ़ाइल एक्सप्लोरर - इसके बारे में कैसे जाना है?

मैंने जावा में कोई जीयूआई प्रोग्रामिंग नहीं किया है।

मैंने देखा-अप किया है घुमाओ, SWT और JFace, और मैं इस ट्यूटोरियल के साथ अपने प्रोजेक्ट शुरू कर रहा हूँ: http://www.ibm.com/developerworks/opensource/library/os-ecgui1/

मैं सबसे अच्छा तरीका इस समस्या से निपटने के लिए के बारे में आपकी राय जानना चाहते हैं। यदि आप कोडिंग, पोर्टेबिलिटी और ओएस-आजादी, और दक्षता की जटिलता पर टिप्पणी कर सकते हैं, तो यह बहुत अच्छा होगा।

क्या मुझे और कुछ और पता होना चाहिए? क्या कुछ अन्य तरीके मौजूद हैं?

बहुत बहुत धन्यवाद!


उत्तर और उत्तर के लिए धन्यवाद।

ऐसा लगता है कि मैं फ़ाइल एक्सप्लोरर को लागू करने के लिए स्विंग का चयन करूंगा। मुझे क्या रेंगने का विचार है कि डिफ़ॉल्ट एक्सप्लोरर दृश्य की नकल करने के लिए कुछ भी नहीं होगा ... क्या आप इसके बारे में कुछ पॉइंटर्स प्रदान कर सकते हैं? क्या मुझे फाइलों की सूची मिलती है, आइकन प्राप्त होते हैं और फिर डिफॉल्ट एक्सप्लोरर व्यू दिखाने के लिए उन्हें स्क्रीन पर ग्रिड फैशन में व्यवस्थित करते हैं?

+0

क्या "डिफ़ॉल्ट एक्सप्लोरर" यहां प्लेटफॉर्म/विंडो मैनेजर के डिफ़ॉल्ट का संदर्भ देता है? क्योंकि इसका मतलब यह होगा कि आपको इन चीजों का पता लगाने और विभिन्न प्लेटफार्मों के लिए एक अलग कार्यान्वयन का उपयोग करने की आवश्यकता है। अगर कोई पहले से ही ऐसा कुछ कर चुका है तो मैं गुगलिंग से शुरू करूंगा। – fish

+0

हां, मेरा मतलब है कि डिफ़ॉल्ट एक्सप्लोरर द्वारा। मैंने गुगल किया है; निर्देशिका वृक्ष संरचना कोड को ढूंढना आसान है, लेकिन ग्रिड फैशन में रखे गए आइकनों के साथ एक्सप्लोरर विंडो, अब तक कोई किस्मत नहीं है। : - | – Chaitanya

+0

http://groups.google.com/group/comp.lang.java पर क्रॉस-पोस्ट किया गया।gui/brows_frm/thread/88c34511a58a4cbe – trashgod

उत्तर

6

आप स्विंग का उपयोग करना बेहतर होगा। विभिन्न ऑपरेटिंग सिस्टम के लिए आपको SWT और JFace के विभिन्न संस्करणों की आवश्यकता है।

सबसे अच्छा तरीका सरल शुरू करना है, और जो कुछ भी आप सीखते हैं उसमें जोड़ें।

आरंभ करने के लिए, आपको दो जेपीनल बच्चों के साथ एक जेएफआरएएम की आवश्यकता है।

आपको JFrame में JMenuBar जोड़ने की आवश्यकता होगी। जेमेनू आइटम जेमेनूबार में जोड़े गए हैं। JMenuItem आइटम JMenu में जोड़े गए हैं।

ओरेकल के Swing Overview आपको अपनी परियोजना में अधिक स्विंग घटकों को जोड़ने में मदद करेगा।

+3

+1। – trashgod

+0

अगर मैं गलत हूं, तो मुझे क्षमा करें, लेकिन मैं स्विंग में केवल जेफाइलकोजर देख सकता हूं, और यह खुला/सहेजने वाला संवाद बॉक्स प्रदर्शित कर सकता है; लेकिन मुझे फ़ाइल एक्सप्लोरर के समान कुछ चाहिए। अभी तक, मैं JFileChooser का उपयोग करके ऐसा करने का कोई तरीका नहीं देख पा रहा हूं। – Chaitanya

+1

@ user299988: आपको स्विंग घटकों के बहुत से फाइल एक्सप्लोरर बनाना होगा। मैंने आपको अपने जवाब में शुरू करने के लिए घटकों की एक सूची दी है। –

4

मैं How to Use File Choosers से शुरू करूंगा, लेकिन org.netbeans.swing.outline.Outline में उदाहरण, here पर चर्चा की गई है, आकर्षक है।

परिशिष्ट: @ गिल्बर्ट ली ब्लैंक स्विंग की पोर्टेबिलिटी & आसानी के बारे में एक उत्कृष्ट बिंदु उठाता है। इसके विपरीत, एसडब्ल्यूटी को तैनात करने के लिए थोड़ा और प्रयास करने की आवश्यकता है, लेकिन कुछ उपयोगकर्ता की अधिक निष्ठा पसंद करते हैं, जैसा कि here दिखाया गया है।

परिशिष्ट: मुझे लगता है कि FileDialoghere देखा गया है, और अधिक देशी दिखने वाली विंडो प्रदर्शित करता है। आप इसे अपने लक्षित प्लेटफ़ॉर्म पर आज़मा सकते हैं।

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

/** @see https://stackoverflow.com/questions/2914733 */ 
public class FileDialogTest { 

    public static void main(String[] args) { 
     final JFrame frame = new JFrame(); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setLayout(new GridLayout(0, 1)); 
     frame.add(new JButton(new AbstractAction("Load") { 

      @Override 
      public void actionPerformed(ActionEvent e) { 
       FileDialog fd = new FileDialog(frame, "Test", FileDialog.LOAD); 
       fd.setVisible(true); 
       System.out.println(fd.getFile()); 
      } 
     })); 
     frame.add(new JButton(new AbstractAction("Save") { 

      @Override 
      public void actionPerformed(ActionEvent e) { 
       FileDialog fd = new FileDialog(frame, "Test", FileDialog.SAVE); 
       fd.setVisible(true); 
       System.out.println(fd.getFile()); 
      } 
     })); 
     frame.pack(); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 
    } 
} 
+0

गलत लिंक के बारे में क्षमा करें। – trashgod

+0

मैंने 'java.awt.FileDialog' का उपयोग करके एक उदाहरण जोड़ा है, जो आपकी आवश्यकताओं को बेहतर तरीके से अनुरूप कर सकता है। क्रॉस-प्लेटफार्म पोर्टेबिलिटी और स्टेप-वार परिष्करण के लिए – trashgod

संबंधित मुद्दे