olá pessoal sou iniciante na linguagem e estou querendo que ao clicar num dos itens do meu, seja chamado um determinado método da minha classe, abaixo esta o codigo fonte que nao funciona, qualquer ajuda eh bem vinda, obrigado…
importjavax.swing.*;importjava.awt.*;publicclassHelloWorldFrame{publicvoidcadForn(){JFramejanela2=newJFrame("Janela com menu");janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JLabelteste=newJLabel("teste de janela");janela2.add(teste);janela2.setSize(500,500);janela2.setVisible(true);}publicstaticvoidmain(Stringargs[]){JFramejanela=newJFrame("Janela com menu");janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JMenuBarmenuBar=newJMenuBar();JMenuCadastro=newJMenu("Cadastro");JMenuProdutos=newJMenu("Produtos");JMenuCotacoes=newJMenu("Cotações");JMenuSobre=newJMenu("Sobre");menuBar.add(Cadastro);menuBar.add(Produtos);menuBar.add(Cotacoes);menuBar.add(Sobre);JMenuItemFornecedor=newJMenuItem("Fornecedor");Fornecedor.addMouseListener(newjava.awt.event.MouseAdapter(){publicvoidmouseClicked(){CadFornframe2=newCadForn();}});Cadastro.add(Fornecedor);janela.setJMenuBar(menuBar);janela.setSize(500,500);janela.setVisible(true);}}
e outra duvida é como faria se ao inves de um metodo dentro da clase quizese chamar uma outra classe que está em outro arquivo .java.
O problema é que para capturar um evento desse tipo que você descreveu, não é através de MouseListener, e sim um ActionListener.
Faça da mesma forma, mas troque a classe de acordo com o que lhe disse acima e depois implemente o método acionPerformed(ActionEvent e).
Qualquer coisa dá o toque…
[]'s.
W
walterti
cara funcionou akilo que vc disse mas surgiram outras duvidas…
uma delas…
simplesmente nao funciona, da erro ao compilar e eu fiz o import java.awt.*;
outra duvida…
Fornecedor.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEvente){JInternalFramejanela2=newJInternalFrame("Internal",true,true,true,true);janela2.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);JLabelteste=newJLabel("Teste de chamada");janela2.add(teste);janela2.setSize(300,300);janela2.setVisible(true);janela.add(janela2);}});
queria colocar esse codigo em uma funçao e chamar apenas a função dentro do actionlistener
mas como fazer isso utilizando uma função a parte??
R
Rafael_Lima
Quando eu uso esse código ele diz que o Calcular não pode ser resolvido
botaoCalcular.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(ActionEvente){Calcular();//nome da classe criada no mesmo pacote }
O que será que está acontecendo?
obs: o método calcular esta no mesmo pacote
W
walterti
é possivel criar um internal frame a partir de uma função a parte??? e como seria a inserção desse internalframe em um frame???
Marky.Vasconcelos
Rafael Lima:
Quando eu uso esse código ele diz que o Calcular não pode ser resolvido
botaoCalcular.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(ActionEvente){Calcular();//nome da classe criada no mesmo pacote }
O que será que está acontecendo?
obs: o método calcular esta no mesmo pacote
Está no mesmo pacote ou na mesma classe?
Para criar uma nova classe não se esqueça do new
E se for chamar um método statico (static) use Calcular.calcular();
W
walterti
decidi postar meu codigo como está agora pra deixar mais claro qual o meu problema agora…
desde já agradeço a ajuda dispensada…
importjavax.swing.*;importjava.awt.*;publicclassHelloWorldFrame{publicvoidCadForn(){JInternalFramejanela2=newJInternalFrame("Janela Interna",true,true,true,true);janela2.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);JLabelteste=newJLabel("Teste de chamada");janela2.add(teste);janela2.setSize(300,300);janela2.setVisible(true);}publicstaticvoidmain(Stringargs[]){finalJFramejanela=newJFrame("Janela com menu");janela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);JMenuBarmenuBar=newJMenuBar();JMenuCadastro=newJMenu("Cadastro");JMenuProdutos=newJMenu("Produtos");JMenuCotacoes=newJMenu("Cotações");JMenuSobre=newJMenu("Sobre");menuBar.add(Cadastro);menuBar.add(Produtos);menuBar.add(Cotacoes);menuBar.add(Sobre);JMenuItemFornecedor=newJMenuItem("Fornecedor");Fornecedor.addActionListener(newjava.awt.event.ActionListener(){publicvoidactionPerformed(java.awt.event.ActionEvente){/*como chamar a função CadForn() aki dentro??? e como adcionarei a jinternalframe ao frame principal??*/}});Cadastro.add(Fornecedor);janela.setJMenuBar(menuBar);janela.setSize(500,500);janela.setVisible(true);}}
LG11
Já pensou em torna-la privada? Caso dê algum erro… torne-a static. seguindo os 2 exemplos abaixo:
1.
public class HelloWorldFrame{
private JInternalFrame janela2 = new JInternalFrame("Janela Interna", true, true, true, true);
public void CadForn(){
2.