관리 메뉴

nkdk의 세상

자바 Language 19일째 1번 본문

My Programing/JAVA

자바 Language 19일째 1번

nkdk 2008. 3. 8. 01:14
금일은 mdi 에 대해 배웠죠?
mdi란 부모창과 자식창에 대한 안에 있는 자식창에 대하여 mdi 라고 한다.
multiple document interface 라고 한다. mdi 를 넣는 법에 대해서 배우겠습니다.

// 자 그럼 오늘 내용 갑니다 //////

package Swing;
import java.awt.*;
import java.awt.Event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.event.*;

public class InterFrame extends JFrame implements ActionListener{
JDesktopPane desktop;
JInternalFrame childWin; // 자식창에 들어가는 것은 인터널 프레임이고 이름을 childwin으로
JButton btn=new JButton("클릭");
NaeBu naebu;

public InterFrame() {
setTitle("MDI TEST");
JMenuBar nbar=new JMenuBar();
JMenu mnuFile=new JMenu("파일");
JMenuItem mnuNew=new JMenuItem("새창");
mnuFile.add(mnuNew);
nbar.add(mnuFile);
setJMenuBar(nbar);
mnuNew.addActionListener(this);
btn.addActionListener(this);

desktop=new JDesktopPane();
this.getContentPane().add(desktop);
setBounds(100,100,400,400);
setVisible(true);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

class NaeBu extends InternalFrameAdapter{
public void interFrameClosed(InternalFrameEvent e) {

}

}

public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("새창")) {
if(childWin==null) {
createListen();
desktop.add(childWin);
childWin.setLocation(10, 10);
childWin.show(); // 부모창에서 자식창을 부를때 쇼다.
}
}

if (e.getActionCommand().equals("클릭")) {
JOptionPane.showMessageDialog(this, "난자식창");

}
}

public void createListen() {
childWin=new JInternalFrame("자식창", true, true,true, true); // resize, closed, maximum, minimum
childWin.getContentPane().setLayout(new BorderLayout());
childWin.getContentPane().add("South", btn); // 아래쪽에 버튼 하나 올려 놓는다.
childWin.setSize(300,200);
childWin.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); // 현재 창에서 close를 누르면 dispose 현재 창만 닫는다.
}
public static void main(String[] args) {
new InterFrame();
}
}

오츠까레 사마데시따^^