레이블이 자바 AWT인 게시물을 표시합니다. 모든 게시물 표시
레이블이 자바 AWT인 게시물을 표시합니다. 모든 게시물 표시

2013년 10월 22일 화요일

[자바상속컴포지션]Java Inheritance & Composition 상속과 컴포지션은 동전의 양면과 같이 유사하게 서로에게 관련이 있다. 상속은 마치 양파가 여러 껍질로 이루어진 것과 같이 계층화된 객체 컴포지션은 여러 재료(객체)가 한데 뭉쳐서 만들어진 죽 컴포지션은 개체들간의 'has a' 관계, 상속은 ‘is a’관계 상속과 컴포지션은 상호 배타적이지 않으며 개발자는 이 둘을 같이 사용한다. 다음 예제는 ‘is a’와 ‘has a’의 착각에는 나오게 되는 실수이다. 1. 원은 반지름 값을 갖는 하나의 점이다(a Circle is a Point with a radius.) 그래서 Circle은 Point를 상속 class Point { private double x, y; Point(double x, double y) { this.x = x; this.y = y; } double getX() { return x; } double getY() { return y; } } class Circle extends Point { private double radius; Circle(double x, double y, double radius) { super(x, y); this.radius = radius; } double getRadius() { return radius; } } 2. 원은 한 점과 반지름을 가지고 있다(a circle has a point and a radius) class Point { private double x, y; Point(double x, double y) { this.x = x; this.y = y; } //redundant code 로 인한 유지보수 어려움(코드의 재사용 실패) double getX() { return x; } double getY() { return y; } } class Circle { private Point p; private double radius; Circle(double x, double y, double radius) { p = new Point(x, y); this.radius = radius; } double getX() { return p.getX(); } double getY() { return p.getY(); } double getRadius() { return radius; } } [출처] 오라클자바커뮤니티 - http://www.oraclejavanew.kr/bbs/board.php?bo_table=LecJava&wr_id=601 오라클자바커뮤니티에서 설립한 개발자교육6년차 오엔제이프로그래밍 실무교육센터(오라클SQL,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의) www.onjprogramming.co.kr [개강확정강좌]오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr) [주말] [10/26]C#,ASP.NET마스터 [10/26]Spring3.X, MyBatis, Hibernate실무과정 [10/27]JAVA&WEB프레임워크실무과정 [평일야간] [10/29]C#,ASP.NET마스터 [10/25]Spring3.X, MyBatis, Hibernate실무과정 [10/31]JAVA&WEB프레임워크실무과정 [주간] [11/4]Spring3.X, MyBatis, Hibernate실무과정 [기타 다른 강좌는 아래 해당 카테고리를 클릭해주세요] JAVA ORACLE iPhone/Android .NET 표준웹/HTML5 채용/취업무료교육 초보자(재학생)코스

[자바상속컴포지션]Java Inheritance & Composition

상속과 컴포지션은 동전의 양면과 같이 유사하게 서로에게 관련이 있다. 
상속은 마치 양파가 여러 껍질로 이루어진 것과 같이 계층화된 객체
컴포지션은 여러 재료(객체)가 한데 뭉쳐서 만들어진 죽
컴포지션은 개체들간의 'has a' 관계, 상속은 ‘is a’관계
상속과 컴포지션은 상호 배타적이지 않으며 개발자는 이 둘을 같이 사용한다.
다음 예제는 ‘is a’와 ‘has a’의 착각에는 나오게 되는 실수이다.

1. 원은 반지름 값을 갖는 하나의 점이다(a Circle is a Point with a radius.)
   그래서 Circle은 Point를 상속

   
   
class Point {
 private double x, y;
 Point(double x, double y) {
  this.x = x;
  this.y = y;
 }
 double getX() {
  return x;
 }
 double getY() {
  return y;
 }
}
class Circle extends Point {
 private double radius;
 Circle(double x, double y, double radius) {
  super(x, y);
  this.radius = radius;
 }
 double getRadius() {
  return radius;
 }
}
 
2. 원은 한 점과 반지름을 가지고 있다(a circle has a point and a radius)
 
class Point {
 private double x, y;
 Point(double x, double y) {
  this.x = x;
  this.y = y;
 }
 //redundant code 로 인한 유지보수 어려움(코드의 재사용 실패)
 double getX() {
  return x;
 }
 double getY() {
  return y;
 }
}
 
class Circle {
 private Point p;
 private double radius;
 Circle(double x, double y, double radius) {
  p = new Point(x, y);
  this.radius = radius;
 }
 double getX() {
  return p.getX();
 }
 double getY() {
  return p.getY();
 }
 double getRadius() {
  return radius;
 }
}

오라클자바커뮤니티에서 설립한 개발자교육6년차 오엔제이프로그래밍 실무교육센터(오라클SQL,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의)  


[기타 다른 강좌는 아래 해당 카테고리를 클릭해주세요]

2013년 9월 29일 일요일

[자바8, JDK1.8,특징새기능>JAVA8 람다식(Lambda) 닷넷에서 제공하는 람다식(닷넷에서는 이름없는 함수를 정의할 때 람다식을 쓰죠)을 JDK1.8에서는 지원한다고 하네요

[자바8, JDK1.8,특징새기능>JAVA8 람다식(Lambda)
닷넷에서 제공하는 람다식(닷넷에서는 이름없는 함수를 정의할 때 람다식을 쓰죠)을 JDK1.8에서는 지원한다고 하네요
예제를보시죠.
 
보통 AWT, SWING에서 이벤트 처리할 때 익명 클래스를 많이 이용하죠.
btn.setOnAction(new EventHandler<ActionEvent>() { 
    @Override 
    public void handle(ActionEvent event) { 
        System.out.println("Hello OnJOracleJava!"); 
    } 
});

==> 람다식을 적용하면
btn.setOnAction( 
    event -> System.out.println("Hello OnJOracleJava!") 
);


 [개강안내]오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)


오라클자바커뮤니티에서 설립한 개발자교육6년차 오엔제이프로그래밍 실무교육센터
(오라클SQL,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의)  


2013년 8월 8일 목요일

[jquery mouse event, 오라클자바교육강좌]click, dblclick, mousedown, mouseup, mouseenter

제이쿼리마우스 이벤트 입니다. 참고하세요
click, dblclick, mousedown, mouseup, mouseenter(경계외부에서 내부로 진입시),


오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)  



 mouseleave(경계내부에서 외부로 이동시), mousemove, mouseout, mouseover

<style>
.outer {width:200px; height:200px; background:red; padding:50px; margin:10px;}
.inner {width:100%; height:100%; background:Yellow;}
</style>
<script src="/ajaxjquery/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
  
$(".outer").mouseover(function() {
//inner에 갔다오는 경우, 외부에서 진입시
$("body").append("<h1>MOUSE OVER</h1>");
}).mouseenter(function() {
//외부에서 집입시
$("body").append("<h1>MOUSE ENTER</h1>");
});
});
</script>
<body>   
<div class="outer">
<div class="inner"></div></div></body>
 
 

