Java Unicode with Cool GUI Examples

813 views

Published on

With Unicode you can program and accomplish many funny, cool and useful programs and tools as for instance, Abjad Calculator calculating the numerical value of letters derived from the Arabic alphabet through the use of the Abjad writing system, Bubble Text Generator to write letters in circle, Flip Text Generator to write letters upside down, Google Transliteration to convert English names to Persian/Arabic, etc.

Published in: Education
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
813
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
15
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Java Unicode with Cool GUI Examples

  1. 1. » » » » » https://www.facebook.com/Oxus20 oxus20@gmail.com Unicode Abjad Example Bubble Example Flip Example English Number to Persian Java Unicode with Live GUI Examples Prepared By: Nahid Razaie Edited By: Abdul Rahman Sherzad
  2. 2. Agenda » Unicode Characters » Abjad Examples ˃ ‫687 >= بسم اهلل الرحمن الرحیم‬ » Bubble Examples ˃ OXUS20 => ⓄⓍⓊⓈ②⓪ » Flip Examples ˃ Oxus20 => 02snxo » Number Examples ˃ 1234567890 => ۱۲۳۴۵۶۷۸۹۰ 2 https://www.facebook.com/Oxus20
  3. 3. 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
  4. 4. Unicode Tips » Bubble Example ˃ OXUS20 => ⓄⓍⓊⓈ➁ⓞ » Flip Example ˃ OXUS20 => 02snxo » English Number to Persian ˃ 1234 => ۱۲۳۴ 4 https://www.facebook.com/Oxus20
  5. 5. 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. 5 https://www.facebook.com/Oxus20
  6. 6. ‫س‬ 60 ‫م‬ 40 ‫ا‬ 1 30 30 5 ‫ا‬ 1 ‫ل‬ 30 ‫ر‬ 200 ‫ح‬ 8 ‫م‬ 40 ‫ن‬ 50 ‫ا‬ 1 ‫ل‬ 30 ‫ر‬ 200 ‫ح‬ 8 ‫ی‬ 10 ‫م‬ https://www.facebook.com/Oxus20 2 ‫ه‬ 786 ‫ب‬ ‫ل‬ ‫بسم اهلل الرحمن الرحیم‬ Values ‫ل‬ Abjad Calculation Example Arabic Letters 40 Total 786 6
  7. 7. Abjad Calculator in JAVA Graphical User Interface 7 https://www.facebook.com/Oxus20
  8. 8. Abjad Calculator in JAVA Required Components » JLabel » JTextField » JButton » JPanel » ImageIcon 8 https://www.facebook.com/Oxus20
  9. 9. Abjad Calculator in JAVA (Source Code) import import import import import java.awt.BorderLayout; java.awt.Color; java.awt.GridLayout; java.awt.event.ActionEvent; java.awt.event.ActionListener; import import import import import import javax.swing.ImageIcon; javax.swing.JButton; javax.swing.JFrame; javax.swing.JLabel; javax.swing.JPanel; 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; https://www.facebook.com/Oxus20 9
  10. 10. 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); https://www.facebook.com/Oxus20 10
  11. 11. // 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
  12. 12. // 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. 13. 13 https://www.facebook.com/Oxus20
  14. 14. Abjad Calculator in JAVA (End of Source Code) public static void main(String[] args) { new AbjadCalculator(); } } 14 https://www.facebook.com/Oxus20
  15. 15. Bubble Example in JAVA Graphical User Interface 15 https://www.facebook.com/Oxus20
  16. 16. Bubble Example in JAVA Source Code import import import import import import import java.awt.BorderLayout; java.awt.Color; java.awt.GridLayout; java.awt.event.ActionEvent; java.awt.event.ActionListener; java.awt.event.KeyEvent; java.awt.event.KeyListener; import import import import import import javax.swing.ImageIcon; javax.swing.JButton; javax.swing.JFrame; javax.swing.JLabel; javax.swing.JPanel; 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; https://www.facebook.com/Oxus20 16
  17. 17. 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); https://www.facebook.com/Oxus20 17
  18. 18. // 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) { } https://www.facebook.com/Oxus20 18
  19. 19. 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
  20. 20. Bubble Example in JAVA (End of Source Code) public static void main(String[] args) { new Bubble(); } } 20 https://www.facebook.com/Oxus20
  21. 21. Flip Example in JAVA Graphical User Interface 21 https://www.facebook.com/Oxus20
  22. 22. Flip Example in JAVA Source Code import import import import import import import java.awt.BorderLayout; java.awt.Color; java.awt.GridLayout; java.awt.event.ActionEvent; java.awt.event.ActionListener; java.awt.event.KeyEvent; java.awt.event.KeyListener; import import import import import import javax.swing.ImageIcon; javax.swing.JButton; javax.swing.JFrame; javax.swing.JLabel; javax.swing.JPanel; 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; https://www.facebook.com/Oxus20 22
  23. 23. 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
  24. 24. // 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) { } https://www.facebook.com/Oxus20 24
  25. 25. 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
  26. 26. Flip Example in JAVA (End of Source Code) public static void main(String[] args) { new Flip(); } } 26 https://www.facebook.com/Oxus20
  27. 27. English Number to Persian in JAVA Graphical User Interface 27 https://www.facebook.com/Oxus20
  28. 28. English Number to Persian in JAVA Source Code import import import import import import import java.awt.BorderLayout; java.awt.Color; java.awt.GridLayout; java.awt.event.ActionEvent; java.awt.event.ActionListener; java.awt.event.KeyEvent; java.awt.event.KeyListener; import import import import import import javax.swing.ImageIcon; javax.swing.JButton; javax.swing.JFrame; javax.swing.JLabel; javax.swing.JPanel; 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
  29. 29. 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
  30. 30. // 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
  31. 31. 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
  32. 32. 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
  33. 33. 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
  34. 34. END 34 https://www.facebook.com/Oxus20

×