[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(너비, 높이);}// 생성자에..
[Java] 오류와 예외 처리
·
Java/Base
프로그램에서의 오류  ① 컴파일 오류 (Compile error)      - 프로그램 코드 작성 중 발생하는 문법적 오류    ② 실행 오류 (Runtime error)      - 실행 중인 프로그램이 의도하지 않은 bug를 만나거나, 프로그램이 중지되는 오류      - 비정상 종료를 일으켜 시스템의 심각한 장애를 유발할 수 있음 오류와 예외   ① 시스템 오류 (Error)      - 프로그래머가 처리할 수 없는, 시스템 레벨에서 발생하는 심각한 문제      - 대부분 JVM이나 하드웨어에서 발생함      ex) 동적 메모리가 없는 경우, 스택 메모리 오버 플로우 등   ② 예외 (Exception)      - 프로그램에서 제어할 수 있는 오류      - 언어의 안전성을 위해, 문법적으로..
[Java/Swing] 이미지 삽입하기
·
Java/Swing (GUI)
코드public class MyImageFrame extends JFrame { ImagePanel imagePanel; // 내부 클래스를 멤버 변수로 선언 public MyImageFrame() { initData(); setInitLayout(); } private void initData() { setTitle("이미지 연습"); setSize(400, 400); setDefaultCloseOperation(3); imagePanel = new ImagePanel(); } private void setInitLayout() { add(imagePanel); setVi..
[Java/Swing] paint 메서드 : 도형, 이미지, 문자열 그리기
·
Java/Swing (GUI)
JPanel 클래스의 paint 메서드  - JPanel 클래스를 상속받아, paint 메서드를 재정의해서 그림을 그릴 수 있음 #  도형 그리기// JFrame을 상속받은 클래스의 외부 or 내부에 선언해서 사용class 클래스명 extends JPanel { // paint 메서드를 재정의해서 사용함 @Override public void paint(Graphics g) { super.paint(g); // fillRect : 채운 사각형 // 사각형 그리기 g.drawRect(x좌표, y좌표, 너비, 높이); // 둥근 사각형 그리기 g.drawRoundRect(매개변수); ..