JAVA - 12

Date:     Updated:

카테고리:

태그:

img

BallGame.java

MyPanel 클래스는 JPanel을 상속받아서 커스텀 패널을 정의합니다. 이 패널은 빨간색 원을 표시하고, 마우스 클릭 이벤트를 처리하여 원의 위치를 변경합니다. 원은 패널의 배경색이 흰색인 곳에서 마우스를 클릭한 위치로 이동합니다.

MyPanel의 생성자에서는 배경색을 흰색으로 설정하고, MouseListener를 추가하여 마우스 클릭 이벤트를 감지합니다. 마우스 클릭이 발생하면 현재 클릭한 좌표를 가져와서 원의 위치를 업데이트하고, repaint()를 호출하여 패널을 다시 그립니다.

MyPanelpaintComponent 메서드는 Graphics 객체를 사용하여 현재 위치에 빨간색 원을 그립니다. 원의 위치는 img_Ximg_Y 변수에 의해 지정되며, 크기는 50x50입니다.

BallGame 클래스는 JFrame을 상속받아 애플리케이션 창을 생성합니다. 생성자에서는 창의 제목을 설정하고 크기를 지정하고, 종료 버튼을 클릭할 때 프로그램이 종료되도록 설정합니다. 그리고 MyPanel 객체를 생성하여 프레임에 추가합니다. 이렇게 함으로써 MyPanelBallGame 프레임의 내부에 추가되고, 패널의 paintComponent 메서드를 통해 그래픽이 그려집니다.

실행 화면 :

Image description

CarGame.java

MyPanel3 클래스는 JPanel을 상속하여 커스텀 패널을 정의합니다. 이 패널은 자동차 이미지를 표시하고, 마우스 클릭 이벤트를 처리하여 자동차 이미지의 위치를 변경합니다.

MyPanel3의 생성자에서는 배경색을 흰색으로 설정하고, 이미지를 로드하여 carImage에 저장합니다. 이미지는 “C://temp//car1.gif” 경로에서 로드되며, 예외가 발생할 경우 오류 메시지를 출력합니다.

마우스 클릭 이벤트를 처리하기 위해 MouseListener를 추가합니다. 마우스 클릭이 발생하면 현재 클릭한 좌표를 가져와서 img_Ximg_Y 변수를 업데이트하고, repaint()를 호출하여 패널을 다시 그립니다.

MyPanel3paintComponent 메서드는 Graphics 객체를 사용하여 자동차 이미지를 현재 위치에 그립니다. 이미지는 carImage 변수에 저장된 이미지이며, 좌표는 img_Ximg_Y로 지정됩니다.

CarGame 클래스는 JFrame을 상속받아 애플리케이션 창을 생성합니다. 생성자에서는 창의 제목을 설정하고 크기를 지정하고, 종료 버튼을 클릭할 때 프로그램이 종료되도록 설정합니다. 그리고 MyPanel3 객체를 생성하여 프레임에 추가합니다. 이렇게 함으로써 MyPanel3CarGame 프레임의 내부에 추가되고, 패널의 paintComponent 메서드를 통해 그래픽이 그려집니다.

실행화면 :

Image description

CarGame_Keyboard.java

MyPanel2 클래스는 JPanel을 상속받아 커스텀 패널을 정의합니다. 이 패널은 자동차 이미지를 표시하고, 키보드 이벤트를 처리하여 자동차 이미지의 위치를 변경합니다.

MyPanel2의 생성자에서는 ImageIO를 사용하여 이미지 파일 “C:/temp/car1.gif”을 로드하고 carImage에 저장합니다. 이미지 로드에 실패할 경우 오류 메시지를 출력합니다.

KeyListener 인터페이스를 구현하여 키보드 이벤트를 처리하기 위해 addKeyListener(this)를 호출하고, 포커스를 설정하기 위해 setFocusable(true)를 호출합니다.

paintComponent 메서드는 Graphics 객체를 사용하여 자동차 이미지를 현재 위치에 그립니다. 이미지는 carImage 변수에 저장된 이미지이며, 좌표는 carXcarY로 지정됩니다.

keyPressed 메서드에서는 키보드 이벤트의 키 코드를 확인하여 상하좌우 방향키에 따라 carXcarY를 조정하고, repaint()를 호출하여 패널을 다시 그립니다.

keyTypedkeyReleased 메서드는 사용되지 않습니다.

CarGame_Keyboard 클래스는 JFrame을 생성하여 애플리케이션 창을 생성합니다. 프레임의 제목을 설정하고, 종료 버튼을 클릭할 때 프로그램이 종료되도록 설정합니다.

MyPanel2 객체를 생성하여 프레임의 콘텐트 팬으로 추가하고, 프레임의 크기를 설정합니다. 마지막으로 panel.requestFocusInWindow()를 호출하여 패널에 포커스를 설정합니다.


