import java.awt.*;
import java.awt.event.*;

public class EventHomeWork extends Frame implements ItemListener{
Panel p1, p2, p3;
CheckboxGroup g1;
Checkbox rdoThree, rdoFour;
Checkbox chkRed, chkYellow, chkLeft, chkGreen;
Button btnRed, btnYellow, btnLeft, btnGreen;
public EventHomeWork() {
addWindowListener(new WinClosing(this));
p1 = new Panel();
p2 = new Panel();
p3 = new Panel();
chkRed = new Checkbox("빨강");
chkYellow = new Checkbox("노랑");
chkLeft = new Checkbox("좌회전");
chkGreen = new Checkbox("초록");
g1 = new CheckboxGroup();
rdoThree = new Checkbox("3등식", g1, false);
rdoFour = new Checkbox("4등식", g1, true);
btnRed = new Button("빨강");
btnYellow = new Button("노랑");
btnLeft = new Button("<-");
btnGreen = new Button("초록");
p1.add(rdoThree);
p1.add(rdoFour);
p2.add(chkRed);
p2.add(chkYellow);
p2.add(chkGreen);
p2.add(chkLeft);
p3.setLayout(new GridLayout(1, 4));
p3.add(btnRed);
p3.add(btnYellow);
p3.add(btnGreen);
p3.add(btnLeft);
add("North",p1);
add("Center",p2);
add("South",p3);
rdoThree.addItemListener(this);
rdoFour.addItemListener(this);
chkRed.addItemListener(this);
chkYellow.addItemListener(this);
chkGreen.addItemListener(this);
chkLeft.addItemListener(this);
}
@Override
public void itemStateChanged(ItemEvent e) {
Checkbox cb = (Checkbox)e.getSource();
switch(cb.getLabel()){
case "3등식" :
chkLeft.setVisible(false);
break;
case "4등식" : 
chkLeft.setVisible(true);
break;
case "빨강" :
if(cb.getState() == true){
btnRed.setBackground(Color.red);
}else{
btnRed.setBackground(new Color(234,234,234));
}
break;
case "초록" :
if(cb.getState() == true){
btnGreen.setBackground(Color.green);
}else{
btnGreen.setBackground(new Color(234,234,234));
}
break;
case "노랑" :
if(cb.getState() == true){
btnYellow.setBackground(Color.yellow);
}else{
btnYellow.setBackground(new Color(234,234,234));
}
break;
case "좌회전" :
if(cb.getState() == true){
btnLeft.setBackground(Color.orange);
}else{
btnLeft.setBackground(new Color(234,234,234));
}
break;
}
}
public static void main(String[] args) {
EventHomeWork test = new EventHomeWork();
test.setSize(300,400);
test.setVisible(true);
}


'Java' 카테고리의 다른 글

[과제] 로또 번호  (0) 2017.06.26
[과제] 입력받는 성적표  (0) 2017.06.26
[JAVA 정리] 18. 네트워크  (0) 2017.06.24
[JAVA 정리] 17. Windows Programming  (0) 2017.06.24
[JAVA 정리] 16. Thread  (0) 2017.06.24

package util;

import java.util.Random;

public class RandomTest {

