Preformance tuning,its urgent,i would appreciate ur help

hi
    I have some problem with performance tuning
SELECT stlty
           stlnr
           stlkn
           stpoz
           idnrk
      FROM stpo
      INTO TABLE t_detail
       FOR ALL ENTRIES IN t_header
*MOD04{
       WHERE stlnr eq t_header-stlnr
        AND postp EQ p_postp
        AND lkenz NE c_pos
        AND stlty NE c_null.
      WHERE
      stlty IN s_stlty
       AND stlnr EQ t_header-stlnr
      AND postp EQ p_postp
      AND lkenz EQ space.
*}MOD04
*}MOD03
    IF sy-subrc <> 0.  "t_detail[] IS INITIAL.
      MESSAGE s045.  "No Data found for the given selection criteria
      LEAVE LIST-PROCESSING.
    ELSE.
      SORT t_detail BY stlnr.
    ENDIF.  "t_detail[] IS INITIAL.
iam getting some problem in performance tuning,its displaying as fetch request as 65% from stpo
i have to use some other table other than stpo,there is no other table than stpo,how to do it.even i cheked the indexes used as well
i would be extremely thankfull for ur valuable answers

Hi,
chk this you might get some idea...
Performance Analysis
Interpreting and correcting performance violations
PURPOSE
Each and every rule is outlined that results in a performance violation and explained in detail as to what to avoid while coding a program and correcting such performance violations if they exist in the code.
It is a general practice to use           Select  *  from <database>…     This statement populates all the values of the structure in the database.
The effect is many fold:-
•     It increases the time to retrieve data from database
•     There is large amount of unused data in memory
•     It increases the processing time from work area or internal tables
It is always a good practice to retrieve only the required fields. Always use the syntax      Select f1  f2  …  fn  from <database>…      
e.g.     Do not use the following statement:-
     Data: i_mara like mara occurs 0 with header line.
     Data: i_marc like marc occurs 0 with header line.
     Select * from mara
          Into table i_mara
          Where matnr in s_matnr.
     Select * from marc
          Into table i_marc
          For all entries in i_mara
          Where matnr eq i_mara-matnr.
     Instead use the following statement:-
                                   Data: begin of i_mara occurs 0,
                                        Matnr like mara-matnr,
                                              End of i_mara.
     Data: begin of i_marc occurs 0,
          Matnr like marc-matnr,
                                        Werks like marc-werks,
                                             End of i_marc.
     Select matnr from mara
          Into table i_mara
          Where matnr in s_matnr.
                                                                                The objective here is to identify all select statements in the program where there is a possibility to restrict the data retrieval from database. It identifies all select statements, which do not use the where condition effectively. It is a good practice to restrict the amount of data as this reduces the data retrieval time, improves the processing time and occupies less memory. Always use as many conditions in the where clause as possible.
e.g.     Do not use the following statement:-
     Select matnr from mara
          Into table i_mara.
Loop at i_mara.
          If i_mara-matnr+0(1) ‘A’.
               Delete i_mara index sy-tabix.
          Endif.
     Endloop.
     Instead use the following statement:-
                                        Select matnr from mara
                                             Into table i_mara
                                             Where matnr like ‘A%’.
Limit the access to database as far as possible. Accessing the same table multiple times increases the load on the database and may affect other programs accessing the same table. It is a good practice to retrieve all the relevant data from database in a single select statement into an internal table. All the processing should be done with this internal table.
e.g.     Do not use the following statement:-
     Select vbeln vkorg from vbak
          Into table i_vbak
          Where vbeln in s_vbeln.
     Loop at i_vbak.
          Case i_vbak-vkorg.
          When ‘IJI1’.
               Select hkunnr from kunh
                    Into table i_kunh
                    Where vkorg = ‘IJI1’.
          When ‘IJI2’.
               Select hkunnr from kunh
                    Into table i_kunh
                    Where vkorg = ‘IJI2’.
          When ‘IJI3’.
               Select hkunnr from kunh
                    Into table i_kunh
                    Where vkorg = ‘IJI3’.
          When ‘IJI4’.
               Select hkunnr from kunh
                    Into table i_kunh
                    Where vkorg = ‘IJI4’.
          Endcase.
     Endloop.
     Instead use the following statement:-
          Select vbeln vkorg from vbak
               Into table i_vbak
               Where vbeln in s_vbeln.
          Select hkunnr from kunh
               Into table i_kunh
               Where vkorg in (‘IJI1’,’IJI2’,’IJI3’,’IJI4’).
          Loop at i_vbak.
               Case i_vvbak-vkorg.
                    When ‘IJI1’.
                         Read table i_kunh where vkorg = i_vbak-vkorg.
                    When ‘IJI2’.
                         Read table i_kunh where vkorg = i_vbak-vkorg.
                    When ‘IJI3’.
                         Read table i_kunh where vkorg = i_vbak-vkorg.
                    When ‘IJI4’.
                         Read table i_kunh where vkorg = i_vbak-vkorg.
               Endcase.
          Endloop.
When the size of the record or the number of records in the internal table is large, doing a linear search is time consuming. It is always a good practice to search a record by binary search (Always Sort the table before doing a binary search). The difference is felt especially in the production environment where the live data is usually huge. As of release 4.0 there are new types of internal tables like SORTED and HASHED which can be effectively used to further reduce the search time and processing time.
e.g.     Do not use the following statement:-
Select matnr from mara
Into table i_mara
Where matnr in s_matnr.
     Select matnr werks from marc
          Into table i_marc
          For all entries in i_mara
          Where matnr eq i_mara-matnr.
     Loop at I_mara.
          Read table i_marc with key matnr = I_mara-matnr.
     Endloop.
Instead use the following statement:-
     Select matnr from mara
          Into table i_mara
          Where matnr in s_matnr.
                                   Select matnr werks from marc
                                        Into table i_marc
                                        For all entries in i_mara
                                       Where matnr eq i_mara-matnr.
                                   Sort I_marc by matnr.
                                   Loop at I_mara.
                                        Read table i_marc with key
matnr = I_mara-matnr
binary search.
                                   Endloop.
It is a good practice to search records from internal tables using a binary search. But extreme caution needs to be applied as it may either increase the time or may cause run time termination if it is not sorted.
Always the sort the internal table by the required keys before performing a binary search.                                                                               
e.g.     Do not use the following statement:-
Select matnr from mara
Into table i_mara
Where matnr in s_matnr.
     Select matnr werks from marc
          Into table i_marc
          For all entries in i_mara
          Where matnr eq i_mara-matnr.
     Loop at I_mara.
          Read table i_marc with key matnr = I_mara-matnr binary search.
     Endloop.
Instead use the following statement:-
     Select matnr from mara
          Into table i_mara
          Where matnr in s_matnr.
                                   Select matnr werks from marc
                                        Into table i_marc
                                        For all entries in i_mara
                                       Where matnr eq i_mara-matnr.
                                   Sort I_marc by matnr.
                                   Loop at I_mara.
                                        Read table i_marc with key
matnr = I_mara-matnr
binary search.
                                   Endloop.
It is a general practice to use           Read table <itab>…     This statement populates all the values of the structure in the workarea.
The effect is many fold:-
•     It increases the time to retrieve data from internal table
•     There is large amount of unused data in work area
•     It increases the processing time from work area later
It is always a good practice to retrieve only the required fields. Always use the syntax      Read table <itab> transporting f1 f2  …  FN …          If just a check is being performed for existence of a record use      Read table <itab> transporting no fields …
e.g.     Do not use the following statement:-
data: i_vbak like vbak occurs 0 with header line.
data: i_vbap like vbap occurs 0 with header line.
Loop at i_vbak.
     read table i_vbap with key
vbeln = i_vbak-vbeln binary search.
     If sy-subrc = 0 and i_vbap-posnr = ‘00010’.
     endif.
Endloop.
Instead use the following statement:-
data: i_vbak like vbak occurs 0 with header line.
data: i_vbap like vbap occurs 0 with header line.
Loop at i_vbak.
                              read table i_vbap transporting posnr with key
vbeln = i_vbak-vbeln binary search.
                              If sy-subrc = 0 and i_vbap-posnr = ‘00010’.
                              endif.
Endloop.
There are many ways in which a select statement can be optimized. Effective use of primary and secondary indexes is one of them. Very little attention is paid especially to the secondary indexes. The following points should be noted before writing a select statement:-
•     Always use the fields in the where clause in the same order as the keys in the database table
•     Define the secondary indexes in the database for the fields which are most frequently used in the programs
•     Always try to use the best possible secondary index in the where clause if it exists
•     Do not have many secondary indexes defined for a table
•     Use as many keys both primary and secondary as possible to optimize data retrieval
As of release 4.5 it is now possible to define the secondary index in the where clause using %_HINT.
e.g.     Do not use the following statement:-
     Assuming a secondary index is defined on the field vkorg in table vbak
     Select vbeln vkorg from vbak
          Into table i_vbak
          Where vbeln in s_vbeln.
     Loop at i_vbak.
          Case i_vbak-vkorg.
          When ‘IJI1’.
          When ‘IJI2’.
          Endcase.
     Endloop.
Instead use the following statement:-
                                   Select vbeln vkorg from vbak
                                        Into table i_vbak
                                        Where vbeln in s_vbeln and
                                             Vkorg in (‘IJI1’,’IJI2’).
                                   Loop at i_vbak.
                                        Case i_vbak-vkorg.
                                        When ‘IJI1’.
                                        When ‘IJI2’.
                                        Endcase.
                                   Endloop.
This rule identifies all select statements in the program which use      Select … UP TO 1 ROWS…      It is a general practice to use this syntax to retrieve a single record from database table. If all the primary keys of a table are used in the where clause it is a good practice to use      Select SINGLE …
e.g.     Do not use the following statement:-
     select matnr up to 1 rows from mara
          into mara-matnr
          where matnr = itab-matnr.
Instead use the following statement:-
                                   select single matnr from mara
                                        into mara-matnr
                                        where matnr = itab-matnr.
Table buffering is used to optimize data access from database. However if buffering is used on tables which are updated frequently, it has an adverse effect. The buffer area is updated at regular intervals by the system. If selection is done from this table before the buffer is updated the values are fetched first from the buffer and then from the database as the buffer is outdated.  This increases the load on the system and also the processing time.
It is always a good practice to bypass buffer in the select statement for tables, which are buffered but are updated at regular frequently.
e.g.     Do not use the following statement:-
     select  matnr from mara
          into table i_mara
          where matnr in s_matnr.
Instead use the following statement:-
                                   select matnr bypassing buffer
from mara
                                        into table i_mara
                                        where matnr in s_matnr.
Most of the performance issues are related to database. It should be an inherent practice to reduce the access to database as far as possible and use it in the most optimal manner.
Just as in select statements, database updates also affect the performance. When records are to be inserted in database table do it in once. Populate the internal table completely, with which the records are to be inserted. Then update the table from the internal table instead of updating it for each record within the loop.
e.g.     Do not use the following statement:-
     Loop at i_mara.
          Insert  into mara values i_mara.
     Endloop.
Instead use the following statement:-
Loop at i_mara.
                                        Modify i_mara.
                                   Endloop.
                                   Insert  mara from table i_mara.
Read statement fetches the record from the internal table using implicit key or explicit key. When no key or index is specified for the search criteria the key in the WA of the internal table is used implicitly for searching. SAP recommends explicit search criteria. Here the key or index is explicitly specified which is used for searching the records from internal table. This is faster than an implicit search.
e.g.     Do not use the following statement:-
     Loop at i_mara.
          i_marc-matnr = i_mara-matnr.
          read table i_marc. 
     Endloop.
Instead use the following statement:-
     Loop at i_mara.
          read table i_marc with key 
          matnr = i_mara-matnr.
     Endloop.
When an internal table is sorted without specifying the keys the default is used. This may affect he performance. Always specify the keys when sorting.
e.g.     Do not use the following statement:-
     Data : begin of i_mara occurs 0,
          ersda   like mara-ersda,
ernam  like mara-ernam,
laeda   like mara-laeda,
aenam  like mara-aenam,
vpsta   like mara-vpsta,
               End of i_mara.
     Sort i_mara.
     Loop at i_mara.
     Endloop.
Instead use the following statement:-
     Data : begin of i_mara occurs 0,
          ersda   like mara-ersda,
ernam  like mara-ernam,
laeda   like mara-laeda,
aenam  like mara-aenam,
vpsta   like mara-vpsta,
               End of i_mara.
     Sort i_mara by matnr aenam.
     Loop at i_mara.
     Endloop.
Whenever values need to be passed in a subroutine have type declarations assigned to the formal parameters. If no specific type declaration is possible then use TYPE ANY. This improves the performance. It is also recommended by SAP and can be noticed during extended program check (EPC) for the program.
e.g.     Do not use the following statement:-
perform type_test using p_var1 p_var2 p_var3.
form type_test using p_var1 p_var2 p_var3.
endform.
Instead use the following statement:-
     perform type_test using p_var1 p_var2 p_var3.
     form type_test using   p_var1  type c
p_var2  type any
p_var3  like mara-matnr.
     endform.
This is similar to type declarations for subroutines explained in Rule 13. Except that type declarations need to be maintained for field-symbols. More help is provided by SAP under TYPE ASSIGNMENTS.
e.g.     Do not use the following statement:-
field-symbols: <fs1>, <fs2>, <fs3>.
Instead use the following statement:-
field-symbols:  <fs1>   type  c,
<fs2> like mara-matnr,
<fs3> like marc-werks.
The      Do … Enddo      loop does not have a terminating condition. This has to be handled explicitly within the loop construct. This has some affect on the performance. On the other hand      While … Endwhile      loop has a condition to satisfy before entering the loop. Hence will improve the performance and is also safe to use.
e.g.     Do not use the following statement:-
Do.
If count > 20.
     Exit.
Endif.
Count = count + 1.
Enddo.
Instead use the following statement:-
While ( count < 20 ).
Endwhile.
Do not use the           CHECK           construct within      Loop … Endloop.      The end condition for check statement varies with the type of loop structure. For example within loop … endloop it moves to the next loop pass whereas in form … endform it terminates the subroutine. Thus the outcome may not be as expected. It is always safe to use      If … Endif.
e.g.     Do not use the following statement:-
     Loop at i_mara.
          Check i_mara-matnr = ‘121212’
     Endloop.
Instead use the following statement:-
     Loop at i_mara.
          If i_mara-matnr = ‘121212’
          Endif.
     Endloop.
This rule is similar to rule 16 except that it is for      Select … Endselect      statements. The affect is similar to that in loop … endloop.
e.g.     Do not use the following statement:-
     Select matnr from mara
          Into table i_mara.
          Check i_mara-matnr = ‘121212’
     Endselect.
