0

我获得了 PC 的可用内存,然后将其设置为每 512MB 内存切片的滑块。它在我的电脑上工作,但在我的朋友有 8 GB 内存它看起来像这样8GB 的​​ JSlider:标签不可读

它在我的 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)
4

1 回答 1

0

最有可能的是,对于相同的空间量,8 GB 的标签太多了。如果您有 8 GB,那么在相同的可见空间中,标签的数量将是 4 GB 的两倍。您必须根据内存量更改标签的数量。

您可以使用固定数量的标签,例如 10 个,并根据可用内存量动态计算比例。

于 2013-10-01T13:56:56.310 回答