2013-10-28 5 views
0

사실 Jscrollpane에 Jlayeredpane을 추가하고 Jlayabane이 Jlayeredpane에 다시 추가되었습니다. 내가 jlabel의 크기를 seeting 오전 jlayeredpane null 레이아웃을 가지고, Jlabel에서 나는 이미지를 설정하고 있습니다.스크롤 막대가 JScrollpane에 표시되지 않습니다.

하지만 문제는 스크롤바가 여기에 표시되지 않는다는 것입니다. 설계 결함을 도와 주시거나 다른 대안을 안내해주십시오.

+0

코드는 어디에 있습니까? – Masudul

+1

더 나은 도움을 위해 곧 게시하십시오. [SSCCE] (http://sscce.org/), 짧고 실행 가능한, 편집 가능한, 레이어 용 PreferredSize (널 레이아웃)로 문제를 보여주십시오. – mKorbel

+0

ImageIcon icon = new ImageIcon ("output1.jpg"); imageview.setBounds (0, 0, icon.getIconWidth(), icon.getIconHeight()); imageview.setIcon (아이콘); // imageview는 여기에있는 Jlabel입니다 // jscrollpane에 jlayeredpane을 추가하고 있습니다 –

답변

0

예상하신 내용 일 수 있습니다. null 레이아웃을 사용하지 마십시오. JScrollPane는 null 레이아웃에서는 동작하지 않습니다.

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; 
}