Il codice è abbastanza semplice. Crea un JTable all'interno di un JScrollPane, all'interno di un JFrame.
Ho dovuto digitare alcune righe di codice per creare un modello di tabella per JTable. Ho ordinato i nomi delle proprietà per renderle più facili da trovare.
L'override del metodo JTable prepareRenderer mostra i suggerimenti degli strumenti per tutte le celle. Le celle che richiedono la visualizzazione della descrizione dell'utensile sono le due celle di valore con stringhe di percorso.
I nomi delle proprietà di sistema sul sistema potrebbero non corrispondere ai nomi delle proprietà di sistema su altri sistemi. Windows e Unix hanno ciascuno il proprio set unico di nomi di proprietà di sistema.
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());
}
}
fonte
2013-06-28 13:05:55
Ho appena realizzato che lei ha chiesto la domanda e ha risposto che un minuto dopo. Non fraintendermi, ma qual è il punto? (Sono nuovo di SO) –
@Marlon Bernardes: Finora. +60 punti. :-) Cercherò la risposta su meta e postarla qui. Ed eccolo qui: http://meta.stackexchange.com/questions/17463/can-i-answer-my-own-questions-even-if-i-knew-the-answer-before-asking –
Questo va bene per conoscere! +1 per il meta riferimento! –