 public static void main(String[] args) {


  //로또 1~45까지의 중복값없이 나오게 하기
  Random r2 = new Random();
  int num[] = new int[6]; //6개의 숫자 
  
  for(int i=0; i<num.length;i++){ 
   num[i] = (int)r2.nextInt(45)+1; //1부터 45까지의 6개의 숫자 임의 생성
 
   for(int j =0; j<i; j++){ // 중복 검사
    if(num[i]==num[j]){
     i--;
    }
   }
  }
   System.out.println("로또출력기 행운의 번호는!!");
   System.out.print(num[0]+" ,"+num[1]+" ,"+num[2]+" ,"+num[3]+" ,"+num[4]+" ,"+num[5]);
  
 }

}

'Java' 카테고리의 다른 글

[과제] Windows Event를 이용한 신호등 예제  (0) 2017.06.26
[과제] 입력받는 성적표  (0) 2017.06.26
[JAVA 정리] 18. 네트워크  (0) 2017.06.24
[JAVA 정리] 17. Windows Programming  (0) 2017.06.24
[JAVA 정리] 16. Thread  (0) 2017.06.24
class Student {
String name;
int no, kor, eng, tot, avg, rank;
char grade;

Student(int no , String name, int kor, int eng) {
this.no = no;
this.name = name;
this.kor = kor;
this.eng = eng;
}

}

public class Sungjuk_v3 {
java.util.Scanner scan = new java.util.Scanner(System.in);
Student[] input = new Student[3];
void Input(){
for(int i=0; i<input.length; i++){
System.out.println("학번입력");
int no = scan.nextInt();
System.out.println("이름입력");
String name = scan.next();
System.out.println("국어점수입력");
int kor = scan.nextInt();
System.out.println("영어점수입력");
int eng = scan.nextInt();
input[i] = new Student(no,name,kor,eng);
}
for(int i=0; i<input.length; i++){
input[i].tot = input[i].kor + input[i].eng;
input[i].avg = input[i].tot/2;
if(input[i].avg>=90){
input[i].grade = 'A';
}else if(input[i].avg>=80){
input[i].grade = 'B';
}else if(input[i].avg >=70){
input[i].grade = 'C';
}else if(input[i].avg >=60){
input[i].grade = 'D';
}else{
input[i].grade = 'F';
}
}
for(int row = 0; row<input.length; row++){
input[row].rank = 1;
for(int col =0; col<input.length; col++){
if(input[row].avg<input[col].avg){
input[row].rank++;
}
}
}
System.out.println("====================성적표====================");
} //void Input
public void Display(){
System.out.println("학번 \t이름\t국어\t영어\t총점\t평균\t등급\t등수");
for (int cnt = 0; cnt < input.length; cnt++) {
System.out.println(input[cnt].no + "\t" + input[cnt].name + "\t" + input[cnt].kor + "\t"
+ input[cnt].eng + "\t" + input[cnt].tot + "\t" + input[cnt].avg + "\t" + input[cnt].grade
+ "\t " + input[cnt].rank);

}
}
public void Sort(){
for (int row = 0; row < input.length - 1; row++) {
for (int col = row + 1; col < input.length; col++) {
if (input[row].rank > input[col].rank) {

Student sTemp = input[row];
input[row] = input[col];
input[col] = sTemp;

}

}
}
System.out.println("===============정렬된 성적표=================");
}
public static void main(String[] args) {
Sungjuk_v3 sug = new Sungjuk_v3();
sug.Input();
sug.Display();
sug.Sort();
sug.Display();
}

}


'Java' 카테고리의 다른 글

[과제] Windows Event를 이용한 신호등 예제  (0) 2017.06.26
[과제] 로또 번호  (0) 2017.06.26
[JAVA 정리] 18. 네트워크  (0) 2017.06.24
[JAVA 정리] 17. Windows Programming  (0) 2017.06.24
[JAVA 정리] 16. Thread  (0) 2017.06.24

18. 네트워크

*. Ios 7계층과 네트워크 4계층

*. Protocol

http, ftp, telnet, mail, …

ipx.spx, …

전송계층 :

Tcp

- 연결 지향성

- 안정성

- ServerSocket, Socket

Udp

- 비연결 지향성

- 속도

- DatagramSocket, DatagramPacket // 별도의 클레스에서 데이터를 담아야 됨 

네트워크 계층 :ip

*. Ip, port, socket

*. Ip

-internet protocal

-네트워크 장치 식별

- 장치연결

*.port

- 프로그램 통로

- 6만여 개 : 1~1024


예제


'Java' 카테고리의 다른 글

[과제] 로또 번호  (0) 2017.06.26
[과제] 입력받는 성적표  (0) 2017.06.26
[JAVA 정리] 17. Windows Programming  (0) 2017.06.24
[JAVA 정리] 16. Thread  (0) 2017.06.24
[JAVA 정리] 15. IO(Input Output)  (0) 2017.06.24

17. Windows Programming

(1) 쟤료 : Component메서드<클래스<컴퍼넌트

(2) 디자인 : Layout

(3) 동작 : Event

(4) Component

1) AWT(Abstract Window Toolkit)

Java.awt.Component

Button

Canvas //그림판

Checkbox

Choice

Container // 다른것들을 감싸주는 역할 창고의 기능

Panel

- Applet //실제로는 사용하지 않는다.인터넷

Window

- Dialog

- FileDialog

- Frame

Label //글자출력

List //목록

Scrollbar

TextComponent

TextArea // 한 줄 입력

TextFileld // 여러 줄 입력

Dialog

- Custom(User Define) Dialog // 사용자가 직접 디자인해서 만듬

- Common(System) Dialog //

- 실행 방식

Modal

Modaless

(5) Layout

1) FlowLayout : Panel

2) BorderLayout :태두리(위 아래 오 왼 가운데) 5군대 중 지정해서 배치 할 수 있음

- west, north, south, east, center => window

3) GridLayout :테이블모양으로 행 열로 위치하여 좀 더 정교하게 배치할 수 있다.

4) GridBagLayout

5) CardLayout :눌렀을때 이벤트 발생 // 한 화면에 동시화면 띄어줄 수 있게

(6) Event

1) 3요소

- 이벤트 소스 (where , component)

