SlideShare a Scribd company logo
https://www.facebook.com/Oxus20
oxus20@gmail.com JAVA
Virtual
Keyboard
» Exception
Handling
» JToggleButton Class
» Robot Class
» Toolkit Class
Prepared By: Nahid Ahmadi
Edited By: Abdul Rahman Sherzad
Agenda
» Virtual Keyboard
» Exception Handling
» JToggleButton Class
» Robot Class
» Toolkit Class
» Virtual Keyboard Implementation
2
https://www.facebook.com/Oxus20
https://www.facebook.com/Oxus20
3
Virtual Keyboard Using JAVA
4
https://www.facebook.com/Oxus20
Introduction to Virtual Keyboard
» A virtual keyboard is considered to be a
component to use on computers without a
real keyboard e.g.
˃ touch screen computer
» A mouse can utilize the keyboard
functionalities and features. 5
https://www.facebook.com/Oxus20
Virtual Keyboard Usage
» It is possible to obtain keyboards for the
following specific purposes:
˃ Keyboards to fill specific forms on sites
˃ Special key arrangements
˃ Keyboards for dedicated commercial sites
˃ etc.
» In addition, Virtual Keyboard used for the
following subjects:
˃ Foreign Character Sets
˃ Touchscreens
˃ Bypass key loggers
6
https://www.facebook.com/Oxus20
https://www.facebook.com/Oxus20
7
Exception Handling
» A program can be written assuming that nothing unusual or
incorrect will happen.
˃ The user will always enter an integer when prompted to do so.
˃ There will always be a nonempty list for a program that takes an entry from the list.
˃ The file containing the needed information will always exist.
» Unfortunately, it isn't always so.
» Once the core program is written for the usual, expected
case(s), Java's exception-handling facilities should be
added to accommodate the unusual, unexpected case(s).
8
Exception Hierarchy
9
https://www.facebook.com/Oxus20
Exception Handling Demo
Source code
public class ExceptionHandlingDemo {
public static void main(String args[]) {
try {
int scores[] = { 90, 85, 75, 100 };
System.out.println("Access element nine:" + scores[9]);
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("Exception thrown:" + e);
}
System.out.println("nWithout Exception Handling I was
not able to execute and print!");
}
}
10
https://www.facebook.com/Oxus20
Exception Handling Demo
OUTPUT
Exception
thrown:java.lang.ArrayIndexOutOfBoundsEx
ception: 9
Without Exception Handling I was not
able to execute and print!
11
https://www.facebook.com/Oxus20
https://www.facebook.com/Oxus20
12
JToggleButton Class
» JToggleButton is an implementation of a two-state
button and is used to represent buttons that can be
toggled ON and OFF
» The JRadioButton and JCheckBox classes are
subclasses of this class.
» The events fired by JToggleButtons are slightly
different than those fired by JButton. 13
https://www.facebook.com/Oxus20
JToggleButton Demo
» The following example on next slide demonstrates
a toggle button. Each time the toggle button is pressed,
its state is displayed in a label.
» Creating JToggleButton involves these steps:
1. Create an instance of JToggleButton.
2. Register an ItemListener to handle item events generated by the button.
3. To determine if the button is on or off, call isSelected().
14
https://www.facebook.com/Oxus20
JToggleButton Demo
Source Code
import java.awt.FlowLayout;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JToggleButton;
class JToggleButtonDemo {
JLabel lblOutput;
JToggleButton btnOnOff;
JFrame win;
JToggleButtonDemo() {
// JFrame Customization
win = new JFrame("Using JToggleButton");
win.setLayout(new FlowLayout());
win.setSize(300, 80);
win.setLocationRelativeTo(null);
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
15
https://www.facebook.com/Oxus20
// JToggleButton and JLabel Customization
lblOutput = new JLabel("State : OFF");
btnOnOff = new JToggleButton("On / Off", false);
// Add item listener for JToggleButton.
btnOnOff.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent ie) {
if (btnOnOff.isSelected()) {
lblOutput.setText("State : ON");
} else {
lblOutput.setText("State : OFF");
}
}
});
// Add toggle button and label to the content pane.
win.add(btnOnOff);
win.add(lblOutput);
win.setVisible(true);
}
public static void main(String args[]) {
new JToggleButtonDemo();
}
} 16
https://www.facebook.com/Oxus20
JToggleButton Demo
OUTPUT
17
https://www.facebook.com/Oxus20
https://www.facebook.com/Oxus20
18
Java Robot Class
» This class is used to generate native
system input events for the
purposes of
˃ test automation
˃ self-running demos
˃ and other applications where control of the mouse
and keyboard is needed.
» This class has three main
functionalities:
˃ mouse control
˃ keyboard control
˃ and screen capture.
https://www.facebook.com/Oxus20
19
Robot Class Demo
» Perform keyboard operation with help of java Robot class.
» The following example on next slide will demonstrate the
Robot class usage to handle the keyboard events.
» The program will write the word "OXUS20" inside the
TextArea automatically after running the program.
» The word "OXUS20" will be written character by character
with one second delay between each on of the
characters. 20
https://www.facebook.com/Oxus20
Robot Class Demo
Source Code
import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Robot;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class RobotDemo extends JFrame {
public RobotDemo() {
// JFrame with TextArea Settings
setTitle("OXUS20 Robot Demo");
setSize(400, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
JTextArea txtOXUS = new JTextArea();
add(txtOXUS, BorderLayout.CENTER);
setVisible(true);
} 21
https://www.facebook.com/Oxus20
public static void main(String[] args) {
new RobotDemo();
// Store Keystrokes "OXUS20" in an array
int keyInput[] = { KeyEvent.VK_O, KeyEvent.VK_X, KeyEvent.VK_U,
KeyEvent.VK_S, KeyEvent.VK_2, KeyEvent.VK_0 };
try {
Robot robot = new Robot();
// press the shift key
robot.keyPress(KeyEvent.VK_SHIFT);
// This types the word 'OXUS20' in the TextArea
for (int i = 0; i < keyInput.length; i++) {
if (i > 0) {
robot.keyRelease(KeyEvent.VK_SHIFT);
}
robot.keyPress(keyInput[i]);
// pause typing for one second
robot.delay(1000);
}
} catch (AWTException e) {
System.err.println("Exception is happening!");
}
} // end of main()
} // end of RobotDemo class 22
https://www.facebook.com/Oxus20
https://www.facebook.com/Oxus20
23
Toolkit class
» Toolkit is an AWT class acting as a base class for all
implementations of AWT.
» This class offers a static method getDefaultToolkit() to return
a Toolkit object representing the default implementation of
AWT.
» You can use this default toolkit object to get information of the
default graphics device, the local screen, and other purposes.
» Next slide demonstrate an example finding out the actual size
and resolution of your screen. 24
https://www.facebook.com/Oxus20
Toolkit Class Demo
Source Code
import java.awt.Dimension;
import java.awt.Toolkit;
public class ToolkitDemo {
public static void main(String[] a) {
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension d = tk.getScreenSize();
System.out.println("Screen size: " + d.width + "x" + d.height);
System.out.println("nScreen Resolution: " +
tk.getScreenResolution());
}
}
25
https://www.facebook.com/Oxus20
Toolkit Class Demo
OUTPUT
Screen Size: 1366x768
Screen Resolution: 96
26
https://www.facebook.com/Oxus20
Another Toolkit Example
» Change the state of the Caps Lock key
˃ If Caps Lock key is ON turn it OFF
˃ Otherwise, if Caps Lock key is OFF turn it ON
» Toolkit.getDefaultToolkit().setLockingKeyState(
KeyEvent.VK_CAPS_LOCK, false);
˃ This line of code will change the state of the Caps Lock key OFF.
» Toolkit.getDefaultToolkit().setLockingKeyState(
KeyEvent.VK_CAPS_LOCK, true);
˃ This line of code will change the state of the Caps Lock key ON.
» Accordingly the keyboard LEDs flash will become
ON or OFF. 27
https://www.facebook.com/Oxus20
Another Toolkit Class Demo
Source Code
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JToggleButton;
class ChangeCapsLockStateDemo {
JLabel lblOutput;
JToggleButton btnOnOff;
JFrame win;
ChangeCapsLockStateDemo() {
// JFrame Customization
win = new JFrame("Using JToggleButton");
win.setLayout(new FlowLayout());
win.setSize(300, 80);
win.setLocationRelativeTo(null);
win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 28
https://www.facebook.com/Oxus20
// JToggleButton and JLabel Customization
lblOutput = new JLabel("CapsLock : OFF");
Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, false);
btnOnOff = new JToggleButton("On / Off", false);
// Add item listener for JToggleButton.
btnOnOff.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent ie) {
if (btnOnOff.isSelected()) {
lblOutput.setText("CapsLock : ON");
Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, true);
} else {
lblOutput.setText("CapsLock : OFF");
Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, false);
}
}
});
// Add toggle button and label to the content pane.
win.add(btnOnOff);
win.add(lblOutput);
win.setVisible(true);
}
public static void main(String args[]) {
new ChangeCapsLockStateDemo();
}
}
29
https://www.facebook.com/Oxus20
Another Toolkit Class Demo
OUPUT
30
https://www.facebook.com/Oxus20
https://www.facebook.com/Oxus20
31
Java Virtual Keyboard
Source Code
import java.awt.AWTException;
import java.awt.Color;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JToggleButton;
public class JavaVirtualKeyboard implements ActionListener, ItemListener {
32
https://www.facebook.com/Oxus20
Java Virtual Keyboard
OUTPUT
33
https://www.facebook.com/Oxus20
Complete Source Code will
be published very soon
Check Our Facebook Page
(https://www.facebook.com/Oxus20)
34
https://www.facebook.com/Oxus20
END
https://www.facebook.com/Oxus20
35

More Related Content

PDF
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
PPTX
REST API in Salesforce
PDF
S3, 넌 이것까지 할 수있네 (Amazon S3 신규 기능 소개) - 김세준, AWS 솔루션즈 아키텍트:: AWS Summit Onli...
PDF
[2017 Gaming on AWS] Serverless로 게임 서비스 구현하기
PPTX
Azure-AD.pptx
PPTX
Power BI: Introduction with a use case and solution
PPTX
AWS Lambda
PDF
The business today - PowerApps, Power BI y Microsoft Flow
대용량 데이터베이스의 클라우드 네이티브 DB로 전환 시 확인해야 하는 체크 포인트-김지훈, AWS Database Specialist SA...
REST API in Salesforce
S3, 넌 이것까지 할 수있네 (Amazon S3 신규 기능 소개) - 김세준, AWS 솔루션즈 아키텍트:: AWS Summit Onli...
[2017 Gaming on AWS] Serverless로 게임 서비스 구현하기
Azure-AD.pptx
Power BI: Introduction with a use case and solution
AWS Lambda
The business today - PowerApps, Power BI y Microsoft Flow

What's hot (20)

PDF
Azure Active Directory
PDF
Azure Pipelines Multistage YAML - Top 10 Features
PPT
Entity Relationship Model
PDF
Powering Interactive BI Analytics with Presto and Delta Lake
PDF
Data Visualization Using PowerBI.pdf
PPTX
Basic introduction to power query
PPTX
Salesforce Service Cloud
PDF
Excel Power Query Secrets: How to Cut Data Prep Time by 75%
PDF
Dashboard in a Day
PDF
March 2023 CIAOPS Need to Know Webinar
PPTX
Azure storage
PPTX
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
PPTX
Microsoft Azure alerts
PDF
Android Networking
PDF
Innovation morning power platform
PPTX
Salesforce apex hours : Introduction to external services
PDF
Customer Service in Salesforce: Managing Cases Effectively
PPTX
WebSphere Commerce v7 Data Load
PPTX
No sql Orientado a documento
PDF
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...
Azure Active Directory
Azure Pipelines Multistage YAML - Top 10 Features
Entity Relationship Model
Powering Interactive BI Analytics with Presto and Delta Lake
Data Visualization Using PowerBI.pdf
Basic introduction to power query
Salesforce Service Cloud
Excel Power Query Secrets: How to Cut Data Prep Time by 75%
Dashboard in a Day
March 2023 CIAOPS Need to Know Webinar
Azure storage
Banco de Dados Não Relacionais vs Banco de Dados Relacionais
Microsoft Azure alerts
Android Networking
Innovation morning power platform
Salesforce apex hours : Introduction to external services
Customer Service in Salesforce: Managing Cases Effectively
WebSphere Commerce v7 Data Load
No sql Orientado a documento
[AWS Dev Day] 앱 현대화 | AWS Fargate를 사용한 서버리스 컨테이너 활용 하기 - 삼성전자 개발자 포털 사례 - 정영준...
Ad

Viewers also liked (20)

PPTX
How to replace linux system call by module
PDF
Java Regular Expression PART II
PDF
Fal-e-Hafez (Omens of Hafez) Cards in Persian using Java
PDF
Java Regular Expression PART I
PDF
Everything about Object Oriented Programming
PPTX
TKP Java Notes for Teaching Kids Programming
PDF
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
PDF
Java Unicode with Cool GUI Examples
PPTX
Conditional Statement
PDF
Java Applet and Graphics
PDF
PHP Basic and Fundamental Questions and Answers with Detail Explanation
PDF
Object Oriented Concept Static vs. Non Static
PDF
Java Guessing Game Number Tutorial
PPTX
Structure programming – Java Programming – Theory
PDF
Create Splash Screen with Java Step by Step
PDF
Web Design and Development Life Cycle and Technologies
PDF
Everything about Database JOINS and Relationships
PDF
Note - Java Remote Debug
DOCX
Core java notes with examples
PDF
Java Unicode with Live GUI Examples
How to replace linux system call by module
Java Regular Expression PART II
Fal-e-Hafez (Omens of Hafez) Cards in Persian using Java
Java Regular Expression PART I
Everything about Object Oriented Programming
TKP Java Notes for Teaching Kids Programming
Java Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes
Java Unicode with Cool GUI Examples
Conditional Statement
Java Applet and Graphics
PHP Basic and Fundamental Questions and Answers with Detail Explanation
Object Oriented Concept Static vs. Non Static
Java Guessing Game Number Tutorial
Structure programming – Java Programming – Theory
Create Splash Screen with Java Step by Step
Web Design and Development Life Cycle and Technologies
Everything about Database JOINS and Relationships
Note - Java Remote Debug
Core java notes with examples
Java Unicode with Live GUI Examples
Ad

Similar to Java Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes (20)

PDF
Java Applet and Graphics
PDF
JAVA GUI PART I
DOCX
UIAutomator
PDF
Build your first rpa bot using IBM RPA automation
PPT
Swtbot
PDF
The java rogramming swing _tutorial for beinners(java programming language)
PDF
The java swing_tutorial
PPT
Session2-J2ME development-environment
KEY
SWTBot Tutorial
PDF
What Web Developers Need to Know to Develop Windows 8 Apps
PDF
Dojo1.0_Tutorials
PDF
Dojo1.0_Tutorials
PPT
Applet Architecture - Introducing Java Applets
PDF
React Native custom components
PDF
Create Splash Screen with Java Step by Step
PDF
Why You Shouldn't Write OO
PDF
Organizing jQuery Projects Without OO
PPT
Basic of Applet
PPT
Top 3 SWT Exceptions
PDF
MOPCON 2014 - Best software architecture in app development
Java Applet and Graphics
JAVA GUI PART I
UIAutomator
Build your first rpa bot using IBM RPA automation
Swtbot
The java rogramming swing _tutorial for beinners(java programming language)
The java swing_tutorial
Session2-J2ME development-environment
SWTBot Tutorial
What Web Developers Need to Know to Develop Windows 8 Apps
Dojo1.0_Tutorials
Dojo1.0_Tutorials
Applet Architecture - Introducing Java Applets
React Native custom components
Create Splash Screen with Java Step by Step
Why You Shouldn't Write OO
Organizing jQuery Projects Without OO
Basic of Applet
Top 3 SWT Exceptions
MOPCON 2014 - Best software architecture in app development

More from Abdul Rahman Sherzad (20)

PDF
Data is the Fuel of Organizations: Opportunities and Challenges in Afghanistan
PDF
PHP Unicode Input Validation Snippets
PDF
Iterations and Recursions
PDF
Sorting Alpha Numeric Data in MySQL
PDF
PHP Variable variables Examples
PDF
Cross Join Example and Applications
PDF
Applicability of Educational Data Mining in Afghanistan: Opportunities and Ch...
PDF
Web Application Security and Awareness
PDF
Database Automation with MySQL Triggers and Event Schedulers
PDF
Mobile Score Notification System
PDF
Herat Innovation Lab 2015
PDF
Evaluation of Existing Web Structure of Afghan Universities
PDF
PHP Basic and Fundamental Questions and Answers with Detail Explanation
PDF
Fundamentals of Database Systems Questions and Answers
PDF
Everything about Database JOINS and Relationships
PDF
Fal-e-Hafez (Omens of Hafez) Cards in Persian using Java
PDF
Web Design and Development Life Cycle and Technologies
PDF
Java Regular Expression PART II
PDF
Java Regular Expression PART I
PDF
Object Oriented Concept Static vs. Non Static
Data is the Fuel of Organizations: Opportunities and Challenges in Afghanistan
PHP Unicode Input Validation Snippets
Iterations and Recursions
Sorting Alpha Numeric Data in MySQL
PHP Variable variables Examples
Cross Join Example and Applications
Applicability of Educational Data Mining in Afghanistan: Opportunities and Ch...
Web Application Security and Awareness
Database Automation with MySQL Triggers and Event Schedulers
Mobile Score Notification System
Herat Innovation Lab 2015
Evaluation of Existing Web Structure of Afghan Universities
PHP Basic and Fundamental Questions and Answers with Detail Explanation
Fundamentals of Database Systems Questions and Answers
Everything about Database JOINS and Relationships
Fal-e-Hafez (Omens of Hafez) Cards in Persian using Java
Web Design and Development Life Cycle and Technologies
Java Regular Expression PART II
Java Regular Expression PART I
Object Oriented Concept Static vs. Non Static

Recently uploaded (20)

PPTX
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
PPTX
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
PDF
01-Introduction-to-Information-Management.pdf
PPTX
master seminar digital applications in india
PPTX
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
PDF
2.FourierTransform-ShortQuestionswithAnswers.pdf
PDF
Business Ethics Teaching Materials for college
PDF
RMMM.pdf make it easy to upload and study
PDF
Anesthesia in Laparoscopic Surgery in India
PDF
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
PDF
O5-L3 Freight Transport Ops (International) V1.pdf
PPTX
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
PPTX
Week 4 Term 3 Study Techniques revisited.pptx
PPTX
Institutional Correction lecture only . . .
PDF
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
PDF
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PPTX
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
PDF
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
PPTX
human mycosis Human fungal infections are called human mycosis..pptx
PDF
VCE English Exam - Section C Student Revision Booklet
IMMUNITY IMMUNITY refers to protection against infection, and the immune syst...
school management -TNTEU- B.Ed., Semester II Unit 1.pptx
01-Introduction-to-Information-Management.pdf
master seminar digital applications in india
Introduction_to_Human_Anatomy_and_Physiology_for_B.Pharm.pptx
2.FourierTransform-ShortQuestionswithAnswers.pdf
Business Ethics Teaching Materials for college
RMMM.pdf make it easy to upload and study
Anesthesia in Laparoscopic Surgery in India
The Lost Whites of Pakistan by Jahanzaib Mughal.pdf
O5-L3 Freight Transport Ops (International) V1.pdf
BOWEL ELIMINATION FACTORS AFFECTING AND TYPES
Week 4 Term 3 Study Techniques revisited.pptx
Institutional Correction lecture only . . .
ANTIBIOTICS.pptx.pdf………………… xxxxxxxxxxxxx
FourierSeries-QuestionsWithAnswers(Part-A).pdf
PPT- ENG7_QUARTER1_LESSON1_WEEK1. IMAGERY -DESCRIPTIONS pptx.pptx
3rd Neelam Sanjeevareddy Memorial Lecture.pdf
human mycosis Human fungal infections are called human mycosis..pptx
VCE English Exam - Section C Student Revision Booklet

Java Virtual Keyboard Using Robot, Toolkit and JToggleButton Classes

  • 1. https://www.facebook.com/Oxus20 oxus20@gmail.com JAVA Virtual Keyboard » Exception Handling » JToggleButton Class » Robot Class » Toolkit Class Prepared By: Nahid Ahmadi Edited By: Abdul Rahman Sherzad
  • 2. Agenda » Virtual Keyboard » Exception Handling » JToggleButton Class » Robot Class » Toolkit Class » Virtual Keyboard Implementation 2 https://www.facebook.com/Oxus20
  • 4. Virtual Keyboard Using JAVA 4 https://www.facebook.com/Oxus20
  • 5. Introduction to Virtual Keyboard » A virtual keyboard is considered to be a component to use on computers without a real keyboard e.g. ˃ touch screen computer » A mouse can utilize the keyboard functionalities and features. 5 https://www.facebook.com/Oxus20
  • 6. Virtual Keyboard Usage » It is possible to obtain keyboards for the following specific purposes: ˃ Keyboards to fill specific forms on sites ˃ Special key arrangements ˃ Keyboards for dedicated commercial sites ˃ etc. » In addition, Virtual Keyboard used for the following subjects: ˃ Foreign Character Sets ˃ Touchscreens ˃ Bypass key loggers 6 https://www.facebook.com/Oxus20
  • 8. Exception Handling » A program can be written assuming that nothing unusual or incorrect will happen. ˃ The user will always enter an integer when prompted to do so. ˃ There will always be a nonempty list for a program that takes an entry from the list. ˃ The file containing the needed information will always exist. » Unfortunately, it isn't always so. » Once the core program is written for the usual, expected case(s), Java's exception-handling facilities should be added to accommodate the unusual, unexpected case(s). 8
  • 10. Exception Handling Demo Source code public class ExceptionHandlingDemo { public static void main(String args[]) { try { int scores[] = { 90, 85, 75, 100 }; System.out.println("Access element nine:" + scores[9]); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("Exception thrown:" + e); } System.out.println("nWithout Exception Handling I was not able to execute and print!"); } } 10 https://www.facebook.com/Oxus20
  • 11. Exception Handling Demo OUTPUT Exception thrown:java.lang.ArrayIndexOutOfBoundsEx ception: 9 Without Exception Handling I was not able to execute and print! 11 https://www.facebook.com/Oxus20
  • 13. JToggleButton Class » JToggleButton is an implementation of a two-state button and is used to represent buttons that can be toggled ON and OFF » The JRadioButton and JCheckBox classes are subclasses of this class. » The events fired by JToggleButtons are slightly different than those fired by JButton. 13 https://www.facebook.com/Oxus20
  • 14. JToggleButton Demo » The following example on next slide demonstrates a toggle button. Each time the toggle button is pressed, its state is displayed in a label. » Creating JToggleButton involves these steps: 1. Create an instance of JToggleButton. 2. Register an ItemListener to handle item events generated by the button. 3. To determine if the button is on or off, call isSelected(). 14 https://www.facebook.com/Oxus20
  • 15. JToggleButton Demo Source Code import java.awt.FlowLayout; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JToggleButton; class JToggleButtonDemo { JLabel lblOutput; JToggleButton btnOnOff; JFrame win; JToggleButtonDemo() { // JFrame Customization win = new JFrame("Using JToggleButton"); win.setLayout(new FlowLayout()); win.setSize(300, 80); win.setLocationRelativeTo(null); win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 15 https://www.facebook.com/Oxus20
  • 16. // JToggleButton and JLabel Customization lblOutput = new JLabel("State : OFF"); btnOnOff = new JToggleButton("On / Off", false); // Add item listener for JToggleButton. btnOnOff.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent ie) { if (btnOnOff.isSelected()) { lblOutput.setText("State : ON"); } else { lblOutput.setText("State : OFF"); } } }); // Add toggle button and label to the content pane. win.add(btnOnOff); win.add(lblOutput); win.setVisible(true); } public static void main(String args[]) { new JToggleButtonDemo(); } } 16 https://www.facebook.com/Oxus20
  • 19. Java Robot Class » This class is used to generate native system input events for the purposes of ˃ test automation ˃ self-running demos ˃ and other applications where control of the mouse and keyboard is needed. » This class has three main functionalities: ˃ mouse control ˃ keyboard control ˃ and screen capture. https://www.facebook.com/Oxus20 19
  • 20. Robot Class Demo » Perform keyboard operation with help of java Robot class. » The following example on next slide will demonstrate the Robot class usage to handle the keyboard events. » The program will write the word "OXUS20" inside the TextArea automatically after running the program. » The word "OXUS20" will be written character by character with one second delay between each on of the characters. 20 https://www.facebook.com/Oxus20
  • 21. Robot Class Demo Source Code import java.awt.AWTException; import java.awt.BorderLayout; import java.awt.Robot; import java.awt.event.KeyEvent; import javax.swing.JFrame; import javax.swing.JTextArea; public class RobotDemo extends JFrame { public RobotDemo() { // JFrame with TextArea Settings setTitle("OXUS20 Robot Demo"); setSize(400, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); JTextArea txtOXUS = new JTextArea(); add(txtOXUS, BorderLayout.CENTER); setVisible(true); } 21 https://www.facebook.com/Oxus20
  • 22. public static void main(String[] args) { new RobotDemo(); // Store Keystrokes "OXUS20" in an array int keyInput[] = { KeyEvent.VK_O, KeyEvent.VK_X, KeyEvent.VK_U, KeyEvent.VK_S, KeyEvent.VK_2, KeyEvent.VK_0 }; try { Robot robot = new Robot(); // press the shift key robot.keyPress(KeyEvent.VK_SHIFT); // This types the word 'OXUS20' in the TextArea for (int i = 0; i < keyInput.length; i++) { if (i > 0) { robot.keyRelease(KeyEvent.VK_SHIFT); } robot.keyPress(keyInput[i]); // pause typing for one second robot.delay(1000); } } catch (AWTException e) { System.err.println("Exception is happening!"); } } // end of main() } // end of RobotDemo class 22 https://www.facebook.com/Oxus20
  • 24. Toolkit class » Toolkit is an AWT class acting as a base class for all implementations of AWT. » This class offers a static method getDefaultToolkit() to return a Toolkit object representing the default implementation of AWT. » You can use this default toolkit object to get information of the default graphics device, the local screen, and other purposes. » Next slide demonstrate an example finding out the actual size and resolution of your screen. 24 https://www.facebook.com/Oxus20
  • 25. Toolkit Class Demo Source Code import java.awt.Dimension; import java.awt.Toolkit; public class ToolkitDemo { public static void main(String[] a) { Toolkit tk = Toolkit.getDefaultToolkit(); Dimension d = tk.getScreenSize(); System.out.println("Screen size: " + d.width + "x" + d.height); System.out.println("nScreen Resolution: " + tk.getScreenResolution()); } } 25 https://www.facebook.com/Oxus20
  • 26. Toolkit Class Demo OUTPUT Screen Size: 1366x768 Screen Resolution: 96 26 https://www.facebook.com/Oxus20
  • 27. Another Toolkit Example » Change the state of the Caps Lock key ˃ If Caps Lock key is ON turn it OFF ˃ Otherwise, if Caps Lock key is OFF turn it ON » Toolkit.getDefaultToolkit().setLockingKeyState( KeyEvent.VK_CAPS_LOCK, false); ˃ This line of code will change the state of the Caps Lock key OFF. » Toolkit.getDefaultToolkit().setLockingKeyState( KeyEvent.VK_CAPS_LOCK, true); ˃ This line of code will change the state of the Caps Lock key ON. » Accordingly the keyboard LEDs flash will become ON or OFF. 27 https://www.facebook.com/Oxus20
  • 28. Another Toolkit Class Demo Source Code import java.awt.FlowLayout; import java.awt.Toolkit; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyEvent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JToggleButton; class ChangeCapsLockStateDemo { JLabel lblOutput; JToggleButton btnOnOff; JFrame win; ChangeCapsLockStateDemo() { // JFrame Customization win = new JFrame("Using JToggleButton"); win.setLayout(new FlowLayout()); win.setSize(300, 80); win.setLocationRelativeTo(null); win.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 28 https://www.facebook.com/Oxus20
  • 29. // JToggleButton and JLabel Customization lblOutput = new JLabel("CapsLock : OFF"); Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, false); btnOnOff = new JToggleButton("On / Off", false); // Add item listener for JToggleButton. btnOnOff.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent ie) { if (btnOnOff.isSelected()) { lblOutput.setText("CapsLock : ON"); Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, true); } else { lblOutput.setText("CapsLock : OFF"); Toolkit.getDefaultToolkit().setLockingKeyState(KeyEvent.VK_CAPS_LOCK, false); } } }); // Add toggle button and label to the content pane. win.add(btnOnOff); win.add(lblOutput); win.setVisible(true); } public static void main(String args[]) { new ChangeCapsLockStateDemo(); } } 29 https://www.facebook.com/Oxus20
  • 30. Another Toolkit Class Demo OUPUT 30 https://www.facebook.com/Oxus20
  • 32. Java Virtual Keyboard Source Code import java.awt.AWTException; import java.awt.Color; import java.awt.Robot; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.awt.event.KeyEvent; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JToggleButton; public class JavaVirtualKeyboard implements ActionListener, ItemListener { 32 https://www.facebook.com/Oxus20
  • 34. Complete Source Code will be published very soon Check Our Facebook Page (https://www.facebook.com/Oxus20) 34 https://www.facebook.com/Oxus20