last day (14 days later) » 

11:22 AM
4
A: Alterar cor do texto e do background ToolTip

EarendulSolução 1 Alguns elementos do swing aceitam HTML no texto. Por exemplo numa label você pode colocar algo assim no texto: "<html>Palavra em <strong>negrito</strong>.</html>". No seu caso podes fazer assim: "<html><body style=\"background-color:#d8d8ff;\"><center><br>TESTETETESTE</center></body><...

 
Dessa forma não funciona. Tem de ser colocado o código HTML nas propriedades do campo na parte to tooltip.
<html><font color="red">O seu texto ficará vermelho.</font>.</html> esse código põe a cor do texto vermelha. O seu código deve ter algum erro ou então não funciona :S
 
Exato. Depois do style tem que por um =. Eu tinha posto um :.
 
Eu não percebo nada de html. @jsantos1991 o seu código não funcionou :S Earendul esse funciona mas tem um pequeno problema. Vou editar a pergunta e mostrar o que acontece.
 
Ok, já vou editar a resposta com mais uma solução...
Editei a resposta. Testei aqui e a solução 2 funcionou melhor que a primeira.
 
Tenho sempre um problema com isso que deve ser básico mas não consigo resolver :S Já tentei esse código ontem mas não consegui. Em vez de tar a criar um new JTextField eu quero utilizar num campo que já tenho no meu design. Como faço?
 
11:22 AM
Você usa NetBeans?
@jsantos1991 Sua solução funcionou perfeito aqui. Preencheu todo o espaço no tooltip, ;)
 
Sim estou com netbeans. Se a solução do @jsantos1991 funcionou aos dois talvez eu não esteja a por o código bem. Pode colocar a linha de código nas Soluções tambem ?
 
@HugoMachado alterei a resposta com o código do jsantos1991. Também coloquei os passos para mudar no NetBeans.
 
Não me está a funcionar. Pode Colocar a linha de código do @jsantos1991 nessas soluções? e tudo numa linha só para ver se eu ponho em HTML ? :) EDIT: Já está lá ! Só uma questão, as aspas e o ';' entram no código HTML ?
 
@HugoMachado - coloquei lá o código do jsantos1991. No caso da solução 2 lembrou de colocar a classe MyCustomToolTip junto ao código? Pode colocar depois do método initComponents().
 
Sim coloquei a classe depois no initComponents e pus o código que me disse no Custom Code nas propriedades e não me funciona :(
 
11:25 AM
Que estranho, eu fiz isso aqui e funcionou normal...
 
Pois não percebo, é que nem a do HTML me funcionou. Fiz-lhe uma pergunta mas não deve ter visto. o código HTML do @santos1991 tenho de por sem as aspas e com o ponto e vírgula no fim ?
 
Se você está colocando num JLabel, você deve alterar lá no Custom Code new JLabel()...
 
é num TextField
"<html><body style=\"background-color:#d8d8ff;\"><center><br>TESTETETESTE</center></body></ht‌​‌​ml>";
o ponto e vírgula final tem de estar?
 
isso, ficaria assim: jTextField1.setToolTipText("<html><body style=\"background-color:#d8d8ff;\"><center><br>TESTETETESTE</center></body></ht‌​‌​ml>");
 
no construtor da classe certo ?
 
11:29 AM
isso, mas sempre depois do initComponents();
 
já funcionou mas a mim não me ocupa todo o espaço -.- está como no seu código
 
pois é nele que é criado o textfield. Se você colocar antes, o texfiled nem existe, ele é criado no initComponents()
 
deve ter a ver com o meu netbeans
ok obrigado pela explicação !
 
uhm, tem razão
agora testei aqui e não funcionou mesmo, me enganei antes, :(
 
não preenche todo pois não ?
 
11:32 AM
realmente não, fica do mesmo jeito que eu tinha falado na primeira vez
mas o estranho a solução 2 não funcionar pra você. Aqui deu bem certinho..
aqui uso a versão do netbeans 8.0.1
 
espere aí eu se calhar estou a enganar-me
a classe a ser declarada no codigo
tem de ser dentro do construtor?
não pois não ?
é fora do construtor
 
fora
a classe é como se fosse qualquer outro método
 
pois é como eu tenho
vou testar para um textfield diferente
a parte código de criação personalizado é o custom code certo?
 
Aqui no meu é: Código de Criação Personalizado
o meu está em portuguÊs
 
uma coisa que devo tar a falhar
new JTextField("teste"){
@Override
public JToolTip createToolTip() {
return (new MyCustomToolTip(this));
}
};
coloquei esse codigo
e no campo o textfield ja apareceu a dizer teste
não me abre é a tooltip
onde é que escrevo o texto da tooltip?
 
11:38 AM
depois do initComponents() você coloca normalmente o texto
 
ahhh depois de colocar o codigo nas propriedades
e a casse fora do construtor
ainda tenho de ir ao construtor
e por : campsetToolTip ...
é isso?
campo.setToolTip("teste");
 
isso
ali no new JTextField("teste"){ podes tirar o "teste"
 
pois isso ja percebi
grr não me funcionou
ficam as cores padrao
já aparece o texto mas aparecem as cores padrao -.-
 
Consegues me mandar o código todo?
 
tenho cerca de 3000 linhas de codigo -.-
espere aí
class MyCustomToolTip extends JToolTip {
public MyCustomToolTip(JComponent component) {
super();
setComponent(component);
setBackground(Color.black);
setForeground(Color.red);

}

}
isso ta fora do construtor
new JTextField(){
@Override
public JToolTip createToolTip() {
return (new MyCustomToolTip(this));
}
};
isso nas propriedades -> código -> custom creation code
e no construtor tenho: nomeCampo.setToolTipText("TESTE");
 
11:46 AM
isso, a princípio é isso que tenho
ele compila normal, só não mostra nada?
 
agora já mostra
mas as cores é que não fica o preto e vermelho
 
@SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {
        java.awt.GridBagConstraints gridBagConstraints;

        jPanel2 = new javax.swing.JPanel();
        jLabelTitulo = new javax.swing.JLabel();
        jSeparator1 = new javax.swing.JSeparator();
        jLabelVersao = new javax.swing.JLabel();
        jTextFieldVersao = new JTextField("teste"){
            @Override
            public JToolTip createToolTip() {
assim está dentro do meu initCompontents, uma parte dele
public NovaVersaoUI(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        jTextFieldVersao.setToolTipText("Teste");
    }
assim está meu construtor
class MyCustomToolTip extends JToolTip {
        public MyCustomToolTip(JComponent component) {
            super();
            setComponent(component);
            setBackground(Color.black);
            setForeground(Color.red);
        }
    }
}
e assim está o final do meu arquivo
 
olhe não perca mais tempo comigo xD
obrigado pelo tempo disponibilizado
 
blz, mas dê uma olhada no seu código, deve ter algo simples que está errado..
 
pois vou ver melhor isso !
Obrigado até à proxima
 
11:54 AM
até
marquei pra ganhar medalha, ;)
 

last day (14 days later) »