Bonjour,
Pour éditer des composants d'une interface graphique à partir
d'une autre classe, tu peux modifier les composants de ton
IHM dans une autre classe comme ceci :
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class TestJFrame1 extends JFrame implements ActionListener{
public JButton mButtonAction1;
public JButton mButtonAction2;
public JTextArea mTextArea;
public TestJFrame1 () {
mButtonAction1 = new JButton();
mButtonAction2 = new JButton();
mTextArea = new JTextArea();
mButtonAction1.addActionListener(this);
mButtonAction2.addActionListener(this);
/*Positionnement des composants : à implémenter*/
}
public void actionPerformed(ActionEvent pArg0) {
if (pArg0.getSource() == mButtonAction1) {
TraitementMetier vTraitementMetier = new TraitementMetier(this);
vTraitementMetier.action1();
} else if (pArg0.getSource() == mButtonAction2) {
TraitementMetier vTraitementMetier = new TraitementMetier(this);
vTraitementMetier.action2();
}
}
}
class TraitementMetier {
TestJFrame1 mTestJFrame;
public TraitementMetier (TestJFrame1 pTestJFrame) {
mTestJFrame = pTestJFrame;
}
public void action1() {
mTestJFrame.mTextArea.setText("un texte 1");
mTestJFrame.mButtonAction1.setBackground(Color.BLACK);
}
public void action2() {
mTestJFrame.mTextArea.setText("un texte 2");
mTestJFrame.mButtonAction2.setBackground(Color.RED);
}
}
Le soucis avec cette implémentation c'est que la "partie" traitementMetier manipule des objets graphiques et que ce n'est normalement pas son role; du coup je te conseillerais cette implémentation :
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class TestJFrame2 extends JFrame {
public JButton mButtonAction1;
public JButton mButtonAction2;
public JTextArea mTextArea;
public TestJFrame2 () {
mButtonAction1 = new JButton();
mButtonAction2 = new JButton();
mTextArea = new JTextArea();
mButtonAction1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent pArg0) {
TraitementMetier vTraitementMetier = new TraitementMetier();
vTraitementMetier.action1();
mButtonAction1.setBackground(vTraitementMetier.mColorTmp);
mTextArea.setText(vTraitementMetier.mTextTmp);
}
});
mButtonAction2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent pArg0) {
TraitementMetier vTraitementMetier = new TraitementMetier();
vTraitementMetier.action2();
mButtonAction2.setBackground(vTraitementMetier.mColorTmp);
mTextArea.setText(vTraitementMetier.mTextTmp);
}
});
/*Positionnement des composants : à implémenter*/
}
}
class TraitementMetier {
public String mTextTmp;
public Color mColorTmp;
public void action1() {
mTextTmp = "un texte 1";
mColorTmp = Color.BLACK;
}
public void action2() {
mTextTmp = "un texte 2";
mColorTmp = Color.RED;
}
}
J'espère que ca peut t'aider.
Bonne chance,
Niroken
Bonjour,
Pour éditer des composants d'une interface graphique à partir
d'une autre classe, tu peux modifier les composants de ton
IHM dans une autre classe comme ceci :
Le soucis avec cette implémentation c'est que la "partie" traitementMetier manipule des objets graphiques et que ce n'est normalement pas son role; du coup je te conseillerais cette implémentation :
J'espère que ca peut t'aider.
Bonne chance,
Niroken