Kod jest dość prosta. Utwórz JTable wewnątrz JScrollPane, wewnątrz JFrame.
Musiałem wpisać kilka linii kodu, aby zbudować model tabeli dla JTable. Posortowałem nazwy właściwości, aby ułatwić ich odnalezienie.
Zastąpienie metody prepareRenderer metody JTable pokazuje wskazówki narzędzi dla wszystkich komórek. Komórki, które wymagają wyświetlenia wskazówka narzędzia są dwie komórki wartości z ciągami ścieżek.
Nazwy właściwości systemu w systemie mogą różnić się od nazw właściwości systemowych w innych systemach. Systemy Windows i Unix mają swój unikalny zestaw nazw właściwości systemowych.
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());
}
}
Właśnie uświadomiłem sobie, że zadał pytanie i odpowiedział na to minutę później. Nie zrozum mnie źle, ale o co ci chodzi? (Jestem nowy w SO) –
@Marlon Bernardes: Do tej pory. +60 punktów. :-) Sprawdzę odpowiedź na meta i opublikuję ją tutaj. I oto jest: http://meta.stackexchange.com/questions/17463/can-i-answer-my-own-questions-even-if-i-knew-the-answer-before-asking –
To dobrze wiedzieć! +1 dla meta odniesienia! –