Java - Design Gráfico

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 :)
 
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
 
Back
Topo