자바 AWT에 관하여

이번강좌에서는  AWT(Abstract Windows Toolkit) 프로그래밍에 대해 알아 보겠습니다.

오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의)  





AWT (Abstract Window Toolkit) 프로그래밍

- 윈도우 프로그래밍을 위한 UI 컴포넌트와 보조라이브러리를 모아놓은 툴 킷을 말합니다.
- 모든 윈도우 Component는 Component Class(자바 AWT의 모든 Component들이 가져야 하는 속성과 메소드를 가지고 있슴)로 부터 상속 을 받습니다.
- 이들 Component는 두가지로 구분되는데 다른 Component를 자신안에 둘수 있는 컨테이너, 또 다른 하나는 컨테이너 역할을 할수 없는 단순한 Component 가 있습니다.
- 관련 클래스는 Java.awt Package안에 포함되어 있습니다.
- 일정하게 정해진 모양이 없다는것은 장점 인듯하나 Component의 정렬등 기타 문제점으로 인해 현재는 Swing을 주로 사용 합니다.
- OS마다 사용하는 Window창, Font등이 다르므로 자바에서는 AWT를 제공하며 , 실행될때 각 OS에서 적합한 Component로 대체 됩니다. 현재 OS 의 각 Component를 Peer Component라고 한다.
- AWT 패키지의 각 Component가 생성 되거나 임의의 Container 또는 하위 Class에 등록 되어서 표시 되어야 할 때 해당 Component의 addNotify 메소드가 호출되며 여기 에서는 다시 java.awt.Toolkit의 createButton과 같은 메소드를 사용하여 현재 OS에 상응하는 Peer Component를 생성 합니다.


AWT Component의 종류
1. Window : 경계표시, 타이틀바등이 없는 단순한 사각형 윈도우 Component 자신안에 다른 Component를 담으면서 동시에 자신은 독립적인 윈도우를 생성
2. Frame : 경계표시와 타이틀바를 가지는 윈도우 Component(Window Class를 상속 받음) , 프레임은 실질적으로 사용되는 가장 기본적인 윈도우로 우리가 윈도우라 부르는 것은 보통 이 프레임을 말함
3. Button : 버튼을 표시하는 Component
4. Canvas : 빈 사각형 영역을 나타내는 Component(주로 그래픽이나 이미지를 표현 하는데 사용)
5.CheckBox : 선택된 상태와 선택되지 않은 상태 두가지를 가지는 Component(그룹 화 또는 개별로 존재 가능)
6. Choice : 흔히 팝업메뉴라고 불리는것, 여러요소중 하나를 선택
7.Dialog : 대화상자 윈도우, Frame위에서 작은 윈도우를 하나더 띄움
8.FileDialog : 파일을 선택할수 있는 파일대화상자
9.Label : 문자열을 나타내는데 사용되는 Component
10. List : 여러 개의 텍스트 목록을 나타내는Component(목록에서 하나또는 여러개 선택가능)
11. Panel : 다른 Component를 배치하는데 사용되는 간단한 Container Component, 판넬Panel은 윈도우(프레임) 안에 부착된 여러 컴포넌트들을 비슷한 기능끼리 함께 모아두는 컨테이너 입니다. 이런 점에서, Window 와 그 부속 컨테이너들은 독립된 윈도우를 구성하는 반면, 판넬은 독립적인 창 구실은 할 수 없고, 오로지 기존 윈도우의 한 컴포넌트로서만 사용 됩니다.
12. ScrollBar : 사용자가 어떤 영역안에서 값을 선택할수 있게 해 줍니다.
13. ScrollPane : 다른 Component를 담고서 스크롤바를 움직임에 따라 자동으로 다른 Component의 위치를 변경시켜주는 Component, 스크롤 부착창ScrollPane은 수평 및 수직 스크롤바를 부착하기 위한 창입니다.
14. TextField : 한줄로 된 Text입력 Component
15. TextArea : 여러줄 입력이 가능한 텍스트 입력 Component

종류는 아래와 같습니다.


GUI 프로그램의 구조



아래는 AWT를 이용한 윈도우를 띄우는 샘플 입니다.

import java.awt.*;
public class HelloWindow1 extends Frame {
public HelloWindow1(String title) {
super(title);
}
public static void main(String args[]) {
HelloWindow1 frame = new HelloWindow1("AWT Sample1"); frame.setSize(400,400);
frame.setVisible(true);
}
public void paint(Graphics g) {
g.drawString("HelloWindow1", 150, 150);
}
}

[결과]