Der Code ist ziemlich einfach. Erstellen Sie eine JTable innerhalb eines JScrollPane innerhalb eines JFrames.
Ich musste ein paar Zeilen Code eingeben, um ein Tabellenmodell für die JTable zu erstellen. Ich habe die Eigenschaftsnamen sortiert, damit sie leichter zu finden sind.
Die Überschreibung der JTable preparateRenderer-Methode zeigt QuickInfos für alle Zellen an. Die Zellen, die die Anzeige der Werkzeugspitze benötigen, sind die zwei Wertzellen mit Pfadzeichenfolgen.
Die Systemeigenschaftsnamen auf Ihrem System stimmen möglicherweise nicht mit den Systemeigenschaftsnamen auf anderen Systemen überein. Windows und Unix haben jeweils eigene eindeutige Systemeigenschaftsnamen.
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());
}
}
Ich habe erkannt, dass Sie die Frage gestellt und beantwortet sie später eine Minute. Versteh mich nicht falsch, aber was ist der Sinn? (Ich bin neu in SO) –
@Marlon Bernardes: So weit. +60 Punkte. :-) Ich werde die Antwort auf Meta nachschlagen und hier posten. Und hier ist es: http://meta.stackexchange.com/questions/17463/cani-answer-my-own-questions-even-if-i-knew-the-answer-before-asking –
Das ist gut zu kennt! +1 für Meta-Referenz! –