亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

GridBagLayout 為什么第三列更大?

GridBagLayout 為什么第三列更大?

神不在的星期二 2022-08-03 12:38:39
我試圖使按鈕的寬度相等,并且它們的總和它們之間的寬度應該與它們上面的JTextField一樣寬。法典:window.setLayout(new GridBagLayout());GridBagConstraints gb = new GridBagConstraints();gb.gridx = 0;gb.gridy = 0;gb.gridwidth = 3;gb.fill = GridBagConstraints.HORIZONTAL;gb.gridwidth = GridBagConstraints.REMAINDER;window.add(text,gb); //adds JTextFieldgb.gridwidth = 1;gb.gridy++;window.add(one,gb); //adds JButtongb.gridx++;window.add(two,gb); //adds JButtongb.gridx++;window.add(three,gb); //adds JButton當我使用時,發生這種情況:gb.gridwidth = GridBagConstriants.RELATIVE;
查看完整描述

1 回答

?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

您可以通過設置按鈕來實現此目的。GridBagConstraints.weightx = 1.0


要注意的另一個關鍵事項是,我已將文本字段和按鈕添加到 a 中,然后將其添加到 的內容窗格中。我沒有將文本字段和按鈕直接添加到內容窗格中。JPanelJPanelJFrame


import javax.swing.*;

import java.awt.*;


public class EqualWidthButtons

{

  public static void main(String[] args)

  {

    JPanel panel = new JPanel();

    panel.setLayout(new GridBagLayout());


    GridBagConstraints gb = new GridBagConstraints();

    gb.gridx = 0;

    gb.gridy = 0;

    gb.gridwidth = 3;

    gb.fill = GridBagConstraints.HORIZONTAL;

    panel.add(new JTextField(20), gb);


    gb.gridwidth = 1;

    gb.gridy++;

    gb.weightx = 1.0; // This is the important line

    panel.add(new JButton("1"), gb);


    gb.gridx++;

    panel.add(new JButton("2"), gb);


    gb.gridx++;

    panel.add(new JButton("3"), gb);


    JFrame frame = new JFrame();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.getContentPane().setLayout(new GridBagLayout());

    frame.getContentPane().add(panel, new GridBagConstraints());

    frame.setBounds(300, 200, 400, 300);

    frame.setVisible(true);

  }

}

輸出:

http://img1.sycdn.imooc.com//62e9fc07000117cf03770286.jpg

查看完整回答
反對 回復 2022-08-03
  • 1 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號