SWING, AWT, SWT

개발 및 관리/Java 2013. 1. 24. 17:51 posted by HighLighter
반응형

 

SWING, AWT, SWT가 무엇인지 궁금하여 자료를 찾아 보았다.

 

1. SWT, Swing or AWT: 나에게 맞는 것 찾기

 

http://www.dbguide.net/knowledge.db?boardUid=127193&cmd=view

 

http://www.ibm.com/developerworks/kr/library/os-swingswt/

 

2. 기타

http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=1040201&docId=66252926&qb=c3dpbmcgYXd0IO2MqO2CpOyngA==&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=RdvwEU5Y7v4sst5Rd9hsssssssw-492051&sid=UQDwfHJvLBYAAA@An8A

 

http://blog.naver.com/jmoan?Redirect=Log&logNo=173152889

 

http://blog.naver.com/ksh60706?Redirect=Log&logNo=90154263424

 

http://blog.naver.com/zznag222?Redirect=Log&logNo=60175408113

 

http://cafe.naver.com/jobstartgogo/13004

 

http://blog.naver.com/zeroscience?Redirect=Log&logNo=120027739023

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

JTextField  (0) 2013.01.24
Layout Manager  (0) 2013.01.24
Animate.java - Head First Java p.412  (0) 2013.01.24
Head First Java - 12장 GUI 정리  (0) 2013.01.24
MiniMusicPlayer3.java - Head First Java p.406  (0) 2013.01.24

Animate.java - Head First Java p.412

개발 및 관리/Java 2013. 1. 24. 17:26 posted by HighLighter
반응형

사각형이 점짐 작아지는 코드입니다. 내부 클래스를 사용하여 go() 함수에서 for문을 이용하여 사이즈를 줄이면서 repaint()하고 있습니다. 내부 클래스에서는 인스턴스 변수를 접근 할 수 있습니다. 

Animate.java

 

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

Layout Manager  (0) 2013.01.24
SWING, AWT, SWT  (0) 2013.01.24
Head First Java - 12장 GUI 정리  (0) 2013.01.24
MiniMusicPlayer3.java - Head First Java p.406  (0) 2013.01.24
내부 클래스, 버튼 두 개를 처리하는 코드  (0) 2013.01.23

Head First Java - 12장 GUI 정리

개발 및 관리/Java 2013. 1. 24. 17:11 posted by HighLighter
반응형

1. 모든 GUI는 내 손안에 있다. - JFrame

 

2. 모든 이벤트 유형마다 이것이 하나씩 있다. - 리스너 인터페이스

 

3. 리스너의 핵심 메소드 -  actionPerformed();

 

4. 이 메소드로 JFrame의 크기를 결정한다. - setSize();

 

5. 이 메소드에 코드를 추가하긴 하지만 직접 호출하는 일은 절대 없다. - paintComponent();

 

6. 사용자가 어떤 행동을 하면 그것은 이벤트가 된다.

 

7. 대부분 이벤트 소스이다. - 스윙 구성요소

 

8. 데이터를 리스너에 전달하는 역할을 한다. - 이벤트 객체

 

9. addXxxListener() 메소드가 있으면 그 객체는 이벤트 소스이다.

 

10. 리스너를 어떻게 등록하는가? - addActionListener()

 

11. 그래픽 코드가 들어가는 메소드 - paintComponent()

 

12. 보통 어떤 인스턴스에 묶여 있다. - 내부 클래스

 

13. (Graphics g)의 'g'는 사실 이 클래스의 객체이다. - Graphics2D

 

14. paintComponent()를 실행시키기 위해 호출해야 하는 메소드 - repaint()

 

15. 스윙 관련 클래스는 대부분 이 패키지에 있다. - javax.swing

 

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

SWING, AWT, SWT  (0) 2013.01.24
Animate.java - Head First Java p.412  (0) 2013.01.24
MiniMusicPlayer3.java - Head First Java p.406  (0) 2013.01.24
내부 클래스, 버튼 두 개를 처리하는 코드  (0) 2013.01.23
paintComponent  (0) 2013.01.23
반응형

 

 

 

MiniMusicPlayer3.java

프레임을 구축하고 그램 패널을 추가하고 매번 이벤트를 받을 때마다 새로운 직사각형을 긜고 repaint() 메소드를 호출하여 화면을 갱신한다. 그리고 random으로 만든 음을 연주한다. 그리고 프로그램 자체가 아닌 그림 패널에서 ControllerEventListener를 구현한다. 따라서 그림 패널(내부 클래스)에서 이벤트를 받으면 알아서 직사각형을 그릴 수 있다.

 

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

Animate.java - Head First Java p.412  (0) 2013.01.24
Head First Java - 12장 GUI 정리  (0) 2013.01.24
내부 클래스, 버튼 두 개를 처리하는 코드  (0) 2013.01.23
paintComponent  (0) 2013.01.23
Event  (0) 2013.01.23
반응형

 

