Jmenu e jinternal frame

rapaziada…
Estou fazendo o projeto final para graduação na minha faculdade…
To com grande problema…não consigo dar ação aos jmenuitem pois tenho que chamar uma classe a partir desse jmenuitem como posso fazer ja tentei os codigos que disponibilizaram no portal mas…
URGENTE…se alguem puder me ajudar …agradeço…um abraço

Olá jrroots,

Não entendi muito bem sua pergunta,
mas para dar ação a qualquer jmenuitem
é necessária uma classe que implemente
a interface ActionListener assim:

class seuOuvinte implements ActionListener
{
public void actionPerformed (ActionEvent event)
{

}
}
seujmenuitem.addActionListener(new seuOuvinte());

se vc puder ser mais claro…

Falow;

Olá jrroots,

Não entendi muito bem sua pergunta,
mas para dar ação a qualquer jmenuitem
é necessária uma classe que implemente
a interface ActionListener assim:

class seuOuvinte implements ActionListener
{
public void actionPerformed (ActionEvent event)
{

}
}
seujmenuitem.addActionListener(new seuOuvinte());

se vc puder ser mais claro…

Falow;

Ai velinho to fazendo um programinha parecido, pega ai…

primeiro insere essa chamada no construtor

meuJMenuitem.addActionListener(this); 

e depois implementa um ActionEvent…

public void actionPerformed(ActionEvent e){ 
        if (e.getSource()==jmiBairro){ 
            Bairro painelBairro=new Bairro();
            c.add(painelBairro);
        }
}

Ewerson

galera …obrigado pela ajuda segue então o codigo se alguem puder me ajudar valeu :grin:

classe principal / MENU

import java.awt.;
import java.awt.event.
;
import javax.swing.;
import java.sql.
;

