12/5 수업 : 이클립스 단축키📄 / GUI 맛보기

리무 rimu ·2022년 12월 14일
0

Java

목록 보기
12/35
post-thumbnail
import java.util.*; 
class StringTokenizerEx {
	public static void main(String[] args) {
		String line = "이/또한@흘러#가리라!";

		StringTokenizer st = new StringTokenizer(line,"/@#");

		//System.out.println(st.countTokens()); // 문자열이 4조각으로 잘릴걸 알고 있음, 구분자 기준으로 잘라냄

		String[] tokens = new String[st.countTokens()];
		int idx = 0;
		while(st.hasMoreTokens()){
			String token = st.nextToken();
			tokens[idx] = token;
			idx++;
		}

		System.out.println(Arrays.toString(tokens));



		//while(st.hasMoreTokens()) {
				//String token = st.nextToken();
				//System.out.println(token)
	}
}

countTokens()
StringTokenizer 클래스의 안에서 제공하는 기본 메서드
정확하게 말하면 StringTokenizer의 모든 갯수가 아닌 nextToken 메서드를 호출 할 수 있는 횟수를 계산합니다

`StringTokenizer' class

  • string 문자열 Tokenizer 토큰화한다
  • 하나의 문자열을 여러개의 토큰으로 분리한다
  • 구분자(-)를 기준으로 문자열을 분리, 즉 파싱시킴,
    회원정보 수정창등에서 많이 활용됨

매개 변수 : 매개 변수는 사용하지 않음
return 값 : StringTokenizer의 남아있는 토큰 갯수를 반환!

import java.text.*;
import java.util.*;


class TimeFormatting  {
	public static void main(String[] args) {
		Date d = new Date(); // 시간정보를 나타냄
		d.setTime(111111); // 원하는 특정한 시간대를 설정할 수 있음 
		System.out.println(d.getTime()); // 꺼내는 것


		// 2022.12.05 오전 09:23:55
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd aa hh:mm:ss"); // 시간 형식을 넣어줘야 함
		String strDate = sdf.format(d);
		System.out.println(strDate);
		
	}
}

  • 거꾸로 역산도 가능하다!
    문자열가지고 데이터객체를 꺼낼 수도 있다
    sdf라는 객체가 처리할 수 있는게 정해져 있음 (지정해놓은 형식이랑 같아야 함)
import java.text.*;
import java.util.*;


class TimeFormatting  {
	public static void main(String[] args) {
		Date d = new Date(); // 시간정보를 나타냄
		d.setTime(111111); // 원하는 특정한 시간대를 설정할 수 있음 
		System.out.println(d.getTime()); // 꺼내는 것


		// 2022.12.05 오전 09:23:55
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd aa hh:mm:ss"); // 시간 형식을 넣어줘야 함
		String strDate = sdf.format(d);
		System.out.println(strDate);

		
		String myDate = "2002.10.05 오후 09:30:15";
		Date someday = sdf.parse(myDate); // date객체
		System.out.println(someday.getTime());
	}
}

예외처리 없애줘야 함

import java.text.*;
import java.util.*;


class TimeFormatting  {
	public static void main(String[] args) {
		Date d = new Date(); // 시간정보를 나타냄
		d.setTime(111111); // 원하는 특정한 시간대를 설정할 수 있음 
		System.out.println(d.getTime()); // 꺼내는 것


		// 2022.12.05 오전 09:23:55
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd aa hh:mm:ss"); // 시간 형식을 넣어줘야 함
		String strDate = sdf.format(d);
		System.out.println(strDate);

		try {
			String myDate = "2002.10.05 오후 09:30:15";
			Date someday = sdf.parse(myDate); // date객체
			System.out.println(someday.getTime());
		} catch(ParseException e) {
			e.printStackTrace();
		}
	}
}

getTime(): 저장된 시간을 반환 (ms 단위 숫자)
setTime(long date): 주어진 시간으로 저장된 값을 변경(ms 단위 숫자), 예외처리 없애준 결과 이렇게 된다!

이클립스 단축키 사용법

  • ctrl + s : save(compile)
    ctrl + f11 => run
    ctrl + m => 창 최대화, 복원
    ctrl + n => 새로 만들기
    ctrl + f6 => 에디터 변경
    ctrl + d => 즐 삭제
    alt shift s => r getter/setter
    alt + shift + s => s toString
    alt + shift + s => c 기본 생성자
    alt + shift + s => o 생성자(파라미터)
    ctrl + d => 줄 삭제
    ctrl + shift + f => 자동 줄 맞춤
    ctrl + shift + o => 자동 임포트 import
    main + ctrl + space : main 메서드
    alt + shift + t + n : 이름 한번에 변경
 GUI 
-  AWT : 장점- 쉽다 / 단점- 표현의 한계, o/s 종속
-  Swing (나중에 추가됨) 장점- 표현의 한계가 사라짐, o/s 독립적
						단점- 어려움    `javax.swing`
                        
  1. Swing을 사용하면 객체지향의 개념을 눈으로 볼 수 있다!

  2. Android 정복가능

  3. 이후에 학습내용의 결과물들을 위해 수행

  4. MVC(model view) 구조 맛보기

  5. 이벤트 처리 구조방식

    눈에 보이는 화면 구성요소들을 컴포넌트 라 표현
    상속 is-a 관계이니까 Swing을 쓰면 AWT도 사용가능

package kr.ac.green;

import javax.swing.JFrame;

public class FrameEx1 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JFrame f = new JFrame();
		
		f.setLocation(300,200);  // 픽셀 단위 (점 하나가 1픽셀), 비율에 따라 화면 달라질 수 있음, 왼쪽 귀퉁이부터 300, 밑으로 200
		
		/*
		 * JFrame.EXIT_ON_CLOSE : 프로그램 종료
		 * JFrame.DISPOSE_ON_CLOSE: 해당 창만 종료
		 * JFrame.HIDE_ON_CLOSE: 창의 가시성을 제거(default)
		 * JFrame.DO_NOTHING_IN_CLOSE: 아무것도 하지마라
		 */

		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // (기본 닫기 기능) 안보이는 창  on close 닫기 누르면 뭐할래? exit 해라
		f.setVisible(true); // 눈에 안보였는데 true 넣어서 보이게 됨
	}
}

사이즈를 키워보자!

package kr.ac.green;

import javax.swing.JFrame;

public class FrameEx1 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JFrame f = new JFrame();
		
		f.setSize(400,300);
		f.setLocation(300,200); 
		
		/*
		 * JFrame.EXIT_ON_CLOSE : 프로그램 종료
		 * JFrame.DISPOSE_ON_CLOSE: 해당 창만 종료
		 * JFrame.HIDE_ON_CLOSE: 창의 가시성을 제거(default)
		 * JFrame.DO_NOTHING_IN_CLOSE: 아무것도 하지마라
		 */

		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // (기본 닫기 기능) 안보이는 창  on close 닫기 누르면 뭐할래? exit 해라
		f.setVisible(true); // 눈에 안보였는데 true 넣어서 보이게 됨
	}
}

컴파일하면!

package kr.ac.green;

import javax.swing.JFrame;

public class FrameEx1 {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		JFrame f = new JFrame("쩡인이네 강아지는 쭌삼이"); // 파라미터로 넣어도 되고 따로 생성해도 됨!
		
		f.setSize(400,300);
		f.setLocation(300,200); 
		// f.setTitle("쩡인이네 강아지는 쭌삼이");
		
		
		/*
		 * JFrame.EXIT_ON_CLOSE : 프로그램 종료
		 * JFrame.DISPOSE_ON_CLOSE: 해당 창만 종료
		 * JFrame.HIDE_ON_CLOSE: 창의 가시성을 제거(default)
		 * JFrame.DO_NOTHING_IN_CLOSE: 아무것도 하지마라
		 */

		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // (기본 닫기 기능) 안보이는 창  on close 닫기 누르면 뭐할래? exit 해라
		f.setVisible(true); // 눈에 안보였는데 true 넣어서 보이게 됨
	}
}


set.Background는 제일 뒤에 Frame의 색이 변경된다.
Glass Pane은 투명
Content Pane (클래스 이름이 아니라 얘네들 이름) 우리가 실제로 보는 화면
사용하려면 f.getContentPane().setBackground(Color.RED);

원하는 색 넣고 싶을땐 네이버에서 색상표 검색해서 #빼고 FFD9EC 원하는 컬러값 복사해서 붙여넣기

// 0 ~ F
Color background = new Color(0xFFD9EC); //0x는 16진수 
		f.getContentPane().setBackground(background);		                   
package kr.ac.green;

import java.awt.Dimension;
import java.awt.Point;

import javax.swing.JFrame;

public class FrameEx2 {
	public static void main(String[] args) {
		JFrame f = new JFrame();
		
		Dimension size = new Dimension(500, 400);
		f.setSize(size);
		
		Point location = new Point(200, 300);
		f.setLocation(location);
		
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setVisible(true); // 제일 끝에 적어줘야 함

	}
}

profile
JAVA / SQL / Spring 을 공부하고 있습니다 🐥

0개의 댓글