개요
*설계할때에는 먼저 테이블을 만들어야하는데 최근에는 자바에서 클래스로 모델을 먼저 만드는 경우도 있다고 한다.
*모델마다 dao가 필요하다는 점 꼭 참고하자
그룹을 스트링으로하면 도메인설정이 되지 않는다.
아래에서 enum으로 설정하는 법을 알아보자.
enum을 쓰면 강제성이 생긴다.
타입을 지정해버리면 다른 타입을 넣을 수 없다.
group타입을 이넘으로 바꾸자
싱글톤으로 MemberDao 제작
빌드패스
테스트를 위한 내부라이브러리 빌드패스
JUnit은 일부 메서드를 테스트하기위한 기능이다.
일단 4번을 쓰자
스태틱이면 안되고 void여야한다고 에러가남(참고만하자)
테스트 파일을 하나 만들어서 아까 것을 테스트 해본다.
정상이면 빨강이다.
DBUtils에는 DB에 필요한 부가기능들을 넣자
gui
package address.gui;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import address.model.GroupType;
import address.model.Member;
public class MainFrame extends JFrame {
private JFrame mainFrame = this;
private Container backgroundPanel;
private JPanel topPanel, menuPanel, listPanel;
private JButton homeButton, frButton, coButton, scButton, faButton, addButton;
private JList<Member> userList;
private DefaultListModel<Member> listModel; // Jlist에 이것을 넣어야 한다.
private JScrollPane jsPane;
public MainFrame() {
initObject();
initData();
initDesign();
initListener();
setVisible(true);
}
// new
private void initObject() {
backgroundPanel = getContentPane();
topPanel = new JPanel();
menuPanel = new JPanel();
listPanel = new JPanel();
homeButton = new JButton("주소록 전체");
frButton = new JButton("친구");
coButton = new JButton("회사");
scButton = new JButton("학교");
faButton = new JButton("가족");
addButton = new JButton("추가");
listModel = new DefaultListModel<>();
userList = new JList<>(listModel);
jsPane = new JScrollPane(userList); // 뒤의 패널색깔을 유지하려면 그냥 ScrollPane을 이용하자
}
// 데이터 초기화
private void initData() {
for (int i = 1; i < 31; i++) {
listModel.addElement(new Member(i, "홍길동", "0102222", "부산시", GroupType.친구));
}
}
// 디자인
private void initDesign() {
// 1. 기본세팅
setTitle("주소록 메인");
setSize(400, 500);
setLocationRelativeTo(null); // 모니터 중앙에 배치
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 2. 패널세팅
backgroundPanel.setLayout(new BorderLayout());
topPanel.setLayout(new GridLayout(2,1));
menuPanel.setLayout(new GridLayout(1,4));
listPanel.setLayout(new BorderLayout());
// 3. 디자인
userList.setFixedCellHeight(50); // 리스트각각의 높이
topPanel.setPreferredSize(new Dimension(0, 100)); // 그리드레이아웃이라 가로를 0으로해도 자동으로 꽉차게된다.
// 4. 패널에 컴포넌트 추가
menuPanel.add(frButton);
menuPanel.add(coButton);
menuPanel.add(scButton);
menuPanel.add(faButton);
listPanel.add(jsPane);
topPanel.add(homeButton);
topPanel.add(menuPanel);
backgroundPanel.add(topPanel, BorderLayout.NORTH);
backgroundPanel.add(listPanel, BorderLayout.CENTER);
backgroundPanel.add(addButton, BorderLayout.SOUTH);
}
// 리스너 등록
private void initListener() {
}
}
'Programming Language > Java' 카테고리의 다른 글
자바 데이터베이스 모델과 DAO의 원칙 (0) | 2020.05.15 |
---|---|
자바 롬복 lombok builder (0) | 2020.05.15 |
자바 스윙 카드 레이아웃 요점 (프로젝트 진행) (0) | 2020.05.06 |
자바 스윙 쿠키런 만들기 paintComponent 설정 (프로젝트 진행) (9) | 2020.05.06 |
자바 스윙 쿠키런 만들기 jump() 메서드 (프로젝트 진행) (0) | 2020.05.06 |