하얀종이
208
2019-12-12 18:41:47
1
226

getContentPane() 및 Container 클래스 질문있습니다.


스윙으로 폼 만들고 있었는데요 프린트를 해야하는데 막혀버렸습니다...

일단 레이아웃 설정 이렇게 했는데요

    GroupLayout layout = new GroupLayout(getContentPane()); 
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup();
    layout.setVerticalGroup();

신기한건 소스에 Container객체를 생성 안했는데 그냥 getContentPane()을 호출하면

지금 layout 세팅값을 받아서 화면에 뿌려주더라고요...



근데 문제가..  위의 소스에 layout.set...() 두개의 메서드 안에 따로 출력해야 하는 

JScrollPane의 객체가 포함되있습니다.

  그래서 Container를 만들고 layout2에 JScrollPane의 값을 가져오려고 했습니다.

  Container pane = new Container();
  GroupLayout layout2 = new GroupLayout(pane);


출력용 Container를 만들고 layout2에 JScrollPane의 값을 가져오려고 했으나


    pane.setLayout(layout2); 
    layout2.setHorizontalGroup(layout2.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(listBuildingInfo, GroupLayout.PREFERRED_SIZE, 1020, GroupLayout.PREFERRED_SIZE));
    layout2.setVerticalGroup(layout2.createParallelGroup(GroupLayout.Alignment.LEADING).addComponent(listBuildingInfo, GroupLayout.PREFERRED_SIZE, 401, GroupLayout.PREFERRED_SIZE));


이런식으로 선언했는데 출력물이 하얗습니다...


또 다른 방법으로는..

getContentPane()가 현재의 frame을 얻는 듯 하여 (두 개의 다른 Container 객체를 생성 후 진행..)

기존 소스에서 getContentPane() 자리에 새로 만든 Container 객체를 넣고 (화면출력용 Container 객체)

출력용 Container 만들고 (프린트용 Container 객체)

layout2를 선언해서 세팅 했지만 실패....(창이 매우매우 작아지고 객체 출력x)


또 다른 방법으로는...

사실 정말 필요한 데이터는 JScrollPane 안에 JTable 객체를 출력해야 하므로

JTable 객체를 가져와도 출력이 안됩니다... 


다른 레이아웃인데도  addComponent() 하면 복사되는게 아니라 이동되서 다른 레이아웃에 붙여지는거 같은 느낌인데요 ;;;;;

방법이 있을까요????


0
  • 답변 1

  • 하얀종이
    208
    2019-12-13 11:43:41

    .... 제가 또 스스로 알아냈네요

    JTable 객체에 print() 메서드가 있네요....

    사용하니 pageing 처리까지 알아서... 깔끔하게.... 

  • 로그인을 하시면 답변을 등록할 수 있습니다.