Classe principal chamando classe frame

1 resposta
J

Olá, pacientes jedis ( Jedáis ih,ih ). Perdoem a ignorancia deste que vos fala mas preciso de um help. Estu tentando fazer uma aplicação desktop.

Mas estou com um problema:

Criei uma classe principal cujo códiog é este :
/**

  • AWT Sample application

  • @author

  • @version 1.00 04/01/01
    */
    public class SISNUT_V2 {

    public static void main(String[] args) {
    
    // Create application frame.
    
    SISNUT_V2Frame frame = new SISNUT_V2Frame();
    
    // Show frame
     frame.pack();
     frame.setVisible(true);
    

    }
    }

Que chama esta classe onde crio o frame, botoes, e menus( pelo menso esta era a minha idéia). Este é o código:

import java.awt.<em>;

import java.awt.event.</em>;

import javax.swing.*;

import javax.swing.AbstractButton;

import javax.swing.AbstractAction;

import javax.swing.Action;

import javax.swing.JScrollPane;

import javax.swing.JPanel;

import javax.swing.JButton;

/**

  • Sample application using Frame.

  • @author

  • @version 1.00 04/01/01
    */
    public class SISNUT_V2Frame extends Frame {

    /**

    • The constructor.
    • Controi o frame principal
      */
      public SISNUT_V2Frame() {

    setTitle(“SISNUT_V2 - Sistema de Nutrição”);
    setSize(new Dimension(700, 500));

//-- Criando variaveis

JPanel  panel;

JMenuBar menuBar;

JMenu menu;
//----------------------------------------------------------

// Instanciando panel

panel = new JPanel();

// Instanciando barra de menu

menuBar = new JMenuBar();

menu = new JMenu();

//* Criando botões

JButton bt1 = new JButton(MANUTENÇÃO DE USUÁRIOS);

bt1.setVerticalTextPosition(AbstractButton.CENTER);

bt1.setHorizontalTextPosition(AbstractButton.CENTER);

bt1.setMnemonic(KeyEvent.VK_D);

bt1.setActionCommand(enable);

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

//—> ADICIONANDO ELEMENTOS

menuBar.add(menu);

panel.add(menuBar);

panel.add(bt1);

// adiciona tudo ao panel do frame

// Add window listener.
    this.addWindowListener
    (
        new WindowAdapter() {
            public void windowClosing(WindowEvent e) {
                SISNUT_V2Frame.this.windowClosed();
            }
        }
    );  
 }


/**
 * Shutdown procedure when run as an application.
 */
protected void windowClosed() {
	
	// TODO: Check if it is safe to close the application
	
    // Exit application.
    System.exit(0);
}

}

Só que o botão e o menu não aparecem. A minha idéia é fazer uma classe principal chamando outras a partir dela. O que está errado? O que está faltando ? Alguem pode me ajudar ? PelamordeDeus??

Desde já agradeço!!!

Abraços.

JJManfraime.
:?:

1 Resposta

L

Olha só...

Nesse caso você não deve criar uma classe sozinha (main) chamando a outra
classe que contem o menu. é desnecessario...
dei uma analizada no seu código, a ideia realmente esta correta.. mais a estruturação não.
e vc esqueceu de retornar o menuBar.

Vou tentar te explicar a maneira com que eu vejo as coisas.

Obs:

0º Criar as variaveis de menu -> menuItem etc...

1º É necessario uma classe, com um construtor que chama sómente um método que sera
resposavel por criar o seu FRAME (Janela). é nele que você coloca o tamanho e posições etc...

2º Você precisa de um método para criar os menus.

3º E criar um método que monta a janela, passado no construtor, como falado acima no item 1º.

4º Método main (principal).

[b]Obs 1:[/b]
/**
 * Construtor da classe.	 
 */
public			StoodLoja()
{
	//
	// Chama o responsavel pro definir a janela.
	//
    	METODORESPONSAVEL();		
}
[b]Ob2 2:[/b]
/**
 *@method criaMenu()-método responsável pela criação da Barra de Menus dos menus e submenus
 */   
public		
JMenuBar		CreateMenu()
{
	//
	// Cria a barra de menu.
	//
	menuBar		= 	new JMenuBar();
		
		
	/*******************************************************************/
		
	//
	// Constrói o menu.
	//         
	menu		=	new JMenu("Sistema");
	menu.setMnemonic('S');
	menu.setMnemonic(KeyEvent.VK_S);
	menu.getAccessibleContext().setAccessibleDescription("Fecha a aplicação");
	        
	//
	// Adiciona o item do menu a barra de status.
	//
	menuBar.add(menu);

	return menuBar;
}
[b]Obs 3:[/b]
/**
 * Método responsavel por criar a janela, sua forma e tamanho.	 
 */
public
void			METODORESPONSAVEL()
{
	//
	// Cria a janela.
	//
	frame = new JFrame("Nome da janela.");
	frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

	//
	// Chama o método que cria a barra de menus... aquele da Obs 2.
	//
	frame.setJMenuBar(this.CreateMenu());

	//
	// Ajusta o tamanho da janela.
	//
	frame.setSize(900,520);
	        
	//
	// Centraliza a tela.
	//
	frame.setLocationRelativeTo(null);
		
	//
	// Mostra a janela.
	//
	frame.setVisible(true);
}
[b]Obs 4º[/b]

/**
 * @param args
 */
public static void main(String[] args)
{
	new NomedaCLASSE();
}

É isso.. espero ter ajudado...

Tchauzin!

Criado 12 de março de 2007
Ultima resposta 16 de mar. de 2007
Respostas 1
Participantes 2