JscrollBar et JtextArea

JscrollBar et JtextArea - Java - Programmation

Marsh Posté le 20-01-2007 à 13:18:11    

public void PartieDialogue(){
   
  pane_dialogue = new JPanel();
   
  textArea = new JTextArea("test",10,50);
  JScrollBar scrollBar = new JScrollBar();
  textArea.setEditable(false);
  textArea.setCaretPosition(textArea.getDocument().getLength());
  textArea.setPreferredSize(new Dimension(700, 150));
  pane_dialogue.add(textArea);
        envoi= new JButton ("Valider" );
     envoi.addActionListener(this);
     pane_dialogue.add(envoi);
     textArea.add(scrollBar);
         
    }
 
J'apelle la fonction dans une autre fonction qui extends Jframe
 
le textarea est bien bloqué, mais aucune barre n'apparait.
Ce que je voudrais c'est que plus on insere de texte, plus la zone de texte descende automatiquement, et qu'on puisse remonter et descendre avec les barres.

Reply

Marsh Posté le 20-01-2007 à 13:18:11   

Reply

Marsh Posté le 21-01-2007 à 22:07:06    

+1

Reply

Marsh Posté le 23-01-2007 à 19:59:36    

Pour avoir une barre de défilement il faut utiliser un JScrollPane et non pas un JScrollBar !
 
voiçi un exemple qui répond au pb :
 

Code :
  1. import java.awt.BorderLayout;
  2. import javax.swing.*;
  3. public class Fenetre extends JFrame {
  4. private static final long serialVersionUID = 1L;
  5. private JTextArea zoneTexte=new JTextArea();
  6. private JScrollPane zoneScrolable;
  7. public Fenetre() {
  8.  setDefaultCloseOperation(EXIT_ON_CLOSE);
  9.  setBounds(0,0,300,200);
  10.  setLayout(new BorderLayout());
  11.  add(new JPanel(),BorderLayout.NORTH);
  12.  add(new JPanel(),BorderLayout.SOUTH);
  13.  add(new JPanel(),BorderLayout.EAST);
  14.  add(new JPanel(),BorderLayout.WEST);
  15.  zoneScrolable=new JScrollPane(zoneTexte);
  16.  add(zoneScrolable,BorderLayout.CENTER);
  17.  setVisible(true);
  18. }
  19. public static void main(String[] args) {
  20.  new Fenetre();
  21. }
  22. }

Reply

Marsh Posté le 28-01-2007 à 22:51:14    

Quand je fais add(zoneScrolable,BorderLayout.CENTER);, mes autes Jpanels disparaissent.
En gros la partie que j'ai mise est incluse dans un Jpanel qui n'apparait qu'au fur et a mesure de l'application quand on clique sur un bouton.
En gros quand j'utilise le borderlayout ca marche plus /:
 

Code :
  1. public void fenetre(){
  2.  barre_menu();
  3.  PartieDialogue();
  4.  setLayout(new BorderLayout());
  5.  add(JScrollPane,BorderLayout.CENTER);
  6.  PartieConnexion(indexX, indexY);
  7.  PartieCoordTir(indexX, indexY);
  8.  PartieAccepation(indexX, indexY);
  9.  setBackground(Color.WHITE);
  10.  setBounds(200,200,0,0);
  11.  setSize(800,600);
  12.  add(new JPanel(),BorderLayout.NORTH);
  13.  add(new JPanel(),BorderLayout.SOUTH);
  14.  add(new JPanel(),BorderLayout.EAST);
  15.  add(new JPanel(),BorderLayout.WEST);
  16.  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  17.     setVisible(true);
  18. }


tous mes menus etc sont réparties dans des fonctions spéciales pour pas faire un enorme pavé de code dans fenetre().
J'ai peut etre mal agencé le truc je sais pas.
En tout ca j'ai bien dans le actionlisterner un : add(pane_connect,BorderLayout.CENTER);
 
Voila je sais pas trop :/


Message édité par Decapfour le 28-01-2007 à 22:57:18
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed