ERRO no JTextField

Boa tarde comunidade…

Estava criando uma classe herdada de um JTextfield. Acontece que testando esta minha classe deparei com um erro
que era lançado no meu console e do qual não consegui dar volta.
Acontece que depois de muito penar, descobri que este erro era gerado também pelo JTextfield :x

Utilizo o Eclipse GALILEO com o java Versão 6 update 15.

Fiz um programinha bem simples para poderem constatar este erro…

1 - Executem o programa de dentro da IDE e no jTextfiel digitem qualquer coisa.
2 - Clique com o mouse no centro do texto digitado e insiram mais alguns caracteres.
3 - Tentem marcar o texto inteiro arrastando o mouse sobre ele, da esquerda para direita.

Se tudo der certo ( ou errado ) o componente vai lançar um erro no console da IDE ( Eclipse no meu caso )

Aparentemente este errro não afeta o programa, mas me fez perder um tempo razoável porque achei que era a
minha classe que gerava o mesmo .

Logo abaixo, um programa para verificar o erro.


public class erroJTextfield {

public static void main(String[] args) {
	
	JFrame f = new JFrame("Erro no JTextField");
	JPanel p = new JPanel();
	JTextField j = new JTextField();
	
	f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
	
	// Alinhamento horizontal do JTextField
	j.setHorizontalAlignment( JTextField.RIGHT );
	
	p.setLayout(new BorderLayout());
	p.add(j, BorderLayout.CENTER);
	
	f.add(p);
	f.setSize(400,70);
	f.setLocation(300, 500);
	
	f.setVisible(true);

}

}

Oi,

Não aconteceu nenhum problema.

Quando ocorre essa situação de erro, sempre coloque em seu post a mensagem de erro! assim será + facil de encontrarmos o problema.

Por favor, utilize as tags antes de postar códigos, ok?

Tchauzin!

[code] public class erroJTextfield {

public static void main(String[] args) {

JFrame f = new JFrame(“Erro no JTextField”);
JPanel p = new JPanel();
JTextField j = new JTextField();

f.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);

// Alinhamento horizontal do JTextField
j.setHorizontalAlignment( JTextField.RIGHT );

p.setLayout(new BorderLayout());
p.add(j, BorderLayout.CENTER);

f.add§;
f.setSize(400,70);
f.setLocation(300, 500);

f.setVisible(true);

}

} [/code]

[quote] Lina diz: Oi,

Não aconteceu nenhum problema.

Quando ocorre essa situação de erro, sempre coloque em seu post a mensagem de erro! assim será + facil de encontrarmos o problema.

Por favor, utilize as tags antes de postar códigos, ok?

Tchauzin![/quote]

Lina, o erro existe hehe.
De uma executa com action performed do mouse, indo para ultima posicao right,
e depois acrescente um numero aleatorio e selecione todo o conteudo :wink:

Oi,

Juro que não consegui simular o erro.
Poderia colocar o stack aqui?

Tchauzin!

Olá Lina …

Desculpe pela primeira mensagem ! ( :frowning: )

Aqui vai o stack

Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 8
	at sun.font.FontDesignMetrics.charsWidth(Unknown Source)
	at javax.swing.text.Utilities.getTabbedTextOffset(Unknown Source)
	at javax.swing.text.Utilities.getTabbedTextOffset(Unknown Source)
	at javax.swing.text.Utilities.getTabbedTextOffset(Unknown Source)
	at javax.swing.text.PlainView.viewToModel(Unknown Source)
	at javax.swing.text.FieldView.viewToModel(Unknown Source)
	at javax.swing.plaf.basic.BasicTextUI$RootView.viewToModel(Unknown Source)
	at javax.swing.plaf.basic.BasicTextUI.viewToModel(Unknown Source)
	at javax.swing.text.DefaultCaret.moveCaret(Unknown Source)
	at javax.swing.text.DefaultCaret.mouseDragged(Unknown Source)
	at java.awt.AWTEventMulticaster.mouseDragged(Unknown Source)
	at java.awt.Component.processMouseMotionEvent(Unknown Source)
	at javax.swing.JComponent.processMouseMotionEvent(Unknown Source)
	at java.awt.Component.processEvent(Unknown Source)
	at java.awt.Container.processEvent(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

Kebe

Consegui reproduzir o erro aqui, me parece ser um bug na JDK. Estou usando a JDK 1.6.16.

http://bugs.sun.com/view_bug.do?bug_id=6828938 - ele diz que estaria corrigido na 6 update 16 ( segundo http://bugs.sun.com/view_bug.do?bug_id=6857057 ) mas provavelmente não foi corrigido ainda.

[quote=enantiomero]http://bugs.sun.com/view_bug.do?bug_id=6828938 - ele diz que estaria corrigido na 6 update 16 ( segundo http://bugs.sun.com/view_bug.do?bug_id=6857057 ) mas provavelmente não foi corrigido ainda.
[/quote]

É o que achamos também, após algumas análises, porém nao deixa de ser um problema que aparentemente é do Java