FlyingText.java

FlyingText 클래스는 JFrame을 상속받아 프레임을 생성하고, KeyListener를 구현하여 키 이벤트를 처리합니다.

프레임의 생성자에서는 프레임의 제목을 설정하고, 컨텐트 팬의 레이아웃 매니저를 삭제합니다. 이후 JLabella를 생성하여 프레임에 추가하고, 프레임의 크기와 가시성을 설정합니다. 마지막으로 컨테이너에 포커스를 설정합니다.

MyKeyListener 클래스는 KeyAdapter를 상속받아 키 이벤트를 처리하는 내부 클래스입니다. 클래스 내부에는 upPressed, downPressed, leftPressed, rightPressed라는 네 개의 불리언 변수가 있습니다.

keyPressed 메서드는 눌려진 키의 키 코드를 확인하고, 해당하는 상하좌우 키 상태를 업데이트합니다. 대각선 이동인 경우에는 la의 위치를 변경합니다. 그렇지 않은 경우에는 키 코드에 따라 la의 위치를 이동시킵니다.

keyReleased 메서드는 떼어진 키의 키 코드를 확인하고, 해당하는 상하좌우 키 상태를 업데이트합니다.

main 메서드에서는 FlyingText 객체를 생성하여 프로그램을 실행합니다.

이 코드는 키보드의 상하좌우 키를 사용하여 텍스트를 움직이는 간단한 예시입니다. 키를 누르면 텍스트가 이동하며, 키를 떼면 이동이 멈춥니다. 대각선 방향으로도 이동할 수 있습니다.


LayoutManager_FlowLayout.java

FlowLayout를 사용하여 컴포넌트를 왼쪽에서 오른쪽으로 배치하는 예시입니다.

LayoutManager_FlowLayout 클래스는 JFrame을 상속받아 프레임을 생성합니다. 생성자에서는 프레임의 제목과 닫기 동작을 설정합니다.

getContentPane 메서드를 사용하여 JFrame의 컨텐트 팬을 가져옵니다.

ContainersetLayout 메서드를 사용하여 가져온 컨텐트 팬에 FlowLayout을 설정합니다. 이를 통해 컴포넌트들이 왼쪽에서 오른쪽으로 배치됩니다.

JButton 객체를 생성하고, addActionListener 메서드를 사용하여 이벤트 리스너를 등록합니다. 이 예시에서는 MyActionListener 클래스의 인스턴스를 이벤트 리스너로 등록합니다.

버튼 객체를 컨테이너에 추가합니다.

프레임의 크기를 설정하고 가시성을 설정하여 프레임을 표시합니다.

main 메서드에서는 이벤트 디스패치 스레드를 사용하여 LayoutManager_FlowLayout 객체를 생성하여 프로그램을 실행합니다.

MyActionListener 클래스는 ActionListener 인터페이스를 구현한 내부 클래스입니다. actionPerformed 메서드는 버튼이 클릭되었을 때 호출됩니다. 이 예시에서는 버튼의 텍스트를 변경하고 콘솔에 메시지를 출력합니다.

이 코드는 FlowLayout를 사용하여 컴포넌트를 왼쪽에서 오른쪽으로 배치하는 예시입니다. 버튼이 클릭되면 텍스트가 변경되는 동작을 구현하였습니다.

실행화면 :

Image description

GridLayout_ex.java

GridLayout을 사용하여 그리드 형태의 레이아웃을 구성하는 예시입니다.

GridLayout_ex 클래스는 JFrame을 상속받아 프레임을 생성합니다. 생성자에서는 프레임의 제목과 닫기 동작을 설정합니다.

그리드 레이아웃 객체 GridLayout을 생성하고, 행과 열의 개수를 지정합니다. 이 예시에서는 4행 2열의 그리드를 생성합니다.

GridLayout 객체의 setVgap 메서드를 사용하여 각 행 사이의 간격을 5픽셀로 설정합니다.

getContentPane 메서드를 사용하여 JFrame의 컨텐트 팬을 가져옵니다.

ContainersetLayout 메서드를 사용하여 가져온 컨텐트 팬에 GridLayout을 설정합니다.

JLabelJTextField 컴포넌트를 생성하여 컨테이너에 추가합니다. JLabel은 “이름”, “학번”, “학과”, “과목”의 텍스트를 가지고 있고, JTextField은 빈 텍스트 필드를 생성합니다.

프레임의 크기를 설정하고 가시성을 설정하여 프레임을 표시합니다.

main 메서드에서는 GridLayout_ex 객체를 생성하여 프로그램을 실행합니다.

실행화면 :

Image description

java 카테고리 내 다른 글 보러가기

댓글 남기기