Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java中2列的布局_Java_Layout_Scrollpane - Fatal编程技术网

java中2列的布局

java中2列的布局,java,layout,scrollpane,Java,Layout,Scrollpane,我有一个java代码: gamePanel = new JPanel(); gamePanel.setLayout(new FlowLayout()); scrollPane = new JScrollPane(gamePanel,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); scrollPane.setBounds(5,50,300,100); J

我有一个java代码:

gamePanel = new JPanel();
  gamePanel.setLayout(new FlowLayout());
  scrollPane = new JScrollPane(gamePanel,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
     JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);   
  scrollPane.setBounds(5,50,300,100);

  JButton btn1 = new JButton("btn 1");
  JButton btn2 = new JButton("btn 2");
  JButton btn3 = new JButton("btn 3");
  JButton btn4 = new JButton("btn 4");
  JButton btn5 = new JButton("btn 5");
  gamePanel.add(btn1);
  gamePanel.add(btn2);
  gamePanel.add(btn3);
  gamePanel.add(btn4);
  gamePanel.add(btn5);
我希望结果是:

--------------------------
| Name1      |  Button 1 |
--------------------------
| Name2      |  Button 2 |
--------------------------
| Name3      |  Button 3 |
--------------------------
如果超过JPanel的大小,则必须使用滚动窗格

在我的代码中,结果是:

---------------------------------------------------
| Name1      |  Button 1 | Name2      |  Button 2 |
---------------------------------------------------

默认情况下,JPanel使用FlowLayout,因此不需要声明它。尝试使用GridLayout,如下所示:

    JPanel gamePanel = new JPanel();
    gamePanel.setLayout(new GridLayout(3,2,2,2));


    JButton btn1 = new JButton("btn 1");
    JLabel name1 = new JLabel("name1");
    JButton btn2 = new JButton("btn 2");
    JLabel name2 = new JLabel("name2");
    JButton btn3 = new JButton("btn 3");
    JLabel name3 = new JLabel("name3");

    gamePanel.add(name1);
    gamePanel.add(btn1);
    gamePanel.add(name2);
    gamePanel.add(btn2);
    gamePanel.add(name3);
    gamePanel.add(btn3);

GridLayout、GridBagLayout或MigLayout,由您选择。如果我使用GridLayout,按钮的大小正好是JPanel大小。我需要使它滚动。那么为什么不GridBagLayout-当你尝试这个时会发生什么?不要这样做:scrollPane.setBounds5,50300100;因为这样做你把自己画进了一个角落。