Presentation is loading. Please wait.

Presentation is loading. Please wait.

Things to mention public static void main(String [] args) –The starting point for a free-standing Java application (i.e. one not run from the DrJava interactions.

Similar presentations


Presentation on theme: "Things to mention public static void main(String [] args) –The starting point for a free-standing Java application (i.e. one not run from the DrJava interactions."— Presentation transcript:

1 Things to mention public static void main(String [] args) –The starting point for a free-standing Java application (i.e. one not run from the DrJava interactions pane) imports –Allow us to use, with unqualified names, things defined in other packages comments – ignored by the compiler –block comments /* … */ –single-line comments // –javadoc comments and tags (?) /** … */ CSE 115/503 Introduction to Computer Science for Majors I1

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 I2

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 I3

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 I4

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 5

6 CSE 115/503 Introduction to Computer Science for Majors I 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 FA10-CSE115-SwingExamples project in the repository. 6

7 CSE 115/503 Introduction to Computer Science for Majors I 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 7

8 CSE 115/503 Introduction to Computer Science for Majors I Layout managers First, let’s consider what happens if we add another JLabel to 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 GraphicsExamples project for this and the rest of the slides. 8

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 I9

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. 10

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 I11

12 CSE 115/503 Introduction to Computer Science for Majors I 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. General form: –www.research.ibm.com/designpatterns/example.htmwww.research.ibm.com/designpatterns/example.htm 12

13 CSE 115/503 Introduction to Computer Science for Majors I 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 13

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

15 CSE 115/503 Introduction to Computer Science for Majors I 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 15


Download ppt "Things to mention public static void main(String [] args) –The starting point for a free-standing Java application (i.e. one not run from the DrJava interactions."

Similar presentations


Ads by Google