I realize I don't understand LR like I should, so...

help me understand LR's "reaction" to this...
Images = approx 17,000. I plan to move the bulk to an external HDD and keep "current" ones locally (I have a laptop, so I won't always have my external HDD with me but will still want to do editing). I want to create a whole new catalog without losing edits in my current. I believe using DNG instead of NEF will be the best option for keeping metadata with the file for future use. I also want to change my folder organization to date-based and use keyword tagging and collections instead of a "homemade" folder hierarchy.
What's the best way to achieve this transition? I cannot lose ANY metadata or edits. (I also hope to somehow cull my "RAW+JPEG" files to just "RAW" in the process without resorting to manual deletion.)

I finished configuring and setting up some new office printers today. Despite an email detailing their use, you wouldn't believe how many people had mental meltdowns about the portion in red, and had to be personally walked through how to do this at the printer.
How do these people function in the modern world? It's a color touchscreen with plainly visible text showing what each button does. It's about as intuitive as it gets. It makes me wonder what would happen if these people had to use an ATM or a RedBox kiosk.
Beyond that, I caught one of the office staffers using the Toshiba printer I just informed them all to stop using, to print out the email I sent about the new printers so that (wait for it)... "he could read it."
SMH
This topic first appeared in the Spiceworks Community

Similar Messages

  • Hi I cannot open my email on iPad it says that the user name or the password is incorrect I don't understand. Plse, what should I do. Thanks

    Hi I just got an IPad Air and cannot open my email since it says "the username or password on EarthLink is incorrect. What should I do. Thanks

    iOS: Unable to send or receive email
    http://support.apple.com/kb/TS3899
    Can’t Send Emails on iPad – Troubleshooting Steps
    http://ipadhelp.com/ipad-help/ipad-cant-send-emails-troubleshooting-steps/
    Setting up and troubleshooting Mail
    http://www.apple.com/support/ipad/assistant/mail/
    Using a POP account with multiple devices
    http://support.apple.com/kb/ht3228
    iOS: Adding an email account
    http://support.apple.com/kb/HT4810
    iOS: Setting up an Outlook.com, Hotmail, Live, or MSN email account
    http://support.apple.com/kb/ht1694
    Server does not allow relaying email error, fix
    http://appletoolbox.com/2012/01/server-does-not-allow-relaying-email-error-fix/
    Why Does My iPad Say "Cannot Connect to Server"?
    http://www.ehow.co.uk/info_8693415_ipad-say-cannot-connect-server.html
    How to Sync Contacts with Your iPad Using iTunes
    http://www.dummies.com/how-to/content/how-to-sync-contacts-with-your-ipad-using- itunes.html
    iOS: 'Mailbox Locked', account is in use on another device, or prompt to re-enter POP3 password
    http://support.apple.com/kb/ts2621
    eMail Groups - You can use a third party app that many users recommend.
    MailShot -  https://itunes.apple.com/us/app/mailshot-pro-group-email-done/id445996226?mt=8
    Group Email  -  https://itunes.apple.com/us/app/group-email!-mail-client-attachments/id380690305 ?mt=8
    iPad Mail
    http://www.apple.com/support/ipad/mail/
    Configuration problems with IMAP e-mail on iOS with a non-standard SSL port.
    http://colinrobbins.me/2013/02/09/configuration-problems-with-imap-e-mail-on-ios -with-a-non-standard-ssl-port/
    Try this first - Reset the iPad by holding down on the Sleep and Home buttons at the same time for about 10-15 seconds until the Apple Logo appears - ignore the red slider - let go of the buttons. (This is equivalent to rebooting your computer.)
    Or this - Delete the account in Mail and then set it up again. Settings->Mail, Contacts, Calendars -> Accounts   Tap on the Account, then on the red button that says Remove Account.
     Cheers, Tom

  • I'm 51 years old and recently retired. I have a new IPad Air. Which MacBook should I buy to go with it?  I don't understand flash storage.  It feels like I would have a bunch of flash drives to keep up with.  Help an old lady out!!!

    I'm 51 years old and recently retired. I have a new IPad Air. Which MacBook should I buy to go with it?  I don't understand flash storage.  It feels like I would have a bunch of flash drives to keep up with.  Help an old lady out!!!

    Depends on how you want to use it. Flash storage on the newer macbook and macbook air are built in. A macbook air is the most light weight and a very good machine. It will do all you want it to do unless you are running some very intensive programs. If you go to the apple store on line you can compare  the different macbook pro" and macbook Air's.

  • I don't understand why ePrint does not work on emailing photos - Discard - Looked like a spam/ virus

    I don't understand why ePrint does not work on emailing photos - Discard - Looked like a spam/ virus

    Thanks. The problem was solved when I inserted a word in the subject line. Previously I was keeping it blank.

  • HT6312 I don't understand why you are holding our documents captive!

    How can you NOT make it backwards compatible!  I prefer not to install the latest IOS (as we've seen what happens, with the last IOS update)  before I am comfortable with the update. This is irresponsible and not customer friendly.  Basically I am S.O.L. if I have an older iPhone or iPad.  Thanks for being so customer friendly.

    James,
    Sorry I did not realize it was User to User.  Very funny, really.  Who would you like the check made out to?  LOL
    So I went to login to iCloud (on my PC) and I was forced to update to a different version of iCloud that would no longer allow any devices below IOS 8 access to the Pages area.  I just don't understand why thy (Apple developers) cannot make it backwards compatible. 

  • I can't don't understand code in netbean and it's about Jframe.

    i use netbean to design 2 jframe with some buttons on both frame.
    frame1 is login form, frame2 is mainform. i want to show loginform then click the button1 to show 2nd jframe.
    then i click exit on 2nd jframe and it come back to loginform(frame1).
    i do alot of search on the google and here. i know the basic to show a jframe using
    setVisible or .show() .hide(), etc..
    the problem is what is my jframe variable name in netbean?
    i know i can create an jframe object
    such as: JFrame frame1 = new JFrame(); etc.. (it's ok if the syntax is wrong for now).
    When i use netbean, i drag the Gui components to the Jframe. The jframe is generated by netbean automatically.
    When the main program runs, it calls main() method, follow by :
    public void run() {
    new LoginForm().setVisible(true);
    new LoginForm().setVisible <--- setVisible(true) means show the form.
    and is new LoginForm() create an object from LoginForm class.
    public LoginForm() {
    initComponents();
    When it create a new object, it runs default constructor and calls iniComponoents and finally show the jframe.
    my question is when you create object, you usually declare variable and use variable to hold reference to the object.
    that's why i don't understand how it works here.
    it only create news object, bu no variable to holding it. how do i control this Jframe to show and hide without a reference variable????????????
    Edited by: roadorange on Feb 29, 2008 10:08 PM

    roadorange wrote:
    Encephalopathic . thank your reply so much. your reply is fast. i love it and love this forum.. LOLyou're welcome
    i tried hand-written code, and it looks just fine when design few buttons, labels and textfields.
    The adjustment of buttons(labels) are not that good on the frame.
    However, when you use IDE, you can drag the button on any spot you like in the jframe.... and in the process not learn how Swing works, and lose flexibility and power. Sorry to sound conceited, but I'll match any of your netbeans-created GUI's with one of my own, and mine will likely be better -- and I'm not all that good at this just yet.
    Much luck.

  • I don't understand what's happening with my Music. All the songs that I purchased, that were previously on my phone, now show up a Cloud next to them, but I can't play them. If I touch the Cloud, it turns into a red square but never downloads.

    I don't understand what's happening with my Music. All the songs that I purchased, that were previously on my phone, now show up with a Cloud next to them, but I can't play them. If I touch the Cloud, it turns into a red square, acts like it's downloading (which I can see happening in iTunes), but never downloads. The Cloud just stays there.
    I've sync'd my phone, I've turned it to "show all music" in Settings, I've drag and dropped the songs/albums onto my phone again. I feel like I've tried everything I've seen recommended, but nothing works.
    I've purchased a lot of music from iTunes. It should be there. What's going on?
    P.S. Same thing happening with my purchased books. Ugh.

    Once you successfully add you iTunes library to iTunes Match, you go to Settings>iTunes & App Store on your iOS device and turn on iTunes Match.  Your iTunes Match library will then appear on your iOS device.

  • Which Mac Pro? More cores=slower speeds? And most of us know the speed matters or FPU for music and I don't understand the faster is for the least amount of procs. And while I get the whole rendering thing and why it makes sense.

    Which Mac Pro? More cores=slower speeds? And most of us know the speed matters or FPU for music and I don't understand the faster is for the least amount of procs. And while I get the whole rendering thing and why it makes sense.
    The above is what the bar says. It's been a while and wondered, maybe Apple changed the format for forums. Then got this nice big blank canvas to air my concerns. Went to school for Computer Science, BSEE, even worked at Analog Devices in Newton Massachusetts, where they make something for apple. 
    The bottom line is fast CPU = more FPU = more headroom and still can't figure out why the more cores= the slower it gets unless it's to get us in to a 6 core then come out with faster cores down the road or a newer Mac that uses the GPU. Also. Few. I'm the guy who said a few years ago Mac has an FCP that looks like iMovie on Steroids. Having said that I called the campus one day to ask them something and while I used to work for Apple, I think she thought I still did as she asked me, "HOW ARE THE 32 CORES/1DYE COMING ALONG? Not wanting to embarrass her I said fine, fine and then hung up.  Makes the most sense as I never quite got the 2,6,12 cores when for years everything from memory to CPU's have been, in sets of 2 to the 2nd power.  2,4,8,16,32,64,120,256,512, 1024, 2048,4196,8192, 72,768.  Wow. W-O-W and will be using whatever I get with Apollo Quad. 
    Peace to all and hope someone can point us in THE RIGHT DIRECTION.  THANK YOU

    Thanks for your reply via email/msg. He wrote:
    If you are interested in the actual design data for the Xeon processor, go to the Intel site and the actual CPU part numbers are:
    Xeon 4 core - E5.1620v2
    Xeon 6 core - E5.1650v2
    Xeon 8 core - E5.1680v2
    Xeon 12 core - E5.2697v2
    I read that the CPU is easy to swap out but am sure something goes wrong at a certain point - even if solderedon they make material to absorb the solder, making your work area VERY clean.
    My Question now is this, get an 8 core, then replace with 2 3.7 QUAD CHIPS, what would happen?
    I also noticed that the 8 core Mac Pro is 3.0 when in fact they do have a 3.4 8 core chip, so 2 =16? Or if correct, wouldn't you be able to replace a QUAD CHIP WITH THAT?  I;M SURE THEY ARE UO TO SOMETHING AS 1) WE HAVE SEEN NO AUDIO FPU OR PERHAPS I SHOULD CHECK OUT PC MAKERS WINDOWS machines for Sisoft Sandra "B-E-N-C-H-M-A-R-K-S" -
    SOMETHINGS UP AND AM SURE WE'LL ALL BE PLEASED, AS the mac pro      was announced Last year, barely made the December mark, then pushed to January, then February and now April.
    Would rather wait and have it done correct than released to early only to have it benchmarked in audio and found to be slower in a few areas- - - the logical part of my brain is wondering what else I would have to swap out as I am sure it would run, and fine for a while, then, poof....
    PEACE===AM SURE APPLE WILL BLOW US AWAY - they have to figure out how to increase the power for 150 watts or make the GPU work which in regard to FPU, I thought was NVIDIA?

  • I don't understand my EtreCheck report. What can I do to improve the speed of my Macbook 2010, which became very slow after upgrading to Yosemite?

    I just updated my Macbook (2010) to Yosemite, and it's become very slow. After searching through this community, I downloaded and run EtreCheck, but don't understand what the report means. Please could you help me with what I should do to improve my computer's speed, aside from upgrading my RAM? Thank you so much.
    The report:
    Problem description:
    my macbook is running very slowly after upgrading to yosemite.
    EtreCheck version: 2.0.11 (98)
    Report generated 12 November 2014 1:44:14 pm SGT
    Hardware Information: ℹ️
      MacBook (13-inch, Mid 2010) (Verified)
      MacBook - model: MacBook7,1
      1 2.4 GHz Intel Core 2 Duo CPU: 2-core
      2 GB RAM Upgradeable
      BANK 0/DIMM0
      1 GB DDR3 1067 MHz ok
      BANK 1/DIMM0
      1 GB DDR3 1067 MHz ok
      Bluetooth: Old - Handoff/Airdrop2 not supported
      Wireless:  en1: 802.11 a/b/g/n
    Video Information: ℹ️
      NVIDIA GeForce 320M - VRAM: 256 MB
      Color LCD 1280 x 800
    System Software: ℹ️
      OS X 10.10 (14A389) - Uptime: 3:23:3
    Disk Information: ℹ️
      TOSHIBA MK2555GSXF disk0 : (250.06 GB)
      S.M.A.R.T. Status: Verified
      EFI (disk0s1) <not mounted> : 210 MB
      Macintosh HD (disk0s2) /  [Startup]: 249.20 GB (25.42 GB free)
      Recovery HD (disk0s3) <not mounted>  [Recovery]: 650 MB
      HL-DT-ST DVDRW  GS23N 
    USB Information: ℹ️
      Western Digital My Passport 0748 1 TB
      S.M.A.R.T. Status: Verified
      EFI (disk1s1) <not mounted> : 210 MB
      tansey (disk1s2) /Volumes/tansey : 999.83 GB (951.98 GB free)
      Apple Inc. Built-in iSight
      Apple Inc. BRCM2070 Hub
      Apple Inc. Bluetooth USB Host Controller
      Apple Inc. Apple Internal Keyboard / Trackpad
    Configuration files: ℹ️
      /etc/hosts - Count: 15
    Gatekeeper: ℹ️
      Mac App Store and identified developers
    Kernel Extensions: ℹ️
      /System/Library/Extensions
      [not loaded] com.NovatelWireless.driver.NovatelWirelessUSBCDCECMControl (3.0.13) Support
      [not loaded] com.NovatelWireless.driver.NovatelWirelessUSBCDCECMData (3.0.13) Support
      [not loaded] com.ZTE.driver.ZTEUSBCDCACMData (1.3.8) Support
      [not loaded] com.ZTE.driver.ZTEUSBMassStorageFilter (1.3.8) Support
      [not loaded] com.novamedia.driver.IceraUSB_MSD_Bypass (1.3.0) Support
      [not loaded] com.novatelwireless.driver.3G (3.0.13) Support
      [not loaded] com.novatelwireless.driver.DisableAutoInstall (3.0.13) Support
      [not loaded] com.option.driver.Option72 (2.15.0) Support
      [not loaded] com.option.driver.OptionHS (3.26.0) Support
      [not loaded] com.option.driver.OptionMSD (1.21.0) Support
      [not loaded] com.option.driver.OptionQC (1.11.0) Support
      [not loaded] com.rim.driver.BlackBerryUSBDriverInt (0.0.39) Support
      [not loaded] com.rim.driver.BlackBerryUSBDriverVSP (0.0.45) Support
      [not loaded] com.vodafone.driver (3.0.9) Support
      [not loaded] com.zte.driver.cdc_ecm_qmi (1.0.1) Support
      [not loaded] com.zte.driver.cdc_usb_bus (1.0.1) Support
      [not loaded] de.novamedia.driver.NMSamsung (0.0.2) Support
      [not loaded] de.novamedia.driver.NMSmartplugSCSIDevice (1.0.1) Support
      [not loaded] de.novamedia.oem.vodafone.vtp.huawei.cdc (0.0.2) Support
      /System/Library/Extensions/NMHuaweiPhonesVTPCDC_106.kext/Contents/PlugIns
      [not loaded] de.novamedia.driver.NMUSBCDCACMControl (3.2.12) Support
      /System/Library/Extensions/NMSamsungDriver_106.kext/Contents/PlugIns
      [not loaded] de.novamedia.driver.NMUSBCDCACMData (3.2.12) Support
      /System/Library/Extensions/NovatelWireless3G.kext/Contents/PlugIns
      [not loaded] com.novatelwireless.driver.3GData (3.0.13) Support
      /System/Library/Extensions/Vodafone.kext/Contents/PlugIns
      [not loaded] com.vodafone.driver.Data (3.0.9) Support
    Startup Items: ℹ️
      HP IO: Path: /Library/StartupItems/HP IO
      HWNetMgr: Path: /Library/StartupItems/HWNetMgr
      HWPortDetect: Path: /Library/StartupItems/HWPortDetect
      Startup items are obsolete and will not work in future versions of OS X
    Problem System Launch Agents: ℹ️
      [failed] com.apple.accountsd.plist
      [failed] com.apple.AirPlayUIAgent.plist
      [failed] com.apple.bird.plist
      [failed] com.apple.CallHistoryPluginHelper.plist
      [failed] com.apple.CallHistorySyncHelper.plist
      [failed] com.apple.cloudd.plist
      [failed] com.apple.coreservices.appleid.authentication.plist
      [failed] com.apple.coreservices.uiagent.plist
      [failed] com.apple.EscrowSecurityAlert.plist
      [failed] com.apple.icloud.fmfd.plist
      [failed] com.apple.iconservices.iconservicesagent.plist
      [failed] com.apple.nsurlsessiond.plist
      [failed] com.apple.pluginkit.pkd.plist
      [failed] com.apple.recentsd.plist
      [failed] com.apple.security.cloudkeychainproxy.plist
      [failed] com.apple.spindump_agent.plist
      [failed] com.apple.telephonyutilities.callservicesd.plist
    Problem System Launch Daemons: ℹ️
      [failed] com.apple.awdd.plist
      [failed] com.apple.cache_delete.plist
      [failed] com.apple.coresymbolicationd.plist
      [failed] com.apple.ctkd.plist
      [failed] com.apple.diagnosticd.plist
      [failed] com.apple.iconservices.iconservicesagent.plist
      [failed] com.apple.iconservices.iconservicesd.plist
      [failed] com.apple.ifdreader.plist
      [failed] com.apple.installd.plist
      [failed] com.apple.MobileFileIntegrity.plist
      [failed] com.apple.nehelper.plist
      [failed] com.apple.nsurlsessiond.plist
      [failed] com.apple.sandboxd.plist
      [failed] com.apple.softwareupdated.plist
      [failed] com.apple.spindump.plist
      [failed] com.apple.sysmond.plist
      [failed] com.apple.tccd.system.plist
      [failed] com.apple.wdhelper.plist
      [failed] com.apple.xpc.smd.plist
      [running] de.novamedia.nmnetmgrd.plist Support
    Launch Agents: ℹ️
      [not loaded] com.adobe.AAM.Updater-1.0.plist Support
      [failed] com.adobe.CS5ServiceManager.plist Support
      [loaded] com.google.keystone.agent.plist Support
      [running] de.novamedia.VodafoneDeviceObserver.plist Support
      [invalid?] SwapperUFi.plist Support
    Launch Daemons: ℹ️
      [loaded] com.adobe.fpsaud.plist Support
      [invalid?] com.adobe.SwitchBoard.plist Support
      [loaded] com.cloudpath.maccmd.plist Support
      [loaded] com.google.keystone.daemon.plist Support
      [loaded] com.microsoft.office.licensing.helper.plist Support
      [invalid?] PPPMonitord.plist Support
    User Launch Agents: ℹ️
      [loaded] com.adobe.ARM.[...].plist Support
      [invalid?] com.akamai.client.plist Support
      [invalid?] com.divx.agent.postinstall.plist Support
      [failed] com.facebook.videochat.[redacted].plist Support
    User Login Items: ℹ️
      Dropbox Application (/Applications/Dropbox.app)
      SurplusMeterAgent UNKNOWN (missing value)
      Google Chrome ApplicationHidden (/Applications/Google Chrome.app)
      HP Scheduler Application (/Library/Application Support/Hewlett-Packard/Software Update/HP Scheduler.app)
    Internet Plug-ins: ℹ️
      o1dbrowserplugin: Version: 5.38.6.0 - SDK 10.8 Support
      Google Earth Web Plug-in: Version: 7.1 Support
      Default Browser: Version: 600 - SDK 10.10
      OfficeLiveBrowserPlugin: Version: 12.2.6 Support
      OVSHelper: Version: 1.1 Support
      AdobePDFViewerNPAPI: Version: 10.1.12 Support
      FlashPlayer-10.6: Version: 15.0.0.152 - SDK 10.6 Support
      Silverlight: Version: 5.1.10411.0 - SDK 10.6 Support
      Flash Player: Version: 15.0.0.152 - SDK 10.6 Mismatch! Adobe recommends 15.0.0.223
      iPhotoPhotocast: Version: 7.0
      googletalkbrowserplugin: Version: 5.38.6.0 - SDK 10.8 Support
      QuickTime Plugin: Version: 7.7.3
      AdobePDFViewer: Version: 10.1.12 Support
      SharePointBrowserPlugin: Version: 14.0.0 Support
      JavaAppletPlugin: Version: 15.0.0 - SDK 10.10 Check version
    User Internet Plug-ins: ℹ️
      OctoshapeWeb: Version: 1.0 Support
    Safari Extensions: ℹ️
      DivX Plus Web Player HTML5 <video>
    3rd Party Preference Panes: ℹ️
      DivX  Support
      Flash Player  Support
    Time Machine: ℹ️
      Skip System Files: NO
      Auto backup: NO - Auto backup turned off
      Volumes being backed up:
      Macintosh HD: Disk size: 249.20 GB Disk used: 223.78 GB
      Destinations:
      Time Machine Backups [Local]
      Total size: 0 B
      Total number of backups: 0
      Oldest backup: -
      Last backup: -
      Size of backup disk: Too small
      Backup size 0 B < (Disk used 223.78 GB X 3)
    Top Processes by CPU: ℹ️
          15% WindowServer
          1% Dropbox
          0% AppleSpell
          0% Skype
          0% imagent
    Top Processes by Memory: ℹ️
      60 MB Google Chrome
      56 MB JavaApplicationStub
      47 MB Skype
      45 MB Finder
      45 MB WindowServer
    Virtual Memory Information: ℹ️
      60 MB Free RAM
      443 MB Active RAM
      398 MB Inactive RAM
      349 MB Wired RAM
      16.91 GB Page-ins
      633 MB Page-outs

    I advise to reply to the one you want to reply to.
    You have had good information here. I will not repeat that here.
    I would like to add:
    you have incompatible software: start in SafeMode, read Woodmeister and see if it is free of issues.
    Akamai is crap software needed or not, Huawei the same.
    It is very possible that the keygenerator you used for generating a key for some softwares has infected your mac.
    The non-regular software with the false key(s) are not compatible probably or generate malware. Luckily you can not update them automatically because the keygenerator blocked the software for contacting the developer... I propose to consider getting rid of those softwares by really good uninstalling.
    You have a beautiful mac, don't degenerate it with crapped software. There are alternatives for expensive software, for example Adobe Photoshop has a free alternative (with a less beautiful interface) in GIMP. And so on.
    Lex

  • Why is this an error???  I don't understand why it is... Help Please

    Hi,
    Ok, I'll preface this by saying there's a lotta code pasted in here but it really quite an easy question, I just need to post all the code so you understand where what came from.
    Now.............the question I'm trying to do is to create an applet that has 2 buttons -- each button when clicked opens an application (one is a simple calculator, the other a Mortgage calculation app). When you click one of the buttons (calc or mortgage), that app opens infront of the 2 button menu so its in "focus". The button on the 2 button menu then switches to a "hide app X" button (ie: "Mortgage", changes to "Hide Mortgage"). Thus if you click the hide button, the app that was opened is hidden, and then that "hide" button switches back to the original "app X" button. Pretty simple.
    Now, I have from my text book an example that does exactly this, with the simple calculator already in it, and with another app (a traffic light thing) where the Mortgage should be in my final product. I also already have the Mortgage applet I need to insert from another book example in place of that Traffic Light portion.
    Now, common sense would dictate that I should be able to just copy my code for the Mortgage applet into the example that has the 2 button menu structure, and overwrite the code I want to get rid of (the traffic light) with the mortgage code & rename the menu buttons. Right?? A simple switch of one thing for another... but therein lies my problem.
    I copied all the Mortgage code in correctly over the traffic lights, switched the button names, tried to compile it but I get one error....
    Exercise12_17.java:52: cannot resolve symbol
    symbol  : method pack ()
    location: class MortgageApplet
            mortgageAppletFrame.pack();I don't understand why..... mortgageAppletFrame.pack(); was a simple rewrite from lightsFrame.pack(); like every other line...... it should work. I've gone over it for 2 days......... Anyone know why it comes up as an error???
    Below, in order going down is (1)my code with the 1 error I can't solve, (2)the original menu example I tried to edit, and (3)the Mortgage app code...........
    Does anyone know what my error is?? Help or a hint would be greatly appreciated........ Thanks.
    My erroring app.......
    // Exercise12_17.java: Create multiple windows
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.TitledBorder;
    public class Exercise12_17 extends JFrame implements ActionListener {
      // Declare and create a frame: an instance of MenuDemo
      MenuDemo calcFrame = new MenuDemo();
      // Declare and create a frame: an instance of RadioButtonDemo
      MortgageApplet mortgageAppletFrame = new MortgageApplet();
      // Declare two buttons for displaying frames
      private JButton jbtCalc;
      private JButton jbtMortgage;
      public static void main(String[] args) {
        Exercise12_17 frame = new Exercise12_17();
        frame.setSize( 400, 70 );
        frame.setTitle("Exercise 11.8: Multiple Windows Demo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
      public Exercise12_17() {
        // Add buttons to the main frame
        getContentPane().setLayout(new FlowLayout());
        getContentPane().add(jbtCalc = new JButton("Simple Calculator"));
         getContentPane().add(jbtMortgage = new JButton("Mortgage"));
        // Register the main frame as listener for the buttons
        jbtCalc.addActionListener(this);
         jbtMortgage.addActionListener(this);
      public void actionPerformed(ActionEvent e) {
        String arg = e.getActionCommand();
        if (e.getSource() instanceof JButton)
          if ("Simple Calculator".equals(arg)) {
            //show the MenuDemo frame
            jbtCalc.setText("Hide Simple Calculator");
            calcFrame.pack();
            calcFrame.setVisible(true);
          else if ("Hide Simple Calculator".equals(arg)) {
            calcFrame.setVisible(false);
            jbtCalc.setText("Simple Calculator");
          else if ("Mortgage".equals(arg)) {
            //show the CheckboxGroup frame
            mortgageAppletFrame.pack();
            jbtMortgage.setText("Hide Mortgage");
            mortgageAppletFrame.setVisible(true);
          else if ("Hide Mortgage".equals(arg)) {
            mortgageAppletFrame.setVisible(false);
            jbtMortgage.setText("Mortgage");
      class MortgageApplet extends JApplet
      implements ActionListener {
      // Declare and create text fields for interest rate
      // year, loan amount, monthly payment, and total payment
      private JTextField jtfAnnualInterestRate = new JTextField();
      private JTextField jtfNumOfYears = new JTextField();
      private JTextField jtfLoanAmount = new JTextField();
      private JTextField jtfMonthlyPayment = new JTextField();
      private JTextField jtfTotalPayment = new JTextField();
      // Declare and create a Compute Mortgage button
      private JButton jbtComputeMortgage = new JButton("Compute Mortgage");
      /** Initialize user interface */
      public void init() {
        // Set properties on the text fields
        jtfMonthlyPayment.setEditable(false);
        jtfTotalPayment.setEditable(false);
        // Right align text fields
        jtfAnnualInterestRate.setHorizontalAlignment(JTextField.RIGHT);
        jtfNumOfYears.setHorizontalAlignment(JTextField.RIGHT);
        jtfLoanAmount.setHorizontalAlignment(JTextField.RIGHT);
        jtfMonthlyPayment.setHorizontalAlignment(JTextField.RIGHT);
        jtfTotalPayment.setHorizontalAlignment(JTextField.RIGHT);
        // Panel p1 to hold labels and text fields
        JPanel p1 = new JPanel();
        p1.setLayout(new GridLayout(5, 2));
        p1.add(new Label("Annual Interest Rate"));
        p1.add(jtfAnnualInterestRate);
        p1.add(new Label("Number of Years"));
        p1.add(jtfNumOfYears);
        p1.add(new Label("Loan Amount"));
        p1.add(jtfLoanAmount);
        p1.add(new Label("Monthly Payment"));
        p1.add(jtfMonthlyPayment);
        p1.add(new Label("Total Payment"));
        p1.add(jtfTotalPayment);
        p1.setBorder(new
          TitledBorder("Enter interest rate, year and loan amount"));
        // Panel p2 to hold the button
        JPanel p2 = new JPanel();
        p2.setLayout(new FlowLayout(FlowLayout.RIGHT));
        p2.add(jbtComputeMortgage);
        // Add the components to the applet
        getContentPane().add(p1, BorderLayout.CENTER);
        getContentPane().add(p2, BorderLayout.SOUTH);
        // Register listener
        jbtComputeMortgage.addActionListener(this);
      /** Handle the "Compute Mortgage" button */
      public void actionPerformed(ActionEvent e) {
        if (e.getSource() == jbtComputeMortgage) {
          // Get values from text fields
          double interest = (Double.valueOf(
            jtfAnnualInterestRate.getText())).doubleValue();
          int year =
            (Integer.valueOf(jtfNumOfYears.getText())).intValue();
          double loan =
            (Double.valueOf(jtfLoanAmount.getText())).doubleValue();
          // Create a mortgage object
          Mortgage m = new Mortgage(interest, year, loan);
          // Display monthly payment and total payment
          jtfMonthlyPayment.setText(String.valueOf(m.monthlyPayment()));
          jtfTotalPayment.setText(String.valueOf(m.totalPayment()));
    class MenuDemo extends JFrame implements ActionListener {
      // Text fields for Number 1, Number 2, and Result
      private JTextField jtfNum1, jtfNum2, jtfResult;
      // Buttons "Add", "Subtract", "Multiply" and "Divide"
      private JButton jbtAdd, jbtSub, jbtMul, jbtDiv;
      // Menu items "Add", "Subtract", "Multiply","Divide" and "Close"
      private JMenuItem jmiAdd, jmiSub, jmiMul, jmiDiv, jmiClose;
      /** Main method */
      public static void main(String[] args) {
        MenuDemo frame = new MenuDemo();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
      /** Default constructor */
      public MenuDemo() {
        setTitle("Menu Demo");
        // Create menu bar
        JMenuBar jmb = new JMenuBar();
        // Set menu bar to the frame
        setJMenuBar(jmb);
        // Add menu "Operation" to menu bar
        JMenu operationMenu = new JMenu("Operation");
        operationMenu.setMnemonic('O');
        jmb.add(operationMenu);
        // Add menu "Exit" in menu bar
        JMenu exitMenu = new JMenu("Exit");
        exitMenu.setMnemonic('E');
        jmb.add(exitMenu);
        // Add menu items with mnemonics to menu "Operation"
        operationMenu.add(jmiAdd= new JMenuItem("Add", 'A'));
        operationMenu.add(jmiSub = new JMenuItem("Subtract", 'S'));
        operationMenu.add(jmiMul = new JMenuItem("Multiply", 'M'));
        operationMenu.add(jmiDiv = new JMenuItem("Divide", 'D'));
        exitMenu.add(jmiClose = new JMenuItem("Close", 'C'));
        // Set keyboard accelerators
        jmiAdd.setAccelerator(
          KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK));
        jmiSub.setAccelerator(
          KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK));
        jmiMul.setAccelerator(
          KeyStroke.getKeyStroke(KeyEvent.VK_M, ActionEvent.CTRL_MASK));
        jmiDiv.setAccelerator(
          KeyStroke.getKeyStroke(KeyEvent.VK_D, ActionEvent.CTRL_MASK));
        // Panel p1 to hold text fields and labels
        JPanel p1 = new JPanel();
        p1.setLayout(new FlowLayout());
        p1.add(new JLabel("Number 1"));
        p1.add(jtfNum1 = new JTextField(3));
        p1.add(new JLabel("Number 2"));
        p1.add(jtfNum2 = new JTextField(3));
        p1.add(new JLabel("Result"));
        p1.add(jtfResult = new JTextField(4));
        jtfResult.setEditable(false);
        // Panel p2 to hold buttons
        JPanel p2 = new JPanel();
        p2.setLayout(new FlowLayout());
        p2.add(jbtAdd = new JButton("Add"));
        p2.add(jbtSub = new JButton("Subtract"));
        p2.add(jbtMul = new JButton("Multiply"));
        p2.add(jbtDiv = new JButton("Divide"));
        // Add panels to the frame
        getContentPane().setLayout(new BorderLayout());
        getContentPane().add(p1, BorderLayout.CENTER);
        getContentPane().add(p2, BorderLayout.SOUTH);
        // Register listeners
        jbtAdd.addActionListener(this);
        jbtSub.addActionListener(this);
        jbtMul.addActionListener(this);
        jbtDiv.addActionListener(this);
        jmiAdd.addActionListener(this);
        jmiSub.addActionListener(this);
        jmiMul.addActionListener(this);
        jmiDiv.addActionListener(this);
        jmiClose.addActionListener(this);
      /** Handle ActionEvent from buttons and menu items */
      public void actionPerformed(ActionEvent e) {
        String actionCommand = e.getActionCommand();
        // Handle button events
        if (e.getSource() instanceof JButton) {
          if ("Add".equals(actionCommand))
            calculate('+');
          else if ("Subtract".equals(actionCommand))
            calculate('-');
          else if ("Multiply".equals(actionCommand))
            calculate('*');
          else if ("Divide".equals(actionCommand))
            calculate('/');
        else if (e.getSource() instanceof JMenuItem) {
          // Handle menu item events
          if ("Add".equals(actionCommand))
            calculate('+');
          else if ("Subtract".equals(actionCommand))
            calculate('-');
          else if ("Multiply".equals(actionCommand))
            calculate('*');
          else if ("Divide".equals(actionCommand))
            calculate('/');
          else if ("Close".equals(actionCommand))
            System.exit(0);
      /** Calculate and show the result in jtfResult */
      private void calculate(char operator) {
        // Obtain Number 1 and Number 2
        int num1 = (Integer.parseInt(jtfNum1.getText().trim()));
        int num2 = (Integer.parseInt(jtfNum2.getText().trim()));
        int result = 0;
        // Perform selected operation
        switch (operator) {
          case '+': result = num1 + num2;
                    break;
          case '-': result = num1 - num2;
                    break;
          case '*': result = num1 * num2;
                    break;
          case '/': result = num1 / num2;
        // Set result in jtfResult
        jtfResult.setText(String.valueOf(result));
    Original 2 button menu example....
    // Exercise11_8.java: Create multiple windows
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class Exercise11_8 extends JFrame implements ActionListener {
      // Declare and create a frame: an instance of MenuDemo
      MenuDemo calcFrame = new MenuDemo();
      // Declare and create a frame: an instance of RadioButtonDemo
      RadioButtonDemo lightsFrame = new RadioButtonDemo();
      // Declare two buttons for displaying frames
      private JButton jbtCalc;
      private JButton jbtLights;
      public static void main(String[] args) {
        Exercise11_8 frame = new Exercise11_8();
        frame.setSize( 400, 70 );
        frame.setTitle("Exercise 11.8: Multiple Windows Demo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
      public Exercise11_8() {
        // Add buttons to the main frame
        getContentPane().setLayout(new FlowLayout());
        getContentPane().add(jbtCalc = new JButton("Simple Calculator"));
        getContentPane().add(jbtLights = new JButton("Traffic Lights"));
        // Register the main frame as listener for the buttons
        jbtCalc.addActionListener(this);
        jbtLights.addActionListener(this);
      public void actionPerformed(ActionEvent e) {
        String arg = e.getActionCommand();
        if (e.getSource() instanceof JButton)
          if ("Simple Calculator".equals(arg)) {
            //show the MenuDemo frame
            jbtCalc.setText("Hide Simple Calculator");
            calcFrame.pack();
            calcFrame.setVisible(true);
          else if ("Hide Simple Calculator".equals(arg)) {
            calcFrame.setVisible(false);
            jbtCalc.setText("Simple Calculator");
          else if ("Traffic Lights".equals(arg)) {
            //show the CheckboxGroup frame
            lightsFrame.pack();
            jbtLights.setText("Hide Traffic Lights");
            lightsFrame.setVisible(true);
          else if ("Hide Traffic Lights".equals(arg)) {
            lightsFrame.setVisible(false);
            jbtLights.setText("Traffic Lights");
         class RadioButtonDemo extends JFrame
      implements ItemListener {
      // Declare radio buttons
      private JRadioButton jrbRed, jrbYellow, jrbGreen;
      // Declare a radio button group
      private ButtonGroup btg = new ButtonGroup();
      // Declare a traffic light display panel
      private Light light;
      /** Main method */
      public static void main(String[] args) {
        RadioButtonDemo frame = new RadioButtonDemo();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(250, 170);
        frame.setVisible(true);
      /** Default constructor */
      public RadioButtonDemo() {
        setTitle("RadioButton Demo");
        // Add traffic light panel to panel p1
        JPanel p1 = new JPanel();
        p1.setSize(200, 200);
        p1.setLayout(new FlowLayout(FlowLayout.CENTER));
        light = new Light();
        light.setSize(40, 90);
        p1.add(light);
        // Put the radio button in Panel p2
        JPanel p2 = new JPanel();
        p2.setLayout(new FlowLayout());
        p2.add(jrbRed = new JRadioButton("Red", true));
        p2.add(jrbYellow = new JRadioButton("Yellow", false));
        p2.add(jrbGreen = new JRadioButton("Green", false));
        // Set keyboard mnemonics
        jrbRed.setMnemonic('R');
        jrbYellow.setMnemonic('Y');
        jrbGreen.setMnemonic('G');
        // Group radio buttons
        btg.add(jrbRed);
        btg.add(jrbYellow);
        btg.add(jrbGreen);
        // Place p1 and p2 in the frame
        getContentPane().setLayout(new BorderLayout());
        getContentPane().add(p1, BorderLayout.CENTER);
        getContentPane().add(p2, BorderLayout.SOUTH);
        // Register listeners for check boxes
        jrbRed.addItemListener(this);
        jrbYellow.addItemListener(this);
        jrbGreen.addItemListener(this);
      /** Handle checkbox events */
      public void itemStateChanged(ItemEvent e) {
        if (jrbRed.isSelected())
          light.turnOnRed(); // Set red light
        if (jrbYellow.isSelected())
          light.turnOnYellow(); // Set yellow light
        if (jrbGreen.isSelected())
          light.turnOnGreen(); // Set green light
    // Three traffic lights shown in a panel
    class Light extends JPanel {
      private boolean red;
      private boolean yellow;
      private boolean green;
      /** Default constructor */
      public Light() {
        turnOnGreen();
      /** Set red light on */
      public void turnOnRed() {
        red = true;
        yellow = false;
        green = false;
        repaint();
      /** Set yellow light on */
      public void turnOnYellow() {
        red = false;
        yellow = true;
        green = false;
        repaint();
      /** Set green light on */
      public void turnOnGreen() {
        red = false;
        yellow = false;
        green = true;
        repaint();
      /** Display lights */
      public void paintComponent(Graphics g) {
        super.paintComponent(g);
        if (red) {
          g.setColor(Color.red);
          g.fillOval(10, 10, 20, 20);
          g.setColor(Color.black);
          g.drawOval(10, 35, 20, 20);
          g.drawOval(10, 60, 20, 20);
          g.drawRect(5, 5, 30, 80);
        else if (yellow) {
          g.setColor(Color.yellow);
          g.fillOval(10, 35, 20, 20);
          g.setColor(Color.black);
          g.drawRect(5, 5, 30, 80);
          g.drawOval(10, 10, 20, 20);
          g.drawOval(10, 60, 20, 20);
        else if (green) {
          g.setColor(Color.green);
          g.fillOval(10, 60, 20, 20);
          g.setColor(Color.black);
          g.drawRect(5, 5, 30, 80);
          g.drawOval(10, 10, 20, 20);
          g.drawOval(10, 35, 20, 20);
        else {
          g.setColor(Color.black);
          g.drawRect(5, 5, 30, 80);
          g.drawOval(10, 10, 20, 20);
          g.drawOval(10, 35, 20, 20);
          g.drawOval(10, 60, 20, 20);
      /** Set preferred size */
      public Dimension getPreferredSize() {
        return new Dimension(40, 90);
    class MenuDemo extends JFrame implements ActionListener {
      // Text fields for Number 1, Number 2, and Result
      private JTextField jtfNum1, jtfNum2, jtfResult;
      // Buttons "Add", "Subtract", "Multiply" and "Divide"
      private JButton jbtAdd, jbtSub, jbtMul, jbtDiv;
      // Menu items "Add", "Subtract", "Multiply","Divide" and "Close"
      private JMenuItem jmiAdd, jmiSub, jmiMul, jmiDiv, jmiClose;
      /** Main method */
      public static void main(String[] args) {
        MenuDemo frame = new MenuDemo();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.pack();
        frame.setVisible(true);
      /** Default constructor */
      public MenuDemo() {
        setTitle("Menu Demo");
        // Create menu bar
        JMenuBar jmb = new JMenuBar();
        // Set menu bar to the frame
        setJMenuBar(jmb);
        // Add menu "Operation" to menu bar
        JMenu operationMenu = new JMenu("Operation");
        operationMenu.setMnemonic('O');
        jmb.add(operationMenu);
        // Add menu "Exit" in menu bar
        JMenu exitMenu = new JMenu("Exit");
        exitMenu.setMnemonic('E');
        jmb.add(exitMenu);
        // Add menu items with mnemonics to menu "Operation"
        operationMenu.add(jmiAdd= new JMenuItem("Add", 'A'));
        operationMenu.add(jmiSub = new JMenuItem("Subtract", 'S'));
        operationMenu.add(jmiMul = new JMenuItem("Multiply", 'M'));
        operationMenu.add(jmiDiv = new JMenuItem("Divide", 'D'));
        exitMenu.add(jmiClose = new JMenuItem("Close", 'C'));
        // Set keyboard accelerators
        jmiAdd.setAccelerator(
          KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK));
        jmiSub.setAccelerator(
          KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK));
        jmiMul.setAccelerator(
          KeyStroke.getKeyStroke(KeyEvent.VK_M, ActionEvent.CTRL_MASK));
        jmiDiv.setAccelerator(
          KeyStroke.getKeyStroke(KeyEvent.VK_D, ActionEvent.CTRL_MASK));
        // Panel p1 to hold text fields and labels
        JPanel p1 = new JPanel();
        p1.setLayout(new FlowLayout());
        p1.add(new JLabel("Number 1"));
        p1.add(jtfNum1 = new JTextField(3));
        p1.add(new JLabel("Number 2"));
        p1.add(jtfNum2 = new JTextField(3));
        p1.add(new JLabel("Result"));
        p1.add(jtfResult = new JTextField(4));
        jtfResult.setEditable(false);
        // Panel p2 to hold buttons
        JPanel p2 = new JPanel();
        p2.setLayout(new FlowLayout());
        p2.add(jbtAdd = new JButton("Add"));
        p2.add(jbtSub = new JButton("Subtract"));
        p2.add(jbtMul = new JButton("Multiply"));
        p2.add(jbtDiv = new JButton("Divide"));
        // Add panels to the frame
        getContentPane().setLayout(new BorderLayout());
        getContentPane().add(p1, BorderLayout.CENTER);
        getContentPane().add(p2, BorderLayout.SOUTH);
        // Register listeners
        jbtAdd.addActionListener(this);
        jbtSub.addActionListener(this);
        jbtMul.addActionListener(this);
        jbtDiv.addActionListener(this);
        jmiAdd.addActionListener(this);
        jmiSub.addActionListener(this);
        jmiMul.addActionListener(this);
        jmiDiv.addActionListener(this);
        jmiClose.addActionListener(this);
      /** Handle ActionEvent from buttons and menu items */
      public void actionPerformed(ActionEvent e) {
        String actionCommand = e.getActionCommand();
        // Handle button events
        if (e.getSource() instanceof JButton) {
          if ("Add".equals(actionCommand))
            calculate('+');
          else if ("Subtract".equals(actionCommand))
            calculate('-');
          else if ("Multiply".equals(actionCommand))
            calculate('*');
          else if ("Divide".equals(actionCommand))
            calculate('/');
        else if (e.getSource() instanceof JMenuItem) {
          // Handle menu item events
          if ("Add".equals(actionCommand))
            calculate('+');
          else if ("Subtract".equals(actionCommand))
            calculate('-');
          else if ("Multiply".equals(actionCommand))
            calculate('*');
          else if ("Divide".equals(actionCommand))
            calculate('/');
          else if ("Close".equals(actionCommand))
            System.exit(0);
      /** Calculate and show the result in jtfResult */
      private void calculate(char operator) {
        // Obtain Number 1 and Number 2
        int num1 = (Integer.parseInt(jtfNum1.getText().trim()));
        int num2 = (Integer.parseInt(jtfNum2.getText().trim()));
        int result = 0;
        // Perform selected operation
        switch (operator) {
          case '+': result = num1 + num2;
                    break;
          case '-': result = num1 - num2;
                    break;
          case '*': result = num1 * num2;
                    break;
          case '/': result = num1 / num2;
        // Set result in jtfResult
        jtfResult.setText(String.valueOf(result));
    Mortgage applet code....
    // MortgageApplet.java: Applet for computing mortgage payments
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.border.TitledBorder;
    public class MortgageApplet extends JApplet
      implements ActionListener {
      // Declare and create text fields for interest rate
      // year, loan amount, monthly payment, and total payment
      private JTextField jtfAnnualInterestRate = new JTextField();
      private JTextField jtfNumOfYears = new JTextField();
      private JTextField jtfLoanAmount = new JTextField();
      private JTextField jtfMonthlyPayment = new JTextField();
      private JTextField jtfTotalPayment = new JTextField();
      // Declare and create a Compute Mortgage button
      private JButton jbtComputeMortgage = new JButton("Compute Mortgage");
      /** Initialize user interface */
      public void init() {
        // Set properties on the text fields
        jtfMonthlyPayment.setEditable(false);
        jtfTotalPayment.setEditable(false);
        // Right align text fields
        jtfAnnualInterestRate.setHorizontalAlignment(JTextField.RIGHT);
        jtfNumOfYears.setHorizontalAlignment(JTextField.RIGHT);
        jtfLoanAmount.setHorizontalAlignment(JTextField.RIGHT);
        jtfMonthlyPayment.setHorizontalAlignment(JTextField.RIGHT);
        jtfTotalPayment.setHorizontalAlignment(JTextField.RIGHT);
        // Panel p1 to hold labels and text fields
        JPanel p1 = new JPanel();
        p1.setLayout(new GridLayout(5, 2));
        p1.add(new Label("Annual Interest Rate"));
        p1.add(jtfAnnualInterestRate);
        p1.add(new Label("Number of Years"));
        p1.add(jtfNumOfYears);
        p1.add(new Label("Loan Amount"));
        p1.add(jtfLoanAmount);
        p1.add(new Label("Monthly Payment"));
        p1.add(jtfMonthlyPayment);
        p1.add(new Label("Total Payment"));
        p1.add(jtfTotalPayment);
        p1.setBorder(new
          TitledBorder("Enter interest rate, year and loan amount"));
        // Panel p2 to hold the button
        JPanel p2 = new JPanel();
        p2.setLayout(new FlowLayout(FlowLayout.RIGHT));
        p2.add(jbtComputeMortgage);
        // Add the components to the applet
        getContentPane().add(p1, BorderLayout.CENTER);
        getContentPane().add(p2, BorderLayout.SOUTH);
        // Register listener
        jbtComputeMortgage.addActionListener(this);
      /** Handle the "Compute Mortgage" button */
      public void actionPerformed(ActionEvent e) {
        if (e.getSource() == jbtComputeMortgage) {
          // Get values from text fields
          double interest = (Double.valueOf(
            jtfAnnualInterestRate.getText())).doubleValue();
          int year =
            (Integer.valueOf(jtfNumOfYears.getText())).intValue();
          double loan =
            (Double.valueOf(jtfLoanAmount.getText())).doubleValue();
          // Create a mortgage object
          Mortgage m = new Mortgage(interest, year, loan);
          // Display monthly payment and total payment
          jtfMonthlyPayment.setText(String.valueOf(m.monthlyPayment()));
          jtfTotalPayment.setText(String.valueOf(m.totalPayment()));
    }

    Does it have to be an applet?
    If you want the same behaviour as in the code with traffic lights, change
    class MortgageApplet extends JApplet implements ActionListener {
    to
    class MortgageApplet extends JFrame implements ActionListener {
    and change
    public void init() {
    to
    public MortgageApplet() {                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

  • Apparently I don't understand a feature correctly in Mac mail version 6.6

    I am a little confused about what the difference is between a new mailbox and a new smart mailbox in mail. I wanted to create one folder that I can put all my mail into so that I can use my inbox as a sort of a "tickler file". I created a new "mailbox" from the little plus sign at the bottom left of the screen and chose "on my mac" and named it "archive". I moved every email from my inboxes (from multiple email accounts) into this. Was this the correct way to accomplish my goal?
    Unfortunately I felt uncomfortable about this action and then became confused and tried to undo what I had done by moving them back to the inbox so that I could delete the "archive" "mailbox" I had created. I didn't feel like I had accomplished my goal correctly because I don't understand how this new system of "mailboxes and smart mailboxes" fully works and why there are not just simple folders anymore! I deleted the archive mailbox I had created and it apparently deleted ALL of my emails from off of my mac for only one of my email accounts! What is going on!? I just want to simply be able to organize my email workflow with one simple folder. I don't want to set permissions for this folder or anything. Can someone PLEASE help me understand what the heck I've done wrong and how I can get my emails back into mail from my server?
    Thank you!

    Your original action is alright but maybe not what you wanted.
    A mailbox is a physical thing (a folder) you can add locally to your mac.  You can move emails into it and they will leave the IMAP folder they were in and reside on your mac.  What's left on the server is your "tickler" file.
    Alternatively, you could create an IMAP mailbox called archive and put mail there.  Then the mail would still be on the server but in the archive folder.  The easiest way to remember this is "An IMAP mailbox on your mac is a copy/cache/clone of the same mailbox on the server"  that is why you can see it on all your devices and a change on one means a change to all.  If you want access to this "archive" from all your devices, then it needs to be a server IMAP mailbox.
    A smart mailbox is really just a filter.  It's like a saved search.  Mail that meets the search criteria shows up in the smart mailbox.  Nothing is moved.

  • Don't understand the cc cleaner tool

    Good morning and happy new year.
    I must be the dumbest people here but I tried to follow the cc cleaner tool process explained here and I'm at a loss and stopped before making a fool of myself.
    I went through the process 1 and 2 ie. I have a disk repair and an external disk backup of my system driver. (I use Win 7 Ultimate fully updated). My projects are NOT on the system drive as well as all the clips I use .
    question : Will CC cleaner delete on the system drive any information related to my projects? I need a precise answer: No or Yes. The "perhaps", "maybe" etc evavive answers are not acceptable in such situations.
    In  the step 2 of the help file I uninstalled with Win 7 uninstall manager different elements from CC and CS 6 that either I have no use of or that I wont use anymore as I want to stick to the latest version of CC which are PPro, AE  and Mediaencoder for the moment.
    We arrive to step 3 and there I just don't understand why I should have to uninstall programs I uninstalled in the previous step. Will that step totally erase the whole programs of CC for example, or will it just clean remaining items or directories specifically related to for instance Prelude CC 2014 ? Can't people who write these messages in their scripts be once and for all precise in their wording saying what will be done?!
    In this present instance I need to make a clean re-install of Mediaencoder CC as there has been most probably a problem during the recent update although it was completed without any error messages; I can't anymore re encode a project although I have not changed a line of it! The program stops suddenly and reboots my computer. I have not changed anything in the computer as well and the hardware is not the cause of the problem as it is only Media encoder which provokes the crash when it did not before the update.
    This will be probably considered an ill mannered way of presenting my problem by I'm sorry to say that one cannot work cautiously enough and I don't want to see weeks of work erased and not usable even with backups because a user manual is not clear and precise in its wording. This infuriates me and I wish to know where I set foot!
    Again sorry for my bad temper but really this is stressing.
    Thanks in advance for your help
    Claude

    Hi David,
    First happy new year. Secondly thanks for a reply which shows I was read...
    Let's review your remarks and questions.
    A/ it can be useful for you to know my pc configuration, I should have put it in my question:
    More details about my computer
    Component
    Details
    Subscore
    Base score
    Processor
    Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz
    7.3
    5.9
      Determined by lowest subscore
    Memory (RAM)
    8.00 GB
    7.5
    Graphics
    ASUS HD7950 Series
    7.9
    Gaming graphics
    6559 MB Total available graphics memory
    7.9
    Primary hard disk
    49GB Free (286GB Total)
    5.9
    Windows 7 Ultimate
    System 
    Manufacturer
    System manufacturer
    Model
    System Product Name
    Total amount of system memory
    8.00 GB RAM
    System type
    64-bit operating system
    Number of processor cores
    4
    Storage 
    Total size of hard disk(s)
    5123 GB
    Disk partition (C:)
    49 GB Free (286 GB Total)
    Disk partition (D:)
    185 GB Free (488 GB Total)
    Disk partition (E:)
    233 GB Free (2795 GB Total)
    Disk partition (F:)
    646 GB Free (646 GB Total)
    Disk partition (G:)
    40 GB Free (244 GB Total)
    Disk partition (H:)
    40 GB Free (199 GB Total)
    Media drive (I:)
    CD/DVD
    Disk partition (M:)
    33 GB Free (466 GB Total)
    Graphics 
    Display adapter type
    ASUS HD7950 Series
    Total available graphics memory
    6559 MB
          Dedicated graphics memory
    3072 MB
          Dedicated system memory
    0 MB
          Shared system memory
    3487 MB
    Display adapter driver version
    13.152.0.0
    Primary monitor resolution
    1920x1080
    Secondary monitor resolution
    1360x768
    DirectX version
    DirectX 10
    Network 
    Network Adapter
    Realtek PCIe GBE Family Controller
    Notes 
    The gaming graphics score is based on the primary graphics adapter. If this system has linked or multiple graphics adapters, some software applications may see additional performance benefits.
    My project is on driver G, my clips are on D, E and G, with a majority of them on G; Cloud CC 2014 is on Driver C with Windows 7
    B/What version of Premiere Pro are you running currently? Do you have any third party plug-ins or hardware you using in conjunction with Premiere Pro? Do you know what version of Media Encoder you were using successfully before the recent update and you started having problems?
    I use exclusively since I took the subscription to Cloud CC, the latest versions, I check updates or upgrades every week and of course get notification also by the automatic Cloud manager of any new version. My last update was done on the 30th of December 2014. So yes I run with the most recent programs; the problems occurred just after! And got aggravated yesterday for no reason when Media encoder and Premiere Pro did not recognized MP4 format clips with an error message that the format was not supported!!! I hope Adobe did not decide to abandon this format, because it would put my 2 projects in full jeopardy!
    Before the last update I had no problems. I have uploaded on Vimeo a provisional encoded file (see
    with password rja404177 .
    I decided  to separate my project in two master projects concerning each of them the 2 parts of the video, with different names as to make the projects less heavy to manage by the computer and also easier to correct or change some of the effects controls especially the use of the curves RGB effect. I have a problem of getting an even colorimetric view between three different sources of files and cameras, one source is analog, the others HD and one of the latest has been more or less over exposed, so I check every clips with the YCscope and RGB parade and Vectorscope ( there could be a problem of color broadcast due to the red of the cliffs). Just imagine what would happen If I had to do it again! The full video is 1h10 minutes long! The video here corresponds to the first master project before the division in two parts. As I use nested sequences I have transferred in the master sequence here the 3 first sequences of the film (Titles, Las Vegas to Lee's Ferry, 1st day on the river).
    Yes I have Video Copilot addons but which are not used in the project as well as Red Giant Universe Premium also not used here. In fact I seldom use special effects in these projects as they are kind of documentary on my raft trip down the Colorado in 1995 updated with films of two friends done 2011 and 2013. The only effects used are Cross dissolve and the Slide push one twice in the project for the last one. I use otherwise the default controls of scale and opacity if necessary. Soundwise, my tracks are declared 5.1 and used in conjunction with Audition CC (I've been a user of this last program for many years since it's creation by Syntrillium under the name CoolEdit Pro before Adobe acquired it!)
    May I add that I'm not a novice with computers although an old froggy of 73!LOL! I began using computers in 1972 besides my job of Financial Analyst. I developed software in APL+ for stocks buy and sell decision making and created in France the first financial database in 1978 I was considered at that time like a perfect crazy guy in my business, good to be put in an asylum!!!. Since then I must say I had a good laugh! Try to prevent a trader to use a computer and databases nowadays and you'll see the speed at which he will throw you out of the window!
    C/I would probably have focused on just Media Encoder if possible but whats done is done. Maybe you did?
    Yes you're right I sort of thought of Media encoder first, but revised my way of dealing with the problem thinking that may be the installation had not been done correctly although no problem occurred during the update. I always update one program at a time waiting it to be fully completed before clicking on the install button of the next one.
    D/ about the two methods of uninstall.
    You say "The cleaner tool removes the same directories as the standard uninstaller. However the uninstaller is definitely the preferred method as it is done in conjunction with OS and the registry versus scripts which don't. The cleaner tool is generally used when the standard uninstall method fails "
    May I say I'm not sure this is the right way to do from the user viewpoint. It is misleading. I'm again neither a professional in development although I mentioned what I did when I was not retired, and not a professional in Video editing etc.. I just address the problem from the user's point of view. If Adobe thinks that the Management panel solution is the best solution to have all the files eliminated let's stick to it. In fact one can see by using the CCleaner program that it does not eliminate all the register's problems after having uninstalled a program. So perhaps then it is justified to use also the Adobe CC Cleaner device. Then may I suggest that the phrasing of the step 3 be changed to make the user understand its real purpose. From what you say one induces that they are complementary. This should be perfectly clear in the user's brain.  When I tried to find answers to my problems on the forums it showed many times that people did not really understand what would happen, how the device was going to work. That's why I insisted in my question on the "precise, yes or no " etc.. answers required. I can dedicate time to such questioning, I doubt a professional having to deliver a final product under contract has time to make hypothesis on this matter if it occurs to him such mishaps....
    E/ miscellaneous questions:
    Yes I use the default format proposed by Media encoder H.264  preset : Match source high bitrate which matches my project's settings. It worked three times before the update without an hitch. Why should not it go on like that?
    The encoded files are saved either on the driver of the project file, or on the E external driver to make sure I do not erase the final encoded file by mistake. Poirot's little grey cells are a little bit rusty nowadays!
    I had no problems before the update by working like that.
    I did not try a different codec before the last event which is the impossibility of using my MP4 clips. By the way the projects contain also AVI uncompressed (codec UYVY) files (My quicktime version is also updated) and the native files of my Canon Legria AVCHD camera (AVC format) and  I used the AVI uncompressed format because I wanted to derush my analog files to eliminate any shots which were of poor quality. I use for this a small software: AVI Cutty which works only with AVI uncompressed files. So I used Media Encoder to pre encode my analog files in this format first; It separate automatically my videos in clips more or less corresponding to scenes. Again I had no problem since I began to use Adobe software more than a year ago with CS5.5 and then with CC 2014 since last September as a yearly subscriber.
    Both projects have the same problem.
    I checked the Windows task manager while encoding and I observed this:
    a/ the crash occurs randomly in time.
    b/ it seems that each time the encoding passes on a cross dissolve section (I'm not certain of that it can be also the changes in the curves RGB effects settings from one clip to the other.) the CPU usage curve reaches a peak around 95 to nearly 100%. I suppose the crash occurs when the 100%+ is reached.
    c/I've checked my system driver's integrity, there is no problem here. I did the same for the memory which is ok too.
    d/ No I did put the question on other forums because I did not find the right place to put it.
    I do my best not to pollute other forums with non related questions.
    e/ As for the recognition of the MP4 files, other programs like the Windows mediaplayer recognize them so it's not a question of corrupted files.
    f/ I've just checked with the reinstalled media encoder. I did not re-encode but I do not get any more messages that the MP4 format is not recognized! Thank god! Remains to test the re-encoding itself and PP when the installation is over.
    Well I hope this long answer gives you a better idea of what is going on. I'm finishing right now the re installation of PP AE Media encoder and Audition and will come back to you with the results.
    Thanks again
    Best
    Claude

  • What is it with yield() that I don't understand?

    The following code starts a thread that awaits a notification that never comes. However, I was expecting the Foo main thread to enter the running state again sometime after it yields and print the last line "main running again", but not so. The program hangs and never execute main's last print statement.
    class Task extends Thread {
    Foo foo;
    Task (Foo syncOnThis) {
        foo = syncOnThis;
        @Override
        public void run () {
        synchronized (foo) {
            System.out.println("task has the foo lock.");
            try {
                System.out.println("task about to release lock.");
                foo.wait();
            } catch (InterruptedException ie) {
                System.err.println("task was interrupted.");
            System.out.println("task was notified!");
    public class Foo {
        private synchronized void notifier() {
            notifyAll();
            System.out.println("foo notified all");
        public static void main(String[] args) {
            Foo foo = new Foo();
            Task alpha = new Task(foo);
            alpha.start();
        Thread.yield();
            try {
                Thread.sleep(500);
            } catch (InterruptedException ie) {
                System.out.println("Foo's sleep interrupted");
                System.out.println("main thread running again");
    }My understanding of yield() is that it offers to demote the current thread to the runnable state in order to allow other threads - in this case Task - to enter the running state. But once Task calls wait(), it also retreats from the running state and this is where I expect the main thread to become running again.
    If I swap yield() with something like
            try {
                Thread.sleep(500);
            } catch (InterruptedException ie) {
                System.out.println("Foo's sleep interrupted");
            }then it main does actually return to a running state and executes the last statement.
    what is it with yield() that I don't understand?

    krzn wrote:
    I see.Do also note that yield seldom is used these days. You most likely have a bug in your implementation or design if you think you need to call yield, or you are executing on a really old VM or on an odd system.
    (The first versions of the Solaris VM didn't use round robin so you had to release the execution to avoid starvation.)
    Kaj

  • Don't understand Verizon policy from a business point of view

    I have a basic 2 line account with Verizon ( no smartphones) which I have had for years. I have had contracts renewed over and over when the contract expired. Now I am looking to upgrade to 2 smartphone plans but have 3 months left under my current contract. I was told I wasn't allowed to renew the contract while an existing contract is in place ( not even if the new plan is a larger plan) I did have the option to use EDGE to pay 20 per month for each phone, I thought it would be 20 per month until the old contract is up, kind of like a pro rate type of deal. But No, I had to pay 20 per month until the full 800 is paid in full..........but if I wait 3 months until my contract is up I can get the phones for nothing.
    So, I 'll wait 3 months, but in the meantime you can bet I will check out other carriers and see what they have to offer. I just don't understand why Verizon would risk losing a customer or customers over 3 months even if the customer wants to lock themselves in with a larger plan that only has 3 months to go on the older contract. Kind of like sports free agency, lock them in while you can, especially when it is benefitting the company in the long run.

    Swoosh2229 wrote:
    But you ask would that even make sense with the new car analogy? Yes it does make sense, especially when the new car will be completely free of charge in 3 months.
    What??? You have only 3 monthly payments left on your CURRENT car and you trade it in for a NEW car. You think if you make 3 payments after getting the NEW car it would be paid off in full??? Possibly if trading in a BMW and  getting a Honda Civic in exchange, otherwise you would have SEVERAL(years) payments before that car would be "completely free of charge".
    Funny, I've never seen a car dealership offer financing for new cars with a 3 month payback option. They are normally 36, 48, 60 and 72 months to pay off the financing. Never seen a 3 month financing deal. THOSE must be some pretty SUBSTANTIAL payments. Learn something new every day.

  • Wrong codes? or maybe I don't understand the instructions

    The instructions said "Write a procedure that will retrieve an
    existing record in Enrollment usiing the student and section Ids
    and set the grade to a specified value. (use update instead of
    insert) and write another procedure that will assign a given
    student a given advisor" I tried but cause I got a lot of
    errors!!! any help would be appreciated just email me at
    [email protected]. thanks!
    create sequence room_seq increment by 1;
    create sequence faculty_seq increment by 1;
    create sequence student_seq increment by 1;
    create sequence section_seq increment by 1;
    create sequence enrollment_seq increment by 1;
    create sequence room_section_seq increment by 1;
    create table course(
    courseNo varchar2(10),
    name varchar2(30),
    credits number,
    constraint course_pk primary key (courseNo));
    insert into course (courseNo, name, credits) values
    ('CIS405','ADVANCED DATABASE', 5);
    insert into course (courseNo, name, credits) values
    ('CIS349','INTRO TO DATABASE', 5);
    COMMIT;
    create table room(
    roomID number,
    bldg char(1) check (bldg IN ('A','B')),
    roomNo varchar2(10),
    maxCapacity number,
    style varchar2(15) check(style IN
    ('LECTURE','LECTURE/LAB','LAB','OFFICE')),
    constraint room_pk primary key (roomID));
    insert into room (roomID, bldg, roomNo, maxCapacity, style)
    values (room_seq.nextval, 'B', '151A', 50, 'LAB');
    insert into room (roomID, bldg, roomNo, maxCapacity, style)
    values (room_seq.nextval, 'B', '151B', 50, 'LAB');
    commit;
    create table faculty(
    facultyID number,
    lname varchar2(30) not null,
    fname varchar2(20) not null,
    dept varchar2(5),
    officeID number,
    phone varchar2(15),
    email varchar2(75),
    rank char(4) check(rank IN ('INST','ASOC','ASST','FULL','SENR')),
    constraint faculty_pk primary key (facultyID),
    constraint faculty_fk foreign key (officeID) references room
    (roomID));
    insert into faculty(facultyID, lname, fname, dept, officeID,
    phone, email, rank) values
    (faculty_seq.nextval, 'CANNON', 'AMY', 'CIS',
    6, '77052149003252', '[email protected]','FULL');
    commit;
    create table equipment(
    equipmentID varchar2(30),
    roomID number,
    type varchar2(20) check(type IN('OVERHEAD PROJECTOR','PORTABLE
    PROJECTOR','LAPTOP CONNECTION','DESKTOP COMPUTER','INTERNET
    CONNECTION')),
    constraint equipment_pk primary key (equipmentID),
    constraint equipment_fk foreign key (roomID) references room
    (roomID));
    INSERT INTO EQUIPMENT (EQUIPMENTID, ROOMID, TYPE) VALUES ('111',
    5, 'DESKTOP COMPUTER');
    INSERT INTO EQUIPMENT (EQUIPMENTID, ROOMID, TYPE) VALUES ('222',
    5, 'OVERHEAD PROJECTOR');
    commit;
    create table student(
    stuID number,
    lname varchar2(30),
    fname varchar2(20),
    street varchar2(100),
    city varchar2(60),
    state char(2),
    zip varchar2(9),
    major varchar2(5) check(major IN
    ('ACCT','ECT','EET','BIS','BSIT','CIS','TCOM')),
    standing varchar2(10) check(standing IN
    ('FRESHMAN','SOPHOMORE','JUNIOR','SENIOR')),
    gpa number(3,2),
    advisor number,
    constraint student_pk primary key (stuID),
    constraint student_FK foreign key (advisor) references faculty
    (facultyID));
    INSERT INTO STUDENT (STUID, LNAME, FNAME, MAJOR, STANDING, GPA,
    ADVISOR) VALUES
    (STUDENT_SEQ.NEXTVAL, 'SMITH', 'HEATHER', 'CIS', 'JUNIOR', 3.8,
    2);
    INSERT INTO STUDENT (STUID, LNAME, FNAME, MAJOR, STANDING, GPA,
    ADVISOR) VALUES
    (STUDENT_SEQ.NEXTVAL, 'ELLIOTT', 'DAVE', 'CIS', 'JUNIOR', 3.65,
    2);
    commit;
    create table section(
    sectionID number,
    sectionNo char(1),
    courseNo varchar2(10),
    facultyID number,
    term char(4),
    curSize number,
    maxSize number,
    constraint section_pk primary key (sectionID),
    constraint section_course_fk foreign key (courseNo) references
    course(courseNo),
    constraint section_faculty_fk foreign key (facultyID) references
    faculty(facultyID));
    INSERT INTO SECTION (SECTIONID, SECTIONNO, COURSENO, FACULTYID,
    TERM, CURSIZE, MAXSIZE)
    VALUES (SECTION_SEQ.NEXTVAL, 'T', 'CIS405', 1, '1001', 17, 30);
    INSERT INTO SECTION (SECTIONID, SECTIONNO, COURSENO, FACULTYID,
    TERM, CURSIZE, MAXSIZE)
    VALUES (SECTION_SEQ.NEXTVAL, 'G', 'CIS405', 2, '1001', 24, 30);
    commit;
    create table enrollment(
    stuSectionID number,
    stuID number,
    sectionID number,
    grade char(1) check(grade IN('A','B','C','D','F','I','W')),
    constraint enrollment_pk primary key (stuSectionID),
    constraint enrollment_stu_fk foreign key (stuID) references
    student(stuID),
    constraint enrollment_section_fk foreign key (sectionID)
    references section(sectionID));
    INSERT INTO ENROLLMENT (STUSECTIONID, STUID, SECTIONID) VALUES
    (ENROLLMENT_SEQ.NEXTVAL, 3, 1);
    INSERT INTO ENROLLMENT (STUSECTIONID, STUID, SECTIONID) VALUES
    (ENROLLMENT_SEQ.NEXTVAL, 3, 8);
    commit;
    create table room_section(
    roomSectionID number,
    sectionID number,
    roomID number,
    day char(3) check(day IN
    ('MON','TUE','WED','THU','FRI','SAT','SUN')),
    hour date,
    term char(4),
    constraint room_section_pk primary key (roomSectionID),
    constraint room_section_section_fk foreign key (sectionID)
    references section(sectionID),
    constraint room_section_room_fk foreign key (roomID) references
    room(roomID));
    INSERT INTO ROOM_SECTION (ROOMSECTIONID, SECTIONID, ROOMID, DAY,
    HOUR, TERM)
    VALUES (ROOM_SECTION_SEQ.NEXTVAL, 1, 3, 'MON', TO_DATE('9:30
    AM', 'HH:MI AM'), '1001');
    INSERT INTO ROOM_SECTION (ROOMSECTIONID, SECTIONID, ROOMID, DAY,
    HOUR, TERM)
    VALUES (ROOM_SECTION_SEQ.NEXTVAL, 1, 3, 'MON', TO_DATE('10:30
    AM', 'HH:MI AM'), '1001');
    commit;
    SQL> DESC ENROLLMENT
    Name Null? Type
    STUSECTIONID NOT NULL NUMBER
    STUID NUMBER
    SECTIONID NUMBER
    GRADE CHAR(1)
    SQL> CREATE OR REPLACE PROCEDURE Enrollment(
    2 p_grade IN CHAR(1),
    3 IS
    4 v_stuid NUMBER,
    5 v_sectionid NUMBER;
    6 BEGIN
    7 SELECT student_seq.NEXTVAL
    8 INTO v_stuid
    9 FROM DUAL;
    10 UPDATE student
    11 (stuid,
    12 sectionid,
    13 grade,
    14 SET (v_stuid,
    15 v_sectionid,
    16 UPPER (p_grade),
    17 COMMIT;
    18 DBMS_OUTPUT.PUT_LINE ('Student added');
    19 EXCEPTION
    20 WHEN OTHERS THEN
    21 DBMS_OUTPUT.PUT_LINE ('An error occurred');
    22 END AddStudent;
    23 /
    I got those errors like above!!! I don't understand what the
    instructions said. any assistance would be appreciated!

    David,
    I am afraid that the
    EXCEPTION
    WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE ('An error occurred');
    was my fault. I had intended it as an example to provide only
    minimal syntax where no exception handling whatsoever previously
    existed. Beau is a student and I am trying to guide him in the
    right direction without just writing all of it for him. In
    fact, I am afraid I may have already provided too much code
    without sufficient explanation. For you and others who may wish
    to help, here are the e-mails that provide the background on how
    we got to this point, with the most recent on top, starting with
    the last resonse I sent to him:
    Things that are wrong:
    The instructions say to be sure to use the sequence number for
    the student's ID, so you should not have p_stuID as an input
    parameter. Instead you should create a variable and select the
    student_seq.nextval into the variable from the dual table and
    use that value to populate the stuid column.
    Your input parameters should only have the variable type, not
    the size, so just use varchar2 and number.
    The check constraints only belong in the script that is used to
    create the table, not in your procedure with your input
    parameters, so remove them from the procedure.
    The order and number of your columns you are inserting into and
    values you are inserting must match, so if you insert into fname
    then lname, you need to insert the values p_fname then p_lname.
    You must either have first name then last name in both or last
    name then first name in both, not one way in one and the other
    way in the other.
    The idea is that when you execute the procedure you specify the
    values of the input parameter variable, then use those input
    parameter variables to insert the values into the table. You
    should not be specifying any specific values anywhere in your
    procedure. In other words don't insert 'HEATHER', instead
    insert fname, and so on.
    You should only have one insert statement. Each time the
    procedure is executed, a different set of values will be
    provided, and the same insert statement will be used.
    Additional suggestions:
    Although it is not required, since IN is the default, it is
    generally considered to be a good programming practice to use IN
    with your input parameters. It just makes the code easier to
    read and understand. As you write other code, you will learn to
    use OUT for output parameters and IN OUT for parameters that are
    both input and output parameters.
    It is generally recommended to store all data in upper case,
    that is capital letters, so that it is easier to index and
    search and avoid duplicates and so on. In order to ensure that
    your data is input in upper case, it is a good idea to use the
    UPPER function.
    Different programmers and companies have different standards
    that they use for capitalization, indentation, spacing,
    alignment, and so forth to make their code uniform and easier to
    read. You may want to look at some various styles and see what
    you like or ask what your instructor recommends.
    You should add some sort of exception handling section. For
    example, if someone attempts to insert a value for standing that
    isn't acceptable, then the procedure will fail due to the
    constraints and the student will not be added. You probably
    want to display some sort of message to the user. You might
    also want to display a message if the input is successful.
    When you attempt to compile your program and you receive a
    message that says "Warning: Procedure created with compilation
    errors." or some such thing, then from the SQL> prompt, type
    SHOW ERRORS and it will list the error message number, a brief
    description of the problem, and the line of code that the
    problem occurred on. You can then type LIST and it will list
    the code with line numbers, so that you can tell what line
    number the error message is referring to.
    In the following example, I have fixed the things that were
    wrong, formatted it the way I usually do, and added minimal
    exception handling and messages. There is a lot more that you
    could do. I have also demonstrated how the program can be
    tested and the results of proper input and improper input. In
    the example below, two students are added correctly, then an
    attempt to add another fails because the standing is not valid
    and violates a check constraint, because graduate is not
    acceptable. After each execution of the procedure, I have
    queried the table, so that you can see what was added and what
    was not.
    SQL> CREATE OR REPLACE PROCEDURE AddStudent
    2 (p_fname IN VARCHAR2,
    3 p_lname IN VARCHAR2,
    4 p_major IN VARCHAR2,
    5 p_standing IN VARCHAR2,
    6 p_gpa IN NUMBER)
    7 IS
    8 v_stuid NUMBER;
    9 BEGIN
    10 SELECT student_seq.NEXTVAL
    11 INTO v_stuid
    12 FROM DUAL;
    13
    14 INSERT INTO student
    15 (stuid,
    16 fname,
    17 lname,
    18 major,
    19 standing,
    20 gpa)
    21 VALUES (v_stuid,
    22 UPPER (p_fname),
    23 UPPER (p_lname),
    24 UPPER (p_major),
    25 UPPER (p_standing),
    26 p_gpa);
    27
    28 COMMIT;
    29 DBMS_OUTPUT.PUT_LINE ('Student added');
    30 EXCEPTION
    31 WHEN OTHERS THEN
    32 DBMS_OUTPUT.PUT_LINE ('An error occurred');
    33 END AddStudent;
    34 /
    Procedure created.
    SQL> COLUMN fname FORMAT A15
    SQL> COLUMN lname FORMAT A15
    SQL> SELECT stuid, fname, lname, major, standing, gpa
    2 FROM student
    3 /
    no rows selected
    SQL> SET SERVEROUTPUT ON
    SQL> EXEC AddStudent ('HEATHER', 'SMITH', 'CIS', 'JUNIOR', 3.8)
    Student added
    PL/SQL procedure successfully completed.
    SQL> SELECT stuid, fname, lname, major, standing, gpa
    2 FROM student
    3 /
    STUID FNAME LNAME MAJOR
    STANDING GPA
    1 HEATHER SMITH CIS
    JUNIOR 3.8
    SQL> EXEC AddStudent ('Dave', 'Elliott', 'CIS', 'junior', 3.65)
    Student added
    PL/SQL procedure successfully completed.
    SQL> SELECT stuid, fname, lname, major, standing, gpa
    2 FROM student
    3 /
    STUID FNAME LNAME MAJOR
    STANDING GPA
    1 HEATHER SMITH CIS
    JUNIOR 3.8
    2 DAVE ELLIOTT CIS
    JUNIOR 3.65
    SQL> EXEC AddStudent ('KARL', 'WEBSTER', 'CIS', 'GRADUATE', 3.2)
    An error occurred
    PL/SQL procedure successfully completed.
    SQL> SELECT stuid, fname, lname, major, standing, gpa
    2 FROM student
    3 /
    STUID FNAME LNAME MAJOR
    STANDING GPA
    1 HEATHER SMITH CIS
    JUNIOR 3.8
    2 DAVE ELLIOTT CIS
    JUNIOR 3.65
    SQL>
    I am going home now. Sometimes I get a chance to respond to my
    e-mail daily and sometimes I may not get to it for a week. It
    is better if you post your questions on one of the forums where
    you may get more rapid responses from many people. I have
    provided links to some forums that I browse below. If you have
    internet access, you should be able to just click on them. Some
    may require you to register, but they are all free.
    The following is a link to the Oracle Technology Network forums,
    hosted by Oracle Corporation, where I recommend the SQL and
    PL/SQL discussions.
    http://forums.oracle.com/forums/homepage.jsp
    The following is a link to the PL/SQL forums of the REVEALNET
    site, where noted author Steven Feuerstein is one of the SYSOPS,
    where, for you, I recommend the "Beginner PL/SQL Developer
    Questions" discussions.
    http://PIPETALK.REVEALNET.COM/~PLSQL/LOGIN
    The following is a link to another forum, where I recommend the
    RDBMS, SQL, PL/SQL discussions.
    http://www.orafans.com/cgi-bin/orafans/ubb/Ultimate.cgi?
    action=intro
    I would still like to know where you got my e-mail address, what
    class you are taking, who your instructor is, and so forth.
    Please do let me know.
    Good luck,
    Barbara
    -----Original Message-----
    From:     bseo.ga [SMTP:[email protected]]
    Sent:     Wednesday, December 19, 2001 12:19 AM
    To:     Boehmer, Barbara A.
    Subject:     Re: PL/SQL
    Importance:     High
    what is wrong with the compilation errors?
    CREATE or REPLACE PROCEDURE AddStudent(
    p_stuID number,
    p_lname varchar2(30),
    p_fname varchar2(20),
    p_major varchar2(5) check(major IN
    ('ACCT','ECT','EET','BIS','BSIT','CIS','TCOM')),
    P_standing varchar2(10) check(standing IN
    ('FRESHMAN','SOPHOMORE','JUNIOR','SENIOR')),
    P_gpa number(3,2) IS
    BEGIN
    INSERT INTO STUDENT (STUID, LNAME, FNAME, MAJOR, STANDING, GPA,
    ADVISOR) VALUES
    (STUDENT_SEQ.NEXTVAL, 'SMITH', 'HEATHER', 'CIS', 'JUNIOR', 3.8,
    2);
    INSERT INTO STUDENT (STUID, LNAME, FNAME, MAJOR, STANDING, GPA,
    ADVISOR) VALUES
    (STUDENT_SEQ.NEXTVAL, 'ELLIOTT', 'DAVE', 'CIS', 'JUNIOR', 3.65,
    2);
    INSERT INTO STUDENT (STUID, LNAME, FNAME, MAJOR, STANDING, GPA,
    ADVISOR) VALUES
    (STUDENT_SEQ.NEXTVAL, 'WEBSTER', 'KARL', 'CIS', 'SENIOR', 3.2,
    2);
    INSERT INTO STUDENT (STUID, LNAME, FNAME, MAJOR, STANDING, GPA,
    ADVISOR) VALUES
    (STUDENT_SEQ.NEXTVAL, 'COX', 'STACEY', 'CIS', 'SENIOR', 2.7, 1);
    INSERT INTO STUDENT (STUID, LNAME, FNAME, MAJOR, STANDING, GPA,
    ADVISOR) VALUES
    (STUDENT_SEQ.NEXTVAL, 'HOWARD', 'BRIAN', 'CIS', 'JUNIOR', 3.18,
    1);
    INSERT INTO STUDENT (STUID, LNAME, FNAME, MAJOR, STANDING, GPA,
    ADVISOR) VALUES
    (STUDENT_SEQ.NEXTVAL, 'DENNIS', 'KELLY', 'CIS', 'SENIOR', 4.0,
    1);
    COMMIT;
    END;
    SQL> /
    Warning: Procedure created with compilation errors.
    ----- Original Message -----
    From: Boehmer, Barbara A. <mailto:[email protected]>
    To: 'bseo.ga' <mailto:[email protected]>
    Sent: Tuesday, December 18, 2001 5:17 PM
    Subject: RE: PL/SQL
    I am not sure what part of it you don't understand.
    The first section that you included is a script that you need to
    copy and run, in order to create the sequences, tables, and data
    that you will need to complete your assignment. You will need
    to edit an empty .sql file, copy the script into the file, save
    the file, then start the file. For example:
    SQL> EDIT test
    Type or copy the script and save the file.
    SQL> START test
    You should see various messages as the items are created. Then
    you can use the following commands to see the tables and
    sequences that you have created:
    SQL> SELECT table_name FROM user_tables;
    SQL> SELECT sequence_name FROM user_sequences;
    To show the structure of an individual table, for example the
    course table:
    SQL> DESC course
    To show the data in an individual table, like the course table:
    SQL> SELECT * FROM course;
    In the second section that you have provided, your instructor is
    asking you to create three different procedures to do three
    different things. To create a procedure, you edit a .sql file,
    type the code to create the procedure, save the file, then start
    the file. I usually make the .sql file name the same as the
    procedure name. So, for example, in number 1, you are asked to
    create a procedure named AddStudent, so you would:
    SQL> EDIT AddStudent
    Type your code.
    Save the file.
    SQL> START AddStudent
    You should receive a message that says:
    Procedure created.
    Then, to execute your procedure:
    SQL> EXEC AddStudent (put your parameter values here)
    The basic syntax for creating a pl/sql procedure is:
    CREATE OR REPLACE PROCEDURE procedure_name
    (put your parameters here)
    AS
    put your variable declarations here;
    BEGIN
    put your code that you want to execute here,
    like insert statements and update statements;
    END procedure_name;
    So, if you are trying to create a procedure to add a new student
    (which means inserting a row into the student table), you will
    need to accept the values (parameters) that you are going to
    insert, then insert them:
    CREATE OR REPLACE PROCEDURE AddStudent
    (p_first .....
    p_last .....
    p_major .....
    p_standing .....
    p_GPA .....)
    AS
    BEGIN
    INSERT INTO student .....;
    END AddStudent;
    I have just given you a starting format and deliberately left
    out a lot, because you will learn more by doing it yourself. I
    hope that makes things a little clearer.
    I would like to know a little more about the class you are
    taking. Please let me know where you are going to school, who
    your instructor is, what is the name of the class you are
    taking, and what book are you using. Also, please let me know
    where you got my e-mail address (from one of the forums?)
    Good luck,
    Barbara
    -----Original Message-----
    From: bseo.ga [mailto:[email protected]]
    Sent: Tuesday, December 18, 2001 5:57 PM
    To: [email protected]
    Subject: PL/SQL
    Importance: High
    I don't understand reading the following instructions from my
    professor and the books. help would be apppreciated.
    -------------create the sequence numbers needed to generate
    primary key values
    create sequence room_seq increment by 1;
    create sequence faculty_seq increment by 1;
    create sequence student_seq increment by 1;
    create sequence section_seq increment by 1;
    create sequence enrollment_seq increment by 1;
    create sequence room_section_seq increment by 1;
    create table course(
    courseNo varchar2(10),
    name varchar2(30),
    credits number,
    constraint course_pk primary key (courseNo));
    insert into course (courseNo, name, credits) values
    ('CIS405','ADVANCED DATABASE', 5);
    insert into course (courseNo, name, credits) values
    ('CIS349','INTRO TO DATABASE', 5);
    COMMIT;
    create table room(
    roomID number,
    bldg char(1) check (bldg IN ('A','B')),
    roomNo varchar2(10),
    maxCapacity number,
    style varchar2(15) check(style IN
    ('LECTURE','LECTURE/LAB','LAB','OFFICE')),
    constraint room_pk primary key (roomID));
    insert into room (roomID, bldg, roomNo, maxCapacity, style)
    values (room_seq.nextval, 'B', '151A', 50, 'LAB');
    insert into room (roomID, bldg, roomNo, maxCapacity, style)
    values (room_seq.nextval, 'B', '151B', 50, 'LAB');
    commit;
    create table faculty(
    facultyID number,
    lname varchar2(30) not null,
    fname varchar2(20) not null,
    dept varchar2(5),
    officeID number,
    phone varchar2(15),
    email varchar2(75),
    rank char(4) check(rank IN
    ('INST','ASOC','ASST','FULL','SENR')),
    constraint faculty_pk primary key (facultyID),
    constraint faculty_fk foreign key (officeID) references room
    (roomID));
    insert into faculty(facultyID, lname, fname, dept, officeID,
    phone, email, rank) values
    (faculty_seq.nextval, 'CANNON', 'AMY', 'CIS',
    6, '77052149003252', '[email protected]','FULL'
    <mailto:'[email protected]','FULL'>);
    commit;
    create table equipment(
    equipmentID varchar2(30),
    roomID number,
    type varchar2(20) check(type IN('OVERHEAD PROJECTOR','PORTABLE
    PROJECTOR','LAPTOP CONNECTION','DESKTOP COMPUTER','INTERNET
    CONNECTION')),
    constraint equipment_pk primary key (equipmentID),
    constraint equipment_fk foreign key (roomID) references room
    (roomID));
    INSERT INTO EQUIPMENT (EQUIPMENTID, ROOMID, TYPE) VALUES ('111',
    5, 'DESKTOP COMPUTER');
    INSERT INTO EQUIPMENT (EQUIPMENTID, ROOMID, TYPE) VALUES ('222',
    5, 'OVERHEAD PROJECTOR');
    commit;
    create table student(
    stuID number,
    lname varchar2(30),
    fname varchar2(20),
    street varchar2(100),
    city varchar2(60),
    state char(2),
    zip varchar2(9),
    major varchar2(5) check(major IN
    ('ACCT','ECT','EET','BIS','BSIT','CIS','TCOM')),
    standing varchar2(10) check(standing IN
    ('FRESHMAN','SOPHOMORE','JUNIOR','SENIOR')),
    gpa number(3,2),
    advisor number,
    constraint student_pk primary key (stuID),
    constraint student_FK foreign key (advisor) references faculty
    (facultyID));
    INSERT INTO STUDENT (STUID, LNAME, FNAME, MAJOR, STANDING, GPA,
    ADVISOR) VALUES
    (STUDENT_SEQ.NEXTVAL, 'SMITH', 'HEATHER', 'CIS', 'JUNIOR', 3.8,
    2);
    INSERT INTO STUDENT (STUID, LNAME, FNAME, MAJOR, STANDING, GPA,
    ADVISOR) VALUES
    (STUDENT_SEQ.NEXTVAL, 'ELLIOTT', 'DAVE', 'CIS', 'JUNIOR', 3.65,
    2);
    commit;
    create table section(
    sectionID number,
    sectionNo char(1),
    courseNo varchar2(10),
    facultyID number,
    term char(4),
    curSize number,
    maxSize number,
    constraint section_pk primary key (sectionID),
    constraint section_course_fk foreign key (courseNo) references
    course(courseNo),
    constraint section_faculty_fk foreign key (facultyID)
    references faculty(facultyID));
    INSERT INTO SECTION (SECTIONID, SECTIONNO, COURSENO, FACULTYID,
    TERM, CURSIZE, MAXSIZE)
    VALUES (SECTION_SEQ.NEXTVAL, 'T', 'CIS405', 1, '1001', 17, 30);
    INSERT INTO SECTION (SECTIONID, SECTIONNO, COURSENO, FACULTYID,
    TERM, CURSIZE, MAXSIZE)
    VALUES (SECTION_SEQ.NEXTVAL, 'G', 'CIS405', 2, '1001', 24, 30);
    commit;
    create table enrollment(
    stuSectionID number,
    stuID number,
    sectionID number,
    grade char(1) check(grade IN('A','B','C','D','F','I','W')),
    constraint enrollment_pk primary key (stuSectionID),
    constraint enrollment_stu_fk foreign key (stuID) references
    student(stuID),
    constraint enrollment_section_fk foreign key (sectionID)
    references section(sectionID));
    INSERT INTO ENROLLMENT (STUSECTIONID, STUID, SECTIONID) VALUES
    (ENROLLMENT_SEQ.NEXTVAL, 3, 1);
    INSERT INTO ENROLLMENT (STUSECTIONID, STUID, SECTIONID) VALUES
    (ENROLLMENT_SEQ.NEXTVAL, 3, 8);
    commit;
    create table room_section(
    roomSectionID number,
    sectionID number,
    roomID number,
    day char(3) check(day IN
    ('MON','TUE','WED','THU','FRI','SAT','SUN')),
    hour date,
    term char(4),
    constraint room_section_pk primary key (roomSectionID),
    constraint room_section_section_fk foreign key (sectionID)
    references section(sectionID),
    constraint room_section_room_fk foreign key (roomID)
    references room(roomID));
    INSERT INTO ROOM_SECTION (ROOMSECTIONID, SECTIONID, ROOMID, DAY,
    HOUR, TERM)
    VALUES (ROOM_SECTION_SEQ.NEXTVAL, 1, 3, 'MON', TO_DATE('9:30
    AM', 'HH:MI AM'), '1001');
    INSERT INTO ROOM_SECTION (ROOMSECTIONID, SECTIONID, ROOMID, DAY,
    HOUR, TERM)
    VALUES (ROOM_SECTION_SEQ.NEXTVAL, 1, 3, 'MON', TO_DATE('10:30
    AM', 'HH:MI AM'), '1001');
    commit;
    The lab notes from my professor said
    1. your system will often need to create a new student. Write
    PL/SQL code for an object named AddStudent that will take values
    for first and last name, major, standing and GPA and add a new
    record in the Student table. Since advisors aren't assigned at
    registration time, we'll add their advisor at a later date.
    Don't worry about the student's address. Be sure to use the
    sequence number for the student's ID.
    2. Write a procedure that will retrieve an existing record in
    Enrollment usiing the student and section Ids and set the grade
    to a specified value. (use update instead of insert)
    3. Write another procedure that will assign a given student a
    given advisor.

Maybe you are looking for