Java (83) 썸네일형 리스트형 Swing 예제, KeyListener를 활용해 방향키 기반 게임 만들기 ⭐Swing을 활용해 간단한 게임을 만들어봤다. 요청사항----- ----- -----캐릭터가 방향키에 맞게 움직이도록 만들것움직이는 장애물을 만들것캐릭터와 장애물이 충돌시 캐릭터가 삭제되도록 할 것 🤔기억해야 할 내용쓰레드, While문을 활용해사용자가 조작하지 않아도 스스로 움직이는 장애물을 설계할 수 있다. 1. 클래스 생성JFrame 상속KeyListener 구현package _game;import javax.imageio.ImageIO;import javax.swing.*;import java.awt.*;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.awt.image.BufferedImage;import.. Swing 예제, 로또번호 만들기 ⭐Swing을 활용해 로또번호를 생성하는 프로그램을 만들어봤다. 요청사항 ----- ----- ----- 버튼을 누르면 번호 6개 출력되도록 만들 것보더레이아웃타이틀패널기능들을 활용할 것 🤔알아둘 개념 단일 책임 원칙 SRP Single Responsibility Principle 클래스를 설계할 때의 원칙 클래스는 가능한 단 하나의 책임을 가지는 것이 좋다 1. 단일 책임 원칙에 따라난수를 생성하는 클래스를 따로 만들었다. 중복을 방지하기 위해이중 for 문을 알 필요가 있다.package _lotto.ch01;import java.util.Arrays;import java.util.Random;/** * 4.29 * 난수를 만들어주는 프로그램을 따로 만들어본다. * * 단일 책임 원칙 * SRP.. Swing예제, KeyListener로 특정 키 값 인식 ⭐KeyListener 키보드를 눌렀을 때 호출되는 메서드를 가지고 있는 인터페이스 keyTyped keyPressed keyReleased 3개 메서드를 구현할 수 있다. 메서드 안에if문을 넣어 각 키 값에 맞는 구문을 설계할 수 있다. if (e.getKeyCode() == KeyEvent.VK_UP) {System.out.println("위쪽 화살표 누름"); } 예제) 방향키 4개를 누르면 서로 다른 메시지가 호출되는 구문----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ⭐구조 상속 JFrame/ 구현 KeyListener멤버변수 JTextArea생성자 (initData, setInitLayout, addEventLi.. Swing예제, ActionListener로 버튼 상호작용 ⭐액션리스너 인터페이스 ActionListener자바 개발자들이 운영체제(마우스 제어 주체)와 상호작용할 수 있도록 에비해둔 기능이다. 이를 위해 운영체제와 약속된 추상 메서드를 오버라이드 한다. 만약 이벤트가 발생되면 이 메서드를 수행하도록 하기 위해서다. ⭐콜백 callback 직접 수행하는 것이 아니라 미리 정해져 있는 정보(객체)를 받을 수 있게 하는 것 💀단, 어떤 컴포넌트가 이벤트를 실행시킬 것인지 먼저 등록해둬야 한다. 예제) 버튼에 상호작용 기능을 넣어보자----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ⭐구조 상속 JFrame/ 구현 ActionListener멤버변수 JButton생성자 (initData, s.. Swing 예제, JLabel로 이미지 팝업하기 ⭐JLabel 이용해 이미지를 다뤄본다. Jlabel.add() 메서드를 이용하면 이미지를 겹칠 수 있다. 좌표 기준으로 배치관리자를 세팅하려면 null 값을 세팅해야 한다. 💀이너클래스를 만들지 않고 JLabel을 이용해 이미지를 그리면 이미지 사이즈를 조절할 수 없다. 👍미리 조절된 이미지를 사용해야 한다. 예제) 배경이미지 위에 캐릭터이미지 올리기----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ⭐구조 상속 JFrame멤버변수 JLabel생성자 (initData, setInitLayout)메소드 initData (컴포넌트 정의) setInitLayout (디자인)메인코드----- ----- -----.. 스윙 Swing, 자바에서 GUI를 만들어주는 도구 ⭐ 스윙 Swing 자바에서 GUI를 만들어주는 도구 ⭐ 스윙의 JComponent JFrame JPanel Jbutton 등등... 화면과 관련된 작업을 할때 배치관리자 Layout을 이해해야 한다. Component 들을 어떻게 배치할 것인지 ⭐동서남북 배치 배치관리자 개념중에 보더레이아웃이라는 개념이 있다. BorderLayout은 컴포넌트를 동서남북 가운데로 배치하는 레이아웃이다. 프레임 (패널) 우리가 생성한 JButton 객체를 프레임에 붙인다. add(buttons[i], directions[i]); 예제) 보더레이아웃과 배열 응용package _swing;import javax.swing.*;import java.awt.*;/** * 4.28 * 화면과 관련된 작업을 할때 * 배치관리자 L.. 내부 클래스 Inner Class, 논리적으로 응집력 있는 클래스 설계 ⭐내부 클래스 Inner Class 클래스 속 클래스 🤔Why?⭐ 논리적인 그룹화 외부클래스 Outer Class 와 내부 클래스 Inner Class 를 논리적으로 묶어 논리적으로 그룹화한다. 👍이는 코드의 가독성과 구조화를 향상해 관련 클래스들을 유지하는데 도움을 준다. 주로 두 클래스가 연관이 크고 다른 곳에서 쓸일이 없을때 쓴다. 멤버 내부 클래스 Member Inner Class 주로 외부클래스 필드에 선언 ✨정적 내부 클래스 Static Inner Class 외부 클래스의 필드에 선언되지만 static 키워드를 사용하여 선언되는 점이 다르다. public static class xxx { } 지역 내부 클래스 Local Inner Class 메서드 내부에 선언된다. 익명 내부 클래스 A.. 멀티 쓰레드 Multi Threading, 쓰레드 동시 수행... 동기화 처리가 중요 ⭐multi threading 여러 쓰레드가 동시에 수행되는 프로그래밍을 말한다. 여러 작업이 동시에 실행되는 효과를 만들 수 있다. 각각의 쓰레드는 자신만의 변수, 메서드 등 작업 공간을 가질 수 있다. 💀멀티쓰레딩 할 때의 주의점각 쓰레드 사이에는 공유하는 자원을 가질 수 있는데 여러 쓰레드가 자원을 공유하여 작업을 수행한다면 서로 자원을 차지하려는 race condition 발생 가능🐶 이에 따라 의도하지 않은 동작이 발생시킬 수 있다. ⭐이를 해소하기 위해 동기화처리가 필요하다 How? synchronized 구문을 추가해주자 예제)은행에서 하나의 계좌를 사용하는 연관관계 클래스(가족)들을 만들고동기화 처리를 해봤다. 1.은행계좌클래스를 만들고 입금, 출금 메서드 작성2.아빠, 엄마 클래스 작.. 이전 1 2 3 4 5 6 7 ··· 11 다음