JLabel em cima de JLabel

7 respostas
A

Galera to com uma duvida em como eu faço para colocar um JLabel em cima d outro. Por exemplo… estou fazendo um banco imobiliario e quero q em cima d um JLabel referente a um terreno do tabuleiro apareca um JLabel com o icone da casa sem q eu tenha q trocar a imagem do jlabel d baixo.

estou fazendo assim:

JLabel casa = new JLabel(); casa.setIcon(new javax.swing.ImageIcon(getClass().getResource("/view/imagens/construcoes/casa.png"))); getTabuleiroController().getTabuleiroView().getLblLeblon().add(casa);

e nao está funcionando, acho q ele está jogando o jlabel q eu adiciono para tras do jlabel q ja existia.

alguem pode me ajudar?

abraco!

7 Respostas

L

Oi,

eu sei que você não quer fazer deste jeito mas: porque não coloca a legenda embutida na imagem?

Desculpe mas não sei a resposta do seu problema , isso é só uma sugestão

Tchauzin!

R

Bom vc pode trabalhar com metodo setBounds e fixar o JLabel , o metodo setBounds esta presente nos componentes Swing

A

Fala ae pessoas hehehe

lina 03/11/2007 20:42:30 Assunto: Re:JLabel em cima de JLabel


Oi,

eu sei que você não quer fazer deste jeito mas: porque não coloca a legenda embutida na imagem?

Desculpe mas não sei a resposta do seu problema , isso é só uma sugestão

Tchauzin!

até pensei nisso lina, mas dai eu teria d fazer uma imagem por cada opcao d qtdade de casas X qtdade de pinos X hoteis hehehe entao eu teria pelo menos umas 100 imagens por terreno hehehehe mas valeu assim mesmo… acho q vou usar a outra sugestao mesmo…

valeu pessoal!

A

Poutz nao funcionou :frowning:

será q mais alguem tem alguma outra alternativa?

abraco!

R

Poderia nos mostrar como esta fazendo?

C

Fala ae andre, você deve estar fazendo o mesmo trabalho que eu!
Como você está fazendo pra exibir o peão na célula?

=============================
Consegui fazer o que você quer:
Você deve ter uma classe descendente de DefaultTableCellRenderer, e deve estar sobrescrevendo o método paint(). O negócio não é botar a casinha (ou o peão) como componentes dentro do JLabel, e sim mandar desenhar a imagem na célula. Faz isso com o drawImage no método paint:

D
Pessoal sei que não tem nada a ver com isso, mas estou com um problema. Eu add a imageIcon num jlabel e ela fica por cima dos componente. As vezes os componentes aparecem e as vezes não.
package Modelo;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.font.ImageGraphicAttribute;

import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.SpringLayout;

public class Login extends JFrame{

	JFrame Logo = new JFrame(); // Referente a tela do login.
	JLabel im= new JLabel(new ImageIcon ("src/Modelo/im.jpg"));// Referente a imagem de fundo.	
             
	        //Aqui é referente aos campos de usuario e senha.
	JTextField usuario = new JTextField();
	JTextField senha = new JTextField();
	
	        // Aqui é referente aos rotulos de usario e senha.
	JLabel rotulo1 =new JLabel("Usuario");
	JLabel rotulo2  = new JLabel("Senha");
	
	        // Referente aos botões de entra e cancela.
	
	JButton entra = new JButton();
	JButton cancela = new JButton(); 
	
		
	
	 //Esse metodo é referente a exibição da tela do login, por ele que chamamos no main
	
	public  Login(){
	    // Referente as propriedades da tela.
		super("Logo");
		Logo.setLayout(null);
	    Logo.setLocationRelativeTo( null );//para centralizar no meio da tela.
        Logo.setUndecorated(true);
		Logo.setSize(330,70);
		Logo.setVisible(true);
		//Container c = Logo.getContentPane();
		//c.setLayout(null);
		//c.setBackground(Color.green);
		//Referente as propriedade de add.
		
		Logo.add(im);
		Logo.add(rotulo1);
		Logo.add(rotulo2);
		Logo.add(usuario);
		Logo.add(senha);
		Logo.add(entra);
		Logo.add(cancela);
        
  // Referente a imagem de fundo da tela do logo.
		
	    im.setVisible(true);
		im.setSize(330,70);
		im.setLocation(0,0);
	    im.setOpaque(false);
		 
		
		// Referente as posição e tamanhos.
		rotulo1.setVisible(true);
		rotulo1.setSize(80,20);
		rotulo1.setLocation(10,10);
		
		rotulo2.setVisible(true);
		rotulo2.setSize(80,20);
		rotulo2.setLocation(10,40);
		
		usuario.setVisible(true);
		usuario.setSize(150,20);
		usuario.setLocation(70,10);
		
		senha.setVisible(true);
		senha.setSize(150,20);
		senha.setLocation(70,40);
		
		entra.setVisible(true);
		entra.setSize(70,20);
		entra.setLocation(250,10);
	   
		
		
    	cancela.setVisible(true);
		cancela.setSize(70,20);
		cancela.setLocation(250,40);
		
				 	
      
		//Referente a visibilidade da tela do logo,
		 // Obs. a visibilidade deve ficar sempre no fim da tela.
		
		
		Logo.setDefaultCloseOperation(EXIT_ON_CLOSE);
	
		entra.addActionListener(new VerificaLogo()); // aqui vc add o actionlistener.
		
		
	
}
	  class VerificaLogo implements ActionListener{  
		       public void actionPerformed(ActionEvent e){  
		         if(e.getSource()== entra){  
		             String a = new String();
		           
		             
		        	 
		         }  
		       }  
		  
}
}
Criado 3 de novembro de 2007
Ultima resposta 30 de set. de 2008
Respostas 7
Participantes 5