Bonjour,
Je commence a construire des interfaces graphiques avec Java et je me questionne concernant les separations entre les interfaces, les listener et les classes utilitaires. Pour illustrer mon propos j'ai fait un petit prog qui somme deux entier :
La premiere classe est la fonction de sommation :
La deuxieme classe est l'interface graphique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public class Sommateur { private int a,b; public Sommateur(){ a=0; b=0; } public void setA(int a) { this.a = a; } public void setB(int b) { this.b = b; } public int getSum(){ return (a+b); } }
La troisième classe est le Listener
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 import ... public class TestPanel extends JPanel { JButton unBouton; JLabel unLabel; JTextField entreA, entreB; Sommateur laSomme; ListenerBouton leListener; public TestPanel() { super(); entreA = new JTextField("10"); entreB = new JTextField("14"); unBouton = new JButton("Sommer"); unLabel = new JLabel("Cliquez sur sommer pour le résultat"); this.setLayout(new GridLayout(2,2)); this.add(entreA); this.add(entreB); this.add(unBouton); this.add(unLabel); laSomme = new Sommateur(); leListener = new ListenerBouton(this,laSomme); unBouton.addActionListener(leListener); } }
Enfin la dernière classe est "l'execution"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import ... public class ListenerBouton implements ActionListener { TestPanel myPanel; Sommateur mySommateur; public ListenerBouton(TestPanel unPanel, Sommateur unSommateur){ myPanel = unPanel; mySommateur = unSommateur; } public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub mySommateur.setA(Integer.valueOf(myPanel.entreA.getText()).intValue()); mySommateur.setB(Integer.valueOf(myPanel.entreB.getText()).intValue()); myPanel.unLabel.setText("Le résultat est : " + String.valueOf(mySommateur.getSum())); } }
Voila, mes questions ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 import javax.swing.JFrame; public class TestFrame extends JFrame { TestPanel lePanel; public TestFrame(){ super("Une frame"); lePanel = new TestPanel(); this.setContentPane(lePanel); this.pack(); this.setVisible(true); } public static void main(String[] args) { TestFrame fen = new TestFrame(); } }
Est ce que cette implémentation correspond bien à une séparation intereface/action
D'autre part, je vais enseigner les bases de la création d'interfaces graphiques en Java l'an prochain, est-ce une bonne approche de tuot séparer comme je l'ai fait ?
Merci d'avance à ceux qui m'eclaireront
JB
PS : la question subsidiaire pour départager les gagnants
Est-ce bien de créer une applet avec le même but de la façon suivante :
Encore merci !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 import javax.swing.JApplet; public class TestApplet extends JApplet { TestPanel lePanel; public TestApplet(){ super(); lePanel = new TestPanel(); this.setContentPane(lePanel); this.setVisible(true); } public void init(){ } }
[ Modéré par Bulbo ]
Modification du titre
Les Règles du Forum
Partager