728x90
반응형
SMALL
등록버튼 눌러 DB에 갱신
okButton.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
//버튼 클릭시. 사용자가 입력한 정보들을 db에 저장
String name=text_name.getText(); //
int age=Integer.parseInt(text_age.getText()); //문자열 형태로
String number=text_number.getText();
System.out.println(name);
//db에 저장하기 위한 dao객체 생성
ContactDAO dao=new ContactDAO();
dao.addContact(new ContactVO(name,age,number));
dispose();
new ContactView().main(null);
}
});
frame.dispose(); [현재창 닫기]
new 클래스이름().main(null); [클래스이름 페이지로 이동]
다이얼로그의 특성상 창이 꺼져야만 정보가 갱신되기 때문에 dispose()로 껴줘야한다.
DB의 전체정보를 [조회버튼]을 통해 GUI 테이블상에 띄우기
private DefaultTableModel model;
public void allView() {
// DB에서 가져오는 정보 kind_code, item_code, name, price, quantity
ArrayList<MartVO> list = dao.itemSelectAll();
// model 컬럼명 생성성
String[] columnName = { "상품코드", "분류코드", "분류이름","상품이름", "상품가격", "재고수량" };
// 내부 컬럼 데이터 생성 [가져온 DB에 데이터 사이즈][컬럼 개수]
String[][] rowData = new String[list.size()][columnName.length];
for (int row = 0; row < rowData.length; row++) {
rowData[row][0] = list.get(row).getItem_code();
rowData[row][1] = list.get(row).getKind_code();
rowData[row][2] = list.get(row).getKind_name();
rowData[row][3] = list.get(row).getItem_name();
rowData[row][4] = Integer.toString(list.get(row).getPrice());
rowData[row][5] = list.get(row).getQuantity();
} // end for
// 모델 만들고 JTable에 모델 입력
model = new DefaultTableModel(rowData, columnName);
table = new JTable(model);
scrollPane.setViewportView(table);
}
btnNewButton_1.addMouseListener(new MouseAdapter() {
@Override // 조회하기
public void mouseClicked(MouseEvent e) {
allView();
}
});
DefaultTableModel model; 을 선언 해줘야만이 테이블상으로 db정보를 불러올수있음.
DefaultListModel model ; 등 gui 에서 표현할려는 형식에 따라 달라짐
allView란 메서드를 gui 코드상에 만들어서 버튼을 눌렀을때 allView()를 불러 띄우는 형식임
MartVo 단에서 String 형태의 db타입을 받아온후
미리 구현된 DAO 클래스 안에잇는 itemSelectAll() 메서드를 통해서 db를 호출
DAO 안에 있는 조회메서드
// 조회기능
public ArrayList<MartVO> itemSelectAll() {
connection();
ArrayList<MartVO> list = new ArrayList<MartVO>();
try {
String sql = "select\r\n"
+ "i.item_code,i.kind_code,k.kind_name,i.name,i.price,w.quantity\r\n"
+ "FROM item_list i, kind_list k ,warehouse_list w\r\n"
+ "WHERE w.item_code=i.item_code and k.kind_code=i.kind_code\r\n"
+ "ORDER BY i.item_code";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
// insert, update,delete 는 DB을 변경하기 때문에 pst.executeUpdate
// select 같이 DB에 변화가 없는 명령문은 pst.executeQuery
// pst.executeUpdate(); <<<< >>>> rs = pst.executeQuery();
while (rs.next()) {
String item_code = rs.getString(1);
String kind_code = rs.getString(2);
String kind_name = rs.getString(3);
String item_name = rs.getString(4);
int price = rs.getInt(5);
String quantity = rs.getString(6);
list.add(new MartVO(item_code,kind_code,kind_name,item_name,price,quantity));
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
close();
}
return list;
}
UI상에서 업데이트한 내용 바로 UI상에서 확인하기
package TEST3;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.table.DefaultTableModel;
import javax.swing.JScrollPane;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JTable;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.util.ArrayList;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class A_All_Itme_View {
private JFrame frame;
private JTextField textField;
private JTextField textField_1;
private JTable table;
private DefaultTableModel model;
private JScrollPane scrollPane;
Db_DAO dao = new Db_DAO();
/**
* Launch the application.
*/
public void allView() {
// DB에서 가져오는 정보 kind_code, item_code, name, price, quantity
ArrayList<Db_ItemListVO> list = dao.ItemSelectAll();
// model 컬럼명 생성성
String[] columnName = { "상품코드", "분류코드", "분류이름","상품이름", "상품가격", "재고수량" };
// 내부 컬럼 데이터 생성 [가져온 DB에 데이터 사이즈][컬럼 개수]
String[][] rowData = new String[list.size()][columnName.length];
for (int row = 0; row < rowData.length; row++) {
rowData[row][0] = list.get(row).getItem_code();
rowData[row][1] = list.get(row).getName();
rowData[row][2] = list.get(row).getKind_code();
rowData[row][3] = list.get(row).getName();
rowData[row][4] = Integer.toString(list.get(row).getPrice());
rowData[row][5] = Integer.toString(list.get(row).getQuantity());
} // end for
// 모델 만들고 JTable에 모델 입력
model = new DefaultTableModel(rowData, columnName);
table = new JTable(model);
scrollPane.setViewportView(table);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
A_All_Itme_View window = new A_All_Itme_View();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public A_All_Itme_View() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 684, 507);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
scrollPane = new JScrollPane();
scrollPane.setBounds(10, 10, 648, 375);
frame.getContentPane().add(scrollPane);
JLabel lblNewLabel = new JLabel("\uC81C\uD488 \uCF54\uB4DC :");
lblNewLabel.setBounds(10, 392, 88, 31);
frame.getContentPane().add(lblNewLabel);
JLabel lblNewLabel_1 = new JLabel("\uC218 \uB7C9 :");
lblNewLabel_1.setBounds(10, 429, 88, 29);
frame.getContentPane().add(lblNewLabel_1);
textField = new JTextField();
textField.setBounds(82, 395, 116, 21);
frame.getContentPane().add(textField);
textField.setColumns(10);
textField_1 = new JTextField();
textField_1.setColumns(10);
textField_1.setBounds(82, 433, 116, 21);
frame.getContentPane().add(textField_1);
JButton btnNewButton = new JButton("\uC5C5\uB370\uC774\uD2B8");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
btnNewButton.addMouseListener(new MouseAdapter() {
@Override //수량 변경 (업데이트)
public void mouseClicked(MouseEvent e) {
String item_code = textField.getText();
int quantity = Integer.parseInt(textField_1.getText());
// "상품코드", "분류코드", "분류이름","상품이름", "상품가격", "재고수량" };
dao.ItemUpdata(new Db_ItemListVO(item_code, null, null, null, 0, quantity));
Item_insert_Ok.main(null);
allView();
}
});
btnNewButton.setBounds(316, 395, 165, 63);
frame.getContentPane().add(btnNewButton);
JButton btnNewButton_1 = new JButton("\uC870\uD68C");
btnNewButton_1.addMouseListener(new MouseAdapter() {
@Override // 조회하기
public void mouseClicked(MouseEvent e) {
allView();
}
});
btnNewButton_1.setBounds(493, 395, 165, 63);
frame.getContentPane().add(btnNewButton_1);
}
}
728x90
반응형
LIST
'Language > 자바' 카테고리의 다른 글
[자바]2. StringTokenizer // StringBuilder 사용법 (0) | 2021.03.21 |
---|---|
[자바]1. 싱글톤 (0) | 2021.03.12 |
이클립스와 오라클의 새로운 계정 연동 (0) | 2021.01.16 |
[GUI]2 (0) | 2021.01.14 |
[GUI] (0) | 2021.01.12 |