Inserir um JLabel num TextArea

10 respostas
kanxabd

Boa tarde pessoal,

tenho que desenvolver um sistema onde será gerado um número aleatório que deverá ser descoberto pelo usuário.
As tentativas erradas devem ser colocadas na TextArea.
O Usuario digita um valor, se errado, devo criar um JLabel com esse valor e
colocar uma cor no fundo (backgraund) e então inserir este JLabel na textArea.
Como faço pra inserir no textArea e também para dar uma cor de fundo ao JLabel?

Obrigado

10 Respostas

EugenioMonteiro

Não entendi direito, mas porque você não escreve uma String na TextArea?

kanxabd

O Problema é que tenho de colorir o backgraund

F

jtextarea não recebe formataçao aleatoria, ou pinta tudo ou nao pinta nada

ja faço um edit ocm os compenetes pra substitui pq eu esqci =p

toh
http://www.guj.com.br/posts/list/15729.java#81978
da uma lida ai fala do jtexpane

J

Ola!
Não é possível adicionar a um JTextArea um JLabel você tem duas opções!

1ª Desistir de usar o JLabel e apenas utilizar o método setText() do JTextArea…

2ª Desistir de usar o JTextArea e criar os JLabels necessários adicionando-os ao JFrame pai…

:!:

L

O ideal no seu caso era usar o paintcomponent para pintar o fundo do frame na cor desejada.

public MyDrawPanel extends JPanel{

public void paintComponent(Graphics g){

g.setColor(blue);

}
}

para inserir TextArea digite JTextArea text=new JTextArea ();

Cria uma variavel String para jogar no JLabel e depois no TextArea;

Assim: JLabel label=new JLabel();

label.setText( a variavel q vc criou);

Ai vc vai lendo a variavel e jogando no label e depois no JTextArea, o ideal era que adicionace scroll no JTextArea.
kanxabd

Obrigado pessoal pela ajuda.

Porém o que estou precisando é criar um JLabel e colocar uma cor de fundo(backgraund) e
depois inserir esse JLabel numa JList. Como posso fazer isto?

F

que tipo de backgroud? do tamanhoda palavra?

cria um objeto extendendo de jpanel
dentro desse objeto receba uma cor que vai para o super.background
e uma string que vai alimentar um jlabel, ai tu poem na posiçao que quiser
seta o super como border layout e ta valendo XD

mais ou menos assim oh
/**
 * @author Filipe Martinelli
 *
 */
public class EmpresaLegenda extends JPanel {
	private String nomeEmpresa;
	private Color corEmpresa;
	

       
	public EmpresaLegenda() {
		super.setLayout(new BorderLayout());
	}


	public Color getCorEmpresa() {
		return corEmpresa;
	}

	
	public void setCorEmpresa(Color corEmpresa) {
		setBackground(corEmpresa);
		this.corEmpresa = corEmpresa;
	}

	
	public String getNomeEmpresa() {
		return nomeEmpresa;
	}

	
	public void setNomeEmpresa(String nomeEmpresa) {
		setNome(nomeEmpresa);
		this.nomeEmpresa = nomeEmpresa;
	}
	

	public void setBackground(Color bg) {
		super.setBackground(bg);
	}
	
	
	private void setNome(String nomeEmpresa) {
		JLabel nome = new JLabel(nomeEmpresa);
		nome.setForeground(Color.WHITE);
		super.add(nome, BorderLayout.CENTER);
		
	}
}
por acaso eu precisei fazer algo parecido ta o codigo em cima ae

ai eh soh vc alimentar a classe e dar um add no arraylist
nao sei se é a melhor maneira de fazer, eu fiz assim =p
qlqh duvida fala aew

ViniGodoy

Todos os labels terão a mesma cor de fundo, ou cores diferentes?

Para pintar o fundo de um JList, você precisa escrever um Renderer.

Dá uma lida nesses artigos, o primeiro mostra exatamente o que você quer:
http://java.sun.com/developer/technicalArticles/GUI/jlist/
http://java.sun.com/docs/books/tutorial/uiswing/components/list.html#renderer

J

Jow para alterar a cor do fundo de um JLabel faça o seguinte:
:arrow:

jLabel = new JLabel();
jLabel.setBackground(new java.awt.Color(255, 0, 0));
jLabel.setText("Nome do Label");
jLabel.setOpaque(true);
J

Agora… não sei se vai ter como voce colocar o jlabel dentro do jlist acho que nao…

Criado 22 de outubro de 2008
Ultima resposta 23 de out. de 2008
Respostas 10
Participantes 6