写了一个程序,把panel直接包进JScrollpane,但是scrollpane直接自动缩放里面的panel了,怎么都不能显示滚动条           
           JPanel panel = new JPanel();
           panel.setSize(1000,1000);
           JScrollPane sp = new JScrollPane(panel);
           
之前用过setprefersize()之类的方法了,一直都不行,急求啊

解决方案 »

  1.   

    import java.awt.CardLayout;
    import java.awt.Dimension;
    import java.awt.FlowLayout;import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;public class ScrollPaneCantSee extends JFrame{
    public static void main(String[] args){
    new ScrollPaneCantSee();

    }
    public ScrollPaneCantSee(){

    setSize(300,300);
    setVisible(true);

        JPanel panel = new JPanel(null);
       
        JScrollPane sp = new JScrollPane(panel);
     panel.setPreferredSize(new Dimension(1000, 1000));    add(sp);
        
    }
    }setPreferredSize是可以的
    为什么要这样写不知道。。
      

  2.   


    sp.setVerticalScrollBarPolicy(
                    JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//竖
      

  3.   


    首先取决于 JScrollPane 的实际 size (你可以通过其父控件的 LayoutManager 来设定);其次取决于加进里面的那个 JPanel 的 preferredSize 。内部的 JPanel 调用 setSize() 是肯定不行的, 调用 setPreferredSize() 可以,
    其实加进 JScrollPane 里的控件最好是 implements Scrollable ,然后 JScrollPane 会尊重其 getPreferredScrollableViewportSize() 返回的 size。