390 likes | 505 Views
COMP 14 Introduction to Programming. Miguel A. Otaduy June 8, 2004. Last Time. Create a Java window extending JFrame. Add labels with JLabel Add Images with ImageIcon Setting colors and layout. Example: LowerUpperCase. Basics. Layout: GridLayout(3,2) JLabel to output result
E N D
COMP 14Introduction to Programming Miguel A. Otaduy June 8, 2004
Last Time • Create a Java window extending JFrame. • Add labels with JLabel • Add Images with ImageIcon • Setting colors and layout
Basics • Layout: GridLayout(3,2) • JLabel to output result • JTextField to input sentence • 4 buttons
JLabel and JTextField • Very similar. With JTextField we can also type data from outside and access it in the program. JLabel output=new JLabel(); JTextField input=new JTextField(); … String inputStr=input.getText(); output.setText(“OUTPUT RESULT”);
Using Buttons • Create JButton objects • Buttons generate events when clicked • Add event handlers • Inside event handler, code operations to be executed when button is clicked
Adding Buttons • To create a button, we use the JButton class • Add button to the content pane • Change text of the button with the setText method • Enable/disable the button with setEnabled method JButton toLower = new JButton (“To Lower Case"); content.add(toLower); toLower.setText(“Convert to Lower Case"); toLower.setEnabled(false);
Buttons and Events • Pressing buttons triggers action events • Setup a listener for the event • actionPerformed method from ActionListener class • ActionListener class from the java.awt.event package • something else to import
ActionListener • Special type of class, called interface • Interface - class that contains only the method headings (no method bodies) public interface ActionListener { public void actionPerformed (ActionEvent e); }
ActionListener • In order to handle an event, define a class that will implementActionListener. • Make the class ButtonHandler an internal class of our main class. • In ButtonHandler, code the method actionPerformed private class ButtonHandler implements ActionListener
ActionListener • Declare a ButtonHandler that will be a data member of the main class. • Instantiate the ButtonHandler (e.g. in the constructor) • Once the JButton object is created, register the action listener: private ButtonHandler toLowerHandler; toLowerHandler=new ButtonHandler(); toLower.addActionListener(toLowerHandler);
Example: LowerUpperCase • Declare buttons: toLowerButton, toUpperButton, exitButton, clearButton • Instantiate buttons • Add buttons to the content pane • Implement ActionListener classes that will handle events: ButtonHandler, ExitHandler, ClearHandler • Register action listeners
actionPerformed • Variables we want to access inside the actionPerformed methods, must be declared as member variables of the main class • not local to constructor • Make input, output, and the buttons member variables
ExitHandler.actionPerformed • We simply need to exit the system System.exit(0);
ClearHandler.actionPerformed • Clear JTextField input and JLabel output input.setText(“”); output.setText(“”); setVisible(true);
ButtonHandler.actionPerformed • How do we know which button we pressed (toLower or toUpper)? public void actionPerformed(ActionEvent e) { JButton pressed=(JButton)(e.getSource()); if(pressed==toLower) … else if(pressed==toUpper) … }
Example: LowerUpperCase • Finish example
Applets • A Java application is a stand-alone program with a main method • A Java applet is a Java program that is intended to be transported over the web and executed using a web browser • an applet doesn't have a main method • needs an extra import statement: import java.applet.Applet;
Applet Methods • Several methods from Applet class that are invoked automatically at certain points in an applet's life • init - executed only once when the applet is initially loaded • start - called when applet becomes active (when browser loads / returns to the page) • stop - called when applet becomes inactive (when browser leaves the page) • paint - automatically executed and is used to draw the applets contents
Converting Apps to Applet • See Ch 13, pgs. 745-748 • Extends JApplet instead of JFrame • No main method • No constructor • put code from constructor in init() method • No setVisible, setTitle, orsetSize methods
Example: LowerUpperCase • Convert to Applet
Want to Learn More? • Creating a GUI with Swing • Creating Applets http://java.sun.com/docs/books/tutorial/uiswing/ http://java.sun.com/docs/books/tutorial/applet/
Writing Web Pages • Web pages are written in a "markup" language called HTML (HyperText Markup Language) • HTML is NOT a programming language. • HTML just tells the computer how to format text and images--it's like using Word, but having to type in what you want things to look like.
Tags • HTML works based on the concept of tags. A tag is some text surrounded by < and> • Tags are not printed to the screen • Example tags: • <HTML>, <TITLE>, <P>, <H1> • A lot of the time they work in pairs: • <HTML> and </HTML> • HTML is not case-sensitive • <HTML> and <html> are the same thing
Very Simple Web Page <HTML> <HEAD> <TITLE>Simple web page</TITLE> </HEAD> <BODY> This is the text on a web page. </BODY> </HTML> View any web page source by choosing Source from the View menu in a web browser
What Do The Tags Mean? • <HTML>, </HTML> • go at the beginning and end of EVERY page • <HEAD>, </HEAD> • introduction of the document • <TITLE>, </TITLE> • what goes in the title bar of the window • <BODY>,</BODY> • the text (and other stuff) that is displayed in the window
Color and Images • You can add color or an image to the background: • color: make body tag <BODY BGCOLOR=RED> • image: make body tag <BODY BACKGROUND="image.gif">
Ignores White Space • In HTML, where you put a line break is ignored. The web browser decides this for you based on the size of the window • These two will print the same thing: first: <BODY> Why not fly? </BODY> second: <BODY> Why not fly? </BODY>
Adding White Space • Putting <P> at the beginning of a paragraph and </P> at the end will put a blank line between two pieces of text • You can also use <BR> to insert a carriage return (aka <enter>) • <hr> will insert a horizontal line
Other Tags • Bold • <B> and</B> • Italic • <I> and </I> • Center • <CENTER> and </CENTER> • Comments • <!-- and -->
Hierarchical Structure • For documents having a hierarchical structure, you can use heading tags • <H1> marking chapter in a book • <H2> marking section of a chapter • <H3> marking subsection of a chapter • <H4> and so on down... • <H5>
Lists • There are two kinds of lists: • Ordered lists (surrounded by <OL> and </OL> • Unordered lists (surrounded by <UL> and </UL> • Both use <LI> and </LI> to indicate List Items (things in the list)
Tables • You can also create tables • Beginning: <TABLE> </TABLE> • options: border, cellspacing,cellpadding • Each row: <TR> </TR> • Each column: <TD> </TD>
Links • This is the important part. This is how you go from page to page. • <A HREF="put URL here">text to be displayed</A>
Inserting Images • You can also just add an image into the middle of the page • Use <IMG SRC="put URL here">
Want To Learn More? • Tutorials • Quick Reference http://www.htmlcodetutorial.com/ http://www.w3.org/MarkUp/Guide/ http://werbach.com/barebones/barebones.html
Applets and the Web • An applet is embedded into an HTML file using a tag that references the bytecode file (ClassName.class) of the applet class • It is actually the bytecode version of the program that is transported across the web • The applet is executed by a Java interpreter that is part of the browser • this Java interpreter not included in Windows XP, must download from java.com
Applets and the Web • Basic HTML file for an applet: • Can also specify size of applet window • Put the applet HTML file (named something.html) and your Java applet bytecode (named ClassName.class) in your public_html folder in AFS space. <html> <body> <applet code = "ClassName.class"> </applet> </body> </html> <applet code="ClassName.class" height=200 width=300> </applet>
To do • Finish Homework 6 (due Wednesday night) • Sort ints • Create array of Participant objects • Read data into Participant objects • Sort Participant objects • Start Homework 7 (due Friday night) • Access AFS disk space • Create simple web page (just one line in the body) • Play around with UpperLower.java • Bring laptops to the remaining classes (review & practice)