Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Introduction to Java Classes, events, GUI’s Understand: How to use TextPad How to define a class or object How to create a GUI interface How event-driven programming works How classes inherit methods Overall program structure Major Example Red colorMe Green darker Blue reSize Red Green Blue Each color is mixture of amounts of Red, Green, and Blue ( 200, 50 125 ) values in range: 0 … 255 Classes or Objects in Java Illustrate with Rectangle object Class definition of rectangle including constructor, properties, methods Test program that creates instance of rectangle Class blueprint Class Rectangle { int height , width ; constructor public Rectangle (int h, int w ) { } height = h; width = w; methods int findArea ( ) { return height * width ; } int getHght ( ) { return height } } instance variables or properties Test program saved in file TestRectangle public class TestRectangle { constructor public static void main ( String [ ] args ) { instance r of rectangle Rectangle r ; r = new Rectangle (2, 4) ; int area = r.findArea ( ); System.out.println ( "Area is: " + area ) } } say: r’s findArea public class Rectangle { public static void main ( String [ ] args ) { Rectangle r ; r = new Rectangle (2, 4) ; int area = r.findArea ( ); System.out.println ( "Area is: " + area ) ; another instance Rectangle s = new Rectangle (5, 10) ; System.out.println ( "Area is: " + s.findArea ( ) ); } } Major Example object Program Design Red colorMe Green darker Blue reSize Design object GUI components Recognize & handle events Make Test program to create instances GUI design inherit properties of frames Build object on top of frame class Put GUI elements in frame: Add panel to frame Add labels, textfields, & buttons Make object listen for clicks on buttons object text fields Red Green Blue labels colorMe darker reSize buttons panel Asynchronously called Event-handler design Recognize source of event Take appropriate action - grab data from textfield - convert data to integer - use value to make RGB color - RGB: ( r, g, b ) - change color of panel Program Structure for Demo Program Structure import java.awt.*; public class TestColorizer { public static void main (String[ ] args) { … } } class Colorizer extends JFrame implements ActionListener { private JTextField Num1 … ; public Colorizer( ) { … } public void actionPerformed(ActionEvent e) { … } } Class JFrame class Colorizer extends implements ActionListener { Instance variables private JTextField Num1 … ; public Colorizer( ) { … } public void actionPerformed(ActionEvent e) { … } constructor } Event-handler JFrame title bar X Content Pane Colorizer object extends Jframe X Red colorMe Green darker Blue reSize JFrame Title Bar Content Pane Panel JLabel JTextField JButton Constructor public Colorizer ( ) { objects p1 = new JPanel ( ); this.getContentPane().add(p1); p1.add(new JLabel(“Red")); p1.add(Num1 = new JTextField(3 )); p1.add(colorMe = new JButton("ColorMe")); colorMe.addActionListener (this } ); Constructor un-named since not referred to in eventhandler public Colorizer ( ) { p1 = new JPanel ( ); this.getContentPane().add(p1); p1.add(new JLabel(“Red")); p1.add(Num1 = new JTextField(3 )); p1.add(colorMe = new JButton("ColorMe")); colorMe.addActionListener (this } system listens for button click ); named so can refer to in event-handler Class…again class Colorizer extends JFrame implements ActionListener { instance variables private JTextField Num1 ; private JPanel p1 ; private JButton colorMe ; public Colorizer( ) { … } public void actionPerformed(ActionEvent e) { … } } Event-handler method signature recognize event source public void actionPerformed (ActionEvent e) { if (e.getSource() == colorMe ) { int R = Integer.parseInt ( Num1.getText( ) ); c = new Color (R, 100, 150); p1.setBackground ( c ); } } Create color Get & convert number Test program import java.awt.*; import java.awt.event.*; import javax.swing.*; public class TestColorizer { public static void main (String[ ] args) { Colorizer f = new Colorizer( ); create instance of object f.setSize (400,400); f.setVisible(true); } } use inherited methods prototype program import java.awt.*; import java.awt.event.*; import javax.swing.*; public class TestColorizer { public static void main (String[ ] args) { Colorizer f = new Colorizer( ); f.setSize (400,400); f.setVisible(true); } } class Colorizer extends JFrame { private JTextField Num1 ; private JPanel p1 ; private JButton colorMe; private Color c ; implements ActionListener public Colorizer ( ) { p1 = new JPanel ( ); this.getContentPane().add(p1); p1.add(new JLabel(“Red")); p1.add(Num1 = new JTextField(3 )); p1.add(colorMe = new JButton("ColorMe")); } } colorMe.addActionListener (this ); public void actionPerformed (ActionEvent e) { if (e.getSource() == colorMe ) Integer.parseInt ( Num1.getText();) { int R = = new Color (R, 100, 150); } cp1.setBackground ( c ); } Outline Demo Colorizer Example compilation execution RGB representation buttons darken-button Colorizer class main program TextPad panel color resize-button Classes in Java Rectangle example properties or instance variables instances of class constructor for class Outline Colorizer Class Design program structure constructor GUI setup event-handler constructor panel event-handler recognize event-source labels grab text textFields make Color buttons reset background color actionListeners reset window size instance variables declarations Terms and Concepts TextPad Classes Objects Methods Instances of objects Instance variables Event-driven programming Asynchronous Inheriting properties & methods extend class Constructors Method signature JFrames GUI components JTextFields JButtons JLabels JPanels JPanel’s add method this notation ActionEvent ActionEvent’e getSource() method JFrame’s setSize method JFrame’s setVisible method import statements Multiple instances Color objects RGB representation JPanel’s setBackground ( c) method Test program Program structure