toUpperCase










 trim () : 입력한 값의 좌우 공백을 지우는 메소드 

[Ex] 


구글에서 회원가입했을 때, 아이디의 공백을 주어 아이디의 유효성 검사를 해도, 문제가 없는 이유는 

trim()을 사용해서 처리했기 때문이다 







toUpperCase() : 문자열을 대문자로 변환하여 주는 함수

[Ex] 


구글에서 회원가입했을 때, 아이디의 소대문자 섞어서 사용해도, 아이디의 유효성 검사를 해도, 문제가 없는 이유는 

toUpperCase()을 사용해서 처리했기 때문이다 










package IO;


import java.io.FileInputStream;

import java.io.FileOutputStream;


public class ByteMain {


public static void main(String[] args) { // TODO Auto-generated method stub

// 파일에 바이트 단위로 기록할 수 있는 스트림을 생성


// try {

// // true를 쓰면 이어붙이기가 됩니다.

// FileOutputStream fos = new FileOutputStream("test.txt", true);

//

// byte [] b ="Hello".getBytes();

//

// fos.write(b);

//

//

// //계속 예외처리하라고 하면 Exception으로 바꿔주기

// fos.close();

// } catch (Exception e) {

// // TODO Auto-generated catch block

// e.printStackTrace();

// }


// FileOutputStream fos = new FileOutputStream("test.txt", true);


FileOutputStream의 매개변수 자리에 true 를 사용하면 

test 파일 안에 문자가 리셋되는 것이 아니라 

계속 추가되어 문자가 쓰여진다.


/***************************************************************************************************/

// try {

//

// FileInputStream fis = new FileInputStream("test.txt");

// // 1개 읽기

// int r = fis.read();

// System.out.println(r);

// fis.close();

// } catch (Exception e) {

// System.out.println(e.getMessage());

// }



//텍스트 파일 생성 

/***************************************************************************************************/

try {


FileInputStream fis = new FileInputStream("test.txt");

byte[] b = new byte[fis.available()];

fis.read(b);


// String(byte[] bytes)

// Constructs a new String by decoding the specified array of bytes using the

// platform's default charset.


//new String 생성자를 생성해서 

// byte의 숫자를 문자로 형변환 해준다. 

//String 클래스의 생성자중 byte 배열을 Charset으로 변화해주는 생성자를 쓰면 쉽게 숫자를 문자로 바꾸어 

읽어 올 수 있다.  

System.out.println(new String(b));


// for(byte x : b ) {

// System.out.println(x);

// }

// System.out.println(b);

fis.close();

} catch (Exception e) {

System.out.println(e.getMessage());

}

}


}












기본형 : + ""

참조형 : toString()을 호출하면됩니다

'Java' 카테고리의 다른 글

Java_toUpperCase  (0) 2018.01.16
java io 스트림  (0) 2018.01.16
JOption Pane  (0) 2018.01.16
JFram과 배열을 이용한 스머프 이미지 움직이는 방법.  (0) 2018.01.15
AWT를 활용한 ActionListener 사용법  (0) 2018.01.15

JOption Pane




JOptionPane

실행하는 도중에 사용자로 하여금 데이터를 입력받거나 특정한 메세지를 출력할 수 있도록 하는 컴포넌트

자체적인 기능을 가지고 있는것이 아니기에 반드시 인스턴스를 생성하여 사용해야합니다.




[ShowMessageDialog 메세지만을 출력하고 싶을 때 ]













[입력받은 값의 리턴 예= 0 아니오 = 1  취소 = 2]








[Input Diaolog 리턴값은 입력받은 값을 리턴 ]










[패널과 합친 레이블 ]


import javax.swing.Icon;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;


public class Animation extends JFrame {

private static final long serialVersionUID = 1L;


public Animation() {

setLayout(null);

JPanel jp = new JPanel();

Icon ic = new ImageIcon("image\\캡처1.png");

JLabel lbl = new JLabel(ic);

jp.setBounds(20, 150, 430, 420);


jp.add(lbl);


// 패널추가

add(jp);

// 기본설정

setTitle("움직이는 스머프");

setBounds(100, 100, 1000, 1000);

setVisible(true);

setDefaultCloseOperation(EXIT_ON_CLOSE);


String[] imgs = { "캡처1.png", "캡처2.png", "캡처3.png", "캡처4.png", "캡처5.png", "캡처6.png", "캡처7.png", "캡처8.png",

"캡처9.png", "캡처10.png", "캡처11.png", "캡처12.png" };


int idx = 0;

int pos = 5;

while (true) {

idx = idx + 1;

try {


Thread.sleep(100);

Icon icon1 = new ImageIcon("image\\" + imgs[idx % imgs.length]);

lbl.setIcon(icon1);

int x = jp.getX();

int y = jp.getY();

System.out.println(y);

if(x<10) {

pos=-5;

}else if (x>450) {

pos = 5;

}

jp.setLocation(x+pos , y);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}


}


}


}


