Botões!

19 respostas
phcl

Pessoal to fazendo uma jframe de cadastro e tenho tres botões!
gravar limpar e sair!
só que não como fazer eles fucionarem!

muito obrigado pela atenção e até mais! :slight_smile:

19 Respostas

jessetsilva

ta usando netbeans ou eclipse? no netbeans é só dar dois cliques ( na versão 6) ou com o botao direito e escolher action performed, dai vc codifica o que quer

phcl

to usando o jigloo no eclipse.
a unica coisa que sei, e sei pq o profº flw é que o botão limpar
é feito usando um for!
mais não sei como fazer!

jessetsilva

da um trecho do seu codigo, tenta fazer e manda o que vc conseguiu pra gente te auxiliar

phcl

eu acho que eu consegui fazer o botão "Sair"

jbSair = new JButton();
				getContentPane().add(jbSair, new GridBagConstraints(14, 16, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
				jbSair.setText("Sair");
				jbSair.addActionListener(new ActionListener() {
					public void actionPerformed(ActionEvent evt) {
						jbSairActionPerformed(evt);
					}
				});

	private void jbSairActionPerformed(ActionEvent evt) {
		this.setVisible(false);
	}
então a minha dificuldade esta em tratar eventos! isso que eu não entedo!
doug

Olá

Então para cada botão que vc tem, adicione addActionListener,
Exemplo:
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;


public class Janela extends JFrame implements ActionListener {
	private JButton bt1;
	private JButton bt2;
	
	public Janela() {
		super("Teste");
		this.setSize(150, 300);
		
		Container container= this.getContentPane();		
		container.setLayout(new GridLayout(2,1));
		bt1= new JButton("Botao 1");
		bt2= new JButton("Botão 2");
		container.add(bt1);
		container.add(bt2);
		bt1.addActionListener(this);
		bt2.addActionListener(this);
		this.pack();
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// TODO Auto-generated constructor stub
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		JOptionPane.showMessageDialog(null, "Ação Botão 1");
		JOptionPane.showMessageDialog(null, "Ação Botão 2");
		// TODO Auto-generated method stub
	}
}

codigo extraido: http://www.guj.com.br/posts/list/73619.java

Espero ter ajudado
Flwsss

R

Cara dentro do evento action performed do botão limpa isso.
Exemplo:

TextField1.setText("");
TextField2.setText("");
TextField3.setText("");
TextField4.setText("");

dai ele limpa o teu campo…
No botão sair coloca isso.

System.exit(1);

dai o JFrame fecha.

Dai procura… certo falo

jessetsilva

não seria apropriado colocar 0 (zero) ao invés de 1 (um) no system.exit()? se não me enagno o 0 representa que o programa finalizou sem erros, alguem pode confirmar isso?

doug

Olá
É conselhado colocar zero (0) mesmo…
para remover mesmo seu processo na memória…

Até mais

R

E verdade!

phcl

então sobre o botão limpar o profº pediu pra fazer com for!
alguem tem alguma ideia!
a e muito obrigado a todos!
obrigado mesmo!

phcl

sobre o botão sair:

private void jbSairActionPerformed(ActionEvent evt) {
		System.exit(0);
	}

fucionou sim maravilha!
porem ele tbm fecha a tela principal!
tipo tenho um tela principal que chama essa tela de cadastro!
ai eu queria fechar só a tela de cadastro!

R

Bom na tela de cadastro tenta o seguinte no botão fechar.

frame.setVisible(true);

Esse comando so vai faze o frame sumi. tenta ai.

phcl

funcionou mais agora tem aparece duas telas principais!
tipo to na tela principal e chamo cadastro ai apareme a tele de cadastro, ai quando eu fecho a tela de cadastro ao invez de voltar para a tela principal ja aberta, ele abre outra!

R

Posta o teu codigo, para eu da uma olhada nele…

phcl

ja vou colocar!

vinidouradoh

caro phcl,

para fechar uma tela, mantendo a principal , o melhor a se fazer é usar o dispose(). Ele não apenas seta o visible para falso, ele ranca da memória, com isso, vc ganha em performance.

vlw

phcl

olá pessual!
o codigo da tela principal esta assim:

private void jmCadastroActionPerformed(ActionEvent evt) { FCadastro tela = new FCadastro(); tela.setVisible(true); this.setVisible(false); }

e o da tela cadastro esta assim:

private void jbSairActionPerformed(ActionEvent evt) { TelaPrincipal tela = new TelaPrincipal(); tela.setVisible(true); this.setVisible(false); }

eu queria manter sempre a tela principal ativa e quando ela chamasse outra tela que ela ficasse atraz!
porem sem o usuario ter acesso enquanto ele não fechar a tela que esta na frente!
entenderam??

tem como fazer isso ou eu to querendo muito?
hehehe…
obrigado pela atenção e paciencia! :smiley:

phcl

e como funciona esse dispose???
sou novato!
hehehe… :oops:

phcl

olá pessoal ó eu aqui outra ves!
então agora estou com duvida no botão gravar!
eu fiz assim ó mais num ta funcionando!
o que esta faltando???

private void jbGravarActionPerformed(ActionEvent evt) {
		Cliente.nome = jtNome;
		Cliente.aniver = jtAniver;
		Cliente.nrg = jtRG;
		Cliente.ncpf = jtCPF;
		Cliente.email = jtEmail;
		Cliente.endereco = jtEndereco;
		Cliente.cidade = jtCidade;
		Cliente.bairro = jtBairro;
		Cliente.cep = jtCEP;
		Cliente.foneRes = jtFoneRes;
		Cliente.foneCom = jtFoneCom;
		
		Cliente cli = new Cliente(nome, aniver,nrg,ncpf,email,endereco,cidade,bairro,cep,foneRes,foneCom,saldo);
		cadastro[qtdClientes++] = cli;	
	}

obrigado!

Criado 2 de outubro de 2008
Ultima resposta 7 de out. de 2008
Respostas 19
Participantes 5