oi pessoal, to com um probleminha, não consigo entender o porque dos items de menu não estão funcionando, coloquei os System.exit(0) só para testar, mas não teve jeito…
Ewerson Silva
oi pessoal, to com um probleminha, não consigo entender o porque dos items de menu não estão funcionando, coloquei os System.exit(0) só para testar, mas não teve jeito…
Ewerson Silva
Pelo que ja implementei somente os JMenuItem podem gerar ação.
Da uma olhadinha no código
[code]
import javax.swing.;
import java.awt.;
import java.awt.event.*;
public class CNumerico extends JFrame{
Container c=getContentPane();
JMenuBar jmbPrincipal;
JMenu jmCadastro;
JMenuItem jmiSair, jmiMetodoBissecao, jmiFornecedor, jmiBairro, jmiProduto;
JLabel labelA, labelB, labelN;
JTextField campoA, campoB, campoN;
JPanel painelDado, painelBotao;
GridLayout layoutDado;
JSeparator separador;
public CNumerico(){
super("CNumerico - Salvador da Pátria");
setSize(800,600);
c.setLayout(new BorderLayout());
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false);
setJMenuBar(getMenu());
show();
jmiBairro.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
if (e.getSource()==jmiBairro){
System.exit(0);
}
if (e.getSource()==jmiMetodoBissecao){
System.exit(0);
}
if (e.getSource()==jmiFornecedor){
System.exit(0);
}
if (e.getSource()==jmiProduto){
System.exit(0);
}
if (e.getSource()==jmiSair){
System.exit(0);
}
}
}
);
}
private JMenuBar getMenu(){
jmbPrincipal = new JMenuBar();
jmCadastro = new JMenu(“Cadastro”);
jmiBairro = new JMenu(“Bairro”);
jmiMetodoBissecao = new JMenu(“Método da Bisseção”);
jmiFornecedor = new JMenu(“Fornecedor”);
jmiProduto = new JMenu(“Produto”);
separador = new JSeparator();
jmiSair = new JMenuItem(“Sair”);
jmbPrincipal.add(jmCadastro);
jmCadastro.add(jmiBairro);
jmCadastro.add(jmiMetodoBissecao);
jmCadastro.add(jmiFornecedor);
jmCadastro.add(jmiProduto);
jmCadastro.add(separador);
jmCadastro.add(jmiSair);
return jmbPrincipal;
}
public static void main(String[] args){
new CNumerico();
}
}[/code]
tenta chamar o metodo show() depois de adicionar o actionlistener… pq o show() vai “segurar” a thread enquanto a janela estiver aberta, e portando o actionlistener so sera adicionado depois da janela fechar…
Tentei… mas não funcionou…
Ja tento o metodo
setvisible( true );
so q coloca ele no fim do construtor!!
mudei um pouco o código, consegui fazer só um funcionar os outros não. o que está funcionando e o jmiSair, os outros nada. o código que modifiquei ta ai…
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CNumerico extends JFrame implements ActionListener{
Container c=getContentPane();
JMenuBar jmbPrincipal;
JMenu jmCadastro;
JMenuItem jmiSair, jmiMetodoBissecao, jmiFornecedor, jmiBairro, jmiProduto;
JLabel labelA, labelB, labelN;
JTextField campoA, campoB, campoN;
JPanel painelDado, painelBotao;
GridLayout layoutDado;
JSeparator separador;
public CNumerico(){
super("CNumerico - Salvador da Pátria");
setSize(800,600);
c.setLayout(new BorderLayout());
setDefaultCloseOperation(EXIT_ON_CLOSE);
setResizable(false);
setJMenuBar(getMenu());
show();
jmiBairro.addActionListener(this);
jmiMetodoBissecao.addActionListener(this);
jmiFornecedor.addActionListener(this);
jmiProduto.addActionListener(this);
jmiSair.addActionListener(this);
}
private JMenuBar getMenu(){
jmbPrincipal = new JMenuBar();
jmCadastro = new JMenu("Cadastro");
jmiBairro = new JMenu("Bairro");
jmiMetodoBissecao = new JMenu("Método da Bisseção");
jmiFornecedor = new JMenu("Fornecedor");
jmiProduto = new JMenu("Produto");
separador = new JSeparator();
jmiSair = new JMenuItem("Sair");
jmbPrincipal.add(jmCadastro);
jmCadastro.add(jmiBairro);
jmCadastro.add(jmiMetodoBissecao);
jmCadastro.add(jmiFornecedor);
jmCadastro.add(jmiProduto);
jmCadastro.add(separador);
jmCadastro.add(jmiSair);
return jmbPrincipal;
}
public static void main(String[] args){
new CNumerico();
}
public void actionPerformed(ActionEvent e){
if (e.getSource()==jmiBairro){
System.exit(0);
}
if (e.getSource()==jmiMetodoBissecao){
System.exit(0);
}
if (e.getSource()==jmiFornecedor){
System.exit(0);
}
if (e.getSource()==jmiProduto){
System.exit(0);
}
if (e.getSource()==jmiSair){
System.exit(0);
}
}
}
Ewerson
não teve jeito, não consegui…
Ewerson
coloque:
if(e.get.....)
método
else if(....)
método
else if(....)
método
assim vai…
Nos meus programas, inclusive um que estou fazendo, eu usei como o linh4res colocou e deu certo…
ja consegui valeu…
eu tava criando um JMenu e tinha que ser um JMenuItem…
valew…
Ewerson