outline
play

Outline 0024 Spring 2010 17 :: 2 More information about Swing - PowerPoint PPT Presentation

Outline 0024 Spring 2010 17 :: 2 More information about Swing 0024 Spring 2010 17 :: 3 Java Foundation Classes import java.awt.*; import java.awt.event.*; import javax.swing.*; import


  1. Outline �� 0024 Spring 2010 � – 17 :: 2 – �

  2. More information about Swing 
 0024 Spring 2010 � – 17 :: 3 – �

  3. Java Foundation Classes � import java.awt.*; import java.awt.event.*; � import javax.swing.*; import javax.swing.event.*; � 0024 Spring 2010 � – 17 :: 4 – �

  4. Swing vs. AWT � 0024 Spring 2010 � – 17 :: 5 – � (c) O ʼ Reilly 1999 �

  5. Swing � 0024 Spring 2010 � – 17 :: 6 – �

  6. Top-level containers � 0024 Spring 2010 � – 17 :: 7 – � http://java.sun.com/docs/books/tutorial/ui/features/components.html �

  7. Containers � containers � 0024 Spring 2010 � – 17 :: 8 – �

  8. General-purpose containers � 0024 Spring 2010 � – 17 :: 9 – �

  9. Basic controls � 0024 Spring 2010 � – 17 :: 10 – �

  10. Essential Swing components � AWT � Swing � 0024 Spring 2010 � – 17 :: 11 – �

  11. Example 1 � pack() causes a window to be sized to fit the preferred size and layouts of its sub- components � 0024 Spring 2010 � – 17 :: 12 – �

  12. Example 2 � In this example how a custom frame is created � 0024 Spring 2010 � – 17 :: 13 – �

  13. Build from bottom up � JButton � JLabel � JPanel � JFrame � 0024 Spring 2010 � – 17 :: 14 – �

  14. Layout managers � Organizing Layout of components in a container � FlowLayout � GridLayout � null � none, 
 Left to right, � programmer 
 Top to bottom � sets x,y,w,h � GridBagLayout � BorderLayout � CardLayout � n � w � e � JButton � c � One at a time � s � 0024 Spring 2010 � – 17 :: 15 – �

  15. Combinations � JButton � JButton � JTextArea � 0024 Spring 2010 � – 17 :: 16 – �

  16. Combinations � JButton � JButton � JFrame � n � JPanel: FlowLayout � JPanel: BorderLayout � c � JTextArea � 0024 Spring 2010 � – 17 :: 17 – �

  17. Code: null layout � press me 0024 Spring 2010 � – 17 :: 18 – �

  18. Code: FlowLayout � press me then me 0024 Spring 2010 � – 17 :: 19 – �

  19. import java.awt.*; import javax.swing.*; public class Main { public static void main(String[] args) { JFrame f = new JFrame("title"); JPanel p = new JPanel( ); FlowLayout L = new FlowLayout( ); JButton b1 = new JButton("press me"); JButton b2 = new JButton("then me"); p.setLayout(L); p.add(b1); p.add(b2); f.setContentPane(p); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.pack(); f.setVisible( true ); } } 0024 Spring 2010 � – 17 :: 20 – �

  20. Box Layout � myPane.setLayout(new BoxLayout(myPane, BoxLayout.PAGE_AXIS)); � Component.CENTER_ALIGNMENT � Component.RIGHT_ALIGNMENT � Component.LEFT_ALIGNMENT � 0024 Spring 2010 � – 17 :: 21 – �

  21. A simple Swing program - Events • Objects communicate by “firing” and “handling” events � • Events are sent from a single source object to one or more registered listener objects � 0024 Spring 2010 � – 17 :: 22 – �

  22. Types of event listeners � Act that results in event Listener type ActionListener User clicks a button, presses Return while typing in a text field, or chooses a menu item User closes a frame (main window) WindowListener User presses a mouse button while the cursor is over MouseListener a component User moves the mouse over a component MouseMotionListener Component becomes visible ComponentListener Component gets the keyboard focus FocusListener Table or list selection changes ListSelectionListener 0024 Spring 2010 � – 17 :: 23 – �

  23. Handling events I � Listener � JButton � JLabel � JPanel � JFrame � 0024 Spring 2010 � – 17 :: 24 – �

  24. Event handling II � 0024 Spring 2010 � – 17 :: 25 – �

  25. Example using local class � 0024 Spring 2010 � – 17 :: 26 – �

  26. JDialog � 0024 Spring 2010 � – 17 :: 27 – �

  27. Dialog Example � The JOptionPane class can be used to create simple modal dialogs (icons, title, text and buttons can be customized). � 0024 Spring 2010 � – 17 :: 28 – �

  28. Swing and Threads � 0024 Spring 2010 � – 17 :: 29 – �

  29. Safe Swing code � Unsafe to update state of Swing components Safe to update state of Swing components 0024 Spring 2010 � – 17 :: 30 – �

  30. Event Dispatching � javax.swing.SwingUtilities.invokeLater( new Runnable(){ public void run(){ // Access to components } } ); 0024 Spring 2010 � – 17 :: 31 – �

  31. Handle a job in the background � 0024 Spring 2010 � – 17 :: 32 – �

  32. Model/View/Controller [MVC] � http://www.itu.dk/courses/VOP/E2005/VOP2005E/8_mvc_krasner_and_pope.pdf � 0024 Spring 2010 � – 17 :: 33 – �

  33. Model/View/Controller �  Model �  complete, self-contained representation of object managed by the application 
 e.g., spreadsheet document �  provides a number of services to manipulate the data 
 e.g., recalculate, save �  computation and persistence issues �  Try to separate the model and its services so that it is Swing-free � 0024 Spring 2010 � – 17 :: 34 – �

  34. Model/View/Controller �  View �  tracks what is needed for a particular perspective of the data 
 e.g., bar chart view �  presentation issues �  Controller �  gets input from the user, and uses appropriate information from the view to modify the model 
 e.g., get slider value, trigger chart modify �  interaction issues �  In practice, views and controllers are implemented with Swing components and listeners � 0024 Spring 2010 � – 17 :: 35 – �

  35. Model/View/Controller � 0024 Spring 2010 � – 17 :: 36 – �

  36. MVC � 0024 Spring 2010 � – 17 :: 37 – �

  37. Pluggable “Look and Feel” � 0024 Spring 2010 � – 17 :: 38 – �

  38. Pluggable Look-and-Feel � http://java.sun.com/docs/books/tutorial/ui/overview/demo.html � 0024 Spring 2010 � – 17 :: 39 – �

  39. Extra part � 0024 Spring 2010 � – 17 :: 40 – �

  40. Applets � JApplet � contentPane � JButton � 0024 Spring 2010 � – 17 :: 41 – �

  41. Applet Methods � 0024 Spring 2010 � – 17 :: 42 – �

  42. Application + Applet � Command line � Browser � or � JFrame � JApplet � contentPane � JPanel � JButton � 0024 Spring 2010 � – 17 :: 43 – �

  43. Applet Security � 0024 Spring 2010 � – 17 :: 44 – �

  44. Java 2D API � 0024 Spring 2010 � – 17 :: 45 – �

  45. Graphics � JButton � 0024 Spring 2010 � – 17 :: 46 – �

  46. Coordinate System � (0,0) (width,0) (0,height) (width, height) 0024 Spring 2010 � – 17 :: 47 – �

  47. Painting Components � JButton � JPanel � 0024 Spring 2010 � – 17 :: 48 – �

  48. Painting in Java � 0024 Spring 2010 � – 17 :: 49 – �

  49. Graphics Primitives � http://java.sun.com/docs/books/tutorial/2d/geometry/primitives.html � label 0024 Spring 2010 � – 17 :: 50 – �

  50. Graphics Attributes � 0024 Spring 2010 � – 17 :: 51 – �

  51. Code � Hello World � To paint the inside of a component, 
 override the paintComponent � 0024 Spring 2010 � – 17 :: 52 – �

  52. Creating and Drawing to an Image � http://java.sun.com/docs/books/tutorial/2d/images/drawonimage.html � 0024 Spring 2010 � – 17 :: 53 – �

  53. Reading/Loading Image � 0024 Spring 2010 � – 17 :: 54 – �

  54. How to proceed … � 0024 Spring 2010 � – 17 :: 55 – �

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