Bonjour,
Tout d'abord, je suis débutant en Java.
J'ai réalisé, sans trop de difficultés en Perl, une interface de gestion de cours d'arabe qui me donne satisfaction au bémol près que si je clique dans la zone qui affiche le texte arabe (ScrolledText), celui-ci est complètement désorganisé.
Visiblement le bug traîne depuis des lustres et ne sera pas corrigé dans un avenir proche.
http://www.developpez.net/forums/d11...scrolled-text/
Je fais quelques essais en Java pour voir ...
Là lorsque j'écris dans un TextArea avec un clavier arabe, de petits carrés remplacent les caractères arabes. Autrement dit, là encore les caractères codés sur plusieurs octets ne passent pas.
Voici le bout de code :
Juste une question : Peut-on sans trop de difficultés gérer un texte en arabe en Java, dans un TextaArea ? Éventuellement dans un autre langage ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class ta_scroll{ private JFrame f; //Main frame private JTextArea ta; // Text area private JScrollPane sbrText; // Scroll pane for text area private JButton btnQuit; // Quit Program public ta_scroll(){ //Constructor // Create Frame f = new JFrame("Swing Demo"); f.getContentPane().setLayout(new FlowLayout()); // Create Scrolling Text Area in Swing ta = new JTextArea("", 5, 20); ta.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); // String Result = new String(ta.nextToken().getBytes("windows-1256"), "utf-8"); // String str = new String("ßã".getBytes(), "UTF-8"); Font font = new Font("Verdana", Font.BOLD, 18); ta.setFont(font); ta.setForeground(Color.BLUE); ta.setLineWrap(true); sbrText = new JScrollPane(ta); sbrText.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); // Create Quit Button btnQuit = new JButton("Quit"); btnQuit.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ System.exit(0); } } ); } public void launchFrame(){ // Create Layout // Add text area and button to frame f.getContentPane().add(sbrText); f.getContentPane().add(btnQuit); // Close when the close button is clicked f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Display Frame f.pack(); // Adjusts frame to size of components f.setVisible(true); } public static void main(String args[]){ ta_scroll gui = new ta_scroll(); gui.launchFrame(); } }
Ça doit être possible, sur le web les pages de sites arabes s'affichent correctement.
Merci d'avance pour votre aide.
Le résultat en image :
Partager