Presentation is loading. Please wait.

Presentation is loading. Please wait.

GUI. Swing Class Hierarchy Swing Components Swing Conatiners  JFrame – top-level window to store components.

Similar presentations


Presentation on theme: "GUI. Swing Class Hierarchy Swing Components Swing Conatiners  JFrame – top-level window to store components."— Presentation transcript:

1 GUI

2 Swing Class Hierarchy

3 Swing Components

4 Swing Conatiners  JFrame – top-level window to store components

5 Swing Conatiners JPanel – container; can be embedded in JFrame

6 Layouts  FlowLayout  arranges elements in a row  elements centered by default within container  GridLayout  subdivides container into cells of identical sizes  components take up all available space of a cell  BorderLayout  subdivides container into 5 areas: N, S, E, W, Center

7 Layouts 3x3 GridLayout4x1 GridLayoutBorderLayout FlowLayout used to place the 3 panels in the Jframe.

8 Listeners  Process events  ActionListener (JButton, Timer, JComboBox)‏  ChangeListener (JSlider)‏  MouseListener, MouseMotionListener  Listeners are interfaces; must implement ALL specified methods  ActionListener: void actionPerformed(ActionEvent e)‏  ChangeListener: void stateChanged(ChangeEvent e)‏  MouseListener: void mouseClicked(MouseEvent e) void mousePressed(MouseEvent e) void mouseReleased(MouseEvent e) void mouseEntered(MouseEvent e) void mouseExited(MouseEvent e)‏  MouseMotionListener: void mouseMoved(MouseEvent e) void mouseDragged(MouseEvent e)

9 Adapter classes  Convenience classes  server as intermediaries between available interfaces (e.g. listeners) and the user defined classes (e.g. listeners)  make it possible to implement only the “important” methods

10 Adapter classes  Convenience classes  server as intermediaries between available interfaces (e.g. listeners) and the user defined classes (e.g. listeners)  make it possible to implement only the “important” methods abstract class MouseAdapter implements MouseListener, MouseMotionListener { void mousePressed(MouseEvent e) { // empty body } void mouseReleased(MouseEvent e) { // empty body } void mouseEntered(MouseEvent e) { // empty body } void mouseExited(MouseEvent e) { // empty body } voidmouseMoved(MouseEvent e) { // empty body } voidmouseDragged(MouseEvent e) { // empty body } } MouseListener methods MouseMotionListener methods

11 Adapter classes  Convenience classes  server as intermediaries between available interfaces (e.g. listeners) and the user defined classes (e.g. listeners)  make it possible to implement only the “important” methods abstract class MouseAdapter implements MouseListener, MouseMotionListener { abstract void mousePressed(MouseEvent e); abstract void mouseReleased(MouseEvent e); abstract void mouseEntered(MouseEvent e); abstract void mouseExited(MouseEvent e); abstract voidmouseMoved(MouseEvent e); asbtract voidmouseDragged(MouseEvent e); }

12 File IO

13  PrintWriter – for writing to file; same methods as in System.out  Pretend that all output goes to screen try { PrintWriter output = new PrintWriter(“input-file.txt”); output.println(“Hello”); output.printl(42); output.println(“3.1459”); output.close(); } catch (Exception e) { // report error }

14 File IO  Scanner – for reading from file; same as in CS111  Contents is viewed as a stream of characters  Reading stops as soon as appropriate token found; otherwise fails try { Scanner input = new Scanner(new File(“input-file.txt”)); String word = input.next(); int answer = input.nextInt(); double pi = input.nextDouble(); input.close(); } catch (Exception e) { // report error }

15 Command-Line

16 Command Line Arguments  Make it possible to send data to the program on execution public static void main(String[] args)‏ { System.out.println(“Parameters given on start-up:”); System.out.println(“Number of params: “ + args.length); for (int i = 0; i < args.length; i++) { System.out.println(args[i]); // i-th parameter value }

17 Exceptions

18  Mechanism for handling unexpected conditions (errors)‏  Force the programmer to handle error conditions  Allow for separating the logic of the code from error-handling  Sometimes no other option to report the value:  constructor  minElement, maxElement  Example – see FileIO

19 Exceptions  Can create our own type of exception (should inherit from Exception)‏ class EmptyArrayException extends Exception { public void EmptyArrayException()‏ { super(); } public void EmptyArrayException(String message)‏ { super(message); }

20 Exceptions  Example of our own Exception --- throw/throws int minElement(int[] numbers) throws EmptyArrayException { // empty array --- throw an exception if (numbers.length == 0)‏ { throw EmptyArrayException(“Empty array given”); } // //... compute smallest element... // }

21 extends vs. implements class vs. interface multiple inheritance

22  An interface specifies a collection of methods  An interface does not have data members or code for methods  A class that implements the interface must provide code (implementation) for all methods listed in the interface interface RemoteControllable { public void play(); public void stop(); public void ffwd(); } class VCR implements RemoteControllable { // must provide code for all methods in RemoteControllable } class DVD implements RemoteControllable { // must provide code for all methods in RemoteControllable } Interfaces

23 Multiple Inheritance String name; //species void setName(String n) {......... } String name; // pet’s name void setName(String n) {......... } Class MammalClass Pet Class Cat

24 Multiple Inheritance String name; //species void setName(String n) {......... } String name; // pet’s name void setName(String n) {......... } Class MammalClass Pet Which name is inherited? Which setName() is inherited? Class Cat

25  Complex rules required to disambiguate in multiple inheritance  Java does not support multiple inheritance; C++ does Multiple Inheritance String name; //species void setName(String n) {......... } String name; // pet’s name void setName(String n) {......... } Class MammalClass Pet Which name is inherited? Which setName() is inherited? Class Cat

26  What if we still want a Cat to behave like a Mammal and Pet interface Mammal { // all methods (behaviors) common to mammals // no code is specified, just the behavior names (methods) } class Pet { // description of generic pet } class Cat extends Pet implements Mammal { // has all behaviors of a Pet – could override some // must implement all behaviors of Mammal } Multiple Inheritance

27  Can now use Cat objects anywhere Mammal behaviors required or where Pet objects are required public void hunt(Mammal predator, Mammal prey) { // do something; could send a Cat as // either prey or predator } public void doTricks(Pet pet) { // do something; could send a Cat for pet } Multiple Inheritance

28  A Java class can only extend from one other class (single inheritance)  A Java class can implement multiple interfaces – can ambiguity arise? Multiple Interfaces Implementation

29  A Java class can only extend from one other class (single inheritance)  A Java class can implement multiple interfaces – no ambiguity since  an interface cannot have data members  an interface cannot have code (implementation) for methods Multiple Interfaces Implementation


Download ppt "GUI. Swing Class Hierarchy Swing Components Swing Conatiners  JFrame – top-level window to store components."

Similar presentations


Ads by Google