Abrindo um form

17 respostas
P

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:

17 Respostas

P

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


// 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 // </blockquote>

Agardeço a ajuda!!
T+

Pilantra :cool:

V

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á... ");
P

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+

V

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

class TelaPrincipal {
      private TelaSobre tSobre;

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


       void abrirTelaSobre(){
              tSobre.setVisible(true);
       }
}
P
"vinci":
Sim, você pode criar outro form também.
class TelaPrincipal {
      private TelaSobre tSobre;

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


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

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+

V

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

P

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!!!

R

curiosidade: vc veio do delphi/vb?

P

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:

R

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

P

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

P

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!!!

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();
	   
	}

}
}

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

Obrigado

V

Para início de conversa, troque

class Janela1();

por

new Janela1();
P

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!!!

P

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!!!

V

Ao invés de

new Janela1();

faça

new Janela1().setVisible(true);
P

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:

Criado 14 de janeiro de 2005
Ultima resposta 17 de jan. de 2005
Respostas 17
Participantes 3