Salve ho 2 Jframe (Apri e Chiudi) vorrei da 1 cliccando sul pulsante chiudere 1 e aprire 2 scrivere nel jtextfield cliccare sul pulsante e settare la label nella 1 e chiudere la 2 .
Ho un problema su quest'ultimo passaggio .....
Ecco le classi :
1
2codice:import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JLabel; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class Uno extends JFrame { private JPanel contentPane; private static Uno frame; public JLabel Scritta1; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { frame = new Uno(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public Uno() { setTitle("Finestra1"); 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); Scritta1 = new JLabel("New label"); Scritta1.setBounds(177, 85, 70, 15); contentPane.add(Scritta1); JButton btnVaiAllaFinestra = new JButton("Vai alla finestra2"); btnVaiAllaFinestra.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Due c=new Due(); c.setVisible(true); frame.dispose(); } }); btnVaiAllaFinestra.setBounds(130, 159, 196, 25); contentPane.add(btnVaiAllaFinestra); } /*public void setScritta1(String s){ Scritta1.setText(s); } */ }
Se commento c.dispose funziona la prima parte....codice:import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JTextField; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class Due extends JFrame { private JPanel contentPane; private JTextField testo; private Due c ; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Due frame = new Due(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public Due() { 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); testo = new JTextField(); testo.setBounds(89, 87, 241, 19); contentPane.add(testo); testo.setColumns(10); JButton btnNewButton = new JButton("Cambia la label finestra1"); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { String s=testo.getText(); Uno a=new Uno(); c.dispose(); a.setVisible(true); a.Scritta1.setText(s); } }); btnNewButton.setBounds(89, 173, 241, 25); contentPane.add(btnNewButton); } }

Rispondi quotando