2013-06-28 3 views
7

के साथ जावा सिस्टम गुण प्रदर्शित करें जावा वर्किंग का उपयोग कर जावा स्विंग का उपयोग करके, मेरे वर्कस्टेशन पर जावा सिस्टम प्रॉपर्टी नाम और मान प्रदर्शित करने का कोई आसान तरीका है?स्विंग

System Properties

+0

मैं सिर्फ महसूस किया कि आप प्रश्न पूछा और एक मिनट के बाद में यह जवाब दे दिया। मुझे गलत मत समझो, लेकिन क्या बात है? (मैं SO के लिए नया हूं) –

+1

@ मार्लोन बर्नार्डिस: अभी तक। +60 अंक :-) मैं मेटा पर जवाब देखूंगा और इसे यहां पोस्ट करूंगा। और यहां यह है: http://meta.stackexchange.com/questions/17463/can-i-answer-my-own-questions-even-if-i-knew-the-answer-before-asking –

+0

यह अच्छा है जानना! मेटा संदर्भ के लिए +1! टूलटिप्स के लिए –

उत्तर

7
+0

मैंने प्रश्न पूछने/उत्तर देने से पहले एक खोज की थी। मैंने वास्तव में किया –

+1

+1, मुझे पहले पोस्टिंग को याद नहीं है। – camickr

+0

@ गिल्बर्टलेब्लैंक हां, मैंने * नोट किया * नोटिस आपने अपने प्रश्न का उत्तर दिया। मैंने सोचा कि मेरा जवाब बेहतर था, और चूंकि आपने उल्लेख नहीं किया कि यह ** क्यों नहीं ** ** आपके प्रश्न का उत्तर भी है .. लेकिन अगर यह आपको बेहतर महसूस करता है, तो मुझे पता है कि यह कैसा लगता है .. यह प्रश्न देखें ] (http://stackoverflow.com/questions/10836832/show-an-animated-bg-in-swing) एक क्यू एंड ए के लिए मैं अपने आप को सभी को रखने का इरादा रखता हूं। अंत में मुझे यह स्वीकार करना पड़ा कि दूसरा जवाब वास्तव में मेरे से बेहतर था। आप इस मामले में सहमत नहीं हो सकते हैं, कोई नुकसान नहीं हुआ है, लेकिन बस पता है - हाँ, मैं वहां गया हूं ..;) –

5

कोड बिल्कुल स्पष्ट है:

मूल रूप से, मैं क्या तलाश कर रहा हूँ एक जावा स्विंग अनुप्रयोग है कि कुछ इस तरह प्रदर्शित करता है। JFrame के अंदर, JScrollPane के अंदर एक जेटीबल बनाएं।

मुझे जेटीबल के लिए टेबल मॉडल बनाने के लिए कोड की कुछ पंक्तियां टाइप करना पड़ा। मैंने संपत्ति के नामों को क्रमबद्ध करने के लिए उन्हें आसान बनाने के लिए क्रमबद्ध किया।

जेटीबल तैयार करने के लिए ओवरराइड तैयारकर्ता विधि सभी कोशिकाओं के लिए टूल टिप्स दिखाती है। उपकरण टिप डिस्प्ले की आवश्यकता वाले कक्ष पथ स्ट्रिंग वाले दो मान कक्ष होते हैं।

आपके सिस्टम पर सिस्टम प्रॉपर्टी नाम अन्य सिस्टम पर सिस्टम प्रॉपर्टी नामों के समान नहीं हो सकते हैं। विंडोज और यूनिक्स प्रत्येक के पास सिस्टम प्रॉपर्टी नामों का अपना अनूठा सेट होता है।

import java.awt.Component; 
import java.util.Iterator; 
import java.util.Properties; 
import java.util.Set; 
import java.util.SortedSet; 
import java.util.TreeSet; 

import javax.swing.JComponent; 
import javax.swing.JFrame; 
import javax.swing.JScrollPane; 
import javax.swing.JTable; 
import javax.swing.SwingUtilities; 
import javax.swing.table.DefaultTableModel; 
import javax.swing.table.TableCellRenderer; 

public class SystemProperties implements Runnable { 

    @Override 
    public void run() { 
     JFrame frame = new JFrame("System Properties"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JTable table = new JTable(createSystemPropertiesTableModel()) { 
      private static final long serialVersionUID = 4957089825220999913L; 

      @Override 
      public Component prepareRenderer(TableCellRenderer renderer, 
        int row, int column) { 
       Component c = super.prepareRenderer(renderer, row, column); 
       if (c instanceof JComponent) { 
        JComponent jc = (JComponent) c; 
        String s = getValueAt(row, column).toString(); 
        jc.setToolTipText(s); 
       } 
       return c; 
      } 
     }; 
     JScrollPane scrollPane = new JScrollPane(table); 
     frame.add(scrollPane); 

     frame.pack(); 
     frame.setVisible(true); 
    } 

    private DefaultTableModel createSystemPropertiesTableModel() { 
     DefaultTableModel model = new DefaultTableModel(); 

     model.addColumn("Property"); 
     model.addColumn("Value"); 

     Properties p = System.getProperties(); 
     Set<Object> keys = p.keySet(); 
     SortedSet<Object> sortedKeys = new TreeSet<Object>(keys); 
     Iterator<Object> iter = sortedKeys.iterator(); 

     while (iter.hasNext()) { 
      String key = iter.next().toString(); 
      String value = p.getProperty(key); 
      String[] row = { key, value }; 
      model.addRow(row); 
     } 

     return model; 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new SystemProperties()); 
    } 

} 
+0

+1; 'AbstractTableModel' का उपयोग करके यह संबंधित [उदाहरण] (http://stackoverflow.com/a/9134371/230513) भी देखें। – trashgod

2

आप System.getProperties() का उपयोग कर सिस्टम गुणों तक पहुंच सकते हैं। तो आपको बस इतना करना है कि वह अपनी चाबियों को फिर से चालू करे और जिस तरीके से आप चाहते हैं उसे डेटा में हेरफेर करें।

public static void main(String[] args) { 
    Properties systemProperties = System.getProperties(); 
    Enumeration<?> e = systemProperties.propertyNames(); 

    while (e.hasMoreElements()) { 
     String key = (String) e.nextElement(); 
     String value = systemProperties.getProperty(key); 
     System.out.println(key + " -- " + value); 
    } 
} 
+0

आप उस मान को विशेष रूप से पथ गुणों पर प्रतिस्थापित करना चाहते हैं। –