1. 일반적인 사용

 

 

2. 내부 클래스를 사용하여 외부 클래스에 접근하기

- 버튼의 리스너 등록 메소드에 this가 아닌 다른 리스너 클래스(내부 클래스)를 가지고 만든 객체를 전달한다.

 

 

 

 

TwoButtons.java

 

 

Animate.java

 

결론: 외부 클래스에 버튼이 세 개 있다면 이벤트를 처리하기 위해 서로 다른 내부 클래스 세 개(즉, 서로 다른 내부 클래스 객체 세 개)가 필요하다.

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

Head First Java - 12장 GUI 정리  (0) 2013.01.24
MiniMusicPlayer3.java - Head First Java p.406  (0) 2013.01.24
paintComponent  (0) 2013.01.23
Event  (0) 2013.01.23
Graphics  (0) 2013.01.23

paintComponent

개발 및 관리/Java 2013. 1. 23. 16:25 posted by HighLighter
반응형

 

 자바에서 그림을 그리기 위해서는 JPanel의 하위클래스를 만들고 paintComponent() 라는 메소드를 오버라이드 하면 된다.

 

 그래픽 관련 코드는 모두 paintComponent() 메소드에 들어간다. 이 메소드는 시스템에서 그 위젯을 화면이 표시하기 위해 호출하는 메소드라고 생각하면 된다. 원을 그리고 싶다면 paintComponent() 메소드에 원을 그리기 위한 코드를 넣으면 된다.

 

SimpleGui3C.java

 

 

 

 JPEG 파일 사용하기

 

public void paintComponent(Graphics g) {

 

Image image = new ImageIcon("Angel.jpg").getImage();

g.drawImage(image, 0, 0, this);

}

 

 

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

MiniMusicPlayer3.java - Head First Java p.406  (0) 2013.01.24
내부 클래스, 버튼 두 개를 처리하는 코드  (0) 2013.01.23
Event  (0) 2013.01.23
Graphics  (0) 2013.01.23
순탄지 않았던 그 동안의 이야기  (0) 2013.01.23

Event

개발 및 관리/Java 2013. 1. 23. 14:15 posted by HighLighter
반응형

 1.GUI를 만들 때는 Window를 만들어 하는데, 보통 JFrame을 사용한다.
 ex) JFrame frame = new JFrame();

 

 2.JFrame에 위젯(버튼, 텍스트 필드 등)을 추가할 때는 아래와 같이 한다.
 ex) frame.getContentPane().add(button);

 

 3.Window(JFrame)을 화면에 표시하려면 크기를 지정한 다음 화면에 나타나게 설정해야 한다.
 ex) frame.setSize(300,300):
      frame.setVisible(true);

 

 4.이벤트 소스에 등록할 때는 소스의 등록 메소드를 호출하면 된다. 등록 메소드명은 다음과 같다.
   add<이벤트유형>Listener

 

 5.리스너 인터페이스를 구현할 때는 그 인터페이스에서 선언한 모든 이벤트 처리 메소드를 구현해야 한다.
   이벤트 처리 코드는 리스너의 콜백 메소드에 집어넣으면 된다. 예를 들어 ActionEvent에 대한 메소드는 다음과 같다.
 ex) public void actionPerformed(ActionEvent event) {
         button.setText("Hello World!!!");
       }

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

내부 클래스, 버튼 두 개를 처리하는 코드  (0) 2013.01.23
paintComponent  (0) 2013.01.23
Graphics  (0) 2013.01.23
순탄지 않았던 그 동안의 이야기  (0) 2013.01.23
Exception에 관련된 규칙  (0) 2013.01.22

Graphics

개발 및 관리/Java 2013. 1. 23. 13:58 posted by HighLighter
반응형

1.Graphics 레퍼런스를 가지고 호출할 수 있는 메소드
 drawImage();
 drawLine();
 drawPolygon
 drawRect();
 drawOval();
 fillRect();
 fillRoundRect();
 setColor();

 

2.Graphics 객체를 Graphics2D 레퍼런스로 캐스트하는 방법

 Graphics2D g2d = (Graphics2D) g;

 

3.Graphics2D 레퍼런스를 가지고 호출할 수 있는 메소드
 fill3DRect();
 draw3DRect();
 rotate();
 scale();
 shear();
 transform();
 setRenderingHints()

 

cf. API문서를 확인해보면 다른 메소들도 있음을 알 수 있다.

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

paintComponent  (0) 2013.01.23
Event  (0) 2013.01.23
순탄지 않았던 그 동안의 이야기  (0) 2013.01.23
Exception에 관련된 규칙  (0) 2013.01.22
Exception  (0) 2013.01.22

순탄지 않았던 그 동안의 이야기

