Mã này là khá đơn giản. Tạo một JTable bên trong một JScrollPane, bên trong một JFrame.
Tôi phải nhập một vài dòng mã để tạo mô hình bảng cho JTable. Tôi đã sắp xếp tên thuộc tính để dễ tìm hơn.
Ghi đè phương thức chuẩn bị của JTable hiển thị các mẹo công cụ cho tất cả các ô. Các ô cần hiển thị đầu công cụ là hai ô giá trị có chuỗi đường dẫn.
Tên thuộc tính hệ thống trên hệ thống của bạn có thể không giống với tên thuộc tính hệ thống trên các hệ thống khác. Windows và Unix đều có bộ tên thuộc tính hệ thống riêng.
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());
}
}
Nguồn
2013-06-28 13:05:55
Tôi vừa nhận ra rằng bạn đã đặt câu hỏi và trả lời nó một phút sau đó. Đừng hiểu lầm tôi, nhưng vấn đề là gì? (Tôi mới tham gia SO) –
@Marlon Bernardes: Cho đến nay. +60 điểm. :-) Tôi sẽ tìm câu trả lời trên meta và đăng nó ở đây. Và đây là: http://meta.stackexchange.com/questions/17463/can-i-answer-my-own-questions-even-if-i-knew-the-answer-before-asking –
Điều đó tốt cho biết! +1 để tham khảo meta! –