J'ai du mal à arranger le code suivant pr avoir des scrollbars à mon TextArea _txtRes

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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
 
 
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
 
 
import javax.swing.*;
 
/**
* Classe permettant de faire des conversions
* entre les francs et les euros.
*
* La classe "hérite" (extends) de JFrame pour pouvoir
* afficher une fenetre à l'écran.
*
* Elle "implémente" (implements) l'Interface ActionListener
* c'est à dire qu'elle doit redéfinir toutes les méthodes
* de cette Interface.
* Ici il n'y en à qu'une : actionPerformed
* Cela permet d'intercepter toutes les actions qui
* se passent dans la fenetre (les clicks par exemple)
*
* @author Duss
*/
 
 
 
 
public class Convertisseur extends JFrame implements ActionListener
{
 
 
// Attributs de la classe
private JLabel _labVal, _labRes;
private JTextField _txtVal;
        private JTextArea       _txtRes;
private JButton _conv;
private JCheckBox _euro, _franc;
 
/** Constructeur : c'est la méthode qui se lance
* quand on fait un new sur notre classe
*/
public Convertisseur()
{
// On récupère l'objet de la fenetre
// sur lequel on va pouvoir ajouter
// nos composants graphiques.
Container cont = getContentPane();
 
// On crée 3 JPanel qui sont des "panneaux"
// sur lesquels on peut poser des composants
// cela va permettre d'avoir une mise en page
// avec 3 layouts différents
JPanel haut = new JPanel();
                JPanel milieu = new JPanel();
JPanel bas = new JPanel();
 
 
// Le layout de notre panel du haut
// est une grille de 2 lignes et 2 colonnes
// celui du milieu 1 lignes 2 colonnes
 
                haut.setLayout(new GridLayout(2,2));
milieu.setLayout(new GridLayout(1,2));
 
 
// Création des JLabels
_labVal = new JLabel("Mot");
_labRes = new JLabel("Resultat");
 
// Création des JTextField
_txtVal = new JTextField();
 
                // création d'un TextArea
_txtRes = new JTextArea(4, 10); 
 
                // les paramètres du TextArea
_txtRes.setEditable(false); // on ne peut pas éditer notre textarea
JScrollPane scrollPane = 
    new JScrollPane(_txtRes,
                    JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
                    JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
_txtRes.setEditable(false); // on ne peut pas éditer notre textarea
 
 
 
// Création des JCheckBox
_euro = new JCheckBox("Rechercher");
_franc = new JCheckBox("Anagramme");
 
// Euro est cochée, franc ne l'est pas à la base (au départ)
_euro.setSelected(false);
_franc.setSelected(true);
 
// Création du bouton
_conv = new JButton("Chercher");
 
// On indique que notre fenetre (this = la classe dans laquelle
// on se trouve) est chargée "d'écouter" les actions du bouton
// et des cases a cocher
_conv.addActionListener(this);
_euro.addActionListener(this);
_franc.addActionListener(this);
 
// On ajoute le panel haut en haut de la feuille
// et celui du bas en dessous
cont.add(haut,"North");
                cont.add(milieu,"Center");
cont.add(bas, "South");
 
// On ajoute les composants labels, textField et
// checkBox au panel haut
haut.add(_labVal);
haut.add(_txtVal);
haut.add(_euro);
haut.add(_franc);
                milieu.add(_labRes);
milieu.add(_txtRes);
 
 
// Le bouton a celui du bas
bas.add(_conv);
 
}
public void rechercher(String s1, String s2)
  {
       int j=0;
       String newline = "\n";
 
 
  while( j <s1.length() )
  {
     if( (s1.charAt(j) == '*') || (s1.charAt(j) == s2.charAt(j)) )
   j++;
else
   break;
  }
 
    if(j == s2.length())
_txtRes.append(s2 + newline);
 
   }
 
 
         /**
* Méthode de l'interface ActionListener
*
* @param e L'actionEvent correspondant à l'action
*/
public void actionPerformed(ActionEvent e)
{
// En faisant e.getSource() on récupère
// le composant qui à générer l'action
// on peut donc faire des traitements différents
 
// Cas ou c'est le bouton
// On va faire la conversion
if (e.getSource() == _conv)
{
// Vérification qu'il y a bien quelque chose
// à convertir. Si non, on affiche un message
if (_txtVal.getText().equals(""))
JOptionPane.showMessageDialog(this,"Veuillez saisir une valeur !");
else
{
// là on a cliqué sur le bouton donc 
 
// On teste quel case est cochée
// et on détermine le sens de conversion
if (_euro.isSelected())
                                {
                                    // euro = rechercher
 
                                    // on dois mettre à 0 notre textarea
                                  _txtRes.setText("");
 
 
 
                               Fichieralire f1 = new Fichieralire("fr.txt");
 
                               String[] stock = new String[140000];
 
                       for (int i=0;f1.ready();i++){ 
 
                     String ligne=f1.readline();
                             stock[i] = ligne;
 
                // on essaie d'afficher les mots qui ont la meme longueur
 
           if(stock[i].length() == _txtVal.getText().length())
                  rechercher(_txtVal.getText(), stock[i]);
         //anagramme(args[0], stock[i]);
 
    }
 
 
 
// La fonction parseDouble lance des
// exceptions de type numberFormatException
// si le String à parser n'est pas un double valide
// on va donc intercepter cette possible
// exception en l'entourant d'un bloc try/catch
// try sert à prévenir qu'une exception peut survenir
// catch sert à la récupérer et à faire un
// traitement approprié. Ici, l'affichage d'un message
//try
//{
//val  = Double.parseDouble(_txtVal.getText());
//}
//catch (NumberFormatException ex)
//{
//JOptionPane.showMessageDialog(this,"Veuillez saisir un nombre !");
//}
 
// On appelle la fonction pour arrondir
//double res = arrondir(conv(val,sens),2);
 
// On affiche le texte
// _txtRes.setText(s2);
}
}
 
 
// Traitement pour que les 2 cases à cocher
// ne soit pas cochées en même temps :
 
// Cas ou c'est la case euro qui a généré l'action
// La case franc prend la valeur inverse de euro
if (e.getSource() == _euro)
_franc.setSelected(!_euro.isSelected());
 
// Cas ou c'est la case franc qui a généré l'action
// La case euro prend la valeur inverse de franc
if (e.getSource() == _franc)
_euro.setSelected(!_franc.isSelected());
 
}
}
 
}
Si qqun peut m'aider, eh ben ca serait cool
a++