본문 바로가기

java

(102)
스프링 프레임워크 # 스프링 프레임워크는 주요 기능으로 DI, AOP, MVC, JDBC 등을 제공한다 [ 스프링 프레임워크 모듈 ] 1. spring-core : 스프링의 핵심인 DI(Dependency Injection)와 IoC(Inversion of Control)를 제공 2. spring-aop : AOP구현 기능 제공 3. spring-jdbc : 데이터베이스를 쉽게(적은 양의 코드) 다룰 수 있는 기능 제공 4. spring-tx : 스프링에서 제공하는 트랜잭션 관련 기능 제공 5. spring-webmvc : 스프링에서 제공하는 컨트롤러와 뷰를 이용한 스프링 MVC 구현 기능 제공 # 스프링 프레임워크에서 제공하고 있는 모듈을 사용하려면, 모듈에 대한 의존 설정을 개발 프로젝트에 XML 파일등을 이용해서 개..
[팀플 - movie_kiosk] 9th course (CRUD) 오늘 시도한 기능 구현은 게시판의 가장 기초적이면서 핵심적인 CRUD이다 아직 검색 기능까지는 구현하지 못했지만, 상품을 추가/수정/삭제할 수 있게 기능을 구현하였다 처음으로는, 원래 UI 테스트용으로 넣어놨던 상품들을 다 삭제하고 DB에 상품들을 추가한 후에 이클립스와 연동해서 GUI로 화면을 띄웠다 상품 재고를 가져오는 코드이다. ProductsInventory는 DB의 모델이고 그 모델 안에 sql문으로 모든 것을 가져와서 ArrayList배열에 넣어준다 후에, 원하는 페이지(현재는 관리자 페이지)에서 모델 안에 들어 있는 값들을 하나씩 꺼내서 원하는 위치에 값을 넣어주는 형식으로 진행하였다 영화관의 재고관리 자체가 애매한 부분이 참 많아서 (팝콘과 음료의 재고를 개당으로 표현하기 애매) 완제로 나..
[팀플 - movie_kiosk] ScrollPane 사용법 이번 팀 프로젝트 진행과정에서 제일 오류가 많았던 부분이 이 스크롤 기능이었다 7일 차에도 간략하게 설명하였지만, 한번 더 오류를 겪게 되었고 조금 더 자세히 기록해두어야 할 필요성을 느끼게 되었다 Swing에서 Scroll을 사용하려면 JScrollPane scroll = new JScrollPane(Component); 우리는 Component부분에 패널을 넣었는데 그 패널이 맨 위 사진의 코드이다 하지만 그 panel 안에도 여러 개의 패널이 들어간다 처음 Component에 들어가는 panel은 위 장바구니 Frame안에 각각의 메뉴들이 다 들어있는 panel이고(편의상 mainP라고 하겠다), 그 panel 안에 panel들이 각각의 상품을 나타내는 더 작은 panel 들이다(편의상 miniP라..
[팀플 - movie_kiosk] 7th course (스크롤 이슈 해결 및 디자인 수정) 사진과 같이 장바구니 프레임에서 스크롤이 전혀 되지 않고 있었다 첫 프레임의 메뉴바에서는 선택하고 싶은 메뉴를 선택했을 때, 해당하는 상품들이 GridLayout으로 들어가 원하는 그림대로 스크롤을 적용할 수 있었는데 장바구니에서는 적용되지 않고 있었다 다 똑같이 했는데 장바구니만 안돼서 많이 답답했다 여러 가지를 많이 고쳐봐도 고쳐지지 않았고, 계속해서 고쳐보다가 Layout 문제인 거를 깨닫고 코드 하나하나 주석처리하면서 이슈 발생지점을 좁혀나갔다 해답은 생각보다 많이 간단했다 Detail_P2_C 클래스는 장바구니에 추가되는 각각의 상품들을 만드는 클래스이다 이 클래스는 setLayout이 처음에는 null이였다 각각의 레이아웃이 null이 들어간 상태에서 상품들이 들어가는 총패널을 GridLayo..
Java 통아저씨 게임 만들기 왼쪽 화면은 콘솔에 출력된 게임 진행과정이다 player 클래스에서는 생성자로 이름을 받고 게임이 끝났을 때, 결과를 win/lose로 나누어서 전적 관리를 한다 그래픽 클래스는 말 그대로 콘솔에 보기 쉽게 출력하기 위해서 만든 클래스이다 printTong 함수는 찌를 수 있는 공간이라면 즉, 빈 공간인 경우에는 0을 출력 그렇지 않다면 X를 출력해준다 그리고 15개씩 끊기 위해서 가정문으로 15개가 한 줄에 채워졌을 때 \n을 넣어준다 통아저씨 클래스에서는 주석처리를 잘해놔서 따로 부연설명 X 메인에서는 Scanner를 통해 유저들을 등록해주고 통아저씨의 구멍을 30개로 지정한 후에 게임을 시작한다 턴을 넘기는 과정이 생각보다 단순하면서 어려웠는데 플레이어 2명이 각각 0,1이라고 생각했을 때 0 % ..
Java 전화번호부 만들기 위 사진은 메인에서 원하는 정보들을 전화번호부에 넣었을 때, 콘솔에 출력되는 화면이다 Info 생성자에서는 이름과 나이, 핸드폰 번호를 매개변수로 받고 (toString은 콘솔에 어떤 걸 출력할지 나타내준다) compareTo 함수는 Comparable를 이용해 전화번호부에 있는 것들과 이름이 같지 않다면 핸드폰 번호순으로 정렬하고 이름이 같다면 이름순으로 정렬하게 만들어준다 그리고 새로운 그룹을 추가할 때, 만약 phonebook이 매개변수로 받는 새로운 그룹 이름을 가지고 있다면 "이미 존재하는 그룹입니다"를 콘솔에 출력해주고 return false를 해준다 반대로 만약 이미 존재하지 않다면 전화번호부에 추가해주고 추가된 내용을 콘솔에 출력해준다 위에 함수는 주석 처리된 내용의 함수들!
Java 학교만들기 (클래스 나누기 복습) 예전에 한걸 다시 복습하면서 보게 되면, '왜 이걸 힘들어했지..?' 싶을 정도이다 못 올린 TIL들이 3개 정도 있어서 뒤늦게라도 복습 차원 차 포스팅한다 학교 만들기는, 클래스를 나누어 상속받으면서 이클립스 콘솔에 출력해보는 연습용 문제였다 옆에 사진처럼, 랜덤으로 이름을 만들고 각 학생들의 성적표를 출력해주는 문제이다 Student 클래스를 만들어서 각 반에서 상속받아 진행한다 이름들을 배열로 지정하고, generateRandomName 함수는 이용해서 각각의 배열에서 랜덤으로 뽑은 이름들을 더해주고 리턴해준다 마찬가지로, generateRandomScore 함수는 맥스 스코어를 이용해서 학생들의 점수를 랜덤으로 뽑아줄 때 필요한 함수이다 그리고 생성자에는 이름을 함수로 받고, 공통과목인 국어와 영..
Java 행맨 구현 위 사진은 행맨을 Swing-GUI로 구현한 결과물이다 함수부터 설명하는 것이 나을 것 같다 getWordList는 path를 매개변수로 받아서 BufferedReader 클래스로 입력받은 path(=텍스트 파일)를 읽어오고 ArrayList인 word_array(String)에 넣는 후, 리턴해준다 correctWord 함수는 위에서 리턴받은 array를 넣어주고 랜덤으로 한개의 단어를 뽑아서 그 단어를 리턴해준다 (랜덤 단어를 맞춰야 하기 때문에) 그리고 메인에서는 밑에서 만들 생성자를 호출시켜준다 위 함수들을 이용해서, 단어를 하나 뽑고 그 단어를 LowerCase를 이용해서 모든 글자를 소문자로 반환한다 (사용자가 대소문자 구별 안하게 하기 위해서) 그리고 GUI 화면 상 '_' (빈칸으로 보이게..