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