Duvida JLabel

14 respostas
ajob

Galera tnho um texto em um JLabel…
Gostaria de saber como faço para deixa-lo preto…
tipow no meu programinha ele fica como se foçe marca d’agua

14 Respostas

M
// mudar a cor do texto
setForeground(Color.BLACK);
// mudar o fundo
setBackground(Color.BLACK);
ajob

Não fica… Continua cinza

dionat4n

Para deixar um JLabel com outra cor no background precisa setá-lo como opaco:

label.setOpaque(true); label.setBackground(Color.BLACK); label.setForeground(Color.WHITE);

ajob
Continua cinza
package Capitulo11;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JTextField;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.GridLayout;
@SuppressWarnings("serial")
public class AlingFrame extends JFrame{
	private JPanel painelButtons;
	private JPanel painelCheckBox;
	private JPanel painelTextLabel;
	private JButton okButton;
	private JButton cancelButton;
	private JButton helpButton;
	private JLabel x;
	private JLabel y;
	private JCheckBox snapToGrid;
	private JCheckBox showGrid;
	private JTextField xText;
	private JTextField yText;
	public AlingFrame(){
		super("Aling Se Deus Quiser");
		//Inicializando Variaveis
		okButton = new JButton("Ok");
		cancelButton = new JButton("Cancel");
		helpButton = new JButton("Help");
		x = new JLabel("x:",0);
		y = new JLabel("y:",0);
		x.setEnabled(false);
		y.setEnabled(false);
		snapToGrid = new JCheckBox("Snap to grid");
		showGrid = new JCheckBox("Show to grid");
		xText = new JTextField("0", 3);
		yText = new JTextField("0", 3);
		setLayout(new FlowLayout());
		painelCheckBox = new JPanel();
		painelCheckBox.setLayout(new GridLayout(2,1));
		painelCheckBox.add(snapToGrid);
		painelCheckBox.add(showGrid);
		add(painelCheckBox, BorderLayout.WEST);
		painelTextLabel = new JPanel();
		painelTextLabel.setLayout(new GridLayout(2,2));
		painelTextLabel.add(x);
		painelTextLabel.add(xText);
		painelTextLabel.add(y);
		painelTextLabel.add(yText);
		painelTextLabel.setOpaque(true);
		painelTextLabel.setForeground(Color.BLACK);
		add(painelTextLabel, BorderLayout.CENTER);
		painelButtons = new JPanel();
		painelButtons.setLayout(new GridLayout(3,1,5,5));
		painelButtons.add(okButton);
		painelButtons.add(cancelButton);
		painelButtons.add(helpButton);
		add(painelButtons, BorderLayout.EAST);
		setForeground(Color.BLACK);
		
	}

}
M

Mas os seus JLabels não são x e y? Basta chamar o método nesses objetos:

x.setBackground(Color.BLACK);
y.setBackground(Color.BLACK);

Isso não funciona?

E uma sugestão: ao invés de usar o SupressWarnings para serial, implemente o serialVersionUID. Faça algo como:

public class AlingFrame extends JFrame{ 
    private static final long serialVersionUID = 1L;
.....
ajob

Não resolve… huahua

E como faço para implementar essa parte de serial?
tem problema se e ignorar?

dionat4n

Você precisa setar como opaco os labels x e y, além de setar a cor de background.

O método setForeground em capos textos é para setar a cor da fonte.

Para o serial você precisa de um gerador de serial, existem plugins para o eclipse e netbeans que geram esses números, esse é o procedimento correto.

ajob

Não fico…
eu coloco X e Y como opaco e ainda seto o foreground para preto… continua na mesma…
se eu colocar o background como branco ele fica com uma marca brancade fundo e mesmo assim a fonte fica cinza

dionat4n

Leia com atenção:

[b]Sete o background como preto.

Sete o foreground como branco ou a cor da fonte que preferir.[/b]

ajob

Você não ta entendendo…
eu ja fiz isso, mas acontece que o fundo sempre muda de cor, mas o texto não muda… continua cinza… mesmo colocando X e Y como black, white e por ai vai

M

Agora que eu prestei atenção no seu código… fica acinzentado porque você o desativa (setEnabled(false)) e, nesse caso, o look and feel é quem controla a cor. Simplesmente elimine as duas linhas que desabilitam seus JLabels (até porque desabilitar JLabels, nesse caso, é inútil).

ajob

POis né que era…
rsrsrsrs
vlw

dionat4n

Hum, então combine essa solução:

String htmlLabel = "<html><font color=#FF0000><b>Label colorido!</b></font></html>"; JLabel label = new JLabel(htmlLabel);

#FF0000 é a cor vermelha.

http://java.sun.com/docs/books/tutorial/uiswing/components/html.html

F

se vc quer q fique preto e não permita que o usuário o Edite…
usa seuLabel.setEditable(false);

Criado 9 de fevereiro de 2009
Ultima resposta 10 de fev. de 2009
Respostas 14
Participantes 4