我对jlabel有一点问题。当标签显示对于屏幕来说很大的双打时,我想要一个滚动条来看它们。我刚刚向整个面板添加了一个滚动条,但是当显示超长双精度时它没有检查。
这是我的代码
public class OverviewPanel extends JPanel {
private static final long serialVersionUID = 1L;
private JLabel textNoNodes = new JLabel();
private JLabel textNoEdges = new JLabel();
private JLabel textInitial = new JLabel();
private JLabel textTargets = new JLabel();
private JLabel textFilename = new JLabel();
private JLabel textProbabilityModelCheck = new JLabel();
private JLabel textProbabilityCounterExample = new JLabel();
private JLabel textNoSteps = new JLabel();
public OverviewPanel() {
super(new SpringLayout());
addRow("Number states", textNoNodes);
addRow("Number edges", textNoEdges);
addRow("Initial", textInitial);
addRow("Targets", textTargets);
addRow("Filename", textFilename);
addRow("Prob. model check", textProbabilityModelCheck);
addRow("Prob. counter example", textProbabilityCounterExample);
addRow("Number steps", textNoSteps);
SpringUtilities.makeCompactGrid(this, 8, 2, // rows, cols
6, 6, // initX, initY
6, 6); // xPad, yPad
setDefault();
}
private void addRow(String text, JComponent component) {
JLabel l = new JLabel(text);
add(l);
l.setLabelFor(component);
add(component);
}
...
}
答案 0 :(得分:3)
使用pack()
,“使Window
的大小适合其子组件的首选大小和布局。” sscce也可能有所帮助。
附录:DecimalFormat
的实例可能有助于控制极大的变异。
答案 1 :(得分:2)
恕我直言,我会使用修改后的JTextArea
(即禁用,包裹和不透明)。 无需滚动,调整大小或字体指标计算!
答案 2 :(得分:1)
我不确定,因为我不知道springlayout,无论如何我认为你必须将标签的大小设置为文本的大小。要获得它,您可以使用:
FontMetrics fm = someComponent.getFontMetrics(someFont);
int width = fm.stringWidth(someString);
可能会增加一些空间。然后使用实际宽度的标签,容器应该滚动...
当然我说的是minimumSize或者它是无效的......