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?
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… 
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… 
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… 
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… 
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…