我获得了PC的免费记忆,然后每隔512MB的RAM就切成一个滑块。它可以在我的电脑上运行,但对于有8 GB内存的朋友看起来like that:
它在我的4GB ram pc(笔记本电脑)上正常工作。
这是我正在使用的代码。
ram = new JSlider();
ram.setMinimum(512);
ram.setMaximum((int)Runtime.getRuntime().freeMemory()/1024);
ram.setPaintTicks(true);
ram.setMajorTickSpacing(512);
ram.setValue(512);
ram.setPreferredSize(new Dimension(750, 50));
ram.setVisible(true);
Hashtable<Integer, JLabel> labelTable = new Hashtable<Integer, JLabel>();
int mbs = 1024;
while(mbs <= Runtime.getRuntime().freeMemory()/1024){
labelTable.put(mbs, new JLabel(Integer.toString(mbs)));
mbs += 1024;
}
ram.setLabelTable(labelTable);
ram.setPaintLabels(true);
frame.add(ram)
答案 0 :(得分:0)
最有可能的是,对于相同的空间量,8 GB的标签太多了。如果您有8 GB,则在同一可见空间中标签的数量将是4 GB的两倍。您必须根据内存量更改标签数量。
您可以使用固定数量的标签,例如10,并根据可用内存量动态计算比例。