Instead use the following statement:-
                                   Select matnr from mara
          Into table i_mara.
          If i_mara-matnr = ‘121212’
          Endif.
     Endselect.
This feature is also available in SAP Tips & Tricks. As can be seen the time measured for the same logical units of code using      if… elseif … endif      is almost twice that of      case … endcase.
It is always advisable to use case … endcase as far as possible.
e.g.     Do not use the following statement:-
IF     C1A = 'A'.   WRITE '1'.
ELSEIF C1A = 'B'.   WRITE '2'.
ELSEIF C1A = 'C'.   WRITE '3'.
ELSEIF C1A = 'D'.   WRITE '4'.
ELSEIF C1A = 'E'.   WRITE '5'.
ELSEIF C1A = 'F'.   WRITE '6'.
ELSEIF C1A = 'G'.   WRITE '7'.
ELSEIF C1A = 'H'.   WRITE '8'.
ENDIF.                        
Instead use the following statement:-
CASE C1A.             
WHEN 'A'. WRITE '1'.
WHEN 'B'. WRITE '2'.
WHEN 'C'. WRITE '3'.
WHEN 'D'. WRITE '4'.
WHEN 'E'. WRITE '5'.
WHEN 'F'. WRITE '6'.
WHEN 'G'. WRITE '7'.
WHEN 'H'. WRITE '8'.
ENDCASE.              
Sort by Clause should be used instead of Order by at database level especially in the cases where the number of records is less. When using Order by clause we need to ensure that it uses an index. This is not the case in sort by. Also the performance is significantly high for Sort by Clause especially for small number of records.
e.g.     Do not use the following statement:-
SELECT * FROM SBOOK                
         WHERE                     
           CARRID  = 'LH '      AND
           CONNID  = '0400'     AND
           FLDATE  = '19950228'    
         ORDER BY PRIMARY KEY.  
ENDSELECT.
Instead use the following statement:-
SELECT * FROM SBOOK                
         WHERE                     
           CARRID  = 'LH '      AND
           CONNID  = '0400'     AND
           FLDATE  = '19950228'    
         SORT BY PRIMARY KEY.  
ENDSELECT.
It is observed that break points are hard coded in the program during testing. Some are soft break points some are hard coded and also user specific. These are left in the program during transports and cause production problems later. This rule helps you to identify all the hard coded break points that are left in the program.
This rule is self-explanatory. Hence no examples are provided.

