All pastes #1393116 Raw Edit

Interao de Janelas em Java

public java v1 · immutable
#1393116 ·published 2009-04-15 19:35 UTC
rendered paste body
/* * Main.java *  * Criado em 15 de abril de 2009, 14:20 */package orkut;import javax.swing.SwingUtilities;/** * Esta classe representa a aplicação. *  * @author João Henrique * */public class Main {	/**	 * O método <code>main</code> é o ponto de partida de uma aplicação Java.	 * 	 * @param args os argumentos da linha de comando	 */	public static void main(String[] args) {		SwingUtilities.invokeLater(new Runnable() {			@Override			public void run() {				new Principal();			}					});	}}/* * Principal.java *  * Criado em 15 de abril de 2009, 16:00 */package orkut;import java.awt.Container;import java.awt.Dimension;import java.awt.FlowLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JTextField;/** * Esta classe representa a janela principal do aplicativo. *  * @author João Henrique * */public class Principal extends JFrame {	/**	 * O <code>serialVersionUID</code> é usado na serialização de objetos.	 */	private static final long serialVersionUID = 2267694190077033650L;	private JTextField nome;	private JButton abrir;		public Principal() {		super("Principal");		initComponents();	}		private void initComponents() {		setDefaultCloseOperation(EXIT_ON_CLOSE);		Container container = getContentPane();		container.setLayout(new FlowLayout(FlowLayout.LEADING, 5, 5));		JLabel label = new JLabel("Nome: ");		nome = new JTextField("Abra a janela secundária para alterar este texto");		nome.setPreferredSize(new Dimension(400, 25));		abrir = new JButton("Abrir janela secundária");		abrir.addActionListener(new ActionListener() {			@Override			public void actionPerformed(ActionEvent arg0) {				abreSecundaria(); // método definido abaixo			}		});		container.add(label);		container.add(nome);		container.add(abrir);		pack();		setVisible(true);	}		/**	 * O método <code>abreSecundaria</code> é quem chama a janela secundária.	 */	private void abreSecundaria() {		new Secundaria(this);	}		public void setNome(String novoNome) {		nome.setText(novoNome);	}}/* * Secundaria.java *  * Criado em 15 de abril de 2009, 16:10 */package orkut;import java.awt.Label;import javax.swing.JFrame;/** * Esta classe representa a janela secundária. *  * @author João Henrique * */public class Secundaria extends JFrame {	private static final long serialVersionUID = -580081156339552659L;		/**	 * O construtor da classe <code>Secundaria</code> recebe como parâmetro um 	 * objeto da classe <code>Primaria</code>. Com o objeto você pode acessar os 	 * métodos públicos da classe <code>Primaria</code> e assim alterar dados em 	 * campos de textos ou outro componente qualquer. Aqui é alterado um campo de 	 * texto (JTextField).	 * 	 * @param janela o objeto da janela Principal.	 */	public Secundaria(Principal janela) {		// Claro que você não faria esta alteração no construtor (na maioria das vezes).		janela.setNome("Este é o novo texto. O segredo está em passar a instância do objeto.");		setDefaultCloseOperation(DISPOSE_ON_CLOSE);		getContentPane().add(				new Label("Ao abrir esta janela, o texto do JTextField foi alterado."));		pack();		setVisible(true);	}}