我正在使用netbeans构建约会系统,
我已经构建了一个gui并且具有我需要将项目链接在一起的功能代码,以便我可以使用gui来保存新约会并使用文本区域来显示已保存的约会
我还需要一个搜索功能来搜索我的约会标题,让它告诉我什么时候我有相互冲突的约会
如果可能,任何人都可以告诉我如何以iCalendar格式保存约会?
package GUI;
import appointments.Appointment_Book;
import appointments.appointment;
import java.util.GregorianCalendar;
import controller.controller;
public class GUI extends javax.swing.JFrame {
//Creates new form GUI
public GUI() {
initComponents();
}
@SuppressWarnings("unchecked")
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
TitleField = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
textArea = new javax.swing.JTextArea();
StartField = new javax.swing.JTextField();
jLabel1 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
BookEnd = new javax.swing.JTextField();
AddButton = new javax.swing.JButton();
jLabel4 = new javax.swing.JLabel();
SearchBar = new javax.swing.JTextField();
SubmitButton = new javax.swing.JButton();
jMenuBar1 = new javax.swing.JMenuBar();
jMenu1 = new javax.swing.JMenu();
itemLoad = new javax.swing.JMenuItem();
itemSave = new javax.swing.JMenuItem();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jPanel1.setBackground(new java.awt.Color(51, 204, 255));
textArea.setColumns(20);
textArea.setRows(5);
jScrollPane1.setViewportView(textArea);
jLabel1.setFont(new java.awt.Font("Cambria", 0, 14)); // NOI18N
jLabel1.setText("Event Title");
jLabel2.setFont(new java.awt.Font("Cambria", 0, 14)); // NOI18N
jLabel2.setText("Book Start (DD,MM,YYYY)");
jLabel3.setFont(new java.awt.Font("Cambria", 0, 14)); // NOI18N
jLabel3.setText("Book End");
AddButton.setText("Add Event");
AddButton.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent evt) {
AddButtonActionPerformed(evt);
}
});
jLabel4.setFont(new java.awt.Font("Cambria", 0, 14)); // NOI18N
jLabel4.setText("Display");
SubmitButton.setText("Display");
SubmitButton.addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent evt) {
SubmitButtonActionPerformed(evt);
}
});
javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
jPanel1.setLayout(jPanel1Layout);
jPanel1Layout.setHorizontalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2)
.addComponent(jLabel3))
.addGap(30, 30, 30)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(AddButton, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(StartField)
.addComponent(TitleField)
.addComponent(BookEnd))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(18, 18, 18)
.addComponent(jLabel4)
.addGap(18, 18, 18)
.addComponent(SearchBar, javax.swing.GroupLayout.PREFERRED_SIZE, 99, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(SubmitButton)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
jPanel1Layout.setVerticalGroup(
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGap(34, 34, 34)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel1Layout.createSequentialGroup()
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(TitleField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel1))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(StartField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel2))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(BookEnd, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel3))
.addGap(44, 44, 44)
.addComponent(AddButton))
.addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 130, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 48, Short.MAX_VALUE)
.addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(SearchBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(SubmitButton))
.addGap(25, 25, 25))
);
jMenu1.setText("File");
itemLoad.setText("Load");
jMenu1.add(itemLoad);
itemSave.setText("Save");
jMenu1.add(itemSave);
jMenuBar1.add(jMenu1);
setJMenuBar(jMenuBar1);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
private void AddButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String startD= this.StartField.getText();
String[] dateTime=startD.split(",");
String date=dateTime[0];
String time=dateTime[1];
String[] mmddyy=date.split("/");
String[] hhmm=time.split(":");
GregorianCalendar start=new GregorianCalendar(Integer.parseInt(mmddyy[2]),Integer.parseInt(mmddyy[1]),Integer.parseInt(mmddyy[0]),Integer.parseInt(hhmm[0]),Integer.parseInt(hhmm[1]));
GregorianCalendar end=new GregorianCalendar();
String event=this.TitleField.getText();
appointment a1=new appointment(start,end,event);
this.apointment.add(a1);
this.textArea.append("appointments submitted");
}
private void SubmitButtonActionPerformed(java.awt.event.ActionEvent evt) {
// TODO
}
public static void main(String args[]) {
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(GUI.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
java.awt.EventQueue.invokeLater(() -> {
new GUI().setVisible(true);
});
}
Appointment_Book apointment=new Appointment_Book();
// Variables declaration
private javax.swing.JButton AddButton;
private javax.swing.JTextField BookEnd;
private javax.swing.JTextField SearchBar;
private javax.swing.JTextField StartField;
private javax.swing.JButton SubmitButton;
private javax.swing.JTextField TitleField;
private javax.swing.JMenuItem itemLoad;
private javax.swing.JMenuItem itemSave;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenuBar jMenuBar1;
private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea textArea;
// End of variables declaration
}