2013-01-06 1 views
0

나는 약간의 스윙을 배우려고 노력하고 있는데, 나는 14.46.2.Add component to JScrollPane 예제를 시도하고있다. 코드는 다음과 같습니다.JScrollPane이 예제와 다른 이유는 무엇입니까?

import java.awt.BorderLayout; 
import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.FlowLayout; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JScrollPane; 
import javax.swing.border.LineBorder; 

public class AddingToJScrollPane { 

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

    JLabel label = new JLabel("Label"); 
    label.setPreferredSize(new Dimension(1000, 1000)); 
    JScrollPane jScrollPane = new JScrollPane(label); 

    JButton jButton1 = new JButton(); 

    jScrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
    jScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); 
    jScrollPane.setViewportBorder(new LineBorder(Color.RED)); 
    jScrollPane.getViewport().add(jButton1, null); 

    frame.add(jScrollPane, BorderLayout.CENTER); 
    frame.setSize(400, 150); 
    frame.setVisible(true); 
} 
} 

페이지에서 예상되는 결과를 확인할 수 있습니다.

enter image description here

그러나, 그냥 아래 이미지의 결과를 얻을, 그 코드를 붙여 & 복사합니다. 예제가 오래되었거나 예제 이미지가 잘못된 것인지 (튜토리얼 이미지의 빨간색 테두리는 어디에 있습니까?) 이해하려고합니다. 더욱이, 내 스크롤바는 사용 가능하지 않습니다. 내가 사용할 수있는 것을 놓친 건지? (튜토리얼에서 그들은 괜찮아)? JDK7을 사용하고 있습니다.

enter image description here

답변

3

입니다 이 줄을 기준으로 :

jScrollPane.setViewportBorder(new LineBorder(Color.RED)); 

배경 정보로 구성 요소에 색칠 된 선 테두리를 설정할 때 Swing에서 유용한 디버깅 가능성이 있습니다 (그렇지 않으면 한 구성 요소가 어디에서 끝나고 다른 구성 요소가 시작되는지 알기가 어려울 수 있음). 따라서 여기서는 작성자가 스크린 샷을 찍은 후 디버깅하려고하고 제거하지 않았습니다. 코드에서이 라인. 이, 스크롤이 활성화되어, 그들이 "회색"처럼되지 않습니다 http://docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html

편집 : 당신이 스윙을 배우고 싶은 경우

BTW, 최고의 온라인 리소스는 하나가 "공식"입니다 화살표를 클릭하면 시각적 인 변화가 생깁니다. 단추는 항상 보이는 영역의 크기로 크기가 조정되므로 스크롤 할 수는 없습니다. 내가 말했듯이, 이것은 좋은 예가 아니며 여기에서 배울 수 없습니다 ...

+0

질문을 편집하려고합니다. – giampaolo

+0

내 대답을 편집했습니다. – lbalazscs

+0

오케이, 오라클 튜토리얼에서 시작, 아이러니하게도 나는 다른 SO + 1'd 답변에서 튜토리얼을 발견했다. – giampaolo

1

코드는 확인하고 bordar는

jScrollPane.setViewportBorder(new LineBorder(Color.RED)); 

빨간색과 링크에있는 이미지 그것은 빨간색 테두리를 볼 OK, 그것은이 발생 잘못된 이미지

+0

스크롤바는 어떻게됩니까? 더 나은 내 질문을 지정하려고합니다. 스크롤 막대가 활성화되어 있지 않습니다. 스크롤 막대가 다른 이유를 알 필요가 없으므로 – giampaolo