Abrindo um form

Dae pessoal

Eu sempre quis fazer isso em Java mas nunca consegui, vou mostrar as figuras assim fica mais fácil, mas antes uma explicação!! É simples falando, a pessoa clica no menu Sobre… Que está na figura, e abre um form (Uma janelinha)!!! Como eu faria isso!? Basta eu criar outro public Janela2() { super(“Janela Sobre”)…
!?!?!?!
Vejam a figura, eu comecei a fazer hoje esse programinha por tanto está feio ainda :smiley:

Basicamente é isso, eu nunca consegui fazer, nem no JBuilder quando eu usava!! Eu ache por isso eu nem lembro direito como é Java, aquele JBuilder estraga a gente, estou fazendo no Kate Editor de Textos do KDE!!!

Obrigado
T+

Pilantra

:cool:

Eu esqueci, o source dos menus!!! Foi feito em awt!!!

[quote]
// Criação dos Menus //
MenuBar barraMenu = new MenuBar();

Menu menuArquivo = new Menu("Arquivo");
Menu menuEditar = new Menu("Editar");
Menu menuAjuda = new Menu("Ajuda");

//Menu Arquivo //
MenuItem miNovo = new MenuItem("Novo", new MenuShortcut(KeyEvent.VK_N));
MenuItem miAbrir = new MenuItem("Abrir...", new MenuShortcut(KeyEvent.VK_O));
MenuItem miSalvar = new MenuItem("Salvar", new MenuShortcut(KeyEvent.VK_S));
MenuItem miSalvarComo = new MenuItem("Salvar como...");
MenuItem miSair = new MenuItem("Sair", new MenuShortcut(KeyEvent.VK_W));
// Fim do Menu Arquivo

// Menu Editar //
MenuItem miDesfazer = new MenuItem("Desfazer", new MenuShortcut(KeyEvent.VK_Z));
MenuItem miRecortar = new MenuItem("Recortar", new MenuShortcut(KeyEvent.VK_X));
MenuItem miCopiar = new MenuItem("Copiar", new MenuShortcut(KeyEvent.VK_C));
MenuItem miColar = new MenuItem("Colar", new MenuShortcut(KeyEvent.VK_V));
MenuItem miSelecionarTudo = new MenuItem("Selecionar tudo...", new MenuShortcut(KeyEvent.VK_A));
// Fim do Menu Editar //

// Menu Ajuda //
MenuItem miAjuda = new MenuItem("Ajuda...");
MenuItem miContato = new MenuItem("Contato");
MenuItem miReportarBugs = new MenuItem("Reportar BUGS");
MenuItem miSobre = new MenuItem("Sobre...", new MenuShortcut(KeyEvent.VK_F12));
// Fim do Menu Ajuda //

// Adicionando Itens ao Menu Arquivo //
menuArquivo.add(miNovo);
menuArquivo.add(miAbrir);
menuArquivo.add(miSalvar);
menuArquivo.add(miSalvarComo);
menuArquivo.addSeparator();
menuArquivo.add(miSair);
// Fim dos Itens do Menu Arquivo //

// Adicionando Itens ao Menu Editar //
menuEditar.add(miDesfazer);
menuEditar.addSeparator();
menuEditar.add(miRecortar);
menuEditar.add(miCopiar);
menuEditar.add(miColar);
menuEditar.addSeparator();
menuEditar.add(miSelecionarTudo);
// Fim dos Itens do Menu Editar //

// Adicionando Itens ao Menu Ajuda //
menuAjuda.add(miAjuda);
menuAjuda.add(miContato);
menuAjuda.add(miReportarBugs);
menuAjuda.addSeparator();
menuAjuda.add(miSobre);
// Fim dos Itens do Menu Ajuda //

// Instanciando o menu no Frame //
barraMenu.add(menuArquivo);
barraMenu.add(menuEditar);
barraMenu.add(menuAjuda);
setMenuBar(barraMenu);
//Fim da Criação dos Menus // [/quote]

Agardeço a ajuda!!
T+

Pilantra :cool:

Uma forma simples de fazer isso é colocar na ação no menu o seguinte código:

   javax.swing.JOptionPane.showMessageDialog(this, "Esse programa foi desenvolvido por blábláblá... ");

Humm Interessante, mas é que eu queria aprender a soltar outro form mesmo, porque tem as outras opções dos menus!!! Eu estava fazendo testes, e acho que precisa criar outra classe e depois chamar nas opções do menu certo ou errado!?

Obrigado
T+

Sim, você pode criar outro form também.

class TelaPrincipal {
      private TelaSobre tSobre;

      TelaPrincipal() {   // construtor
            tSobre = new TelaSobre(); 
      }


       void abrirTelaSobre(){
              tSobre.setVisible(true);
       }
}

[quote=“vinci”]Sim, você pode criar outro form também.

[code]
class TelaPrincipal {
private TelaSobre tSobre;

  TelaPrincipal() {   // construtor
        tSobre = new TelaSobre(); 
  }


   void abrirTelaSobre(){
          tSobre.setVisible(true);
   }

}
[/code][/quote]

HUm que legal cara, mas esse esquema que você me passou serve pra outro class separado?! Por exemplo, eu tenho o .class Principal e o Imprimir, entaum se eu keru chamar o forumulário Imprimir eu faço isso que você me passou?!!?

Obrigado
T+

Sim. Estou supondo que TelaPrincipal e TelaSobre são duas classe Java que podem estar em dois arquivos .java diferentes.

HUm que legal, eu já aprendi a fazer as coisas em uma ação do controle, exemplo clicar e tals, eu nunca aprendi a fazer isso porqeue eu usava o JBuilder, acho que isso foi um erro muito grande, tinha acabado de sair do curso e fiquei com preguiça de encarar o bloco de notas!!! buuuuuuu pra mim!!!

curiosidade: vc veio do delphi/vb?

Pois eh, a minha primeira linguagem foi VB e depois veio Delphi, mas dae comecei a mexer com PHP, javascript que me dou muito bem, agora no Java, eu fiz um curso meio as pressas, fiz em uma semana, num deu pra capta muita coisa :sad:

blz, é normal quem vem de “linguagens visuais” se complicar no começo, pq geralmente não tem noção do que é realmente orientação a objetos

eu tb vim do delphi e vb, amava delphi

hj é só java

é só pegar firme na orientação a objetos, entender a API, ler as documentações oficiais da sun e praticar

e nada como um bom livro como o core java ou como o deitel para ajudar

hehe valeu cara!!! eu também gosto pra caramba do Delphi, é uma linguagem mtu gostosa de trabalhar, o VB dá muito pau Deus me livre!! Mas agora depois de ontem que eu estudei muito, eu consegui intender a estrutura de um código em Java, antes eu nem sabia a diferença entre public class Classe… para public static void main heheheh!!! Mas tá massa, to gostando pacas!!!

Valeu pela ajuda pessoal!!
Inte

Colegas eu não consegui!!! Vejam meu código, é uma janela com 3 botões e cada um abre uma coisa e o ultimo fecha!!!

[code]import java.awt.;
import java.awt.event.
;

public class Teste extends Frame implements ActionListener {
// Variaveis //

private Button bt_janela1, bt_janela2, bt_janela3, bt_fechar;

// -------- //

public static void main(String args[]) {
Teste f = new Teste();
f.show();
}

public Teste() {
super(“Teste de Abrimento”);
setSize(350,200);
setLocation(200,50);
setBackground(Color.lightGray);

Panel p = new Panel();
p.setLayout(new GridLayout(1,4,5,5));
p.add(bt_janela1 = new Button("Janela 1"));
p.add(bt_janela2 = new Button("Janela 2"));
p.add(bt_janela3 = new Button("Janela 3"));
p.add(bt_fechar = new Button("Fechar"));
add(p, BorderLayout.SOUTH);
bt_janela1.addActionListener(this);
bt_janela2.addActionListener(this);
bt_janela3.addActionListener(this);
bt_fechar.addActionListener(this);

}

public void actionPerformed(ActionEvent e) {
if (e.getSource() == bt_janela1) {
// Evento pra abrir a janela 1 //
class Janela1();

} else if (e.getSource() == bt_janela2) {
   // Evento pra abrir a janela 2 //
   class Janela2();

} else if (e.getSource() == bt_fechar) {
   // Evento pra fechar a janela //
   System.exit(0);
   
} else {
   // Evento pra abrir a janela 3 //
   class Janela3();
   
}

}
}[/code]

Eu não entendi direito onde vai entrar o código que o vinci me passo!!! Alguém me ajuda???

Obrigado

Para início de conversa, troque

	   class Janela1();	

por

	   new Janela1();	

Humm, blz, coloquei, compilei e não deu erro, porém não funcionou!! A classe Janela1 está na mesma pasta que Teste!!! E agora!!???

Depois que eu conseguir fazer isso prometo não encher mais o saco hehee!!!

Humm, blz, coloquei, compilei e não deu erro, porém não funcionou!! A classe Janela1 está na mesma pasta que Teste!!! E agora!!???

Depois que eu conseguir fazer isso prometo não encher mais o saco hehee!!!

Ao invés de

  new Janela1(); 

faça

 new Janela1().setVisible(true);

Cara do céu, finalmenteeeeee!!! Eu to feliz da vida, agora eu vou poder fazer os meus programas!!! Valeu mesmo, você e o povo aqui desse fórum são super gente fina!!!

Obrigado
T+

Pilantra :cool: