Background em um JTextField

Como setar o background em um JTextField sendo que setei o Look and feel na aplicação…
Tento mudar para preto a cor de fundo de um textfield assim

textfield.setBackground(Color.black);

mas não funciona, fica sempre branco…, só o foreground funciona…
será porque setei o look and feel…

o look and feel que setei foi


 UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

Se o foreground funciona por que não usa ele??
Akgumas coisas de interface a gente aprende com o tempo …

vlew :!:

Mas eu preciso mudar o fundo do textfield e a cor do texto…
A cor do texto …tudo bem…o setForeground resolve…mas o fundo??? o segbackground não funciona…!!!

[quote=leopoldof]Mas eu preciso mudar o fundo do textfield e a cor do texto…
A cor do texto …tudo bem…o setForeground resolve…mas o fundo??? o segbackground não funciona…!!![/quote]
Cara, eu testei aqui e não deu nenhum problema vai ver você tá se confundindo em alguma coisa…
Exemplo rápido:

[code]import java.awt.;
import javax.swing.
;

@SuppressWarnings(“serial”)
public class Teste extends JFrame {

private final JTextField campo;

public Teste() {
	super("Teste");
	campo = new JTextField();
	campo.setForeground(Color.white);
	Container cp = getContentPane();
	campo.setBackground(Color.black);
	campo.requestFocus();
	cp.add(campo);
	setSize(100, 60);
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] ards) {
	new Teste().setVisible(true);
}

}[/code]Tenta aí!!

vlew :!: :!:

Quando você usa o LookAndFeel do sistema ele simplesmente ignora as chamadas de setBackground(). Não conheço nenhuma solução.

Desculpe, mas o que você falou não faz mto sentido…
Ele reconhece sim as chamadas a setBackground(), independente do Look And Feel
Testa aí (Roda sim!!):

[code]import java.awt.;
import javax.swing.
;

