Object Oriented programming GUI Instructors Dr Rasha Orban
Object Oriented programming GUI Instructors: Dr. Rasha Orban Dr. Neven Abdelaziz
Introduction �The design of the API for Java GUI programming is an excellent example of how the object-oriented principle is applied. �This chapter serves two purposes: First, it presents the basics of Java GUI programming. Second, it uses GUI to demonstrate OOP. � Specifically, this chapter introduces the framework of the Java GUI API and discusses GUI components and their relationships, containers and layout managers, colors, fonts, borders, image icons, and tool tips
12. 2 Swing vs. AWT � We used the GUI components such as JButton, JLabel, JText. Field, JRadio. Button, and Combo. Box. Why do the GUI component classes have the prefix J? Instead of JButton, why not name it simply Button? In fact, there is a class already named. Button in the java. awt package. � Abstract Windows Toolkit (AWT) is fine for developing simple graphical user interfaces, but not for developing comprehensive GUI projects. � The AWT user-interface components were replaced by a more robust, and flexible library known as Swing components. � Swing components are painted directly on canvases using Java code, except for components that are subclasses of java. awt. Window or java. awt. Panel, which must be drawn using native GUI on a specific platform. � Swing components depend less on the target platform and use less of the native GUI resource. For this reason, Swing components that don’t rely on native GUI are referred to as lightweight components, and AWT components are referred to as heavyweight components.
12. 3 The Java GUI API The GUI API contains classes that can be classified into three groups: component classes, container classes, and helper classes. The component classes, such as JButton, JLabel, and JText. Field, are for creating the user interface. The container classes, such as JFrame, JPanel, and JApplet, are used to contain other components. The helper classes, such as Graphics, Color, Font. Metrics, and Dimension, are used to support GUI components.
12. 4 Frames 12. 4. 1 Creating a Frame To create a user interface, you need to create either a frame or an applet to hold the user-interface components. The frame is not displayed until the frame. set. Visible(true) method is invoked. frame. set. Size(400, 300) specifies that the frame is 400 pixels wide and 300 pixels high. If the set. Size method is not used, the frame will be sized to display just the title bar.
12. 4. 2 Adding Components to a Frame Using the add method, you can add components into the frame, as in Listing 12. 2.
12. 5 Layout Managers Java’s layout managers provide a level of abstraction that automatically maps your user interface on all window systems. This section introduces three basic layout managers: Flow. Layout, Grid. Layout, and Border. Layout. 12. 5. 1 Flow. Layout is the simplest layout manager. The components are arranged in the container from left to right in the order in which they were added. When one row is filled, a new row is started. You can specify the way the components are aligned by using one of three constants: Flow. Layout. RIGHT, Flow. Layout. CENTER, or Flow. Layout. LEFT. You can also specify the gap between components in pixels.
12. 6 Using Panels as Subcontainers Suppose that you want to place ten buttons and a text field in a frame. The buttons are placed in grid formation, but the text field is placed on a separate row. It is difficult to achieve the desired look by placing all the components in a single container. With Java GUI programming, you can divide a window into panels. Panels act as subcontainers to group userinterface components. You add the buttons in one panel, then add the panel into the frame.
The Swing version of panel is JPanel. You can use new JPanel() to create a panel with a default Flow. Layout manager or new JPanel(Layout. Manager) to create a panel with the specified layout manager. Use the add(Component) method to add a component to the panel. For example, the following code creates a panel and adds a button to it: JPanel p = new JPanel(); p. add(new JButton("OK")); Panels can be placed inside a frame or inside another panel. The following statement places panel p into frame f: f. add(p);
12. 7 The Color Class canr, set colors for GUIa color components by using in. You which g, and b specify by its red, green, the andjava. awt. Color blue components. class. Colors are color made= new of red, green, 100, and 100); blue components, each For example, Color(128, represented by an int value that describes its intensity, ranging from 0 (darkest shade) to 255 (lightest shade). This is known as the RGB model. You can create a color using the following constructor: public Color(int r, int g, int b); Here is an example of setting the background and foreground of a button: JButton jbt. OK = new JButton("OK"); jbt. OK. set. Background(color); jbt. OK. set. Foreground(new Color(100, 1, 1));
12. 8 The Font Class
12. 9 Common Features of Swing GUI Components Up to reader
12. 10 Image Icons Java currently supports three image formats: GIF (Graphics Interchange Format), JPEG (Joint Photographic Experts Group), and PNG (Portable Network Graphics). Image. Icon icon = new Image. Icon("image/us. gif"); An image icon can be displayed in a label or a button using new
Thanks for Attention
- Slides: 27