Java 2 classes (liaison des 2...)

Résolu/Fermé
Gautier - 13 janv. 2009 à 09:18
poste22 Messages postés 14 Date d'inscription lundi 20 octobre 2008 Statut Membre Dernière intervention 16 mars 2015 - 10 avril 2009 à 21:11
Bonjour,

voila mon problème :

j ai créé 2 classes en java :

Ma première classe est constitué d une fenêtre avec une textbox et un bouton Afficher!

Ma 2ieme classe est constitué d un bandeau ou j y affiche dessus un message déroulant a l horizontale!

Ce que je veux avoir --> je veux pouvoir récup le message entré dans ma première classe pour l afficher dans mon bandeau (2ieme classe)

-------- comment je dois faire ? merci beaucoup pour vos réponse :D ---------


******************* MON CODE **************************

Fichier PanelBouton.java (fenetre texte + bouton)


package test5;

import java.awt.* ;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class PanelBouton extends Panel implements ActionListener {

private static final long serialVersionUID = 1L;


Button btnAfficher ;

TextField txtNom ;


public static void main (String arg[]) { new Window();

// Créer une fenêtre indépendante
Frame frame = new Frame ("Exemple de fenetre");

// Créer un panel
PanelBouton panelBouton = new PanelBouton ();

// Ajouter le panneau dans la fenetre
frame.add (panelBouton);

// Fixer la taille de la fenetre
frame.setSize (300, 400);

// Afficher la fenetre
frame.setVisible (true);
}


public PanelBouton () {
// Creer les composants
txtNom = new TextField (20);
btnAfficher = new Button ("Afficher");

// Les ajouter dans CE panneau
add (txtNom);
add (btnAfficher);

// Indiquer au bouton que c'est CET objet instance de PanelBouton qui gera les clics
btnAfficher.addActionListener (this);

}

public void actionPerformed(ActionEvent e) {
// Recuperer le texte tape dans le champs de texte
String texteTape = txtNom.getText();


// Afficher le texte dans la console systeme
System.out.println ("Le texte suivant a ete tape : " + texteTape);


System.exit(0);
}

}


_________________________________________________________________________

Fichier2 Window.java (Bandeau texte défilant)


package test5;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Window extends JWindow //Heritage de la classe JWindow
{
/**
*
*/
private static final long serialVersionUID = 8369728381877746335L;
private Timer t = null;



public static void main(String[] args)
{
new Window(); //création d'un nouvel objet
}

public Window()
{
initGUI();//qui à sont tour crée "initGUI()"
initMe();
}

public void initGUI()
{
//taille du JWindow
this.setSize(1500,200);
//ajoute le texte au container
this.getContentPane().add(texte);
this.getContentPane().setBackground(Color.RED);
this.setAlwaysOnTop(true);

//le jwindow est visible
this.setVisible(true);
}

public void paint(Graphics g) {
if (texte != null) {
texte.setFont(new Font("TimesRoman", Font.BOLD, 100));
texte.setForeground(Color.white);
}
}
/* public void update(Graphics g)
{
paint (g);
}*/


//initialisation du label
JLabel texte = new JLabel("Aujourd'hui nous accueillons la société DANONE ...!!! ");


private void moveText() {
// Récupération du nom de l'artiste et du titre de la piste
String s = texte.getText();
StringBuffer sb = new StringBuffer(s);
// On prend le premier caractère de la chaine...
char temp = sb.charAt(0);
// ...On le supprime...
sb.deleteCharAt(0);
sb.setLength(sb.length() + 1);
// ...Et on le positionne à la fin de la chaîne...
sb.setCharAt(sb.length() - 1, temp);
// ...Avant d'actualiser l'affichage
texte.setText(sb.toString());
}

private void initMe() {
int delay = 500;
// Action éffectuée toutes les secondes
ActionListener chrono = new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
moveText();
}
};
// Creation du timer...
if (t == null) {
t = new Timer(delay, chrono);
t.start();
}
}

}


_______________________________________________________

Voila

merci

a bientot
A voir également:

5 réponses

Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
13 janv. 2009 à 16:32
tu répond toi même :
texte.setText(parent.texteAafficher.getText());
2
ca marche, niquel merci :D

Mais par contre avant quand je marquais le texte en dur dans lecode pour l afficher, j arrivais a le faire défiler sur mon bandeau, tandis que maintenant en passant par le formulaire d envoi de message sur le bandeau bah il s y écrit OK mais il ne défile plus, d ou peut venir ce probléme ? ..
0
Gautier > Gautier
13 janv. 2009 à 19:06
Probléme résolu c était rien