개발 및 관리/Java 2013. 1. 23. 11:14 posted by HighLighter
반응형

 

 2008년도 8월 1일에 사회 생활을 시작했다.  개발자로 사회생활을 시작했다. Java 혹은 C++ 같은 객체지향 언어이다. 상속이라는 개념이 있고, 오버라이딩, 오버로딩이라는 개념도 있다. 인스턴스 변수, 지역변수도 있다. 그리고 생성자와 같은 read() 매소드라는 개념도 있다. 어쨌든 객체 지향 언어 개발자로 3년 10개월을 일했다.

 

일을 하면서 개발자로만 일한 것도 아니다. 해당 회사 언어가 한국에서 거의 사용되지 않아 회사에서 짤리면 갈 곳이 없을 것 같아 Oracle Database Server 공부를 시작했다. 여러 권의 서적을 구입하고 그 중 몇 권을 읽고 SQLD, OCP-10g DBA 같은 자격증도 취득하였다. SQLD가 OCP-10g DBA 보다 어렵다. 왜냐??? 덤프가 없기 때문이다. OCP-10g는 덤프만 보고 땄다고 말하기는 어렵다. 그 전에 공부도 많이 했고 Production 운영도 해 보았기 때문이다. Backup & Recovery 관련 책 2권 정도 사서 실습도 해 보았고, 오라클 성능 고도화 원리 I, II를 비롯해 몇 권의 책을 보았다. Database 관련 지식들은 개인적으로 공부한 것들이다.

 

 업무 관련 되서는 생명보험협회에서 주관하는 CKLU도 취득하였다.

 

 그러다가 우물 안 개구리라는 느낌을 받아 어느 해외증권사에 가서 3개월 간 일하다가 한국에 다시 들어 왔다. 그 곳에서 그 동안 혼자 공부한 SQL을 실무에서 활용할 수 있는 수준이 되었다. PRO*C 도 배웠다.

 

 이제는 JAVA를 공부해야 할 때가 왔다. 8년 전 대학교 2학년 때 자바를 약간 공부해 보고 다시 시작하고 있다. 현재 8년 전 책을 다시 펼쳐 보고 있다. 그 때는 무슨 내용인지 이해가 잘 안갔는데, 소위 말하는 Field에서 약간 굴러 먹다가 보니까 그나마 이해가 간다.

 

 외부 학원에서 Language 관련 교육을 받아 본 적은 없지만 요즘 책들이 자세하고 친절하게 설명이 되어 있어서 혼자 공부하기에 무리가 없는 것 같다. 물론, Database 같이 어려운 것은 사전지식이 없으면 혼자 공부하기에 무리가 있다.

 

 앞으로 어떻게 살지는 모르겠지만 아래의 것들을 천천히 접해 보아야 할 것 같다.

 

 Database: MySQL, MS-SQL (Oracle Database는 어느 정도 알고 있다.)
 Language: Java, JSP, Html, Xml,  ASP, CSS
 Framework: Spring, iBatis, JSTL, Struts, Struts2
 기타: AJAX, JQUERY, Hibernate, Miplatform


 

 나중에 쉰살 아니 예순이 넘어서 불러 주는 곳이 없으면 인터넷쇼핑몰과 같은 웹서비스를 구축해서 사업을 해보고 싶다.

반응형

'개발 및 관리 > Java' 카테고리의 다른 글

Event  (0) 2013.01.23
Graphics  (0) 2013.01.23
Exception에 관련된 규칙  (0) 2013.01.22
Exception  (0) 2013.01.22
MathFun.java - parseInt, substring, relpalce (nullChar를 ""으로 바꿈 )  (0) 2013.01.22

Exception에 관련된 규칙

개발 및 관리/Java 2013. 1. 22. 20:37 posted by HighLighter
반응형

 

Exception과 관련된 규칙


1. try없이 catch나 finally만 사용할 수 없다.


void go() {
  Foo f = new Foo();
  f.foof();
  catch(FooException ex) { }
}

 

 

2. try와 catch 사이에 코드를 집어넣을 수 없다.


try {
  x.doStuff();
}
int y = 10;
catch(Exception ex) { }

 

 

3. try 뒤에는 반드시 catch나 finally가 있어야 한다.


   catch 블록이 없어도 fianlly가 있으면 문법적으로 문제가 없다. 그러나 try만 혼자 있는 것은 안된다.

try {
  x.doStuff();
} finally {
  //뒷정리
}

 

 

4. try 뒤에(catch없이) finally만 있으면 예외를 선언해야 한다. try만 있고 catch가 없으면 처리하거나 선언하거나 규칙을 만족시키지 못한다. 이러한 경우는 반드시 Exception 선언을 해야 한다.


void go() throws FooException {
  try {
 x.doStuff();
  } finally { }
}

반응형