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

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





[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

String 클래스 


이벤트 라우팅




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

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


 



=> 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


**Event 

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

e.getActionCommand()








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



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


ALT를 눌렀을 때 






'Java' 카테고리의 다른 글

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

int[] A = new int[input.length()];

for(임시변수 : 컬렉션){ 컬렉션의 모든 데이터를 순서대로 임시변수에 대입}




FilterOutputStream 에 정의 된 Close()는 flush()를 호출한 다음에 기반스트림의 close()를 호출하는 것을 알 수 있다. 

보조스트림을 사용한 경우 BufferedOutputStream() 사용한 경우 flush() 사용하지 않고 close()사용하면된다. 

'Java' 카테고리의 다른 글

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

역삼각형 출력하기

printReversedTriangle 메소드는 양의 정수 num을 매개변수로 입력받습니다.
다음을 참고해 *(별)로 높이가 num인 삼각형을 문자열로 리턴하는 printReversedTriangle 메소드를 완성하세요

높이(num)가 3일때 다음과 같은 문자열을 리턴하면 됩니다.

***
**
*


[내문제 풀이]




[다른 사람문제 풀이 ]



function printReversedTriangle(n) {
  return n > 0 ? '*'.repeat(n) + '\n' + printReversedTriangle(n-1) : '';
}


// 아래는 테스트로 출력해 보기 위한 코드입니다.
console.log("결과 : " +'\n'+ printReversedTriangle(3));

위의 자바 스크립트는



[다른 사람문제 풀이 ]





function printReversedTriangle(numlet result = ""for ( let i = num; i > 0; i-- ) { for ( let j = 0; j < i; j++ ) { result += "*" } result += "\n" } return result }


'알고리즘' 카테고리의 다른 글

서울에서김서방찾기  (0) 2018.02.22
수박수박수박수박수박수?  (0) 2018.02.22
가운데 글자 가져오기  (0) 2018.01.23
<공부가 더필요 > 삼각형 출력하기  (0) 2018.01.21
약수의 모든 합을 구하시오.  (0) 2018.01.14

출처 : https://programmers.co.kr/learn/challenge_codes/1 사이트 



최근에 알고리즘 공부를 시작했습니다.

사실 너무 어렵기도 해서 포기할까 하다가 

조금씩 하루에 하나씩 풀어보기로 했습니다. 


1.약수의 모든 합을 구하시오 

프로그래머스 사이트에서 출제된 약수의 모든 합을 구하는 문제입니다. 




어떻게 풀까 고민도 많이하다가 

하나씩 생각해보기로 했습니다. 


1. 입력받은 값의 12의 약수를 구하려면, 우선 뭐가 필요한가 ? 

     반복문이 필요하다 

2. 입력받은 값의 num의 약수의합을 구하려면, 나누어 떨어지는 수를 구해야한다는 것을 알 필요가 있었고

3. 반복문 안에 if 문을 넣어 0과 같다면 그 수를 더하는 방식으로 풀면된다는 것을 생각했습니다. 



[내 풀이]






[다른 분의 풀이 방법 ]

이 문제는 약수의 합을 구하는 방식이므로 

num/2를 통해 반복문을 최소화 할 수 있습니다. 






'알고리즘' 카테고리의 다른 글

서울에서김서방찾기  (0) 2018.02.22
수박수박수박수박수박수?  (0) 2018.02.22
가운데 글자 가져오기  (0) 2018.01.23
<공부가 더필요 > 삼각형 출력하기  (0) 2018.01.21
역삼각형 출력하기  (0) 2018.01.14

+ Recent posts