advanced java class
play

Advanced Java Class GUI part 1 Intro to GUI GUI = Graphical User - PowerPoint PPT Presentation

Advanced Java Class GUI part 1 Intro to GUI GUI = Graphical User Interface -- Gooey Just because its gooey does not mean you may write messy code. GUI is the view layer, and it should be separated from the


  1. Advanced Java Class GUI – part 1

  2. Intro to GUI • GUI = Graphical User Interface -- “Gooey” • Just because it’s “gooey” does not mean you may write messy code. – GUI is the “view layer”, and it should be separated from the controller and model layers. • AWT = Abstract Windowing Toolkit • Swing = better versions of AWT classes

  3. GUI terminology • Components = buttons, text fields, frames, dialog boxes, scrollbars, popup menus, scrollable lists, etc. • Containers = things that hold Components. A container is also a component. Examples: Panel, Window. • LayoutManagers arrange Components inside of Containers. • Use Graphics objects to draw directly onto a component. This can draw shapes, text, images, etc. • “Painting” is when a component is drawn onto the screen. • Events occur when a user clicks the mouse, types on the keyboard, types in a text field, or selects an item from a list. • Listeners (or adapters) handle events, and are specific to a certain type of event.

  4. A few important GUI packages • AWT (java.awt and subpackages) – AWT Events (java.awt.event) – Java2D (java.awt.geom) • Swing (javax.swing and subpackages) – Swing Events (javax.swing.event)

  5. Swing vs. AWT • Don’t mix AWT with Swing, and always use Swing if available AWT was original GUI API – quite limited! • – not very platform independent – you must do double-buffering yourself – native windows consume a lot of system resources Swing is built on AWT, and is a big improvement • – mostly light-weight classes – 100% pure java = platform independent, because it doesn’t depend on native code – pluggable look and feel allows the program to reflect the platform it’s currently running on – double buffers automatically • Note that Swing components start with “J”. – “Frame” refers to the old AWT class. – “JFrame” refers to the new Swing class.

  6. Swing Components • common swing components: see figure 6- 3, p 393-396 • MVC layers – The model layer is a separate class, which may be shared by multiple Swing components – The Controller and View layers of a component are not separated, because of the nature of GUI components – the view is the controller! – See figure 6-4 on page 397 & 398

  7. Layout Managers • LayoutManagers arrange components within Containers. • They account for things that you cannot know at compile time, like differing screen resolutions, platform differences, fonts, etc. • Containers are components, and child containers can have a LayoutManger that is different from their parent’s.

  8. Using LayoutManagers • Create a new Container. It has a default LayoutManager, which you can override by calling the setLayout method on it. • LayoutManager classes: – BorderLayout – BoxLayout – CardLayout – FlowLayout – GridBagLayout – GridLayout

  9. Layout Paradigms • BorderLayout: North, South, East, West, and Center. figures 6-12 & 6-13 • FlowLayout: lines the components up horizontally from left to right. Can specifiy justification; default is center. fig. 6-14 • GridLayout: has columns and rows. components are added left to right and top to bottom, like a text editor. figure 6-15 • GridbagLayout: more flexible than GridLayout – components can be added to any cell, and can span multiple rows and columns. figure 6-16 • CardLayout: imagine a deck of cards – only one component is visible at a time. • BoxLayout: components are in a single-file line, which can be horizontal or vertical. figure 6-17 • Note: the above figures are in a JTabbedPane, which does it’s own LayoutManaging.

  10. Painting • You can override a Swing component’s paintComponent method if you don’t want to use the component’s default appearance. Call super.paintComponent (unless you want transparency). • Call repaint() when you want to explicitly refresh what the user is seeing. • You can also override update() if you want close control over the refreshing of a part of the component’s appearance.

  11. Methods you can paint with • Graphics class • Graphics class, continued... – drawString – setColor – drawLine – setFont – drawRect – drawPolygon – setXORMode( Color c) – drawArc • gives colors that are an – drawImage XOR of c and what was – fillRect already there – fun to play – fillPolygon with – fillArc – setPaintMode() • just overwrite what’s there – this is the default

  12. Java 2D • Parts of API – Graphics2D class in java.awt – java.awt.geom – java.awt.font – java.awt.image • Advantages over Graphics class – antialiasing smooths edges – can fill with contents other than a solid color – can use any system font – printing is easier (see chapter 7) – can paint any shape you want, not just predefined ones – “Strokes” – any width, and varying patterns (dashed, etc.) – can squish, stretch, rotate, etc. anything you draw

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend