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