@SuppressWarnings(“serial”)
public class Teste extends JFrame {

private final JTextField campo;

public Teste() {
	super("Teste");
	campo = new JTextField();
	campo.setForeground(Color.white);
	Container cp = getContentPane();
	campo.setBackground(Color.black);
	campo.requestFocus();
	cp.add(campo);
	setSize(100, 60);
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args) {
	try {
		//Tanto com o Motif quanto com o Nimbus...
		UIManager.setLookAndFeel("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
				                      //"com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"
	} catch (Exception e) {
		e.printStackTrace();
	}
	new Teste().setVisible(true);
}

}[/code]

Ou como o amigo usou:

[code]import java.awt.;
import javax.swing.
;

@SuppressWarnings(“serial”)
public class Teste extends JFrame {

private final JTextField campo;

public Teste() {
	super("Teste");
	campo = new JTextField();
	campo.setForeground(Color.white);
	Container cp = getContentPane();
	campo.setBackground(Color.black);
	campo.requestFocus();
	cp.add(campo);
	setSize(100, 60);
	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args) throws Exception {
	UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
	new Teste().setVisible(true);
}

}[/code]

Desculpe, mas o que você falou não faz mto sentido…
Ele reconhece sim as chamadas a setBackground(), independente do Look And Feel
[/quote]
Não, não reconhece. Quando usando o Look And Feel do sistema (ao menos quando se usa GTK) ele ignora. Veja a imagem em anexo (peguei o código que o Metal Java Full postou, mudei o foreground para vermelho e deixei o setBackground(Color.black)).

Desculpe, mas o que você falou não faz mto sentido…
Ele reconhece sim as chamadas a setBackground(), independente do Look And Feel
[/quote]
Não, não reconhece. Quando usando o Look And Feel do sistema (ao menos quando se usa GTK) ele ignora. Veja a imagem em anexo (peguei o código que o Metal Java Full postou, mudei o foreground para vermelho e deixei o setBackground(Color.black)).[/quote]
é esse o problema: GTK.
Testa sem ele q funciona normalmente!!!

vlew :!:

Desculpe, mas o que você falou não faz mto sentido…
Ele reconhece sim as chamadas a setBackground(), independente do Look And Feel
[/quote]
Não, não reconhece. Quando usando o Look And Feel do sistema (ao menos quando se usa GTK) ele ignora. Veja a imagem em anexo (peguei o código que o Metal Java Full postou, mudei o foreground para vermelho e deixei o setBackground(Color.black)).[/quote]
é esse o problema: GTK.
Testa sem ele q funciona normalmente!!!

vlew :!: [/quote]
Mas GTK é a biblioteca que define o look and feel do sistema. Não dá pra usar o Look And Feel do sistema sem usar da biblioteca GTK. Portanto, o setBackground é ignorado quando usando o Look And Feel nativo em sistemas que usam o GTK como base para interface gráfica.

Cara eu não tô conseguindo entender.
Eu tbm estou testando aqui o código e ele está dando certo!!
segue o arquivo src!!

vlew

[quote=Metal Java Full]Cara eu não tô conseguindo entender.
Eu tbm estou testando aqui o código e ele está dando certo!!
segue o arquivo src!!

vlew[/quote]
Qual o seu sistema operacional?

Windows 7

Pois bem. Os sistemas Unix based (como o próprio Unix e o Linux) podem ter diversas interfaces gráficas rodando sobre ele (inclusive simultaneamente). As mais populares são o GNOME e o KDE. O GNOME é baseado em uma biblioteca usada para fazer renderização de componentes gráficos chamada GTK. E devido a um bug (provavelmente no Swing), quando usando o look and feel nativo (ou seja, usando as bibliotecas do GTK para fazer a renderização) a cor de fundo é ignorada.

Em outras palavras: você acha que eu sou louco pois para você está tudo normal (o bug não te afeta, mas ele existe).

Às vezes a liberdade tem um preço a se pagar… :slight_smile:
Então, sabendo disso (e principalmente que o Windows “ainda é” o SO mais usado do mundo) você não acha que deveria ter perguntado leopoldof qual So ele tbm usava?!

PS: Não uso Linux… e…

não te acho louco!!
Hehe

[quote=Metal Java Full]Às vezes a liberdade tem um preço a se pagar… :slight_smile:
Então, sabendo disso (e principalmente que o Windows “ainda é” o SO mais usado do mundo) você não acha que deveria ter perguntado leopoldof qual So ele tbm usava?!
[/quote]
Deveria ter perguntado, mas pensei que o bug afetasse todos os SOs.

E eu prefiro trocentas vezes pagar o preço de ter o fundo branco ao invés de preto à pagar uma licença do Windows (lembre-se sempre: o Windows não é seu! O software é licenciado e não vendido).

[quote=marcobiscaro2112][quote=Metal Java Full]Às vezes a liberdade tem um preço a se pagar… :slight_smile:
Então, sabendo disso (e principalmente que o Windows “ainda é” o SO mais usado do mundo) você não acha que deveria ter perguntado leopoldof qual So ele tbm usava?!
[/quote]
Deveria ter perguntado, mas pensei que o bug afetasse todos os SOs.

E eu prefiro trocentas vezes pagar o preço de ter o fundo branco ao invés de preto à pagar uma licença do Windows (lembre-se sempre: o Windows não é seu! O software é licenciado e não vendido).[/quote]
Gosto é gosto!!
Eu prefiro trezentas vezes “não pagar” por uma versão free acadêmica (e permanente) de um dos melhores Sistemas Operacionais de todos os tempos, do que ficar detido a linhas e mais linhas de comando!!

Mas o Linux tá evoluindo e de um jeito ou de outro terei de me adaptar (Obs: Não tenho nada contra ele…, é apenas uma questão de “gosto” e, como diria meu velho avô: “Gosto, a gente não discute…”).

vlew:!: :!:

[quote=Metal Java Full][quote=marcobiscaro2112][quote=Metal Java Full]Às vezes a liberdade tem um preço a se pagar… :slight_smile:
Então, sabendo disso (e principalmente que o Windows “ainda é” o SO mais usado do mundo) você não acha que deveria ter perguntado leopoldof qual So ele tbm usava?!
[/quote]
Deveria ter perguntado, mas pensei que o bug afetasse todos os SOs.

E eu prefiro trocentas vezes pagar o preço de ter o fundo branco ao invés de preto à pagar uma licença do Windows (lembre-se sempre: o Windows não é seu! O software é licenciado e não vendido).[/quote]
Gosto é gosto!!
Eu prefiro trezentas vezes “não pagar” por uma versão free acadêmica (e permanente) de um dos melhores Sistemas Operacionais de todos os tempos, do que ficar detido a linhas e mais linhas de comando!!

Mas o Linux tá evoluindo e de um jeito ou de outro terei de me adaptar (Obs: Não tenho nada contra ele…, é apenas uma questão de “gosto” e, como diria meu velho avô: “Gosto, a gente não discute…”).

vlew:!: :!:[/quote]
O antigo e persistente preconceito de que Linux é linha de comando… é como dizer que Java é lento: um dia isso já foi verdade, mas agora não é mais.

Não consigo pensar em nada que não possa ser feito via interface gráfica no Linux neste momento…

Mas como já dito: gosto não se discute…