https://www.facebook.com/Oxus20
Java Unicode with
Live GUI Examples
» Unicode
» Abjad Example
» Bubble Example
» Flip Example
» English Number to Persian
Prepared By: Nahid Razaie
Edited By: Abdul Rahman Sherzad
Agenda
» Unicode Characters
» Abjad Examples
˃ 786 <= بسم اهلل الرحمن الرحیم
» Bubble Examples
˃ OXUS20 => ⓄⓍⓊⓈ②⓪
» Flip Examples
˃ Oxus20 => 02snxo
» Number Examples
˃ 1234567890 => ۱۲۳۴۵۶۷۸۹۰
2
https://www.facebook.com/Oxus20
Character Sets » ASCII
˃ The 128 most commonly-used characters are each represented by a sequence of 7 bits known as the character’s ASCII code.
˃ The characters include letters, digits, punctuation marks, and nonprintable control characters such as the backspace, tab, carriage return, etc.
» Unicode
˃ The Unicode standard defines underlying numeric values for a huge set of 65,536 characters.
3
https://www.facebook.com/Oxus20
Unicode Tips
» Bubble Example
˃ OXUS20 => ⓄⓍⓊⓈ➁ⓞ
» Flip Example
˃ OXUS20 => 02snxo
» English Number to Persian
˃ 1234 => ۱۲۳۴ 4
https://www.facebook.com/Oxus20
What is Abjad ?
» Every letter in the Arabic alphabet has a numerical (Gematrical) value.
» A number of calculations can be made from this basis.
» These are referred to as numerological (Abjad) calculations.
https://www.facebook.com/Oxus20
5
Abjad Calculation Example
بسم اهلل الرحمن الرحیم
786
Arabic Letters Values
2 ب
60 س
40 م
1 ا
30 ل
30 ل
5 ه
1 ا
30 ل
200 ر
8 ح
40 م
50 ن
1 ا
30 ل
200 ر
8 ح
10 ی
40 م
Total 786 https://www.facebook.com/Oxus20
6
Abjad Calculator in JAVA Graphical User Interface
7
https://www.facebook.com/Oxus20
Abjad Calculator in JAVA Required Components
» JLabel
» JTextField
» JButton
» JPanel
» ImageIcon
8
https://www.facebook.com/Oxus20
Abjad Calculator in JAVA (Source Code) import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class AbjadCalculator extends JFrame implements ActionListener {
// Require Components Declarations
private JLabel lblInput, lblOutput;
private JTextField txtInput, txtOutput;
private JButton btnCalculate, btnExit;
private JPanel panelSouth, panelNorth;
private ImageIcon imgBackround;
private JLabel lblBackground; 9
https://www.facebook.com/Oxus20
public AbjadCalculator() {
// Background Customization
imgBackround = new ImageIcon(getClass().getResource("background.jpg"));
lblBackground = new JLabel(imgBackround);
add(lblBackground);
// Labels and TextFields Customization
lblInput = new JLabel("Type your name in Arabic/Persian:");
lblInput.setForeground(Color.white);
txtInput = new JTextField("بسم هللا الرحمن الرحیم");
txtInput.setHorizontalAlignment(JTextField.RIGHT);
lblOutput = new JLabel("Abjad calculation of your name:");
lblOutput.setForeground(Color.white);
txtOutput = new JTextField("786");
panelNorth = new JPanel();
panelNorth.setBackground(new Color(0, 153, 204));
panelNorth.setLayout(new GridLayout(3, 2));
panelNorth.add(lblInput);
panelNorth.add(txtInput);
panelNorth.add(lblOutput);
panelNorth.add(txtOutput);
add(panelNorth, BorderLayout.NORTH);
10
https://www.facebook.com/Oxus20
// Buttons Customization
btnCalculate = new JButton("Calculate");
btnCalculate.addActionListener(this);
btnExit = new JButton("Exit");
btnExit.addActionListener(this);
panelSouth = new JPanel();
panelSouth.setBackground(new Color(0, 153, 204));
panelSouth.add(btnCalculate);
panelSouth.add(btnExit);
add(panelSouth, BorderLayout.SOUTH);
// JFrame Customization
setUndecorated(true);
setSize(500, 317);
setLocationRelativeTo(null);
setVisible(true);
}
11
https://www.facebook.com/Oxus20
// Add action to calculation and exit buttons
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnCalculate) {
int total = 0;
String inputStr = txtInput.getText();
for (int i = 0; i < inputStr.length(); i++) {
total += Integer.parseInt(abjadKabir(inputStr.charAt(i)));
}
txtOutput.setText(String.valueOf(total));
}
if (e.getSource() == btnExit) {
System.exit(0);
}
}
12
https://www.facebook.com/Oxus20
13
https://www.facebook.com/Oxus20
Abjad Calculator in JAVA (End of Source Code)
public static void main(String[] args) {
new AbjadCalculator();
}
}
14
https://www.facebook.com/Oxus20
Bubble Example in JAVA Graphical User Interface
15
https://www.facebook.com/Oxus20
Bubble Example in JAVA Source Code import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Bubble extends JFrame implements ActionListener, KeyListener {
// Declaring Components
private JLabel lblInput, lblOutput;
private JTextField txtInput, txtOutput;
private JButton btnExit;
private JPanel panelSouth, panelNorth;
private ImageIcon imgBackground;
private JLabel lblBackground; 16
https://www.facebook.com/Oxus20
public Bubble() {
// Background Settings and Customizations
imgBackground = new ImageIcon(getClass().getResource("background.jpg"));
lblBackground = new JLabel(imgBackground);
add(lblBackground);
// Labels and TextFields Settings and Customizations
lblInput = new JLabel("Enter Your Text:");
lblInput.setForeground(Color.white);
txtInput = new JTextField("OXUS20");
txtInput.addKeyListener(this);
lblOutput = new JLabel("Result in Bubble:");
lblOutput.setForeground(Color.white);
txtOutput = new JTextField("ⓄⓍⓊⓈ➁ⓞ");
panelNorth = new JPanel();
panelNorth.setBackground(new Color(0, 153, 204));
panelNorth.setLayout(new GridLayout(2, 2, 9, 2));
panelNorth.add(lblInput);
panelNorth.add(txtInput);
panelNorth.add(lblOutput);
panelNorth.add(txtOutput);
add(panelNorth, BorderLayout.NORTH); 17
https://www.facebook.com/Oxus20
// Exit Button Settings and Customizations
btnExit = new JButton("Exit");
btnExit.addActionListener(this);
panelSouth = new JPanel();
panelSouth.setBackground(new Color(0, 153, 204));
panelSouth.add(btnExit);
add(panelSouth, BorderLayout.SOUTH);
// JFrame Settings and Customizations
setUndecorated(true);
setSize(500, 317);
setLocationRelativeTo(null);
setVisible(true);
}
// Adding Action to our program
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnExit) {
System.exit(0);
}
}
public void keyPressed(KeyEvent e) {
}
public void keyTyped(KeyEvent e) {
}
18
https://www.facebook.com/Oxus20
public void keyReleased(KeyEvent e) {
if (e.getSource() == txtInput) {
String input = txtInput.getText();
String change = input.replace('0', 'ⓞ').replace('1', '➀')
.replace('2', '➁').replace('3', '➂').replace('4', '➃')
.replace('5', '➄').replace('6', '➅').replace('7', '➆')
.replace('8', '➇').replace('9', '➈').replace('a', 'ⓐ')
.replace('b', 'ⓑ').replace('c', 'ⓒ').replace('d', 'ⓓ')
.replace('e', 'ⓔ').replace('f', 'ⓕ').replace('g', 'ⓖ')
.replace('h', 'ⓗ').replace('i', 'ⓘ').replace('j', 'ⓙ')
.replace('k', 'ⓚ').replace('l', 'ⓛ').replace('m', 'ⓜ')
.replace('n', 'ⓝ').replace('o', 'ⓞ').replace('p', 'ⓟ')
.replace('q', 'ⓠ').replace('r', 'ⓡ').replace('s', 'ⓢ')
.replace('t', 'ⓣ').replace('u', 'ⓤ').replace('v', 'ⓥ')
.replace('w', 'ⓦ').replace('x', 'ⓧ').replace('y', 'ⓨ')
.replace('z', 'ⓩ').replace('A', 'Ⓐ').replace('B', 'Ⓑ')
.replace('C', 'Ⓒ').replace('D', 'Ⓓ').replace('E', 'Ⓔ')
.replace('F', 'Ⓕ').replace('G', 'Ⓖ').replace('H', 'Ⓗ')
.replace('I', 'Ⓘ').replace('J', 'Ⓙ').replace('K', 'Ⓚ')
.replace('L', 'Ⓛ').replace('M', 'Ⓜ').replace('N', 'Ⓝ')
.replace('O', 'Ⓞ').replace('P', 'Ⓟ').replace('Q', 'Ⓠ')
.replace('R', 'Ⓡ').replace('S', 'Ⓢ').replace('T', 'Ⓣ')
.replace('U', 'Ⓤ').replace('V', 'Ⓥ').replace('W', 'Ⓦ')
.replace('X', 'Ⓧ').replace('Y', 'Ⓨ').replace('Z', 'Ⓩ');
txtOutput.setText(change);
}
}
19
https://www.facebook.com/Oxus20
Bubble Example in JAVA (End of Source Code)
public static void main(String[] args) {
new Bubble();
}
}
20
https://www.facebook.com/Oxus20
Flip Example in JAVA Graphical User Interface
21
https://www.facebook.com/Oxus20
Flip Example in JAVA Source Code import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Flip extends JFrame implements KeyListener {
// Required Components Declarations
private JLabel lblInput, lblOutput;
private JTextField txtInput, txtOutput;
private JButton btnExit;
private JPanel panelSouth, panelNorth;
private ImageIcon imgBackground;
private JLabel lblBackground; 22
https://www.facebook.com/Oxus20
public Flip() {
// Background Settings and Customizations
imgBackground = new ImageIcon(getClass().getResource("background.jpg"));
lblBackground = new JLabel(imgBackground);
add(lblBackground);
// Labels and TextFields Settings and Customizations
lblInput = new JLabel("Enter Your Text:");
lblInput.setForeground(Color.white);
txtInput = new JTextField("Flip and Upside down");
txtInput.addKeyListener(this);
lblOutput = new JLabel("Result in Flip:");
lblOutput.setForeground(Color.white);
txtOutput = new JTextField("Ⅎ !ן d ɐnd ∩ds!dǝ doʍn");
panelNorth = new JPanel();
panelNorth.setBackground(new Color(0, 153, 204));
panelNorth.setLayout(new GridLayout(2, 2, 0, 2));
panelNorth.add(lblInput);
panelNorth.add(txtInput);
panelNorth.add(lblOutput);
panelNorth.add(txtOutput);
add(panelNorth, BorderLayout.NORTH); 23
https://www.facebook.com/Oxus20
// Exit Button Settings and Customizations
btnExit = new JButton("Exit");
btnExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
panelSouth = new JPanel();
panelSouth.setBackground(new Color(0, 153, 204));
panelSouth.add(btnExit);
add(panelSouth, BorderLayout.SOUTH);
// JFrame Settings and Customizations
setUndecorated(true);
setSize(500, 317);
setLocationRelativeTo(null);
setVisible(true);
}
public void keyPressed(KeyEvent e) {
}
public void keyTyped(KeyEvent arg0) {
} 24
https://www.facebook.com/Oxus20
public void keyReleased(KeyEvent e) {
if (e.getSource() == txtInput) {
String input = txtInput.getText();
String change = input.replace('a', 'ɐ').replace('b', 'q')
.replace('c', 'ɔ').replace('d', 'p').replace('e', 'ǝ')
.replace('f', 'ɟ').replace('g', 'ƃ').replace('h', 'ɥ')
.replace('i', '!').replace('j', 'ɾ').replace('k', 'ʞ')
.replace('l', ' (.'ן replace('m', 'ɯ').replace('n', 'u')
.replace('o', 'o').replace('p', 'd').replace('q', 'b')
.replace('r', 'ɹ').replace('s', 's').replace('t', 'ʇ')
.replace('u', 'n').replace('v', 'ʌ').replace('w', 'ʍ')
.replace('x', 'x').replace('y', 'ʎ').replace('z', 'z')
.replace('A', '∀').replace('B', 'ᗺ').replace('C', 'Ɔ')
.replace('D', 'p').replace('E', 'Ǝ').replace('F', 'Ⅎ')
.replace('G', ' (.'פ replace('H', 'H').replace('I', 'I')
.replace('J', 'ſ').replace('K', 'ʞ').replace('L', '˥')
.replace('M', 'W').replace('N', 'N').replace('O', 'O')
.replace('P', 'd').replace('Q', 'ઠ').replace('R', 'ᴚ')
.replace('S', 'S').replace('T', '⊥').replace('U', '∩')
.replace('V', 'ᴧ').replace('W', 'M').replace('X', 'X')
.replace('Y', 'ʎ').replace('Z', 'Z');
txtOutput.setText(change);
}
} 25
https://www.facebook.com/Oxus20
Flip Example in JAVA (End of Source Code)
public static void main(String[] args) {
new Flip();
}
}
26
https://www.facebook.com/Oxus20
English Number to Persian in JAVA Graphical User Interface
27
https://www.facebook.com/Oxus20
English Number to Persian in JAVA Source Code import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class PersianNumbers extends JFrame implements KeyListener {
// Declaring Components
private JLabel lblInput, lblOutput;
private JTextField txtInput, txtOutput;
private JButton btnExit;
private JPanel panelSouth, panelNorth;
private ImageIcon imgBackground;
private JLabel lblBackground; 28
https://www.facebook.com/Oxus20
public PersianNumbers() {
// Background Settings and Customizations
imgBackground = new ImageIcon(getClass().getResource("background.jpg"));
lblBackground = new JLabel(imgBackground);
add(lblBackground);
// Labels and TextFields Settings and Customizations
lblInput = new JLabel("Enter English Number :");
lblInput.setForeground(Color.white);
txtInput = new JTextField("0123456789");
txtInput.addKeyListener(this);
lblOutput = new JLabel("Result of Persion Number :");
lblOutput.setForeground(Color.white);
txtOutput = new JTextField("٠١٢٣٤٥٦٧٨٩");
panelNorth = new JPanel();
panelNorth.setBackground(new Color(0, 153, 204));
panelNorth.setLayout(new GridLayout(2, 2, 0, 2));
panelNorth.add(lblInput);
panelNorth.add(txtInput);
panelNorth.add(lblOutput);
panelNorth.add(txtOutput);
add(panelNorth, BorderLayout.NORTH);
29
https://www.facebook.com/Oxus20
// Exit Button Settings and Customizations
btnExit = new JButton("Exit");
btnExit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
panelSouth = new JPanel();
panelSouth.setBackground(new Color(0, 153, 204));
panelSouth.add(btnExit);
add(panelSouth, BorderLayout.SOUTH);
// JFrame Settings and Customizations
setUndecorated(true);
setSize(500, 317);
setLocationRelativeTo(null);
setVisible(true);
}
public void keyPressed(KeyEvent arg0) {
}
public void keyTyped(KeyEvent arg0) {
}
30
https://www.facebook.com/Oxus20
English Number to Persian in JAVA End of Source Code
public void keyReleased(KeyEvent e) {
if (e.getSource() == txtInput) {
String input = txtInput.getText();
String change = input.replace('0', '\u0660').replace('1', '\u0661')
.replace('2', '\u0662').replace('3', '\u0663')
.replace('4', '\u0664').replace('5', '\u0665')
.replace('6', '\u0666').replace('7', '\u0667')
.replace('8', '\u0668').replace('9', '\u0669');
txtOutput.setText(change);
}
}
public static void main(String[] args) {
new PersianNumbers();
}
}
31
https://www.facebook.com/Oxus20
Tips Simple String Methods
» charAt() ˃ The charAt(index) method returns the character at a specific index in
the string.
˃ The first character of a string is at index 0, the next at index 1, and so on.
˃ The index argument must be greater than or equal to 0, and less than the length of the string buffer.
» replaceAll() ˃ The String class also contains the replaceAll method for replacing and
splitting strings
˃ The replaceAll method replaces all matching substring. 32
https://www.facebook.com/Oxus20
Unicode Further Works and Suggestions
» Transliteration
˃ English Name to Persian/Arabic
˃ Nahid Razaie => ناهید رضایی
» Google Transliteration
˃ Salam => سالم
˃ Ba OXUS20 Khush Amadid => 20خوش آمدید به آکسیوس 33
https://www.facebook.com/Oxus20
END
https://www.facebook.com/Oxus20
34