2016-04-05 25 views
0

Tüm Sistem Özellikleri'ni bir javafx'de nasıl gösterebilirim veya Textarea'da gezinebilirim; = Deger1 "anahtar2" "anahtar1" gibi bir formatta = deger2 Ben *textarea.setText(System.getProperties().toString()),* çalıştı ama bu sadece bu gibi listelenmiştir;javax.swing/javafx kullanarak bir textarea'daki Sistem Özelliklerini listeleme

String out = System.getProperties().toString.replaceAll(", ", "\n"); 
textarea.setText(out); 

textarea hat ayrılması "\ n" kullanıyorsa ben pozitif değilim: Eğer ayrı bir satıra her anahtar/değer istiyorsanız

{javafx.version=8.0.72, java.runtime.name=Java(TM) SE Runtime Environment, sun.boot.library.path=C:\Program Files\Java\jdk1.8.0_77\jre\bin, java.vm.version=25.77-b03, java.vm.vendor=Oracle Corporation, java.vendor.url=http://java.o...... 

cevap

1

bu kullanarak Java 8 özellikten bir versiyonu

TextArea textArea = new TextArea(); 

// or, in Swing, JTextArea textArea = new JTextArea(); 

textArea.setText(System.getProperties().entrySet().stream() 
    .map(e -> String.format("\"%s\" = %s", e.getKey(), e.getValue())) 
    .collect(Collectors.joining("\n"))); 

Eğer gibi görünecektir Anahtarların etrafında tırnaklara gerek yok, harita adımını daha basit olan

.map(Object::toString) 
ile değiştirebilirsiniz.
+0

Çok hoş biri! –

+0

Teşekkürler, aynı şekilde JavaFX'te çalışıyor mu? :) – Pl4gue

+0

Bu, JavaFX kodudur ... Swing istiyorsanız, ilk satırı yorumlanmış çıkış çizgisiyle değiştirin. –

0

Muhtemelen böyle bir şey yapabilir ama bir ayırıcıya sahip olacak.

Anahtarın tırnak içinde olmasını istiyorsanız, özelliklerde Numaralandırma'yı kullanın.

Properties props = System.getProperties(); 

    Enumeration<?> e = props.propertyNames(); 
    StringBuilder sb = new StringBuilder(); 
    while (e.hasMoreElements()) { 
     String key = (String)e.nextElement(); 
     String val = props.getProperty(key); 
     if (sb.length() > 0) { 
      sb.append(" "); 
     } 
     sb.append("\""); sb.append(key); sb.append("\"="); sb.append(val); 
    } 

    textarea.setText(sb.toString()); 
0

kodunuzu bu (ben olabilir kadar kısaltmak için çalıştı) Üyeler:

String text = ""; 
for(String sp : System.getProperties().toString().substring(1, System.getProperties().toString().length() - 2).split(","))text += "\n" + "\"" + sp.split("=")[0].trim() + "\"=" + sp.split("=")[0].trim(); 
text = text.replaceFirst("\n", ""); 
textarea.setText(text);