package CHAPTER10.Exams;
/*
 * 실전 프로젝트 5: 도서 관리 시스템
프로그램 작성 조건:

도서 정보를 입력받는 JTextField와 JComboBox를 추가하세요.
"추가" 버튼으로 도서 정보를 JTextArea에 표시하세요. (이벤트는 제외)
실행 결과:

사용자가 입력한 도서 정보가 화면에 리스트 형식으로 표시됩니다.
힌트:

JPanel을 활용하여 입력 영역과 출력 영역을 분리하세요.
 */
import javax.swing.*;
import java.awt.*;

public class Project5BookManager extends JFrame {
    public Project5BookManager() {
    	
        setTitle("실전 프로젝트 5: 도서 관리 시스템");
        setSize(600, 400);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        // 상단 입력 패널
        JPanel inputPanel = new JPanel(new GridLayout(4, 2, 10, 10));
        inputPanel.add(new JLabel("책 제목:", SwingConstants.CENTER));
        JTextField titleField = new JTextField();
        inputPanel.add(titleField);

        inputPanel.add(new JLabel("저자:", SwingConstants.RIGHT));
        JTextField authorField = new JTextField();
        inputPanel.add(authorField);

        inputPanel.add(new JLabel("출판 연도:", SwingConstants.RIGHT));
        JTextField yearField = new JTextField();
        inputPanel.add(yearField);

        inputPanel.add(new JLabel("장르:", SwingConstants.RIGHT));
        JComboBox<String> genreComboBox = new JComboBox<>(new String[] { "소설", "과학", "역사", "기타" });
        inputPanel.add(genreComboBox);

        // 중앙 출력 영역
        JTextArea bookListArea = new JTextArea();
        bookListArea.setEditable(false);
        JScrollPane scrollPane = new JScrollPane(bookListArea);

        // 하단 버튼 패널
        JPanel buttonPanel = new JPanel();
        JButton addButton = new JButton("추가");
        buttonPanel.add(addButton);

        // 컴포넌트 추가
        add(inputPanel, BorderLayout.NORTH);
        add(scrollPane, BorderLayout.CENTER);
        add(buttonPanel, BorderLayout.SOUTH);
    }

    public static void main(String[] args) {
        Project5BookManager frame = new Project5BookManager();
        
        frame.setVisible(true);
    }
}

/*
 * 실전 프로젝트 5: 도서 관리 시스템
주요 로직:

JTextField와 JComboBox로 사용자 입력을 받고, JTextArea에 결과를 출력.
"추가" 버튼을 눌렀을 때 입력값을 JTextArea에 추가하는 기능을 준비.
주의사항:

JTextArea에 내용을 추가할 때 append() 메서드를 사용하세요.
입력값의 검증을 추가하려면 각 JTextField의 getText() 값에 대한 조건을 작성해야 합니다.
 
 */