程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> java-關於Java的Swing程序問題

java-關於Java的Swing程序問題

編輯:編程綜合問答
關於Java的Swing程序問題

圖片說明
運行這個Java程序的時候容器網格設置為3行3列,為什麼運行的時候只有兩列,而且第四個面板大小與其他三個不同?

最佳回答:


第一個問題,你的結果之所以不是3行3列, GridLayout(3,3)布局時,設定的列數只有在行數為0時才起作用;當行數不為0時,列數是由行數和添加的布局組件總數決定的。比如,你的程序裡面,行數為3,布局組件總數為4,那麼列數將被確定為2,所以,你會看到運行之後的布局。
第二個問題,你的p4有兩行,所以就是這樣的效果了。
修正代碼如下(布局行數為0,p4為1行),可以看到你需要的效果:

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

public class JPanelTest extends JFrame{

    public JPanelTest() throws HeadlessException {
        Container c = getContentPane();
        c.setLayout(new GridLayout(0,3,10,10));
        JPanel p1 = new JPanel(new GridLayout(1,1,10,10));
        JPanel p2 = new JPanel(new GridLayout(1,2,10,10));
        JPanel p3 = new JPanel(new GridLayout(1,2,10,10));
        JPanel p4 = new JPanel(new GridLayout(1,1,10,10));

        p1.add(new JButton("1"));
        p2.add(new JButton("2"));
        p3.add(new JButton("3"));
        p4.add(new JButton("4"));

        c.add(p1);
        c.add(p2);
        c.add(p3);
        c.add(p4);

        setSize(400,500);
        setVisible(true);
        setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
    }

    public static void main(String[] args) {
        new JPanelTest();
    }
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved