전체 글 (204)

  • 2018.01.03
  • 2018.01.03
  • 2017.12.31
  • 2017.12.31
  • 2017.12.31
  • 2017.06.05
  • 2017.02.08
  • 2016.08.15
  • 2016.08.15
  • 2016.08.15
  • 2016.08.11
  • 2016.08.10
  • 01
    03

    tmp

    반응형
    COMMENT
     
    01
    03

    제어문(if문, if~else문, for문, while문)에 관한 내용은 간단한 설명으로 넘어가겠다.



    제어문은 주어진 조건이 참인 경우 명령을 수행하게 된다.



    예를 들어 if문의 경우


    if(조건) {

    명령1;

    명령2;

    또다른명령3;

    {


    if 다음에 있는 소괄호 안의 조건이 '참'이라면 중괄호 { } 안의 명령들을 수행하게 된다.


    if(내가 민수보다 강의실에 먼저 왔다) {

    민수가 앉을 자리를 맡아놓는다;

    민수의 커피도 준비한다;

    민수가 올 때까지 기다린다;

    {


    와 같이, 내가 강의실에 먼저 도착했을 경우 다음과 같은 명령들을 수행하게 되는 것이다.


    실제로 쓰이는 것처럼 바꿔본다면,


    if(A<B) {

    A = B+1;

    B = 0;

    }


    위 내용은 A가 B보다 작은 경우 A는 B보다 1 크게 만들어주고, 그 후 B는 0이 되도록 한다.



    else문은 if의 다음에 쓰여 if문의 조건이 거짓인 경우 사용한다.



    if(조건) {

    명령1;

    명령2;

    {

    else {

    명령3;

    명령4;

    }


    else문 오른쪽에는 소괄호 ( ) 가 붙지 않는다. else 속 중괄호 { } 의 명령이 수행되는 경우는 오직 if문 옆의 (조건)이 '참'이 아닐 경우 수행하게 된다.


    if(오늘도 민수보다 먼저 왔다) {

    민수의 자리를 맡는다;

    민수의 커피도 준비한다;

    민수가 올 때까지 기다린다;

    {

    else {

    민수의 옆자리에 앉는다;

    인사를 한다;

    }


    else문에 포함된 명령 두 개는 민수보다 먼저 오지 않는 경우 수행하도록 프로그램되어 있다.



    else if문은 if문 이후에 쓰인다.


    if(조건) {

    명령1;

    {

    else if(또 다른 조건) {

    명령2;

    }

    else if(또 다른 조건) {

    명령3;

    }

    else {

    명령4;

    }


    else if문은 if문 이후에 쓰인다.


    if문의 조건이 거짓일 경우 else문으로 내려가듯이, 이 경우는 if문의 조건이 거짓이면 else if문의 조건을 따지게 된다.


    else if문이 else문과 다른 점은 또 다른 조건이 붙는다는 것이고


    이게 참이라면 역시 중괄호 { } 안의 내용을 수행하게 된다.


    else if문의 조건이 거짓이라면 중괄호 안의 내용은 무시하고 다음 제어문을 진행하면 된다.


    else문은 없어도 상관 없다.


    if(오늘도 민수보다 먼저 왔다) {

    민수의 자리를 맡는다;

    민수가 올 때까지 기다린다;

    {

    else if(민수와 동시에 도착했다) {

    함께 자리를 찾아 앉는다;

    }

    else {

    민수의 옆자리에 앉는다;

    인사를 한다;

    }






    for문은 반복형 제어문이다.


    for(변수 초기화 ; 조건 ; 갱신내용) {

    명령;

    }


    변수 초기화 : int number=1; 과 같이 변수 선언과 그 값을 지정해준다.


    조건 : 참일 경우 중괄호 { } 안의 명령을 수행하도록 조건을 넣는다.


    갱신내용 : number++; 처럼 반복 한 차례가 끝날 때마다 갱신할 내용을 넣는다.



    for( 배속이 거지이다 ; 만족스럽지 못하다 ; 싸이버거를 먹는다 ) {

    불평을 한다;

    싸이버거를 주문한다;

    }



    초기 상태 : 배속이 거지이다.

    조건 : 만족스럽지 못하다 → 참일 경우 중괄호 { } 내의 명령을 수행한다.

    싸이버거를 먹는다 : 중괄호 내 명령을 수행한 후 행할 명령이다.


    불평을 하고

    싸이버거를 주문하고

    싸이버거를 먹은 후에


    다시 조건문으로 돌아간다.


    ' 나는... 만족스럽지 못한가...? '


    이것이 참일 경우 다시 불평을 하면 된다.


    만족스러울 경우에는 그 시점에서 for문을 종료하면 된다.



    조건문이 참이 아니게 될 때까지 이것을 반복하는 게 for문이다.


    숫자로 예를 들면


    for ( int number=0 ; number<10 ; number++ ) {

    Debug.Log("I have "number" Apples");

    }


    number가 하나씩 증가하며 0Apple부터 9Apple을 출력하는 콘솔창을 볼 수 있게 된다.




    while문은 for문보다 간단하다. 


    while(조건) {

    명령;

    {


    조건이 참인 경우 명령을 수행하며 반복하고 조건이 참을 유지할 경우 계속 반복해주면 된다.


    이 경우, while의 중괄호 { } 안에서 조건을 바뀌게 해주는 명령을 넣는 게 보통이다.


    조건이 바뀌지 않는다면... 무한반복을 하게 될 테니까...





    배열은 변수의 상위호환정도로 생각하면 되겠다.



    변수가 많이 필요한 경우가 있다.


    int number1;

    int number2;

    int number3;
    int number4;
    int number5;
    int number6;
    int number7;
    int number8;
    .

    .


    이런 경우를 포함한 프로그래밍의 단순화를 위해 고안된 것이 '배열'개념이다.


    예를 들어 정수형(int형) 배열의 선언은 다음과 같이 한다.


    int[] number = new int[100];


    여기에서 new는 새롭게 만든다, 마련한다 라는 뜻으로 쓰여 이것을 풀어 쓴다면


    int형 배열number에게 새로운 int형 자리 100개마련한다


    정도가 되겠다.


    위와 같은 문장으로 100개의 정수형 변수를 얻을 수 있고 각각 변수의 이름은


    number[0] 부터 number[99]가 된다.


    number[1]부터가 아님에 주의한다. number[100]은 존재하지 않음에도 주의한다.




    반응형
    COMMENT
     
    12
    31

    유니티에서 사용할 수 있는 스크립트 언어는


    - C#

    - 자바스크립트

    - Boo


    세가지이고, 실습에는 C#을 사용할 예정.




    1. 2D형의 새 프로젝트를 만든다.



    2. 스크립트 파일을 만든다.


    Project뷰에서 마우스 우클릭 후, [Create - C# Script]를 선택


    파일명은 Test로 만들어보자.



    3. 스크립트를 적용할 빈 오브젝트를 생성한다.


    Hierarchy 탭에서 우클릭하여 Create Empty 클릭하여 빈 오브젝트를 생성한다.


    생성했던 Test 스크립트 파일을 GameObject로 드래그 앤 드랍하여 스크립트가 적용되도록 한다.






     스크립트의 편집


    스크립트 파일(Test)의 더블클릭으로 스크립트 편집을 할 수 있다.



    // Use this for initialization 처럼 앞에 [//]를 붙이면 스크립트에 영향을 미치지 않도록 글을 쓸 수 있다.


    1행부터 3행은 유니티에서 스크립트가 동작할 수 있도록 써 주는 것


    5행은 Test 라는 클래스로 스크립트를 관리한다는 의미


    수정할 부분은 8행부터 10행 사이, 그리고 13행부터 15행 사이이다.



    8행~10행에는 스크립트가 시작할 때 '한 번만' 실행하는 명령을 넣고


    13행~15행에는 그 이후 반복적으로 실행할 명령을 넣는다.




    ※ Hello World를 출력하는 스크립트를 작성 해 보자 (파란 글씨 : 추가 또는 수정할 부분)


    void Start() {

    Debug.Log("Hello, World");

    }



    다음과 같이 Debug.Log() 함수는 텍스트를 출력해주는 함수이다.


    큰따옴표 ( " " ) 세미콜론 ( ; ) 과 괄호를 빠뜨리지 않도록 주의한다.


    수정하였으면 [Ctrl + S] 또는 [파일 - 저장]으로 저장해준다.


    유니티 에디터로 돌아와 Console 탭을 클릭 후 상단의 실행 버튼(▶)을 클릭한다.


    콘솔 탭에 Hello, World가 출력된 것을 확인할 수 있다.





    ※ 정수값을 넣을 변수 'number'를 생성 후 숫자값을 넣어 출력 해 보자


    void Start() {

    int number;

    number = 15;

    Debug.Log(number);

    }


    int 는 정수가 들어갈 자리(공간, 박스)를 만들어주고, number은 그 이름이다.


    number = 15; 에서 '='는 '같다' 라는 뜻이 아니다.


    우변의 15를 좌변의 number라는 변수에 대입해준다는 의미이다.


    Debug.Log() 는 마찬가지로 콘솔창에 내용을 출력하는 역할을 한다.


    Hello, World를 출력할 때와 다른 점은, Debug.Log(number) 처럼 변수 그 자체를 넣는 경우는 큰 따옴표( " " )를 넣지 않는다는 것이다.


    int : 정수형

    float : 부동소수점형

    double : 배정도소수점형

    bool : 참/거짓

    string : 문자열


    등 변수로 사용할 수 있는 형태는 여러가지가 있다.




    ※ 정수값의 변수를 이용해 연산을 해 보자


    void Start() {

    int number;

    number = 2 * 8;

    Debug.Log(number);

    }


    void Start() {

    int number1, number2;

    number1 = 3;

    number2 = 8;

    int number3 = number1 * number2;


    Debug.Log(number1 * number2);

    Debug.Log(number3);

    }


    위와 같이 변수끼리의 덧셈, 곱셈 등 사칙연산이 가능하다.


    여기에서 number들은 모두 int 정수형 변수로 선언을 하였으므로 정수값이 답으로 나오게 된다.


    int형끼리의 나눗셈 연산으로


    정수A = 9

    정수B = 2

    정수A / 정수B 를 하게 된다면

    9 나누기 2가 되어 4.5가 답이 되지만


    int 정수C = 정수A / 정수B 로 출력된는 것은

    4.5에서 내림을 한 4이다.


    숫자형 변수의 계산에서 주의해야 할 점이다.



    ※ 몇개 더 쓰이는 연산자들을 알아보자


    A += B;



    A = A + B;


    와 같다.  A에 B를 합산하여 A가 되는 꼴.


    마찬가지로


    -=, *=, /= 도 같은 방법으로 사용한다.




    A++;


    는 A에 1을 더해준다는 의미이다.


    int number=3;

    number++;

    Debug.Log(number);


    와 같이 코드를 입력한다면 출력되는 것은 4가 될 것이다.


    마찬가지로 --도 같은 방법으로 사용할 수 있다.




    string형 문자열끼리 연결하는 연산자는 +를 사용한다.




    문자열과 숫자를 연결하는 연산자도 + 를 사용할 수 있는데, 이 경우 결과로 나오는 것은 문자열로 취급한다.


    string str="Hello, ";

    int number=123;


    string str2 = str + number;

    Debug.Log(str2);


    출력되는 내용은 Hello, 123 일 것이다. 이런 경우 문자열과 숫자를 연결하여 오류는 나지 않는다.

    반응형
    COMMENT
     
    12
    31

    - 오브젝트 생성(큐브 등)

    - 카메라 시점 전환

    - 레이아웃의 변경

    - 물체의 이동, 회전, 크기조절


    등 간단한 조작법

    반응형
    COMMENT
     
    12
    31

    유니티를 사용하여 안드로이드에서 실행할 3D 게임을 만들겁니다.



    유니티 설치

    https://store.unity.com/kr


    JDK 설치

    http://www.oracle.com/technetwork/java/javase/downloads/index.html


    안드로이드 스튜디오 설치

    https://developer.android.com/studio/index.html?hl=kr




    1. 유니티 다운로드 후 설치!


    2. 유니티 설치 중 체크박스에서


     □ Android Build Support


     를 체크!


    3. 유니티 / JDK / 안드로이드 스튜디오 설치를 완료한다!


    4. 유니티 실행해서 Account(계정) 생성 또는 로그인!


    5. 유니티에 Android Studio 경로 설정


      - 유니티 실행 후 도구막대에서

      - 맥일 경우 [Unity] - [Preferences]

      - 윈도일 경우 [Edit] - [Preferences]

      - External Tools 탭에서 Android 밑의 SDK 경로를 입력하는데

      - 맥일 경우 /Users/사용자명/Library/Android/sdk

      - 윈도일 경우 /Users/사용자명/AppData/Local/Android/sdk



    반응형
    COMMENT
     
    06
    05

    유튜브 원본 동영상 및 음원 다운로드가 가능한 프로그램입니다.


    (유튜브 주소 앞에 ss 붙여서 받는 방법 있었는데, 원본영상은 이제 다운로드 못하더군요....)



    매우 직관적인 프로그램이라 사용법 읽을 필요도 없는 프로그램입니다.



    4K Video Downloader 다운로드 https://www.4kdownload.com/download








    반응형
    COMMENT
     
    02
    08

    본 가이드의 90프로 이상은 다음 사이트(https://dive2freenet.appspot.com/)의 번역으로 작성되었음을 알려드립니다.

    현재 작업중인 포스팅입니다

    ▒▒▒▒▒목차▒▒▒▒▒

     시작하며

     프리넷의 설치

     프리넷의 초기 설정

     FMS

     Frost

     다운로드와 업로드

     Freemail

    ※ 관련 사이트

     한글로 작성된 프리넷 관련 정보

     참고 사이트



    ❏ 시작하며

    프리넷에 대해 일본어, 한국어로 작성된 정보를 인터넷에서 거의 찾을 수 없기 때문에 가이드를 만들어 보았습니다.

    본 가이드는 「일단 실행만 되면 좋겠다」는 사람들을 위해 만들어졌습니다.

    가이드를 읽고 난 후에는

    º  프리넷의 설치와 초기설정 완료

    º  프리사이트(freesite : 프리넷 기반 사이트)에 엑세스

    º  파일의 다운로드와 업로드 가능

    º  익명게시판 시스템(FMS, Frost)의 이용

    º  익명 이메일 시스템(Freemail)의 이용

    을 할 수 있게 됩니다. 아마.

    윈도우즈 기반의 사용자를 위한 가이드지만 맥과 리눅스 사용자에게도 참고가 될 것이라고 생각합니다.


    ※ 주의

    프리넷을 사용하여 저작물을 무단 업로드, 다운로드 하는 것은 불법입니다. 절대로 하지 말아주십시오. 프리넷은 어디까지나 검열이 없는 자유로운 정보공유를 위해 만들어졌음을 알립니다.

    본 사이트는 익명네트워크를 통해 이루어지는 위법행위를 조장하는 것이 아닙니다.본 사이트의 정보가 당신의 표현의 자유, 자유로운 정보공유에 도움이 되기를 바랍니다.

    프리넷의 이용 중 발생한 트러블에 대해서는 본 사이트 관리인은 일절의 책임을 지지 않습니다. 이용에 대해서는 본인이 책임을 져 주시기 바랍니다.



    ❏ 프리넷의 설치

    자바 실행환경(JRE)의 인스톨

    프리넷은 자바가 사용된 소프트웨어이기에 실행에는 JRE가 필요합니다.

    JRE의 인스톨이 완료되지 않았다면 JAVA공식페이지(http://java.com/ja/download/)에서 RE인스톨러를 다운로드하여 설치해 주시기 바랍니다.


    ※ JRE의 설치 여부 체크

    (http://java.com/ja/download/installed.jsp)


    프리넷 인스톨러의 다운로드

    먼저 프리넷 공식페이지(https://freenetproject.org/)에서 프리넷 인스톨러를 다운로드합니다.


    프리넷의 설치

    인스톨러를 실행하여 프리넷의 설치를 시작합니다.


    1. 설치폴더 지정(Installation directory)

    여기서 프리넷을 설치할 폴더를 지정합니다.

    「Browse」를 클릭하여 설치폴더를 지정해 주십시오.


    ※ 기본값으로 「C:¥Users¥유저명¥AppData¥Local¥Freenet」에 설치되지만 프리넷은 HDD에 과부하가 걸리므로 시스템 드라이브(C드라이브) 이외의 장소에 설치하는 것을 추천합니다. 가능하다면 프리넷용 HDD를 별도로 준비하여 그곳에 설치하는 것이 제일입니다.


    2. 그 외의 설정(Additional settings)

    프리넷을 시작프로그램으로 등록하고 싶지 않다면 「Start Freenet on Windows startup」의 체크를 해제하여 주십시오.


    3. 설치 시작

    설정을 모두 하였다면 「Install」을 클릭하여 설치를 시작합니다.

    「Installation finished successfully!」의 안내창이 표시된다면 설치 성공입니다.


    ❏ 프리넷의 초기 설정

    설치가 끝났다면 다음은 초기설정을 합니다.


    1. 프리넷을 실행

    시작메뉴의 「Start Freenet」를 클릭하여 프리넷을 기동합니다.


    2. 프리넷의 관리페이지를 연다

    시작메뉴의 트레이창에서 토끼모양()의 아이콘을 우클릭하여 「Open Freenet」을 클릭합니다. 프리넷의 관리페이지(http://localhost:8888/)가 인터넷 브라우저에서 열리게 됩니다.


    3. 초기설정 위자드에 따라 설정을 진행한다

    「세큐리티를 수동으로 설정한다」를 클릭합니다.

    환경에 따라서는 브라우저 세큐리티 권고창이 뜨게 되는데 무시하고 넘어가도 상관 없습니다.

    자동갱신은 기본값(Freenet을 자동으로 최신버전을 유지)인 채로 괜찮습니다. 플러그인은 「Universal Plug and Play (UPnP)를 적용한다」의 체크를 해제해 줍니다.

    ※ UPnP는 자동으로 포트를 개방하는 기능이지만 환경에 따라 작동하지 않을 수 있습니다. 그래서 기능을 무효화하고 수동으로 포트를 개방합니다.

    (수동으로 포트개방 하는 방법을 어떻게 해도 모르겠다면 UPnP 적용에 체크를 하여 자동개방기능이 제대로 작동되기를 기도합시다.)

    「제3자와의 접속」을 선택합니다

    「표준」을 선택합니다

    「낮음」을 선택합니다

    HDD의 여유공간을 생각하며 적절한 용량을 설정합니다. 데이터 저장공간은 여유가 된다면 가능한 많은 용량을 선택하는 것을 추천합니다.

    프리넷은 대역폭 제한을 두는 것이 가능하나 이번에는 「No」를 선택합니다.

    「전송 레이트 제한」은 인터넷 회선속도에 따라 적절한 것을 선택합니다.

    어지간히 느리지 않다면 100메가비트(광섬유)를 선택하셔도 괜찮습니다.

    초기설정 위자드는 이것으로 끝입니다.


    4. 포트 개방

    관리페이지의 상단 메뉴의 「상태」 → 「인터넷 접속」 으로부터 「인터넷 접속 상황 페이지」(http://localhost:8888/connectivity/)를 엽니다.

    페이지 하단의 「접속」에 표시되어 있는 「Darknet port」와 「Opennet port」의 두개의 UDP포트를 개방 해 봅시다. 프로토콜이 TCP가 아니라 UDP라는 점을 주의하여 주십시오.

    포트개방의 방법은 루터의 기종에 따라 달라지므로 그에 관한 설명은 루터의 메뉴얼이나 포트 개방 가이드을 참고해 주시기를 바랍니다.

    (초기설정 위자드의 플러그인 설정에서 「UPnP를 적용」에 체크하였다면 포트 개방 작업은 필요 없습니다.)

    포트를 개방하였다면 다시 「인터넷 접속 상황 페이지」(http://localhost:8888/connectivity/)를 엽니다.

    「UDP Opennet Port」의 상태가 「아마도 포트를 불러오는 중입니다(おそらくポートフォワードされています)」라고 표시된다면 포트의 개방은 성공입니다.


    5. 동작확인

    여기까지 프리넷의 설치와 초기설정은 모두 끝났습니다. 마지막으로 프리넷이 정상적으로 작동하는지 확인 해 봅시다.

    포트를 개방한 상태로써 곧(수 분에서 수십분) 프리넷을 실행하면 관리페이지 하단에 있는 접속수를 표시하는 수치(사진에서 70)가 서서히 증가합니다.

    접속수가 어느정도 증가했다면 관리페이지에는 처음부터 등록되어있는 프리사이트 몇몇에 엑세스 해 봅시다.

    「Freenet Message System」을 클릭 해 봅시다.

    ※ 프리사이트는 익명네트워크 기반으로 작성된 웹사이트를 말합니다. 통상의 웹사이트가 존재하는 인터넷 공간과 단절된 네트워크 공간에 존재하기 위해 프리넷이 실행되고 있지 않은 상태에서는 엑세스가 불가능합니다.

    통상의 웹 사이트의 접속과 비교하면 프리사이트의 접속은 더 시간이 오래 걸립니다. (수초에서 수분)

    조금 더 기다려 프리사이트가 제대로 화면에 나타났다면 프리넷이 정상적으로 동작하고 있는 것입니다.


    6. 정리

    여기까지 프리넷의 설치, 초기설정, 동작확인을 완료했습니다. 수고하셨습니다. 이것으로 당신은 프리사이트에 자유롭게 엑세스하는 것이 가능해졌습니다.

    프리넷의 설치만으로는 간단한 네트워크 기능 (프리사이트를 열람한다던가 하는)밖에 할 수 없습니다. 게시판 등의 커뮤니케이션도구를 이용하고 싶다면 아래에 설명하고 있는 FMS나 Frost같은 프론트엔드의 설치가 필요합니다.


    ❏ FMS(게시판 시스템 1)

    FMS(Freenet Message System)는 프리넷의 익명네트워크를 이용한 게시판 시스템입니다. 스팸이나 DoS공격에 더 안전하도록 설계되어있습니다. 

    프리넷 개발자는 FMS의 이용을 추천하고있습니다만 현재 FMS를 사용하는 일본인과 한국인은 적은 듯 합니다.


    FMS의 도입

    FMS의 도입 방법은 프리넷 일본어위키(프리사이트)FMS의 소개(프리사이트)에 설명되어있습니다.

    프리사이트는 프리넷을 기동하고있지 않다면 사용할 수 없습니다.


    FMS의 보드(게시판)

    FMS에는 여러가지의 보드(게시판)이 존재하고 있습니다만 가볍게 시작할 수 있도록 일본인이 많은 게시판을 추천 해 드리겠습니다.

    보드명

    용도

     jp.junk 

     의논, 잡담

     jp.test

     투고를 테스트한다

     jp.boards

     게시판 공지

    보드에 올라온 메시지의 내용을 알기 위해서는 시간이 걸립니다.(수 분에서 수십분) 또한 과거의 메시지를 모두 불러오기 위해서는 상당히 (몇주에서 1개월가량) 오랜 시간이 걸립니다. 프리넷과 FMS 둘 다 기동한 상태에서 기다려봅시다.

    보드의 열람은 「Board Maintenance」페이지(http://localhost:8080/boards.htm)에 자동적으로 표시됩니다. 여기도 메시지를 불러오는 것과 같이 시간이 걸립니다.

    일본어 보드의 열람은 FMS의 「jp.boards」의 과거에 투고한 내용이나 '프리사이트의 정리'같은 글도 투고되므로 참고 바랍니다. 「jp.boards」에 '~~에 대해 이야기하는 보드를 알고 싶습니다'정도의 제목으로 메시지를 쓰셔도 괜찮습니다. 친절한 누군가가 알려줄테니까요.


    FAQ

    Q. 아무리 기다려도 메시지가 나오지 않습니다.

    A. FMS관리화면()의  Option > Advance 페이지()를 열어 「Freenet Connection」의 항목에 있는 「DefaultRequestPriorityClass」를 「0 - Emergency」로 설정하여 화면 최하단에 있는 「Save」 버튼을 클릭하여 설정을 보존한 후에 FMS를 재기동 해 봅시다.


    ❏ Frost(게시판 시스템 2)



    ❏ 다운로드와 업로드


    ❏ Freemail






    https://namu.wiki/w/Freenet

    https://ko.wikipedia.org/wiki/%ED%94%84%EB%A6%AC%EB%84%B7

    https://kldp.org/node/112917

    http://www.rfa.org/korean/help/Censorship-05272011164246.html


    https://dive2freenet.appspot.com/




    반응형
    COMMENT
     
    08
    15

    MenuT.java


    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    //상단에 메뉴바를 생성한다
    //메뉴 아이템 >> 메뉴 항목 >> 메뉴바 >> 프레임
     
    import java.awt.*;
    import java.awt.event.*;
     
    public class MenuT{
        private Frame f;
        private MenuBar bar;
        private Menu file, edit;
        private MenuItem open, save, saveas, printexit;
        private MenuItem cut, paste, clear;
        
        public MenuT(){
            //프레임 생성 및 윈도우 종료
            f=new Frame("Menu Test");
            f.addWindowListener(new WindowAdapter(){
                public void windowClosing(WindowEvent e){
                    System.exit(0);
                }
            });
            
            //메뉴바, 메뉴항목, 메뉴아이템을 초기화한다
            bar=new MenuBar();
            
            file=new Menu("File");
            edit=new Menu("Edit");
            
            open=new MenuItem("Open");
            save=new MenuItem("Save");
            saveas=new MenuItem("Save as");
            print=new MenuItem("Print");
            exit=new MenuItem("Exit");
            cut=new MenuItem("Cut");
            paste=new MenuItem("Paste");
            clear=new MenuItem("Clear");
            
            //메뉴항목에 아이템과 구분선을 넣는다
            file.add(open);
            file.add(save);
            file.add(saveas);
            file.addSeparator();
            file.add(print);
            file.addSeparator();
            file.add(exit);
            edit.add(cut);
            edit.add(paste);
            edit.addSeparator();
            edit.add(clear);
            
            //메뉴바에 메뉴항목을 추가한다
            bar.add(file);
            bar.add(edit);
            
            //프레임에 메뉴바를 추가하고 프레임의 설정을 한다
            f.setMenuBar(bar);
            f.setSize(400,200);
            f.setVisible(true);
        }
        
        public static void main(String[] args){
            MenuT mt=new MenuT();
        }
    }
    cs


    <실행결과>



    반응형

    'Dev > JAVA' 카테고리의 다른 글

    mvn명령어(Maven 설치)  (0) 2020.08.08
    [JAVA] 스크롤바 생성  (0) 2016.08.15
    [JAVA] 선택창 생성  (0) 2016.08.15
    [JAVA] 체크박스 생성  (0) 2016.08.11
    [JAVA] 리스트 생성  (0) 2016.08.10
    COMMENT
     
    08
    15

    ScrollbarT.java


    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
    32
    33
    34
    35
    36
    37
    38
    //프레임에 스크롤바를 생성한다
     
    import java.awt.*;
    import java.awt.event.*;
     
    public class ScrollbarT{
        private Frame f;
        Scrollbar bar1, bar2, bar3, bar4, bar5;
        
        public ScrollbarT(){
            f = new Frame();
            f.addWindowListener(new WindowAdapter(){
                public void windowClosing(WindowEvent e){
                    System.exit(0);
                }
            });
            
            //좌측부터 차례대로 (스크롤 할 방향,초기위치,스크롤바가 표시하는 화면 크기,화면의 넓이 최소값,화면의 넓이 최대값)
            bar1=new Scrollbar(Scrollbar.HORIZONTAL, 010025);
            bar2=new Scrollbar(Scrollbar.HORIZONTAL, 0300300);
            bar3=new Scrollbar(Scrollbar.HORIZONTAL, 0100300);
            bar4=new Scrollbar(Scrollbar.VERTICAL, 01500250);
            bar5=new Scrollbar(Scrollbar.VERTICAL, 0500250);
            
            f.add(bar1,"North");
            f.add(bar2, "South");
            f.add(bar3, "Center");
            f.add(bar4, "East");
            f.add(bar5, "West");
            
            f.setSize(500400);
            f.setVisible(true);
        }
        
        public static void main(String[] args){
            ScrollbarT sbt=new ScrollbarT();
        }
    }
    cs






    <실행결과>







    반응형

    'Dev > JAVA' 카테고리의 다른 글

    mvn명령어(Maven 설치)  (0) 2020.08.08
    [JAVA] 프레임에 메뉴를 생성  (0) 2016.08.15
    [JAVA] 선택창 생성  (0) 2016.08.15
    [JAVA] 체크박스 생성  (0) 2016.08.11
    [JAVA] 리스트 생성  (0) 2016.08.10
    COMMENT
     
    08
    15

    ChoiceT.java


    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    //choice를 사용하여 선택창을 생성
     
    import java.awt.*;
    import java.awt.event.*;
     
    public class ChoiceT{
        //프레임 변수와 초이스 변수 생성
        private Frame f;
        Choice choice;
        
        public ChoiceT(){
            //프레임 생성, 프레임 닫기
            f=new Frame("Choice Test");
            f.addWindowListener(new WindowAdapter(){
                public void windowClosing(WindowEvent e){
                    System.exit(0);
                }
            });
            //초이스 변수 초기화 및 항목 추가
            choice = new Choice();
            choice.add("E-1");
            choice.add("E-2");
            choice.add("E-3");
            choice.add("E-4");
            
            //생성한 패널에 레이블과 초이스를 넣는다
            Panel p = new Panel();
            p.setLayout(new BorderLayout());
            p.add(new Label("マクロを実行する海域を選択してください", Label.CENTER),"North");
            p.add(choice, "Center");
            
            //프레임의 설정
            f.setLayout(new FlowLayout());
            f.add(p);
            f.setSize(350150);
            f.setLocation(600300);
            f.setVisible(true);
        }
        
        //main함수에서 ChoiceT()를 호출한다
        public static void main(String[] args){
            ChoiceT ct = new ChoiceT();
            
        }
    }
    cs




    <실행결과>




    반응형

    'Dev > JAVA' 카테고리의 다른 글

    [JAVA] 프레임에 메뉴를 생성  (0) 2016.08.15
    [JAVA] 스크롤바 생성  (0) 2016.08.15
    [JAVA] 체크박스 생성  (0) 2016.08.11
    [JAVA] 리스트 생성  (0) 2016.08.10
    [JAVA] TextArea(텍스트에어리어) 생성  (0) 2016.08.10
    COMMENT
     
    08
    11


    CheckboxT.java


    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    //체크박스를 생성한다
     
    import java.awt.*;
    import java.awt.event.*;
     
    public class CheckboxT{
        Frame f;
        
        //체크박스 변수와 체크박스그룹변수를 선언한다
        Checkbox item1, item2, item3;
        Checkbox ship1, ship2, ship3;
        CheckboxGroup cg;
        
        public CheckboxT(){
            //프레임 생성
            f=new Frame("Checkbox Test");
            //윈도우 종료
            f.addWindowListener(new WindowAdapter(){
                public void windowClosing(WindowEvent e){
                    System.exit(0);
                }
            });
            //체크박스그룹 생성, 그룹 안의 체크박스 중 단일선택만 가능
            cg=new CheckboxGroup();
            
            //체크박스 생성 및 세팅, true면  초기세팅이  체크됨으로 표시
            item1=new Checkbox("12.7cm連装砲B型改二");
            item2=new Checkbox("10cm連装高角砲");
            item3=new Checkbox("61cm四連装(酸素)魚雷");
            
            item1.setState(true);
            
            ship1=new Checkbox("島風 改",cg,false);
            ship2=new Checkbox("時雨 改二",cg,false);
            ship3=new Checkbox("Верный",cg,true);
            
            //p1은 다중선택, p2에는 단일선택이 가능한 체크박스를 넣는다
            Panel p1=new Panel();
            Panel p2=new Panel();
            
            p1.add(item1);
            p1.add(item2);
            p1.add(item3);
            
            p2.add(ship1);
            p2.add(ship2);
            p2.add(ship3);
            
            //프레임 세팅
            f.setLayout(new FlowLayout());
            f.add(p1);
            f.add(p2);
            f.setSize(550120);
            f.setVisible(true);
        }
        
        public static void main(String[] args){
            CheckboxT cbt=new CheckboxT();
        }
        
    }
    cs


    <실행결과>



    반응형

    'Dev > JAVA' 카테고리의 다른 글

    [JAVA] 스크롤바 생성  (0) 2016.08.15
    [JAVA] 선택창 생성  (0) 2016.08.15
    [JAVA] 리스트 생성  (0) 2016.08.10
    [JAVA] TextArea(텍스트에어리어) 생성  (0) 2016.08.10
    [JAVA] 텍스트필드 생성  (0) 2016.08.10
    COMMENT
     
    08
    10

    ListT.java


    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    //List창을 만든다
     
    import java.awt.*;
    import java.awt.event.*;
     
    public class ListT{
        //프레임변수와 리스트 변수 선언
        private Frame f;
        private List l1,l2;
        
        public ListT(){
            //프레임 생성
            f=new Frame("List Test");
            //윈도우 종료
            f.addWindowListener(new WindowAdapter(){
                public void windowClosing(WindowEvent e){
                    System.exit(0);
                }
            });
            //리스트 생성
            l1=new List(10);
            l2=new List(10,true); //다중선택을 가능하게 true로 설정
            
            //l1에 항콕(item)을 추가
            l1.add("Ramen");
            l1.add("Pizza");
            l1.add("chicken");
            
            //l2에 항목을 추가
            l2.add("Orange Juice");
            l2.add("Calpice");
            l2.add("Cola");
            
            //패널을 만들어 레이블과 리스트를 넣는다
            Panel p1=new Panel();
            Panel p2=new Panel();
            Panel p3=new Panel();
            
            p1.setLayout(new BorderLayout());
            p1.add(new Label("Lunch",Label.CENTER), "North");
            p1.add(l1, "Center");
            
            p2.setLayout(new BorderLayout());
            p2.add(new Label("Drink",Label.CENTER), "North");
            p2.add(l2, "Center");
            
            p3.add(p1);
            p3.add(p2);
            
            f.add(p3);
            
            //선택한 항목을 화면에 표시한다
            System.out.println("Lunch : "+l1.getItem(0));
            System.out.println("Drink : "+l2.getItem(0));
            System.out.println("item Count : "+l1.getItemCount()+" "+l2.getItemCount());
            
            //l1의 모든 아이템을 String[]에 할당하고 화면에 출력한다
            String[] items=l1.getItems();
            for(int i=0;i<items.length;i++){
                System.out.println(items[i]);
            }
            
            //프레임 사이즈 설정 및 화면출력
            f.setSize(400,300);
            f.setVisible(true);
        }
        
        public static void main(String[] args){
            ListT lt=new ListT();
        }
    }
    cs



    <실행결과>


    이게 원래 실행된 자바"List Test"창에서 선택을 하면, 콘솔창에서도 선택한 아이템 따라서 바뀌어야 할 것 같은데,


    왠지 바뀌지를 않는군요 ㅠㅠ





    반응형

    'Dev > JAVA' 카테고리의 다른 글

    [JAVA] 선택창 생성  (0) 2016.08.15
    [JAVA] 체크박스 생성  (0) 2016.08.11
    [JAVA] TextArea(텍스트에어리어) 생성  (0) 2016.08.10
    [JAVA] 텍스트필드 생성  (0) 2016.08.10
    [JAVA] 프레임에 버튼 배치하기-5-(CardLayout)  (0) 2016.08.10
    COMMENT