1

グリッドレイアウトには2つの列があり、コンポーネントの実際のサイズに関係なく、各辺に50%のスペースが与えられます。SetPrefferedSizeも機能していないようですが、必要ないはずです。このsholdは自動的に実行されますよね?

ここに画像の説明を入力してください

最初の行の幅を「SomeOtherLongText3:」に合わせてサイズ変更できますか?

SSCCE:

package test;

import java.awt.*;
import javax.swing.*;

public class test {

    public static void main(String[] args) {
        JFrame frame = new JFrame();

        JPanel detailsPanel = new JPanel();
        detailsPanel.setLayout(new GridLayout(0, 2, 15, 0));

        // Add to left side (WEST)
        frame.add(detailsPanel, BorderLayout.WEST);

        // Add some labels:
        detailsPanel.add(getLabel("Some text:"));
        detailsPanel.add(new JLabel("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc id mauris "));


        detailsPanel.add(getLabel("Some text 2:"));
        detailsPanel.add(new JLabel("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc id mauris "));

        detailsPanel.add(getLabel("Some other text 3:"));
        detailsPanel.add(new JLabel("Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc id mauris "));

        frame.setSize(new Dimension(900, 100));
        frame.setVisible(true);
        frame.pack();
    }

    public static JLabel getLabel(String text)
    {
        JLabel lbl = new JLabel(text);
        lbl.setHorizontalAlignment(SwingConstants.TRAILING);
        return lbl;
    }

}

また、別の問題は、ウィンドウのサイズを変更してテキストを切り取ることができることです。 ここに画像の説明を入力してください

4

1 に答える 1

4

レイアウト戦略

  1. の(ラベル)と(値)に2つの単一列GridLayoutインスタンスを配置します。または親に外部パネルを追加します。WESTCENTERBorderLayoutWEST
  2. を使用しGroupLayoutます。HTML / CSSを使用して値の幅を制限し、値を複数行に強制できるため、これはより良い方法かもしれません。
于 2012-04-12T09:39:02.887 に答える