Introduction | p. 1 |
Java Development Overview | p. 5 |
Why Java? | p. 5 |
Why Object-Oriented Development? | p. 6 |
Benefits | p. 7 |
Java History Lesson | p. 8 |
Java Versions | p. 8 |
What Is Java 2? | p. 9 |
So How Do I Get Started? | p. 9 |
Applet Versus Application | p. 10 |
The Stock Tracker Application | p. 11 |
Getting Up and Running | p. 13 |
Your First Java Application | p. 14 |
Online Documentation | p. 20 |
Summary | p. 21 |
Next Steps | p. 23 |
Design Fundamentals | p. 25 |
When to Spend Time on Design | p. 25 |
Completeness | p. 26 |
Expandability | p. 27 |
Maintainability | p. 28 |
Requirements | p. 28 |
Design Methodologies | p. 28 |
Waterfall Method | p. 28 |
Iterative Process | p. 30 |
Use Cases | p. 33 |
Class Diagrams | p. 38 |
Interaction Diagrams | p. 40 |
User Interface Design | p. 42 |
Summary | p. 44 |
What's Next? | p. 44 |
Designing the Stock Tracker Application | p. 45 |
The Vision | p. 46 |
Brainstorming | p. 47 |
Developing Use Cases | p. 48 |
Main Features | p. 48 |
Startup | p. 50 |
Shutdown | p. 51 |
Refining Use Cases | p. 51 |
Main Features | p. 51 |
Startup | p. 68 |
Shutdown | p. 69 |
Deriving Clases | p. 72 |
Brainstorming | p. 72 |
StockData | p. 74 |
Portfolio | p. 77 |
PortfolioManager | p. 78 |
InternetManager | p. 79 |
HTMLParser | p. 80 |
StockQuoteRetriever | p. 82 |
HistoricalDataManager | p. 82 |
Timer | p. 83 |
GraphingManager | p. 84 |
CSVManager | p. 85 |
FileManager | p. 86 |
Application | p. 86 |
Summary | p. 87 |
What's Next? | p. 87 |
User Interface Design with AWT | p. 89 |
Abstract Window Toolkit (AWT) | p. 90 |
Labels | p. 90 |
Buttons | p. 100 |
Text Fields | p. 103 |
Text Areas | p. 106 |
Check Boxes | p. 110 |
Choice Lists | p. 114 |
Layout Managers | p. 117 |
Summary | p. 143 |
What's Next? | p. 144 |
User Interface Design with Swing | p. 145 |
Introduction to JFC and Swing | p. 146 |
Structure of a Swing Application | p. 147 |
Setting Up a Swing Application | p. 150 |
Importing the Swing Packages | p. 151 |
Setting Up a Heavyweight Container | p. 152 |
Setting Up a Lightweight Container | p. 153 |
Building User Interfaces Using Components | p. 155 |
Adding Components to the Lightweight Container | p. 155 |
JComponent | p. 156 |
Labels | p. 158 |
Text Components | p. 166 |
Caret Changes | p. 166 |
Commands | p. 166 |
Key Maps | p. 166 |
Model/View Split | p. 167 |
Location Information | p. 168 |
Undo/Redo Support | p. 168 |
Thread Safety | p. 168 |
Text Fields | p. 169 |
Text Areas | p. 180 |
Buttons | p. 186 |
JButton | p. 186 |
JRadioButton | p. 187 |
JCheckBox | p. 188 |
A Button Example | p. 189 |
Lists | p. 194 |
Tables | p. 202 |
Panes | p. 210 |
Tabbed Panes | p. 210 |
Scroll Panes | p. 214 |
Split Panes | p. 214 |
Summary | p. 218 |
What's Next? | p. 219 |
Handling Events in Your User Interface | p. 221 |
What Are Events? | p. 222 |
Types of Events | p. 222 |
Event Methodology | p. 223 |
JFC Event Listeners | p. 225 |
JFC Events | p. 226 |
Action Events | p. 228 |
Adjustment Events | p. 233 |
Focus Events | p. 238 |
Item Events | p. 243 |
Keyboard Events | p. 247 |
Mouse Events | p. 252 |
Mouse Motion Events | p. 259 |
Window Events | p. 263 |
Summary | p. 265 |
What's Next | p. 265 |
Building the Stock Tracker User Interface | p. 267 |
Designing the Stock Tracker User Interface | p. 267 |
Paper Design | p. 269 |
Java Components | p. 272 |
Nested Layout Managers | p. 277 |
Panels | p. 279 |
Implementing the Stock Tracker User Interface | p. 280 |
Stock Table Panel | p. 280 |
Portfolio Totals Panel | p. 296 |
Stock Table Tab Panel | p. 298 |
Ticker List Panel | p. 308 |
Stock Graph Panel | p. 311 |
Graph Tab Panel | p. 315 |
Stock Tab Panel | p. 321 |
Portfolio List Panel | p. 324 |
Main Menu | p. 329 |
Stock Application | p. 338 |
Summary | p. 344 |
What's Next? | p. 344 |
Implementing Portfolios | p. 345 |
Component Relationships | p. 346 |
Implementation Decisions | p. 347 |
File Strategy | p. 347 |
Portfolio File Management | p. 351 |
What Is a Data Structure? | p. 352 |
Data Structures Provided with Java | p. 353 |
Array | p. 355 |
Vector | p. 356 |
Stack | p. 356 |
Linked List | p. 356 |
Set | p. 357 |
Map | p. 357 |
Hashtable | p. 357 |
Trees | p. 358 |
Our Strategy | p. 359 |
Package Strategy | p. 360 |
Stock Data | p. 362 |
Portfolio | p. 374 |
Portfolio Manager | p. 381 |
Integrating Classes into the User Interface | p. 390 |
Portfolio List Panel | p. 391 |
Stock Table Panel | p. 392 |
Ticker List Panel | p. 399 |
Graph Tab Panel | p. 401 |
Main Menu | p. 401 |
Stock Application | p. 402 |
Summary | p. 410 |
What's Next? | p. 411 |
Implementing the Stock Quote Retriever | p. 413 |
Component Relationships | p. 414 |
Implementation Decisions | p. 415 |
Internet Strategy | p. 415 |
HTML Parsing Strategy | p. 421 |
Threading Strategy | p. 422 |
Event Notification Strategy | p. 425 |
Package Strategy | p. 431 |
Internet Manager | p. 432 |
HTML Parser | p. 435 |
Stock Quote Retriever | p. 442 |
Integrating the New Classes into the User Interface | p. 454 |
Stock Data Updates | p. 454 |
Portfolio Manager Updates | p. 455 |
Stock Application Updates | p. 461 |
Summary | p. 463 |
What's Next? | p. 463 |
Retrieving Stock Quotes on a Fixed Time Interval | p. 465 |
Use Cases | p. 465 |
UC10: Set a Timer to Retrieve Stock Quotes at a Specific Interval | p. 466 |
UC11: Retrieve Stock Quotes at the Set Interval | p. 466 |
Timer Responsibilities | p. 467 |
Component Relationships | p. 467 |
Implementation Decisions | p. 468 |
Swing Timer | p. 468 |
Configuring the Timer | p. 470 |
Building the Timer Configuration Dialog Box | p. 472 |
Integrating the Timer with the User Interface | p. 476 |
Summary | p. 480 |
What's Next? | p. 480 |
Implementing the Historical Data Manager | p. 481 |
Use Cases | p. 481 |
Implementation Decisions | p. 482 |
Data Source | p. 482 |
Modified CSV Parsing | p. 483 |
Persistence Strategy | p. 486 |
Existing Components | p. 489 |
Historical Data Manager | p. 490 |
Historical Data Tester | p. 499 |
Summary | p. 504 |
What's Next? | p. 504 |
Graphing Historical Data | p. 505 |
Use Cases | p. 505 |
Component Relationships | p. 506 |
Painting Primer | p. 507 |
Implementation Decisions | p. 509 |
Painting in Java | p. 510 |
Scaling Points | p. 512 |
Drawing Strategy | p. 517 |
Multithreading | p. 519 |
Internet Strategy | p. 520 |
Stock Graph Panel | p. 520 |
Integrating with the User Interface | p. 540 |
Internet Manager | p. 540 |
Graph Tab Panel | p. 541 |
Historical Data Manager | p. 542 |
Main Menu | p. 542 |
Stock Application | p. 544 |
Summary | p. 545 |
What's Next? | p. 546 |
Implementing the CSV Manager | p. 547 |
Use Cases | p. 548 |
Implementation Decisions | p. 548 |
Selecting Files | p. 548 |
File Output Strategy | p. 552 |
Package Strategy | p. 552 |
Implementing the CSVManager Class | p. 553 |
Integrating with the User Interface | p. 560 |
Portfolio | p. 560 |
Historical Data Manager | p. 563 |
Stock Application | p. 567 |
Summary | p. 574 |
What's Next? | p. 574 |
Enhancing the Stock Tracker User Interface | p. 575 |
Centering a Frame Onscreen | p. 576 |
Splash Screens | p. 577 |
SplashScreen Class | p. 580 |
Toolbars | p. 583 |
Stock Tool Bar | p. 585 |
Keyboard Mnemonics | p. 590 |
Main Menu Accelerators | p. 592 |
Integrating with the Stock Application | p. 595 |
Stock Application | p. 595 |
Resizing | p. 601 |
Summary | p. 602 |
What's Next? | p. 602 |
JavaBeans and JDBC | p. 603 |
JavaBeans | p. 603 |
The JavaBeans API | p. 605 |
JDBC | p. 607 |
Summary | p. 617 |
Setting Up the Java 2 SDK | p. 621 |
Setting Up the SDK in Microsoft Windows | p. 621 |
Run the SDK Software Installer | p. 621 |
Update the PATH Variable | p. 622 |
Check the CLASSPATH Variable (If Upgrading) | p. 624 |
Start Using the SDK Tools | p. 629 |
Where Do I Go from Here? | p. 630 |
Troubleshooting the Installation | p. 630 |
Setting Up the SDK in Solaris | p. 632 |
If Necessary, Install Solaris Patches | p. 633 |
Change to the Directory You Want to Install Into | p. 633 |
Unpack the SDK | p. 633 |
Update the PATH Variable | p. 634 |
Check the CLASSPATH Variable (If Upgrading) | p. 635 |
Start Using the SDK | p. 640 |
Where Do I Go from Here? | p. 641 |
Troubleshooting the Installation | p. 642 |
Third-Party Development Environments | p. 643 |
Inprise JBuilder | p. 644 |
Sybase PowerJ | p. 644 |
Symantec Visual Cafe | p. 644 |
NetBeans Developer | p. 645 |
Oracle JDeveloper | p. 645 |
Metrowerks CodeWarrior Professional | p. 645 |
Java Resources | p. 647 |
Web Sites | p. 647 |
Sun Microsystems | p. 647 |
Java Developer Connection (JDC) | p. 647 |
Java Lobby | p. 648 |
Newsgroups | p. 648 |
Books | p. 648 |
Macmillan Computer Publishing | p. 648 |
The Java Tutorial | p. 649 |
Thinking in Java | p. 649 |
Java Look and Feel Design Guidelines | p. 649 |
The Java Language Specification | p. 649 |
Magazines | p. 650 |
Java Developer's Journal | p. 650 |
Java World | p. 650 |
Java Report Online | p. 650 |
Java Pro | p. 650 |
Focus on Java | p. 650 |
Index | p. 651 |
Table of Contents provided by Syndetics. All Rights Reserved. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.