import java.awt.Component;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;
public class FinestraAvantiDietro extends JFrame {
int page;
private GridBagLayout layout;
private GridBagConstraints constraints;
private GridBagLayout layoutSettings;
private GridBagConstraints constraintsSettings;
private JPanel pannel_setting;
private JButton back;
private JButton next;
public FinestraAvantiDietro(){
//Costruttore
page=1;
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(500,300);
//impostazioni del layout
layout=new GridBagLayout();
constraints=new GridBagConstraints();
setLayout(layout);
layoutSettings=new GridBagLayout();
constraintsSettings=new GridBagConstraints();
//Pannello
pannel_setting=new JPanel();
pannel_setting.setBorder(javax.swing.BorderFactory.createEtchedBorder());
pannel_setting.setLayout(layoutSettings);
constraints.gridwidth = GridBagConstraints.REMAINDER;
constraints.fill=GridBagConstraints.BOTH;
constraints.weighty=1.0;
constraints.weightx=1.0;
layout.setConstraints(pannel_setting,constraints);
add(pannel_setting);
//Metodi per la generazione della prima pagina
generateFirstPage();
generateNextBack();
}
private void generateFirstPage(){
//Questo metodo genera la prima pagina
pannel_setting.removeAll(); //cancella tutto ciò che c'è sul pannello...
layoutSettings=new GridBagLayout(); //anche il layout....
constraintsSettings=new GridBagConstraints();
pannel_setting.setLayout(layoutSettings);
pannel_setting.setBorder(BorderFactory.createTitledBorder("Pagina 1"));
//OPerazioni del metodo.
//Questo metodo crea una label con scritto "pagina 1"
JLabel lab=new JLabel ("Questa è la prima pagina!");
constraintsSettings.anchor=GridBagConstraints.NORTHWEST;
constraintsSettings.weightx=1;
constraintsSettings.weighty=1;
addComponent(lab);
//Confermo le impostazioni e ridisegno la finestra
pannel_setting.validate();
pannel_setting.repaint();
}
private void generateSecondPage(){
//Questo metodo genera la 2a pagina
pannel_setting.removeAll(); //cancella tutto ciò che c'è sul pannello...
layoutSettings=new GridBagLayout(); //anche il layout....
constraintsSettings=new GridBagConstraints();
pannel_setting.setLayout(layoutSettings);
pannel_setting.setBorder(BorderFactory.createTitledBorder("Pagina 2"));
//OPerazioni del metodo.
//Questo metodo crea una label con scritto "pagina 2"
JLabel lab=new JLabel ("Questa è la seconda pagina!");
constraintsSettings.anchor=GridBagConstraints.NORTHWEST;
constraintsSettings.weightx=1;
constraintsSettings.weighty=1;
addComponent(lab);
//Confermo le impostazioni e ridisegno la finestra
pannel_setting.validate();
pannel_setting.repaint();
}
private void generateNextBack (){
//Questo metodo genera i pulsanti
back= new JButton ("back");
back.setEnabled(false);
back.addActionListener(new java.awt.event.ActionListener() { //Action listener per il pulsante back
public void actionPerformed(java.awt.event.ActionEvent e) {
page-=1;
next.setEnabled(true);
switch (page){
case 1: generateFirstPage(); back.setEnabled(false); break;
case 2: generateSecondPage();break;
default: break;
}}});
//Aggiungo il bottone....
constraints.anchor=constraints.SOUTHWEST;
constraints.weighty=0.0;
constraints.weightx=0.0;
constraints.gridwidth = 1;
layout.setConstraints(back,constraints);
add(back);
//Bottone next....
next= new JButton ("next");
next.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
page+=1;
back.setEnabled(true);
switch (page){
case 1: generateFirstPage(); break;
case 2: generateSecondPage(); next.setEnabled(false); break;
default: break;
}}});
constraints.anchor=constraints.SOUTHEAST;
layout.setConstraints(next,constraints);
add(next);
}
//Metodo che aggiunge un "Component"....
private void addComponent(Component component){
layoutSettings.setConstraints(component,constraintsSettings);
pannel_setting.add(component);
}
//Il main
public static void main(String args[]){
FinestraAvantiDietro m = new FinestraAvantiDietro();
m.setVisible(true);
}
}