public class Clinica extends JFrame implements ActionListener
{
//private JDesktopPane telaprincipal;

public Clinica()
{
setSize(700, 500);
this.setTitle (“FATUGUIA - Sistema de Faturamento de Guias Médicas”);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  //setLocationRelativeTo(null);
  //texto = new JTextArea();
  //JScrollPane scroll = new JScrollPane(texto);
  //getContentPane().add(scroll, BorderLayout.CENTER);
  
  // Itens do Menu Cadastrar // 
  
  JMenuItem medicos = new JMenuItem("Médicos"); 
  medicos.setMnemonic('M');
  medicos.setActionCommand("abrir");
  medicos.addActionListener(this);    
        
  JMenuItem procedimentos = new JMenuItem("Procedimentos"); 
  procedimentos.setMnemonic('P');
  procedimentos.setActionCommand("abrir");
  procedimentos.addActionListener(this);    
  
  JMenuItem ecografistas = new JMenuItem("Ecografistas");
  ecografistas.setMnemonic('O');
  ecografistas.setActionCommand("abrir");
  ecografistas.addActionListener(this);    
  
  JMenuItem convenios = new JMenuItem("Convênios");
  convenios.setMnemonic('V');
  convenios.setActionCommand("abrir");
  convenios.addActionListener(this);    
  
  JMenuItem especialidades = new JMenuItem("Especialidades");
  especialidades.setMnemonic('E');
  especialidades.setActionCommand("abrir");
  especialidades.addActionListener(this);    
  
  JMenuItem usuario = new JMenuItem("Usuário");
  usuario.setMnemonic('U');
  usuario.setActionCommand("abrir");
  usuario.addActionListener(this);    
  
  JMenuItem sair = new JMenuItem("Sair");
  sair.setMnemonic('s');
  sair.setActionCommand("sair");
  sair.addActionListener(this);
        
  // Menu Cadastrar//
  JMenu menu = new JMenu("Cadastrar");
  menu.setToolTipText("Opções do Menu Cadastrar");
  menu.setMnemonic('C');

  menu.add(convenios);
  menu.addSeparator();
  menu.add(ecografistas);
  menu.addSeparator();
  menu.add(especialidades);
  menu.addSeparator();   
  menu.add(medicos);
  menu.addSeparator();
  menu.add(procedimentos);
  menu.addSeparator();
  menu.add(usuario);
  menu.addSeparator();
  menu.add(sair);
  
  
  
  // Menu Consultar
  JMenu consultar = new JMenu("Consultar");
  consultar.setToolTipText("Opções do Menu Consultar");
  consultar.setMnemonic('S');
  consultar.setActionCommand("help");
  
  // Itens do Menu Consultar //
  
  JMenuItem atendimento = new JMenuItem("Atendimentos por Médico ou Ecografista");
  atendimento.setMnemonic('A');
  atendimento.setActionCommand("abrir");
  atendimento.addActionListener(this);    
  
  
  JMenuItem quantproc = new JMenuItem("Quantidade de procedimentos por Convênio");
  quantproc.setMnemonic('Q');
  quantproc.setActionCommand("sobre");
  quantproc.addActionListener(this);
  
       
  JMenuItem valoresrecebconvenio = new JMenuItem("Valores a receber por Convênio");
  valoresrecebconvenio.setMnemonic('V');
  valoresrecebconvenio.setActionCommand("abrir");
  valoresrecebconvenio.addActionListener(this);    
  
  JMenuItem valoresrecebmedico = new JMenuItem("Valor total a receber por Médico ou Ecografista");
  valoresrecebmedico.setMnemonic('T');
  valoresrecebmedico.setActionCommand("abrir");
  valoresrecebmedico.addActionListener(this);   
      
  JMenuItem valoresrecebpartic = new JMenuItem("Valores a receber de Procedimentos Particulares");
  valoresrecebpartic.setMnemonic('P');
  valoresrecebpartic.setActionCommand("abrir");
  valoresrecebpartic.addActionListener(this);        
                  
  // adicionar itens ao menu consultar
  consultar.add(atendimento);
  consultar.addSeparator();
  consultar.add(quantproc);
  consultar.addSeparator();
  consultar.add(valoresrecebconvenio);
  consultar.addSeparator();
  consultar.add(valoresrecebmedico);
  consultar.addSeparator();
  consultar.add(valoresrecebpartic);
        
  // Menu Relatórios
  JMenu relatorios = new JMenu("Relatórios");      
  relatorios.setToolTipText("Opções do Menu Relatórios");
  relatorios.setMnemonic('R');
  relatorios.setActionCommand("help");      
        
  // itens do Menu Relatórios
  JMenuItem relquantatend = new JMenuItem("Quantidade de atendimentos por Convênio");
  relquantatend.setMnemonic('Q');
  relquantatend.setActionCommand("sobre");
  relquantatend.addActionListener(this);
  
  JMenuItem relquantproc = new JMenuItem("Quantidade de procedimentos por Convênio");
  relquantproc.setMnemonic('P');
  relquantproc.setActionCommand("abrir");
  relquantproc.addActionListener(this);    
  
  JMenuItem relvalrecebconv = new JMenuItem("Valores a receber por Convênio");
  relvalrecebconv.setMnemonic('C');
  relvalrecebconv.setActionCommand("abrir");
  relvalrecebconv.addActionListener(this);    
      
  JMenuItem relvalrecebmed = new JMenuItem("Valores a receber por Médico ou Ecografista");
  relvalrecebmed.setMnemonic('M');
  relvalrecebmed.setActionCommand("abrir");
  relvalrecebmed.addActionListener(this);        
  
  // adicionar itens ao menu relatórios
  relatorios.add(relquantatend);
  relatorios.addSeparator();
  relatorios.add(relquantproc);
  relatorios.addSeparator();
  relatorios.add(relvalrecebconv);
  relatorios.addSeparator();
  relatorios.add(relvalrecebmed);
  
  // Menu de controle//
  JMenu registrar = new JMenu("Registrar");      
  registrar.setToolTipText("Opções do Menu Registrar");
  registrar.setMnemonic('G');
  registrar.setActionCommand("help");      
  
  // Itens de menu Registrar
  JMenuItem item_contr = new JMenuItem("Atendimento");
  item_contr.setMnemonic('A');
  item_contr.setActionCommand("sobre");
  item_contr.addActionListener(this);
  
  // adicionar itens ao menu Registrar
  registrar.add(item_contr);
 
  // Menu de faturamento//
  JMenu faturamento = new JMenu("Faturamento");      
  faturamento.setToolTipText("Opções do Menu Faturamento");
  faturamento.setMnemonic('F');
  faturamento.setActionCommand("help");      
  
  // Itens de menu faturmaento
  JMenuItem item_fatu = new JMenuItem("Emitir Fatura");
  item_fatu.setMnemonic('E');
  item_fatu.setActionCommand("abrir");
  item_fatu.addActionListener(this);
  
  // adicionar itens ao menu faturamento
  faturamento.add(item_fatu);
  
  // Menu ajuda //
  JMenu ajuda = new JMenu ("Ajuda");
  ajuda.setToolTipText("Precisando de Ajuda Mendonça");
  ajuda.setMnemonic('A');
  ajuda.setActionCommand("abrir");
  
  JMenuItem item_ajuda = new JMenuItem ("?");
  item_ajuda.setMnemonic('?');
  item_ajuda.setActionCommand("Sobre");
  item_ajuda.addActionListener(this);
  ajuda.add(item_ajuda);
  
  // Menu sobre //
  JMenu sobre = new JMenu("Sobre");
  sobre.setToolTipText("Informações sobre Sistema");
  sobre.setMnemonic('O');
  sobre.setActionCommand("sobre"); 
       
  // itens do menu sobre
  JMenuItem item_sobre = new JMenuItem("Informações do Sistema");
  item_sobre.setMnemonic('I');
  item_sobre.setActionCommand("sobre");
  item_sobre.addActionListener(this);
  sobre.add(item_sobre);  
  
  // Barra de Menus//
  JMenuBar barra = new JMenuBar();
  barra.add(menu);
  barra.add(consultar);
  barra.add(relatorios);
  barra.add(registrar);
  barra.add(faturamento);
  barra.add(ajuda);
  barra.add(sobre);
  setJMenuBar(barra);
 
  //configura a área de trabalho

// telaprincipal = new JDesktopPane();
// getContentPane().add(telaprincipal);

}

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

public void actionPerformed(ActionEvent e) 
{
  //texto.insert(e.getActionCommand() + " ", 0);
  if (e.getActionCommand().equals("sair")) 
  {
     dispose();
  }
  if (e.getActionCommand().equals("sobre")) 
  {
     JOptionPane.showMessageDialog(this, "teste");
  }

}
}