// 위의 소스코드는 이미지를 움직이기 위한 소스코드 입니다. 

// 만약 패널위에 이미지를 묶어주었다면 위와 같이 이미지가 들어간 레이블의 값을 이동시키는 것이 아니라 

// 이미지를 묶고 있는 패널을 이동시켜주어야만합니다. 


만약, 레이블만 사용할 것이라면, 레이블만을 움직여주어야만합니다. 


[레이블로만 구성된 이미지 이동 ] 

import java.awt.Button;


import javax.swing.Icon;

import javax.swing.ImageIcon;

import javax.swing.JFrame;

import javax.swing.JLabel;


public class Animation2 extends JFrame {


public Animation2() {


setLayout(null);


Icon ic = new ImageIcon("image\\캡처1.png");

JLabel lbl = new JLabel(ic);

lbl.setBounds(150, 30, 150,150);

add(lbl);

Button btn = new Button("dddddd");

add(btn);


setTitle("움직이는 스머프");

setBounds(100, 100, 1000, 1000);

setVisible(true);

setDefaultCloseOperation(EXIT_ON_CLOSE);

String[] imgs = { "캡처1.png", "캡처2.png", "캡처3.png", "캡처4.png", "캡처5.png", "캡처6.png", "캡처7.png", "캡처8.png",

"캡처9.png", "캡처10.png", "캡처11.png", "캡처12.png" };


int idx = 0;

int pos = 5;

while (true) {

idx = idx + 1;

try {


Thread.sleep(50);

Icon icon1 = new ImageIcon("image\\" + imgs[idx % imgs.length]);

lbl.setIcon(icon1);

int x = lbl.getX();

int y = lbl.getY();

System.out.println(x);

if (x < 10) {

pos = 5;

} else if (x > 750) {

pos = -5;

}

lbl.setLocation(x + pos, y);

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}


}


}


}



'Java' 카테고리의 다른 글

String이 아닌 데이터를 String 으로 변환하기  (0) 2018.01.16
JOption Pane  (0) 2018.01.16
AWT를 활용한 ActionListener 사용법  (0) 2018.01.15
이벤트 라우팅  (0) 2018.01.15
BorderLayout  (0) 2018.01.15

 

본 글은 혼자서 공부한 내용을 정리한 것으로, 

이해하기 어려우실 수 있으므로 도움되는 댓글만 받습니다.  





[ActionListener을 활용해볼 GUI]


ActionListener란 무엇인가 ? 


=> 버튼을 클릭하거나 메뉴를 누르거나 텍스트 필드 등에서 Enter를 눌렀을 때  발생하는 이벤트Listener 

=>ActionListener는 인터페이로 처리합니다. 

=>ActionListener 인터페이스에서 actionPerformed(ActionEvent e ) 메소드가 존재하고 ActionEvent가 발생하면 이 메소드가 호출됩니다.

=>ActionEvent의 메소드 


1) geActionCommand(): 이벤트가 발생한 객체의 텍스트가 리턴됩니다. 

2) getSource(): 이벤트가 발생한 객체의 해시코드가 리턴됩니다.

3) getModifiers(): 이벤트가 발생 했을 때 같이 누른 조합키 (ALT, CTRL SHIFT)의 값이 리턴됩니다.




AWT를 활용한 공부 

AWT를 활요하기 위해서 우선 

해당 클래스에 Frame을 상속시켜주어야합니다.





이후 AWT를 통해 화면을 구현하기 위해 

setResizable(false)   // 화면을 고정시켜주고,

setTitle("이벤트 처리" ) ; // 제목표시줄 

set Bounds( x,y, witdh,height); // x,y는 위치를 저장하고,  width height 크기를 적어줍니다. 





그 다음 형태를 만들어줍시다 

우선 텍스트 필드와 텍스트 에어리어 그리고 버튼 까지 한번 만들어봅시다. 

여기서 패널은  GUI를 하나로 묶어주기 위해서 사용하는데요 

패널에 대한 설명은 아래 한번 읽어보세요 


Panel 

=> 여러 개의 Component들을 묶어두기 위한 GUI  컨테이너 

=> 화면에 출력되는 버튼 같은 Component들은 보통 Frame에 바로 부착하지 않고  Panel에 부착한 뒤 이를 묶어서 Frame에 부착합니다.

