Problème d'affichage

cs_f3nx Messages postés 4 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 26 avril 2004 - 25 avril 2004 à 16:03
JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 - 27 avril 2004 à 15:30
Bonjour,
je débute en Java et j'ai un problème avec mon application. En effet, j'ai 4 JButton et j'aimerais que quand on click sur l'un d'entre eux il apparaisse le JTextPane correspondant (en remplacent l'ancien sur le panel).
Voila ce que j'ai fais :

import java.awt.*;
import java.awt.event.*;
import javax.swing.JScrollPane;
import javax.swing.JPanel;
import javax.swing.*;

public class POPTest extends JPanel {

private JTextPane tPerso, tWorkg, tAutre, tCC;
private JButton bEnvoie, bPerso, bWorkg, bAutre, bCC;
private JScrollPane scrollAffichage;
private JFrame frame;

public POPTest() {

super(new GridBagLayout());

bEnvoie = new JButton("Envoie");
bEnvoie.addActionListener(new Action());

bPerso = new JButton("Perso");
bPerso.addActionListener(new Action());

bWorkg = new JButton("Workg");
bWorkg.addActionListener(new Action());

bAutre = new JButton("Autre");
bAutre.addActionListener(new Action());

bCC = new JButton("CC");
bCC.addActionListener(new Action());

tPerso = new JTextPane();
tPerso.setCaretPosition(0);
tPerso.setMargin(new Insets(5,5,5,5));
tPerso.setText("PERSO");
tPerso.setEditable(false);

scrollAffichage = new JScrollPane(tPerso,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

scrollAffichage.setPreferredSize(new Dimension(250,100));

CreateAndShow();
}

public void CreateAndShow() {

GridBagConstraints g = new GridBagConstraints();
g.fill = GridBagConstraints.BOTH;

g.weightx = 1 ;
g.weighty = 1 ;

g.gridx = 0;
g.gridy = 0;
add(bPerso,g);

g.gridx = 1;
g.gridy = 0;
add(bWorkg,g);

g.gridx = 2;
g.gridy = 0;
add(bAutre,g);

g.gridx = 3;
g.gridy = 0;
add(bCC,g); // fin de la ligne

g.weighty = 30;
g.weightx = 1;
g.gridx = 0;
g.gridy = 1;
g.ipady = 200;

g.gridwidth = GridBagConstraints.REMAINDER; // fin de la ligne
add(scrollAffichage,g);

}

class Action implements ActionListener {
public void actionPerformed(ActionEvent e) {

JButton source = (JButton)(e.getSource());

if(source.getText() == "Perso") Perso();
if(source.getText() == "Workg") Workg();
if(source.getText() == "Autre") Autre();
if(source.getText() == "CC") CC();
}

public void Perso() {
System.out.println("PERSO");
scrollAffichage = new JScrollPane(tPerso,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

CreateAndShow();

}

public void Workg() {
tWorkg = new JTextPane();
tWorkg.setCaretPosition(0);
tWorkg.setMargin(new Insets(5,5,5,5));
tWorkg.setText("WORKG");
tWorkg.setEditable(false);

System.out.println("WORKG");
scrollAffichage = new JScrollPane(tWorkg,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
CreateAndShow();

}

public void Autre() {
tAutre = new JTextPane();
tAutre.setCaretPosition(0);
tAutre.setMargin(new Insets(5,5,5,5));
tAutre.setText("AUTRE");
tAutre.setEditable(false);

System.out.println("AUTRE");
scrollAffichage = new JScrollPane(tAutre,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

CreateAndShow();
}

public void CC() {
tCC = new JTextPane();
tCC.setCaretPosition(0);
tCC.setMargin(new Insets(5,5,5,5));
tCC.setText("CC");
tCC.setEditable(false);

System.out.println("CC");
scrollAffichage = new JScrollPane(tCC,
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

CreateAndShow();
}

}

public static void createAndShowGUI(){
JFrame.setDefaultLookAndFeelDecorated(false);
JFrame frame = new JFrame("Affichage POP TEST");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JComponent tP = new POPTest();
tP.setOpaque(true);
frame.getContentPane().add(tP,BorderLayout.CENTER);
frame.setContentPane(tP);

frame.pack();
frame.setVisible(true);

}


public static void main(String args[]){
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}

5 réponses

JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 1
26 avril 2004 à 10:39
8-) JB@WAre

que veux tu faire exactement :

remplacer un JTextPane par un autre ou modifier le texte qu'il contient????
0
cs_f3nx Messages postés 4 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 26 avril 2004
26 avril 2004 à 16:43
En fait, j'essaye de faire un client winpopup. J aimerais classer les messages arrivant selon 3 sections : Perso, WorkGroup, Autre (CC étant une copie carbone des messages de l'utilisateur). Résultat, je voulais crée 4 JTextPane différents (un pour chaque sections), et quand l'utilisateur click sur le Boutton Perso, ca affiche le JTextPane Perso, sur le Button Autre ca affiche le JTextPane Autre etc....
Le problème c'est que je ne sais pas du tout comment fair pour en gros "reconstruire" mon interface avec le nouveau JTextPane. En plus vu que je débute, j suis franchement pas sur que ca soit la meilleure méthode donc si tu as des propositions y'a pas de pb.

FnX
0
JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 1
26 avril 2004 à 17:26
8-) JB@WAre

A mon avis utilise un unique JTextPane et quatre String qui contiendront les données à afficher

ex :

[CODE]

JTextPane popUp = new JTextPane();
....
Button perso = ...
Button wg = ...
Button cc = ...
Button autre = ...

String sPerso = ...
String sWg = ...
String sCC = ...
String sAutre = ....

si je clique sur perso :
popUp.setText(sPerso);
popUp.repaint();

si je clique sur wg alors
popUp.setText(sWg);
popUp.repaint();

si je clique sur cc alors
popUp.setText(sCC);
popUp.repaint();

si je clique sur autre alors
popUp.setText(sAutre);
popUp.repaint();
0
cs_f3nx Messages postés 4 Date d'inscription dimanche 25 avril 2004 Statut Membre Dernière intervention 26 avril 2004
26 avril 2004 à 18:10
Nikel !!!
Merci bien
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
JBAware Messages postés 174 Date d'inscription lundi 23 septembre 2002 Statut Membre Dernière intervention 6 avril 2011 1
27 avril 2004 à 15:30
8-) JB@WAre

De rien content de t'avoir aidé
0
Rejoignez-nous