JScrollPane 안에 JTextPane의 배열이 있습니다. 내가 언급 한 모든 컴포넌트는 JScrollPane 내부의 JPanel 내부에있다. 프로그램 시작시더 많은 논리적 스크롤 막대로 자바 스크롤
의 JTextPanes 아무도 텍스트를 가지고, 그래서 그들을 위해 스크롤바가 표시되지 않습니다. JPanel에 많은 구성 요소가 있기 때문에 JPanel의 스크롤 막대가 표시됩니다.
커서가 JTextPane 중 하나 위에 있고 스크롤하려고하면 컴퓨터가 JTextPane의 스크롤 막대로 스크롤하려고한다고 생각하기 때문에 아무런 문제가 발생하지 않습니다. 내가 원하는 것은 컴퓨터가 JPanel의 스크롤바로 스크롤하려고한다는 것을 깨닫는 것이다. 이 일을 수행 할 수있는 방법이 있습니까?
감사합니다.
편집 :
당신은 (이 JFrame의 확장 클래스의 생성자입니다 - 좋은 코딩 습관의 많은 무시에 대한 사과를) 현제 코드로 한 유사한 UI를 생산할 수 :
public JFrameTest() {
JPanel panel = new JPanel(new GridLayout(10 , 10 , 10 , 10));
for (int i = 0 ; i < 10 ; i ++) {
for (int j = 0 ; j < 10 ; j ++) {
JScrollPane paneToAdd = new JScrollPane(new JTextPane()) {
/**
*
*/
private static final long serialVersionUID = 1L;
@Override
public Dimension getPreferredSize() {
return new Dimension(100 , 100);
}
};
panel.add(paneToAdd);
}
}
add(new JScrollPane(panel));
setSize(700 , 500);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
을
텍스트 영역에 텍스트가 있고 스크롤 막대가 표시되면 어떻게됩니까? – MadProgrammer
스크롤 막대가 표시되면 텍스트 영역을 스크롤하고 스크롤 막대가없는 경우 JPanel을 스크롤합니다. (즉 스크롤링을하고 갑자기 멈추는) 문제가 있다는 것을 알고 있습니다. 그러나이 두 번째 상황이 더 좋을 것이라고 생각합니다. – user2570465
@MadProgrammer - 죄송합니다. 이전 의견에 알림을 추가하는 것을 잊었습니다. 구성 요소 수신기를 사용하여 JTextPane의 크기를 조정할 때이를 감지하는 방법을 찾았지만 JTextPane의 스크롤 막대가 "존재하지 않는"상태인지 여부를 알 수 없습니다. 그런 방법이 있다면, 구성 요소가 너무 커지면 스크롤바를 "추가"할 수 있다고 생각합니다. – user2570465