簡體   English   中英

gridheight不會影響我的按鈕

[英]gridheight doesn't affect my buttons

我是Java應用程序的新手,我正在嘗試創建一個窗口,該窗口在底部具有擴展大小的行中連續3個按鈕。 但是gridheight對我的按鈕沒有任何影響。 gridwidth工作正常。

您能給我有關我做錯了什么的反饋嗎? 我想我沒有正確理解一些東西。

貝婁是我的代碼和輸出窗口。

提前感謝!

private JButton button1;
private JButton button2;
private JButton button3;

public SessionTasksPage() 
{
     JPanel p1=new JPanel(new GridBagLayout());
     JPanel p2=new JPanel();

     button1 = new JButton("b1");    
     button2 = new JButton("b2"); 
     button3 = new JButton("b3");

     GridBagConstraints gbc =new GridBagConstraints();

     //gbc.insets = new Insets(1,1,1,1);

     gbc.gridheight = 5;
     gbc.gridwidth = 5;
     gbc.weightx=15;
     gbc.weighty=15;
     gbc.fill = GridBagConstraints.BOTH;

     p1.add(button2,gbc);
     p1.add(button3,gbc);
     p1.add(button1,gbc);

     add(p1,BorderLayout.SOUTH);
     add(p2,BorderLayout.NORTH);

     EventHandler1 event1 = new EventHandler1();
     button1.addActionListener(event1);

     //window terminate setting 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     //window size
     setSize(600,400);
     //pack();
     //make window visible
     setVisible(true);
     //window title
     setTitle("HCI-Projet");
     //voice command
     //new AePlayerWave("bin/sounds/login.wav").start();
}

public class EventHandler1 implements ActionListener
{
    public void actionPerformed(ActionEvent event1) {
        System.exit(0);
    }
}

在此處輸入圖片說明

問題出在主面板的布局上。 您在該面板上使用的BorderLayout具有一個較大的中央區域( BorderLayout.CENTER )和許多較小的區域(例如NORTHSOUTH )。 布局將迫使除CENTER以外的任何其他東西占用盡可能少的空間,並最大化CENTER區域中的剩余空間(在這種情況下為空)。 既然你加入p1的南部,它不斷的垂直分量p1小,因為它可以。 如果將p1添加為CENTER ,它將解決您的問題。

附帶說明一下,如果網格中的所有行/列都具有相同的高度/寬度,則使用GridLayout可能會比GridBagLayout容易得多。

問題是JPanel p1。 面板的空間由標准布局創建,如果您僅使用add(p1,BorderLayout.SOUTH); ,它不會改變。

要使其可見,可以使用Border: p1.setBorder(BorderFactory.createLineBorder(Color.black));

使用其他布局或GUI構建器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM