2015-01-09 2 views
2

이 코드는 CanvasBoard의 스크롤 막대를 추가하고 싶지만 스크롤 막대를 표시하지 않습니다. CanvasBoard 및 PointCanvas는 JPanel을 확장합니다.JSplitPane의 Java JScrollPane이 작동하지 않습니다.

공용 클래스 홈페이지 {

public static void main(String[] args) { 
     JFrame frame = new JFrame("Sample"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     JPanel cb = new JPanel(); 

     JScrollPane scrollPane = new JScrollPane(cb); 

     scrollPane.setPreferredSize(new Dimension(2000, 600)); 

     JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, scrollPane, 
       new JPanel()); 

     splitPane.setOneTouchExpandable(true); 
     splitPane.setDividerLocation(150); 

     Dimension minimumSize = new Dimension(600, 600); 
     cb.setMinimumSize(minimumSize); 

     frame.add(splitPane); 

     frame.setSize(1200, 600); 
     frame.setVisible(true); 

    } 

당신이 왜 어떤 생각을 가지고 있습니까? 감사합니다!

답변

2

JScrollPane의 기본값은 필요한 경우 스크롤 막대를 표시하는 것입니다.

예제에서 몇 가지 사항을 변경하고 스크롤 막대를 표시하는 명령을 추가했습니다.

여기에 스윙 레이아웃이 있습니다.

Sample

그리고 여기가 수정 된 코드입니다.

package com.ggl.testing; 

import java.awt.Dimension; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JSplitPane; 
import javax.swing.SwingUtilities; 

public class ScrollPaneTest implements Runnable { 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new ScrollPaneTest()); 
    } 

    @Override 
    public void run() { 
     JFrame frame = new JFrame("Sample"); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JPanel cb = new JPanel(); 

     JScrollPane scrollPane = new JScrollPane(cb); 
     scrollPane 
       .setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
     scrollPane 
       .setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
     scrollPane.setPreferredSize(new Dimension(2000, 600)); 

     JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, 
       scrollPane, new JPanel()); 

     splitPane.setOneTouchExpandable(true); 
     splitPane.setDividerLocation(150); 

     Dimension minimumSize = new Dimension(600, 600); 
     cb.setMinimumSize(minimumSize); 

     frame.add(splitPane); 

     frame.setSize(1200, 600); 
     frame.setVisible(true); 
    } 

} 
관련 문제