📄 borrowdialog.java
字号:
//************************************************//BorrowDialog.java//This class is used to create an GUI dialog for//borrowing videos from the stock.//Created by Xiaobin Lin 3/Dec/2004//************************************************package Main;import javax.swing.*;import javax.swing.event.*;import java.awt.*;import javax.swing.WindowConstants.*;import java.awt.event.*;public class BorrowDialog extends JDialog { //Constructor: automatically invoked when a new instance of BorrowDialog is created public BorrowDialog(Frame parent, boolean modal, MemberSet mSet, VideoSet vSet, LendingSet lSet) { super(parent, modal); memberSet = mSet; videoSet = vSet; lendingSet = lSet; tableHandlerMember = new TableHandler(memberSet); tableHandlerVideo = new TableHandler(videoSet); step = 1; rowSelected = -1; initComponents(); setComponents(); } // This method is called from within the constructor to // initialize the GUI for the borrow-video dialog. private void initComponents() { scrollPaneBorrow = new JScrollPane(); tableBorrow = new JTable(); buttonBack = new JButton(); buttonNext = new JButton(); buttonBorrow = new JButton(); buttonCancel = new JButton(); panelMessage = new JPanel(); textAreaStep1 = new JTextArea(); textAreaStep2 = new JTextArea(); labelSteps = new JLabel(); labelHints = new JLabel(); textAreaHints = new JTextArea(); labelTableName = new JLabel(); getContentPane().setLayout(null); setDefaultCloseOperation(DISPOSE_ON_CLOSE); setTitle("Borrow a Video"); setModal(true); setName("dialogBorrow"); setResizable(false); scrollPaneBorrow.setFont(new Font("Times New Roman", 0, 12)); tableBorrow.setFont(new Font("Times New Roman", 0, 12)); tableBorrow.setModel(tableHandlerMember); tableBorrow.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); ListSelectionModel rowSM = tableBorrow.getSelectionModel(); rowSM.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { //Ignore extra messages. if (e.getValueIsAdjusting()) return; ListSelectionModel lsm = (ListSelectionModel)e.getSource(); if (lsm.isSelectionEmpty()) { if (step == 1){ buttonNext.setEnabled(false); }else if (step == 2){ buttonBorrow.setEnabled(false); } } else { rowSelected = lsm.getMinSelectionIndex(); if (step == 1){ memberNo = memberSet.getMemberNo(rowSelected); //check if the member is already in the lendingset database int hasVideo = lendingSet.findMember(memberNo); if (hasVideo == -1){ //the member hasn't borrowed membershipClass = memberSet.getMembershipClass(rowSelected); textAreaHints.setText(""); buttonNext.setEnabled(true); }else{ textAreaHints.setText("This member has a\n video unreturned."); buttonNext.setEnabled(false); } }else if (step == 2){ videoIndex = rowSelected; //check if the video is already in the lendingset database int beBorrowed = lendingSet.findVideo(videoIndex); if (beBorrowed == -1){ videoLangClass = videoSet.getVideoLangClass(videoIndex); if (membershipClass >= videoLangClass){//the member is allowed to borrow the video textAreaHints.setText(""); buttonBorrow.setEnabled(true); }else{ textAreaHints.setText("The member's\n membership-class is not\n enough for borrowing this\n video."); buttonBorrow.setEnabled(false); } }else{ textAreaHints.setText("This video has already been\n lent out."); buttonBorrow.setEnabled(false); } } } } }); scrollPaneBorrow.setViewportView(tableBorrow); getContentPane().add(scrollPaneBorrow); scrollPaneBorrow.setBounds(180, 40, 380, 290); buttonBack.setFont(new Font("Times New Roman", 0, 12)); buttonBack.setText("Back"); buttonBack.setEnabled(false); buttonBack.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { buttonBackActionPerformed(evt); } }); getContentPane().add(buttonBack); buttonBack.setBounds(200, 350, 80, 23); buttonNext.setFont(new Font("Times New Roman", 0, 12)); buttonNext.setText("Next"); buttonNext.setEnabled(false); buttonNext.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { buttonNextActionPerformed(evt); } }); getContentPane().add(buttonNext); buttonNext.setBounds(290, 350, 80, 23); buttonBorrow.setFont(new Font("Times New Roman", 0, 12)); buttonBorrow.setText("Borrow"); buttonBorrow.setEnabled(false); buttonBorrow.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { buttonBorrowActionPerformed(evt); } }); getContentPane().add(buttonBorrow); buttonBorrow.setBounds(380, 350, 80, 23); buttonCancel.setFont(new Font("Times New Roman", 0, 12)); buttonCancel.setText("Cancel"); buttonCancel.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { buttonCancelActionPerformed(evt); } }); getContentPane().add(buttonCancel); buttonCancel.setBounds(470, 350, 80, 23); panelMessage.setLayout(null); panelMessage.setFont(new Font("Times New Roman", 0, 12)); textAreaStep1.setEditable(false); textAreaStep1.setFont(new Font("Times New Roman", 1, 12)); textAreaStep1.setFocusable(false); textAreaStep1.setOpaque(false); panelMessage.add(textAreaStep1); textAreaStep1.setBounds(10, 50, 160, 60); textAreaStep2.setEditable(false); textAreaStep2.setFont(new Font("Times New Roman", 0, 12)); textAreaStep2.setFocusable(false); textAreaStep2.setOpaque(false); panelMessage.add(textAreaStep2); textAreaStep2.setBounds(10, 120, 160, 40); labelSteps.setFont(new Font("Times New Roman", 1, 14)); labelSteps.setText("Steps"); panelMessage.add(labelSteps); labelSteps.setBounds(10, 10, 40, 20); labelHints.setFont(new Font("Times New Roman", 1, 14)); labelHints.setText("Hints"); panelMessage.add(labelHints); labelHints.setBounds(10, 200, 40, 20); textAreaHints.setEditable(false); textAreaHints.setFont(new Font("Times New Roman", 1, 12)); textAreaHints.setFocusable(false); textAreaHints.setOpaque(false); panelMessage.add(textAreaHints); textAreaHints.setBounds(10, 240, 160, 80); getContentPane().add(panelMessage); panelMessage.setBounds(0, 0, 180, 330); labelTableName.setFont(new Font("Times New Roman", 1, 14)); labelTableName.setText("Member Table"); getContentPane().add(labelTableName); labelTableName.setBounds(180, 10, 130, 20); Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); setBounds((screenSize.width-570)/2, (screenSize.height-420)/2, 570, 420); }//the end of initComponents //this method set the states for components such as enabling a button //or disabling a button private void setComponents(){ String textTableNames[] = {"Memble Tables", "Video Tables"}; String textStep1 = "1. Choose a member from the\n member table on the\n right-hand side, then\n click the Next button."; String textStep2[] = {"2. ...", "2. Choose the video you want\n to borrow, then click the\n Borrow button."}; if (step == 1){ buttonBack.setEnabled(false); buttonBorrow.setEnabled(false); buttonCancel.setEnabled(true); textAreaStep1.setText(textStep1); textAreaStep1.setFont(new java.awt.Font("Times New Roman", 1, 12)); textAreaStep2.setText(textStep2[0]); textAreaStep2.setFont(new java.awt.Font("Times New Roman", 0, 12)); }else if(step == 2){ buttonBack.setEnabled(true); buttonNext.setEnabled(false); buttonCancel.setEnabled(true); labelTableName.setText(textTableNames[1]); textAreaStep1.setFont(new java.awt.Font("Times New Roman", 0, 12)); textAreaStep2.setText(textStep2[1]); textAreaStep2.setFont(new java.awt.Font("Times New Roman", 1, 12)); } } //when borrow button is pressed private void buttonBorrowActionPerformed(ActionEvent evt) { Lending lending = new Lending(memberNo, videoIndex); lendingSet.addNewLending(lending); exitDialog(); } //when back button is pressed private void buttonBackActionPerformed(ActionEvent evt) { step = 1; textAreaHints.setText(""); setComponents(); tableBorrow.setModel(tableHandlerMember); } //when next button is pressed private void buttonNextActionPerformed(ActionEvent evt) { step = 2; setComponents(); tableBorrow.setModel(tableHandlerVideo); } //when cancel button is pressed private void buttonCancelActionPerformed(ActionEvent evt) { exitDialog(); } private void exitDialog(){ setVisible(false); dispose(); } //Variables declaration - GUI-related private JButton buttonBack; private JButton buttonBorrow; private JButton buttonCancel; private JButton buttonNext; private JLabel labelHints; private JLabel labelSteps; private JLabel labelTableName; private JPanel panelMessage; private JScrollPane scrollPaneBorrow; private JTable tableBorrow; private JTextArea textAreaHints; private JTextArea textAreaStep1; private JTextArea textAreaStep2; //variables declaration - non-GUI-related private MemberSet memberSet; private VideoSet videoSet; private LendingSet lendingSet; private TableHandler tableHandlerMember; private TableHandler tableHandlerVideo; private int step; private int rowSelected; private int memberNo; private int membershipClass; private int videoIndex; private int videoLangClass;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -