当前位置:编程学习 > JAVA >>

scrollpane不能正常显示panel求解

写了一个程序,把panel直接包进JScrollpane,但是scrollpane直接自动缩放里面的panel了,怎么都不能显示滚动条

           
           JPanel panel = new JPanel();
           panel.setSize(1000,1000);
           JScrollPane sp = new JScrollPane(panel);
           
之前用过setprefersize()之类的方法了,一直都不行,急求啊 --------------------编程问答--------------------
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是可以的
为什么要这样写不知道。。 --------------------编程问答--------------------

sp.setVerticalScrollBarPolicy(
                JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);//竖
--------------------编程问答-------------------- 这帖子还是该顶顶。。求原因。。 --------------------编程问答--------------------
首先取决于 JScrollPane 的实际 size (你可以通过其父控件的 LayoutManager 来设定);

其次取决于加进里面的那个 JPanel 的 preferredSize 。



内部的 JPanel 调用 setSize() 是肯定不行的, 调用 setPreferredSize() 可以,
其实加进 JScrollPane 里的控件最好是 implements Scrollable ,然后 JScrollPane 会尊重其 getPreferredScrollableViewportSize() 返回的 size。 --------------------编程问答-------------------- 这是布局器的基础问题,一两句话说不清楚……
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,