Frames (Cannot Edit a Record)

I have a program.
It displays the Form. On the form are the various controls i.e text fields and buttons.
They ask the user to enter the name and phone nos.
Their are also add record button, find record button, delete record button and save record button.
My problem is that when I am suppose to edit a record it does not do so.
Please help.
I am using java version 1.3.1
<---------------------------------------------------------------------->
Here is the Phone.java file
<---------------------------------------------------------------------->
public class Phone
public Phone(long aPhoneNo, String aName)
phoneNo = aPhoneNo;
name = aName;
public long getPhoneNo()
return phoneNo;
public String getName()
return name;
private long phoneNo;
private String name;
<---------------------------------------------------------------------->
Here is the PhoneBook.java file
<---------------------------------------------------------------------->
import java.util.ArrayList;
public class PhoneBook
public PhoneBook()
records = new ArrayList();
public void addPhone(Phone aPhone)
records.add(aPhone);
public long findPhone(String name)
long phoneNo;
Phone p;
for (int i = 0; i < records.size(); i++)
p = (Phone)records.get(i);
if (name.equals(p.getName()))
return phoneNo = p.getPhoneNo();
return 0;
public void deletePhone(Phone aPhone)
long phone1, phone2;
String name1, name2;
for (int i = 0; i < records.size(); i++)
Phone p = (Phone)records.get(i);
phone1 = p.getPhoneNo();
name1 = p.getName();
phone2 = aPhone.getPhoneNo();
name2 = aPhone.getName();
if ((phone1 == phone2) && name1.equals(name2))
records.remove(i);
public void editPhone(long phoneNo, String name)
Phone p = new Phone(phoneNo, name);
long phone1, phone2;
String name1, name2;
for (int i = 0; i < records.size(); i++)
Phone pObj = (Phone)records.get(i);
phone1 = p.getPhoneNo();
name1 = p.getName();
phone2 = pObj.getPhoneNo();
name2 = pObj.getName();
if ((phone1 == phone2) && name1.equals(name2))
records.set(i, p);
private ArrayList records;
<---------------------------------------------------------------------->
Here is the PhoneGui.java file
<---------------------------------------------------------------------->
import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.JPanel;
import java.awt.GridLayout;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
* <p>Title: Assignment No. 3</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: Humber College</p>
* @author Gurjeet Singh
* @version 1.0
public class PhoneGui extends JFrame
public PhoneGui()
objectPhoneBook = new PhoneBook();
createEnterDataPanel();
createButtonsPanel();
public void createEnterDataPanel()
JPanel enterDataPanel = new JPanel();
enterDataPanel.setLayout(new GridLayout(2, 2));
JLabel lblName = new JLabel("Enter a Name : ");
txtName = new JTextField(50);
JLabel lblPhone = new JLabel("Enter a Phone# : ");
txtPhone = new JTextField(12);
enterDataPanel.setPreferredSize(new Dimension(PANEL_WIDTH, PANEL_HEIGHT));
enterDataPanel.add(lblName);
enterDataPanel.add(txtName);
enterDataPanel.add(lblPhone);
enterDataPanel.add(txtPhone);
getContentPane().add(enterDataPanel, BorderLayout.NORTH);
public void createButtonsPanel()
JPanel buttonsPanel = new JPanel();
buttonsPanel.setPreferredSize(new Dimension(PANEL_WIDTH, PANEL_HEIGHT));
buttonsPanel.setLayout(new GridLayout(1, 4));
JButton buttonAddRecord = new JButton("Add a Record");
JButton buttonFindRecord = new JButton("Find and display");
JButton buttonDeleteRecord = new JButton("Delete");
JButton buttonEditRecord = new JButton("Save");
buttonsPanel.add(buttonAddRecord);
buttonsPanel.add(buttonFindRecord);
buttonsPanel.add(buttonDeleteRecord);
buttonsPanel.add(buttonEditRecord);
getContentPane().add(buttonsPanel, BorderLayout.SOUTH);
class ButtonListener1 implements ActionListener
public void actionPerformed(ActionEvent event)
phoneNo = Long.parseLong(txtPhone.getText());
name = txtName.getText();
objectPhoneBook.addPhone(new Phone(phoneNo, name));
ButtonListener1 listener1 = new ButtonListener1();
class ButtonListener2 implements ActionListener
public void actionPerformed(ActionEvent event)
name = txtName.getText();
phoneNo = objectPhoneBook.findPhone(name);
if (phoneNo != 0)
txtPhone.setText("" + phoneNo);
else
txtPhone.setText("No Record found");
ButtonListener2 listener2 = new ButtonListener2();
class ButtonListener3 implements ActionListener
public void actionPerformed(ActionEvent event)
name = txtName.getText();
phoneNo = Long.parseLong(txtPhone.getText());
objectPhoneBook.deletePhone(new Phone(phoneNo, name));
ButtonListener3 listener3 = new ButtonListener3();
class ButtonListener4 implements ActionListener
public void actionPerformed(ActionEvent event)
name = txtName.getText();
phoneNo = Long.parseLong(txtPhone.getText());
objectPhoneBook.editPhone(phoneNo, name);
ButtonListener4 listener4 = new ButtonListener4();
buttonAddRecord.addActionListener(listener1);
buttonFindRecord.addActionListener(listener2);
buttonDeleteRecord.addActionListener(listener3);
buttonEditRecord.addActionListener(listener4);
private static final int PANEL_WIDTH = 520;
private static final int PANEL_HEIGHT = 100;
private JTextField txtName;
private JTextField txtPhone;
private long phoneNo;
private String name;
PhoneBook objectPhoneBook;
<---------------------------------------------------------------------->
Here is the PhoneGui.java file
<---------------------------------------------------------------------->
import javax.swing.JFrame;
public class TestPhoneGui
public static void main(String[] args)
JFrame frame = new PhoneGui();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.show();
frame.pack();

