1. ホーム
  2. java

[解決済み] JBorderLayout内のJTextFieldのサイズを変更する

2022-02-17 12:47:29

質問

以下のコードを使用すると、サイズが全く変わらず、グリッド内の領域が埋め尽くされます。

JPanel displayPanel = new JPanel(new GridLayout(4, 2));

JTextField titleText = new JTextField("title");

displayPanel.add(titleText);

titleText.setSize(200, 24);

解決方法は?

GridLayoutのapiから。

コンテナを分割して 等しい大きさの矩形と、1つの コンポーネントをそれぞれの矩形に配置します。

FlowLayoutやGridBagLayoutを使って、セットサイズを意味のあるものにしてみてください。また、@Serplatの言うとおりです。この場合 setPreferredSize( Dimension ) の代わりに setSize( int, int ) .

    JPanel displayPanel = new JPanel();
    // JPanel displayPanel = new JPanel( new GridLayout( 4, 2 ) );
    // JPanel displayPanel = new JPanel( new BorderLayout() );
    // JPanel displayPanel = new JPanel( new GridBagLayout() );

    JTextField titleText = new JTextField( "title" );

    titleText.setPreferredSize( new Dimension( 200, 24 ) );

    // For FlowLayout and GridLayout, uncomment:
    displayPanel.add( titleText );

    // For BorderLayout, uncomment:
    // displayPanel.add( titleText, BorderLayout.NORTH );

    // For GridBagLayout, uncomment:
    // displayPanel.add( titleText, new GridBagConstraints( 0, 0, 1, 1, 1.0,
    // 1.0, GridBagConstraints.CENTER, GridBagConstraints.NONE,
    // new Insets( 0, 0, 0, 0 ), 0, 0 ) );