[Java] 제네릭 (Generic)
·
Java/Base
제네릭 프로그래밍  - 다양한 자료형이 적용될 수 있는 클래스를 만드는 것  - 선언 시 클래스의 자료형을 명시하지 않음      → 추후 해당 클래스를 인스턴스화(new)할 때 자료형이 정해짐 (.class 파일도 이 시점에 생성됨)      ⇒ 변수의 이름과 기능이 동일하면서, 자료형만 달라지는 변수들을 사용할 때 고려  - 컬렉션 프레임워크에서 많이 사용됨      : 알고리즘을 활용해서 보다 빠르게 자료 구조를 검색하고, 데이터를 삽입할 수 있는 프레임워크 #  장점  - 인스턴스화할 때, 다이아몬드 연산자() 사이에 자료형을 명시함      → 가독성을 높임  - 자료형을 잘못 사용했을 때, 컴파일 시점 오류가 발생함      → 자료형의 변환이 컴파일러에 의해 검증되므로, 안정성이 높음  - ..
[Java/Swing] 메서드 및 함수 모음
·
Java/Swing (GUI)
#  컴포넌트를 화면에 추가하기// root 패널에 추가할 때add(컴포넌트명);// 생성한 패널에 추가할 때패널명.add(컴포넌트명); #  컴포넌트 폰트 색 변경컴포넌트명.setForeground(Color객체); #  컴포넌트의 텍스트를 가져오기 or 설정하기// 텍스트 가져오기컴포넌트명.getText();// 텍스트 설정하기컴포넌트명.setText("문자열");// 기존 텍스트에 추가하기컴포넌트명.append("텍스트"); #  배경 색 지정하기// 창 전체 배경 색 지정getContentPane().setBackground(Color.색상);// 컴포넌트/패널의 배경 색 지정컴포넌트명.setBackground(Color.색상); #  원하는 색 추출Color 컬러명 = new Color(R숫자,..
[Java/Swing] 이벤트 리스너 (Event Listener)
·
Java/Swing (GUI)
이벤트 리스너 (Event Listener, 이벤트 핸들러)  - 이벤트의 발생을 감지하고, 이벤트에 대한 처리를 담당하는 객체  - 실행의 흐름을 만들 수 있음  - implements 키워드로 인터페이스를 받지 않고, 구현 클래스를 이용할 수도 있음      · 구현 클래스 관련 설명 : https://young0105.tistory.com/82  ActionListener 인터페이스  - 버튼을 눌렀을 때 이벤트가 발생함   - 해당 클래스는 'ActionListener' 인터페이스가 적용됨      → 다형성 : 자기 자신의 자료형으로 사용할 수도 있고, ActionListener 타입으로 사용할 수도 있음  - 인터페이스를 불러오면 'actionPerformed' 메서드가 자동으로 호출됨    ..
[Java] 내부 클래스와 익명 클래스
·
Java/Base
내부 클래스 (Inner class, 중첩 클래스)  - 클래스 내부에서 선언한 다른 클래스      → 해당 클래스를 감싸고 있는 '외부 클래스'와 밀접한 연관이 있는 경우가 많음  - 다른 외부 클래스에서 사용할 일이 없는 경우에는 내부 클래스로 선언하는 것을 고려할 수 있음      → 장점 : 내부 클래스에서 외부 클래스의 멤버 변수에 접근하기 쉬움                       (코드의 복잡성을 줄임) // 외부 클래스의 인스턴스화외부클래스 참조변수 = new 외부클래스();// 내부 클래스의 인스턴스화 (내부 클래스에 private 선언 시 사용 불가)외부클래스.내부클래스 참조변수 = 외부클래스.new 내부클래스(); #  인스턴스 내부 클래스  - 내부적으로 사용한 클래스 (priv..
[Java/Swing] JLabel 클래스 : 이미지 관련
·
Java/Swing (GUI)
이미지 삽입 및 중첩// 이미지1 위에 이미지2를 중첩시키기private JLabel 이미지1;private JLabel 이미지2;// 생성자public 클래스명() { initData(); setInitLayout();}// 생성자에 사용할 메서드private void initData() // 창 제목, 크기 등 설정 ... // 이미지1 가져오기 이미지1 = new JLabel(new ImageIcon("경로/파일명1.확장자")); 이미지1.setSize(너비, 높이); // 이미지2 가져오기 이미지2 = new JLabel(new ImageIcon("경로/파일명2.확장자")); 이미지2.setSize(너비, 높이);}// 생성자에..