📄 front.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD> <TITLE>Java(TM) Language Basics, Part 1, Lesson 4: Building A User Interface</TITLE> <META NAME="AUTHOR" CONTENT="Monica Pawlan"> <META NAME="KEYWORDS" CONTENT="programming, basics, Java 2"> <META NAME="OWNER" CONTENT="Editorial/JDC"> <META NAME="revision" CONTENT="@(#)front.src 1.34 03/09/00 JDC"> <STYLE TYPE="text/css"> <!-- CODE {font-family: Courier, Monospace; font-size: 12pt} PRE {font-family: Courier, Monospace; font-size: 11pt} --> </STYLE></HEAD><!-- Start Body Insert--><BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" ALINK="#FF0000" VLINK="#660066"><!-- End Body Insert--><!-- Start PageTop Insert --><TABLE BORDER="0" CELLSPACING="0" CELLPADDING="0" WIDTH="100%"> <TR ALIGN="CENTER" VALIGN="TOP"> <TD WIDTH="157" ALIGN="LEFT"> <IMG SRC="/images/pixel.gif" HEIGHT="40" WIDTH="40" ALT=""> <A HREF="http://java.sun.com/index.html"><IMG SRC="/images/javalogo52x88.gif" WIDTH="52" HEIGHT="88" ALT="Java Technology Home Page" BORDER="0"></A> <BR> <IMG SRC="/images/pixel.gif" WIDTH="157" HEIGHT="1" ALT=""></TD> <TD> <FORM NAME="seek1" METHOD="GET" ACTION="http://search.java.sun.com/query.html"> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%"> <TR> <TD ALIGN="RIGHT"> <IMG SRC="/images/stripelt.gif" WIDTH="6" HEIGHT="14" ALT=""></TD> <TD WIDTH="100%"> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0" WIDTH="100%"> <TR> <TD BGCOLOR="#CC9966" WIDTH="100%"> <IMG SRC="/images/pixel.gif" HEIGHT="2" WIDTH="1" ALT=""></TD> </TR> <TR> <TD> <IMG SRC="/images/pixel.gif" HEIGHT="2" WIDTH="1" ALT=""></TD> </TR> <TR> <TD BGCOLOR="#CC9966"> <IMG SRC="/images/pixel.gif" HEIGHT="2" WIDTH="1" ALT=""></TD> </TR> <TR> <TD> <IMG SRC="/images/pixel.gif" HEIGHT="2" WIDTH="1" ALT=""></TD> </TR> <TR> <TD BGCOLOR="#CC9966"> <IMG SRC="/images/pixel.gif" HEIGHT="2" WIDTH="1" ALT=""></TD> </TR> <TR> <TD> <IMG SRC="/images/pixel.gif" HEIGHT="2" WIDTH="1" ALT=""></TD> </TR> <TR> <TD BGCOLOR="#CC9966"> <IMG SRC="/images/pixel.gif" HEIGHT="2" WIDTH="1" ALT=""></TD> </TR> </TABLE> </TD> <TD ALIGN="LEFT"> <IMG SRC="/images/stripert.gif" WIDTH="6" HEIGHT="14" ALT=""></TD> <TD> <TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0"> <TR> <TD VALIGN="CENTER"> <A HREF="http://java.sun.com/a-z/index.html"><IMG SRC="/images/azindex.gif" BORDER="0" WIDTH="72" HEIGHT="11" ALT="A-Z Index"></A></TD> <TD VALIGN="CENTER"> <FONT FACE="Helvetica" SIZE="1"> <INPUT TYPE="text" SIZE="15" MAXLENGTH="128" NAME=qt></FONT></TD> <TD VALIGN="CENTER"> <INPUT TYPE="image" SRC="/images/search.button.gif" WIDTH="55" HEIGHT="14" ALT="Search" value="search" BORDER="0"></TD> </TR> </TABLE> </TD> </TR> </TABLE> </FORM> <P> <TABLE BORDER="0" WIDTH="100%" CELLPADDING="0" CELLSPACING="0"> <TR VALIGN="TOP"> <TD WIDTH="100%"><IMG SRC="/images/chiclet.row.gif" WIDTH="55" HEIGHT="18" ALT=""></TD> <TD ROWSPAN="4" ALIGN="RIGHT" WIDTH="152"> <A HREF="/developer/index.html"><IMG SRC="/images/developer.connection.header.gif" BORDER="0" HEIGHT="42" WIDTH="319" ALT="Java Developer Connection(SM)"></A></TD> </TR> <TR VALIGN="TOP"> <TD BGCOLOR="#FFFFFF" HEIGHT="1" WIDTH="100%"> <IMG SRC="/images/pixel.gif" HEIGHT="1" WIDTH="1" ALT=""></TD> </TR> <TR VALIGN="TOP"> <TD BGCOLOR="#CC9966" HEIGHT="1" WIDTH="100%"> <IMG SRC="/images/pixel.gif" HEIGHT="1" WIDTH="1" ALT=""></TD> </TR> <TR VALIGN="TOP"> <TD><A HREF="/developer/onlineTraining/"><IMG SRC="/images/online-training.gif" WIDTH="165" HEIGHT="22" ALT="Online Training" BORDER=0></A></TD> </TR> </TABLE> </TD> </TR></TABLE><!-- End PageTop Insert --><!-- Start NavBar Insert --><TABLE BORDER="0" CELLSPACING="0" CELLPADDING="3" BGCOLOR="#FFFFFF" WIDTH="157" ALIGN="LEFT"><!-- tab categories --><TR><TD><A HREF="http://java.sun.com/products/"><IMG SRC="/images/side.tab.products.gif" HEIGHT="15" WIDTH="130" BORDER="0" ALT="Downloads, APIs, Documentation"></A></TD></TR><TR><TD><A HREF="/developer/index.html"><IMG SRC="/images/side.tab.developer.gif" HEIGHT="15" WIDTH="130" BORDER="0" ALT="Java Developer Connection"></A></TD></TR><TR><TD><A HREF="/developer/infodocs/index.shtml"><IMG SRC="/images/side.tab.docs.gif" HEIGHT="15" WIDTH="130" BORDER="0" ALT="Tutorials, Tech Articles, Training"></A></TD></TR><TR><TD><A HREF="/developer/support/index.html"><IMG SRC="/images/side.tab.support.gif" HEIGHT="15" WIDTH="130" BORDER="0" ALT="Online Support"></A></TD></TR><TR><TD><A HREF="/developer/community/index.html"><IMG SRC="/images/side.tab.community.gif" HEIGHT="15" WIDTH="130" BORDER="0" ALT="Community Discussion"></A></TD></TR><TR><TD><A HREF="http://java.sun.com/industry/"><IMG SRC="/images/side.tab.news.gif" HEIGHT="15" WIDTH="130" BORDER="0" ALT="News & Events from Everywhere"></A></TD></TR><TR><TD><A HREF="http://java.sun.com/solutions"><IMG SRC="/images/side.tab.solutions.gif" HEIGHT="15" WIDTH="130" BORDER="0" ALT="Products from Everywhere"></A></TD></TR><TR><TD><A HREF="http://java.sun.com/casestudies"><IMG SRC="/images/side.tab.case.gif" HEIGHT="15" WIDTH="130" BORDER="0" ALT="How Java Technology is Used Worldwide"></A></TD></TR><TR><TD> <DIV ALIGN="RIGHT"> <A HREF="/servlet/PrintPageServlet"><IMG SRC="/images/printbutton.gif" WIDTH="155" HEIGHT="25" ALT="Print Button" BORDER="0"></A> </DIV></TD></TR><TR><TD> </TD></TR><!-- End NavBar Insert --><!-- START SUB-NAV --><TR> <TD><!-- INSERT SUB-NAV INFO --> </TD></TR><!-- END SUB-NAV --></TABLE><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0"><TR><TD><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><!-- Template Version 2.0 --><!-- ================== --><!-- Start Main Content --><!-- ================== --><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="0"><TR><TD VALIGN="TOP"><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> <A NAME="top"></A> <DIV ALIGN="RIGHT"> <FONT SIZE="-1"><A HREF="/developer/onlineTraining/index.html">Training Index</A></FONT> <H2>Java<FONT SIZE="-2"><SUP>TM</SUP></FONT> Programming Language Basics, Part 1<BR> <FONT SIZE="3">Lesson 4: Building A User Interface</FONT></H2> <FONT SIZE="-1">[<A HREF="applet.html"><<BACK</A>] [<A HREF="index.html#contents">CONTENTS</A>] [<A HREF="servlet.html">NEXT>></A>]</FONT></DIV><P>In the last lesson you saw how the <CODE>Applet</CODE> classprovides a <CODE>Panel</CODE> component so you can design the applet'suser interface. This lesson expands the basic application fromLessons 1 and 2 to give it a user interface using theJava<FONT SIZE="-2"><SUP>TM</SUP></FONT> Foundation Classes (JFC) Project Swing APIsthat handle user events.<UL><LI><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><A HREF="#swing">Project Swing APIs</A></FONT><LI><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><A HREF="#import">Import Statements</A></FONT><LI><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><A HREF="#decl">Class Declaration</A></FONT><LI><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><A HREF="#instance">Instance Variables</A></FONT><LI><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><A HREF="#const">Constructor</A></FONT><LI><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><A HREF="#listen">Action Listening</A></FONT><LI><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><A HREF="#event">Event Handling</A></FONT><LI><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><A HREF="#main">Main Method</A></FONT><LI><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><A HREF="#applets">Applets Revisited</A></FONT><LI><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><A HREF="#more">More Information</A></FONT></UL><HR><A NAME="swing"></A><H2>Project Swing APIs</H2><IMG SRC="./Art/panel.gif" WIDTH="178" HEIGHT="123" ALT="" ALIGN="LEFT" HSPACE=10 VSPACE=5>In contrast to the applet in Lesson 3 where the user interfaceis attached to a panel object nested in a top-level browser,the Project Swing application in this lessonattaches its user interface to a panel object nested in a top-levelframe object. A frame object is a top-level window that provides atitle, banner, and methods to manage the appearance and behaviorof the window.<P>The Project Swing code that follows builds this simple application.The window on the left appears when you start the application,and the window on the right appears when you click the button.Click again and you are back to the original window on the left.<P><TABLE><TR><TD WIDTH=200 ALIGN=CENTER><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> <IMG SRC="./Art/swing1.gif" WIDTH="159" HEIGHT="89" ALT=""><P>When Application Starts</FONT></TD><TD ALIGN=CENTER><FONT FACE="Verdana, Arial, Helvetica, sans-serif"> <IMG SRC="./Art/swing2.gif" WIDTH="159" HEIGHT="89" ALT=""><P>When Button Clicked</FONT></TD></TR></TABLE><A NAME="import"></A><H3>Import Statements</H3>Here is the <A HREF="./Code/SwingUI.java">SwingUI.java</A> code.At the top, you have four lines of import statements. The linesindicate exactly which Java<FONT SIZE="-2"><SUP>TM</SUP></FONT> API classes the program uses.You could replace four of these lines with this one line:<CODE>import java.awt.*;</CODE>, to import the entire<CODE>awt</CODE> package, but doing that increases compilationoverhead than importing exactly the classes you need andno others. </FONT><PRE>import java.awt.Color;import java.awt.BorderLayout;import java.awt.event.*;import javax.swing.*;</PRE><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><A NAME="decl"></A><H3>Class Declaration</H3>The class declaration comes next and indicates the top-level frame for the application's user interface is a<CODE>JFrame</CODE> that implements the <CODE>ActionListener</CODE>interface. </FONT><PRE>class SwingUI extends JFrame implements ActionListener{</PRE><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><P>The <CODE>JFrame</CODE> class extends the <CODE>Frame</CODE> class that is part of the Abstract Window Toolkit(AWT) APIs. Project Swing extends the AWT with a full set of GUIcomponents and services, pluggable look and feel capabilities,and assistive technology support. For a more detailed introductionto Project Swing, see the <A HREF="http://java.sun.com/products/jfc/tsc/index.html">Swing Connection</A>,and <A HREF="/developer/onlineTraining/GUI/Swing1/index.html">Fundamentals of Swing, Part 1</A>.<P>The Java APIs provide classes and interfaces for you to use.An interface defines a set of methods, but does not implementthem. The rest of the <CODE>SwingUI</CODE> class declarationindicates that this class will implement the <CODE>ActionListener</CODE> interface. This means the <CODE>SwingUI</CODE>class must implement all methods defined in the <CODE>ActionListener</CODE> interface. Fortunately, there is onlyone, <CODE>actionPerformed</CODE>, which is discussed below. <A NAME="instance"></A><H3>Instance Variables</H3>These next lines declare the Project Swing component classesthe <CODE>SwingUI</CODE> class uses. These are instance variablesthat can be accessed by any method in the instantiated class.In this example, they are built in the <CODE>SwingUI</CODE> constructor and accessed in the <CODE>actionPerformed</CODE> methodimplementation. The <CODE>private boolean</CODE> instance variableis visible only to the <CODE>SwingUI</CODE> class and isused in the <CODE>actionPerformed</CODE>method to find outwhether or not the button has been clicked.</FONT><PRE> JLabel text, clicked; JButton button, clickButton; JPanel panel; private boolean _clickMeMode = true;</PRE><FONT FACE="Verdana, Arial, Helvetica, sans-serif"><A NAME="const"></A><H3>Constructor</H3>The constructor (shown below) creates the user interface components and <CODE>JPanel</CODE> object, adds the components to the<CODE>JPanel</CODE> object, adds the panelto the frame, and makes the <CODE>JButton</CODE> componentsevent listeners. The <CODE>JFrame</CODE> object is createdin the <CODE>main</CODE> method when the program starts.</FONT><PRE> SwingUI(){ text = new JLabel("I'm a Simple Program"); clicked = new JLabel("Button Clicked"); button = new JButton("Click Me");//Add button as an event listener button.addActionListener(this); clickButton = new JButton("Click Again");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -