📄 contents.htm
字号:
<A HREF="Chap13.htm#Heading415">The basic applet</A><BR>
<UL>
<A HREF="Chap13.htm#Heading416">Applet restrictions</A><BR>
<A HREF="Chap13.htm#Heading417">Applet advantages</A><BR>
<A HREF="Chap13.htm#Heading418">Application frameworks</A><BR>
<A HREF="Chap13.htm#Heading419">Running applets inside a Web browser</A><BR>
<A HREF="Chap13.htm#Heading420">Using Appletviewer</A><BR>
<A HREF="Chap13.htm#Heading421">Testing applets</A><BR>
</UL>
<A HREF="Chap13.htm#Heading422">Running applets from the command line</A><BR>
<UL>
<A HREF="Chap13.htm#Heading423">A display framework</A><BR>
<A HREF="Chap13.htm#Heading424">Using the Windows Explorer</A><BR>
</UL>
<A HREF="Chap13.htm#Heading425">Making a button</A><BR>
<A HREF="Chap13.htm#Heading426">Capturing an event</A><BR>
<A HREF="Chap13.htm#Heading427">Text areas</A><BR>
<A HREF="Chap13.htm#Heading428">Controlling layout</A><BR>
<UL>
<A HREF="Chap13.htm#Heading429">BorderLayout</A><BR>
<A HREF="Chap13.htm#Heading430">FlowLayout</A><BR>
<A HREF="Chap13.htm#Heading431">GridLayout</A><BR>
<A HREF="Chap13.htm#Heading432">GridBagLayout</A><BR>
<A HREF="Chap13.htm#Heading433">Absolute positioning</A><BR>
<A HREF="Chap13.htm#Heading434">BoxLayout</A><BR>
<A HREF="Chap13.htm#Heading435">The best approach?</A><BR>
</UL>
<A HREF="Chap13.htm#Heading436">The Swing event model</A><BR>
<UL>
<A HREF="Chap13.htm#Heading437">Event and listener types</A><BR>
<UL>
<A HREF="Chap13.htm#Heading438">Using listener adapters for simplicity</A><BR>
</UL>
<A HREF="Chap13.htm#Heading439">Tracking multiple events</A><BR>
</UL>
<A HREF="Chap13.htm#Heading440">A catalog of Swing components</A><BR>
<UL>
<A HREF="Chap13.htm#Heading441">Buttons</A><BR>
<UL>
<A HREF="Chap13.htm#Heading442">Button groups</A><BR>
</UL>
<A HREF="Chap13.htm#Heading443">Icons</A><BR>
<A HREF="Chap13.htm#Heading444">Tool tips</A><BR>
<A HREF="Chap13.htm#Heading445">Text fields</A><BR>
<A HREF="Chap13.htm#Heading446">Borders</A><BR>
<A HREF="Chap13.htm#Heading447">JScrollPanes</A><BR>
<A HREF="Chap13.htm#Heading448">A mini-editor</A><BR>
<A HREF="Chap13.htm#Heading449">Check boxes</A><BR>
<A HREF="Chap13.htm#Heading450">Radio buttons</A><BR>
<A HREF="Chap13.htm#Heading451">Combo boxes (drop-down lists)</A><BR>
<A HREF="Chap13.htm#Heading452">List boxes</A><BR>
<A HREF="Chap13.htm#Heading453">Tabbed panes</A><BR>
<A HREF="Chap13.htm#Heading454">Message boxes</A><BR>
<A HREF="Chap13.htm#Heading455">Menus</A><BR>
<A HREF="Chap13.htm#Heading456">Pop-up menus</A><BR>
<A HREF="Chap13.htm#Heading457">Drawing</A><BR>
<A HREF="Chap13.htm#Heading458">Dialog Boxes</A><BR>
<A HREF="Chap13.htm#Heading459">File dialogs</A><BR>
<A HREF="Chap13.htm#Heading460">HTML on Swing components</A><BR>
<A HREF="Chap13.htm#Heading461">Sliders and progress bars</A><BR>
<A HREF="Chap13.htm#Heading462">Trees</A><BR>
<A HREF="Chap13.htm#Heading463">Tables</A><BR>
<A HREF="Chap13.htm#Heading464">Selecting Look & Feel</A><BR>
<A HREF="Chap13.htm#Heading465">The clipboard</A><BR>
</UL>
<A HREF="Chap13.htm#Heading466">Packaging an applet into a JAR file</A><BR>
<A HREF="Chap13.htm#Heading467">Programming techniques</A><BR>
<UL>
<A HREF="Chap13.htm#Heading468">Binding events dynamically</A><BR>
<A HREF="Chap13.htm#Heading469">Separating business logic from UI logic</A><BR>
<A HREF="Chap13.htm#Heading470">A canonical form</A><BR>
</UL>
<A HREF="Chap13.htm#Heading471">Visual programming and Beans</A><BR>
<UL>
<A HREF="Chap13.htm#Heading472">What is a Bean?</A><BR>
<A HREF="Chap13.htm#Heading473">Extracting BeanInfo with the Introspector</A><BR>
<A HREF="Chap13.htm#Heading474">A more sophisticated Bean</A><BR>
<A HREF="Chap13.htm#Heading475">Packaging a Bean</A><BR>
<A HREF="Chap13.htm#Heading476">More complex Bean support</A><BR>
<A HREF="Chap13.htm#Heading477">More to Beans</A><BR>
</UL>
<A HREF="Chap13.htm#Heading478">Summary</A><BR>
<A HREF="Chap13.htm#Heading479">Exercises</A><BR>
</UL>
<A HREF="Chap14.htm">14: Multiple Threads</A><BR>
<UL>
<A HREF="Chap14.htm#Heading481">Responsive user interfaces</A><BR>
<UL>
<A HREF="Chap14.htm#Heading482">Inheriting from Thread</A><BR>
<A HREF="Chap14.htm#Heading483">Threading for a responsive interface</A><BR>
<A HREF="Chap14.htm#Heading484">Combining the thread with the main class</A><BR>
<A HREF="Chap14.htm#Heading485">Making many threads</A><BR>
<A HREF="Chap14.htm#Heading486">Daemon threads</A><BR>
</UL>
<A HREF="Chap14.htm#Heading487">Sharing limited resources</A><BR>
<UL>
<A HREF="Chap14.htm#Heading488">Improperly accessing resources</A><BR>
<A HREF="Chap14.htm#Heading489">How Java shares resources</A><BR>
<UL>
<A HREF="Chap14.htm#Heading490">Synchronizing the counters</A><BR>
<A HREF="Chap14.htm#Heading491">Synchronized efficiency</A><BR>
</UL>
<A HREF="Chap14.htm#Heading492">JavaBeans revisited</A><BR>
</UL>
<A HREF="Chap14.htm#Heading493">Blocking </A><BR>
<UL>
<A HREF="Chap14.htm#Heading494">Becoming blocked</A><BR>
<UL>
<A HREF="Chap14.htm#Heading495">Sleeping</A><BR>
<A HREF="Chap14.htm#Heading496">Suspending and resuming</A><BR>
<A HREF="Chap14.htm#Heading497">Wait and notify</A><BR>
<A HREF="Chap14.htm#Heading498">Blocking on I/O</A><BR>
<A HREF="Chap14.htm#Heading499">Testing</A><BR>
</UL>
<A HREF="Chap14.htm#Heading500">Deadlock</A><BR>
<UL>
<A HREF="Chap14.htm#Heading501">The deprecation of stop( ), suspend( ), resume( ), and destroy( ) in Java 2</A><BR>
</UL>
</UL>
<A HREF="Chap14.htm#Heading502">Priorities</A><BR>
<UL>
<A HREF="Chap14.htm#Heading503">Reading and setting priorities</A><BR>
<A HREF="Chap14.htm#Heading504">Thread groups</A><BR>
<UL>
<A HREF="Chap14.htm#Heading505">Controlling thread groups</A><BR>
</UL>
</UL>
<A HREF="Chap14.htm#Heading506">Runnable revisited</A><BR>
<UL>
<A HREF="Chap14.htm#Heading507">Too many threads</A><BR>
</UL>
<A HREF="Chap14.htm#Heading508">Summary</A><BR>
<A HREF="Chap14.htm#Heading509">Exercises</A><BR>
</UL>
<A HREF="Chap15.htm">15: Distributed Computing</A><BR>
<UL>
<A HREF="Chap15.htm#Heading511">Network programming</A><BR>
<UL>
<A HREF="Chap15.htm#Heading512">Identifying a machine</A><BR>
<UL>
<A HREF="Chap15.htm#Heading513">Servers and clients</A><BR>
<A HREF="Chap15.htm#Heading514">Testing programs without a network</A><BR>
<A HREF="Chap15.htm#Heading515">Port: a unique place within the machine</A><BR>
</UL>
<A HREF="Chap15.htm#Heading516">Sockets</A><BR>
<UL>
<A HREF="Chap15.htm#Heading517">A simple server and client</A><BR>
</UL>
<A HREF="Chap15.htm#Heading518">Serving multiple clients</A><BR>
<A HREF="Chap15.htm#Heading519">Datagrams</A><BR>
<A HREF="Chap15.htm#Heading520">Using URLs from within an applet</A><BR>
<UL>
<A HREF="Chap15.htm#Heading521">Reading a file from the server</A><BR>
</UL>
<A HREF="Chap15.htm#Heading522">More to networking</A><BR>
</UL>
<A HREF="Chap15.htm#Heading523">Java Database Connectivity (JDBC)</A><BR>
<UL>
<A HREF="Chap15.htm#Heading524">Getting the example to work</A><BR>
<UL>
<A HREF="Chap15.htm#Heading525">Step 1: Find the JDBC Driver</A><BR>
<A HREF="Chap15.htm#Heading526">Step 2: Configure the database</A><BR>
<A HREF="Chap15.htm#Heading527">Step 3: Test the configuration</A><BR>
<A HREF="Chap15.htm#Heading528">Step 4: Generate your SQL query</A><BR>
<A HREF="Chap15.htm#Heading529">Step 5: Modify and paste in your query</A><BR>
</UL>
<A HREF="Chap15.htm#Heading530">A GUI version of the lookup program</A><BR>
<A HREF="Chap15.htm#Heading531">Why the JDBC API seems so complex</A><BR>
<A HREF="Chap15.htm#Heading532">A more sophisticated example</A><BR>
</UL>
<A HREF="Chap15.htm#Heading533">Servlets</A><BR>
<UL>
<A HREF="Chap15.htm#Heading534">The basic servlet</A><BR>
<A HREF="Chap15.htm#Heading535">Servlets and multithreading</A><BR>
<A HREF="Chap15.htm#Heading536">Handling sessions with servlets</A><BR>
<UL>
<A HREF="Chap15.htm#Heading537">The Cookie class</A><BR>
<A HREF="Chap15.htm#Heading538">The Session class</A><BR>
</UL>
<A HREF="Chap15.htm#Heading539">Running the servlet examples</A><BR>
</UL>
<A HREF="Chap15.htm#Heading540">Java Server Pages</A><BR>
<UL>
<A HREF="Chap15.htm#Heading541">Implicit objects</A><BR>
<A HREF="Chap15.htm#Heading542">JSP directives </A><BR>
<A HREF="Chap15.htm#Heading543">JSP scripting elements</A><BR>
<A HREF="Chap15.htm#Heading544">Extracting fields and values</A><BR>
<A HREF="Chap15.htm#Heading545">JSP page attributes and scope</A><BR>
<A HREF="Chap15.htm#Heading546">Manipulating sessions in JSP</A><BR>
<A HREF="Chap15.htm#Heading547">Creating and modifying cookies</A><BR>
<A HREF="Chap15.htm#Heading548">JSP summary</A><BR>
</UL>
<A HREF="Chap15.htm#Heading549">RMI (Remote Method Invocation)</A><BR>
<UL>
<A HREF="Chap15.htm#Heading550">Remote interfaces</A><BR>
<A HREF="Chap15.htm#Heading551">Implementing the remote interface</A><BR>
<UL>
<A HREF="Chap15.htm#Heading552">Setting up the registry</A><BR>
</UL>
<A HREF="Chap15.htm#Heading553">Creating stubs and skeletons</A><BR>
<A HREF="Chap15.htm#Heading554">Using the remote object</A><BR>
</UL>
<A HREF="Chap15.htm#Heading555">CORBA</A><BR>
<UL>
<A HREF="Chap15.htm#Heading556">CORBA fundamentals</A><BR>
<UL>
<A HREF="Chap15.htm#Heading557">CORBA Interface Definition Language (IDL)</A><BR>
<A HREF="Chap15.htm#Heading558">The naming service</A><BR>
</UL>
<A HREF="Chap15.htm#Heading559">An example</A><BR>
<UL>
<A HREF="Chap15.htm#Heading560">Writing the IDL source</A><BR>
<A HREF="Chap15.htm#Heading561">Creating stubs and skeletons</A><BR>
<A HREF="Chap15.htm#Heading562">Implementing the server and the client</A><BR>
<A HREF="Chap15.htm#Heading563">Some CORBA services</A><BR>
<A HREF="Chap15.htm#Heading564">Activating the name service process</A><BR>
<A HREF="Chap15.htm#Heading565">Activating the server and the client</A><BR>
</UL>
<A HREF="Chap15.htm#Heading566">Java Applets and CORBA</A><BR>
<A HREF="Chap15.htm#Heading567">CORBA vs. RMI</A><BR>
</UL>
<A HREF="Chap15.htm#Heading568">Enterprise JavaBeans</A><BR>
<UL>
<A HREF="Chap15.htm#Heading569">JavaBeans vs. EJBs</A><BR>
<A HREF="Chap15.htm#Heading570">The EJB specification</A><BR>
<A HREF="Chap15.htm#Heading571">EJB components</A><BR>
<UL>
<A HREF="Chap15.htm#Heading572">EJB Container & Server</A><BR>
<A HREF="Chap15.htm#Heading573">Java Naming and Directory Interface (JNDI)</A><BR>
<A HREF="Chap15.htm#Heading574">Java Transaction API/Java Transaction Service (JTA/JTS)</A><BR>
<A HREF="Chap15.htm#Heading575">CORBA and RMI/IIOP</A><BR>
</UL>
<A HREF="Chap15.htm#Heading576">The pieces of an EJB component</A><BR>
<UL>
<A HREF="Chap15.htm#Heading577">Enterprise Bean </A><BR>
<A HREF="Chap15.htm#Heading578">Home interface</A><BR>
<A HREF="Chap15.htm#Heading579">Remote interface</A><BR>
<A HREF="Chap15.htm#Heading580">Deployment descriptor</A><BR>
<A HREF="Chap15.htm#Heading581">EJB-Jar file</A><BR>
</UL>
<A HREF="Chap15.htm#Heading582">EJB operation</A><BR>
<A HREF="Chap15.htm#Heading583">Types of EJBs</A><BR>
<UL>
<A HREF="Chap15.htm#Heading584">Session Beans</A><BR>
<A HREF="Chap15.htm#Heading585">Entity Beans</A><BR>
</UL>
<A HREF="Chap15.htm#Heading586">Developing an EJB</A><BR>
<A HREF="Chap15.htm#Heading587">EJB summary</A><BR>
</UL>
<A HREF="Chap15.htm#Heading588">Jini: distributed services</A><BR>
<UL>
<A HREF="Chap15.htm#Heading589">Jini in context</A><BR>
<A HREF="Chap15.htm#Heading590">What is Jini?</A><BR>
<A HREF="Chap15.htm#Heading591">How Jini works</A><BR>
<A HREF="Chap15.htm#Heading592">The discovery process</A><BR>
<A HREF="Chap15.htm#Heading593">The join process</A><BR>
<A HREF="Chap15.htm#Heading594">The lookup process</A><BR>
<A HREF="Chap15.htm#Heading595">Separation of interface and implementation</A><BR>
<A HREF="Chap15.htm#Heading596">Abstracting distributed systems</A><BR>
</UL>
<A HREF="Chap15.htm#Heading597">Summary</A><BR>
<A HREF="Chap15.htm#Heading598">Exercises</A><BR>
</UL>
<A HREF="AppendA.htm">A: Passing & Returning Objects</A><BR>
<UL>
<A HREF="AppendA.htm#Heading600">Passing references around</A><BR>
<UL>
<A HREF="AppendA.htm#Heading601">Aliasing</A><BR>
</UL>
<A HREF="AppendA.htm#Heading602">Making local copies</A><BR>
<UL>
<A HREF="AppendA.htm#Heading603">Pass by value</A><BR>
<A HREF="AppendA.htm#Heading604">Cloning objects</A><BR>
<A HREF="AppendA.htm#Heading605">Adding cloneability to a class</A><BR>
<UL>
<A HREF="AppendA.htm#Heading606">Using a trick with protected</A><BR>
<A HREF="AppendA.htm#Heading607">Implementing the Cloneable interface</A><BR>
</UL>
<A HREF="AppendA.htm#Heading608">Successful cloning</A><BR>
<A HREF="AppendA.htm#Heading609">The effect of Object.clone( )</A><BR>
<A HREF="AppendA.htm#Heading610">Cloning a composed object</A><BR>
<A HREF="AppendA.htm#Heading611">A deep copy with ArrayList</A><BR>
<A HREF="AppendA.htm#Heading612">Deep copy via serialization</A><BR>
<A HREF="AppendA.htm#Heading613">Adding cloneability further down a hierarchy</A><BR>
<A HREF="AppendA.htm#Heading614">Why this strange design?</A><BR>
</UL>
<A HREF="AppendA.htm#Heading615">Controlling cloneability</A><BR>
<UL>
<A HREF="AppendA.htm#Heading616">The copy constructor</A><BR>
<UL>
<A HREF="AppendA.htm#Heading617">Why does it work in C++ and not Java?</A><BR>
</UL>
</UL>
<A HREF="AppendA.htm#Heading618">Read-only classes</A><BR>
<UL>
<A HREF="AppendA.htm#Heading619">Creating read-only classes</A><BR>
<A HREF="AppendA.htm#Heading620">The drawback to immutability</A><BR>
<A HREF="AppendA.htm#Heading621">Immutable Strings</A><BR>
<UL>
<A HREF="AppendA.htm#Heading622">Implicit constants</A><BR>
<A HREF="AppendA.htm#Heading623">Overloading ‘+’ and the StringBuffer</A><BR>
</UL>
<A HREF="AppendA.htm#Heading624">The String and StringBuffer classes</A><BR>
<A HREF="AppendA.htm#Heading625">Strings are special</A><BR>
</UL>
<A HREF="AppendA.htm#Heading626">Summary</A><BR>
<A HREF="AppendA.htm#Heading627">Exercises</A><BR>
</UL>
<A HREF="AppendB.htm">B: The Java Native Interface (JNI)</A><BR>
<UL>
<A HREF="AppendB.htm#Heading629">Calling a native method</A><BR>
<UL>
<A HREF="AppendB.htm#Heading630">The header file generator: javah</A><BR>
<A HREF="AppendB.htm#Heading631">Name mangling and function signatures</A><BR>
<A HREF="AppendB.htm#Heading632">Implementing your DLL</A><BR>
</UL>
<A HREF="AppendB.htm#Heading633">Accessing JNI functions: the JNIEnv argument</A><BR>
<UL>
<A HREF="AppendB.htm#Heading634">Accessing Java Strings</A><BR>
</UL>
<A HREF="AppendB.htm#Heading635">Passing and using Java objects</A><BR>
<A HREF="AppendB.htm#Heading636">JNI and Java exceptions</A><BR>
<A HREF="AppendB.htm#Heading637">JNI and threading</A><BR>
<A HREF="AppendB.htm#Heading638">Using a preexisting code base</A><BR>
<A HREF="AppendB.htm#Heading639">Additional information</A><BR>
</UL>
<A HREF="AppendC.htm">C: Java Programming Guidelines</A><BR>
<UL>
<A HREF="AppendC.htm#Heading641">Design</A><BR>
<A HREF="AppendC.htm#Heading642">Implementation</A><BR>
</UL>
<A HREF="AppendD.htm">D: Resources</A><BR>
<UL>
<A HREF="AppendD.htm#Heading644">Software</A><BR>
<A HREF="AppendD.htm#Heading645">Books</A><BR>
<UL>
<A HREF="AppendD.htm#Heading646">Analysis & design</A><BR>
<A HREF="AppendD.htm#Heading647">Python</A><BR>
<A HREF="AppendD.htm#Heading648">My own list of books </A><BR>
</UL>
</UL>
<A HREF="Adstuff.htm">Index</A><BR>
</UL>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -