2016-12-23 46 views
-1
import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.FlowLayout; 
import javax.swing.*; 
import java.awt.Dimension; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.JScrollPane; 
import javax.swing.border.LineBorder; 

class Test 
{ 
public Test() 
{ 
    JFrame f = new JFrame(); 
    f.setSize(800,800); 
    f.setLayout(new FlowLayout()); 

    JPanel s = new JPanel(); 
    s.setLayout(new BoxLayout(s,BoxLayout.PAGE_AXIS)); 

    JLabel m = new JLabel("D"); 
    JLabel m1 = new JLabel("D1"); 
    JLabel m2 = new JLabel("D1"); 
    JLabel m3 = new JLabel("D1"); 
    JLabel m4 = new JLabel("D1"); 
    JLabel m5 = new JLabel("D1"); 
    JLabel m6 = new JLabel("D1"); 
    JLabel m7 = new JLabel("D1"); 
    JLabel m8 = new JLabel("D1"); 

    s.add(m); 
    s.add(m1); 
    s.add(m2); 
    s.add(m3); 
    s.add(m4); 
    s.add(m5); 
    s.add(m6); 
    s.add(m7); 
    s.add(m8); 

    JScrollPane scroll = new JScrollPane(s); 

    //scroll.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
    scroll.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
    scroll.setViewportBorder(new LineBorder(Color.RED)); 

    f.add(scroll); 

    f.setVisible(true); 
} 

public static void main(String args[]) 
{ 
    Test t = new Test(); 
} 
} 

一切正常,但滚动不显示(JScollPane出现)..有没有更好的方法来做到这一点?我的意思是 - 在面板中显示JScrollPane的正确方法......?当加入到scollpane部件的优选尺寸比滚动窗格的尺寸更大滚动条没有出现在JPanel中

It's showing like this

+0

它适用于我 –

+0

JScrollPane显示在您张贴的图像中。你能澄清一下你目前的结果有什么问题吗? – ControlAltDel

回答

1

滚动条出现。

JScrollPane scroll = new JScrollPane(s); 
scroll.setPreferredSize(new Dimension(100, 50)); 

除非您设置了首选大小,否则滚动窗格将在您向其中添加元素时展开其高度。

+0

是的!谢谢@richersoon – Hasan