=> Panel 이나 Frame에 다른 컴포넌트들을 부착하는 메소드 add(Component)








1) geActionCommand(): 이벤트가 발생한 객체의 텍스트가 리턴됩니다. 





[결과]

복사버튼 클릭시 

종료버튼 클릭시 클릭한 버튼의 인스턴스를 리턴하도록 해보세요 








2) getSource(): 이벤트가 발생한 객체의 해시코드가 리턴됩니다.






3) getModifiers(): 이벤트가 발생 했을 때 같이 누른 조합키 (ALT, CTRL SHIFT)의 값이 리턴됩니다.






3) getModifiers(): 이벤트가 발생 했을 때 같이 누른 조합키 (ALT, CTRL SHIFT)의 값이 리턴됩니다.


ALT를 눌렀을 때 


[3개 전부 출력 결과]



1. 텍스트 필드에 입력 :asd  

2. 입력값 그대로입력 : asd 

3.해시코드 출력: java.awt.Button[button0,144,208,38x23,label=복사]

4. 객체 리턴 : 복사 

5. 이벤트가 발생했을 때 같이 누른 조합키 : 없어서 0출력 








'Java' 카테고리의 다른 글

JOption Pane  (0) 2018.01.16
JFram과 배열을 이용한 스머프 이미지 움직이는 방법.  (0) 2018.01.15
이벤트 라우팅  (0) 2018.01.15
BorderLayout  (0) 2018.01.15
이벤트 처리  (0) 2018.01.15

이벤트 라우팅




본 글은 혼자서 공부한 내용을 정리한 것으로, 

이해하기 어려우실 수 있으므로 도움되는 댓글만 받습니다.


 



=> 2개 이상의 객체 이벤트를 하나의 객체로 처리하는 것을 이벤트 라우팅이라고 합니다. 

 

=> 각 개체마다 이벤트 처리를 위한 객체를 갖는 것은 자원의 낭비이기 때문에 우리는 이벤트 라우팅에 대해서 알필요가 있습니다. 


우선 이런 형태의 GUI를 만들었다면 우리는 버튼 두개의 이벤트를 처리해할 것입니다. 





일반적?이라고는 할 수 없겠지만, 가장 쉽게 짜는 방법은 두개의 버튼을 하나씩 객체 생성을 하여 

하나씩 버튼을 아래 처럼 이벤트처리를 해주면 될 것입니다. 






이런 식으로 이벤트를 처리해주면 물론 작동을 할 것입니다. 하지만, 이러한 코딩 방식은 자원을 낭비하게될 것이기에 

제일 좋은 방식은 

2개 이상의 이벤트객체를 하나의 객체로 처리하는 것입니다. 


이것을 바로 이벤트라우팅이라고 합니다. 

이벤트 라우팅에 대해 조금 설명해보도록하겠습니다. 


=> 이벤트가 발생했을 때 호출되는 메소드의 매개변수는 이벤트가 발생한 객체의 정보를 리턴해주는 메소드를 소유하고 있습니다. 

=> ActionEvent 의 경우는 geActionCommand() 또는 getSource() 

=> 이벤트를 처리하는 메소드에서 getActionCommand() 나 getSource의 리턴값을 가지고 분기문 만들면 됩니다.


저도 사실 정리하는 내용이라서, 간단한게 아래 코드를 보도록하죠 



[이벤트 라우팅]









'Java' 카테고리의 다른 글

JFram과 배열을 이용한 스머프 이미지 움직이는 방법.  (0) 2018.01.15
AWT를 활용한 ActionListener 사용법  (0) 2018.01.15
BorderLayout  (0) 2018.01.15
이벤트 처리  (0) 2018.01.15
깨달은 거 정리  (0) 2018.01.14

                //윈도우가 화면에 출력되 전에 수행할 내용

//Frame의 기본 레이아웃은 BorderLayout

//boardlayout이라서 패널을 만들고 

//Panel p = new Panel();을 만든다. 



// 타이틀, 위치, 크기,크기고정 보여주기 옵션 설정

// 윈도우 출력

//FlowLayout을 사용할 때는 일반적으로 크기고정

setResizable(false);

setTitle(" 이벤트 처리 ");

setBounds(100, 100, 375, 350);

setVisible(true);


// 윈도우가 화면에 출력된 후 수행할 내용

'Java' 카테고리의 다른 글

JFram과 배열을 이용한 스머프 이미지 움직이는 방법.  (0) 2018.01.15
AWT를 활용한 ActionListener 사용법  (0) 2018.01.15
이벤트 라우팅  (0) 2018.01.15
이벤트 처리  (0) 2018.01.15
깨달은 거 정리  (0) 2018.01.14

+ Recent posts