回答
在我詢問/回答問題之前,我做了一個搜索。我真的做到了。 –
+1,我不記得以前看過那篇文章。 – camickr
@GilbertLeBlanc是的,我*確實*注意到你回答了你自己的問題。我只是覺得我的回答比較好,因爲你沒有提到它爲什麼是**而不是**也是你的問題的答案。但是如果它讓你感覺好一些,我知道它是什麼感覺..見[這個問題](http://stackoverflow.com/questions/10836832/show-an-animated-bg-in-swing)對於一個問答我打算保留所有的自己。最後,我不得不承認,其他答案確實比我自己的答案好。在這種情況下,你可能不會同意,沒有傷害,但只是知道 - 是的,我一直在那裏......) –
的代碼是非常簡單的。在JFrame內部的JScrollPane中創建一個JTable。我不得不鍵入幾行代碼來爲JTable構建表模型。我對屬性名稱進行了排序,以使它們更容易找到。
JTable prepareRenderer方法的覆蓋顯示了所有單元的工具提示。需要工具提示顯示的單元格是包含路徑字符串的兩個值單元格。
系統上的系統屬性名稱可能與其他系統上的系統屬性名稱不同。 Windows和Unix都有自己獨特的一組系統屬性名稱。
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());
}
}
工具提示+1;使用'AbstractTableModel'參見這個相關的[例子](http://stackoverflow.com/a/9134371/230513)。 – trashgod
您可以使用System.getProperties()
訪問系統屬性。那麼你所要做的就是迭代它的鍵和按照你想要的方式操縱數據。
public static void main(String[] args) {
Properties systemProperties = System.getProperties();
Enumeration<?> e = systemProperties.propertyNames();
while (e.hasMoreElements()) {
String key = (String) e.nextElement();
String value = systemProperties.getProperty(key);
System.out.println(key + " -- " + value);
}
}
您可能想要對該值進行子串處理,特別是在路徑屬性上。 –
- 1. 在Java中使用系統屬性
- 2. java中的系統屬性
- 3. 爲什麼Java使用-D來指示系統屬性?
- 4. Java Swing屬性(addPropertyChangeListener)
- 5. 在Java中使用Swing顯示圖像
- 6. Java Swing屬性編輯器
- 7. Java Swing UI屬性列表?
- 8. java.ext.dirs Java中的系統屬性
- 9. Java如何確定'file.encoding'系統屬性?
- 10. Java系統屬性和環境變量
- 11. Android系統屬性
- 12. C#屬性系統
- 13. 使用系統屬性作爲@WebAppConfiguration
- 14. 使用junitPlatform時設置系統屬性
- 15. 使用「@」獲取系統屬性
- 16. Linux嵌入式系統中的Java Swing
- 17. Java Swing:系統級組件的規模?
- 18. 使用java中的系統屬性時發生錯誤
- 19. 使用命令行的Java設置系統屬性
- 20. 如何使用Gradle命令行設置Java系統屬性?
- 21. 在Java的單例中使用系統屬性是否好?
- 22. 使用Java系統屬性的最佳實踐
- 23. 使用util:屬性從文件系統加載屬性文件?
- 24. 如何使用系統屬性加載屬性文件
- 25. 設置Java系統屬性Java應用程序
- 26. 的Java:修改系統屬性的Java應用程序
- 27. 春屬性文件VS系統屬性
- 28. java swing:在jtree中顯示文件系統,以及如何打開文件
- 29. Java Swing圖像不顯示?
- 30. 未顯示Java Swing JPanel
我只是意識到,你問的問題和一分鐘後回答了這個問題。不要誤會我的意思,但有什麼意義? (我是新來的) –
@Marlon Bernardes:到目前爲止。 +60分。 :-)我會在meta上查找答案並將其發佈到此處。這裏是:http://meta.stackexchange.com/questions/17463/can-i-answer-my-own-questions-even-if-i-knew-the-answer-before-asking –
這很好知道! +1元參考! –