1 / 15

Things to mention

Things to mention. public static void main(String [] args ) imports comments block comments /* … */ single-line comments // javadoc comments and tags (?) /** … */. Using the Java graphics classes. In this slide set we will explain the basics of how to create graphical programs.

trapper
Download Presentation

Things to mention

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Things to mention • public static void main(String [] args) • imports • comments • block comments /* … */ • single-line comments // • javadoc comments and tags (?) /** … */ CSE 115/503 Introduction to Computer Science for Majors I

  2. Using the Java graphics classes • In this slide set we will explain the basics of how to create graphical programs. • Some advanced issues will be glossed over (e.g. thread safety, graphics library design). • In CSE116 we will revisit these and other more advanced topics. CSE 115/503 Introduction to Computer Science for Majors I

  3. Graphical elements • There are two basic types of graphical elements: • Containers • able to hold graphical objects, such as containers and components • Components • must be put into containers • able to generate events when manipulated CSE 115/503 Introduction to Computer Science for Majors I

  4. Containers • Top-level containers • some containers are called “top-level” because they do not need to be place inside any other containers • javax.swing.JFrame is an example (JDialog and JApplet are others) • Other containers (not top-level) • most containers must be placed inside some other container • javax.swing.JPanel is an example CSE 115/503 Introduction to Computer Science for Majors I

  5. Adding elements to a JFrame • Top-level containers have multiple panes • Content pane is the one which holds components • With javax.swing.JFrame, two ways: • call getContentPane() on frame to get frame’s content pane, then call add(…) on content pane to add a component • call add(…) directly on the JFrame object • Second approach is just a convenience method, does the same thing the first approach CSE 115/503 Introduction to Computer Science for Majors I

  6. Example • Creating just a frame • new javax.swing.JFrame() • Creating a frame with a title • new javax.swing.JFrame(“My title”) • Making the frame visible • call setVisible(true) on the frame • Making application close when window is closed: • call setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) on the frame • See code in: • the BasicExample class in the graphics package of the GraphicsExamples project in the repository, as well as, • the ex_1_JFrame_visible package in the FA09-CSE115-SwingExamplesproject in the repository. CSE 115/503 Introduction to Computer Science for Majors I

  7. A simple component • A JLabel is a component that can display text or an image. • It can also have a “tooltip”, a note that appears when you hover the mouse pointer over it, without clicking. • Look at ex_2_JLabel_tooltip CSE 115/503 Introduction to Computer Science for Majors I

  8. Layout managers • First, let’s consider what happens if we add another JLabelto the content pane of the JFrame. • Look at ex_3_JLabels_noLayout • This will show us the need to manage the layout of components added to a container. • See also code in GraphicsExamplesproject for this and the rest of the slides. CSE 115/503 Introduction to Computer Science for Majors I

  9. Applying a layout management strategy • Look at ex_4_staticLayout • In this example we can apply one of four different layout management strategies to a set of seven JLabels that are added to the JFrame’s content pane. CSE 115/503 Introduction to Computer Science for Majors I

  10. Another component: a JButton • A JButton is a component which is typically set up to react to clicks. • Look at ex_5_JButton_noEventHandler, this example just shows a JButton. CSE 115/503 Introduction to Computer Science for Majors I

  11. Events • Clicks on buttons, mouse movements, etc. are all considered events. • A program can react to events by setting up event handlers. • An event handler defines what should happen when a particular event occurs. CSE 115/503 Introduction to Computer Science for Majors I

  12. Event handling – 1 • The component which gives rise to an event is decoupled from the part of the code that handles the event. • This is called the observer pattern. • We have seen this over the past few lectures. A bit of review never hurt :-) • General form: • www.research.ibm.com/designpatterns/example.htm CSE 115/503 Introduction to Computer Science for Majors I

  13. Event handling – 2 • Observer pattern in Java • An observer is called a listener in Java • Button clicks are “ActionEvents”. • Handlers for ActionEvents are ActionListeners. • An event-generator can have many listeners • Use “addActionListener” method to register a listener with a component CSE 115/503 Introduction to Computer Science for Majors I

  14. Event handling for a JButton • Look at ex_6_JButton_eventHandler • In this example an event handler is defined and attached to the JButton. CSE 115/503 Introduction to Computer Science for Majors I

  15. Putting it all together • Look at ex_7_dynamicLayoutEventHandling • In this example we put everything together: • different components are put into different containers • multiple components are put into each container • different layout managers can be applied dynamically • JButtons’ event handlers select and apply different layout managers to the container containing JLabels CSE 115/503 Introduction to Computer Science for Majors I

More Related