티스토리 뷰

TextArea를 Scrollpane에 사용하여

채팅 프로그램을 사용하던중,

 

채팅이 업데이트 될때마다 스크롤이 위로 올라가서 보기 불편한점을 개선할방법을 알아냈습니다.

 

swing scrollpane 휠 자동다운

마우스 휠을 굴릴때는 스크롤바가 움직이는 것을 허용한다

 

scrollPane.addMouseWheelListener(new MouseWheelListener() {

 

public void mouseWheelMoved(MouseWheelEvent arg0) {

 

scrollpanemove=true;

 

}

 

});

 

 

 

 

스크롤 판넬의 세롯크롤 바의 수정이벤트 리스너를 추가한다

 

scrollPane.getVerticalScrollBar().addAdjustmentListener(new

 

AdjustmentListener() {

 

@Override

 

public void adjustmentValueChanged(AdjustmentEvent arg0) { //

 

수정리스너에서 변수(휠의 길이,위치)가 변경될시 메소드 작성

 

// TODO Auto-generated method stub

 

if(scrollpanemove){ //만약 스크롤 무브가 허용되있을시

 

scrollpanemove=false; //밑으로 내리는 것을 하지않고, 비허용으로 바꾼다.

 

}else{

 

JScrollBar src = (JScrollBar)arg0.getSource();

 

src.setValue(src.getMaximum());

 

}

 

}

 

});

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
    public void go(){
        JFrame main = new JFrame("");
        main.getContentPane().setLayout(null);
        textArea = new JTextArea();
        scrollPane = new JScrollPane(textArea, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);;
        scrollPane.addMouseWheelListener(new MouseWheelListener() {
            public void mouseWheelMoved(MouseWheelEvent arg0) {
            scrollpanemove = true;
            }
            });
        
        scrollPane.getVerticalScrollBar().addAdjustmentListener(new 
                AdjustmentListener() {
                @Override
                public void adjustmentValueChanged(AdjustmentEvent arg0) {
                if(scrollpanemove){ //만약 스크롤 무브가 허용되있을시
                scrollpanemove=false//밑으로 내리는 것을 하지않고, 비허용으로 바꾼다.
                }else{
                JScrollBar src = (JScrollBar)arg0.getSource();
                src.setValue(src.getMaximum());
                }
                }
                });
        main.add(scrollPane);
        main.setVisible(true);
    }
cs


'프로그래밍 > java' 카테고리의 다른 글

Java - TCP/IP Socket  (0) 2015.07.10
java - JMF 다운로드  (0) 2015.07.06
Java잡지식 - 네트워킹  (0) 2015.05.17
Java - 객체지향(7) package & import  (0) 2015.04.13
Java - JOptionpane 입력받기 - 2  (0) 2015.04.05
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함