merci a tous
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
13 janv. 2009 à 10:03
Salut.
je vois que tu as 2 main(), donc deux programmes différents, c'est ça ?
1
Voila!

parceque j aimerais bien que la 2ieme class (bandeau reste ouverte....) et que la premiere class (fenetre avec textbox+bouton s ouvre que quand l utilisateur veut envoyer un message dans le bandeau
0
Char Snipeur Messages postés 9696 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
13 janv. 2009 à 10:52
Je ne suis pas sur que ça soit la bonne façon de faire.
En plus ce pose alors le problème de communication interprocessus.
le plus simple, et le plus propre, serai de mettre un bouton sur ton bandeau qui ouvre la fenêtre avec textbox.
Ou sinon, tu fait la communication par socket.
1
tarek_dotzero Messages postés 817 Date d'inscription jeudi 19 juillet 2007 Statut Membre Dernière intervention 12 avril 2022 120
13 janv. 2009 à 10:59
Salut,

Je pense qu'il y a une méthode plus simple: Un seul main :)

Vous créez une troisième classe qui va contenir le main, cette classe va avoir deux propriétés "static", les deux première ligne de votre main seront une initialisation et affichage des deux truc.

Vous creez une méthode "public static" qui va récuperer le message (vous l'appeler quand il click sur votre button d'envoie), cette méthode va prendre le rôle d'un "pont" qui sert à passer le(s) message(s) entre les objets "static".
1
@tarek_dotzero,

OK je vais essayer de faire ça, ça m a l air d être une bonne idée, je vous montrerai ce que j ai fais et si ça va
0
RE,


j avance j avance, j arrive a avoir ce que je veux mais j aimerai savoir comment on fait pour transformer un élément récupéré en String pour l afficher en tant que JLabel ?
Dans la derniere méthode :

texte = parent.texteAafficher.getText();

ca me dit qu il ne peut pas convertir en String
je dois faire quoi?

merci bcp pour votre aide ;)

______________________PROGRAMME____________________________


package test5;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.*;

public class Window extends JWindow implements ActionListener //implements ActionListener //Heritage de la classe JWindow
{
/**
*
*/
private static final long serialVersionUID = 8369728381877746335L;
private Timer t = null;
FenetreForm parent;
//JLabel texte;
JLabel texte;

/* public static void main(String[] args)
{
new Window(); //création d'un nouvel objet
}*/

public Window(FenetreForm parent)
{
this.parent=parent;

initGUI();//qui à sont tour crée "initGUI()"
initMe();
}

public void initGUI()
{
//taille du JWindow
this.setSize(1500,200);
//ajoute le texte au container
this.getContentPane().add(texte);
this.getContentPane().setBackground(Color.RED);
this.setAlwaysOnTop(true);

//le jwindow est visible
this.setVisible(true);
}

public void paint(Graphics g) {
if (texte != null) {
texte.setFont(new Font("TimesRoman", Font.BOLD, 100));
texte.setForeground(Color.white);
}
}
/* public void update(Graphics g)
{
paint (g);
}*/


//initialisation du label
// JLabel texte = new JLabel();
// JLabel texte = new JLabel();

private void moveText() {
// Récupération du texte
String s = texte.getText();
StringBuffer sb = new StringBuffer(s);
// On prend le premier caractère de la chaine...
char temp = sb.charAt(0);
// ...On le supprime...
sb.deleteCharAt(0);
sb.setLength(sb.length() + 1);
// ...Et on le positionne à la fin de la chaîne...
sb.setCharAt(sb.length() - 1, temp);
// ...Avant d'actualiser l'affichage
texte.setText(sb.toString());
}

private void initMe() {
int delay = 500;
// Action éffectuée toutes les secondes
ActionListener chrono = new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
moveText();
}
};
// Creation du timer...
if (t == null) {
t = new Timer(delay, chrono);
t.start();
}
}


public void actionPerformed(ActionEvent evt)
{

texte = parent.texteAafficher.getText();
System.out.println ("Le texte suivant a ete tape : " + texte);


}

}
0

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

Posez votre question
poste22 Messages postés 14 Date d'inscription lundi 20 octobre 2008 Statut Membre Dernière intervention 16 mars 2015 5
10 avril 2009 à 21:11
salut
je suis un débutant en java , je veux voire des aplication en java avec des interfaces
j'ai un mini projet a faire a la fin de cette année , j'ai le programme mais je doit faire l'interface
si possible de m'aider
- mettre les différent fichiers de code en java " les classe" pour que je pisse le run chez moi et le comprendre .
- si t as de cours comment lié un programme avec une interface
merci d'avance
0