我将panel4
添加到scrollPane,但我的应用程序没有更改。这是我的代码:
public class Bill extends JPanel {
//some Jlabels, JComboBox......
public Bill(){
JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayout(7,1,10,20));
//add some labels to panel
JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayout(7,4,10,10 ));
//add some components to panel
JPanel panel3=new JPanel(new GridLayout(4,1,10,10));
panel3.add(CRTA);
panel3.add(UKUPNO);
panel3.add(jbtView);
panel3.add(jbtCancel);
最后是panel4
JPanel panel4=new JPanel();
panel4.add(panel1, BorderLayout.WEST);
panel4.add(panel2, BorderLayout.CENTER);
JScrollPane scrollPane = new JScrollPane();
scrollPane.getViewport().add( panel4 );
add(scrollPane,BorderLayout.CENTER);
add(panel3, BorderLayout.SOUTH);
这就是我得到的
在rectange内是panel4(带数字和组合框的面板)
这是我改变大小的时候
没有滚动显示
答案 0 :(得分:2)
JPanel panel4=new JPanel();
panel4.add(panel1, BorderLayout.WEST);
panel4.add(panel2, BorderLayout.CENTER);
默认情况下,JPanel使用FlowLayout,它始终遵循组件首选大小。您尝试指定的约束将被忽略。
您可以尝试:
JPanel panel4=new JPanel( new BorderLayout() );
答案 1 :(得分:2)
基本上,您应该在panel4上添加所有内容(包括panel3),然后在JScrollPane
上添加panel4。之后,在JScrollPane
的{{1}}上添加CENTER
。
也永远不要在JTabbedPane
上调用setXXXSize
方法。
修改强>
我想了一下你的想法:
我希望这可以帮助您了解用户界面。再次:不要调用JButton
方法,让其他一些东西来确定组件的大小,例如字体大小,如果setXXXSize
权限为“总计”JTextField
或大小“热饮”小组中这些JLabel
的图标。