'한빛아카데미 - JAVA 마스터' 교재의 프로젝트 내용입니다.
PART14 윈도우 기반 온라인 서점 만들기
com.market.main 패키지
- Welcome 클래스 생성
package com.market.main;
public class Welcome {
public static void main(String[] args) {
new GuestWindow("고객 정보 입력", 0, 0, 1000, 750);
}
}
com.market.main 패키지
- GuestWindow 클래스 수정
package com.market.main;
import javax.swing.*;
import java.awt.*;
import com.market.member.UserInIt;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GuestWindow extends JFrame {
public GuestWindow(String title, int x, int y, int width, int height) {
initContainer(title, x, y, width, height); // initContainer() 메서드 호출
setVisible(true); // 프레임 보이기 설정
setResizable(true); // 프레임 크기 조절 가능 설정
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); // 프레임 닫기 버튼 가능 설정
setIconImage(new ImageIcon("src/images/shop.png").getImage()); // 프레임 아이콘 표시 // ./images/shop.png 이미지 불러오지 못함
}
private void initContainer(String title, int x, int y, int width, int height) {
setTitle(title); // 프레임 제목 설정
setBounds(x, y, width, height); // 프레임 위치, 크기 설정
setLayout(null); // 프레임 레이아웃 미설정
Font ft;
ft = new Font("함초롬돋움", Font.BOLD, 15); // 글꼴, 스타일, 크기 설정
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screenSize.width - 1000) / 2, (screenSize.height - 750 ) / 2); // 컴퓨터 화면에 맞춰 프레임 창을 화면 중앙에 출력
// user.png 이미지 표시를 위한 패널 영역 설정 및 출력
JPanel userPanel = new JPanel();
userPanel.setBounds(0, 100, 1000, 256);
ImageIcon imageIcon = new ImageIcon("src/images/user.png"); // ./images/user.png 이미지 불러오지 못함
imageIcon.setImage(imageIcon.getImage().getScaledInstance(160, 160, Image.SCALE_SMOOTH));
JLabel userLabel = new JLabel(imageIcon);
userPanel.add(userLabel);
add(userPanel);
// -- 고객 정보를 입력하세요 -- 표시를 위한 패널 영역 설정 및 출력
JPanel titlePanel = new JPanel();
titlePanel.setBounds(0, 350, 1000, 50);
add(titlePanel);
JLabel titleLabel = new JLabel("-- 고객 정보를 입력하세요 --");
titleLabel.setFont(ft); // JLabel인 titleLabel 글꼴 설정
titleLabel.setForeground(Color.BLUE); // JLabel인 titleLabel 문자열 색상 설정
titlePanel.add(titleLabel);
// 이름 표시를 위한 패널 영역 설정 및 출력
JPanel namePanel = new JPanel();
namePanel.setBounds(0, 400, 1000, 50);
add(namePanel);
JLabel nameLabel = new JLabel("이 름 : ");
nameLabel.setFont(ft);
namePanel.add(nameLabel);
// 이름 표시를 위한 패널 영역 설정 및 출력
JTextField nameField = new JTextField(10);
nameField.setFont(ft);
namePanel.add(nameField);
// 연락처 표시를 위한 패널 영역 설정 및 출력
JPanel phonePanel = new JPanel();
phonePanel.setBounds(0, 450, 1000, 50);
add(phonePanel);
JLabel phoneLabel = new JLabel("연락처 : ");
phonePanel.setFont(ft);
phonePanel.add(phoneLabel);
JTextField phoneField = new JTextField(10);
phonePanel.setFont(ft);
phonePanel.add(phoneField);
// <쇼핑하기> 버튼 표시를 위한 패널 영역 설정 및 출력
JPanel buttonPanel = new JPanel();
buttonPanel.setBounds(0, 500, 1000, 100);
add(buttonPanel);
JLabel buttonLabel = new JLabel("쇼핑하기", new ImageIcon("src/images/shop.png"), JLabel.LEFT); // images/shop.png 이미지 불러오지 못함
buttonLabel.setFont(ft);
JButton enterButton = new JButton();
enterButton.add(buttonLabel);
buttonPanel.add(enterButton);
enterButton.addActionListener(new ActionListener() { // 쇼핑하기 버튼의 클릭 이벤트 처리
public void actionPerformed(ActionEvent e) {
JLabel message = new JLabel("고객 정보를 입력하세요");
if(nameField.getText().isEmpty() || phoneField.getText().isEmpty()) // 이름 또는 연락처를 입력하지 않았을 때 오류 메시지 대화상자 표시
JOptionPane.showMessageDialog(enterButton, message, "고객정보", JOptionPane.ERROR_MESSAGE);
else { // 이름 또는 연락처를 입력했을 때 온라인 서점 프레임 생성 호출
UserInIt.init(nameField.getText(), Integer.parseInt(phoneField.getText())); // 입력한 고객 정보 저장
dispose(); // 대화상자 닫기
new MainWindow("온라인 서점", 0, 0, 1000, 750);
// MinWindow 프레임 호출
}
}
});
}
}
- MainWindow 클래스 수정
package com.market.main;
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import com.market.page.GuestInfoPage;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import com.market.cart.Cart;
import com.market.bookitem.BookInIt;
import com.market.page.CartAddItemPage;
import com.market.page.CartItemListPage;
import com.market.page.CartShippingPage;
import com.market.page.AdminLoginDialog;
import com.market.page.AdminPage;
public class MainWindow extends JFrame {
static Cart mCart;
static JPanel mMenuPanel, mPagePanel;
public MainWindow(String title, int x, int y, int width, int height) {
initContainer(title, x, y, width, height); // initContainer() 메서드 호출
initMenu();
setVisible(true); // 프레임 보이기 설정
setResizable(true); // 프레임 크기 조절 가능 설정
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); // 프레임 닫기 버튼 가능 설정
setIconImage(new ImageIcon("src/images/shop.png").getImage()); // 프레임 아이콘 표시 // ./images/shop.png 이미지 불러오지 못함
}
private void initContainer(String title, int x, int y, int width, int height) {
setTitle(title);
; // 프레임 제목 설정
setBounds(x, y, width, height); // 프레임 위치, 크기 설정
setLayout(null); // 프레임 레이아웃 미설정
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screenSize.width - 1000) / 2, (screenSize.height - 750) / 2); // 컴퓨터 화면에 맞춰 프레임 창을 화면 중앙에 출력
mMenuPanel = new JPanel();
mMenuPanel.setBounds(0, 20, width, 130);
menuIntroduction();
add(mMenuPanel);
mPagePanel = new JPanel();
mPagePanel.setBounds(0, 150, width, height);
add(mPagePanel);
this.addWindowListener(new WindowAdapter() { // 프레임 닫기 버튼 클릭 이벤트 처리
@Override
public void windowClosed(WindowEvent e) {
setVisible(false); // 현재 프레임 감추기
new GuestWindow("고객 정보 입력", 0, 0, 1000, 750);
}
});
}
private void menuIntroduction() {
mCart = new Cart();
Font ft;
ft = new Font("함초롬돋움", Font.BOLD, 15); // 글꼴, 스타일, 크기 설정
JButton bt1 = new JButton("고객 정보 확인하기", new ImageIcon("src/images/1.png"));
bt1.setBounds(0, 0, 100, 50);
bt1.setFont(ft);
mMenuPanel.add(bt1);
// <고객 정보 확인하기> 버튼 표시를 위한 패널 영역 설정 및 출력
bt1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mPagePanel.removeAll(); // 패널(mPagePanel)에 표시된 구성 요소 모두 삭제
mPagePanel.add("고객 정보 확인", new GuestInfoPage(mPagePanel)); // 패널(mPagePanel)에 GuestInfoPage의 내용 출력
mPagePanel.revalidate(); // 구성 요소 가로/세로 속성 변경하여 호출
mPagePanel.repaint(); // 구성요소 모양을 변경하여 호출
}
});
JButton bt2 = new JButton("장바구니 상품목록보기", new ImageIcon("src/images/2.png"));
bt2.setBounds(0, 0, 100, 30);
bt2.setFont(ft);
mMenuPanel.add(bt2);
// <장바구니 상품 목록보기> 버튼 표시를 위한 패널 영역 설정 및 출력
bt2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (mCart.mCartCount == 0)
JOptionPane.showMessageDialog(bt2, "장바구니에 항목이 없습니다", "장바구니 상품 목록 보기", JOptionPane.ERROR_MESSAGE);
else {
mPagePanel.removeAll();
mPagePanel.add("장바구니 상품 목록 보기", new CartItemListPage(mPagePanel, mCart));
mPagePanel.revalidate();
mPagePanel.repaint();
}
}
});
// <장바구니 비우기> 버튼 표시를 위한 패널 영역 설정 및 출력
JButton bt3 = new JButton("장바구니 비우기", new ImageIcon("src/images/3.png"));
bt3.setBounds(0, 0, 100, 30);
bt3.setFont(ft);
mMenuPanel.add(bt3);
bt3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (mCart.mCartCount == 0)
JOptionPane.showMessageDialog(bt3, "장바구니에 항목이 없습니다", "장바구니 비우기", JOptionPane.ERROR_MESSAGE);
else {
mPagePanel.removeAll();
menuCartClear(bt3);
mPagePanel.add("장바구니 비우기", new CartItemListPage(mPagePanel, mCart));
mPagePanel.revalidate();
mPagePanel.repaint();
}
}
});
// <장바구니에 항목 추가하기> 버튼 표시를 위한 패널 영역 설정 및 출력
JButton bt4 = new JButton("장바구니에 항목추가하기", new ImageIcon("src/images/4.png"));
bt4.setFont(ft);
mMenuPanel.add(bt4);
bt4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mPagePanel.removeAll();
BookInIt.init();
mPagePanel.add("장바구니에 항목 추가하기", new CartAddItemPage(mPagePanel, mCart));
mPagePanel.revalidate();
mPagePanel.repaint();
}
});
// <장바구니의 항목 수량 줄이기> 버튼 표시를 위한 패널 영역 설정 및 출력
JButton bt5 = new JButton("장바구니에 항목수량 줄이기", new ImageIcon("src/images/5.png"));
bt5.setFont(ft);
mMenuPanel.add(bt5);
// <장바구니의 항목 삭제하기> 버튼 표시를 위한 패널 영역 설정 및 출력
JButton bt6 = new JButton("장바구니에 항목삭제하기", new ImageIcon("src/images/6.png"));
bt6.setFont(ft);
mMenuPanel.add(bt6);
bt6.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (mCart.mCartCount == 0)
JOptionPane.showMessageDialog(bt3, "장바구니에 항목이 없습니다", "장바구니 비우기", JOptionPane.ERROR_MESSAGE);
else {
mPagePanel.removeAll();
CartItemListPage cartList = new CartItemListPage(mPagePanel, mCart);
if (mCart.mCartCount == 0)
JOptionPane.showMessageDialog(bt6, "장바구니에 항목이 없습니다");
else if (cartList.mSelectRow == -1)
JOptionPane.showMessageDialog(bt6, "장바구니에서 삭제할 항목을 선택하세요");
else {
mCart.removeCart(cartList.mSelectRow);
cartList.mSelectRow = -1;
}
}
mPagePanel.add("장바구니의 항목 삭제하기", new CartItemListPage(mPagePanel, mCart));
mPagePanel.revalidate();
mPagePanel.repaint();
}
});
// <주문하기> 버튼 표시를 위한 패널 영역 설정 및 출력
JButton bt7 = new JButton("주문하기", new ImageIcon("src/images/7.png"));
bt7.setFont(ft);
mMenuPanel.add(bt7);
bt7.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (mCart.mCartCount == 0)
JOptionPane.showMessageDialog(bt7, "장바구니에 항목이 없습니다", "주문처리", JOptionPane.ERROR_MESSAGE);
else {
mPagePanel.removeAll();
mPagePanel.add("주문 배송지", new CartShippingPage(mPagePanel, mCart));
mPagePanel.revalidate();
mPagePanel.repaint();
}
}
});
// <종료> 버튼 표시를 위한 패널 영역 설정 및 출력
JButton bt8 = new JButton("종료", new ImageIcon("src/images/8.png"));
bt8.setFont(ft);
mMenuPanel.add(bt8);
bt8.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int select = JOptionPane.showConfirmDialog(bt8, "쇼핑몰을 종료하겠습니까? ");
if (select == 0) {
System.exit(1);
}
}
});
// <관리자> 버튼 표시를 위한 패널 영역 설정 및 출력
JButton bt9 = new JButton("관리자", new ImageIcon("src/images/9.png"));
bt9.setFont(ft);
mMenuPanel.add(bt9);
bt9.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
AdminLoginDialog adminDialog;
JFrame frame = new JFrame();
adminDialog = new AdminLoginDialog(frame, "관리자 로그인");
adminDialog.setVisible(true);
if (adminDialog.isLogin) {
mPagePanel.removeAll();
mPagePanel.add("관리자", new AdminPage(mPagePanel));
mPagePanel.revalidate();
mPagePanel.repaint();
}
}
});
}
private void initMenu() {
Font ft;
ft = new Font("함초롬돋움", Font.BOLD, 15);
JMenuBar menuBar = new JMenuBar();
JMenu menu01 = new JMenu("고객");
menu01.setFont(ft);
JMenuItem item01 = new JMenuItem("고객 정보");
JMenuItem item11 = new JMenuItem("종료");
menu01.add(item01);
menu01.add(item11);
menuBar.add(menu01);
JMenu menu02 = new JMenu("상품");
menu02.setFont(ft);
JMenuItem item02 = new JMenuItem("상품 목록");
menu02.add(item02);
menuBar.add(menu02);
JMenu menu03 = new JMenu("장바구니");
menu03.setFont(ft);
JMenuItem item03 = new JMenuItem("항목 추가");
JMenuItem item04 = new JMenuItem("항목 수량 줄이기");
JMenuItem item05 = new JMenuItem("항목 삭제하기");
JMenuItem item06 = new JMenuItem("장바구니 비우기");
menu03.add(item03);
menu03.add(item04);
menu03.add(item05);
menu03.add(item06);
menuBar.add(menu03);
JMenu menu04 = new JMenu("주문");
menu04.setFont(ft);
JMenuItem item07 = new JMenuItem("영수증 표시");
menu04.add(item07);
menuBar.add(menu04);
setJMenuBar(menuBar);
item01.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mPagePanel.removeAll();
mPagePanel.add("고객 정보 확인 ", new GuestInfoPage(mPagePanel));
add(mPagePanel);
mPagePanel.revalidate();
}
});
item02.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mPagePanel.removeAll();
BookInIt.init();
mPagePanel.add("장바구니에 항목 추가하기", new CartAddItemPage(mPagePanel, mCart));
add(mPagePanel);
mPagePanel.revalidate();
}
});
item11.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
mPagePanel.removeAll();
setVisible(false);
new GuestWindow("고객 정보 입력", 0, 0, 1000, 750);
add(mPagePanel);
mPagePanel.revalidate();
}
});
}
private void menuCartClear(JButton button) {
if (mCart.mCartCount == 0)
JOptionPane.showMessageDialog(button, "장바구니의 항목이 없습니다");
else {
int select = JOptionPane.showConfirmDialog(button, "장바구니의 모든 항목을 삭제하겠습니까? ");
if (select == 0) {
mCart.deleteBook();
JOptionPane.showMessageDialog(button, "장바구니의 모든 항목을 삭제했습니다");
}
}
}
}
com.market.page 패키지
- GuestInfoPage 클래스 수정
package com.market.page;
import javax.swing.*;
import com.market.member.UserInIt;
import java.awt.*;
public class GuestInfoPage extends JPanel {
public GuestInfoPage(JPanel panel) {
Font ft;
ft = new Font("함초롬돋움", Font.BOLD, 15); // 글꼴, 스타일, 크기 설정
setLayout(null);
Rectangle rect = panel.getBounds();
System.out.println(rect);
setPreferredSize(rect.getSize());
// 이름 표시를 위한 패널 영역 설정 및 출력
JPanel namePanel = new JPanel();
namePanel.setBounds(0, 100, 1000, 50);
add(namePanel);
JLabel nameLabel = new JLabel("이 름 : ");
nameLabel.setFont(ft);
nameLabel.setBackground(Color.BLUE);
JLabel nameField = new JLabel();
// nameField.setText("입력된 고객 이름");
nameField.setText(UserInIt.getmUser().getName());
nameField.setFont(ft);
namePanel.add(nameLabel);
namePanel.add(nameField);
// 연락처 표시를 위한 패널 영역 설정 및 출력
JPanel phonePanel = new JPanel();
phonePanel.setBounds(0, 150, 1000, 100);
add(phonePanel);
JLabel phoneLabel = new JLabel("연락처 : ");
phoneLabel.setFont(ft);
JLabel phoneField = new JLabel();
// phoneField.setText("입력된 고객 연락처");
phoneField.setText(String.valueOf(UserInIt.getmUser().getPhone()));
phoneField.setFont(ft);
phonePanel.add(phoneLabel);
phonePanel.add(phoneField);
}
}
- CartAddItemPage 클래스 수정
package com.market.page;
import javax.swing.*;
import com.market.bookitem.Book;
import com.market.bookitem.BookInIt;
import com.market.cart.Cart;
import java.awt.*;
import java.util.ArrayList;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class CartAddItemPage extends JPanel {
ImageIcon imageBook;
int mSelectRow = 0;
Cart mCart;
public CartAddItemPage(JPanel panel, Cart cart) {
Font ft;
ft = new Font("함초롬돋움", Font.BOLD, 15); // 글꼴, 스타일, 크기 설정
setLayout(null);
Rectangle rect = panel.getBounds();
System.out.println(rect);
setPreferredSize(rect.getSize());
mCart = cart;
// 도서 이밎 표시를 위한 패널 영역 설정 및 출력
JPanel imagePanel = new JPanel();
imagePanel.setBounds(20, 0, 300, 400);
imageBook = new ImageIcon("src/images/ISBN1234.jpg");
imageBook.setImage(imageBook.getImage().getScaledInstance(250, 300, Image.SCALE_DEFAULT));
JLabel label = new JLabel(imageBook);
imagePanel.add(label);
add(imagePanel);
// 도서 목록 테이블 표시를 위한 패널 영역 설정 및 출력
JPanel tablePanel = new JPanel();
tablePanel.setBounds(300, 0, 700, 400);
add(tablePanel);
ArrayList<Book> booklist = BookInIt.getmBookList();
Object[] tableHeader = { "도서ID", "도서명", "가격", "저자", "설명", "분야", "출판일" };
Object[][] content = new Object[booklist.size()][tableHeader.length];
for (int i = 0; i < booklist.size(); i++) {
Book bookitem = booklist.get(i);
content[i][0] = bookitem.getBookId();
content[i][1] = bookitem.getName();
content[i][2] = bookitem.getUnitPrice();
content[i][3] = bookitem.getAuthor();
content[i][4] = bookitem.getDescription();
content[i][5] = bookitem.getCategory();
content[i][6] = bookitem.getReleaseDate();
}
JTable bookTable = new JTable(content, tableHeader);
bookTable.setRowSelectionInterval(0, 0);
bookTable.getSelectedColumn();
JScrollPane jScrollPane = new JScrollPane();
jScrollPane.setPreferredSize(new Dimension(600, 350));
jScrollPane.setViewportView(bookTable);
tablePanel.add(jScrollPane);
// <장바구니에 담기> 버튼 표시를 위한 패널 영역 설정 및 출력
JPanel buttonPanel = new JPanel();
buttonPanel.setBounds(0, 400, 1000, 400);
add(buttonPanel);
JLabel buttonLabel = new JLabel("장바구니에 담기");
buttonLabel.setFont(ft);
JButton addButton = new JButton();
addButton.add(buttonLabel);
buttonPanel.add(addButton);
bookTable.addMouseListener(new MouseListener() { // 도서 목록 테이블의 행 선택에 대한 마우스 이벤트 처리
public void mouseClicked(MouseEvent e) { // 마우스 클릭 이벤트 처리
int row = bookTable.getSelectedRow();
int col = bookTable.getSelectedColumn();
mSelectRow = row;
Object value = bookTable.getValueAt(row, 0);
String str = value + ".jpg";
imageBook = new ImageIcon("./images/" + str);
imageBook.setImage(imageBook.getImage().getScaledInstance(250, 300, Image.SCALE_DEFAULT));
JLabel label = new JLabel(imageBook);
imagePanel.removeAll();
imagePanel.add(label);
imagePanel.revalidate();
imagePanel.repaint();
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
});
addButton.addActionListener(new ActionListener() { // 장바구니 담기 버튼 클릭 이벤트 처리
public void actionPerformed(ActionEvent e) {
ArrayList<Book> booklist = BookInIt.getmBookList();
int select = JOptionPane.showConfirmDialog(addButton, "장바구니에 추가하겠습니까?");
if (select == 0) {
int numId = mSelectRow;
if (!isCartInBook(booklist.get(numId).getBookId())) {
mCart.insertBook(booklist.get(numId));
}
JOptionPane.showMessageDialog(addButton, "추가했습니다");
}
}
});
}
public boolean isCartInBook(String bookId) {
return mCart.isCartInBook(bookId);
}
}
- CartItemListPage 클래스 수정
package com.market.page;
import javax.swing.*;
import com.market.cart.Cart;
import com.market.cart.CartItem;
import java.awt.*;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import java.awt.event.ActionEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
public class CartItemListPage extends JPanel {
JTable cartTable;
Object[] tableHeader = { "도서ID", "도서명", "단가", "수량", "총가격" };
Cart mCart = new Cart();
public static int mSelectRow = -1;
public CartItemListPage(JPanel panel, Cart cart) {
Font ft;
ft = new Font("함초롬돋움", Font.BOLD, 15); // 글꼴, 스타일, 크기 설정
this.mCart = cart;
this.setLayout(null);
Rectangle rect = panel.getBounds();
System.out.println(rect);
this.setPreferredSize(rect.getSize());
// 도서가 담긴 장바구니의 테이블 표시를 위한 패널 영역 설정 및 출력
JPanel bookPanel = new JPanel();
bookPanel.setBounds(0, 0, 1000, 400);
add(bookPanel);
ArrayList<CartItem> cartItem = mCart.getmCartItem();
Object[][] content = new Object[cartItem.size()][tableHeader.length];
Integer totalPrice = 0;
for (int i = 0; i < cartItem.size(); i++) {
CartItem item = cartItem.get(i);
content[i][0] = item.getBookID();
content[i][1] = item.getItemBook().getName();
content[i][2] = item.getItemBook().getUnitPrice();
content[i][3] = item.getQuantity();
content[i][4] = item.getTotalPrice();
totalPrice += item.getQuantity() * item.getItemBook().getUnitPrice();
}
cartTable = new JTable(content, tableHeader);
JScrollPane jScrollPane = new JScrollPane();
jScrollPane.setPreferredSize(new Dimension(600, 350));
jScrollPane.setViewportView(cartTable);
bookPanel.add(jScrollPane);
// 총 금액 표시를 위한 패널 영역 설정 및 출력
JPanel totalPricePanel = new JPanel();
totalPricePanel.setBounds(0, 400, 1000, 50);
// totalPricePanel.setBackground(Color.RED);
JLabel totalPricelabel = new JLabel("총금액: " + totalPrice + " 원");
totalPricelabel.setForeground(Color.red);
totalPricelabel.setFont(ft);
totalPricePanel.add(totalPricelabel);
add(totalPricePanel);
// <장바구니 비우기>, <장바구니의 항목 삭제하기>, <장바구니 새로 고침> 버튼 표시를 위한 패널 영역 설정 및 출력
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new FlowLayout());
buttonPanel.setBounds(0, 450, 1000, 50);
add(buttonPanel);
JLabel buttonLabel = new JLabel("장바구니 비우기");
buttonLabel.setFont(ft);
JButton clearButton = new JButton();
clearButton.add(buttonLabel);
buttonPanel.add(clearButton);
clearButton.addActionListener(new AbstractAction() {
public void actionPerformed(ActionEvent e) {
ArrayList<CartItem> cartItem = cart.getmCartItem();
if (cart.mCartCount == 0)
JOptionPane.showMessageDialog(clearButton, "장바구니에 항목이 없습니다");
else {
int select = JOptionPane.showConfirmDialog(clearButton, "장바구니의 모든 항목을 삭제하겠습니까? ");
if (select == 0) {
TableModel tableModel = new DefaultTableModel(new Object[0][0], tableHeader);
cartTable.setModel(tableModel);
totalPricelabel.setText("총금액: " + 0 + " 원");
JOptionPane.showMessageDialog(clearButton, "장바구니의 모든 항목을 삭제했습니다");
cart.deleteBook();
}
}
}
});
JLabel removeLabel = new JLabel("장바구니의 항목 삭제하기");
removeLabel.setFont(ft);
JButton removeButton = new JButton();
removeButton.add(removeLabel);
buttonPanel.add(removeButton);
removeButton.addActionListener(new AbstractAction() {
public void actionPerformed(ActionEvent e) {
if (cart.mCartCount == 0)
JOptionPane.showMessageDialog(clearButton, "장바구니에 항목이 없습니다");
else if (mSelectRow == -1)
JOptionPane.showMessageDialog(clearButton, "장바구니에서 삭제할 항목을 선택하세요");
else {
ArrayList<CartItem> cartItem = cart.getmCartItem();
cartItem.remove(mSelectRow);
cart.mCartCount -= 1;
Object[][] content = new Object[cartItem.size()][tableHeader.length];
Integer totalPrice = 0;
for (int i = 0; i < cartItem.size(); i++) {
CartItem item = cartItem.get(i);
content[i][0] = item.getBookID();
content[i][1] = item.getItemBook().getName();
content[i][2] = item.getItemBook().getUnitPrice();
content[i][3] = item.getQuantity();
content[i][4] = item.getTotalPrice();
totalPrice += item.getQuantity() * item.getItemBook().getUnitPrice();
}
TableModel tableModel = new DefaultTableModel(content, tableHeader);
totalPricelabel.setText("총금액: " + totalPrice + " 원");
cartTable.setModel(tableModel);
mSelectRow = -1;
}
}
});
cartTable.addMouseListener(new MouseListener() { // 장바구니 테이블의 행 선택에 대한 이벤트 처리
public void mouseClicked(MouseEvent e) {
int row = cartTable.getSelectedRow();
mSelectRow = row;
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
});
JLabel refreshLabel = new JLabel("장바구니 새로 고침");
refreshLabel.setFont(ft);
JButton refreshButton = new JButton();
refreshButton.add(refreshLabel);
buttonPanel.add(refreshButton);
refreshButton.addActionListener(new AbstractAction() {
public void actionPerformed(ActionEvent e) {
ArrayList<CartItem> cartItem = cart.getmCartItem();
Object[][] content = new Object[cartItem.size()][tableHeader.length];
Integer totalPrice = 0;
for (int i = 0; i < cartItem.size(); i++) {
CartItem item = cartItem.get(i);
content[i][0] = item.getBookID();
content[i][1] = item.getItemBook().getName();
content[i][2] = item.getItemBook().getUnitPrice();
content[i][3] = item.getQuantity();
content[i][4] = item.getTotalPrice();
totalPrice += item.getQuantity() * item.getItemBook().getUnitPrice();
}
TableModel tableModel = new DefaultTableModel(content, tableHeader);
totalPricelabel.setText("총금액: " + totalPrice + " 원");
cartTable.setModel(tableModel);
}
});
}
}
- CartShippingPage 클래스 수정
package com.market.page;
import javax.swing.*;
import java.awt.*;
import com.market.cart.Cart;
import com.market.member.UserInIt;
import java.awt.event.ActionEvent;
public class CartShippingPage extends JPanel {
Cart mCart;
JPanel shippingPanel;
JPanel radioPanel;
public CartShippingPage(JPanel panel, Cart cart) {
Font ft;
ft = new Font("함초롬돋움", Font.BOLD, 15); // 글꼴, 스타일, 크기 설정
setLayout(null);
Rectangle rect = panel.getBounds();
System.out.println(rect);
setPreferredSize(rect.getSize());
// 고객 정보 라디오버튼 선택 표시를 위한 패널 영역 설정 및 출력
radioPanel = new JPanel();
radioPanel.setBounds(300, 0, 700, 50);
radioPanel.setLayout(new FlowLayout());
add(radioPanel);
JLabel radioLabel = new JLabel("배송받을 분은 고객정보와 같습니까?");
radioLabel.setFont(ft);
JRadioButton radioOk = new JRadioButton("예");
radioOk.setFont(ft);
JRadioButton radioNo = new JRadioButton("아니오");
radioNo.setFont(ft);
radioPanel.add(radioLabel);
radioPanel.add(radioOk);
radioPanel.add(radioNo);
// 배송지 입력, 영수증 표시를 위한 패널 영역 설정 및 출력
shippingPanel = new JPanel();
shippingPanel.setBounds(200, 50, 700, 500);
shippingPanel.setLayout(null);
add(shippingPanel);
radioOk.setSelected(true);
radioNo.setSelected(false);
UserShippingInfo(true);
this.mCart = cart;
radioOk.addActionListener(new AbstractAction() { // 예 라디오버튼 클릭 이벤트 처리
public void actionPerformed(ActionEvent e) {
if (radioOk.isSelected()) {
shippingPanel.removeAll();
UserShippingInfo(true);
shippingPanel.revalidate();
shippingPanel.repaint();
radioNo.setSelected(false);
}
}
});
radioNo.addActionListener(new AbstractAction() { // 아니요 라디오버튼 클릭 이벤트 처리
public void actionPerformed(ActionEvent e) {
if (radioNo.isSelected()) {
shippingPanel.removeAll();
UserShippingInfo(false);
shippingPanel.revalidate();
shippingPanel.repaint();
radioOk.setSelected(false);
}
}
});
}
public void UserShippingInfo(boolean select) {
Font ft;
ft = new Font("함초롬돋움", Font.BOLD, 15);
// 고객명 표시를 위한 패널 영역 설정 및 출력
JPanel namePanel = new JPanel();
namePanel.setBounds(0, 100, 700, 50);
// namePanel.setBackground(Color.GRAY);
JLabel nameLabel = new JLabel("고객명 : ");
nameLabel.setFont(ft);
namePanel.add(nameLabel);
JTextField nameLabel2 = new JTextField(15);
nameLabel2.setFont(ft);
if (select) {
nameLabel2.setBackground(Color.LIGHT_GRAY);
// nameLabel2.setText("입력된 고객 이름");
nameLabel2.setText(UserInIt.getmUser().getName());
}
namePanel.add(nameLabel2);
shippingPanel.add(namePanel);
// 연락처 표시를 위한 패널 영역 설정 및 출력
JPanel phonePanel = new JPanel();
phonePanel.setBounds(0, 150, 700, 50);
JLabel phoneLabel = new JLabel("연락처 : ");
phoneLabel.setFont(ft);
phonePanel.add(phoneLabel);
JTextField phoneLabel2 = new JTextField(15);
phoneLabel2.setFont(ft);
if (select) {
phoneLabel2.setBackground(Color.LIGHT_GRAY);
// phoneLabel2.setText("입력된 고객 연락처");
phoneLabel2.setText(String.valueOf(UserInIt.getmUser().getPhone()));
}
phonePanel.add(phoneLabel2);
shippingPanel.add(phonePanel);
// 배송지 표시를 위한 패널 영역 설정 및 출력
JPanel addressPanel = new JPanel();
addressPanel.setBounds(0, 200, 700, 50);
JLabel label = new JLabel("배송지 : ");
label.setFont(ft);
addressPanel.add(label);
JTextField addressText = new JTextField(15);
addressText.setFont(ft);
addressPanel.add(addressText);
shippingPanel.add(addressPanel);
// <주문 완려> 버튼 표시를 위한 패널 영역 설정 및 출력
JPanel buttonPanel = new JPanel();
buttonPanel.setBounds(0, 300, 700, 100);
JLabel buttonLabel = new JLabel("주문 완료");
buttonLabel.setFont(new Font("함초롬돋움", Font.BOLD, 15));
JButton orderButton = new JButton();
orderButton.add(buttonLabel);
buttonPanel.add(orderButton);
shippingPanel.add(buttonPanel);
orderButton.addActionListener(new AbstractAction() {
public void actionPerformed(ActionEvent e) {
radioPanel.removeAll();
radioPanel.revalidate();
radioPanel.repaint();
shippingPanel.removeAll();
shippingPanel.add("주문 배송지", new CartOrderBillPage(shippingPanel, mCart));
mCart.deleteBook();
shippingPanel.revalidate();
shippingPanel.repaint();
}
});
}
}
- CartOrderBillPage 클래스 수정
package com.market.page;
import javax.swing.*;
import com.market.bookitem.BookInIt;
import com.market.cart.Cart;
import com.market.member.UserInIt;
import java.awt.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class CartOrderBillPage extends JPanel {
Cart mCart;
JPanel shippingPanel;
JPanel radioPanel;
public CartOrderBillPage(JPanel panel, Cart cart) {
Font ft;
ft = new Font("함초롬돋움", Font.BOLD, 15);
setLayout(null);
Rectangle rect = panel.getBounds();
System.out.println(rect);
setPreferredSize(rect.getSize());
this.mCart = cart;
// 주문 내용 결과 표시를 위한 패널 영역 설정 및 출력
shippingPanel = new JPanel();
// shippingPanel.setBounds(200, 50, 700, 500);
shippingPanel.setBounds(0, 0, 700, 500);
shippingPanel.setLayout(null);
// add(shippingPanel);
panel.add(shippingPanel);
// printBillInfo("입력된 고객 이름", "입력된 고객 연락처", "입력된 고객 배송지");
printBillInfo(UserInIt.getmUser().getName(), String.valueOf(UserInIt.getmUser().getPhone()), UserInIt.getmUser().getAddress());
}
public void printBillInfo(String name, String phone, String address) {
Font ft;
ft = new Font("함초롬돋움", Font.BOLD, 15); // 글꼴, 스타일, 크기 설정
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("MM/dd/yyyy");
String strDate = formatter.format(date);
// -배송받을 고객 정보 표시를 위한 패널 영역 설정 및 출력
JPanel panel01 = new JPanel();
panel01.setBounds(0, 0, 500, 30);
// panel01.setBackground(Color.GRAY);
JLabel label01 = new JLabel("---------------------배송받을 고객 정보-----------------------");
label01.setFont(ft);
panel01.add(label01);
shippingPanel.add(panel01);
// 고객명, 연락처 표시를 위한 패널 영역 설정 및 출력
JPanel panel02 = new JPanel();
panel02.setBounds(0, 30, 500, 30);
JLabel label02 = new JLabel("고객명 : " + name + " 연락처 : " + phone);
label02.setHorizontalAlignment(JLabel.LEFT);
label02.setFont(ft);
panel02.add(label02);
shippingPanel.add(panel02);
// 배송지, 발송일 표시를 위한 패녈 영역 설정 및 출력
JPanel panel03 = new JPanel();
panel03.setBounds(0, 60, 500, 30);
JLabel label03 = new JLabel("배송지 : " + address + " 발송일 : " + strDate);
label03.setHorizontalAlignment(JLabel.LEFT);
label03.setFont(ft);
panel03.add(label03);
shippingPanel.add(panel03);
// 주문 도서 목록 표시를 위한 패널 영역 설정 및 출력
JPanel printPanel = new JPanel();
printPanel.setBounds(0, 100, 500, 300);
printCart(printPanel);
shippingPanel.add(printPanel);
}
public void printCart(JPanel panel) {
Font ft;
ft = new Font("함초롬돋움", Font.BOLD, 12);
// 장바구니 상품 목록 표시를 위한 패널 영역 설정 및 출력
JPanel panel01 = new JPanel();
panel01.setBounds(0, 0, 500, 5);
JLabel label01 = new JLabel(" 장바구니 상품 목록 :");
label01.setFont(ft);
panel01.add(label01);
panel.add(panel01);
// ---- 표시를 위한 패널 영역 설정 및 출력
JPanel panel02 = new JPanel();
panel02.setBounds(0, 20, 500, 5);
JLabel label02 = new JLabel("------------------------------------");
label02.setFont(ft);
panel02.add(label02);
panel.add(panel02);
// 타이틀 표시를 위한 패널 영역 설정 및 출력
JPanel panel03 = new JPanel();
panel03.setBounds(0, 25, 500, 5);
JLabel label03 = new JLabel(" 도서ID | 수량 | 합계 ");
label03.setFont(ft);
panel03.add(label03);
panel.add(panel03);
// ---- 표시를 위한 패널 영역 설정 및 출력
JPanel panel04 = new JPanel();
panel04.setBounds(0, 30, 500, 5);
JLabel label04 = new JLabel("--------------------------------------");
label04.setFont(ft);
panel04.add(label04);
panel.add(panel04);
for (int i = 0; i < mCart.mCartItem.size(); i++) { // 13 // 장바구니 주문 결과 표시를 위한 패널 영역 설정 및 출력
JPanel panel05 = new JPanel();
panel05.setBounds(0, 35 + (i * 5), 500, 5);
JLabel label05 = new JLabel(" " + mCart.mCartItem.get(i).getBookID() + " "
+ mCart.mCartItem.get(i).getQuantity() + " "
+ mCart.mCartItem.get(i).getTotalPrice());
label05.setFont(ft);
panel05.add(label05);
panel.add(panel05);
}
// ---- 표시를 위한 패널 영역 설정 및 출력
JPanel panel06 = new JPanel();
panel06.setBounds(0, 35 + (mCart.mCartItem.size() * 5), 500, 5);
JLabel label06 = new JLabel("--------------------------------------");
label06.setFont(ft);
panel06.add(label06);
panel.add(panel06);
int sum = 0;
for (int i = 0; i < mCart.mCartCount; i++)
sum += mCart.mCartItem.get(i).getTotalPrice();
System.out.println("------------" + mCart.mCartCount);
// 주문 총금액 표시를 위한 패널 영역 설정 및 출력
JPanel panel07 = new JPanel();
panel07.setBounds(0, 40 + (mCart.mCartItem.size() * 5), 500, 5);
JLabel label07 = new JLabel(" 주문 총금액 : " + sum + "원");
// label04.setHorizontalAlignment(JLabel.CENTER);
label07.setFont(new Font("함초롬돋움", Font.BOLD, 15));
panel07.add(label07);
panel.add(panel07);
}
}
- AdminLoginDialog 클래스 생성
package com.market.page;
import com.market.member.Admin;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class AdminLoginDialog extends JDialog {
JTextField pwField, idField;
public boolean isLogin = false;
public AdminLoginDialog(JFrame frame, String str) {
super(frame, "관리자로그인", true);
Font ft;
ft = new Font("함초롬돋움", Font.BOLD, 15);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setLocation((screenSize.width - 400) / 2, (screenSize.height - 300) / 2);
setSize(400, 300);
setLayout(null);
// 관리자 로그인 표시를 위한 패널 영역 설정 및 출력
JPanel titlePanel = new JPanel();
titlePanel.setBounds(0, 20, 400, 50);
add(titlePanel);
JLabel titleLabel = new JLabel("관리자 로그인");
titleLabel.setFont(new Font("함초롬돋움", Font.BOLD, 20));
titlePanel.add(titleLabel);
// 아이디 표시를 위한 패널 영역 설정 및 출력
JPanel idPanel = new JPanel();
idPanel.setBounds(0, 70, 400, 50);
add(idPanel);
JLabel idLabel = new JLabel("아 이 디 : ");
idLabel.setFont(ft);
idField = new JTextField(10);
idField.setFont(ft);
idPanel.add(idLabel);
idPanel.add(idField);
// 비밀번호 표시를 위한 패널 영역 설정 및 출력
JPanel pwPanel = new JPanel();
pwPanel.setBounds(0, 120, 400, 50);
add(pwPanel);
JLabel pwLabel = new JLabel("비밀번호 : ");
pwLabel.setFont(ft);
pwField = new JTextField(10);
pwField.setFont(ft);
pwPanel.add(pwLabel);
pwPanel.add(pwField);
// 확인, 취소 표시를 위한 패널 영역 설정 및 출력
JPanel buttonPanel = new JPanel();
buttonPanel.setBounds(0, 170, 400, 50);
add(buttonPanel);
JLabel okLabel = new JLabel("확인");
okLabel.setFont(ft);
JButton okButton = new JButton();
okButton.add(okLabel);
buttonPanel.add(okButton);
JLabel cancelLabel = new JLabel("취소");
cancelLabel.setFont(ft);
JButton cancelBtn = new JButton();
cancelBtn.add(cancelLabel);
buttonPanel.add(cancelBtn);
okButton.addActionListener(new ActionListener() { // 확인 버튼 클릭 이벤트 처리
public void actionPerformed(ActionEvent e) {
Admin admin = new Admin("", -1);
System.out.println(pwField.getText() + idField.getText());
System.out.println(admin.getId() + admin.getPassword());
if (admin.getId().equals(idField.getText()) && admin.getPassword().equals(pwField.getText())) {
isLogin = true;
dispose();
} else
JOptionPane.showMessageDialog(okButton, "관리자 정보가 일치하지 않습니다");
}
});
cancelBtn.addActionListener(new ActionListener() { // 취소 버튼 클릭 이벤트 처리
public void actionPerformed(ActionEvent e) {
isLogin = false;
dispose();
}
});
}
}
- AdminPage 클래스 수정
package com.market.page;
import javax.swing.*;
import java.awt.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.awt.event.ActionEvent;
import java.io.FileWriter;
public class AdminPage extends JPanel {
public AdminPage(JPanel panel) {
Font ft;
ft = new Font("함초롬돋움", Font.BOLD, 15); // 글꼴, 스타일, 크기 설정
setLayout(null);
Rectangle rect = panel.getBounds();
System.out.println(rect);
setPreferredSize(rect.getSize());
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyMMddhhmmss");
String strDate = formatter.format(date);
// 도서 ID 표시를 위한 패널 영역 설정 및 출력
JPanel idPanel = new JPanel();
idPanel.setBounds(100, 0, 700, 50);
JLabel idLabel = new JLabel("도서ID : ");
idLabel.setFont(ft);
JLabel idTextField = new JLabel();
idTextField.setFont(ft);
idTextField.setPreferredSize(new Dimension(290, 50));
idTextField.setText("ISBN" + strDate);
idPanel.add(idLabel);
idPanel.add(idTextField);
add(idPanel);
// 도서명 표시를 위한 패널 영역 설정 및 출력
JPanel namePanel = new JPanel();
namePanel.setBounds(100, 50, 700, 50);
JLabel nameLabel = new JLabel("도서명 : ");
nameLabel.setFont(ft);
JTextField nameTextField = new JTextField(20);
nameTextField.setFont(ft);
namePanel.add(nameLabel);
namePanel.add(nameTextField);
add(namePanel);
// 가격 표시를 위한 패널 영역 설정 및 출력
JPanel pricePanel = new JPanel();
pricePanel.setBounds(100, 100, 700, 50);
JLabel priceLabel = new JLabel("가 격 : ");
priceLabel.setFont(ft);
JTextField priceTextField = new JTextField(20);
priceTextField.setFont(ft);
pricePanel.add(priceLabel);
pricePanel.add(priceTextField);
add(pricePanel);
// 저자 표시를 위한 패널 영역 설정 및 출력
JPanel authorPanel = new JPanel();
authorPanel.setBounds(100, 150, 700, 50);
JLabel authorLabel = new JLabel("저 자 : ");
authorLabel.setFont(ft);
JTextField authorTextField = new JTextField(20);
authorTextField.setFont(ft);
authorPanel.add(authorLabel);
authorPanel.add(authorTextField);
add(authorPanel);
// 설명 표시를 위한 패널 영역 설정 및 출력
JPanel descPanel = new JPanel();
descPanel.setBounds(100, 200, 700, 50);
JLabel descLabel = new JLabel("설 명 : ");
descLabel.setFont(ft);
JTextField descTextField = new JTextField(20);
descTextField.setFont(ft);
descPanel.add(descLabel);
descPanel.add(descTextField);
add(descPanel);
//분야 표시를 위한 패널 영역 설정 및 출력
JPanel categoryPanel = new JPanel();
categoryPanel.setBounds(100, 250, 700, 50);
JLabel categoryLabel = new JLabel("분 야 : ");
categoryLabel.setFont(ft);
JTextField categoryTextField = new JTextField(20);
categoryTextField.setFont(ft);
categoryPanel.add(categoryLabel);
categoryPanel.add(categoryTextField);
add(categoryPanel);
//출판일 표시를 위한 패널 영역 설정 및 출력
JPanel datePanel = new JPanel();
datePanel.setBounds(100, 300, 700, 50);
JLabel dateLabel = new JLabel("출판일 : ");
dateLabel.setFont(ft);
JTextField dateTextField = new JTextField(20);
dateTextField.setFont(ft);
datePanel.add(dateLabel);
datePanel.add(dateTextField);
add(datePanel);
//<추가>, <취소> 버튼 표시를 위한 패널 영역 설정 및 출력
JPanel buttonPanel = new JPanel();
buttonPanel.setBounds(100, 350, 700, 50);
add(buttonPanel);
JLabel okLabel = new JLabel("추가");
okLabel.setFont(ft);
JButton okButton = new JButton();
okButton.add(okLabel);
buttonPanel.add(okButton);
okButton.addActionListener(new AbstractAction() { // 추가 버튼 클릭 이벤트 처리
public void actionPerformed(ActionEvent e) {
String[] writeBook = new String[7];
writeBook[0] = idTextField.getText();
writeBook[1] = nameTextField.getText();
writeBook[2] = priceTextField.getText();
writeBook[3] = authorTextField.getText();
writeBook[4] = descTextField.getText();
writeBook[5] = categoryTextField.getText();
writeBook[6] = dateTextField.getText();
try {
FileWriter fw = new FileWriter("book.txt", true);
for (int i = 0; i < 7; i++)
fw.write(writeBook[i] + "\n");
fw.close();
JOptionPane.showMessageDialog(okButton, "새 도서 정보가 저장되었습니다");
Date date = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyMMddhhmmss");
String strDate = formatter.format(date);
idTextField.setText("ISBN" + strDate);
nameTextField.setText("");
priceTextField.setText("");
authorTextField.setText("");
descTextField.setText("");
categoryTextField.setText("");
dateTextField.setText("");
System.out.println("새 도서 정보가 저장되었습니다.");
} catch (Exception ex) {
System.out.println(ex);
}
}
});
JLabel noLabel = new JLabel("취소");
noLabel.setFont(ft);
JButton noButton = new JButton();
noButton.add(noLabel);
buttonPanel.add(noButton);
noButton.addActionListener(new AbstractAction() { // 취소 버튼 클릭 이벤트 처리
public void actionPerformed(ActionEvent e) {
nameTextField.setText("");
priceTextField.setText("");
authorTextField.setText("");
descTextField.setText("");
categoryTextField.setText("");
dateTextField.setText("");
}
});
}
}
'Java > 온라인 서점' 카테고리의 다른 글
온라인 서점 프로젝트 PART13 (0) | 2023.08.03 |
---|---|
온라인 서점 프로젝트 PART12 (0) | 2023.08.03 |
온라인 서점 프로젝트 PART11 (1) | 2023.08.03 |
온라인 서점 프로젝트 PART10 (0) | 2023.08.02 |
온라인 서점 프로젝트 PART9 (0) | 2023.08.02 |