/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ import java.util.*; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Vector; import java.io.*; import javax.swing.*; import javax.swing.table.*; /** * * @author johannes */ public class DentalGUI extends javax.swing.JFrame { /** * Creates new form DentalGUI */ public DentalGUI() { initComponents(); (this).setVisible(true); } /** * This method is called from within the constructor to initialize the form. * WARNING: Do NOT modify this code. The content of this method is always * regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { AddPatientFrame = new javax.swing.JFrame(); IDLabel = new javax.swing.JLabel(); AddPatientLabel = new javax.swing.JLabel(); IDField = new javax.swing.JTextField(); NameLabel = new javax.swing.JLabel(); NameField = new javax.swing.JTextField(); AddressLabel = new javax.swing.JLabel(); AddressField = new javax.swing.JTextField(); PhoneLabel = new javax.swing.JLabel(); PhoneField = new javax.swing.JTextField(); TreatmentBox = new javax.swing.JComboBox<>(); TreatmentLabel = new javax.swing.JLabel(); MonthsLabel = new javax.swing.JLabel(); MonthField = new javax.swing.JTextField(); DescriptionLabel = new javax.swing.JLabel(); jScrollPane2 = new javax.swing.JScrollPane(); DescriptionField = new javax.swing.JTextArea(); AddButton = new javax.swing.JButton(); DeletePatientFrame = new javax.swing.JFrame(); DeletePatientLabel = new javax.swing.JLabel(); InfoLabel = new javax.swing.JLabel(); Delete = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); jTextField1 = new javax.swing.JTextField(); jTextField2 = new javax.swing.JTextField(); AddTreatmentFrame = new javax.swing.JFrame(); NewTreatmentLabel = new javax.swing.JLabel(); TreatmentNameLabel = new javax.swing.JLabel(); PriceLabel = new javax.swing.JLabel(); TreatmentNameField = new javax.swing.JTextField(); AddButton1 = new javax.swing.JButton(); PriceField = new javax.swing.JTextField(); DeleteTreatmentFrame = new javax.swing.JFrame(); DeleteTreatmentLabel = new javax.swing.JLabel(); TreatmentBox2 = new javax.swing.JComboBox<>(); TreatmentLabel2 = new javax.swing.JLabel(); DeleteButton2 = new javax.swing.JButton(); SearchLabel = new javax.swing.JLabel(); SearchField = new javax.swing.JTextField(); SearchButton = new javax.swing.JButton(); TabbedPane = new javax.swing.JTabbedPane(); jScrollPane1 = new javax.swing.JScrollPane(); jTable2 = new javax.swing.JTable(); PatientsInformationPane = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); MenuBar = new javax.swing.JMenuBar(); FileMenu = new javax.swing.JMenu(); Save1 = new javax.swing.JMenuItem(); Load1 = new javax.swing.JMenuItem(); Save2 = new javax.swing.JMenuItem(); Load2 = new javax.swing.JMenuItem(); EditMenu = new javax.swing.JMenu(); AddPatientMenuItem = new javax.swing.JMenuItem(); AddTreatmentMenuItem = new javax.swing.JMenuItem(); AddCalendarMenuItem = new javax.swing.JMenuItem(); jSeparator1 = new javax.swing.JPopupMenu.Separator(); EditPatientMenuItem = new javax.swing.JMenuItem(); jSeparator2 = new javax.swing.JPopupMenu.Separator(); DeletePatientMenuItem = new javax.swing.JMenuItem(); DeleteItemMenuItem = new javax.swing.JMenuItem(); IDLabel.setText("RUT"); AddPatientLabel.setText("Agregar Paciente"); IDField.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { IDFieldActionPerformed(evt); } }); NameLabel.setText("Nombre"); NameField.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { NameFieldActionPerformed(evt); } }); AddressLabel.setText("Direccion"); AddressField.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { AddressFieldActionPerformed(evt); } }); PhoneLabel.setText("Telefono"); PhoneField.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { PhoneFieldActionPerformed(evt); } }); TreatmentBox.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] {null} )); TreatmentLabel.setText("Tratamiento"); MonthsLabel.setText("Meses de Tratamiento"); MonthField.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { MonthFieldActionPerformed(evt); } }); DescriptionLabel.setText("Descripcion"); DescriptionField.setColumns(20); DescriptionField.setRows(5); jScrollPane2.setViewportView(DescriptionField); AddButton.setText("Agregar"); AddButton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { AddButtonActionPerformed(evt); } }); javax.swing.GroupLayout AddPatientFrameLayout = new javax.swing.GroupLayout(AddPatientFrame.getContentPane()); AddPatientFrame.getContentPane().setLayout(AddPatientFrameLayout); AddPatientFrameLayout.setHorizontalGroup( AddPatientFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(AddPatientFrameLayout.createSequentialGroup() .addGroup(AddPatientFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(AddPatientFrameLayout.createSequentialGroup() .addGroup(AddPatientFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(AddPatientFrameLayout.createSequentialGroup() .addGap(323, 323, 323) .addComponent(TreatmentBox, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(34, 34, 34) .addComponent(MonthField, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 31, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, AddPatientFrameLayout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(AddButton) .addGap(145, 145, 145))) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(AddPatientFrameLayout.createSequentialGroup() .addContainerGap() .addGroup(AddPatientFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(AddPatientFrameLayout.createSequentialGroup() .addComponent(IDField, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(NameField, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(AddressField, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(PhoneField, javax.swing.GroupLayout.PREFERRED_SIZE, 74, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(AddPatientFrameLayout.createSequentialGroup() .addComponent(IDLabel) .addGap(52, 52, 52) .addComponent(NameLabel) .addGap(45, 45, 45) .addComponent(AddressLabel) .addGap(35, 35, 35) .addComponent(PhoneLabel))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(TreatmentLabel) .addGap(18, 18, 18) .addComponent(MonthsLabel) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(DescriptionLabel) .addGap(0, 0, Short.MAX_VALUE))) .addContainerGap()) .addGroup(AddPatientFrameLayout.createSequentialGroup() .addGap(282, 282, 282) .addComponent(AddPatientLabel) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); AddPatientFrameLayout.setVerticalGroup( AddPatientFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(AddPatientFrameLayout.createSequentialGroup() .addGap(14, 14, 14) .addComponent(AddPatientLabel) .addGap(18, 18, 18) .addGroup(AddPatientFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(IDLabel) .addComponent(NameLabel) .addComponent(AddressLabel) .addComponent(PhoneLabel) .addComponent(TreatmentLabel) .addComponent(MonthsLabel) .addComponent(DescriptionLabel)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(AddPatientFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(AddPatientFrameLayout.createSequentialGroup() .addGroup(AddPatientFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(IDField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(NameField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(AddressField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(PhoneField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(TreatmentBox, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(MonthField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(AddButton)) .addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(29, Short.MAX_VALUE)) ); AddPatientFrameLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {IDField, IDLabel}); DeletePatientLabel.setText("Eliminar Paciente"); InfoLabel.setText("Para eliminar paciente ingrese el nombre o el numero de Rut"); Delete.setText("Eliminar"); Delete.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { DeleteActionPerformed(evt); } }); jLabel1.setText("RUT"); jLabel2.setText("Nombre"); jTextField1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField1ActionPerformed(evt); } }); jTextField2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jTextField2ActionPerformed(evt); } }); javax.swing.GroupLayout DeletePatientFrameLayout = new javax.swing.GroupLayout(DeletePatientFrame.getContentPane()); DeletePatientFrame.getContentPane().setLayout(DeletePatientFrameLayout); DeletePatientFrameLayout.setHorizontalGroup( DeletePatientFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(DeletePatientFrameLayout.createSequentialGroup() .addGroup(DeletePatientFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(DeletePatientFrameLayout.createSequentialGroup() .addGap(75, 75, 75) .addComponent(jLabel1) .addGap(106, 106, 106) .addComponent(jLabel2)) .addGroup(DeletePatientFrameLayout.createSequentialGroup() .addGap(56, 56, 56) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(53, 53, 53) .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(DeletePatientFrameLayout.createSequentialGroup() .addGap(126, 126, 126) .addComponent(Delete)) .addGroup(DeletePatientFrameLayout.createSequentialGroup() .addGap(116, 116, 116) .addComponent(DeletePatientLabel)) .addGroup(DeletePatientFrameLayout.createSequentialGroup() .addGap(21, 21, 21) .addComponent(InfoLabel))) .addContainerGap(74, Short.MAX_VALUE)) ); DeletePatientFrameLayout.setVerticalGroup( DeletePatientFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(DeletePatientFrameLayout.createSequentialGroup() .addGap(24, 24, 24) .addComponent(DeletePatientLabel) .addGap(36, 36, 36) .addGroup(DeletePatientFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(jLabel2)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(DeletePatientFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jTextField2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addComponent(Delete) .addGap(18, 18, 18) .addComponent(InfoLabel) .addContainerGap(25, Short.MAX_VALUE)) ); NewTreatmentLabel.setText("Nuevo Tratamiento"); TreatmentNameLabel.setText("Nombre Tratamiento"); PriceLabel.setText("Precio por Consulta"); TreatmentNameField.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { TreatmentNameFieldActionPerformed(evt); } }); AddButton1.setText("Agregar"); AddButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { AddButton1ActionPerformed(evt); } }); PriceField.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { PriceFieldActionPerformed(evt); } }); javax.swing.GroupLayout AddTreatmentFrameLayout = new javax.swing.GroupLayout(AddTreatmentFrame.getContentPane()); AddTreatmentFrame.getContentPane().setLayout(AddTreatmentFrameLayout); AddTreatmentFrameLayout.setHorizontalGroup( AddTreatmentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(AddTreatmentFrameLayout.createSequentialGroup() .addGroup(AddTreatmentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(AddTreatmentFrameLayout.createSequentialGroup() .addGap(42, 42, 42) .addGroup(AddTreatmentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(TreatmentNameLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(TreatmentNameField)) .addGap(73, 73, 73) .addGroup(AddTreatmentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(PriceField, javax.swing.GroupLayout.PREFERRED_SIZE, 99, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(PriceLabel))) .addGroup(AddTreatmentFrameLayout.createSequentialGroup() .addGap(120, 120, 120) .addComponent(NewTreatmentLabel)) .addGroup(AddTreatmentFrameLayout.createSequentialGroup() .addGap(135, 135, 135) .addComponent(AddButton1))) .addContainerGap(46, Short.MAX_VALUE)) ); AddTreatmentFrameLayout.setVerticalGroup( AddTreatmentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(AddTreatmentFrameLayout.createSequentialGroup() .addContainerGap(29, Short.MAX_VALUE) .addComponent(NewTreatmentLabel) .addGap(35, 35, 35) .addGroup(AddTreatmentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(TreatmentNameLabel) .addComponent(PriceLabel)) .addGap(18, 18, 18) .addGroup(AddTreatmentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(TreatmentNameField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(PriceField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(AddButton1) .addGap(12, 12, 12)) ); DeleteTreatmentLabel.setText("Eliminar Tratamiento"); TreatmentBox2.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] {null})); TreatmentLabel2.setText("Tratamiento"); DeleteButton2.setText("Eliminar"); DeleteButton2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { DeleteButton2ActionPerformed(evt); } }); javax.swing.GroupLayout DeleteTreatmentFrameLayout = new javax.swing.GroupLayout(DeleteTreatmentFrame.getContentPane()); DeleteTreatmentFrame.getContentPane().setLayout(DeleteTreatmentFrameLayout); DeleteTreatmentFrameLayout.setHorizontalGroup( DeleteTreatmentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(DeleteTreatmentFrameLayout.createSequentialGroup() .addGap(88, 88, 88) .addGroup(DeleteTreatmentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(DeleteButton2) .addGroup(DeleteTreatmentFrameLayout.createSequentialGroup() .addComponent(TreatmentLabel2) .addGap(44, 44, 44) .addComponent(TreatmentBox2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, DeleteTreatmentFrameLayout.createSequentialGroup() .addContainerGap(161, Short.MAX_VALUE) .addComponent(DeleteTreatmentLabel) .addGap(156, 156, 156)) ); DeleteTreatmentFrameLayout.setVerticalGroup( DeleteTreatmentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(DeleteTreatmentFrameLayout.createSequentialGroup() .addGap(25, 25, 25) .addComponent(DeleteTreatmentLabel) .addGap(44, 44, 44) .addGroup(DeleteTreatmentFrameLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(TreatmentBox2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(TreatmentLabel2)) .addGap(34, 34, 34) .addComponent(DeleteButton2) .addContainerGap(32, Short.MAX_VALUE)) ); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); addWindowListener(new java.awt.event.WindowAdapter() { public void windowIconified(java.awt.event.WindowEvent evt) { formWindowIconified(evt); } }); SearchLabel.setText("Buscador"); SearchButton.setText("Buscar"); jTable2.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {"8:00", null, null, null, null, null, null}, {"8:30", null, null, null, null, null, null}, {"9:00", null, null, null, null, null, null}, {"9:30", null, null, null, null, null, null}, {"10:00", null, null, null, null, null, null}, {"10:30", null, null, null, null, null, null}, {"11:00", null, null, null, null, null, null}, {"11:30", null, null, null, null, null, null}, {"12:00", null, null, null, null, null, null}, {"12:30", null, null, null, null, null, null}, {"13:00", null, null, null, null, null, null}, {"14:00", "-", "-", "-", "-", "-", "-"}, {"14:30", null, null, null, null, null, null}, {"15:00", null, null, null, null, null, null}, {"15:30", null, null, null, null, null, null}, {"16:00", null, null, null, null, null, null}, {"16:30", null, null, null, null, null, null}, {"17:00", null, null, null, null, null, null} }, new String [] { "Hora", "Lunes", "Martes", "Miercoles", "Viernes", "Sabado", "Domingo" } ) { boolean[] canEdit = new boolean [] { false, true, true, true, true, true, true }; public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; } }); jScrollPane1.setViewportView(jTable2); TabbedPane.addTab("Calendario", jScrollPane1); jTable1.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { }, new String [] { "RUT", "Nombre", "Direccion", "Telefono", "Tratamiento", "Precio", "Descripcion", "Proxima Hora" } ) { Class[] types = new Class [] { java.lang.String.class, java.lang.Class.class, java.lang.Class.class, java.lang.Class.class, java.lang.Class.class, java.lang.Class.class, java.lang.Class.class, java.lang.Class.class }; boolean[] canEdit = new boolean [] { false, false, false, false, false, false, true, false }; public Class getColumnClass(int columnIndex) { return types [columnIndex]; } public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; } }); PatientsInformationPane.setViewportView(jTable1); TabbedPane.addTab("Pacientes", PatientsInformationPane); FileMenu.setText("File"); Save1.setText("Guardar Pacientes"); Save1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { saveTablePat(); } }); FileMenu.add(Save1); Save2.setText("Guardar Horario"); Save2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { saveTableSch(); } }); FileMenu.add(Save2); Load1.setText("Cargar Pacientes"); Load1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { loadTablePat(); } }); FileMenu.add(Load1); Load2.setText("Cargar Horario"); Load2.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { loadTableSch(); } }); FileMenu.add(Load2); MenuBar.add(FileMenu); EditMenu.setText("Edit"); AddPatientMenuItem.setText("Agregar Paciente"); AddPatientMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { AddPatientMenuItemActionPerformed(evt); } }); EditMenu.add(AddPatientMenuItem); AddTreatmentMenuItem.setText("Agregar Tratamiento"); AddTreatmentMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { AddTreatmentMenuItemActionPerformed(evt); } }); EditMenu.add(AddTreatmentMenuItem); AddCalendarMenuItem.setText("Agregar Hora Paciente"); AddCalendarMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { AddCalendarMenuItemActionPerformed(evt); } }); EditMenu.add(AddCalendarMenuItem); EditMenu.add(jSeparator1); EditPatientMenuItem.setText("Editar Paciente"); EditPatientMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { EditPatientMenuItemActionPerformed(evt); } }); EditMenu.add(EditPatientMenuItem); EditMenu.add(jSeparator2); DeletePatientMenuItem.setText("Eliminar Paciente"); DeletePatientMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { DeletePatientMenuItemActionPerformed(evt); } }); EditMenu.add(DeletePatientMenuItem); DeleteItemMenuItem.setText("Eliminar Tratamiento"); DeleteItemMenuItem.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { DeleteItemMenuItemActionPerformed(evt); } }); EditMenu.add(DeleteItemMenuItem); MenuBar.add(EditMenu); setJMenuBar(MenuBar); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(TabbedPane) .addGroup(layout.createSequentialGroup() .addComponent(SearchLabel) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(SearchField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(SearchButton) .addGap(0, 656, Short.MAX_VALUE))) .addContainerGap()) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {SearchButton, SearchField, SearchLabel}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(SearchLabel) .addComponent(SearchField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(SearchButton)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(TabbedPane, javax.swing.GroupLayout.PREFERRED_SIZE, 444, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {SearchButton, SearchField, SearchLabel}); pack(); }// //GEN-END:initComponents private void AddCalendarMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddCalendarMenuItemActionPerformed // TODO add your handling code here: }//GEN-LAST:event_AddCalendarMenuItemActionPerformed private void AddPatientMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddPatientMenuItemActionPerformed AddPatientFrame.setVisible(true); // TODO add your handling code here: AddPatientFrame.pack(); }//GEN-LAST:event_AddPatientMenuItemActionPerformed private void IDFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_IDFieldActionPerformed // TODO add your handling code here: }//GEN-LAST:event_IDFieldActionPerformed private void NameFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_NameFieldActionPerformed // TODO add your handling code here: }//GEN-LAST:event_NameFieldActionPerformed private void AddressFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddressFieldActionPerformed // TODO add your handling code here: }//GEN-LAST:event_AddressFieldActionPerformed private void PhoneFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_PhoneFieldActionPerformed // TODO add your handling code here: }//GEN-LAST:event_PhoneFieldActionPerformed private void MonthFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_MonthFieldActionPerformed // TODO add your handling code here: }//GEN-LAST:event_MonthFieldActionPerformed private void AddButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddButtonActionPerformed AddPatientFrame.setVisible(false); // TODO add your handling code here: String id = IDField.getText(); String name = NameField.getText(); String address = AddressField.getText(); String phone = PhoneField.getText(); String description = DescriptionField.getText(); String treatment = (String) TreatmentBox.getSelectedItem(); if(AddPatientLabel.getText() == "Agregar Paciente"){ } else { //Hacer codigo para que el paciente existente con esos datos cambie a los datos nuevos. AddPatientLabel.setText("Agregar Paciente"); } if (!name.equals("") && !id.equals("") && !phone.equals("")) { Paciente paciente = new Paciente(name , id , phone , description , address , treatment); this.pacientes.add(paciente); javax.swing.table.DefaultTableModel model = (javax.swing.table.DefaultTableModel) jTable1.getModel(); model.addRow(new Object[]{id , name , address , phone , treatment , treatment , description , description}); // "RUT", "Nombre", "Direccion", "Telefono", "Tratamiento", "Precio", "Descripcion", "Proxima Hora" javax.swing.JOptionPane.showMessageDialog(this, "Paciente agregado con éxito."); } else { javax.swing.JOptionPane.showMessageDialog(this, "Algún dato no fue agregado correctamente, por favor intente denuevo. \n Agregue por lo menos nombre, rut y teléfono", "Mensaje de error!", javax.swing.JOptionPane.ERROR_MESSAGE); } IDField.setText(""); NameField.setText(""); AddressField.setText(""); PhoneField.setText(""); DescriptionField.setText(""); MonthField.setText(""); }//GEN-LAST:event_AddButtonActionPerformed private void EditPatientMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_EditPatientMenuItemActionPerformed AddPatientFrame.setVisible(true); // TODO add your handling code here: AddPatientFrame.pack(); AddPatientLabel.setText("Editar Paciente"); }//GEN-LAST:event_EditPatientMenuItemActionPerformed private void DeleteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_DeleteActionPerformed DeletePatientFrame.setVisible(false); // TODO add your handling code here: //Agregar codigo para eliminar al paciente de la base de datos }//GEN-LAST:event_DeleteActionPerformed private void jTextField1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField1ActionPerformed // TODO add your handling code here: }//GEN-LAST:event_jTextField1ActionPerformed private void jTextField2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextField2ActionPerformed // TODO add your handling code here: }//GEN-LAST:event_jTextField2ActionPerformed private void DeletePatientMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_DeletePatientMenuItemActionPerformed DeletePatientFrame.setVisible(true); // TODO add your handling code here: DeletePatientFrame.pack();// TODO add your handling code here: }//GEN-LAST:event_DeletePatientMenuItemActionPerformed private void TreatmentNameFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_TreatmentNameFieldActionPerformed // TODO add your handling code here: }//GEN-LAST:event_TreatmentNameFieldActionPerformed private void PriceFieldActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_PriceFieldActionPerformed // TODO add your handling code here: }//GEN-LAST:event_PriceFieldActionPerformed private void AddTreatmentMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddTreatmentMenuItemActionPerformed AddTreatmentFrame.setVisible(true); // TODO add your handling code here: AddTreatmentFrame.pack(); }//GEN-LAST:event_AddTreatmentMenuItemActionPerformed private void AddButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_AddButton1ActionPerformed AddTreatmentFrame.setVisible(false); // TODO add your handling code here: String price = PriceField.getText(); String name = TreatmentNameField.getText(); //Agregar codigo que agregue nuevo tratamiento. Tambien hay q agregar el nuevo tratamiento a los comboboxes TreatmentNameField.setText(""); PriceField.setText(""); }//GEN-LAST:event_AddButton1ActionPerformed private void DeleteButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_DeleteButton2ActionPerformed DeleteTreatmentFrame.setVisible(false); // TODO add your handling code here: //TreatmentBox.deleteItem(TreatmentBox.getSelectedItem()); Se elimina de una forma asi creo. //Eliminar tratamiento }//GEN-LAST:event_DeleteButton2ActionPerformed private void DeleteItemMenuItemActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_DeleteItemMenuItemActionPerformed DeleteTreatmentFrame.setVisible(true); // TODO add your handling code here: DeleteTreatmentFrame.pack(); }//GEN-LAST:event_DeleteItemMenuItemActionPerformed private void formWindowIconified(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowIconified // TODO add your handling code here: }//GEN-LAST:event_formWindowIconified private void saveTablePat() { if (myJFileChooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION ) { saveTablePat(myJFileChooser.getSelectedFile()); } } private void saveTablePat(File file) { try { ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream(file)); DefaultTableModel tableModel =(DefaultTableModel) jTable1.getModel(); out.writeObject(tableModel.getDataVector()); out.writeObject(getColumnNames1()); out.close(); } catch (Exception ex) { ex.printStackTrace(); } } private void saveTableSch() { if (myJFileChooser.showSaveDialog(this) == JFileChooser.APPROVE_OPTION ) { saveTableSch(myJFileChooser.getSelectedFile()); } } private void saveTableSch(File file) { try { ObjectOutputStream out = new ObjectOutputStream( new FileOutputStream(file)); DefaultTableModel tableModel =(DefaultTableModel) jTable2.getModel(); out.writeObject(tableModel.getDataVector()); out.writeObject(getColumnNames2()); out.close(); } catch (Exception ex) { ex.printStackTrace(); } } private Vector getColumnNames1() { Vector columnNames = new Vector(); for (int i = 0; i < jTable1.getColumnCount(); i++) columnNames.add(jTable1.getColumnName(i) ); return columnNames; } private Vector getColumnNames2() { Vector columnNames = new Vector(); for (int i = 0; i < jTable2.getColumnCount(); i++) columnNames.add(jTable2.getColumnName(i) ); return columnNames; } private void loadTablePat() { if (myJFileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION ) loadTablePat(myJFileChooser.getSelectedFile()); } private void loadTablePat(File file) { try { ObjectInputStream in = new ObjectInputStream( new FileInputStream(file)); Vector rowData = (Vector)in.readObject(); Vector columnNames = (Vector)in.readObject(); DefaultTableModel tableModel = new DefaultTableModel(rowData, columnNames); jTable1.setModel(tableModel); in.close(); } catch (Exception ex) { ex.printStackTrace(); } } private void loadTableSch() { if (myJFileChooser.showOpenDialog(this) == JFileChooser.APPROVE_OPTION ) loadTableSch(myJFileChooser.getSelectedFile()); } private void loadTableSch(File file) { try { ObjectInputStream in = new ObjectInputStream( new FileInputStream(file)); Vector rowData = (Vector)in.readObject(); Vector columnNames = (Vector)in.readObject(); DefaultTableModel tableModel = new DefaultTableModel(rowData, columnNames); jTable2.setModel(tableModel); in.close(); } catch (Exception ex) { ex.printStackTrace(); } } /** * @param args the command line arguments */ // Variables declaration - do not modify//GEN-BEGIN:variables private ArrayList pacientes = new ArrayList();; private javax.swing.JButton AddButton; private javax.swing.JButton AddButton1; private javax.swing.JMenuItem AddCalendarMenuItem; private javax.swing.JFrame AddPatientFrame; private javax.swing.JLabel AddPatientLabel; private javax.swing.JMenuItem AddPatientMenuItem; private javax.swing.JFrame AddTreatmentFrame; private javax.swing.JMenuItem AddTreatmentMenuItem; private javax.swing.JTextField AddressField; private javax.swing.JLabel AddressLabel; private javax.swing.JButton Delete; private javax.swing.JButton DeleteButton2; private javax.swing.JMenuItem DeleteItemMenuItem; private javax.swing.JFrame DeletePatientFrame; private javax.swing.JLabel DeletePatientLabel; private javax.swing.JMenuItem DeletePatientMenuItem; private javax.swing.JFrame DeleteTreatmentFrame; private javax.swing.JLabel DeleteTreatmentLabel; private javax.swing.JTextArea DescriptionField; private javax.swing.JLabel DescriptionLabel; private javax.swing.JMenu EditMenu; private javax.swing.JMenuItem EditPatientMenuItem; private javax.swing.JButton EnterButton; private javax.swing.JMenu FileMenu; private javax.swing.JButton ForgottenPasswordButton; private javax.swing.JTextField IDField; private javax.swing.JLabel IDLabel; private javax.swing.JLabel InfoLabel; private javax.swing.JLabel InvalidUserOrPasswordLabel; private javax.swing.JFrame LoginFrame; private javax.swing.JMenuBar MenuBar; private javax.swing.JTextField MonthField; private javax.swing.JLabel MonthsLabel; private javax.swing.JTextField NameField; private javax.swing.JLabel NameLabel; private javax.swing.JLabel NewTreatmentLabel; private javax.swing.JScrollPane PatientsInformationPane; private javax.swing.JTextField PhoneField; private javax.swing.JLabel PhoneLabel; private javax.swing.JTextField PriceField; private javax.swing.JLabel PriceLabel; private javax.swing.JMenuItem Save1; private javax.swing.JMenuItem Load1; private javax.swing.JMenuItem Save2; private javax.swing.JMenuItem Load2; private javax.swing.JButton SearchButton; private javax.swing.JTextField SearchField; private javax.swing.JLabel SearchLabel; private javax.swing.JTabbedPane TabbedPane; private javax.swing.JComboBox TreatmentBox; private javax.swing.JComboBox TreatmentBox2; private javax.swing.JLabel TreatmentLabel; private javax.swing.JLabel TreatmentLabel2; private javax.swing.JTextField TreatmentNameField; private javax.swing.JLabel TreatmentNameLabel; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JPasswordField jPasswordField1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JPopupMenu.Separator jSeparator1; private javax.swing.JPopupMenu.Separator jSeparator2; private javax.swing.JTable jTable1; private javax.swing.JTable jTable2; private javax.swing.JTextField jTextField1; private javax.swing.JTextField jTextField2; private javax.swing.JTextField jTextField3; private JFileChooser myJFileChooser = new JFileChooser(new File(".")); // End of variables declaration//GEN-END:variables }