태그 : 내부프레임

윈도우 창 속에 윈도우 창 - JInternalFrame.

위에 보이는 이미지는 원도우 창 안에 윈도우 창이 존재하는 이미지 입니다. 보통 포토샵 프로그램에서 여러 이미지를 불러오게 되면 포토샵 프로그램 창 안에 여러가지 이미지들이 각각 따로 배치가 돼 있는 것을 볼 수 있습니다. 오늘은 바로 이와 같이 윈도우 창 안에 윈도우 창을 넣는 방법에 대해서 이야기 해 봅시다.

그럼 위에 이미지를 아주 단순하게 생각을 해 봅시다.

JFrame 안에 JFrame를 넣는다.
이 단순한 생각을 코딩한다면 JFrame.add(JFrame) 이런 방식을 사용한다는 의미 일 것입니다.
그러나 실제로 돌리면 안된다는 것을 알 수 있습니다. 물론 공부를 탄탄히 하셨다면 왜 인지도 알수 있겠지요.

그럼 어떻게 해야 할까요? 방법은 간단합니다 JInternalFrame 클래스를 이용하면 됩니다.
JInternalFrame 클래스에 대한 자세한 정보는 API를 참고하세요.

이용 방법은 간단합니다. add를 이용해서 넣어주면 됩니다.

그러나 여기서 주의해야 할 것이 한가지 있는데..

setSize, setLocation 등 일부 메소드가 먹히지 않는 경우가 발생할 수 있습니다.

그 이유는 바로 레이아웃 메니저에 대한 설정 문제 입니다. 이런 간단한 설명으로는 이해가 부족할 수 있으니 간단한 예제를 통해서 더 자세히 알아보도록 합시다.

import javax.swing.*;

public class Internaltest {

 public static void main(String[] args) {
  JFrame frm = new JFrame("외부 윈도우 창");
  
  JPanel jp = new JPanel();
  frm.setLayout(null);
  // 이 부분이 생각보다 중요할 수 있습니다. 레이아웃 메니저 때문에 원하는 데로 설정이 안될 수도 있습니다.
  // JPanel, JFrame는 기본적인 레이아웃이 다르게 설정 돼 있죠..

  JInternalFrame inter = new JInternalFrame("내부 윈도우 창",false,false,false,false);
    // JInternalFrame 클래스는 생성자가 많으니 API를 잘 참고해야 합니다.

  inter.setSize(200,300);
  inter.setLocation(100, 50);
  inter.setVisible(true);
  
  frm.add(inter);
  frm.setSize(500,500);
  
  frm.setVisible(true);
  
 }
}

간단한 예제이지만 실제로 해보지 않으면 도움이 되질 못합니다. 꼭 해보시길 바랍니다.

by 만성피로 | 2008/11/10 22:42 | 정리할 자료들 | 트랙백 | 덧글(1)

◀ 이전 페이지다음 페이지 ▶