1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Java - Design Gráfico

Discussão em 'Programação' iniciada por Syk3r, 10 de Dezembro de 2007. (Respostas: 1; Visualizações: 1200)

  1. Syk3r

    Syk3r I quit My Job for Folding

    Código:
    public class GUI extends JFrame{
        
        ArrayList AL = new ArrayList();
        
        public GUI(String titulo) {
            super(titulo);
            
            
            JMenuBar barra = new JMenuBar();
            
            JMenu cri = new JMenu("Criação");
            JMenu man = new JMenu("Manutenção");
            JMenu gest = new JMenu("Gestão");
            
            JMenuItem mi1 = new JMenuItem("Patrao");
            JMenuItem mi2 = new JMenuItem("Trab. a Hora");
            JMenuItem mi3 = new JMenuItem("Trab. a Comissão");
            JMenuItem mi4 = new JMenuItem("Alterar");
            JMenuItem mi5 = new JMenuItem("Eliminar");
            JMenuItem mi6 = new JMenuItem("Listar");
            
            TrataEv t = new TrataEv();
                   
            mi1.addActionListener(t);
            mi2.addActionListener(t);
            mi3.addActionListener(t);
            mi4.addActionListener(t);
            mi5.addActionListener(t);
                    
            
            cri.add(mi1);
            cri.add(mi2);
            cri.add(mi3);
            man.add(mi4);
            man.add(mi5);
            gest.add(mi6);
            
            barra.add(cri);
            barra.add(man);
            barra.add(gest);
            
            setJMenuBar(barra);
            
            this.setSize(400, 300);
            this.setVisible(true);
            addWindowListener(new Terminator());
        }
        
        
        
        class TrataEv implements ActionListener {  // Classe interna
            
            public void actionPerformed(ActionEvent e){
                
                if (e.getSource() instanceof JMenuItem) {
                    
                    [B][U]if(e.getActionCommand().equals("Patrao")) {
                        Dialog1 d1 = new Dialog1(GUI.this, "Patrao", true);[/U][/B]
                    } 
                }
            }
        }
        class Terminator extends WindowAdapter {     //Classe interna
          
    	   public void windowClosing(WindowEvent e) {
    	      dispose(); 
    	   }
    	}
    }
    
    class Dialog1 extends JDialog
    {
        [B][U]ArrayList AL = new ArrayList();[/U][/B]
        JTextField txt2, txt4;
        JLabel txt1, txt3;
        JButton ok, cancel;
        public Dialog1(GUI g1, String titulo, boolean modal)
        {
            super(g1, titulo, modal);
            this.setSize(200, 120);
            
            txt1 = new JLabel("Nome:");
            txt2 = new JTextField("", 10);
            txt2.setEditable(true);
            txt3 = new JLabel("Salário:");
            txt4 = new JTextField("", 10);
            txt4.setEditable(true);
            ok = new JButton("Ok");
            cancel = new JButton("Cancelar");
            ok.addActionListener(new criar());
            
            
            Container c = getContentPane();
            c.setLayout(new FlowLayout());
    	c.add(txt1);
    	c.add(txt2);
    	c.add(txt3);
            c.add(txt4);
            c.add(ok);
            c.add(cancel);
            addWindowListener(new Terminator());
            this.setVisible(true);
        }
        
        class Terminator extends WindowAdapter {     //Classe interna
          
    	   public void windowClosing(WindowEvent e) {
    	      dispose(); 
    	   }
    	}
        
        class criar implements ActionListener
        {
            public void actionPerformed (ActionEvent e)
            {
                if (e.getSource() instanceof JButton)
                {
                    String nome = txt2.getText();
                    int sal = Integer.parseInt(txt4.getText());
                    Trabalhador t = new Patrao(nome, sal);
                    [B][U]AL.add(t);[/U][/B]
                    JOptionPane.showMessageDialog(null, AL);
                }
                    
            }
        }
        
    }
    Ora bem, a minha dúvida é a seguinte: Precisava que o ArrayList AL fosse uma variável que fosse alterada em ambas as classes. Sim, isto é o mesmo .java e a classe Dialog1 está fora da classe GUI. Manias de fazer GUI's à pata :rolleyes:

    PS: Há pequenas coisas que estão mal feitas, ou por fazer, eu sei disso mas a minha dúvida é só aquela. Agracedia que se não se desviassem muito :)
     
  2. Consu

    Consu Power Member

    Não sei ao certo o que queres dizer com alterada em ambas as classes. Se percebi bem, podes fazê-lo pelo menos de duas maneiras:

    1 - Usar o mesmo objecto e ter uma referência em cada classe.
    2 - Uma classe possuir um método que permita à outra aceder.

    Se não tem nada a ver, tenta ser um pouco mais claro para ver se consigo ajudar. :p
     

Partilhar esta Página