/**
*
*/
private JLabel label1;
private JLabel label2;
private JFrame j;
public LabelFrame(){
j = new JFrame("Teste JLabel");//chama o construto da super-classe JFrame, essa string vai ser o título da janela.
j.setLayout(new FlowLayout());//configura o layout da janela, os ojetos serõa adicionados da esquerda para direita
label1 = new JLabel("JLabel com texto");
label1.setToolTipText("Esse e o label1"); //essa sera a dica exibida
j.add(label1);//esta adicionado ao JFrame(janela) que foi criada na linha 17
label2 = new JLabel();//construtor sem parametros
label2.setText("Esse e o texto do label2");
label2.setHorizontalAlignment(SwingConstants.LEFT);
label2.setVerticalAlignment(SwingConstants.TOP);
j.add(label2);
//configurações da janela
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j.setSize(275,180);
j.setVisible(true);
}
}
public static void main(String args[]){
LabelFrame2 l = new LabelFrame2();
l.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
l.setSize(275, 180);
l.setVisible(true);
}
}
em outra classe eu instancio um objeto desse classe, mais quando tento compilar esta outra classe o compilador
retorna uma mensagem de erro dizendo que o simbolo que e o nome da classe não foi especificado.
import javax.swing.JFrame;
public class TesteJFrame {
public static void main(String[] args) {
new LabelFrame();
}
Utilizando as tags [code] ficaria melhor a visualização. Porém, percebi que existe uma chave ‘}’ a mais no seu código. (Antes do método main da classe LabelFrame).
Olha só, se você compilar a primeira class mas se você executá-la funcionará certinho,
o seu erro aí é que você está querendo excutar o main de uma class em outra class e isso
é o que está dando erro (na minha opnião). Se você fazer na class, que você quer executar
a aplicão, o mesmo que você fez na class onde tem o código a sua aplicação correrá normalmente.
[quote=WendersonLP]Olha só, se você compilar a primeira class mas se você executá-la funcionará certinho,
o seu erro aí é que você está querendo excutar o main de uma class em outra class e isso
é o que está dando erro (na minha opnião). Se você fazer na class, que você quer executar
a aplicão, o mesmo que você fez na class onde tem o código a sua aplicação correrá normalmente.[/quote]
Oi,
Então é impossível executar/instanciar uma classe de uma outra classe no JAVA ? Oo
Se é impossível ou não isso eu não afirmo, como eu falei é um apnião minha, porque numca vi executar uma aplicação dessa maneira, mas se você ou os outros já viram poste aqui que será de bom uso.
public class JanelaPrincipal
{
// Isso é chamado de construtor.
public JanelaPrincipal()
{
System.out.println(“Olá”); // item 1)
}
}[/code]
Gostaria de chamar está classe (chamada JanelaPrincipal)
de outra classe do mesmo pacote. Então utilizei a classe JanelaSecundaria:
[code]
package testando;
public class JanelaSecundaria
{
public static void main(String args[])
{
new JanelaPrincipal(); // Chamada da classe JanelaPrincipal() irá automaticamente entrar no item 1) comentado na outra classe.
}
}[/code]
No momento em que instanciei (new) a classe JanelaPrincipal, será realizada
a chamada do seu método construtor() sem parametros/assinatura.
Eu poderia ainda, ter outro construtor na minha classe principal utilizando
uma String ou qualquer outro parametro em sua assinatura, como:
[code]
package testando;
public class JanelaPrincipal
{
// Construtor com parametros.
public JanelaPrincipal(String text)
{
System.out.println(text); // item 2)
}
// Construtor default ou sem parametros.
public JanelaPrincipal()
{
System.out.println("Olá");
}
}[/code]
e chamar da classe secundaria, assim:
[code]
package testando;
public class JanelaSecundaria
{
public static void main(String args[])
{
new JanelaPrincipal(“Oi”); // Chamando a classe JanelaPrincipal utilizando o construtor item 2)
}
}[/code]
Ou seja, poderei ter na minha classe, quantos construtores eu quiser! Porém com assinaturas diferentes.
Sim até aí tudo bem, mas é que o erro que ocorre na classe de “Jlesson” é que as configurações de tamanho de janela, modo de fechamento e visibilidade da janela ele está aplicando do método “main”, logo quando fizer o que você fez chamando um construtor a janela não abrirá por conta disto!