2013-10-28 144 views
0

其實我正在給Jscrollpane添加一個Jlayeredpane,然後再將Jlabel添加到Jlayeredpane。由於jlayeredpane具有空白布局,因此我明確調用jlabel的大小。在Jlabel中,我設置了一個圖像。在JScrollpane中沒有顯示滾動條

但問題是,這裏沒有顯示滾動條。請幫助設計缺陷或引導我到其他選擇。

+0

你的代碼在哪裏? – Masudul

+1

爲更好的幫助,儘早發佈[SSCCE](http://sscce.org/),簡短,可運行,可編譯,用PreferredSize for Layer(空佈局)顯示您的問題 – mKorbel

+0

ImageIcon icon = new ImageIcon(「output1.jpg」 ); imageview.setBounds(0,0,icon.getIconWidth(),icon.getIconHeight()); imageview.setIcon(icon); // imageview是這裏的Jlabel //我將jlayeredpane添加到jscrollpane –

回答

0

它可能是你的預期。但不要使用空佈局。 JScrollPane不適用於空佈局。

import java.awt.GridLayout; 
import java.awt.HeadlessException; 
import java.io.File; 
import javax.imageio.ImageIO; 
import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 

public class ScrollLabel extends JFrame { 

    public ScrollLabel() throws Exception { 
     setSize(300, 300); 
     setVisible(true); 
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     panel = new JPanel(new GridLayout()); 
     pane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
     label = new JLabel(); 
     ImageIcon icon = new ImageIcon(ImageIO.read(new File(getClass().getResource("baby.jpg").toURI()))); 
     label.setIcon(icon); 
     panel.add(label); 
     add(pane); 
     repaint(); 
    } 

    public static void main(String[] args) throws Exception { 
     new ScrollLabel(); 
    } 
    JPanel panel; 
    JLabel label; 
    JScrollPane pane; 
}