Similar Messages

  • Would like to comment/review on the Newton Magazine. Do not know how. Would appreciate your help. Many thanks

    Would like to comment/review regarding Newton Magazine and its app. Do not know how. Would appreciate your help. Many thanks.
    Wexmall

    Hi there,
    You may find the article below helpful.
    iTunes Store: Writing a review
    http://support.apple.com/kb/ht3928
    -Griff W

  • My camera Canon G3 (i know it's old) no longer connects to iPhoto (8.1.2) on my iMac, I have checked with my friends iMac same model iPhoto version and it works fine using my cable, I would appreciate any help getting this sorted

    My camera Canon G3 (i know it's old) no longer connects to iPhoto (8.1.2) on my iMac, I have checked with my friends iMac same model iPhoto version and it works fine using my cable, I would appreciate any help getting this sorted

    As a Test:
    Hold down the option (or alt) key and launch iPhoto. From the resulting menu select 'Create Library'
    Import a few pics into this new, blank library. Is the Problem repeated there?

  • Iphoto diet & iphoto 6 error!! would appreciate any help/feedback

    I recently installed iPhoto 6.0.6. and since then, when I run iPhoto Diet (3.1) an apple script error message comes up.
    It says: File alias Macintosh HD:Users:michellechin:Pictures:iPhoto Library:Modified: wasn't found. (-43)
    HELP! what does this mean? and how can I make iPhoto Diet run properly again?
    Would appreciate any help very very very much.
    Thanks in advance,
    Michelle.
    Powerbook G4 12"   Mac OS X (10.4.9)  

    Michelle
    It means that the application cannot find the Modified folder, which should be in your iPhoto Library Folder (inside your Pictures Folder).
    Have you contacted the developers of iPhoto Diet?
    http://www.rhythmiccanvas.com/software/iphotodiet/
    Regards
    TD

  • In iTunes, I have a number of tones stored.  I don't know how to access them to add to listed people on my iPhone. I would appreciate any help.

    In iTunes, I have a number of tones stored.  I don't know how to access them to add to listed people on my iPhone. I would appreciate any help.

    Drap and drop the tones from iTunes onto the phone. Select the contact you wish you add the tone to. Click edit and select ringtone.

  • I am having problems using Numbers package, unable to add specific cells in a column, when I tap "sum" it totals the whole column, rather than the specific cells I want. Would appreciate any help. Thank You Francis

    I am having a problem with adding selected numbers in a column. When I select "sum" the whole column is added, not just the selected cells. I would appreciate any help how to rectify? Many thanks. Francis Anthony

    I don't know if this is the best way but it's pretty easy.
    1.) Select the cell you want the sum in.
    2.) Select the sum function
    3.) In the line where you see =sum(B2:B8) using your finger tap the B2:B8
    4.) Use the backspace key to delete the B2:B8 and it will then show "value"
    5.) You can now tap any cell you want in the sum
    6.) When finished tap the green check mark button at the end of the sum line.
    That pretty much sums it up.
    Good luck.
    Steve

  • I would appreciate your help on how to configure a gmail in a way  it  ask  for the password  everytime I connect?. In the only way I can configure it  I have to include the pw when configuring the account  and  after that  it do not ask for pw

    I would appreciate your help on how to configure a gmail in a way  it  ask  for the password  everytime I connect?. In the only way I can configure it  I have to include the pw when configuring the account  and  after that  it do not ask for pw  so  everyone that shares my iPad can  oppen my mail  with  no pw  required.
    Thank

    The iPad is designed to be a single user device, and there is currently no way to password protect the Mail app - even removing the account password from Settings > Mail, Contacts, Calendars will just prevent new mail being downloaded, it won't hide those that have already been downloaded. There is this work-around for the app : https://discussions.apple.com/message/13127632#13127632 . Also there might be third-party email apps that feature password protecting.

  • Would appreciate some help here still fairly new to MAC

    Ok I've made the mistake of installing a program called Anacron which is supposed to help with the maintenance of OS X. Well I found out after the fact that there is no need to install ANY programs for maintenance as it is all built into the OS now. So I went to uninstall it and wow has this been a headache . First off there is NO uninstaller and when following the read me file that I found to uninstall it, part of it works and part of it doesn't. This is the information to just disable it (not delete it):
    How do I disable or remove anacron?
    To disable anacron, run the following commands in a terminal:
    cd /Library/LaunchDaemons
    sudo launchctl unload -w ./anacron.plist
    cd /System/Library/LaunchDaemons
    sudo launchctl load -w ./com.apple.periodic-daily.plist
    sudo launchctl load -w ./com.apple.periodic-weekly.plist
    sudo launchctl load -w ./com.apple.periodic-monthly.plist
    The above worked, but the info which is supposed to help you delete it all together does NOT work and I would appreciate some help/comments on why it doesn't. Here is the info for deleting it:
    To completely remove anacron from your system, delete (trash):
    /usr/local/sbin/anacron
    /usr/local/share/man/man5/anacrontab.5
    /usr/local/share/man/man8/anacron.8
    /Library/LaunchDaemons/anacron.plist
    /etc/anacrontab
    /var/spool/anacron
    /Library/Receipts/Anacron.pkg
    When I use Terminal to get in there and delete that stuff, when I try and delete Anacron, I'm given a list of file attributes (I guess) .. it looks something like this:
    override rwxr-xr-x root/wheel for anacron?
    What in the world does this mean and how in the world can I get this crap deleted from my system? Seems like everything I do is not enough to get this stuff deleted.
    Thank you for your time

    "Are you borrowing some frined's account, you have lots of messages here for a guy fairly new to mac"
    No, the mac is mine, and this is my account. I still consider myself pretty new to MAC OS X. The time of me registering here is right at the same time I received my iMac which is just over a year. To me that is still pretty new I may have a buttload of posts, but that doesn't mean I know a lot about MAC OS X and the MAC computers.
    I certainly appreciate your help with this problem. It worked flawlessly. This is very much like DOS in windows......yuk, just reflecting on the past. Thank you again, sooo much. I now feel much better, what a relief.
    Edit: Oh by the way, just answering "Yes" gave me, if I remember correctly, something about forbidden. But doing it the way you described above using the sudo lines worked great and it asked me for my user password, I put it in, then everything was ok, it deleted everything I wanted it to.
    Message was edited by: QuickDraw

  • HT201301 I'm trying to convert an m4a voice note to either mp3 or wav and can't seem to get a straight answer on how to do it without a lot of jargon. Would appreciate the help.

    I'm trying to convert an m4a voice note to either mp3 or wav and can't seem to get a straight answer on how to do it without a lot of jargon. Would appreciate the help.

    Yes it does.
    Audio formats supported: AAC (8 to 320 Kbps), Protected AAC (from iTunes Store), HE-AAC, MP3 (8 to 320 Kbps), MP3 VBR, Audible (formats 2, 3, 4, Audible Enhanced Audio, AAX, and AAX+), Apple Lossless, AIFF, and WAV
    http://www.apple.com/ipad/specs/

  • I've had my new iMac for about a week now and am totally sick of Mavericks, I would appreciate any help you guys could give me to help me 'downgrade' to Mountain Lion. Thanks.

    I've had my new iMac for about a week now and am totally sick ofthe vagueries of Mavericks,
    I would appreciate any help you guys could give me to help me 'downgrade' to Mountain Lion.
    I understand that Mountain Lion has never been released on disc, so that would seem to be the major problem.
    Thanks in advance
    Roy136.

    If the Mac came pre-installed with Mavericks you can't downgrade. Have a look at mine and den.thed's comments here:
    https://discussions.apple.com/message/23946758#23946758

  • How can I reset my Mac to default settings? Or how can I reset it to a prior date? My Mac has a virus and I would like to get rid of it. I would appreciate your help concerning this matter.

    How can I reset my Mac to default settings? Or how can I reset it to a prior date? My Mac has a virus and I would like to get rid of it. I would appreciate your help concerning this matter.

    To restore it follow these instructions: What to do before selling or giving away your Mac.
    Before you do the above check out the following;
    Helpful Links Regarding Malware Problems
    If you are having an immediate problem with ads popping up see The Safe Mac » Adware Removal Guide, AdwareMedic, or Remove unwanted adware that displays pop-up ads and graphics on your Mac - Apple Support.
    Open Safari, select Preferences from the Safari menu. Click on Extensions icon in the toolbar. Disable all Extensions. If this stops your problem, then re-enable them one by one until the problem returns. Now remove that extension as it is causing the problem.
    The following comes from user stevejobsfan0123. I have made minor changes to adapt to this presentation.
    Fix Some Browser Pop-ups That Take Over Safari.
    Common pop-ups include a message saying the government has seized your computer and you must pay to have it released (often called "Moneypak"), or a phony message saying that your computer has been infected, and you need to call a tech support number (sometimes claiming to be Apple) to get it resolved. First, understand that these pop-ups are not caused by a virus and your computer has not been affected. This "hijack" is limited to your web browser. Also understand that these messages are scams, so do not pay any money, call the listed number, or provide any personal information. This article will outline the solution to dismiss the pop-up.
    Quit Safari
    Usually, these pop-ups will not go away by either clicking "OK" or "Cancel." Furthermore, several menus in the menu bar may become disabled and show in gray, including the option to quit Safari. You will likely have to force quit Safari. To do this, press Command + option + esc, select Safari, and press Force Quit.
    Relaunch Safari
    If you relaunch Safari, the page will reopen. To prevent this from happening, hold down the 'Shift' key while opening Safari. This will prevent windows from the last time Safari was running from reopening.
    This will not work in all cases. The shift key must be held at the right time, and in some cases, even if done correctly, the window reappears. In these circumstances, after force quitting Safari, turn off Wi-Fi or disconnect Ethernet, depending on how you connect to the Internet. Then relaunch Safari normally. It will try to reload the malicious webpage, but without a connection, it won't be able to. Navigate away from that page by entering a different URL, i.e. www.apple.com, and trying to load it. Now you can reconnect to the Internet, and the page you entered will appear rather than the malicious one.

  • I have a MacBook Pro and would like to play VCD, which is not a supported disc. I opend the Quicktime and it showed up in the Dock but did not get a menu. Would appreciate any help.

    I have a MacBook Pro and would like to play VCD, which is not a supported disc. I opend the Quicktime and it showed up in the Dock but did not get a menu. Would appreciate any help.

    Download a program called VLC.
    http://www.videolan.org/vlc/download-macosx.html

  • I would appreciate your help

    This week is my 8thweek of learning java and I am finding it tougher and tougher as the weeks go by. I have been working on this StudentSystem program for about a week now. I have done all I could but I am left with one part which I am finding it tough to handle.
    I would appreciate if a good samaritan could add this code for me. I am at my wits end.
    The program I am trying to write is supposed to add students with their personal information and then display them in a GUI.
    I should be able to select a student and add a grade for that student.
    Finally I should be able to get the average for all the grades added for this student and display the average grade.
    My challenge is how to obtain all the added scores and show the students average in a new model.
    I was thinking of adding a "Get Average" button , which will pop up a new window(Average) displaying the average of all the scores for the Student.
    I just can't figure how to link this average display window to the Get Average button.
    A student can have any number of grades.
    Your help will be very much appreciated
    Thanks in advance
    Little Delmarie.
    THIS IS WHAT I HAVE DONE SO FAR . IT COMPILES nicely in DOS and Visual age
    // CODE GradeSystem
    import java.util.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.event.*;
    import java.awt.*;
    * UsingJLists.java
    * This is a sample program for the use of JLists. You can add a student by entering their
    * information a clicking on add. You can remove a student by entering their information and
    * clicking on remove. They must be in the list to be removed. You can modify a student by
    * entering their information and clicking add. You will be asked for the new student
    * information when using modify. The add and remove buttons will disappear when modifying
    * is underway and the new information is being collected for updating.
    * @author Delmarie
    public class GradeSystem extends JDialog {
    Vector studentGrades = new Vector();
    JButton add, modify, remove;
    JList theJList;
    JPanel buttonPanel, textPanel, labelPanel, masterPanel, jlistPanel, infoPanel;
    JTextField score, possibleScore, gradeType;
    JLabel label1, label2, label3;
    public class ModifyHandler implements ActionListener {
    public void actionPerformed(java.awt.event.ActionEvent actionEvent) {
    // get the student info from the text boxes
    double dScore = 0;
    double dPossibleScore = 0;
    try {
    String str1 = score.getText();
    if (str1 != null) dScore = Double.parseDouble(str1);
    String str2 = possibleScore.getText();
    if (str2 != null) dPossibleScore = Double.parseDouble(str2);
    catch(NumberFormatException e) {}
    String sGradeType = gradeType.getText();
    Grade grade = (Grade)theJList.getSelectedValue();
    if (grade == null) {
    score.setText("");
    possibleScore.setText("");
    gradeType.setText("");
    return;
    grade.setScore(dScore);
    grade.setPossibleScore(dPossibleScore);
    grade.setGradeType(sGradeType);
    theJList.repaint();
    public class RemoveHandler implements ActionListener {
    public void actionPerformed(java.awt.event.ActionEvent actionEvent) {
    int removeIndex = theJList.getSelectedIndex();
    if (removeIndex == -1) {
    score.setText("");
    possibleScore.setText("");
    gradeType.setText("");
    return;
    DefaultListModel model = (DefaultListModel) theJList.getModel();
    model.removeElementAt(removeIndex);
    studentGrades.removeElementAt(removeIndex);
    // clear the textboxes
    score.setText("");
    possibleScore.setText("");
    gradeType.setText("");
    public class AddHandler implements ActionListener {
    public void actionPerformed(ActionEvent actionEvent) {
    // get the student info from the text boxes
    double dScore = 0;
    double dPossibleScore = 0;
    try {
    String str1 = score.getText();
    if (str1 != null) dScore = Double.parseDouble(str1);
    String str2 = possibleScore.getText();
    if (str2 != null) dPossibleScore = Double.parseDouble(str2);
    catch(NumberFormatException e) {}
    String sGradeType = gradeType.getText();
    // get the model and add the student to the model
    Grade g = new Grade();
    g.setScore(dScore);
    g.setPossibleScore(dPossibleScore);
    g.setGradeType(sGradeType);
    studentGrades.add(g);
    DefaultListModel model = (DefaultListModel) theJList.getModel();
    model.addElement(g);
    // display the added element
    theJList.setSelectedValue(g, true);
    public class WindowHandler extends WindowAdapter {
    public void windowClosing(WindowEvent e) {
    setVisible(false);
    /** Creates a new instance of UsingJLists */
    public GradeSystem(JFrame owner, boolean modal) {
    super(owner, modal);
    // create all of the components, put them in panels, and put the panels in JFrame
    add = new JButton("Add");
    modify = new JButton("Modify");
    remove = new JButton("Remove");
    score = new JTextField("");
    score.setColumns(10);
    possibleScore = new JTextField("");
    gradeType = new JTextField("");
    label1 = new JLabel("score");
    label2 = new JLabel("possibleScore");
    label3 = new JLabel("gradeType");
    FlowLayout flow = new FlowLayout();
    FlowLayout flow1 = new FlowLayout();
    FlowLayout flow2 = new FlowLayout();
    GridLayout grid1 = new GridLayout(7,1);
    GridLayout grid2 = new GridLayout(7,1);
    BorderLayout border3 = new BorderLayout();
    buttonPanel = new JPanel(flow);
    buttonPanel.add(add);
    buttonPanel.add(modify);
    buttonPanel.add(remove);
    labelPanel = new JPanel(grid1);
    //labelPanel.setBorder(BorderFactory.createLineBorder(Color.black));
    labelPanel.add(Box.createVerticalStrut(20));
    labelPanel.add(label1);
    labelPanel.add(Box.createVerticalStrut(20));
    labelPanel.add(label2);
    labelPanel.add(Box.createVerticalStrut(20));
    labelPanel.add(label3);
    labelPanel.add(Box.createVerticalStrut(20));
    textPanel = new JPanel(grid2);
    //textPanel.setBorder(BorderFactory.createLineBorder(Color.black));
    textPanel.add(Box.createVerticalStrut(20));
    textPanel.add(score);
    textPanel.add(Box.createVerticalStrut(20));
    textPanel.add(possibleScore);
    textPanel.add(Box.createVerticalStrut(20));
    textPanel.add(gradeType);
    textPanel.add(Box.createVerticalStrut(20));
    infoPanel = new JPanel(new FlowLayout());
    infoPanel.setBorder(BorderFactory.createTitledBorder("Grade Information"));
    infoPanel.add(Box.createHorizontalStrut(10));
    infoPanel.add(textPanel);
    infoPanel.add(Box.createHorizontalStrut(10));
    infoPanel.add(labelPanel);
    infoPanel.add(Box.createHorizontalStrut(10));
    theJList = new JList(new DefaultListModel());
    theJList.addListSelectionListener(new javax.swing.event.ListSelectionListener(){
    public void valueChanged(ListSelectionEvent evt) {
    Grade grade = (Grade)theJList.getSelectedValue();
    if (grade == null) {
    score.setText("");
    possibleScore.setText("");
    gradeType.setText("");
    return;
    score.setText(Double.toString(grade.getScore()));
    possibleScore.setText(Double.toString(grade.getPossibleScore()));
    gradeType.setText(grade.getGradeType());
    //JLabel theLabel = new JLabel("Students");
    jlistPanel = new JPanel(border3);
    jlistPanel.setBorder(BorderFactory.createTitledBorder("List of Scores"));
    jlistPanel.add(new JScrollPane(theJList));//, BorderLayout.SOUTH);
    masterPanel = new JPanel(new GridLayout(1, 2));
    masterPanel.setBorder(BorderFactory.createLineBorder(Color.black));
    // masterPanel.add(Box.createHorizontalStrut(10));
    masterPanel.add(infoPanel);
    // masterPanel.add(Box.createHorizontalStrut(10));
    masterPanel.add(jlistPanel);
    // masterPanel.add(Box.createHorizontalStrut(10));
    BorderLayout border = new BorderLayout();
    this.getContentPane().setLayout(border);
    Container theContainer = this.getContentPane();
    theContainer.add(buttonPanel,BorderLayout.SOUTH);
    theContainer.add(masterPanel, BorderLayout.CENTER);
    // now add the event handlers for the buttons
    AddHandler handleAdd = new AddHandler();
    ModifyHandler handleModify = new ModifyHandler();
    RemoveHandler handleRemove = new RemoveHandler();
    add.addActionListener(handleAdd);
    modify.addActionListener(handleModify);
    remove.addActionListener(handleRemove);
    // add the event handler for the window events
    WindowHandler handleWindow = new WindowHandler();
    this.addWindowListener(handleWindow);
    setSize(600,300);
    * Insert the method's description here.
    * Creation date: (2/24/03 4:20:07 PM)
    * @param v com.sun.java.util.collections.Vector
    public void setStudentGrades(Vector v) {
    studentGrades = v;
    DefaultListModel model = (DefaultListModel) theJList.getModel();
    model.removeAllElements();
    int size = v.size();
    for (int i = 0; i < size; i++) {
    model.addElement(v.get(i));
    score.setText("");
    possibleScore.setText("");
    gradeType.setText("");
    setVisible(true);
    // CODE2 StudentSystem
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.event.*;
    import java.awt.*;
    * UsingJLists.java
    * This is a sample program for the use of JLists. You can add a student by entering their
    * information a clicking on add. You can remove a student by entering their information and
    * clicking on remove. They must be in the list to be removed. You can modify a student by
    * entering their information and clicking add. You will be asked for the new student
    * information when using modify. The add and remove buttons will disappear when modifying
    * is underway and the new information is being collected for updating.
    * @author Delmarie
    public class StudentSystem extends JFrame {
    StudentGradeBook studentGradeBook = new StudentGradeBook();
    GradeSystem gradeSystem = new GradeSystem(this, true);
    JButton add, modify, remove, bGrade;
    JList theJList;
    JPanel buttonPanel, textPanel, labelPanel, masterPanel, jlistPanel, infoPanel;
    JTextField name, address, email, phone, courseName, courseDescription;
    JLabel label1, label2, label3;
    StudentSystem tempObjectRef; // used to hold a class level reference to object for dispose
    boolean getStudentInfo = false;
    int saveIndexInObject;
    public class ModifyHandler implements ActionListener {
    public void actionPerformed(java.awt.event.ActionEvent actionEvent) {
    // get the information for the student to modify
    String studentName = name.getText();
    String studentAddress = address.getText();
    String studentEmail = email.getText();
    if (!getStudentInfo) {  // set up to get student info
    // find the correct element of the model to remove and save in class variable
    int removeIndex = -1;
    DefaultListModel model = (DefaultListModel) theJList.getModel();
    for (int i = 0; i < model.size(); i++) {
    String temp = (String) model.elementAt(i);
    if (temp.equals(name.getText())) {
    removeIndex = i;
    break;
    saveIndexInObject = removeIndex;
    if (removeIndex == -1) return;
    // change the text on the border of the info box
    infoPanel.setBorder(BorderFactory.createTitledBorder("Enter new Student Info"));
    // set up to get the modified info and remove some of the buttons
    getStudentInfo = true;
    buttonPanel.removeAll();
    buttonPanel.add(modify);
    buttonPanel.add(bGrade);
    buttonPanel.repaint();
    else { 
    // reset the border and change the element at the provided index (from if above)
    getStudentInfo = false;
    infoPanel.setBorder(BorderFactory.createTitledBorder("Student Information"));
    DefaultListModel model = (DefaultListModel) theJList.getModel();
    model.setElementAt(name.getText(), saveIndexInObject);
    Student student = studentGradeBook.findStudent(saveIndexInObject);
    student.setName(name.getText());
    student.setAddress(address.getText());
    student.setEmail(email.getText());
    student.setPhone(phone.getText());
    student.setCourseName(courseName.getText());
    student.setCourseDescription(courseDescription.getText());
    // clear the textboxes
    name.setText("");
    address.setText("");
    email.setText("");
    phone.setText("");
    courseName.setText("");
    courseDescription.setText("");
    // restore all of the buttons
    buttonPanel.removeAll();
    buttonPanel.add(add);
    buttonPanel.add(modify);
    buttonPanel.add(remove);
    buttonPanel.add(bGrade);
    buttonPanel.repaint();
    public class RemoveHandler implements ActionListener {
    public void actionPerformed(java.awt.event.ActionEvent actionEvent) {
    // get the student info from the text boxes
    String studentName = name.getText();
    String studentAddress = address.getText();
    String studentEmail = email.getText();
    // find the element to remove by name (you could use email address etc also)
    int removeIndex = -1; // = theJList.getSelectedIndex();
    DefaultListModel model = (DefaultListModel) theJList.getModel();
    for (int i = 0; i < model.size(); i++) {
    String temp = (String) model.elementAt(i);
    if (temp.equals(name.getText())) {
    removeIndex = i;
    break;
    if (removeIndex == -1) return;
    // remove the element at the index from the for loop
    model.removeElementAt(removeIndex);
    Student student = studentGradeBook.findStudent(removeIndex);
    studentGradeBook.removeStudent(student);
    // clear the textboxes
    name.setText("");
    address.setText("");
    email.setText("");
    phone.setText("");
    courseName.setText("");
    courseDescription.setText("");
    public class AddHandler implements ActionListener {
    public void actionPerformed(java.awt.event.ActionEvent actionEvent) {
    // get the student info from the text boxes
    String studentName = name.getText();
    String studentAddress = address.getText();
    String studentEmail = email.getText();
    String studentPhone = phone.getText();
    String studentCourseName = courseName.getText();
    String studentCourseDescription = courseDescription.getText();
    // get the model and add the student to the model
    studentGradeBook.addStudent(studentName, studentAddress, studentEmail, studentPhone,
    studentCourseName, studentCourseDescription);
    DefaultListModel model = (DefaultListModel) theJList.getModel();
    model.addElement(studentName);
    // reset the text boxes
    name.setText("");
    address.setText("");
    email.setText("");
    phone.setText("");
    courseName.setText("");
    courseDescription.setText("");
    public class WindowHandler extends WindowAdapter {
    public void windowClosing(WindowEvent e) {
    gradeSystem.dispose();
    tempObjectRef.dispose();
    System.exit(0);
    /** Creates a new instance of UsingJLists */
    public StudentSystem() {
    // create all of the components, put them in panels, and put the panels in JFrame
    add = new JButton("Add");
    modify = new JButton("Modify");
    remove = new JButton("Remove");
    bGrade = new JButton("Grades");
    name = new JTextField("");
    name.setColumns(10);
    address = new JTextField("");
    email = new JTextField("");
    phone = new JTextField("");
    courseName = new JTextField("");
    courseDescription = new JTextField("");
    label1 = new JLabel("name");
    label2 = new JLabel("address");
    label3 = new JLabel("email");
    JLabel label4 = new JLabel("phone");
    JLabel label5 = new JLabel("courseName");
    JLabel label6 = new JLabel("courseDescription");
    FlowLayout flow = new FlowLayout();
    FlowLayout flow1 = new FlowLayout();
    FlowLayout flow2 = new FlowLayout();
    GridLayout grid1 = new GridLayout(13,1);
    GridLayout grid2 = new GridLayout(13,1);
    BorderLayout border3 = new BorderLayout();
    buttonPanel = new JPanel(flow);
    buttonPanel.add(add);
    buttonPanel.add(modify);
    buttonPanel.add(remove);
    buttonPanel.add(bGrade);
    bGrade.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent evt) {
    int index = theJList.getSelectedIndex();
    if (index == -1) return;
    Student student = studentGradeBook.findStudent(index);
    gradeSystem.setStudentGrades(student.getStudentGrades());
    labelPanel = new JPanel(grid1);
    //labelPanel.setBorder(BorderFactory.createLineBorder(Color.black));
    labelPanel.add(Box.createVerticalStrut(20));
    labelPanel.add(label1);
    labelPanel.add(Box.createVerticalStrut(20));
    labelPanel.add(label2);
    labelPanel.add(Box.createVerticalStrut(20));
    labelPanel.add(label3);
    labelPanel.add(Box.createVerticalStrut(20));
    labelPanel.add(label4);
    labelPanel.add(Box.createVerticalStrut(20));
    labelPanel.add(label5);
    labelPanel.add(Box.createVerticalStrut(20));
    labelPanel.add(label6);
    labelPanel.add(Box.createVerticalStrut(20));
    textPanel = new JPanel(grid2);
    //textPanel.setBorder(BorderFactory.createLineBorder(Color.black));
    textPanel.add(Box.createVerticalStrut(20));
    textPanel.add(name);
    textPanel.add(Box.createVerticalStrut(20));
    textPanel.add(address);
    textPanel.add(Box.createVerticalStrut(20));
    textPanel.add(email);
    textPanel.add(Box.createVerticalStrut(20));
    textPanel.add(phone);
    textPanel.add(Box.createVerticalStrut(20));
    textPanel.add(courseName);
    textPanel.add(Box.createVerticalStrut(20));
    textPanel.add(courseDescription);
    textPanel.add(Box.createVerticalStrut(20));
    infoPanel = new JPanel(new FlowLayout());
    infoPanel.setBorder(BorderFactory.createTitledBorder("Student Information"));
    infoPanel.add(Box.createHorizontalStrut(10));
    infoPanel.add(textPanel);
    infoPanel.add(Box.createHorizontalStrut(10));
    infoPanel.add(labelPanel);
    infoPanel.add(Box.createHorizontalStrut(10));
    theJList = new JList(new DefaultListModel());
    theJList.addListSelectionListener(new javax.swing.event.ListSelectionListener(){
    public void valueChanged(ListSelectionEvent evt) {
    int index = theJList.getSelectedIndex();
    if (index == -1) return;
    Student student = studentGradeBook.findStudent(index);
    name.setText(student.getName());
    address.setText(student.getAddress());
    email.setText(student.getEmail());
    phone.setText(student.getPhone());
    courseName.setText(student.getCourseName());
    courseDescription.setText(student.getCourseDescription());
    //JLabel theLabel = new JLabel("Students");
    jlistPanel = new JPanel(border3);
    jlistPanel.setBorder(BorderFactory.createTitledBorder("List of Students"));
    jlistPanel.add(new JScrollPane(theJList), BorderLayout.SOUTH);
    masterPanel = new JPanel(flow1);
    masterPanel.setBorder(BorderFactory.createLineBorder(Color.black));
    masterPanel.add(Box.createHorizontalStrut(10));
    masterPanel.add(infoPanel);
    masterPanel.add(Box.createHorizontalStrut(10));
    masterPanel.add(jlistPanel);
    masterPanel.add(Box.createHorizontalStrut(10));
    BorderLayout border = new BorderLayout();
    this.getContentPane().setLayout(border);
    Container theContainer = this.getContentPane();
    theContainer.add(buttonPanel,BorderLayout.SOUTH);
    theContainer.add(masterPanel, BorderLayout.NORTH);
    // now add the event handlers for the buttons
    AddHandler handleAdd = new AddHandler();
    ModifyHandler handleModify = new ModifyHandler();
    RemoveHandler handleRemove = new RemoveHandler();
    add.addActionListener(handleAdd);
    modify.addActionListener(handleModify);
    remove.addActionListener(handleRemove);
    // add the event handler for the window events
    WindowHandler handleWindow = new WindowHandler();
    this.addWindowListener(handleWindow);
    // make the frame visible and set its size and show it.
    this.setVisible(true);
    this.pack();//setSize(600,300);
    this.show();
    public static void main (String [] args) {
    StudentSystem mainObject = new StudentSystem();
    mainObject.setTempObjectRef(mainObject);
    public void setTempObjectRef(StudentSystem obj) {
    // set up a reference to this object for use in closing the window method dispose
    tempObjectRef = obj;
    // CODE 3 Student
    import java.util.*;
    * Insert the type's description here.
    * Creation date: (2/24/03 11:23:58 AM)
    * @author: Delmarie
    public class Student {
    private String name, address, phone, email, courseName, courseDescription;
    private Vector studentGrades;
    * Student constructor comment.
    public Student() {
    studentGrades = new Vector();
    * Insert the method's description here.
    * Creation date: (2/24/03 11:39:56 AM)
    * @param score double
    * @param possibleScore double
    * @param gradeType java.lang.String
    public void addGrade(double score, double possibleScore, String gradeType) {
    Grade g = new Grade();
    g.setScore(score);
    g.setPossibleScore(possibleScore);
    g.setGradeType(gradeType);
    studentGrades.add(g);
    * Insert the method's description here.
    * Creation date: (2/24/03 11:47:01 AM)
    * @return Grade
    * @param index int
    public Grade findGrade(int index) {
    return (Grade)studentGrades.get(index);
    * Insert the method's description here.
    * Creation date: (2/24/03 11:28:57 AM)
    * @return java.lang.String
    public java.lang.String getAddress() {
    return address;
    * Insert the method's description here.
    * Creation date: (2/24/03 11:28:57 AM)
    * @return java.lang.String
    public java.lang.String getCourseDescription() {
    return courseDescription;
    * Insert the method's description here.
    * Creation date: (2/24/03 11:28:57 AM)
    * @return java.lang.String
    public java.lang.String getCourseName() {
    return courseName;
    * Insert the method's description here.
    * Creation date: (2/24/03 11:28:57 AM)
    * @return java.lang.String
    public java.lang.String getEmail() {
    return email;
    * Insert the method's description here.
    * Creation date: (2/24/03 11:48:03 AM)
    * @return java.util.Iterator
    public Iterator getGradeIterator() {
    return studentGrades.iterator();
    * Insert the method's description here.
    * Creation date: (2/24/03 11:28:57 AM)
    * @return java.lang.String
    public java.lang.String getName() {
    return name;
    * Insert the method's description here.
    * Creation date: (2/24/03 11:28:57 AM)
    * @return java.lang.String
    public java.lang.String getPhone() {
    return phone;
    * Insert the method's description here.
    * Creation date: (2/25/03 10:56:13 AM)
    * @return java.util.Vector
    public java.util.Vector getStudentGrades() {
    return studentGrades;
    * Insert the method's description here.
    * Creation date: (2/24/03 11:41:52 AM)
    * @param grade Grade
    public void removeGrade(Grade grade) {
    studentGrades.remove(grade);
    * Insert the method's description here.
    * Creation date: (2/24/03 11:28:57 AM)
    * @param newAddress java.lang.String
    public void setAddress(java.lang.String newAddress) {
    address = newAddress;
    * Insert the method's description here.
    * Creation date: (2/24/03 11:28:57 AM)
    * @param newCourseDescription java.lang.String
    public void setCourseDescription(java.lang.String newCourseDescription) {
    courseDescription = newCourseDescription;
    * Insert the method's description here.
    * Creation date: (2/24/03 11:28:57 AM)
    * @param newCourseName java.lang.String
    public void setCourseName(java.lang.String newCourseName) {
    courseName = newCourseName;
    * Insert the method's description here.
    * Creation date: (2/24/03 11:28:57 AM)
    * @param newEmail java.lang.String
    public void setEmail(java.lang.String newEmail) {
    email = newEmail;
    * Insert the method's description here.
    * Creation date: (2/24/03 11:28:57 AM)
    * @param newName java.lang.String
    public void setName(java.lang.String newName) {
    name = newName;
    * Insert the method's description here.
    * Creation date: (2/24/03 11:28:57 AM)
    * @param newPhone java.lang.String
    public void setPhone(java.lang.String newPhone) {
    phone = newPhone;
    * Insert the method's description here.
    * Creation date: (2/25/03 10:56:13 AM)
    * @param newStudentGrades java.util.Vector
    public void setStudentGrades(Vector newStudentGrades) {
    studentGrades = newStudentGrades;
    //CODE 4 StudentGradeBook
    import java.util.*;
    * Insert the type's description here.
    * Creation date: (2/24/03 11:50:35 AM)
    * @author: delmarie
    public class StudentGradeBook {
    private Vector allStudents;
    * StudentGradeBook constructor comment.
    public StudentGradeBook() {
    allStudents = new Vector();
    * Insert the method's description here.
    * Creation date: (2/24/03 11:54:01 AM)
    * @param name java.lang.String
    * @param address java.lang.String
    * @param email java.lang.String
    * @param phone java.lang.String
    public void addStudent(String name, String address, String email, String phone) {
    Student student = new Student();
    student.setName(name);
    student.setAddress(address);
    student.setEmail(email);
    student.setPhone(phone);
    allStudents.add(student);
    * Insert the method's description here.
    * Creation date: (2/24/03 11:54:01 AM)
    * @param name java.lang.String
    * @param address java.lang.String
    * @param email java.lang.String
    * @param phone java.lang.String
    public void addStudent(String name, String address, String email, String phone,
    String courseName, String courseDescription) {
    Student student = new Student();
    student.setName(name);
    student.setAddress(address);
    student.setEmail(email);
    student.setPhone(phone);
    student.setCourseName(courseName);
    student.setCourseDescription(courseDescription);
    allStudents.add(student);
    * Insert the method's description here.
    * Creation date: (2/24/03 12:00:53 PM)
    * @param index Student
    public Student findStudent(int index) {
    return (Student)allStudents.get(index);
    * Insert the method's description here.
    * Creation date: (2/24/03 12:02:43 PM)
    * @return java.util.Iterator
    public Iterator getStudentIterator() {
    return allStudents.iterator();
    * Insert the method's description here.
    * Creation date: (2/24/03 11:59:41 AM)
    * @pa

    First of all, this is an extremely advanced project for someone only having 8 weeks of experience. I'm not sure what the "real story" (e.g., the professor teaching the course majored in Public Speaking, student told counselor that she could handle skipping the preliminary course, student transferring from college that used another language as the core language) is but I'll give you my 2 cents anyway.
    Suggestions:
    I personally would start over keeping the following in mind.
    1.) Write a student class that encapsulates/holds the student's personal information, history of grades, computes average and whatever eles is needed from the student.
    --the history of grades can be stored in any list structure, preferably some sort of array, since all you going to do with them is average them.
    2.) Keep your window display as simple as possible. Basically from my understanding you'll need at a minimum:
    JTextField First_Name, Last_Name, Street_Address, City, State, Zip, Average_Grade;
    You can either have labels for these or fill them in with their respective labels if they are empty.
    JButton New, Average, Add
    I don't know the components name, but I'm sure Java has some sort of drop down list that you will need so you can add students' names to it as they are added.
    The following is a scenario of how this will come together, initially assuming there are no students:
    Your program starts with all the JTextFields containing their repsective labels and grayed out, it's an option or method in JTextField. The drop down list is empty. The teacher has to press the New button, at which time the grayed out text fields become editable. Teacher completes filling out the form and presses the Add button. At this point, your program gathers the information from the text fields (First_Name, Last_Name...) and instantiates or creates a new Student object from your Student class and adds the student name to the drop down list. Now that the new Student object has been created and constructed, you need to store it in you lists structure for later retrieval or writing to disk later.
    Now there is a student in the database. So the teacher comes along and wants to average Davey's grades. The teacher goes to the dropdown list and selects Davey's name, which triggers an event in you program. You retrieve the name of the student from your window's drop down list, pull the Student record from your list structure, ask it for the average grade and populate the other text fields in your window with the records information (First_Name, Last_Name, Address...). The Average_Grade text field is made editable and the value of getAverage from the Student object is inserted. The chain of envents keep rolling much in the same manner.
    If you made it this far and much of what I said is confusing, then I believe you are in over your head and I'm sorry. If much of what I said sounds similar to what you have or at least you understand a majority of what I said, then let me comment on where you started going awry.
    Regarding this project, I believe you envisioned each chain of events spawning a new window, such as user clicks the New button so your program would spawn a new window titled "Enter new Student Information."
    You can represent all the task and modes required in this project using a single window display by manipulating the components within the window. If you are looking at a window and suddenly a text box is grayed out, the program is sending a signal to you that its mode has changed.
    I hope this helps and good luck.

  • Hi, I've a Power Mac (7200/120) and like to convert regional files into windows. English files are ok but am haveing problems with files that was written in Bengali version using Bengalics(font) I would appreciate ur help.s

    Hi, I'm new to this forum want help from you...
    I've a Power Mac (7200/120) & been using for almost 10 years. Now the light of the Monitor is fadeing within five min. I've huge files
    written in Bengali Language with a font named BengaliCS. I want to convert this files to Windows so that I can edit those files into
    window. I heard there are softwares that convert Mac to Window but don't know they can convert to regional language.
    I would appreciate if one can help me on this.
    thanks

    chand@007 wrote:
    I've huge files
    written in Bengali Language with a font named BengaliCS. I want to convert this files to Windows so that I can edit those files into
    window.
    You need to tell us A) what app did you create those files with? and B) what format are they in (.doc, .txt, etc)?
    It may be possible to just transfer the files and your font to another machine without conversion depending on how they were made.
    Where did you get the BengaliCS font?

  • I have a huge mess I would appreciate any help possible with Itunes!

    I've had Itunes forever now and it's been fine. With this last upgrade, it's created some problems. Half of my new playlists created have disappeared. The music is still there in the library, just the playlists are gone which was enough to fill a 60 gb ipod. Itunes now reads at the bottom I have 1022 GB of music - my hard drive is 250gb so that's obviously incorrect. My iphone will not recognize my calendar or my contacts in Office 2003 with all updates - so basically it's hosed. Someone had given me a link to uninstall it which I did. I restarted. Then I uninstalled apple mobile something or other and restarted. Then I deleted the itunes folder from program files emptied recycle bin and then restarted. I then proceeded to re-download and install itunes. I went through the hour process of uninstall and restart then install. I get everything finished and open itunes expecting to see a fresh clean slate and it's exactly the same. What did I do wrong since I followed these instructions at the bottom for uninstalling http://docs.info.apple.com/article.html?artnum=305845
    I need help. I figure at this point I'll take my losses with my playlists I have spent years building just to have everything working again. I appreciate any help you can give.

    Assume you mean "invitations" and not "innovations"?
    If you have pages 4, just do File > New From Template Chooser and select Invitations under the Page Layout category.

Maybe you are looking for

  • Can multiple  hosts exist on single instance

    Hi B2B gurus, I would like to present a scenario i am trying to work out. Lets say there are 2 buyers B1 and B2 And 2 suppliers S1 and S2. The buyers send a PO to the supplier and the lets say the Supplier sends an Invoice to the Buyer. Also there ar

  • Error Undeploying a EAR File Containing Resource Adapter

    Hi, I am trying to undeploy a ear file that contains a 1) one inbound R.A(resource adapter), 2) one outbound R.A and 3) few EJBs. The undeploy command "java -jar admin.jar undelpoy..." executes without any error, however the thread process started by

  • HELP I cant install itunes 10.5 on Vista

    My husband is going to kill me...I was trying to update iTunes so I could update my iPad and I kept getting the same error message, "The installer has insufficient priviledges to modify this file: C\programfile\apple software update\softwareupdate.re

  • How to Rename WT Text?

    Hi Please rename the wage type XXXX-" Anniversary gift HAIL" as  "Retention Bonus u2013 HAIL" as we are not using wage type XXXX. So for the above, What all the steps do I need follow.Can you please assist me. Thanks, Spaul.

  • User Crontab not started automaticaly

    Dear all I have following problem with my "user" crontabs: OD Master (OS 10.5.1) with different users defined. I log into that server with ssh with a "user" account (not admin). I define an cron job with crontab -e. Everything now works like expected