Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- flex3
- 책이야기
- C/C++
- 도커
- 명사 뽑아내기
- php thumbnail
- Node.js
- ror실행
- docker
- 주식이야기
- node.js web framework
- 명사 추출기
- 나의 취미
- rss
- 명사 분석기
- Eclipse
- 베트남어
- scala
- ajax
- Lift
- iBatis
- nodejs express
- php
- 디즈니씨
- 메일왕창보내는법
- 스킨 스쿠버
- ejb
- express for node.js
- 나의 프로젝트
- Cross
Archives
- Today
- Total
nkdk의 세상
자바 Language 13일째 2번째 본문
대표적인 컴포넌트는 Frame 이다. 거기에 집어 넣는 것은 패널이다.
스윙은 그 곳에 Jname, Jframe 식으로 넣는다. 컴포넌트에 이벤트를 이용하여 이벤트 핸들러가 수행될 메소드를
실질적인 메소드가 있는 곳으로 넘겨준다.
컴퍼넌트를 이용하여 상황을 주고 받는다. awt 에서 발전된 것은 swing 이다.
2번째로는 AWT에 대해서 설명을 하였습니다. 그곳에서도 Layout 에 대해서 설명을 하였습니다.
package gui;
import java.awt.*;
import java.awt.event.*;
public class LayoutTest extends Frame implements ActionListener{
Button btnGo;
TextField txtBun=new TextField(" ");
TextField txtIrum=new TextField(" "); // 텍스트 상
CardLayout card=new CardLayout(); // CardLayout 을 넣음
Panel pn1=new Panel();
Panel pn2=new Panel();
Panel pn3=new Panel();
Panel pn4=new Panel();
Panel pn5=new Panel();
Panel pn6=new Panel();
GridBagConstraints c; // 그리드백 영역 내에 구조를 설정 할때 사용함.
public LayoutTest() {
this.setLayout(new GridLayout(2,1));
// 그리드의 첫번째 행
Label lbl1=new Label("번호: ");
pn1.add(lbl1); // 패널은 기본적으로 FlowLayOut이다. Frame은 기본적으로 borderLayout이다.
pn1.add(txtBun);
pn1.setBackground(Color.YELLOW);
Label lbl2=new Label("이름:");
pn2.add(lbl2);
pn2.add(txtIrum);
pn2.setBackground(Color.CYAN);
pn3.setLayout(card);
pn3.add("aa",pn1);
pn3.add("bb",pn2); // pn1과 pn2 를 겹치게 만들었다.
btnGo = new Button("확인");
btnGo.addActionListener(this);
pn4.add(pn3); // flowLayout 이다.
pn4.add(btnGo);
pn4.setBackground(Color.RED);
pn5.setLayout(new BorderLayout());
pn5.add("Center", pn4);
pn5.add("East", new Label("동"));
pn5.add("West", new Label("서"));
pn5.add("South", new Label("남", Label.CENTER));
pn5.add("North", new Label("북", Label.CENTER));
// 그리드의 두번째 행에 대한 디자인
pn6.setLayout(new GridBagLayout());
pn6.setBackground(Color.ORANGE);
c=new GridBagConstraints();
c.weightx=1;
c.weighty=1;
c.fill=GridBagConstraints.BOTH; // 채우는 것은 별도의 메소드를 만들어 준다. (layout)
layout(new Button("1"), 0,0,1,1);
layout(new Button("2"), 1,0,1,1);
layout(new Button("3"), 0,1,2,1);
// Frame에 붙이기
this.add(pn5);
this.add(pn6);
//this.add(pn1); // this 는 프레임을 이야기
// this.add(pn2); // this 는 프레임을 이야기
setBounds(200,150,400,300);
setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
// 레이아웃 메소드를 하나 만들어 주었다.
public void layout(Component obj, int x, int y, int w, int h) {
c.gridx=x;
c.gridy=y;
c.gridheight=h;
c.gridwidth=w;
pn6.add(obj, c);
}
public void actionPerformed(ActionEvent ae) {
//if(ae.getSource().equals(btnGo)) // 객체 이름으로 비교도 되고
if(ae.getActionCommand().equals("확인")){ // 메세지를 가지고 비교를 할 수도 있다.
btnGo.setLabel("클릭");
card.show(pn3, "bb");
}
else {btnGo.setLabel("확인");
card.show(pn3, "aa");
}
}
public static void main(String[] args) {
new LayoutTest();
}
}
이게 Layout 의 전부입니다. 오쯔까레 사마데시따~ 모두 수고요 ^_^
스윙은 그 곳에 Jname, Jframe 식으로 넣는다. 컴포넌트에 이벤트를 이용하여 이벤트 핸들러가 수행될 메소드를
실질적인 메소드가 있는 곳으로 넘겨준다.
컴퍼넌트를 이용하여 상황을 주고 받는다. awt 에서 발전된 것은 swing 이다.
2번째로는 AWT에 대해서 설명을 하였습니다. 그곳에서도 Layout 에 대해서 설명을 하였습니다.
package gui;
import java.awt.*;
import java.awt.event.*;
public class LayoutTest extends Frame implements ActionListener{
Button btnGo;
TextField txtBun=new TextField(" ");
TextField txtIrum=new TextField(" "); // 텍스트 상
CardLayout card=new CardLayout(); // CardLayout 을 넣음
Panel pn1=new Panel();
Panel pn2=new Panel();
Panel pn3=new Panel();
Panel pn4=new Panel();
Panel pn5=new Panel();
Panel pn6=new Panel();
GridBagConstraints c; // 그리드백 영역 내에 구조를 설정 할때 사용함.
public LayoutTest() {
this.setLayout(new GridLayout(2,1));
// 그리드의 첫번째 행
Label lbl1=new Label("번호: ");
pn1.add(lbl1); // 패널은 기본적으로 FlowLayOut이다. Frame은 기본적으로 borderLayout이다.
pn1.add(txtBun);
pn1.setBackground(Color.YELLOW);
Label lbl2=new Label("이름:");
pn2.add(lbl2);
pn2.add(txtIrum);
pn2.setBackground(Color.CYAN);
pn3.setLayout(card);
pn3.add("aa",pn1);
pn3.add("bb",pn2); // pn1과 pn2 를 겹치게 만들었다.
btnGo = new Button("확인");
btnGo.addActionListener(this);
pn4.add(pn3); // flowLayout 이다.
pn4.add(btnGo);
pn4.setBackground(Color.RED);
pn5.setLayout(new BorderLayout());
pn5.add("Center", pn4);
pn5.add("East", new Label("동"));
pn5.add("West", new Label("서"));
pn5.add("South", new Label("남", Label.CENTER));
pn5.add("North", new Label("북", Label.CENTER));
// 그리드의 두번째 행에 대한 디자인
pn6.setLayout(new GridBagLayout());
pn6.setBackground(Color.ORANGE);
c=new GridBagConstraints();
c.weightx=1;
c.weighty=1;
c.fill=GridBagConstraints.BOTH; // 채우는 것은 별도의 메소드를 만들어 준다. (layout)
layout(new Button("1"), 0,0,1,1);
layout(new Button("2"), 1,0,1,1);
layout(new Button("3"), 0,1,2,1);
// Frame에 붙이기
this.add(pn5);
this.add(pn6);
//this.add(pn1); // this 는 프레임을 이야기
// this.add(pn2); // this 는 프레임을 이야기
setBounds(200,150,400,300);
setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
// 레이아웃 메소드를 하나 만들어 주었다.
public void layout(Component obj, int x, int y, int w, int h) {
c.gridx=x;
c.gridy=y;
c.gridheight=h;
c.gridwidth=w;
pn6.add(obj, c);
}
public void actionPerformed(ActionEvent ae) {
//if(ae.getSource().equals(btnGo)) // 객체 이름으로 비교도 되고
if(ae.getActionCommand().equals("확인")){ // 메세지를 가지고 비교를 할 수도 있다.
btnGo.setLabel("클릭");
card.show(pn3, "bb");
}
else {btnGo.setLabel("확인");
card.show(pn3, "aa");
}
}
public static void main(String[] args) {
new LayoutTest();
}
}
이게 Layout 의 전부입니다. 오쯔까레 사마데시따~ 모두 수고요 ^_^