exemplo de classe que gostaria de abrir apartir do JMENUITEM da Classe
principal…

import java.awt.;
import java.awt.event.
;
import javax.swing.*;

public class regAtendimento extends JFrame
{
private JLabel jlnomeusuario = new JLabel(“Nome do usuário”);
private JTextField jtnomeusuario = new JTextField("");

private JLabel jldataatendimento = new JLabel(“Data de atendimento”);
private JTextField jtdataatendimento = new JTextField("");

private JLabel jlnomepaciente = new JLabel(“Nome do paciente”);
private JTextField jtnomepaciente = new JTextField("");

private JLabel jlsexo = new JLabel(“Sexo”);
private JTextField jtsexo = new JTextField("");
private JLabel jlmasculino = new JLabel(“M-Masculino”);
private JLabel jlfeminino = new JLabel(“F-Feminino”);

private JLabel jltipoatendimento = new JLabel(“Tipo de atendimento”);
private JLabel jltipoprof = new JLabel(“Tipo de profissional”);

private JTextField jtdatanascimento = new JTextField("");
private JLabel jldatanascimento = new JLabel(“Data de nascimento”);

private JLabel jltelresiden = new JLabel(“Telefone residencial”);
private JTextField jttelresiden = new JTextField("");

private JLabel jltelcelular = new JLabel(“Telefone celular”);
private JTextField jttelcelular = new JTextField("");

private JLabel jlemail = new JLabel(“Email”);
private JTextField jtemail = new JTextField("");

private JLabel jlconvenio = new JLabel(“Convênio”);
private JComboBox jcconvenio = new JComboBox();

private JTextField jttipoatendimento = new JTextField("");
private JLabel jlconv = new JLabel(“C - Convênio”);
private JLabel jlpart = new JLabel(“P - Particular”);

private JTextField jttipoprofissional = new JTextField("");
private JLabel jlmed = new JLabel(“M - Médico”);
private JLabel jleco = new JLabel(“E - Ecografista”);

private JLabel jlproc = new JLabel(“Procedimento”);
private JComboBox jcproc = new JComboBox();

private JLabel jlcid = new JLabel(“C.I.D”);
private JTextField jtcid = new JTextField("");

private JLabel jlnumguia = new JLabel(“Número da guia”);
private JTextField jtnumguia = new JTextField("");

private JLabel jlnuminscri = new JLabel(“Número da inscrição”);
private JTextField jtnuminscri = new JTextField("");

private JLabel jldatavalidade = new JLabel(“Data de validade”);
private JTextField jtdatavalidade = new JTextField("");

private JLabel jlnomemedico = new JLabel(“Nome do Médico”);
private JComboBox jcnomemedico = new JComboBox();
private JLabel jlecografista = new JLabel(“Ecografista”);
private JComboBox jcecografista = new JComboBox();

private JButton jbincluir = new JButton(“Incluir”);
private JButton jbalterar = new JButton(“Alterar”);
private JButton jbexcluir = new JButton(“Excluir”);
private JButton jbconsultar = new JButton(“Consultar”);
private JButton jbimprimir = new JButton(“Imprimir”);

public regAtendimento()
{
try
{
mostra();
}
catch(Exception ex)
{
ex.printStackTrace();
}
}

public void mostra() throws Exception
{
this.getContentPane().setLayout(null);
this.setSize(538, 418);
this.setTitle(“Registrar Atendimento”);
this.setResizable(false);

jlnomeusuario.setBounds(new Rectangle(1, 13, 120, 13));
this.getContentPane().add(jlnomeusuario, null);
jtnomeusuario.setBounds(new Rectangle(111, 9, 120, 21));
this.getContentPane().add(jtnomeusuario, null);

jldataatendimento.setBounds(new Rectangle(242, 13, 120, 13));
this.getContentPane().add(jldataatendimento, null);
jtdataatendimento.setBounds(new Rectangle(366, 8, 100, 21));
this.getContentPane().add(jtdataatendimento, null);

jlnomepaciente.setBounds(new Rectangle(4, 45, 120, 13));
this.getContentPane().add(jlnomepaciente, null);
jtnomepaciente.setBounds(new Rectangle(120, 40, 250, 21));
this.getContentPane().add(jtnomepaciente, null);

jlsexo.setBounds(new Rectangle(373, 44, 35, 13));
this.getContentPane().add(jlsexo, null);
jtsexo.setBounds(new Rectangle(410, 40, 25, 21));
this.getContentPane().add(jtsexo, null);
jlmasculino.setBounds(new Rectangle(439, 37, 80, 13));
this.getContentPane().add(jlmasculino, null);
jlfeminino.setBounds(new Rectangle(440, 51, 70, 13));
this.getContentPane().add(jlfeminino, null);

jltipoatendimento.setBounds(new Rectangle(11, 137, 120, 13));
this.getContentPane().add(jltipoatendimento, null);
jltipoprof.setBounds(new Rectangle(247, 136, 120, 13));
this.getContentPane().add(jltipoprof, null);

jldatanascimento.setBounds(new Rectangle(10, 74, 120, 13));
this.getContentPane().add(jldatanascimento, null);
jtdatanascimento.setBounds(new Rectangle(129, 69, 100, 21));
this.getContentPane().add(jtdatanascimento, null);

jltelresiden.setBounds(new Rectangle(231, 74, 120, 13));
this.getContentPane().add(jltelresiden, null);
jttelresiden.setBounds(new Rectangle(351, 69, 100, 21));
this.getContentPane().add(jttelresiden, null);

jltelcelular.setBounds(new Rectangle(11, 104, 95, 13));
this.getContentPane().add(jltelcelular, null);
jttelcelular.setBounds(new Rectangle(110, 99, 100, 21));
this.getContentPane().add(jttelcelular, null);

jlemail.setBounds(new Rectangle(221, 103, 57, 13));
this.getContentPane().add(jlemail, null);
jtemail.setBounds(new Rectangle(273, 98, 250, 21));
this.getContentPane().add(jtemail, null);

jlconvenio.setBounds(new Rectangle(10, 170, 60, 13));
this.getContentPane().add(jlconvenio, null);

jcconvenio.setBounds(new Rectangle(70, 166, 160, 21));
this.getContentPane().add(jcconvenio, null);

jttipoatendimento.setBounds(new Rectangle(132, 133, 25, 21));
this.getContentPane().add(jttipoatendimento, null);

jlconv.setBounds(new Rectangle(159, 128, 70, 13));
this.getContentPane().add(jlconv, null);
jlpart.setBounds(new Rectangle(157, 142, 80, 13));
this.getContentPane().add(jlpart, null);

jttipoprofissional.setBounds(new Rectangle(366, 132, 25, 21));
this.getContentPane().add(jttipoprofissional, null);
jlmed.setBounds(new Rectangle(394, 126, 65, 13));
this.getContentPane().add(jlmed, null);
jleco.setBounds(new Rectangle(393, 141, 90, 13));
this.getContentPane().add(jleco, null);

jlproc.setBounds(new Rectangle(247, 169, 90, 13));
this.getContentPane().add(jlproc, null);
jcproc.setBounds(new Rectangle(338, 165, 160, 21));
this.getContentPane().add(jcproc, null);

jlcid.setBounds(new Rectangle(5, 202, 45, 13));
this.getContentPane().add(jlcid, null);
jtcid.setBounds(new Rectangle(48, 198, 80, 21));
this.getContentPane().add(jtcid, null);

jlnumguia.setBounds(new Rectangle(135, 201, 90, 13));
this.getContentPane().add(jlnumguia, null);
jtnumguia.setBounds(new Rectangle(231, 198, 150, 21));
this.getContentPane().add(jtnumguia, null);

jlnuminscri.setBounds(new Rectangle(14, 235, 120, 13));
this.getContentPane().add(jlnuminscri, null);
jtnuminscri.setBounds(new Rectangle(141, 231, 150, 21));
this.getContentPane().add(jtnuminscri, null);

jldatavalidade.setBounds(new Rectangle(296, 235, 100, 13));
this.getContentPane().add(jldatavalidade, null);
jtdatavalidade.setBounds(new Rectangle(398, 230, 100, 21));
this.getContentPane().add(jtdatavalidade, null);

 jlnomemedico.setBounds(new Rectangle(13, 269, 100, 13));
this.getContentPane().add(jlnomemedico, null);
jcnomemedico.setBounds(new Rectangle(114, 265, 170, 21));
this.getContentPane().add(jcnomemedico, null);
jlecografista.setBounds(new Rectangle(285, 269, 75, 13));
this.getContentPane().add(jlecografista, null);
jcecografista.setBounds(new Rectangle(357, 265, 170, 21));
this.getContentPane().add(jcecografista, null);

// botões
jbincluir.setBounds(new Rectangle(6, 329, 100, 30));
this.getContentPane().add(jbincluir, null);
jbalterar.setBounds(new Rectangle(110, 329, 100, 30));
this.getContentPane().add(jbalterar, null);
jbexcluir.setBounds(new Rectangle(213, 329, 100, 30));
this.getContentPane().add(jbexcluir, null);
jbconsultar.setBounds(new Rectangle(318, 329, 100, 30));
this.getContentPane().add(jbconsultar, null);
jbimprimir.setBounds(new Rectangle(422, 329, 100, 30));
this.getContentPane().add(jbimprimir, null);



this.addWindowListener(new WindowAdapter() 
{
  public void windowClosing(WindowEvent e) 
  {
    aoFechar(e);
  }
});

}

private void aoFechar(WindowEvent e)
{
System.exit(0);
}

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

Obrigado pela colaboração de todos… valeu!!!

Olá jrroots,

Vamos lá:

-Vc não precisa de um método main dentro da sua classe regAtendimento,
apenas na sua classe clinica.

-O metodo show não é mais utilizado, e sim setVisible(true), tem uma pergunta no fórum respondendo o porquê.

-Se vc colocar System.exit(0) na classe regAtendimento, o programa fechará todo. Não acontecendo com o método dispose();

-Pergunta: JInternalFrames não seria legal para vc?

-depois disso vc tenta assim:

// Itens de menu Registrar
JMenuItem item_contr = new JMenuItem(“Atendimento”);
item_contr.setMnemonic(‘A’);
item_contr.addActionListener(this);

public void actionPerformed(ActionEvent e)
{
if (e.getSource()==item_contr)
{
regAtendimento.setVisible(true);
}
}

alguma ideia de como implementar o JINTERNALFRAME nunca trabalhei com ele… e outra coisa quando tiro o main da classe regatendimento fica dando um erro no comando
this.addWindowListener(new WindowAdapter()

o que devo fazer??? Obrigado pela grandiosa ajuda!!

Olá jrroots,

basicamente, para trabalhar com JInternalFrame vc deve:

  • Adicionar um JDesktopPane a um frame Pai. Assim:

JDesktopPane D = new JDesktopPane();

this.getContentPane().add(D);

  • Depois fazer dos seu frames => internalframes, ou seja, em vez de extends JFrame => extends JInternalFrame

Para adicionar internalframes ao frame pai basta:

D.add(regAtendimento);

  • Porque existe a necessidade de um Ouvinte WindowListener?

  • Com certeza vc não precisa de um método main na outra classe.

qq duvida é isso aí;

falow;

Olá jrroots,

basicamente, para trabalhar com JInternalFrame vc deve:

  • Adicionar um JDesktopPane a um frame Pai. Assim:

JDesktopPane D = new JDesktopPane();

this.getContentPane().add(D);

  • Depois fazer dos seu frames => internalframes, ou seja, em vez de extends JFrame => extends JInternalFrame

Para adicionar internalframes ao frame pai basta:

D.add(regAtendimento);

  • Porque existe a necessidade de um Ouvinte WindowListener?

  • Com certeza vc não precisa de um método main na outra classe.

qq duvida é isso aí;

falow;

ai agora a parada e a seguinte depois que consegui chamar os JINTERNALFRAMES no meu menu principal eles aparecem sem os botões de minimizar,maximinizar nem fechar!!! como faço para que esses botões aparecam…e outra como faço para abrir somente um internal frame já que uma vez aberto , se eu clicar no mesmo subitem do menu abre outro internal frame ou seja fico com dois iguais na tela se puder me ajudar…agradeço desde já pela preciosa ajuda!!!
Valeu Mesmo!!!111111111

Olá jrroots,

Os Botões:

seuframe.setClosable(true); //fechar
seuframe.setMaximizable(true); //maximizar
seuframe.setIconifiable(true); //minimizar

O mais interessante, e menos trabalhoso para abrir
apenas um JInternalFrame é vc desabilitar o menu
quando chamar o seu frame e somente habilitar quando
esse frame for fechado. Mas tem outros jeitos mais trabalhosos.
Tipo:

seuJDesktopPane.getAllFrames() retorna um array de
JInternalFrame e aí vc tem que verificar um por um
para ver se já existe um JInternalFrame igual aberto.

Ajudei?

falow;

primeiramente obrigado pela ajuda;… mas agora estou com outro problema…
quando faço a conexão com o banco em uma classe esta retornando o seguinte erro

unreported exception java.sql.SQLException; must be caught or declared to be thrown

alguem consegue me ajudar

só lembrando pra não sobrecarregar as paginas, postem o codigo entre as tags [ code ] e [ /code ]

[]s

Olá jrroots,

é porque a exceção não está sendo tratada no seu código.
vc deve fazer assim:

try { //seu código aqui } catch (java.sql.SQLException) { //uma mensagem aqui }

falow;

corrigindo o código:

catch (java.sql.SQLException E)
{
  //por exempo: System.out.println(E.toString());
}