Tenho o seguinte código:
[code]package componentes.vizuais;
import javax.swing.*;
public class teste extends JFrame {
public teste(){
super("Teste");
JFrame frm = new JFrame("Teste");
xTextField txt = new xTextField();
frm.getContentPane().add(txt);
}
public static void main(String args[]){
new teste().setVisible(true);
}
} [/code]
Quando vou compilar no eclpise, ele não encontra a classe main. Como pode ser ver, tenho uma classe dentro de um apacote (componentes.vizuais). Será por causa disso?
Bem, o q q ta acontecendo que naum encontro a dita main?
Ola,
Clique com o butao direito do mouse e run-> java application…
Tente colocar dentro do main assim:
teste a = new teste();
a.setVisible(true);
falows!
O erro continua. O erro não está na classe main em si, mas na estrutura (creio eu).
Eu tenho um pacote em componentes.visuais, onde eu tenho a classe xTextField (que é extendida de jTextField). depois eu chamo ela. Qunado eu compilo, o erro persiste, ele não encontra a minha classe main…estou quase jogando o pc pela janela…
Bem, como vc’s perceberam, eu estou tentando criar um componente texto extendido de JTextField, e depois chama-lo em um frame. Bem, fiz um outro teste e consegui fazer o eclipse encontrar a classe main, mas quando compilo aparece o seguinte erro.
Exception in thread "main" java.lang.StackOverflowError
at java.util.WeakHashMap.expungeStaleEntries(Unknown Source)
at java.util.WeakHashMap.getTable(Unknown Source)
at java.util.WeakHashMap.get(Unknown Source)
at java.util.Collections$SynchronizedMap.get(Unknown Source)
at javax.swing.text.StyleContext.getImmutableUniqueSet(Unknown Source)
at javax.swing.text.StyleContext.addAttributes(Unknown Source)
at javax.swing.text.AbstractDocument$AbstractElement.addAttributes(Unknown Source)
at javax.swing.text.AbstractDocument$AbstractElement.<init>(Unknown Source)
at javax.swing.text.AbstractDocument$LeafElement.<init>(Unknown Source)
at javax.swing.text.AbstractDocument$BidiElement.<init>(Unknown Source)
at javax.swing.text.AbstractDocument.<init>(Unknown Source)
at javax.swing.text.AbstractDocument.<init>(Unknown Source)
at javax.swing.text.PlainDocument.<init>(Unknown Source)
at javax.swing.text.PlainDocument.<init>(Unknown Source)
at javax.swing.text.DefaultEditorKit.createDefaultDocument(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI.installUI(Unknown Source)
at javax.swing.plaf.basic.BasicTextFieldUI.installUI(Unknown Source)
at javax.swing.JComponent.setUI(Unknown Source)
at javax.swing.text.JTextComponent.setUI(Unknown Source)
at javax.swing.text.JTextComponent.updateUI(Unknown Source)
at javax.swing.text.JTextComponent.<init>(Unknown Source)
at javax.swing.JTextField.<init>(Unknown Source)
at javax.swing.JTextField.<init>(Unknown Source)
at componentes.vizu.Text.<init>(Text.java:7)
at componentes.vizu.Text.<init>(Text.java:8)
at componentes.vizu.Text.<init>(Text.java:8)
at componentes.vizu.Text.<init>(Text.java:8)
at componentes.vizu.Text.<init>(Text.java:8)
at componentes.vizu.Text.<init>(Text.java:8)
at componentes.vizu.Text.<init>(Text.java:8)
at componentes.vizu.Text.<init>(Text.java:8)
at componentes.vizu.Text.<init>(Text.java:8)
at componentes.vizu.Text.<init>(Text.java:8)
at componentes.vizu.Text.<init>(Text.java:8)
at componentes.vizu.Text.<init>(Text.java:8)
at componentes.vizu.Text.<init>(Text.java:8)
at componentes.vizu.Text.<init>(Text.java:8)
at componentes.vizu.Text.<init>(Text.java:8)
at componentes.vizu.Text.<init>(Text.java:8)
at componentes.vizu.Text.<init>(Text.java:8)
.
.
.
at componentes.vizu.Text.<init>(Text.java:8)
O código do pacote onde eu tenho o componente extendido é este.
[code]package componentes.vizu;
import javax.swing.*;
import java.awt.Color;
public class Text extends JTextField{
public Text(){
new Text().setBackground(new Color(204,204,204));
}
}[/code]
e o código onde eu chamo esta classe e onde tem a classe main é este:
[code]import componentes.vizu.Text;
import javax.swing.*;
public class TestePrinc extends JFrame{
public TestePrinc(){
super(“Teste Comp”);
Text t = new Text();
this.getContentPane().add(t);
}
public static void main(String args[]){
TestePrinc a = new TestePrinc();
a.setVisible(true);
}
}[/code]
Ola,
Bom, dentro do construtor do Text vc tá o instanciando novamente… isto gera um loop infinito… e tem hora que da falha na pilha de execução…
Tire o new Text do construtor dele… e simplismente set o background…
[quote=“BrunoCarlo”]Ola,
Bom, dentro do construtor do Text vc tá o instanciando novamente… isto gera um loop infinito… e tem hora que da falha na pilha de execução…
Tire o new Text do construtor dele… e simplismente set o background…[/quote]
E num é q é memo.
vlw