我在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 |
---------------------------------------------------
答案 0 :(得分:0)
JPanels默认使用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);