📄 timeslotspanel.java
字号:
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 + -