[Autopacage] 2009년 5월 6일 첫삽(?) 뜨다.

자바 | 2009.05.06 16:28 | Posted by imesu-문경원
임베디드 보드의 시리언 콘솔은 다양한 역할을 한다.

특히나 디버깅에 상당히 요긴한데, 시리얼 케이블과 몇가지 시리얼 통신 설정만 하여 간단히 디버깅할 수 있다.

그런데 Falinux의 Autopacage이라는 프로그램을 보면 생산을 위한 용도로 사용되고 있다.

예전에도 한번 만들어 볼 생각을 하다가 중도에 그만 두곤 했는데

이벤에 자바SWT를 하면서 다시 진행해 보려는 생각이 문뜩 들었다.

그래서 개발일지를 차근 차근 써 볼까 한다.

현재 대략적은 화면 구성은 마쳤고, 우선을 동일하게 만들었다.



시리얼 콘솔을 이용해서 메시지를 내가 만든 Autopacage에 화면에 뿌리는 일을 진행 중이다.

시리얼 관련 부분은 유영창 선배님이 남든 소스를 가져가다 쓰고 있다. ^^

현재는 [open port] 버튼을 누르면 유영창 선배님이 만든 시리얼 창이 나온다.

시리얼 포트를 열고 장비와 연결하니까.

커널 어떤 메시지가 나온다. 굿~

그런데 화면에 깨져서 나온다. 여기에 대한 보정인 나중에 하고

우선 오늘은 오늘 까지 디버깅 메시지 [Terminal]를 화면에 뿌릴 수 있게 해야지 ~~^^

고고~

[SWT/JFace]범용 리스너 만들기

자바/SWT / JFace | 2009.05.05 16:14 | Posted by imesu-문경원


이전 예제에서 마우스 움직임에 대한 처리를 하기 위해서 MouseTrackListener를 사용하고,
버튼을 눌려 선택하기를 위해서 SelectionListener를 사용했다.

타입이 정해져 있는 이벤트의 경우, 해당 타입이 있는 리스너를 개별적으로 호출하여 사용해야 하는데

내가 원하는 이벤트 타입을 모아서 새로운 타입의 이벤트 리스너를 만드는 방법이 없을까? 궁금했었다.

역시 자바는 실망을 시키지 않았다. handleEvent()를 이용하면 위젯에서 어떤 이벤트가 발생하더라도 처리할 수 있다. ^^



구현 방법


1) 리스너를 만든다. 이때 반드시 handleEvent() 매소드를 재정의한다.  handleEvent() 메소드 내부네 swtich...case문을 이용하여 원하는 처리하고자 하는 이벤트를 추가한다.



2) 컨드롤에 리스너를 등록한다.


글의 마지막 샘플 코드를 보면 이곳에 3가지 이벤트를 추가한 샘플을 볼 수 있다.

    • SWT.MouseEnter
    • SWT.MouseExit
    • SWT.Selection

 
실행 결과  


1) 처음 화면입니다. 버튼을 두개 만듭니다.



2) 왼족 버튼에 마우스 포인터를 이동하여 들어가면 handleEvent() 에서 SWT.MouseEnter의 case문이 호출된다.


3) 왼족 버튼에 마우스 포인터가 빠져 나가면  handleEvent() 에서 SWT.MouseExit의 case문이 호출된다.



4) 오른족 버튼에 마우스 포인터를 이동하여 들어가면 handleEvent() 에서 SWT.MouseEnter의 case문이 호출된다.


5) 오른족 버튼에 마우스 포인터가 빠져 나가면  handleEvent() 에서 SWT.MouseExit의 case문이 호출된다.



6) 왼족 버튼에 마우스 오른쪽 버튼을 클릭하면  handleEvent() 에서 SWT.Selection의 case문이 호출된다.





소스코드 보기



1. 과정



1)  윈도우의 '닫기' 버튼을 누를때 발생하는 이벤트를 처리하기 위해서 리스너를 생성한다.  
여기선 ShellListener 를 생성하였다. 



2) 리스너를 사용했기 때문에, 반드시 해당 리스너(ShellListener)에 속해있는 모든 매서드를 재정의 해야한다.


3. addXXXListenerr에 등록한다. 우리가 사용할 매소드는 shell.addShellListener(shellListener) 이다.




2. 실행결과




1. 닫기 버튼을 누른다.


2. 메시지 박스가 나온다.



3. 전체 소스 보기

[SWT/JFace] 시간 함수

자바/SWT / JFace | 2009.04.29 23:58 | Posted by imesu-문경원


   SimpleDateFormat format = new SimpleDateFormat("yyy-MM-dd HH:mm:ss");    // yyy MM ...등은 이대로 써야한다.
   Date d = new Date();

   String str = format.format(d);    
   System.out.println("현재시간: " + str);    // 현재시간 표시

아래 샘플의 목적은 특정 파일을 읽어 들인 후에 내용을 화면에 뿌리기 위한 목적으로 만든 샘플이다.

1. 실행 결과




1)기본 화면이 뜬다.

2) 파일 열기 버튼을 누르면 아래의 탐색기가 나온다.


3) "file_read.java" 파일을 열어서, 내용을 화면에 표시한다.



2. 소스 분석




 

[자바]이클립스 강좌링크

자바 | 2009.04.26 22:33 | Posted by imesu-문경원

23 [이클립스]  Eclipse용 Ajax Toolkit Framework (한글)
22 [이클립스]  eclipse에 SQLExplorer 추가하기
21 [이클립스]  Eclipse에서 Ruby사용하기.
20 [이클립스]  eclipse 사용시 JSP의 컴파일 경로
19 [이클립스]  JSP 개발환경 구축 이클립스 3.2 + WTP 1.5 + 톰캣 5.5.17
18 [이클립스]  이클립스 3.2 & 한글언어팩 다운로드
17 [이클립스]  Ant 에서 사용하는 xml 정리
16 [이클립스]  Eclipse 에서 유저 코딩 규칙 설정중..
15 [이클립스]  SQL Explorer 사용하기
14 [이클립스]  Eclipse에서 Flex와 PHP로 작업하기
13 [이클립스]   Eclipse 웹 관련 설정
12 [이클립스]  자동 war 풀기
11 [이클립스]  이클립스 디버깅 방법과 자주사용되는 이클립스 기능
10 [이클립스]  Eclipse javadoc주석 설정하기
9 [이클립스]  [이클립스]DBEdit을 이용한 데이타베이스 관리
8 [이클립스]  <이클립스> eclipse 다운로드
7 [이클립스]  이클립스 플러그인 모음
6 [이클립스]  이클립스 팁
5 [이클립스]  이클립스 3.0 단축키 정리
4 [이클립스]  getter setter에서 comment 지우기
3 [이클립스]   이클립스 속도 향상
2 [이클립스]   [플러그인]업데이트 사이트 모음
1 [이클립스]  이클립스에 관한것(마이 이클립스)

[SWT/JFace] 설치하기

자바/SWT / JFace | 2009.04.17 15:22 | Posted by imesu-문경원

SWT/JFace를 설치하면서 궁금한 점이  두가지 있었다.

"어떻게 프로젝트를 만들어야 하는가?"
"추가적인 프로젝트 생성 시 동일한 과정을 번복적으로 이루어져야 하는가" 



 첫번째 질문의 답은 이렇다.
일반적인 java 프로젝트로 만든 후 , SWT/JFace관련 부분인 Build Paeh를 추가해 주어야한다. 
왜냐하면, 이클립스에서는 SWT/JFace 프로젝트를 현재 바로 만들 수 없기 때문이다.

두번째 질문의 답은 반복적으로 해야 한다는 것이다.
많이 번거롭기는 하지만, 이클립스에서는 SWT/JFace 프로젝트를 현재 바로 만들 수 없기 때문에 어쩔 수 없다.
그나마 다행인 것은 첫번째 과정해서 만들어놓은 Build Path를 그냥 사용할 수 있다는 점이다.

아래의 과정을 차근차근 따라가면서 이클립스에서는 SWT/JFace 프로젝트를 만들어 봅시다.


1.일반적인 JAVA Project를 생성한다.





2. 자바 프로젝트를 선택한 후 Next를 누른다.





3. 프로젝트 명을정한다. 난 jazzSWT 라고 프로젝트 명을 설정했다.







4. Libraries를 선택한 후 Add_Varible.. 버튼을 누른다.

  




5.Configure Variables를 누른 후 PATH를 추가한다.

 




6. New 버튼을 누른 후 새로운, PATH를 추가한다. (그림 006.png)

 




7. 아래의 내용을 추가한다. (그림 012.png)

 
 

추가된 PATH

내용

BOOT_LIB

D:/Eclipse/eclipse/plugins/org.eclipse.core.boot_3.1.100.v20060603.jar

COMMAND_LIB

D:/Eclipse/eclipse/plugins/org.eclipse.core.commands_3.2.0.I20060605-1400.jar

COMMON_LIB

D:/Eclipse/eclipse/plugins/org.eclipse.equinox.common_3.2.0.v20060603.jar

JFACE_LIB

D:/Eclipse/eclipse/plugins/org.eclipse.jface_3.2.1.M20060908-1000.jar

RUNTIME_LIB

D:/Eclipse/eclipse/plugins/org.eclipse.core.runtime_3.2.0.v20060603.jar

SWT_LIB

D:/Eclipse/eclipse/plugins/org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar

WORKBENCH_LIB

D:/Eclipse/eclipse/plugins/org.eclipse.ui.workbench_3.2.1.M20060906-0800.jar


만일 프로젝트를 이미 생성한 후 사용 중이라면,  프로젝트 명에서 오른쪽 마우스를 클릭한 후 Properties를 누르면 면 PATH를 추가하는 화면을 찾을 수 있다.
여기서 Add Variable 버튼을 누르면 된다.






8. Class 를 생성하여 샘플 코드를 만들어 보자.

 





9. HellowWorld.java 와 HelloWorldJFace.java Class를 만들었다.


 



10. 샘플 코드를 작성한다.

 

샘플 1)  JFace 이용한 소스 <HelloWorld.java>


import org.eclipse.swt.SWT;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Shell;

import org.eclipse.swt.widgets.Text;

 

public class HelloWorld{

 

       public static void main(String[] args){

             Display display = new Display();

             Shell shell = new Shell(display);

      

             Text helloText = new Text(shell,SWT.CENTER);

             helloText.setText("Hello World!");

      

             helloText.pack();

             shell.pack();

 

             shell.open();

 

             while(!shell.isDisposed()){

                    if(!display.readAndDispatch()) display.sleep();

             }     

             display.dispose();

       }

}


샘플 2)  JFace 이용한 소스 <HelloWorldJFace.java>


import org.eclipse.jface.window.*;

import org.eclipse.swt.*;

import org.eclipse.swt.widgets.*;

 

public class HelloWorldJFace extends ApplicationWindow{

      

       public HelloWorldJFace(){

             super(null);

       }

       protected Control createContents(Composite parent){

             Text HelloWorldJFace = new Text(parent, SWT.CENTER);

            

             HelloWorldJFace.setText("Hello World JFace");

             parent.pack();

             return parent;

       }     

       public static void main(String[] args){

             HelloWorldJFace hw = new HelloWorldJFace();

             hw.setBlockOnOpen(true);        

             hw.open();

             Display.getCurrent().dispose();        

       }

}





11. 컴파일 한다.


 





12. 컴파일 할 것(SWT Application)을 선택한다.






13. 실행 결과

 
<HelloWorld.java>


<HelloWorldJFace.java>


[안드로이드]샘풀코드 Hello Fsp21

안드로이드 | 2009.04.08 14:20 | Posted by imesu-문경원


안드로이드 설치를 마쳤다.
그럼 프로그램을 시작 "Hello World~" 를 찍어보자.
이거 찍으면 절반을 된거잖아. ㅋㅋ


1. 안드로이드 프로젝트 만들기

1) File → Project → Android Project


2) Project name: 에 생성할 프로젝트 이름을 넣는다 → Finush를 누른다.
   난 "HelloFspAndroid" 라도 프로젝트를 생성했다.


3) 위에서 Finush를 누르면 나오는 화면이다. Android Application을 선택한 후 OK버튼을 누른다.

4) 샘플 코드를 작성한다.

아래의 소스는 화면에 Hello,Fsp21 Andoid 를 출력하는 샘플 코드이다.
코드에 대한 설명을 여기선 생략한다.

package androidwave.hello;

import android.app.Activity;
import android.os.Bundle;

import android.widget.TextView;

public class HelloFspAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);       
        TextView tv =new TextView(this);
        tv.setText("Hello, Fsp21 Android");
        setContentView(tv);
    }
}


5) 실행하기-1
소스코드를 작성이 완료되면 Run → Run Configurations 를 선택한 후 몇가지 추가작업을 하자  



5) 실행하기-2
Andorid Applicaion 을 선택 → Launch에서 andoridware.hello.HelloFspAndroid 를 선택 →
Apply → Run

6) 실행 결과
아래는 샘플코드가 실행된 결과이다. RUN버튼을 누른 후 생각보다 많은 시간이 지난 후 아래의 화면이 나오니까 기달려 보자! 체감으로는 3분정도 기다린거 같다. 시간을 재보지 않아서~^^:



다음에 할일
 - 소스코드 분석 및 안드로이드 구조

[안드로이드] 개발 환경 구축

안드로이드 | 2009.04.07 20:12 | Posted by imesu-문경원
안드로이드를 사용하고 싶다면 개발 환경을 구축해야 겠지요!!

자~ 시작해 봅시다.


1. 파일 다운로드

▶ 자바


무료 Java Download를 클릭하고 다운로드 받으면서 바로 설치하세요.


▶ 이클립스

Eclipse IDE for Java Developers (85 MB) 이걸 받았다


▶ 안드로이드 SDK









2. 이클립스 설치 


1) 디렉토리 구성을 아래와 같이 한다.
   eclipse-java-ganymede-SR2-win32.zip 압축을 푼다.





3. 안드로이드 SDK 

1) 압축을 푼다.
    압축을 풀고 난 후 디렉토리 구성은 다음과 같다.




2) 환경변수 설정하기




Path에  C:\Android\android-sdk-windows-1.1_r1\android-sdk-windows-1.1_r1\tools 을 추가한다.


3) 이클립스 시작하기 workspace디렉토리 설정하기




4) 안드로이드 SDK추가 하기 
 
   4-1) Help → Software Update...



   4-3) Avaliable Software → Add Site...
          Location에 주소 추가 : http://dl-ssl.google.com/android/eclipse/



   4-5) Developer Toos 클릭 후 마우스 오른쪽 버튼을 눌른다. →  Install...


   4-6) Next 를 누른다.


   4-7) 라이센스는 accept the terms of license agreements 를 클릭한 후 Finish를 누른다.  


  4-8) Yes를 눌려서 이클립스를 다시 시작한다. 


  4-9) Window -> Preferences


  4-10) SDK Location에 안드로이드를 설치한 경로를 선택한 후 OK클릭


안드로이드 개발 환경이 완료!!!

다음 단계에서 는 샘플코드를 작성해 봅시다.!!!


< 다음에 할일 >
안드이드 샘플 코드 작성 !