Ir para conteúdo
Fórum Script Brasil

ghatien

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Sobre ghatien

ghatien's Achievements

0

Reputação

  1. Boa tarde Gosto de programar em java, apesar de não saber muito... Estou presentemente a fazer um programa (como hobbie) que é uma base de dados mas com janelas... após ler alguns tutoriais e programas feitos consegui desenvolver a minha frame com os diversos paineis. A maneira, que eu pensei ser a certã, para fazer funcionar o programa é: Tenho a penas uma JFame. Há medida que os botões são cliclados, retiro o JPanel activo no Jframe (com a acção frame.getContentsPane().removeAll()) e adiciono o novo painel com os novos botões... No inicio parecia que tudo estava a funcionar correctamente mas agora que estou a começar a inserir os valores deparei-me com vários problemas. O primeiro ( e penso que o responsável por todos os outros) é que, quando carrego a primeira vez num botão ele faz correr o actionPerformed(actionEvent e) uma vez. Quando carrego pela segunda vez num botão, o actionPerformed corre duas vezes até encontrar o botão accionado, três vezes corres três vezes e assim sucessivamente... qual a razão para isto acontecer? alguém sabe? Fica aqui um bocado do actionPerformed: public void actionPerformed(ActionEvent event) { Object src = event.getSource(); if(src==buttonConsultar) Consultar(); if(src==buttonVoltarInicio) inicio(); } Este não é o código do meu programa (pois ele é bastante grande) mas é um programa parecido, mais simples, e com o mesmo problema. A variavel int x é só para ajudar a perceber quantas vezes ele corre o actionlistener até encontrar o botao accionado. O system.out.println() foi para conseguir ver. import java.lang.*; import java.awt.*; import java.awt.event.*; import java.util.*; import javax.swing.*; public class Main implements ActionListener{ static JFrame frame; int x=0; JButton button1 = new JButton("1"); JButton button2 = new JButton("2"); JLabel labelTeste = new JLabel("Teste", JLabel.CENTER); public Main(){ JPanel painel = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.gridx = 0; c.gridy=1; button1.addActionListener(this); painel.add(button1,c); c.gridx=0; c.gridy=0; c.gridwidth=2; painel.add(labelTeste,c); frame.getContentPane().add(painel, BorderLayout.CENTER); frame.pack(); frame.setVisible(true); } public void botao1(){ frame.getContentPane().removeAll(); JPanel painel = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.gridx = 0; c.gridy=1; button1.addActionListener(this); painel.add(button1,c); c.gridx=0; c.gridy=0; c.gridwidth=2; painel.add(labelTeste,c); frame.getContentPane().add(painel, BorderLayout.CENTER); frame.pack(); frame.setVisible(true); } public void botao2(){ frame.getContentPane().removeAll(); JPanel painel = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.gridx = 0; c.gridy=1; button2.addActionListener(this); painel.add(button2,c); c.gridx=0; c.gridy=0; c.gridwidth=2; painel.add(labelTeste,c); frame.getContentPane().add(painel, BorderLayout.CENTER); frame.pack(); frame.setVisible(true); } public void actionPerformed(ActionEvent event) { Object src = event.getSource(); if(src==button1) botao2(); if(src==button2) botao1(); System.out.println("actionlistener "+x); x++; } public static void start(){ JFrame.setDefaultLookAndFeelDecorated(true); Main start2 = new Main(); } public static void main(String[] args) { frame = new JFrame("Hanovia"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); javax.swing.SwingUtilities.invokeLater(new Runnable() { public void run(){ start(); } }); } }
×
×
  • Criar Novo...