Salut
J'ai créé 3 frame ( Frame , Frame1 , Frame2 ).
Frame génère Frame1 n fois.
Frame1 génère Frame2.
Sur Frame2 on peut cliquer sur bouton3 pour faire disparaitre bonton2 du Frame1.
Mais le problème c'est que le bouton2 disparait seulement sur la dernière Frame1 générée.
Je veux que, quand j'appuie sur bouton3 du Frame2 le bouton2 du Frame1 (<--- qui a généré ce Frame2) disparait.
Frame
package index;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Frame extends JFrame {
JPanel contentPane;
JButton jButton1 = new JButton();
///////////////////////////////////////////////////////////////////////////////////////////////
private Frame1[] appli = new Frame1[2];
///////////////////////////////////////////////////////////////////////////////////////////////
//Construct the frame
public Frame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
jButton1.setBounds(new Rectangle(137, 57, 182, 32));
jButton1.setText("jButton1");
jButton1.addActionListener(new Frame_jButton1_actionAdapter(this));
contentPane.setLayout(null);
this.setSize(new Dimension(400, 300));
this.setTitle("index");
contentPane.setDebugGraphicsOptions(0);
contentPane.add(jButton1, null);
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
void jButton1_actionPerformed(ActionEvent e) {
///////////////////////////////////////////////////////////////////////////////////////////////
for (int i = 0; i < 2; i++) {
appli[i] = new Frame1();
appli[i].setVisible(true);
}
///////////////////////////////////////////////////////////////////////////////////////////////
}
}
class Frame_jButton1_actionAdapter implements java.awt.event.ActionListener {
Frame adaptee;
Frame_jButton1_actionAdapter(Frame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
Frame1
package index;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Frame1 extends JFrame {
JButton jButton1 = new JButton();
///////////////////////////////////////////////////////////////////////////////////////////////
static JButton jButton2 ;
///////////////////////////////////////////////////////////////////////////////////////////////
public Frame1() {
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit() throws Exception {
jButton2 = new JButton();
jButton1.setBounds(new Rectangle(85, 51, 231, 46));
jButton1.setText("jButton1");
jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this));
this.getContentPane().setLayout(null);
jButton2.setBounds(new Rectangle(78, 118, 228, 44));
jButton2.setText("jButton2");
this.setSize(new Dimension(400, 300));
this.setTitle("bb");
this.getContentPane().add(jButton1, null);
this.getContentPane().add(jButton2, null);
}
void jButton1_actionPerformed(ActionEvent e) {
///////////////////////////////////////////////////////////////////////////////////////////////
Frame2 fflo= new Frame2(this);
fflo.setVisible(true);
///////////////////////////////////////////////////////////////////////////////////////////////
}
}
class Frame1_jButton1_actionAdapter implements java.awt.event.ActionListener {
Frame1 adaptee;
Frame1_jButton1_actionAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
Frame2
package index;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Frame2 extends JFrame {
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
///////////////////////////////////////////////////////////////////////////////////////////////
JButton jButton3 = new JButton();
private Frame1 f;
///////////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////////
public Frame2(Frame1 f) {
try {
jbInit(f);
}
///////////////////////////////////////////////////////////////////////////////////////////////
catch(Exception e) {
e.printStackTrace();
}
}
private void jbInit(Frame1 f) throws Exception {
jButton1.setBounds(new Rectangle(50, 43, 158, 42));
jButton1.setText("jButton1");
jButton1.addActionListener(new Frame2_jButton1_actionAdapter(this));
this.setSize(new Dimension(400, 300));
this.setTitle("client");
this.getContentPane().setLayout(null);
jButton2.setBounds(new Rectangle(224, 87, 132, 41));
jButton2.setText("jButton2");
jButton3.setBounds(new Rectangle(257, 27, 131, 31));
jButton3.setText("jButton3");
jButton3.addActionListener(new Frame2_jButton3_actionAdapter(this));
this.getContentPane().add(jButton1, null);
this.getContentPane().add(jButton2, null);
this.getContentPane().add(jButton3, null);
}
void jButton1_actionPerformed(ActionEvent e) {
}
void jButton3_actionPerformed(ActionEvent e) {
///////////////////////////////////////////////////////////////////////////////////////////////
f.jButton2.setVisible(false);
///////////////////////////////////////////////////////////////////////////////////////////////
}
}
class Frame2_jButton1_actionAdapter implements java.awt.event.ActionListener {
Frame2 adaptee;
Frame2_jButton1_actionAdapter(Frame2 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e);
}
}
class Frame2_jButton3_actionAdapter implements java.awt.event.ActionListener {
Frame2 adaptee;
Frame2_jButton3_actionAdapter(Frame2 adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton3_actionPerformed(e);
}
}