Ok, first, don't post so damn much, it makes it really annoying to read.
public void editPhone(long phoneNo, String name)
Phone p = new Phone(phoneNo, name);
long phone1, phone2;
String name1, name2;
for (int i = 0; i < records.size(); i++)
Phone pObj = (Phone)records.get(i);
phone1 = p.getPhoneNo();
name1 = p.getName();
phone2 = pObj.getPhoneNo();
name2 = pObj.getName();
if ((phone1 == phone2) && name1.equals(name2))
records.set(i, p);
} // end if
} // end for
} // end editPhone()Okay, you are correct... this method DOES do nothing.
Why should it? It creates a new Phone object, compares that against each of the existing Phone objects, if it finds one that matches, it replaces it with THE SAME ONE.
It might be a better idea to either make
public void editPhone(long phoneNo, String name)
so that when it finds an entry that matches, it prompts for user input for a new phoneNo and name.
That, or make
public void editPhone(Phone toFind, Phone toReplace)
which I think is simplest and most obvious.
I personally would have made a method
PhoneBook.editPhone(Phone toFind)
editPhone(toFind.getPhoneNo(), toFind.getName());
PhoneBook.editPhone(long number, String name)
for (int i = 0; i < records.size(); i++)
Phone p = (Phone)records.get(i);
if ((number == p.getNumber()) && name.equals(p.getName()))
p.edit();
return;
} // end if
} // end for
} // end editPhone()And have a Phone.edit() method, but that would be most suited to a console app.
You need to have a look at how you want to edit a phonebook entry, and what it was you were currently doing.
Good luck
Radish21

