Tem como mudar o curso de uma JTextFeld, colocar ele de uma forma que fique mais visivel?
Desculpe mas não entendi ?
Tem sim.
Se você quer mudar o cursor do mouse, utilize o método setCursor(Cursor c) que o jTextField herda da classe componente.
Você pode, por exemplo, colocar um cursor já pré-definido. Um exemplo é:
jTextField1.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
Este código fará que o cursor do mouse fique como o default (seta) quando estiver encima do textfield.
Para maiores informações olhe a documentação on-line:
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Component.html#setCursor(java.awt.Cursor)
Caso você queira mudar o cursor de texto dentro do jTextField (caret), você deve utilzar o método setCaret(Caret c), ou set caretColor(Color c) herdados da classe JTextComponent.
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/JTextComponent.html
Espero ter ajudado…
Até mais,
GH
Obrigado pela dica vou tentar usar o setCaret(), mas deixa eu explicar melhor a minha duvida.
Minha ideia trocar o cursor que fica piscando dentro da JTextField, eu preciso usuar um curso que chame mais a atenção.
O que eu preciso acho que realmente e o setCaret() mas eu não estou conseguindo usar. Aquem sabe como usar?
Cara, tenta criar uma classe que “extende” DefaultCaret. Você deve sobrescrever os métodos paint e damage.
Um exemplo de um cursor BEM visível:
import javax.swing.*;
import javax.swing.text.*;
import java.awt.*;
/**
*
* @author Guilherme Hermeto
*/
public class MeuCursor extends DefaultCaret{
/** Creates a new instance of MeuCursor */
public MeuCursor() {
}
int charLargura = 0;
int charAltura = 0;
public void paint(Graphics g)
{
try {
JTextComponent c = getComponent();
int dot = getDot();
Rectangle r = c.modelToView(dot);
g.setColor(c.getCaretColor());
g.drawRect( r.x, r.y, charLargura, charAltura );
Color temp= g.getColor();
g.setColor(Color.MAGENTA);
g.fillRect(r.x, r.y, charLargura, charAltura);
g.setColor(temp);
}
catch (BadLocationException e) {
}
}
public synchronized void damage(Rectangle r)
{
Font f = getComponent().getFont();
FontMetrics fm = getComponent().getFontMetrics( f );
charLargura = fm.charWidth( 'k' );
charAltura= fm.getHeight();
x = r.x - 2;
y = r.y - 2;
width = charLargura + 4;
height = charAltura + 4;
repaint();
}
}
Depois você pode usar:
textField.setCaret(new MeuCursor());
Para maiores informações olhe:
http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/text/DefaultCaret.html
Até mais,
GH
Alguem sabe se tem como colocar um dos cursores do Windows que tem a extensao “ani” ou “cur”?
Ficaria grato se alguem pudesse me informar, pois eu nao estou conseguindo
Já tentou no construtor carregar uma imagem, armazená-la em um campo e usar o método drawImage. Algo como:
public class MeuCursor extends DefaultCaret{
private Image imagem;
public MeuCursor() {
imagem = new ImageIcon("caminho").getImage();
}
public void paint(Graphics g)
{
try {
.........
g.drawImage(imagem, posX, posY, largura, altura, null);
}
catch (BadLocationException e) {
}
}
......
}