- 이벤트 클래스 (what ,사건의 종류 어떤사건인지)

Java.util.AWTEvent

-- ActionEvent

컴퍼넌트가 활성화 될 때 발생하는 이벤트

-- AbjustmentEvent

스크롤바와 같이 조정 가능한 컴퍼넌트에서 조정이 일어날 때

-- ComponentEvent

ContainerEvent

컨테이너에 컴퍼넌트가 추가/삭제되는 경우 발생하는 이벤트

FocusEvent

컴퍼넌트에 포커스가 들어왔을 때 발생하는 이벤트

InputEvent

KeyEvent 키보드에 입력된 이벤트

MouseEvent 마우스 클릭에 대한 이벤트

PainEvent

컴퍼넌트가 다시 그려질 때 발생하는 이벤트

WindowEvent

윈도우가 활성화,또는 닫힐 때 발생하는 이벤트

-- ItemEvent

List, Choice와 같이 선택항목이 존재하는 컴퍼넌트에서 선택항목이 선택될 때 발생하는 이벤트

-- TextEvent

텍스트 컴퍼넌트의 내용이 변화될 때 발생하는 이벤트

- 이벤트 핸들러 (how , 어떻게 처리할 것 인지 , 리스너 인터페이스)

2) 이벤트 핸들러 처리 방식

- 이벤트 소스와 이벤트 핸들러가 같은 클래스인 경우

- 이벤트 소스와 이벤트 핸들러가 다른 클래스인 경우

- 이벤트 핸들러가 내부 클래스인 경우

- 이벤트 핸들러가 무명(익명) 클래스인 경우

3) 이벤트 소스와 이벤트 핸들러의 연결

- 이벤트 소스.addXXXListener(이벤트 핸들러); 

4) Adapter Class 

5) 그 외 이벤트 리스너

6) Menu

- Pull Down Menu(고정식 메뉴)

MenuBar

Menu

MenuItem

- Popup Menu (이동식 메뉴, Context Menu)

PopupMenu

MenuItem

'Java' 카테고리의 다른 글

[과제] 입력받는 성적표  (0) 2017.06.26
[JAVA 정리] 18. 네트워크  (0) 2017.06.24
[JAVA 정리] 16. Thread  (0) 2017.06.24
[JAVA 정리] 15. IO(Input Output)  (0) 2017.06.24
[JAVA 정리] 14. 예외 처리  (0) 2017.06.24

16. Thread

 (1) Program & Process

    ->현재 실행되고 있는 Program 이 Process이다.

1) Single Process :하나의 프로그램을 실행중인 상태에서 다른 프로그램을 사용할 수 없음.

2) Multi Process :하나의 프로세스 안에서 여려 작업을 동시에 할 수 있는 것

Multi Processor

하나의 프로그램에 안에서 실행되는 작업 단위 =>스레드

(2) Process

1) Thread

- Single Thread

-Multi Thread

2) 모든 프로그램은 반드시 기본적으로 한 개의 스레드를 가지고 있다.

- Main Thread (메인 메서드 자체가 하나의 메인 스레드 역할 이다.)

(3) 처리방식

1) Thread 클래스 - >편함 (이미 만들어져 있다.)

2) Runnable인터페이스 - > 불편함 

(4) Thread의 이름을 처리하는 방법

1) 직접 변수를 통해 저장

2) 부모에 저장해두고 사용 getName()

3) CurrentThread()를 이용

(5) Thread의 LifeCycle


(6) synchronized

1) 메서드

2) 블러

Synchronized(…){

… 

}

변수에는 쓸 수 없다.가급적이면 메서드에쓰는게 좋다.

3) wait() , notify(), notifyAll()

(7) 강제 종료

1) stop()

2) interrupt()

3) 직접 제어

(8) 스레드의 종료 시점

1) isAlive() 스레드가 있으면 조건문으로

2) join()

'Java' 카테고리의 다른 글

[JAVA 정리] 18. 네트워크  (0) 2017.06.24
[JAVA 정리] 17. Windows Programming  (0) 2017.06.24
[JAVA 정리] 15. IO(Input Output)  (0) 2017.06.24
[JAVA 정리] 14. 예외 처리  (0) 2017.06.24
[JAVA 정리] 13. Generic  (0) 2017.06.24

15.  IO(Input Output)

(1) java.io

(2) 모든 입출력은 Stream으로 구현된다.

- 단방향

- 원칙적으로 순차적 

- 지연 발생 가능

- 어떤 장치를 사용 하던 간에 사용법은 거의 동일하다 

(3) 자바에서 제공하는 Stream 방식

1) Byte Stream

- 1byte씩 기계가 사용하기 편한 방식 

- InputStream, OutputStream

- 속도가 빠름

