Accueil > > > PROGRAMME QUI DONNE LE CODE UNICODE DES CARACTÈRES ARABES SAISIS
PROGRAMME QUI DONNE LE CODE UNICODE DES CARACTÈRES ARABES SAISIS
Information sur la source
Description
Ceux qui ont déjà voulu utiliser l'arabe dans leur application ont toujours eu un problème au début, car ça affichait des caractères bizarres, et il fallait utiliser le code Unicode. C'est pas très pratique de chercher le code Unicode pour chaque caractère; ce petit programme vous permet de saisir une phrase en arabe, et en cliquant sur le bouton transformer, il vous donne son code, et puis vous n'avez qu'à cliquer sur le bouton copier, et le coller dans votre source.
Source
- /*TODO
- * Il reste d'autres caractères waw avec hamza et co
- */
-
- import java.awt.*;
- import java.awt.datatransfer.*;
- import java.awt.event.*;
- import javax.swing.*;
- import javax.swing.text.*;
- import java.util.*;
- import java.io.File;
-
- public class ArabicToUnicode extends JFrame
- {
- private JTextField txtArab = null;
- private JTextArea txtUnicode = null;
- private JButton btnTranslate = null, btnToClipboard = null;
- private JScrollPane scroll = null;
- private JPanel pnTop = null, pnCenter = null, pnKeyboardAr = null;
- private int w, h, x, y;
- private ArrayList<String> characters = null;
- private ArrayList<JButton> buttonsKeyboard = null;
-
- public ArabicToUnicode()
- {
- super("ArabicToUnicode");
- /*Enumeration keys = UIManager.getDefaults().keys();
- while(keys.hasMoreElements())
- System.out.println(keys.nextElement());*/
- characters = new ArrayList<String>(); //La liste des caractères saisies
- w = 600;
- h = 530;
- x = ((int)Toolkit.getDefaultToolkit().getScreenSize().getWidth()-w)/2;
- y = ((int)Toolkit.getDefaultToolkit().getScreenSize().getHeight()-h)/2;
-
- Font f_albattar = null;
- try{
- //Cette Font n'est pas enregistré dans le système, on doit donc la créer
- f_albattar = Font.createFont(Font.TRUETYPE_FONT , new File("ae_AlBattar.ttf"));
- } catch (Exception e){
- e.printStackTrace();
- }
-
- txtArab = new JTextField(70);
- txtArab.setPreferredSize(new Dimension(500, 28));
- if (f_albattar != null)
- txtArab.setFont(f_albattar.deriveFont(14f));
- //Je précise un PlainDocument personnalisé pour surveiller l'insertion et la suppression dans le JTextField (voir la classe plus loin)
- txtArab.setDocument(new MyPlainDocument());
- //Le texte du bouton est en arabe, donc ce que vous voyez est le code unicode
- btnTranslate = new JButton("\u062d\u064e\u0648\u0651\u0650\u0644\u0652");
- btnTranslate.setPreferredSize(new Dimension(70, 28));
- if (f_albattar != null)
- btnTranslate.setFont(f_albattar.deriveFont(Font.BOLD, 12f));
- btnTranslate.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent ae)
- {
- for (int i = 0; i < characters.size(); i++)
- { //
- if (characters.get(i).equals(" "))
- txtUnicode.append(" ");
- else
- txtUnicode.append(getUnicode(characters.get(i)));//Pour chaque caractère dans la liste, on récupère son code
- } // Unicode, et on l'ajoute à la JTextArea
- txtArab.setText(""); // Et finalement, on vide la JTextField
- }
- });
-
- SpringLayout springLayoutTop = new SpringLayout();
- pnTop = new JPanel(springLayoutTop);
- pnTop.setPreferredSize(new Dimension(w, 50));
- pnTop.setMaximumSize(new Dimension((int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(), 50));
-
- springLayoutTop.putConstraint(SpringLayout.WEST, txtArab, 10, SpringLayout.WEST, pnTop);
- springLayoutTop.putConstraint(SpringLayout.NORTH, txtArab, 10, SpringLayout.NORTH, pnTop);
- springLayoutTop.putConstraint(SpringLayout.WEST, btnTranslate, 10, SpringLayout.EAST, txtArab);
- springLayoutTop.putConstraint(SpringLayout.NORTH, btnTranslate, 10, SpringLayout.NORTH, pnTop);
- springLayoutTop.putConstraint(SpringLayout.EAST, pnTop, 10, SpringLayout.EAST, btnTranslate);
-
- pnTop.add(txtArab);
- pnTop.add(btnTranslate);
-
- txtUnicode = new JTextArea(5, 50);
- scroll = new JScrollPane(txtUnicode);
- btnToClipboard = new JButton("\u0625\u0650\u0646\u0652\u0633\u064e\u062e\u0652");
- if (f_albattar != null)
- btnToClipboard.setFont(f_albattar.deriveFont(Font.BOLD, 12f));
- btnToClipboard.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent ae)
- {
- try{
- //On récupère le presse-papier du système
- Clipboard clipBrd = Toolkit.getDefaultToolkit().getSystemClipboard();
- // On copie le contenu de la JTextArea dans le presse-papier du système
- clipBrd.setContents(new StringSelection(txtUnicode.getText()), null);
- } catch(Exception e){
- e.printStackTrace();
- }
- }
- });
-
- SpringLayout springLayoutCenter = new SpringLayout();
- pnCenter = new JPanel(springLayoutCenter);
- pnCenter.setPreferredSize(new Dimension(w, 150));
- pnCenter.setMaximumSize(new Dimension((int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(), 150));
-
- springLayoutCenter.putConstraint(SpringLayout.WEST, scroll, 10, SpringLayout.WEST, pnCenter);
- springLayoutCenter.putConstraint(SpringLayout.EAST, pnCenter, 10, SpringLayout.EAST, pnTop);
- springLayoutCenter.putConstraint(SpringLayout.EAST, pnCenter, 10, SpringLayout.EAST, scroll);
- springLayoutCenter.putConstraint(SpringLayout.WEST, btnToClipboard, 0, SpringLayout.WEST, scroll);
- springLayoutCenter.putConstraint(SpringLayout.NORTH, btnToClipboard, 10, SpringLayout.SOUTH, scroll);
-
- pnCenter.add(scroll);
- pnCenter.add(btnToClipboard);
-
- //SpringLayout springLayoutKeyboard = new SpringLayout();
- pnKeyboardAr = new JPanel(new GridLayout(5, 12));
-
- buttonsKeyboard = new ArrayList<JButton>();
- buttonsKeyboard.add(new JButton("\u0622"));
- buttonsKeyboard.add(new JButton("\u0627"));
- buttonsKeyboard.add(new JButton("\u0623"));
- buttonsKeyboard.add(new JButton("\u0625"));
- buttonsKeyboard.add(new JButton("\u0621"));
- buttonsKeyboard.add(new JButton("\u0628"));
- buttonsKeyboard.add(new JButton("\u062A"));
- buttonsKeyboard.add(new JButton("\u0629"));
- buttonsKeyboard.add(new JButton("\u062B"));
- buttonsKeyboard.add(new JButton("\u062C"));
- buttonsKeyboard.add(new JButton("\u062D"));
- buttonsKeyboard.add(new JButton("\u062E"));
- buttonsKeyboard.add(new JButton("\u062F"));
- buttonsKeyboard.add(new JButton("\u0630"));
- buttonsKeyboard.add(new JButton("\u0631"));
- buttonsKeyboard.add(new JButton("\u0632"));
- buttonsKeyboard.add(new JButton("\u0633"));
- buttonsKeyboard.add(new JButton("\u0634"));
- buttonsKeyboard.add(new JButton("\u0635"));
- buttonsKeyboard.add(new JButton("\u0636"));
- buttonsKeyboard.add(new JButton("\u0637"));
- buttonsKeyboard.add(new JButton("\u0638"));
- buttonsKeyboard.add(new JButton("\u0639"));
- buttonsKeyboard.add(new JButton("\u063A"));
- buttonsKeyboard.add(new JButton("\u0641"));
- buttonsKeyboard.add(new JButton("\u0642"));
- buttonsKeyboard.add(new JButton("\u0643"));
- buttonsKeyboard.add(new JButton("\u0644"));
- buttonsKeyboard.add(new JButton("\u0645"));
- buttonsKeyboard.add(new JButton("\u0646"));
- buttonsKeyboard.add(new JButton("\u0647"));
- buttonsKeyboard.add(new JButton("\u0648"));
- buttonsKeyboard.add(new JButton("\u064A"));
- buttonsKeyboard.add(new JButton("\u064B"));
- buttonsKeyboard.add(new JButton("\u064D"));
- buttonsKeyboard.add(new JButton("\u064E"));
- buttonsKeyboard.add(new JButton("\u064F"));
- buttonsKeyboard.add(new JButton("\u0650"));
- buttonsKeyboard.add(new JButton("\u0651"));
- buttonsKeyboard.add(new JButton("\u0652"));
-
- buttonsKeyboard.add(new JButton("\u0660"));
- buttonsKeyboard.add(new JButton("\u0661"));
- buttonsKeyboard.add(new JButton("\u0662"));
- buttonsKeyboard.add(new JButton("\u0663"));
- buttonsKeyboard.add(new JButton("\u0664"));
- buttonsKeyboard.add(new JButton("\u0665"));
- buttonsKeyboard.add(new JButton("\u0666"));
- buttonsKeyboard.add(new JButton("\u0667"));
- buttonsKeyboard.add(new JButton("\u0668"));
- buttonsKeyboard.add(new JButton("\u0669"));
-
-
- if (f_albattar != null)
- for (int i = 0; i < buttonsKeyboard.size(); i++)
- buttonsKeyboard.get(i).setFont(f_albattar.deriveFont(30f));
- for (int i = 0; i < buttonsKeyboard.size(); i++)
- {
- pnKeyboardAr.add(buttonsKeyboard.get(i));
- buttonsKeyboard.get(i).addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent ae)
- { //Puisque je n'ai pas précisé l'actioncommand des boutons, getActionCommand() retourne le texte des boutons
- txtArab.setText(txtArab.getText()+ae.getActionCommand());
- txtArab.requestFocusInWindow(); //On remet le focus dans la zone de texte
- }
- });
- }
-
- setContentPane(new Box(BoxLayout.PAGE_AXIS));
- getContentPane().add(pnTop);
- getContentPane().add(Box.createVerticalStrut(10));
- getContentPane().add(pnCenter);
- getContentPane().add(Box.createVerticalStrut(10));
- getContentPane().add(pnKeyboardAr);
- //getContentPane().add(Box.createVerticalGlue());
-
- Locale l = new Locale("ar");
- //L'orientation de la fenêtre et de ses enfants (droite->gauche)
- applyComponentOrientation(ComponentOrientation.getOrientation(l));
- setLocale(l); //On définit la Locale de la JFrame comme étant l'arabe
- txtUnicode.setLocale(Locale.FRENCH);////On définit la Locale de la JTextArea comme étant le français. (pas besoin de l'arabe)
- txtUnicode.applyComponentOrientation(ComponentOrientation.getOrientation(Locale.FRENCH));
- setBounds(x, y, w, h);
- setDefaultCloseOperation(EXIT_ON_CLOSE);
- setVisible(true);
- }
-
- private class MyPlainDocument extends PlainDocument
- {
- public void insertString(int offs, String str, AttributeSet a) throws BadLocationException
- {
- if (str.equals(" ") ||
- (str.codePointAt(0) >= 0x600 && str.codePointAt(0) <= 0x6ff))//Les caractères arabes sont compris entre
- { //0600 et 06FF (hexadécimal bien sûr)
- for(int i = 0; i < str.length(); i++)
- {
- characters.add(str.substring(i, i+1)); //On remplit notre liste
- }
- super.insertString(offs, str, a);
- }
- else
- {
- JOptionPane.showMessageDialog(ArabicToUnicode.this, "This is not an arabic character.",
- "\u0625\u0646\u0630\u0627\u0631", JOptionPane.WARNING_MESSAGE);
- }
- }
- public void remove(int offs, int len) throws BadLocationException
- {
- for (int i = offs; i < offs+len; i++) //Les éléments de l'ArrayList sont décalés à gauche après chaque suppression,
- characters.remove(offs); //par exp, on a remove(1, 3), on supprime d'abord l'élément 1, décalage à gauche,
- super.remove(offs, len); // l'élément 2 prends la place 1, et ainsi de suite.
- }
- }
-
- private String getUnicode(String arChar)
- {
- // La méthode codePointAt(int i) de la classe String retourne le code unicode du caractère à l'index i en décimal
- // La méthode Integer.toHexString(int code) retourne la chaine qui représente l'argument int en héxadécimal
- String code = "\\u0" + Integer.toHexString(arChar.codePointAt(0));
- return code;
- }
-
- public static void main(String[] args)
- {
- //Je change le texte affiché par le bouton ok de la JOptionPane
- UIManager.put("OptionPane.okButtonText", "\u0645\u0648\u0627\u0641\u0642");
- SwingUtilities.invokeLater(new Runnable(){
- public void run()
- {
- new ArabicToUnicode();
- }
- });
- }
- }
/*TODO
* Il reste d'autres caractères waw avec hamza et co
*/
import java.awt.*;
import java.awt.datatransfer.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.*;
import java.util.*;
import java.io.File;
public class ArabicToUnicode extends JFrame
{
private JTextField txtArab = null;
private JTextArea txtUnicode = null;
private JButton btnTranslate = null, btnToClipboard = null;
private JScrollPane scroll = null;
private JPanel pnTop = null, pnCenter = null, pnKeyboardAr = null;
private int w, h, x, y;
private ArrayList<String> characters = null;
private ArrayList<JButton> buttonsKeyboard = null;
public ArabicToUnicode()
{
super("ArabicToUnicode");
/*Enumeration keys = UIManager.getDefaults().keys();
while(keys.hasMoreElements())
System.out.println(keys.nextElement());*/
characters = new ArrayList<String>(); //La liste des caractères saisies
w = 600;
h = 530;
x = ((int)Toolkit.getDefaultToolkit().getScreenSize().getWidth()-w)/2;
y = ((int)Toolkit.getDefaultToolkit().getScreenSize().getHeight()-h)/2;
Font f_albattar = null;
try{
//Cette Font n'est pas enregistré dans le système, on doit donc la créer
f_albattar = Font.createFont(Font.TRUETYPE_FONT , new File("ae_AlBattar.ttf"));
} catch (Exception e){
e.printStackTrace();
}
txtArab = new JTextField(70);
txtArab.setPreferredSize(new Dimension(500, 28));
if (f_albattar != null)
txtArab.setFont(f_albattar.deriveFont(14f));
//Je précise un PlainDocument personnalisé pour surveiller l'insertion et la suppression dans le JTextField (voir la classe plus loin)
txtArab.setDocument(new MyPlainDocument());
//Le texte du bouton est en arabe, donc ce que vous voyez est le code unicode
btnTranslate = new JButton("\u062d\u064e\u0648\u0651\u0650\u0644\u0652");
btnTranslate.setPreferredSize(new Dimension(70, 28));
if (f_albattar != null)
btnTranslate.setFont(f_albattar.deriveFont(Font.BOLD, 12f));
btnTranslate.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
for (int i = 0; i < characters.size(); i++)
{ //
if (characters.get(i).equals(" "))
txtUnicode.append(" ");
else
txtUnicode.append(getUnicode(characters.get(i)));//Pour chaque caractère dans la liste, on récupère son code
} // Unicode, et on l'ajoute à la JTextArea
txtArab.setText(""); // Et finalement, on vide la JTextField
}
});
SpringLayout springLayoutTop = new SpringLayout();
pnTop = new JPanel(springLayoutTop);
pnTop.setPreferredSize(new Dimension(w, 50));
pnTop.setMaximumSize(new Dimension((int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(), 50));
springLayoutTop.putConstraint(SpringLayout.WEST, txtArab, 10, SpringLayout.WEST, pnTop);
springLayoutTop.putConstraint(SpringLayout.NORTH, txtArab, 10, SpringLayout.NORTH, pnTop);
springLayoutTop.putConstraint(SpringLayout.WEST, btnTranslate, 10, SpringLayout.EAST, txtArab);
springLayoutTop.putConstraint(SpringLayout.NORTH, btnTranslate, 10, SpringLayout.NORTH, pnTop);
springLayoutTop.putConstraint(SpringLayout.EAST, pnTop, 10, SpringLayout.EAST, btnTranslate);
pnTop.add(txtArab);
pnTop.add(btnTranslate);
txtUnicode = new JTextArea(5, 50);
scroll = new JScrollPane(txtUnicode);
btnToClipboard = new JButton("\u0625\u0650\u0646\u0652\u0633\u064e\u062e\u0652");
if (f_albattar != null)
btnToClipboard.setFont(f_albattar.deriveFont(Font.BOLD, 12f));
btnToClipboard.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{
try{
//On récupère le presse-papier du système
Clipboard clipBrd = Toolkit.getDefaultToolkit().getSystemClipboard();
// On copie le contenu de la JTextArea dans le presse-papier du système
clipBrd.setContents(new StringSelection(txtUnicode.getText()), null);
} catch(Exception e){
e.printStackTrace();
}
}
});
SpringLayout springLayoutCenter = new SpringLayout();
pnCenter = new JPanel(springLayoutCenter);
pnCenter.setPreferredSize(new Dimension(w, 150));
pnCenter.setMaximumSize(new Dimension((int)Toolkit.getDefaultToolkit().getScreenSize().getWidth(), 150));
springLayoutCenter.putConstraint(SpringLayout.WEST, scroll, 10, SpringLayout.WEST, pnCenter);
springLayoutCenter.putConstraint(SpringLayout.EAST, pnCenter, 10, SpringLayout.EAST, pnTop);
springLayoutCenter.putConstraint(SpringLayout.EAST, pnCenter, 10, SpringLayout.EAST, scroll);
springLayoutCenter.putConstraint(SpringLayout.WEST, btnToClipboard, 0, SpringLayout.WEST, scroll);
springLayoutCenter.putConstraint(SpringLayout.NORTH, btnToClipboard, 10, SpringLayout.SOUTH, scroll);
pnCenter.add(scroll);
pnCenter.add(btnToClipboard);
//SpringLayout springLayoutKeyboard = new SpringLayout();
pnKeyboardAr = new JPanel(new GridLayout(5, 12));
buttonsKeyboard = new ArrayList<JButton>();
buttonsKeyboard.add(new JButton("\u0622"));
buttonsKeyboard.add(new JButton("\u0627"));
buttonsKeyboard.add(new JButton("\u0623"));
buttonsKeyboard.add(new JButton("\u0625"));
buttonsKeyboard.add(new JButton("\u0621"));
buttonsKeyboard.add(new JButton("\u0628"));
buttonsKeyboard.add(new JButton("\u062A"));
buttonsKeyboard.add(new JButton("\u0629"));
buttonsKeyboard.add(new JButton("\u062B"));
buttonsKeyboard.add(new JButton("\u062C"));
buttonsKeyboard.add(new JButton("\u062D"));
buttonsKeyboard.add(new JButton("\u062E"));
buttonsKeyboard.add(new JButton("\u062F"));
buttonsKeyboard.add(new JButton("\u0630"));
buttonsKeyboard.add(new JButton("\u0631"));
buttonsKeyboard.add(new JButton("\u0632"));
buttonsKeyboard.add(new JButton("\u0633"));
buttonsKeyboard.add(new JButton("\u0634"));
buttonsKeyboard.add(new JButton("\u0635"));
buttonsKeyboard.add(new JButton("\u0636"));
buttonsKeyboard.add(new JButton("\u0637"));
buttonsKeyboard.add(new JButton("\u0638"));
buttonsKeyboard.add(new JButton("\u0639"));
buttonsKeyboard.add(new JButton("\u063A"));
buttonsKeyboard.add(new JButton("\u0641"));
buttonsKeyboard.add(new JButton("\u0642"));
buttonsKeyboard.add(new JButton("\u0643"));
buttonsKeyboard.add(new JButton("\u0644"));
buttonsKeyboard.add(new JButton("\u0645"));
buttonsKeyboard.add(new JButton("\u0646"));
buttonsKeyboard.add(new JButton("\u0647"));
buttonsKeyboard.add(new JButton("\u0648"));
buttonsKeyboard.add(new JButton("\u064A"));
buttonsKeyboard.add(new JButton("\u064B"));
buttonsKeyboard.add(new JButton("\u064D"));
buttonsKeyboard.add(new JButton("\u064E"));
buttonsKeyboard.add(new JButton("\u064F"));
buttonsKeyboard.add(new JButton("\u0650"));
buttonsKeyboard.add(new JButton("\u0651"));
buttonsKeyboard.add(new JButton("\u0652"));
buttonsKeyboard.add(new JButton("\u0660"));
buttonsKeyboard.add(new JButton("\u0661"));
buttonsKeyboard.add(new JButton("\u0662"));
buttonsKeyboard.add(new JButton("\u0663"));
buttonsKeyboard.add(new JButton("\u0664"));
buttonsKeyboard.add(new JButton("\u0665"));
buttonsKeyboard.add(new JButton("\u0666"));
buttonsKeyboard.add(new JButton("\u0667"));
buttonsKeyboard.add(new JButton("\u0668"));
buttonsKeyboard.add(new JButton("\u0669"));
if (f_albattar != null)
for (int i = 0; i < buttonsKeyboard.size(); i++)
buttonsKeyboard.get(i).setFont(f_albattar.deriveFont(30f));
for (int i = 0; i < buttonsKeyboard.size(); i++)
{
pnKeyboardAr.add(buttonsKeyboard.get(i));
buttonsKeyboard.get(i).addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ae)
{ //Puisque je n'ai pas précisé l'actioncommand des boutons, getActionCommand() retourne le texte des boutons
txtArab.setText(txtArab.getText()+ae.getActionCommand());
txtArab.requestFocusInWindow(); //On remet le focus dans la zone de texte
}
});
}
setContentPane(new Box(BoxLayout.PAGE_AXIS));
getContentPane().add(pnTop);
getContentPane().add(Box.createVerticalStrut(10));
getContentPane().add(pnCenter);
getContentPane().add(Box.createVerticalStrut(10));
getContentPane().add(pnKeyboardAr);
//getContentPane().add(Box.createVerticalGlue());
Locale l = new Locale("ar");
//L'orientation de la fenêtre et de ses enfants (droite->gauche)
applyComponentOrientation(ComponentOrientation.getOrientation(l));
setLocale(l); //On définit la Locale de la JFrame comme étant l'arabe
txtUnicode.setLocale(Locale.FRENCH);////On définit la Locale de la JTextArea comme étant le français. (pas besoin de l'arabe)
txtUnicode.applyComponentOrientation(ComponentOrientation.getOrientation(Locale.FRENCH));
setBounds(x, y, w, h);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
private class MyPlainDocument extends PlainDocument
{
public void insertString(int offs, String str, AttributeSet a) throws BadLocationException
{
if (str.equals(" ") ||
(str.codePointAt(0) >= 0x600 && str.codePointAt(0) <= 0x6ff))//Les caractères arabes sont compris entre
{ //0600 et 06FF (hexadécimal bien sûr)
for(int i = 0; i < str.length(); i++)
{
characters.add(str.substring(i, i+1)); //On remplit notre liste
}
super.insertString(offs, str, a);
}
else
{
JOptionPane.showMessageDialog(ArabicToUnicode.this, "This is not an arabic character.",
"\u0625\u0646\u0630\u0627\u0631", JOptionPane.WARNING_MESSAGE);
}
}
public void remove(int offs, int len) throws BadLocationException
{
for (int i = offs; i < offs+len; i++) //Les éléments de l'ArrayList sont décalés à gauche après chaque suppression,
characters.remove(offs); //par exp, on a remove(1, 3), on supprime d'abord l'élément 1, décalage à gauche,
super.remove(offs, len); // l'élément 2 prends la place 1, et ainsi de suite.
}
}
private String getUnicode(String arChar)
{
// La méthode codePointAt(int i) de la classe String retourne le code unicode du caractère à l'index i en décimal
// La méthode Integer.toHexString(int code) retourne la chaine qui représente l'argument int en héxadécimal
String code = "\\u0" + Integer.toHexString(arChar.codePointAt(0));
return code;
}
public static void main(String[] args)
{
//Je change le texte affiché par le bouton ok de la JOptionPane
UIManager.put("OptionPane.okButtonText", "\u0645\u0648\u0627\u0641\u0642");
SwingUtilities.invokeLater(new Runnable(){
public void run()
{
new ArabicToUnicode();
}
});
}
}
Conclusion
Je pense ajouter quelques bouton au programme comme un petit clavier pour ceux comme moi qui n'ont pas l'habitude du clavier arabe.
J'espère que ce code vous aidera un peu.
Historique
- 28 juillet 2008 15:46:53 :
- Le problème du texte collé directement dans la JTextField est résolue.
- 28 juillet 2008 15:48:35 :
- Le problème du texte collé directement dans la JTextField est résolue.
- 28 juillet 2008 15:49:15 :
- Le problème du texte collé directement dans la JTextField est résolue.
- 29 juillet 2008 17:52:00 :
- J'ai ajouté quelques boutons en guise de clavier.
- 31 juillet 2008 09:24:45 :
- J'ai ajouté les boutons des caractères pour le '<em>tachkil</em>'
- 31 juillet 2008 09:28:19 :
- J'ai ajouté quelques caractères de 'tachkil'
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
language arab + swing [ par fraisa1985 ]
comment je peux ecrire dans une interface swing en java .je suis entrain de faire une application internationale (anglais ,français,arabe).Pour cela j
java + arabic [ par deadmannn ]
salut, ceci est un sos...g un ptit prob avec java et my sql..g developpé une petite application avec java , et elle est sencée stocker ds la base de d
Transformer un code (unicode?) en lettre... [ par z980x ]
Bonjour à tous,j'ai fait un programme qui, au bout d'un moment, me donne des nombres correspondant à des lettres. (Exemple: a->10, b->11, etc...
JTable et titre des colonnes en unicode [ par breathfromhell ]
salut j aimerais bien savoir comment faire pour pouvoir afficher le nom des colonne en unicode quand j essaye de le faire les tires sont remplaces par
application en arabe [ par amelrc ]
Est ce que java permet de faire des applications en arabe?si oui comment le faire?Cordialement
Shaper les chiffre Arabe [ par kobari ]
Bonjour,J'ai associé un DocumentFilter à un JTextField et j'essaie de formatter les entrées comme un numero de teléphone avec un format comme (####)#
unicode dans les JLabel [ par superromu ]
Bonjour,J ainerais lire un fichier ecrit en unicode, et ensuite les afficher dans mes JLabels.le probleme est que je ne sais pas comment est enregistr
Trouver un caractere unicode. [ par alex1er ]
Bonjour,Voilà, j'aimerais afficher à l'écran tous les caracteres disponible et leur correspondance en unicode du styled = \u064Je l'ai deja vu mais je
Compiler en Unicode [ par Dinofly ]
Désolé de flooder ce forum avec mes soucis, mais bon... j'a vraiment du mal Alors voici.... la QUEStion:Comment compiler un fichier java en Unicode ?P
Creer des documents codés en unicode [ par RustyNail ]
Voila j'ai créee une méthode qui crée des fichiers textes mais je voudrais que ceux-ci soient codés en unicode et non en tant que fichiers txt simples
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : CODE GéNéRé RE : CODE GéNéRé par am4sys
Cliquez pour lire la suite par am4sys RE : CODE GéNéRé RE : CODE GéNéRé par Julien39
Cliquez pour lire la suite par Julien39 CODE GéNéRé CODE GéNéRé par am4sys
Cliquez pour lire la suite par am4sys
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|