allora, dovrei essere a cavallo, in un modo di merda ma che forse va.
Praticamente faccio una Gui, al cliccare del mouse lancia una seconda gui passandogli i parametri, e cosi via fino all'ultima gui che lancia il main in Prova1 passandogli tutti i parametri per static.
Vabè, fa schifo ma almeno dovrei aver capito come funziona. Unico problema.Mi si aprono tante finestre tante quante le GUI

perchè dove gestisco l'evento click non mi prende frame.setVisible ma solo panel.setVisible o i bottoni

spiegazione: Gui Principale (non fa un cazzo, solo schermata di benvenuto sarcazzo)
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JButton;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Gui extends JFrame {
private JPanel contentPane;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Gui frame = new Gui();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Gui() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
final JPanel panel = new JPanel();
panel.setBounds(10, 63, 414, 111);
contentPane.add(panel);
JLabel lblInserireIValori = new JLabel("Inserire i valori richiesti");
lblInserireIValori.setFont(new Font("Tahoma", Font.PLAIN, 30));
panel.add(lblInserireIValori);
final JButton btnAvanti = new JButton("Avanti");
btnAvanti.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//contentPane.setVisible(false);
//panel.setVisible(false);
//btnAvanti.setVisible(false);
Gui1.main();
}
});
btnAvanti.setBounds(345, 239, 89, 23);
contentPane.add(btnAvanti);
}
}
Gui1 (prende la data, ora ho solo settato giornoiniz)
import java.awt.BorderLayout;
public class Gui1 extends JFrame {
private JPanel contentPane;
public JTextField GiornoIniziale;
private JTextField GiornoFinale;
private JTextField MeseIniziale;
private JTextField AnnoIniziale;
private JTextField MeseFinale;
private JTextField AnnoFinale;
/**
* Launch the application.
*/
public static void main() {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Gui1 frame = new Gui1();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Gui1() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JPanel panel = new JPanel();
panel.setBounds(39, 34, 346, 35);
contentPane.add(panel);
JLabel lblQualLa = new JLabel("Qual u00E8 la data iniziale (gg/mm/aaaa)?");
panel.add(lblQualLa);
GiornoIniziale = new JTextField();
panel.add(GiornoIniziale);
GiornoIniziale.setColumns(2);
MeseIniziale = new JTextField();
panel.add(MeseIniziale);
MeseIniziale.setColumns(2);
AnnoIniziale = new JTextField();
panel.add(AnnoIniziale);
AnnoIniziale.setColumns(4);
JLabel label = new JLabel("");
label.setBounds(53, 156, 46, 14);
contentPane.add(label);
JPanel panel_1 = new JPanel();
panel_1.setBounds(39, 156, 346, 35);
contentPane.add(panel_1);
JLabel lblQualLa_1 = new JLabel("Qual u00E8 la data finale (gg/mm/aaaa)?");
panel_1.add(lblQualLa_1);
GiornoFinale = new JTextField();
panel_1.add(GiornoFinale);
GiornoFinale.setColumns(2);
MeseFinale = new JTextField();
panel_1.add(MeseFinale);
MeseFinale.setColumns(2);
AnnoFinale = new JTextField();
panel_1.add(AnnoFinale);
AnnoFinale.setColumns(4);
JButton btnAvanti = new JButton("Avanti");
btnAvanti.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
//Prova1.giorno=Integer.parseInt(GiornoIniziale.getText());
Gui2.main(Integer.parseInt(GiornoIniziale.getText()));
}
});
btnAvanti.setBounds(345, 239, 89, 23);
contentPane.add(btnAvanti);
}
}
GUI2 (prende il numero di persone e lancia Prova1)
import java.awt.BorderLayout;
public class Gui2 extends JFrame {
private JPanel contentPane;
private JTextField textField;
/**
* Launch the application.
*/
public static void main(final int giornoiniz) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Gui2 frame = new Gui2(giornoiniz);
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Gui2(final int giornoiniz) {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JPanel panel = new JPanel();
panel.setBounds(24, 73, 365, 30);
contentPane.add(panel);
JLabel lblQuantePersoneAbitano = new JLabel("Quante persone abitano in casa?");
panel.add(lblQuantePersoneAbitano);
textField = new JTextField();
panel.add(textField);
textField.setColumns(1);
JButton btnAvanti = new JButton("Avanti");
btnAvanti.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
try {
Prova1.main(giornoiniz, Integer.parseInt(textField.getText()));
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
btnAvanti.setBounds(345, 239, 89, 23);
contentPane.add(btnAvanti);
}
}
dentro i vari public void mouseClicked(MouseEvent e) non riesco a fare in modo di nascondere la finestra precedente. Come faccio?