⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timeslotspanel.java

📁 The program is used for Classroom Scheduling for tutors and students. It contain gui tools for mana
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        jLabel11.setText("Stop Time:  ");
        jPanel31.add(jLabel11, new java.awt.GridBagConstraints());

        tfStopHours.setToolTipText("Hour (use 12 hour clock)");
        tfStopHours.setPreferredSize(new java.awt.Dimension(25, 20));
        jPanel31.add(tfStopHours, new java.awt.GridBagConstraints());

        jLabel21.setText(":");
        jPanel31.add(jLabel21, new java.awt.GridBagConstraints());

        tfStopMinutes.setToolTipText("Minute");
        tfStopMinutes.setPreferredSize(new java.awt.Dimension(25, 20));
        jPanel31.add(tfStopMinutes, new java.awt.GridBagConstraints());

        jPanel51.setLayout(new java.awt.GridBagLayout());

        rbStopAM.setText("AM");
        rbStopAM.setToolTipText("Must select one of AM/PM");
        buttonGroup2.add(rbStopAM);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 0;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        jPanel51.add(rbStopAM, gridBagConstraints);

        rbStopPM.setText("PM");
        rbStopPM.setToolTipText("Must select one of AM/PM");
        buttonGroup2.add(rbStopPM);
        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 0;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        jPanel51.add(rbStopPM, gridBagConstraints);

        jPanel31.add(jPanel51, new java.awt.GridBagConstraints());

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 1;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.ipadx = 28;
        gridBagConstraints.ipady = 12;
        gridBagConstraints.insets = new java.awt.Insets(0, 10, 0, 0);
        jPanel2.add(jPanel31, gridBagConstraints);

        addButton.setText("Add Time Slot");
        addButton.setToolTipText("Add this timeslot to the list");
        jPanel4.add(addButton);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.gridx = 1;
        gridBagConstraints.gridy = 3;
        gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH;
        gridBagConstraints.ipadx = 31;
        gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST;
        gridBagConstraints.insets = new java.awt.Insets(17, 30, 17, 0);
        jPanel2.add(jPanel4, gridBagConstraints);

        gridBagConstraints = new java.awt.GridBagConstraints();
        gridBagConstraints.insets = new java.awt.Insets(0, 17, 0, 17);
        add(jPanel2, gridBagConstraints);

    }//GEN-END:initComponents

    private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_deleteButtonActionPerformed
        // Add your handling code here:
    }//GEN-LAST:event_deleteButtonActionPerformed
        
    public void update(java.util.Observable observable, Object obj) {
        ptm.fireTableDataChanged();
    }
    
    
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton addButton;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.ButtonGroup buttonGroup2;
    private javax.swing.JCheckBox cbFriday;
    private javax.swing.JCheckBox cbMonday;
    private javax.swing.JCheckBox cbSaturday;
    private javax.swing.JCheckBox cbSunday;
    private javax.swing.JCheckBox cbThursday;
    private javax.swing.JCheckBox cbTuesday;
    private javax.swing.JCheckBox cbWednesday;
    private javax.swing.JButton deleteButton;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel11;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel21;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel31;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel51;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTable1;
    private javax.swing.JRadioButton rbStartAM;
    private javax.swing.JRadioButton rbStartPM;
    private javax.swing.JRadioButton rbStopAM;
    private javax.swing.JRadioButton rbStopPM;
    private javax.swing.JTextField tfStartHours;
    private javax.swing.JTextField tfStartMinutes;
    private javax.swing.JTextField tfStopHours;
    private javax.swing.JTextField tfStopMinutes;
    // End of variables declaration//GEN-END:variables
    
    private TimeSlotsPanelListener timeSlotsPanelListener;
    private Schedule schedule = Schedule.getSchedule();
    private TimeSlotTableModel ptm;
    private TableSorter sorter;
    private TableColumn daysColumn;
    private TableColumn startColumn;
    private TableColumn endColumn;
    private JTextField editDays = new JTextField();
    private JTextField editStart = new JTextField();
    private JTextField editStop = new JTextField();
    
    private Component parent; // for placing the error dialogs
    
    class TimeSlotsPanelListener implements ActionListener {
        
        public void actionPerformed(ActionEvent e) {
            System.out.println("I hear " + "|"+e.getActionCommand()+"|");
            if (e.getActionCommand().equals("Add Time Slot")){
              // check that the days of week are valid
                boolean anyDaySet = false;
                boolean tempDays[] = new boolean[8];
                
                anyDaySet = setDayFlags(tempDays);
                
                if (!anyDaySet) {
                    JOptionPane.showMessageDialog(parent, "You must pick at least one day of the week");
                    return;
                }
                
                // make the start and stop times
                CRTime tempStart, tempStop;
                
                try {
                    tempStart = new CRTime(Integer.parseInt(tfStartHours.getText().trim()),
                    Integer.parseInt(tfStartMinutes.getText().trim()),
                    rbStartAM.isSelected());
                    tempStop = new CRTime(Integer.parseInt(tfStopHours.getText().trim()),
                    Integer.parseInt(tfStopMinutes.getText().trim()),
                    rbStopAM.isSelected());
                }
                catch (CRTimeException crte) {
                    JOptionPane.showMessageDialog(parent, crte.getMessage());
                    return;
                }
                catch (NumberFormatException nfe) {
                    JOptionPane.showMessageDialog(parent, 
                        "You must enter a valid number (1-12) in the hour and minute fields");
                    return;
                }
                
                schedule.addTimeSlot(new TimeSlot(tempDays, tempStart, tempStop));
                
                // clear the UI            
                cbSunday.setSelected(false);
                cbMonday.setSelected(false);
                cbTuesday.setSelected(false);
                cbWednesday.setSelected(false);
                cbThursday.setSelected(false);
                cbFriday.setSelected(false);
                cbSaturday.setSelected(false);
                
                rbStartAM.setSelected(false);  
                rbStopAM.setSelected(false);
                rbStartPM.setSelected(false);  
                rbStopPM.setSelected(false);
                tfStartHours.setText("");
                tfStartMinutes.setText("");
                tfStopHours.setText("");
                tfStopMinutes.setText("");

                
            } else if (e.getActionCommand().equals("Delete Selected Time Slot(s)")){
                System.out.println("I'm deleting a time slot over here");
                // Determine which items to be deleted
                int[] selected = jTable1.getSelectedRows();
                
                for (int i = selected.length - 1 ; i >= 0 ; i--) {
                    int realIndex = sorter.map(selected[i]);
                    // Removes the items from the list
                    schedule.removeTimeSlot((TimeSlot)
                    schedule.getTimeSlots().get(realIndex));
                }
            }
        }
    } // end inner class
    
    private boolean setDayFlags(boolean[] tempdays){
        boolean result = false;
        if (cbSunday.isSelected()){
            result = true;
            tempdays[Calendar.SUNDAY] = true;
        }
        if (cbMonday.isSelected()){
            result = true;
            tempdays[Calendar.MONDAY] = true;
        }        
        if (cbTuesday.isSelected()){
            result = true;
            tempdays[Calendar.TUESDAY] = true;
        }
        if (cbWednesday.isSelected()){
            result = true;
            tempdays[Calendar.WEDNESDAY] = true;
        }
        if (cbThursday.isSelected()){
            result = true;
            tempdays[Calendar.THURSDAY] = true;
        }
        if (cbFriday.isSelected()){
            result = true;
            tempdays[Calendar.FRIDAY] = true;
        }
        if (cbSaturday.isSelected()){
            result = true;
            tempdays[Calendar.SATURDAY] = true;
        }   
        return result;
    }
}


class TimeSlotTableModel extends AbstractTableModel {
    private Schedule schedule;
    
    final String[] columnNames = {
        "Days of Week",
        "Start",
        "End",
    };
    /** Creates a new instance of RoomsTableModel */
    public TimeSlotTableModel() {
        schedule = Schedule.getSchedule();
    }
    public int getColumnCount() {
        return columnNames.length;
    }
    public int getRowCount() {
        return schedule.getTimeSlots().size();
    }
    public String getColumnName(int col) {
        return columnNames[col];
    }
    
    public Class getColumnClass(int c) {
        return " ".getClass();
    }
    public boolean isCellEditable(int row, int col) {
        return false;
    }
    public Object getValueAt(int row, int col) {
       TimeSlot timeSlot = (TimeSlot)schedule.getTimeSlots().get(row);
        switch(col){
            case 0: return timeSlot.toDaysString();
            case 1: 
                if (timeSlot.getStartTime() != null){
                    return timeSlot.getStartTime().toString();
                }
            case 2: 
                if(timeSlot.getStopTime() != null){
                    return timeSlot.getStopTime().toString();
                }
        }
        return ""; 
    }
    public void setValueAt(Object value, int row, int col) {
        //fireTableCellUpdated(row, col);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -