화면 자바 스윙
DB 오라클사용
메인클래스
package main;
import gui.WordMGR;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
new WordMGR();
}
}
단어장관리 클래스
package gui;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import DAO_DTO.Word_DAO;
import DAO_DTO.Word_DTO;
public class WordMGR extends JFrame implements ActionListener, ItemListener {
/**
*
*/
private static final long serialVersionUID = 8432360310016535040L;
// 패널객체생성
JPanel centerP = new JPanel();
JPanel centerP1 = new JPanel();
JPanel centerP2 = new JPanel();
JPanel centerP3_1 = new JPanel();
JPanel centerP3_2 = new JPanel();
JPanel centerP3_3 = new JPanel();
JPanel NorthP = new JPanel();
JPanel SouthP = new JPanel();
// 라벨객체 생성
JLabel titleLB = new JLabel(" 단어관리 프로그램 ver 1.0");
JLabel word = new JLabel(" 영단어");
JLabel mean = new JLabel(" 한글뜻");
JLabel memo = new JLabel(" 메 모");
JLabel imp = new JLabel(" 중요도");
JLabel empty = new JLabel("");
JLabel footLB = new JLabel(" 개발자 조하영");
// 텍스트필드 객체생성
JTextField searchWord = new JTextField(10);
JTextField wordIn = new JTextField(12);
JTextField meanIn = new JTextField(12);
JTextField memoIn = new JTextField(12);
JTextField impIn = new JTextField(12);
// 버튼 객체생성
JButton add = new JButton("단어추가");
JButton del = new JButton("단어삭제");
JButton show = new JButton("단어보기");
JButton search = new JButton("search");
JButton save = new JButton("저장하기");
List wordList = new List(9);
JTextArea wordInfo = new JTextArea(9, 14);
Word_DAO wdao = new Word_DAO();
Word_DTO wdto = new Word_DTO();
public WordMGR() {// 로그인 창 만들어보기
// 창 만들기
this.setBounds(100, 300, 300, 350);// 사이즈 설정(x좌표, y좌표 ,너비, 높이)
// 창에 프레임 배치
this.add(NorthP, "North");
this.add(centerP, "Center");
this.add(SouthP, "South");
// 패널 레이아웃 지정
centerP.setLayout(new FlowLayout(FlowLayout.RIGHT));
NorthP.setLayout(new FlowLayout(FlowLayout.LEFT));
SouthP.setLayout(new FlowLayout(FlowLayout.LEFT));
centerP3_1.setLayout(new GridLayout(5, 2));
titleLB.setFont(new Font(null, Font.BOLD, 15));
footLB.setFont(new Font(null, Font.BOLD, 15));
NorthP.add(titleLB);
SouthP.add(footLB);
// 센터페널안에 3개의 패널 배치
centerP.add(centerP1);
centerP.add(centerP2);
// 센터패널 1에 버튼과 텍스트 필드 추가
centerP1.add(searchWord);
centerP1.add(search);
// 센터패널 2에 버튼 배치
centerP2.add(add);
centerP2.add(del);
centerP2.add(show);
// 센터패널 3_1
centerP3_1.add(word);
centerP3_1.add(wordIn);
centerP3_1.add(mean);
centerP3_1.add(meanIn);
centerP3_1.add(imp);
centerP3_1.add(impIn);
centerP3_1.add(memo);
centerP3_1.add(memoIn);
centerP3_1.add(empty);
centerP3_1.add(save);
// 센터패널 3_2
centerP3_2.setLayout(new BorderLayout());
centerP3_2.add(wordList, "West");
centerP3_2.add(wordInfo, "East");
// 액션리스너 인터페이스의 기능을 사용하기 위함
add.addActionListener(this);
del.addActionListener(this);
show.addActionListener(this);
search.addActionListener(this);
save.addActionListener(this);
wordList.addItemListener(this);
this.setResizable(false);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
Object temp = e.getSource();
if (temp.equals(add)) {
centerP.add(centerP3_1);
centerP3_2.setVisible(false);
centerP3_3.setVisible(false);
centerP3_1.setVisible(true);
this.setVisible(true);
} else if (temp.equals(del)) {
} else if (temp.equals(show)) {
centerP.add(centerP3_2);
ArrayList<Word_DTO> wList = wdao.allSelect();
wordList.removeAll();
for (Word_DTO i : wList) {
wordList.add(i.getWord());
}
centerP3_1.setVisible(false);
centerP3_3.setVisible(false);
centerP3_2.setVisible(true);
this.setVisible(true);
} else if (temp.equals(search)) {
centerP.add(centerP3_2);
String word = searchWord.getText();
searchWord.setText("");
ArrayList<Word_DTO> wList = wdao.search(word);
wordList.removeAll();
for (Word_DTO i : wList) {
wordList.add(i.getWord());
}
centerP3_1.setVisible(false);
centerP3_3.setVisible(false);
centerP3_2.setVisible(true);
} else if (temp.equals(save)) {
String word = wordIn.getText();
String mean = meanIn.getText();
String memo = memoIn.getText();
String imp = impIn.getText();
wordIn.setText("");
meanIn.setText("");
memoIn.setText("");
impIn.setText("");
wdto.setWord(word);
wdto.setMean(mean);
wdto.setMemo(memo);
wdto.setImp(imp);
wdao.insertWord(wdto);
}
}
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getSource().equals(wordList)) {
String selWord = wordList.getSelectedItem();
Word_DTO wdto = wdao.SelectOne(selWord);
wordInfo.setText("");
wordInfo.append("영단어: " + wdto.getWord() + "\n");
wordInfo.append("한글뜻: " + wdto.getMean() + "\n");
wordInfo.append("중요도: " + wdto.getImp() + "\n");
wordInfo.append("메 모: " + wdto.getMemo() + "\n");
}
}
}
DAO클래스
package DAO_DTO;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
public class Word_DAO {
private Connection conn = null;
public Word_DAO() {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public boolean connect() {
try {
conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "system", "11111111");
return true;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return false;
}
}
public void insertWord(Word_DTO wdto) {
if (connect()) {
String sql = "insert into word2 values(?,?,?,?)";
try {
PreparedStatement psmt = conn.prepareStatement(sql);
psmt.setString(1, wdto.getWord());
psmt.setString(2, wdto.getMean());
psmt.setString(3, wdto.getImp());
psmt.setString(4, wdto.getMemo());
psmt.executeUpdate();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("catch??");
}
} else {
System.out.println("연결실패");
}
}
public ArrayList<Word_DTO> allSelect() {
ResultSet rs;
if (connect()) {
String sql = "select * from word2";
ArrayList<Word_DTO> wList = new ArrayList<>();
try {
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while (rs.next()) {
Word_DTO tempW = new Word_DTO();
tempW.setWord(rs.getString("word"));
tempW.setMean(rs.getString("mean"));
tempW.setImp(rs.getString("imp"));
tempW.setMemo(rs.getString("memo"));
wList.add(tempW);
}
conn.close();
return wList;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
System.out.println("연결실패");
}
return null;
}
public Word_DTO SelectOne(String word) {
ResultSet rs;
Word_DTO tempW = null;
if (connect()) {
String sql = "select * from word2 where word = ?";
try {
PreparedStatement psmt = conn.prepareStatement(sql);
psmt.setString(1, word);
rs = psmt.executeQuery();
if (rs.next()) {
tempW = new Word_DTO();
tempW.setWord(rs.getString("word"));
tempW.setMean(rs.getString("mean"));
tempW.setImp(rs.getString("imp"));
tempW.setMemo(rs.getString("memo"));
}
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} else {
System.out.println("연결실패");
}
return tempW;
}
public ArrayList<Word_DTO> search(String word) {
ResultSet rs;
if (connect()) {
String sql = "select * from word2 where word like "+"'%"+word+"%'";
ArrayList<Word_DTO> wList = new ArrayList<>();
try {
Statement stmt = conn.createStatement();
rs = stmt.executeQuery(sql);
while (rs.next()) {
Word_DTO tempW = new Word_DTO();
tempW.setWord(rs.getString("word"));
tempW.setMean(rs.getString("mean"));
tempW.setImp(rs.getString("imp"));
tempW.setMemo(rs.getString("memo"));
wList.add(tempW);
}
conn.close();
return wList;
} catch (SQLException e) {
e.printStackTrace();
}
} else {
System.out.println("연결실패");
}
return null;
}
}
DTO클래스
package DAO_DTO;
public class Word_DTO {
private String word = null;
private String mean = null;
private String imp = null;
private String memo = null;
public String getWord() {
return word;
}
public void setWord(String word) {
this.word = word;
}
public String getMemo() {
return memo;
}
public void setMemo(String memo) {
this.memo = memo;
}
public String getMean() {
return mean;
}
public void setMean(String mean) {
this.mean = mean;
}
public String getImp() {
return imp;
}
public void setImp(String imp) {
this.imp = imp;
}
}