Problema com JPanel

3 respostas
C

Oi, estou com um problema, é o seguinte

Tenho um JPanel que eu criei arrastando , não criei na mao, pelo netbeans, e quero criar componentes dentro do JPanel quando eu clico em um botao, fiz o seguinte, “Arrastei” um JPanel e JButton, dai no action do JButton eu escrevi assim:

o que estou fazendo de errado, pq assim não acontece nada, num da erro nem da certo,

Aguardo resposta

3 Respostas

doug

Olá
Então acontece que você deve atribuir um evento para esse botão, como
por exemplo actionListener ou mouseListener;

import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

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


public class TelaExemplo  extends JFrame implements ActionListener, MouseListener{
	private static final long serialVersionUID = 1L;

	private JButton buttonAL;
	private JButton buttonML;
	
	public TelaExemplo() {
		super("Tela - Exemplo");
		
		buttonAL = new JButton("clique - ActionListener");
		buttonAL.addActionListener(this);
		add(buttonAL);
		
		buttonML = new JButton("clique - MouseListener");
		buttonML.addMouseListener(this);
		add(buttonML);
	
		
		setVisible(true);
		setLayout(new FlowLayout());
		setSize(new Dimension(250,150));
		validate();
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getSource().equals(buttonAL)){
			System.out.println("Voce clicou em um, botão com action listener");
		}
		
	}
	
	/* Escolha qual evento que atende para você */

	@Override
	public void mouseClicked(MouseEvent e) {
		if(e.getSource().equals(buttonML)){
			System.out.println("Voce clicou em um, botão com mouse listener");
		}
	}

	@Override
	public void mouseEntered(MouseEvent arg0) {
	}

	@Override
	public void mouseExited(MouseEvent arg0) {
	}

	@Override
	public void mousePressed(MouseEvent arg0) {
	}

	@Override
	public void mouseReleased(MouseEvent arg0) {
	}

	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new TelaExemplo();
	}
	
	

}

Daí você escolhe a forma de atribuir o evento, seja ele actionlistener ou mouselistener
das duas formas funciona, mas existe um diferença no funcionamento deles... blz!!

Flwsss
Espero ter ajudado

C
thiago.filadelfo:
Olá Então acontece que você deve atribuir um evento para esse botão, como por exemplo actionListener ou mouseListener;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

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


public class TelaExemplo  extends JFrame implements ActionListener, MouseListener{
	private static final long serialVersionUID = 1L;

	private JButton buttonAL;
	private JButton buttonML;
	
	public TelaExemplo() {
		super("Tela - Exemplo");
		
		buttonAL = new JButton("clique - ActionListener");
		buttonAL.addActionListener(this);
		add(buttonAL);
		
		buttonML = new JButton("clique - MouseListener");
		buttonML.addMouseListener(this);
		add(buttonML);
	
		
		setVisible(true);
		setLayout(new FlowLayout());
		setSize(new Dimension(250,150));
		validate();
	}
	
	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getSource().equals(buttonAL)){
			System.out.println("Voce clicou em um, botão com action listener");
		}
		
	}
	
	/* Escolha qual evento que atende para você */

	@Override
	public void mouseClicked(MouseEvent e) {
		if(e.getSource().equals(buttonML)){
			System.out.println("Voce clicou em um, botão com mouse listener");
		}
	}

	@Override
	public void mouseEntered(MouseEvent arg0) {
	}

	@Override
	public void mouseExited(MouseEvent arg0) {
	}

	@Override
	public void mousePressed(MouseEvent arg0) {
	}

	@Override
	public void mouseReleased(MouseEvent arg0) {
	}

	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new TelaExemplo();
	}
	
	

}

Daí você escolhe a forma de atribuir o evento, seja ele actionlistener ou mouselistener
das duas formas funciona, mas existe um diferença no funcionamento deles... blz!!

Flwsss
Espero ter ajudado

Intaum, isso eu intendo, e estou fazendo isso, a diferenca é q eu faco pela interface do netbeans, e não na "mão", o evento funciona, se eu mando dar uma msg, funciona perfeitamente, o que não funciona é a criação de um novo comonente nesse evento,

Quando eu crio o novo componente eu tenho que dar algum tipo de refresh na tela??

kinow

Acho super complicado desenvolver muito preso a ferramenta.

Mas pelo que entendi, você criou um JPanel arrastando no Netbeans, e quer colocar componentes dentro dele em runtime né? Você só precisar pegar uma referência para o JPanel que você arrastou e incluir os itens, tomando cuidado com o layout.

Se nada aparecer, tenta invocar na marra o método repaint no painel :wink:

Abraços

Criado 8 de setembro de 2008
Ultima resposta 8 de set. de 2008
Respostas 3
Participantes 3