jpanel放入JScrollPane 高度滚动条不显示
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jpanel放入JScrollPane 高度滚动条不显示相关的知识,希望对你有一定的参考价值。
只显示水平,不显示垂直,也设置了setPreferredSize但还是不显示。
public class Pro_DataInputer extends JFrame implements ActionListener
private JPanel jp1;
private JPanel jp2;
private JPanel jp3;
private JLabel jldate;
private JTextField jtdate;
private JScrollPane jsp;
public Pro_DataInputer(ArrayList<Vector> list)
this.init();
private void init()
jp1 = new JPanel();
jp2 = new JPanel();
jp3 = new JPanel();
jldate = new JLabel("输入日期(格式YYYYMM)");
jtdate = new JTextField();
setSize(600,600);
setLayout(null);
jp1.setBounds(0, 0, 600, 100);
jp2.setPreferredSize(new Dimension(600, 600));
jp3.setBounds(0, 400, 600, 200);
jp3.setSize(600, 150);
jsp = new JScrollPane(jp2);
jsp.getHorizontalScrollBar().setAutoscrolls(false);
jsp.getVerticalScrollBar().setAutoscrolls(true);
jsp.setBounds(0, 100, 600, 300);
getContentPane().add(jsp);
jsp.setViewportView(jp2);
jp1.setLayout(null);
jp1.setBackground(Color.white);
jp2.setBackground(Color.darkGray);
jp3.setBackground(Color.YELLOW);
jldate.setBounds(20, 70, 150, 30);
jtdate.setBounds(170, 70, 130, 30);
jp1.add(jldate);
jp1.add(jtdate);
add(jp1);
add(jsp);
add(jp3);
setLocationRelativeTo(null);
setVisible(true);
其实这段代码已经显示了高度滚动条,只是没有露出来而已。将代码中的宽设置下就好了!比如:
setSize(700,600);
就生成了如图:
还有
jsp.getHorizontalScrollBar().setAutoscrolls(false);
jsp.getVerticalScrollBar().setAutoscrolls(true);
这两行代码注释掉就好。
我也是java学习中。。。一起努力!
参考技术Ajsp.getHorizontalScrollBar().setAutoscrolls(false);
jsp.getVerticalScrollBar().setAutoscrolls(true);
一个true,一个false
scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
布局可以换成BorderLayout
JScrollPane 上面放 JPanel 怎么让 JScrollPane 在适当的时候显示滚动条
参考技术A 你需要把JPanel放到Box里,再用把Box放到JScrollPane里就行了,我这样做就可以的。 参考技术B JScrollPane自身本来就是一个面板,为什么你还要在上面加个面板呢!之所以会出现你那种情况,是因为你所有的内容都放到了JPanel
上了。所以无论多长,他影响的是JPanel
,而不是JScrollPane。所以达不到你要的那种效果。方法:去掉JPanel
。。让所有的内容直接放到JScrollPane
。当它内容填充到了整个面板的时候。它会自动出现滚动条的,希望对你有帮助! 参考技术C 在jpLend的大小发生变化后,在jpLend里面调用getParent().doLayout();
为了使jpLend的大小变化能反映出来,应该重写jpLend的getPrefferedSize()方法
以上是关于jpanel放入JScrollPane 高度滚动条不显示的主要内容,如果未能解决你的问题,请参考以下文章
java swing JPanel添加在JScrollPane上,有垂直的滚动条,可是滚动条拉到底,只显示了JPanel的一部分。
JScrollPane 在顶部添加 JPanel 并保持当前滚动视图