回答
在我询问/回答问题之前,我做了一个搜索。我真的做到了。 –
+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元参考! –