1

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);
    }
   ...
   }
4

3 に答える 3

3

を使用しますpack()。これWindowにより、「サブコンポーネントの優先サイズとレイアウトに合わせてサイズが変更されます。」sscceも役立つ場合があります。

補遺: のインスタンスは、DecimalFormat極端なサイズの変動を制御するのに役立つ場合があります。

于 2012-01-10T13:22:45.970 に答える
2

私見、私は変更されたものを使用しますJTextArea(つまり、無効、ラップ、および不透明)。スクロール、サイズ変更、またはフォント メトリックの計算は必要ありません

于 2012-01-10T15:26:32.443 に答える
1

springlayout がわからないのでわかりませんが、とにかくラベルのサイズをテキストのサイズに設定する必要があると思います。それを取得するには、次を使用できます。

FontMetrics fm = someComponent.getFontMetrics(someFont);
  int width = fm.stringWidth(someString);

余分なスペースを追加するかもしれません。次に、実際の幅のラベルを使用して、コンテナースクロールする必要があります...

もちろん、私は最小サイズについて話しているか、効果がありません...

于 2012-01-10T13:20:24.880 に答える