JScrollPane

Résolu
Messages postés
90
Date d'inscription
mercredi 24 décembre 2008
Statut
Membre
Dernière intervention
4 février 2009
-
Messages postés
90
Date d'inscription
mercredi 24 décembre 2008
Statut
Membre
Dernière intervention
4 février 2009
-
Salut

J'ai le code de newbee qui suit, mais le JTextArea ne s'affiche pas. Quelqu'un peut m'aider?

import javax.swing.*;

public class compteurChars extends java.lang.Object {
public JTextArea texte = new JTextArea ();
public compteurChars (){
JScrollPane scrollbars = new JScrollPane (ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HOZIONTAL_SCROLLBAR_ALWAYS);
scrollbars.add (texte);

JButton btnCompte = new JButton ("Compter");
btnCompte.setMnemonic ('C');
btnCompte.setPreferredSize (new java.awt.Dimension (490, 25));
btnCompte.addActionListener (new java.awt.event.ActionListener (){
public void actionPerformed (java.awt.event.ActionEvent ae){
String sTexte = texte.getText ();
int size = sTexte.length ();
int nbLines = texte.getLineCount ();
String sortie = "Le texte compte: " + size + " caractère(s)." + "Le texte compte: " + nbLines + " ligne(s).";
javax.swing.JOptionPane.showMessageDialog (null, sortie);
} // fin inner class: actionPerformed
});

JPanel panneau = new JPanel ();
panneau.setLayout (new java.awt.BorderLayout());
panneau.add (scrollbars, java.awt.BorderLayout.CENTER);
panneau.add (btnCompte, java.awt.BorderLayout.SOUTH);

JFrame fenetre = new JFrame ("titre");
fenetre.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
fenetre.setSize (500,250);
fenetre.setLocationRelativeTo (null);
fenetre.getContentPane().add(panneau);
fenetre.setVisible(true);
} // fin constructor

public static void main (String [] args){
new compteurChars();
} // fin main
} // fin class
A voir également:

6 réponses


Bonjour,

Il ne manquait pas grand chose :

import

javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JButton;

publicclass compteurChars extends java.lang.Object
{

public JTextArea texte = new JTextArea();

public compteurChars ()
{
//JScrollPane scrollbars; // cela serait suffisant mais fonctionne aussi comme ci-dessous

JScrollPane scrollbars =
new JScrollPane
(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);

texte.append("-Un texte...\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n... de 18 lignes."

+ "--------------------------------------------------------------------"

+ "--------------------------------------------------------------------");
scrollbars =
new JScrollPane(texte); // (*)
//scrollbars.add(texte); // (**)

// en fait il ne manquait que le texte et (*) remplacant (**)

// Remarque : les "\n" comptent chacun pour un caractere

JButton btnCompte =
new
JButton ("Compter");
btnCompte.setMnemonic (
'C');
btnCompte.setPreferredSize (
new java.awt.Dimension (490,25));
btnCompte.addActionListener (

new java.awt.event.ActionListener()
{

publicvoid actionPerformed (java.awt.event.ActionEvent ae)
{
String sTexte = texte.getText();

int size = sTexte.length();

int nbLines = texte.getLineCount();

String sortie =
"Le texte compte: " + size
+
" caractère(s).\n" + "Le texte compte: " + nbLines + " ligne(s).";

javax.swing.JOptionPane.showMessageDialog (
null, sortie);
}// fin actionPerformed

}); // fin inner class:btnCompte.addActionListener

JPanel panneau =
new JPanel();
panneau.setLayout (
new java.awt.BorderLayout());
panneau.add (scrollbars, java.awt.BorderLayout.CENTER);
panneau.add (btnCompte, java.awt.BorderLayout.SOUTH);

JFrame fenetre =
new JFrame ("Compteur de caractères");
fenetre.setSize (500, 250);
fenetre.setLocationRelativeTo (
null);
fenetre.setDefaultCloseOperation(3); // <<<<<<<<<<<<<<< j'ai ajouté ceci
fenetre.getContentPane().add(panneau);
fenetre.setVisible (
true);
} // fin constructeur

public
staticvoid main (String [] args)
{

new compteurChars ();
} // fin main

}// fin de classCordialemenrt et bonnes fêtes de fin d'année,

...\ Dan /...

Bonjour,

Ce code compile sans erreurs ?
Tu peux nous le donner complet ?

Cordialement,

...\ Dan /...

Bonjour,

Ce code compile sans erreurs ?
Tu peux nous le donner complet ?

Si oui, ce sera avec plaisir que j'essairai de t'aider.

Cordialement,

...\ Dan /...
Messages postés
90
Date d'inscription
mercredi 24 décembre 2008
Statut
Membre
Dernière intervention
4 février 2009

oui, alors voila. A tout hasard, y aurait-il un bouton 'browser' que je n'aurais pas vu et qui permette d'uploader le fichier sur le site?



import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JButton;



public class compteurChars extends java.lang.Object {



public JTextArea texte = new JTextArea();



public compteurChars () {


JScrollPane scrollbars = new JScrollPane (javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);

scrollbars.add(texte);


JButton btnCompte = new JButton ("Compter");

btnCompte.setMnemonic ('C');

btnCompte.setPreferredSize (new java.awt.Dimension (490,25));

btnCompte.addActionListener (new java.awt.event.ActionListener(){

public void actionPerformed (java.awt.event.ActionEvent ae){

String sTexte = texte.getText();

int size = sTexte.length();

int nbLines = texte.getLineCount();


String sortie = "Le texte compte: " + size + " caractère(s).\n" + "Le texte compte: " + nbLines + " ligne(s).";


javax.swing.JOptionPane.showMessageDialog (null, sortie);

}// fin actionPerformed
}); // fin inner class:btnCompte.addActionListener


JPanel panneau = new JPanel();

panneau.setLayout (new java.awt.BorderLayout());

panneau.add (scrollbars, java.awt.BorderLayout.CENTER);

panneau.add (btnCompte, java.awt.BorderLayout.SOUTH);


JFrame fenetre = new JFrame ("Compteur de caractères");

fenetre.setSize (500, 250);

fenetre.setLocationRelativeTo (null);

fenetre.getContentPane().add(panneau);

fenetre.setVisible (true);

} // fin constructeur


public static void main (String [] args){

new compteurChars ();

} // fin main

}// fin de class
Messages postés
90
Date d'inscription
mercredi 24 décembre 2008
Statut
Membre
Dernière intervention
4 février 2009

Bonjour et Merci pour les Voeux et pour la réponse. Je vais te souhaiter une Bone Année à toi aussi.

Concernant le code, il fonctionne?
Je veux dire, en créant un nouvel objet que l'on référence à scrollbars, il aura quand même les options définies au premier objet?
JScrollPane scrollbars = new JScrollPane
(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
javax.swing.ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);

texte.append("-Un texte...\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n... de 18 lignes."
+ "--------------------------------------------------------------------"
+ "--------------------------------------------------------------------");
/* ************************** */
/* CREATION D'UN NOUVEL OBJET */
scrollbars = new JScrollPane(texte); // (*)
Messages postés
90
Date d'inscription
mercredi 24 décembre 2008
Statut
Membre
Dernière intervention
4 février 2009

Oui, ca fonctionne. Pas exactement la même solution, mais c'est similaire:

JScrollPane scrollbars = new JScrollPane (texte);
<nobr>scrollbars.setVerticalScrollBarPolicy (javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);</nobr>. Idem avec scrollbars.setHorizontalScrollBarPolicy

Merci