11. 수정, 삭제 구현
-수정 구현
*ItemTable 파일에 수정 코드 입력(ItemTable.java)
// 수정하기
public void updateItems() throws Exception {
for (int i = 0; i < this.getRowCount(); i++) {
String code = this.getModel().getValueAt(i, 0).toString();
String name = this.getModel().getValueAt(i, 1).toString();
String text = this.getModel().getValueAt(i, 2).toString();
String price = this.getModel().getValueAt(i, 3).toString();
String quantity = this.getModel().getValueAt(i, 4).toString();
Item item = new Item();
item.setCode(Integer.parseInt(code));
item.setName(name);
item.setText(text);
item.setPrice(Integer.parseInt(price));
item.setQuantity(Long.parseLong(quantity));
ItemDB.getInstance().updateItem(item);
}
}
*이전에 목록 생성 시 버튼 사용 활성화를 위해 코드 입력한 것이 있어 그대로 사용한다.(SelectPanel.java)
@Override
public void actionPerformed(ActionEvent e) { // 버튼 액션 활성화
if (e.getSource() == button1) { // 수정
try {
ItemTable.getInstance().updateItems();
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
*구현
-삭제 구현
*ItemTable 파일에 삭제 코드 입력(ItemTable.java)
// 삭제하기
public void deleteItems() throws Exception {
int[] rows = this.getSelectedRows(); // 선택된 위치 정보
if (rows.length <= 0) {
JOptionPane.showMessageDialog(this, "물품삭제실패", "실패", JOptionPane.WARNING_MESSAGE);
} else {
for (int idx : rows) {
String code = this.getModel().getValueAt(idx, 0).toString();
Item item = new Item();
item.setCode(Integer.parseInt(code));
ItemDB.getInstance().deleteItem(item);
}
this.refreshData();
}
}
*이전에 목록 생성 시 버튼 사용 활성화를 위해 코드 입력한 것이 있어 그대로 사용한다.(SelectPanel.java)
@Override
public void actionPerformed(ActionEvent e) { // 버튼 액션 활성화
if (e.getSource() == button2) { // 삭제
try {
int ret = JOptionPane.showConfirmDialog(null, "삭제 하시겠습니까", "삭 제", JOptionPane.OK_CANCEL_OPTION);
if (ret == 0) {
ItemTable.getInstance().deleteItems();
}
} catch (Exception e1) {
e1.printStackTrace();
}
}
}
*ItemDB.java 코드 입력
public int deleteItem(Item item) throws Exception{ //삭제
DeleteResult result = this.collection.deleteOne(Filters.eq("_id",item.getCode()));
if(result.getDeletedCount() == 1) {
return 1;
}
return 0;
}
*구현
**ItemTable에서 만든 선택하지 않았을 때 삭제 실패 알림 확인
-물품 추가 후 목록 자동 갱신
*ItemFrame에 코드 입력(ItemFrame.java)
**기존 implements ~~를 implements ChangeListener 로 수정 후 override 한다.
**생성자의 tab 코드에 tabbedPane.addChangeListener(this); 추가 한다.
public class ItemFrame extends JFrame implements ChangeListener {
private JTabbedPane tabbedPane = null;
@Override
public void stateChanged(ChangeEvent e) {
System.out.println(e.getSource());
int idx = tabbedPane.getSelectedIndex();
if (idx == 2) {
ItemTable.getInstance().refreshData();
}
}
//tab
tabbedPane = new JTabbedPane();
tabbedPane.add("홈", new HomePanel());
tabbedPane.add("물품등록", new InsertPanel());
tabbedPane.add("물품목록", new SelectPanel());
tabbedPane.setSelectedIndex(0);
tabbedPane.addChangeListener(this);
this.add(tabbedPane);
*구현
'Java' 카테고리의 다른 글
Java 일지 #13 (20210827) 이클립스 활용1 (0) | 2021.08.27 |
---|---|
Java 일지 #12 이클립스 연동, 오라클 생성 (0) | 2021.08.27 |
Java 일지 #10 등록, 목록(20210826) (0) | 2021.08.27 |
Java 일지 #9 New Project(20210826) (0) | 2021.08.26 |
Java 일지 #8 Frame(2) (0) | 2021.08.26 |