Originariamente inviato da andbin
beh, dipende da quale approccio scegli per "cambiare" i componenti (i tuoi pannelli).
Il problema e che non sò proprio come si possa fare.. io avevo pensato a una cosa del genere:
codice:
public class MyFrame extends JFrame {
public MyFrame () {
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenHeight = screenSize.height;
int screenWidth = screenSize.width;
setSize (800,600);
setLocation (screenWidth/5,screenHeight/8);
Image img = kit.getImage("src/Image//icon.gif");
setIconImage(img);
setTitle("Management Travels - © Crisomolo Alberto");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//in questo pannello potremo aggiungere componenti come JButton…
Container c = getContentPane();
MyPanel panel = new MyPanel();
c.add(panel);
this.setVisible(true);
}
public class MyPanel extends JPanel implements ActionListener {
JPanel panbut=new JPanel();
JPanel panimg=new JPanel();
JButton b, b2;
public MyPanel(){
super();
setLayout(new BorderLayout());
lab1.setFont( new Font( "Arial", Font.BOLD, 30 ) );
JLabel world=new JLabel(new ImageIcon("src/Image//world_gold.gif"));
b = new JButton("Aggiungi Agenzia");
b2 = new JButton("Gestisci Agenzia");
b.addActionListener(this);
panimg.setBackground(Color.DARK_GRAY);
panimg.setLayout(new BorderLayout());
panimg.add(world, BorderLayout.CENTER);
add(lab1,BorderLayout.NORTH);
add(panimg,BorderLayout.CENTER);
panbut.setLayout(new GridLayout(1, 2, 10, 0));
panbut.add(b);
panbut.add(b2);
add(panbut, BorderLayout.SOUTH);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == b) {
Agenzie agepan= new Agenzie();
this.add(agepan);
}else if(e.getSource() == b2) {
}
}
}
public class Agenzie extends JPanel{
JPanel panbut=new JPanel();
JButton b3;
public Agenzie(){//qui non entra proprio
//inseriro il form per aggiungere una nuova agenzia
b3 = new JButton("Crea Agenzia");
panbut.add(b3);
add(panbut);
}
}
}
ossia che quando premo il tasto AGGIUNGI AGENZIA mi crei un nuovo pannello e lo sovreapponesse a quello precedente, ma non so se sia corretta come implementazione..
infatti non mi funziona..