Similar Messages

  • Business Data List View ONLY Displays records - Cannot Edit them

    Using SharePoint 2010, I created an External Content Type. Data is coming from SQL Server. I created a new Read operation on my External Content type. I added a few filters in this Read View.
    I have created a web part page in which I placed a Business Data List Web Part. In Web Part properties I chose the VIEW in question. I can now filter my External List data and the Business Data List Web Part displays them. But I cannot edit these
    records!!!
    From the web Part properties window, I can ONLY choose Views that are created from READ operations. How do I allow users to edit data and save data in the original source (SQL Server).
    Mayank

    Below are the reference links on how to CRUD operations on external data using BCS
    CRUD operations using BCS using SharePoint designer
    http://zimmergren.net/technical/sp-2010-getting-started-with-business-connectivity-services-bcs-in-sharepoint-2010
    CRUD operations using BCS using Visual studio
    http://www.c-sharpcorner.com/uploadfile/anavijai/creating-external-content-type-with-crud-operations-using-business-data-connectivity-model-in-sharep/
    My Blog- http://www.sharepoint-journey.com|
    If a post answers your question, please click Mark As Answer on that post and Vote as Helpful

  • Cannot Edit The Report

    Hi All,
    Please help me, I created an interactive report and made some modifications. THE PROBLEM IS that I cannot edit the records.
    http://apex.oracle.com/pls/apex/f?p=49631:1
    user: dev
    pwd: dev
    Thanks in advance.

    Thanks Ta,His handle is trent by the way, I m afraid you picked his salutation ;) .
    have to delete the auto-generated process. And now how can I make Edit works again.Go to "*Create Page Process -> Data Manipulation -> Automatic Row Processing (DML) -> give some process name -> Specify Tablename,Primary Key column, Item with PK , Check/uncheck required DML operations -> Specify button conditions*"

  • Cannot edit any roles in CUP5.2 due to "Enter a valid Role Name" error

    We are running CUP 5.2.
    I am having a problem with our Roles after they were uploaded into CUP; I cannot make any changes to the Role Details because CUP returns an error stating that our Role Names are invalid.
    First I uploaded the roles (I continued to receive errors when trying to use the template, so I did them by uploading with the "Selected Roles" option). 
    Once they were uploaded, from the menu, I select:    Roles --> Search Role    and then I choose a role from the resulting list.  When the next screen appears (the "Role Details" screen), I added all of the respective details (Business Process, Sub-Process, Detailed Description, Role Approver, Functional Area, etc.).   When I pressed the SAVE button, I received the following error:
    Please correct the following errors:
    Please enter a valid "Role Name". Only Alpha-numeric, Space or Underscore characters are allowed
    So I realize what the problem is - the "Role Name" field is automatically populated with our security role name as it exists in our SAP system ... and because our security roles all begin with Z:, it does not follow the CUP naming convention. 
    I'd like to just update the "Role Name" field but when you are in the "Role Details" screen, the "Role Name" field cannot be edited.
    I saw the "Export" button and used that, in an attempt to edit the file to replace each occurence of Z: with Z_, and then upload it again.
    So I updated the file accordingly, and then did an upload, selecting the "Overwrite Existing Roles" box.
    It returned a successful message:
    Import Status: 133 successfully imported out of 133 records found
    Yet, when I go back to the list of roles, the roles still exist as Z: instead of Z_ so I still cannot edit any of the roles to add the required details ...  has anyone had a similar issue and know how to work around this?
    Thanks!

    Hello Alpesh,
    Thank you for replying!
    I had already tried to export the roles and replaced the Z: with Z_ before creating this message, but the upload attempts failed due to the explanation above.  But this time, I followed your (good) advice to delete the original Z: roles first, before uploading the corrected file.
    Sadly, even after I deleted the original Z: roles prior to uploading the corrected file, I am still having no luck ... when I uploaded the file, again it (falsely) reports that the import was successful:
        Import Status: 133 successfully imported out of 133 records found
    After seeing that message, I quickly checked the roles, and none of the roles had uploaded.  So now I have ZERO roles.
    Any further ideas?  I am thinking it may be something very small that is being overlooked ... perhaps certain buttons must be selected/not selected on the import screen?  Or could it be an issue with the file itself?
    When I do the import, I only select the button for "From File ..." and retrieve the file from my desktop via the Browse button.  I do not select any other button, nor do I make a selection from the System or Role Source boxes.  I have just selected that one button only ... I've tried it with and without checking the "Overwrite Existing Roles" box, but neither one works.
    The part that bugs me the most is that I receive what I perceive to be an inaccurate/bogus "successful" status each time I attempt the upload of the file.  At least if I had an error message, I might have something to work with to troubleshoot this.

  • Cannot Edit Song Info

    I have several MP3 files that I cannot edit the info for. I just noticed/incurred this issue after upgrading to iTunes 9.0.0.70. After the iTunes 9.0.1.8 upgrade, I am still having the issue.
    When I try to click into a field, the cursor does not appear. When I right-click and choose "Get Info," everything is grayed out.
    This happens to MP3 files downloaded from the internet, MP3 files that I create/record myself on my PC, and also MP3 files ripped from CD. It does not happen with every MP3, though. Also, it can happen with some MP3 files from the same source as others that I can edit.
    One note is that I can find the file via Windows Explorer and physically edit the properties of the MP3 files using the "Advanced" properties. As soon as I change the title, author, album, etc. and play the song in iTunes, all of the correct/adjusted fields show.
    Another note that I have noticed on one particular pair of editable/non-editable MP3 files from the same source is that one is recognized as ID3 Tag v2.2 and one is ID3 Tag v2.3.
    Is this a known iTunes 9.0 bug or is there a fix for this issue?

    OK...Here's something to complicate the matter for you:
    I just went through some of my older MP3 files, some that I have customized the info on, and all of the info was grayed out and uneditable. I went through a few in a row and found one that I could edit. I closed the window and tried to edit the MP3s again. This time, I found that I could edit all of the ones I could not edit (just 5 seconds earlier) but could not edit the one I previously could edit. After closing the windows and trying a third time, I could edit all of the MP3 files in the list.
    What is up? Apple, are you aware of this issue?

  • Why I cannot edit and updat tree node in this program??

    Dear Friends:
    I have following code, it can be run ok,
    I set it editable, I hope to edit at run time, but looks like I cannot edit,
    what is wrong??
    Can you help??
    Thanks
    package treeSelectionListener;
    import java.awt.*;
    import java.awt.event.WindowAdapter;
    import java.awt.event.WindowEvent;
    import javax.swing.*;
    import javax.swing.tree.*;
    import javax.swing.event.*;
    public class SelectableTreeTest extends JFrame
         public SelectableTreeTest(){
              JPanel jp = new JPanel();
              JPanel jp2 = new JPanel();
            MyTree myTree= new MyTree();
            MyTree myTree2= new MyTree();
            JTabbedPane tabbedPane = new JTabbedPane();
            tabbedPane.setPreferredSize(new Dimension(600,400));
            jp.setPreferredSize(new Dimension(600,400));
            jp2.setPreferredSize(new Dimension(600,400));
            myTree.setPreferredSize(new Dimension(600,400));
            myTree2.setPreferredSize(new Dimension(600,400));
            JScrollPane   jsp = new JScrollPane();
            jsp.setPreferredSize(new Dimension(600,400));
              add(jsp, BorderLayout.CENTER);
              jsp.setViewportView(tabbedPane);
              jp.add(myTree);
              jp2.add(myTree2);
              tabbedPane.addTab("1st Tree", jp);
              tabbedPane.addTab("2nd Tree", jp2);
        public static void main(String[] args) {
            JFrame frame = new SelectableTreeTest();
            WindowUtilities.setNativeLookAndFeel();
            frame.addWindowListener(new WindowAdapter() {
                public void windowClosing(WindowEvent e) {
                    System.exit(0);
            frame.pack();
            frame.setVisible(true);
      public class MyTree extends JTree implements TreeSelectionListener {
      private JTree tree;
      private JTextField currentSelectionField;
      public MyTree() {
        Container content = getContentPane();
        DefaultMutableTreeNode root =
          new DefaultMutableTreeNode("Root");
        DefaultMutableTreeNode child;
        DefaultMutableTreeNode grandChild;
        for(int childIndex=1; childIndex<4; childIndex++) {
          child = new DefaultMutableTreeNode("Child " + childIndex);
          root.add(child);
          for(int grandChildIndex=1; grandChildIndex<4; grandChildIndex++) {
            grandChild =
              new DefaultMutableTreeNode("Grandchild " + childIndex +
                                         "." + grandChildIndex);
            child.add(grandChild);
        tree = new JTree(root);
        tree.setEditable(true);
        tree.addTreeSelectionListener(this);
        content.add(new JScrollPane(tree), BorderLayout.CENTER);
        currentSelectionField = new JTextField("Current Selection: NONE");
        content.add(currentSelectionField, BorderLayout.SOUTH);
        setSize(250, 275);
        setVisible(true);
      public void valueChanged(TreeSelectionEvent event) {
        currentSelectionField.setText
          ("Current Selection: " +
           tree.getLastSelectedPathComponent().toString());
    }

    change this
    tree = new JTree(root);
    tree.setEditable(true);
    tree.addTreeSelectionListener(this);to this
    setEditable(true);
    addTreeSelectionListener(this);and this
    currentSelectionField.setText
      ("Current Selection: " +
       tree.getLastSelectedPathComponent().toString());to this
    currentSelectionField.setText
      ("Current Selection: " +
      getLastSelectedPathComponent().toString());and remove this
    private JTree tree;

  • Edit Pre-recorded vocals

    I have been trying to work out how to edit pre-recorded vocals using the Voicelive 2 and Logic Pro. I have managed to figure out the settings on the voice live 2 but I cannot work out what to do on the logic side of things. This is what I have been told (see below), but I dont understand what this means.
    In LOGIC you have to set up a SEND (to VoiceLive 2 via MAUDIO SPDIF out LEFT!!! CHANNEL ONLY) for sending the dry Vocal track and RETURN the processed signal on a new stereo track (from VoiceLive Rack / input source = MAUDIO SPDIF input L & R channels). Don't forget to record enable the track. To control harmony / detecting automatically the key, you may SEND any audio signal (i.e. your instrumental, piano/ rhodes chord track etc.) via MAUDIO SPDIF RIGHT!!! CHANNEL to VL 2.
    Would anyone be kind enough to explain what this means and what I need to do? ( i am trying to post edit pre-recorded vocals using voice live 2, logic 9 and m-audio fast track ultra).
    Thank you

    Open GB, drag the AIFF file from the Finder onto the GB window
    Hey presto!
    Vince

  • Anybody know why I cannot edit the contents of my captions?

    Okay, I can delete text captions, smart shapes with text content, or failure captions, but for the first project I have started in Captivate 8 I cannot edit their contents.
    I just converted a project from Captivate 7 into C8, and added newly recorded slides to it.  Those captions are editable.  BUT the ones from the freshly started project are not.  When I try to click on the text caption at the top of the timeline, or any other caption in the window, my cursor flips from the pointing finger, to the fist, as long as I hold the mouse button down.  Then it flips back to the pointing finger instead of giving me the I-beam cursor for editing.
    This is a software simulation and the captions were added automatically during the recording phase and must be edited.
    My project is not responsive.  Here is a snip of the editing window for this project.
    Thanks for any help you can offer.
    Michele

    No, Lieve, that hadn't occurred to me.  I tried it just now and I do get an I-beam, but when I try to select the text all I get is a dashed box that I seem to be drawing with the I-beam cursor.  It draws over the caption and  will go as large as I let it before letting go of my mouse. It doesn't allow me to edit the text.  It is like the text is locked somehow, but you can see from my image above that it isn't.
    I have also saved this project by another name and the new one does the same thing.  Am I going to have to go through this course, delete ALL of the captions and recreate them manually? 

  • Cannot edit JPG, GIF files stored in a SharePoint 2010 picture library

    Created a SharePoint 2010 picture library to store .jpg, .gif images along with other types of images which were created using Adobe photoshop, Tiff etc.
    Upon clicking on the .jpg, .gif files for editing purposes, they open in the browser instead of Photoshop so I cannot edit these files for this reason. Other types of image files are editable but not the jpg, gif files. File associations are already
    in place for these files to open in Photoshop. Please advise.
    Thank you,
    Mahesh

    You can change the default application that opens while you click open document using DocIcon.xml which is present on the web front ends. Please look at this link which explains what you need to update in order to take care of your requirement. 
    http://msdn.microsoft.com/en-us/library/ms463701.aspx
    Hope this helps. 
    Thanks, Mayur Joshi Blog: http://splearnings.blogspot.com/

  • I cannot edit my contacts after upgrading to IOS5 .

    I cannot edit my contacts after upgrading to IOS5 . I can restore to factory settings but I want to keep my messages as they were.. what can I do? please someone help.. thanks in advance.

    HI MortenEJ,
    Thanks for your responce.but already done doing "Restore factory settings" .. and when Im doing "back up from" ..
    I still encounter the same problem. I have important messages in my inbox I want to keep. 
    I even try to upgrade to the newest version. IOS 5.0.1. but still the same..My main problem is my contacts. I dont have "+" add contact button and inside each contact.. I dont have the "edit" button..

  • Cannot Edit Captions in One File

    Hello,
         I'm using Captivate 3, and I have this one project file that I cannot edit the captions in. I wasn't having this problem until I imported a slide from another project. Ever since the slide imported, I haven't been able to edit the text captions. When I double click on the caption I want to edit, nothing happen. If I click once on the caption to highlight it, and go to the menu and click on an option to edit the caption, nothing happens. Captivate is only doing this on the project which I imported a slide, every other project I have opened works fine. I tried to save the file as a different name, and I still get the same result. Does anyone have any other ideas? Am I not doing something right? Thanks in advance for the help!

    Hello,
    Could be that the CP-file or objects have become corrupted. I'd recommend creating a new blank file with the same resolution, and copy and paste the slides to this new file. Better not all at once, so that you could perhaps find the "guilty slide".
    Lilybiri

  • I have an iMac, and have a Verizon DSL account. Recently, my Mac Mail keeps requesting the passwords on my account every few minutes, and will not allow me to send messages using Mac Mail. I cannot edit the outgoing server; how can I send emails?

    I have an iMac, and have a Verizon DSL account (3 email addresses). Recently, my Mac Mail keeps requesting the passwords on my accounts every few minutes, and will not allow me to send messages using Mac Mail (the message says that the outgoing server was rejected. I cannot edit the outgoing server, and the keychain will not save my passwords (the ports are valid). How can I change the outgoing server to send emails, and how can I avoid having Mail request my passwords every 2 minutes? Verizon, as usual, will not provide support to iMacs.

    Is there an email saved in your drafts or outbox folder?  I suspect that Mail is continually trying to send it, and each time Google is rejecting the email message.
    You can open the message and then delete it from your Outbox folder.  Then try removing all @gmail email addresses from it and seeing whether you can send to the other folks.  I suspect that will work.
    With email, if an SMTP server *can* verify email addresses, sometimes it will and it will refuse to send messages.  If a message has to be relayed across servers, no verification is done, and you'll get a bounce if an email address is bad.

  • How to edit the records in error stock.

    Hi Experts,
                 i have error records in error stack and the remaining records are loaded successfuly . here my doubt is how to edit the records in error stack because its not giving the edit option .
    i want to get the edit option means i need to delete the request in target r wt ?
    and there are two more targets is there below this process .
    Advance Thanks.
    Regards
    SAP

    HI
    If you have less number records in this request(which you extracted now), delete that request from all the targets and reload again with option Valid records update, reporting not possible.
    this is the option which is recommended.
    follow the below 2 docs as well.
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/80dd67b9-caa0-2e10-bc95-c644cd119f46?QuickLink=index&overridelayout=true
    http://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/007f1167-3e64-2e10-a798-e1ea456ef21b?QuickLink=index&overridelayout=true
    Regards,
    Venkatesh
    Edited by: Venkateswarlu Nandimandalam on Jan 24, 2012 4:35 PM

  • Cannot edit Reminders in iCal

    I cannot edit some of the Reminders in iCal on my MacPro. I tried to figure out what's different about the ones I can't edit, and it may be that they are set to "repeat every day" - I can change them on my iPhone with the Reminders app, but it doesn't make sense to me that I can't change that on my computer. I'd like to end the repeat every day w/out having to use my iPhone.
    Does anyone know what's the problem - is it fixable?
    Thanks

    Please, please, please, report the issue that both alarms and due dates at the same time are not possible as a bug here:http://www.apple.com/feedback/iphone.html. The more people who submit it, the more likely apple will listen.

  • When I get an ICS from Outlook that is a multi-day event it populates my iCal as a single day and since I am not the owner I cannot edit the ICS.

    When I get an ICS from Outlook Express (Office is PC based) that is a multi-day event, it populates my iCal as a single day and since I am not the owner I cannot edit the ICS. I have to delete it and send a "decline notice" to the sender and re-enter it so I can put in multiple day events. Help!

    If you are running Tiger, you don't have time machine. 
    You need to get something like SuperDuper! or Carbon Copy Cloner (sorry, I don't have a handy link for CCC but you can Google it to get their site) to make a clone of your drive on the external and then do incremental backups.  The free versions do a lot and you can upgrade to the full-service versions for small change if you need more.  The one time I used SuperDuper! for cloning a volume it worked just fine. 
    (My backup application is the last PPC capable version of Retrospect, which does a credible job, or has over the past ten-twelve years.)

Maybe you are looking for