java中2列的布局
我有一个java代码: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
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;因为这样做你把自己画进了一个角落。