我想实现的功能是将数据库中的数据读出来(数据个数不定),对应每个数据都有一个相应的JCheckBox,所有的JCheckBox罗列成一竖列,我在jSplitPane的左侧添加了JPanel,在这个JPanel上显示JCheckBox,但是由于数据个数不定,所以有时后JPanel的高度不够,显示不完全,我试过用JScrollBar,但是滚动条添加上了,可是上下拖拽JPanel没反应啊,然后还试过JScrollPane,也没成功……
我用的IDE是netbeans,但是这部分由于数据个数不定我只能想到自己写GUI了,哪位能给点帮助啊,用什么方法解决都行!!!

解决方案 »

  1.   

    可是上下拖拽JPanel没反应?滚动条的显示与隐藏:
    Quote:语法: 
     
    overflow : visible | auto | hidden | scroll 
     
    参数: 
     
    visible :  不剪切内容也不添加滚动条。假如显式声明此默认值,对象将被剪切为包含对象的window或frame的大小。并且clip属性设置将失效 
    auto :  此为body对象和textarea的默认值。在需要时剪切内容并添加滚动条 
    hidden :  不显示超过对象尺寸的内容
    scroll :  总是显示滚动条 
      

  2.   

    JScrollBar jsb;
    jPanel_left.setSize(jSplitPane_register.getDividerSize(),jSplitPane_register.getSize().height);
    jsb = new JScrollBar(JScrollBar.VERTICAL, 0, 10, 0, jPanel_left.getHeight()-100);
    jsb.setBounds(5, 20, 10, jPanel_left.getHeight()-50);
    jPanel_left.add(jsb);
    这些代码是关于JScrollBar 的啊,滚动条倒是有,但是上下拽不好使,jPanel_left上显示的内容不随着滚动条滚动
      

  3.   

    你试试JScrollPane用JScrollPane去包含你要实现滚动的组件
      

  4.   

    简单点说吧,就是一个JFrame里面有一个JPanel,但是JPanel的大小比JFrame大,将JPanel  add  到JFrame中,因此JPanel中的控件不能一次全部显示到JFrame中,怎么样通过JScrollBar调节JPanel能看到所有控件
      

  5.   

    netbeans  为什么不用MyEclipse呢
      

  6.   

    我写的是个类似数据字典管理程序的东西,netbeans和Eclipse?我不想引入这两个IDE到底谁好的争论,我就是用netbeans,没用Eclipse……无语了……
      

  7.   

    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JSplitPane;
    import javax.swing.JTextField;
    public class T extends JFrame{
    private javax.swing.JSplitPane jSplitPane_register;
        private JPanel jPanel_left;
        private JScrollPane jsp;
        private JTextField mNameTf;
        public T(){
         super();
         setSize(100,100);
         jSplitPane_register = new JSplitPane();
         jPanel_left = new JPanel();
         jsp = new JScrollPane();
            jSplitPane_register.setDividerLocation(130);
            mNameTf = new JTextField();
            mNameTf.setSize(85, 20);
            jPanel_left.setLayout(null);
            
            JLabel mNameLbl = new JLabel("Mediator名字");
            JLabel wNameLbl = new JLabel("Wrapper名字");
            mNameLbl.setSize(90, 15);
            mNameLbl.setLocation(30, 10);
            wNameLbl.setSize(90, 15);
            mNameTf.setLocation(30, 35);
            wNameLbl.setLocation(30, 60);
            jPanel_left.add(mNameLbl);
            jPanel_left.add(mNameTf);
            jPanel_left.add(wNameLbl);
            jPanel_left.validate();
            jsp.getViewport().add(jPanel_left);
            jSplitPane_register.setLeftComponent(jsp);
            setContentPane(jSplitPane_register);
            System.out.println(jSplitPane_register.getSize().height);
            System.out.println(jSplitPane_register.getDividerLocation());
        }
        public static void main(String args[]){
         new T().setVisible(true);
        }
    }
    这段代码,中JScrollPane 貌似没起作用啊,我就是想问这个
      

  8.   

    直接用JScrollPane去包含你的那些JCheckBox 中间不要弄个JPanel就行了
      

  9.   

    恩,最后JScrollPane里就剩下一个JCheckBox 了,其他控件全没了 
      

  10.   

        你的jPanel_left在加组件时没有设置布局管理器,只要在加组件之前加上        jPanel_left.setLayout(new GridLayout(0, 1));
    语句JScrollPane就起作用了……
    你去试一试吧
      

  11.   

    终于碰见你了,哈哈,谢谢楼上,不过Eclipse里面好使了,但是NetBeans中横向的滚动条还是不好使,估计是JScrollPane的容器的问题,呵呵,不管怎么说,多谢了