- FileInputStream ,FileOutputStream

- DataInputStream ,DataOutputStream

2) Character Stream (내부적으로 ByteStream으로 변환)

- 2byte씩 사람이 사용하기 편한 방식

어짜피byte Stream 으로 바껴서 사용되기 때문에 성능이 저하된다.

-Filter 방식

-Reader, Writer

도스창에서

Copy con 새로만들파일명

Txt 경우 글써놓고ctrl+z


* Print Stream

Serializable (직렬화)한줄로처리된다.

쓰는 방식 : public Interface Serializable {} 

* PrintWrite :문자 Stream 방식 (이것저것 좋은 기능은 다 넣은 것)

ByteStream

- Object InputStream , ObjectOutputStream

->객체(복잡한 데이터), 다양한 ,많은 데이터들을 하나의 객체로 묶어서 넘길 수 있다.



bytestream


bytestream.zip


charstream


charstream.zip





14. 예외 처리

(1) 정의 : 예외가 발생했을 때 예외에 대한 제어권을 시스템(JVM)이 아니라 개발자가 가질 수 있게 하는 방법

(2) why?

1) 예외가 발생했을 때 메시지에 대한 표현 문제

(3) try, catch, throw, finally

(4) try / catch throw

(5) 예외 클래스

Throwable

Exception 소프트웨어 // 

- RuntimeException //해도되고안해도되는 것

- IOException // 반드시해야된다.

Error 하드웨어에 대한 문제점 //수많은 자식클래스들이 있다.

(6) throw // 일부로 예외를 발생 시켜, catch가 잡게끔하기

예외처리를 다른 곳에 하기 위해 쓰임

1) block안에서만 사용하는

2) 단 1개만 던질 수 있다.여러 개 (x)

3) 예외를 발생시킨 후(예외가 발생한 후) 에 던짐

(7) throws

1) 예외가 발생하기 전에 던짐 (혹시나 발생할 수 있으니 대신 처리해달라)

2) 여러 개의 예외를 던짐

3) 메서드 밖에서만 사용

(8) finally

1) block

2) try/catch와 함께 사용

Try{

}

Catch(..){

}

Finally{

}

3) 반드시 실행을 보장받을 수 있는 영역



'Java' 카테고리의 다른 글

[JAVA 정리] 16. Thread  (0) 2017.06.24
[JAVA 정리] 15. IO(Input Output)  (0) 2017.06.24
[JAVA 정리] 13. Generic  (0) 2017.06.24
[JAVA 정리] 12. 유용한 클래스들 (java.lang, java.util, java.text)  (0) 2017.06.24
[JAVA 정리] 11. Interface  (0) 2017.06.24

13. Generic

(1) 용도

1) 특정 ( 데이터)타입 (객체형)을 미리 검사

  - 사전에 잘못된 데이터 타입을 미리 체크

2) c++의 Template

(2) 문법 

1) 만드는 법 

 - class클래스명<이름>{…} // 이렇게 만든 클래스는 제네릭 클래스

2) 사용하는 법

 - 클래스명<데이터타입>변수명= new 클래스명<데이터타입>();




12. 유용한 클래스들(java.lang, java.util, java.text)

(1) Wrapper Class

Int I =10; // 비객체

i.변수,메서드(x)

Integer I =10; //객체

i.변수,메서드(o)

(2) 시간측정

System.currentTimeMillis()

(3) 문자열 추출하기

String - >split()

(4) Random

(5) 날짜와 시간 : Date, Calendar

(6) 문자열 과싱하기 :StringTokenizer

(7) ***** Collection

   Set List

1) set

 - 중복된 데이터를 저장하지 않는다.

 - 정렬 순서가 없다.

 - HashSet, LinkedHashSet, …

(SortedSet // Set계열의 자식 인터페이스)

2) SortedSet

 - 정렬 기능 추가

 - TreeSet, …

3) List

 - 중복된 데이터를 저장

 - 정렬 순서가 있다.

 - ArrayList, Vector, LinkedList, …

4) Map

- Collection의 자식이 아니라, add 대신 put을 사용

- 키와값을한쌍으로 묶어서 쓴다.

- HashMap, HashTable, …


* 배열이나 컬렉션에서 좀 더 편리하게 사용할 수 있는 반복문

For(변수 :배열or컬렉션){

}

'Java' 카테고리의 다른 글

[JAVA 정리] 14. 예외 처리  (0) 2017.06.24
[JAVA 정리] 13. Generic  (0) 2017.06.24
[JAVA 정리] 11. Interface  (0) 2017.06.24
[JAVA 정리] 10. Package  (0) 2017.06.24
[JAVA 정리] 9. 클래스3  (0) 2017.06.24

+ Recent posts