Instancia de Objeto!

0 respostas
M

Olá pessoal, o q ocorre com o programa de estou desenvolvendo é o seguinte: tenho uma classe chamada: Atual, e nesta classe o metodo AnalyzePath ( ), o mesmo utiliza-se do JFileChooser(metodo getFile()), para chamar a janela para selecionarmos o diretório onde estão os arquivos. Até ai tudo bem, funciona perfeitamente, inclusive através do getPath() eu escrevo o caminho no JTextField(Cam), adiciono os arquivos do diretório em um vector e exibo em uma lista. TUDO OK.

O PROBLEMA: quando instancio a classe Atual o metodo AnalyzePath pela classe Settings, ele até abre a janela para escolha do diretório, eu seleciono e através do método PathProf(String path), recebo o caminho, do diretório e até imprimo, o que acontece e que não consigo escrever na no JTextFileld o caminho. Por favor me ajudem.
//Settings//
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;

public class Settings extends JFrame implements ActionListener{
	JPanel contentPane;
	JLabel jLabelPath = new JLabel ();
    JTextField jTextPath = new JTextField();
    JButton jButtonPath = new JButton();
    JTextArea jTextArea = new JTextArea();
	Atual IO = new Atual();
	
	public Settings() {
    	
    	try {
            jbInit();
        } catch (Exception exception) {
            exception.printStackTrace();
        }
	}
	private void jbInit() throws Exception {
	    contentPane = (JPanel) getContentPane();
	    contentPane.setLayout(null);
	    setSize(new Dimension(550, 350));
	    setTitle("Teacher Analyst - Propriedades");
	    setResizable(false);
	    jTextArea.setFont(new Font ("Tahoma", Font.BOLD, 15));
	    jTextArea.setText("\n"+"        "+"Propriedades do Sistema");
	    jTextArea.setBounds(0, 0, 550, 69);
	    jTextArea.setEditable(false);
	    jLabelPath.setText("Path para Curriculos de Professores:");
	    jButtonPath.setText("Alterar");
	    jTextPath.setEnabled(false);
	    jLabelPath.setBounds(50, 70, 200, 20);
	    jTextPath.setBounds(50, 90, 350, 20);
	    jButtonPath.setBounds(405, 90, 90, 20);
	    contentPane.add(jLabelPath);
	    contentPane.add(jButtonPath);
	    contentPane.add(jTextPath);
	    contentPane.add(jTextArea);
	    jButtonPath.addActionListener(this);
	}
	public void PathProf (String path) {
		System.out.print(path);
		jTextPath.setText(path);
	}
	public void actionPerformed ( ActionEvent e ) {
		if ( e.getSource() == jButtonPath ) {
			IO.analyzePath();	
		}
	}
}
//Atual//
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.*;
import java.io.File;
import java.util.*;

public class Atual extends JFrame implements ActionListener {
	JPanel contentPane;
	JButton Pass1 = new JButton();
	JButton Pass2 = new JButton();
	JButton Pass3 = new JButton();
	JButton Pass4 = new JButton();
	JButton Atualist = new JButton();
	JButton Proc = new JButton();
	JButton AtualProf = new JButton();
	JLabel End = new JLabel ();
	JTextField Cam = new JTextField();
	JList lista1 = new JList();
	JList lista2 = new JList();
	JScrollPane JanA = new JScrollPane(lista1);
	JScrollPane JanB = new JScrollPane(lista2);
	Vector<Object> l1 = new Vector<Object>();
	Vector<Object> l2 = new Vector<Object>();
	
	public Atual() {

	    	try {
	            jbInit();
	        } catch (Exception exception) {
	            exception.printStackTrace();
	        }
}

private void jbInit() throws Exception {
    contentPane = (JPanel) getContentPane();
    contentPane.setLayout(null);
    setSize(new Dimension(598, 400));
    setResizable(false);
    setTitle("Teacher Analyst - Inclusão/Atualização");
    lista1.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
    // texto
    Pass1.setText(">");
    Pass2.setText("<");
    Pass3.setText(">>");
    Pass4.setText("<<");
    End.setText("Path:");
    Proc.setText("Procurar");
    AtualProf.setText("Atualizar Professor");
    Atualist.setText("Atualizar Lista");
    // tamanho
    Pass1.setBounds(270, 120, 50, 30);
    Pass2.setBounds(270, 160, 50, 30);
    Pass3.setBounds(270, 200, 50, 30);
    Pass4.setBounds(270, 240, 50, 30);
    End.setBounds(20, 20, 80, 20);
    Cam.setBounds(50, 20, 425, 20);
    Cam.setEnabled(false);
    Proc.setBounds(480, 17, 90, 25);
    AtualProf.setBounds(385, 340, 150, 20);
    AtualProf.setBackground(Color.ORANGE);
    Atualist.setBounds(75, 340, 120, 20);
    JanA.setBounds(10, 80, 240, 250);
    JanB.setBounds(340, 80, 240, 250);
    lista1.setBounds(10, 80, 240, 250);
    lista1.setFixedCellHeight( 15 );
    lista1.setFixedCellWidth(100);
    lista2.setBounds(340, 80, 240, 250);
    lista2.setFixedCellHeight( 15 );
    lista2.setFixedCellWidth(100);
    // adicionando ao frame
    contentPane.add(Pass1);
    contentPane.add(Pass2);
    contentPane.add(Pass3);
    contentPane.add(Pass4);
    contentPane.add(End);
    contentPane.add(Cam);
    contentPane.add(Proc);
    contentPane.add(AtualProf);
    contentPane.add(Atualist);
    contentPane.add(JanA);
    contentPane.add(JanB);
    // Definindo ActionListener
    Proc.addActionListener(this);
    Atualist.addActionListener(this);
    Pass1.addActionListener(this);
    Pass2.addActionListener(this);
    Pass3.addActionListener(this);
    Pass4.addActionListener(this);
}
	public File getFile () {
		JFileChooser fileChooser = new JFileChooser();
		fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
		int result = fileChooser.showOpenDialog(this);
		File fileName = fileChooser.getSelectedFile();
		return fileName;
	}
	public void analyzePath ( ) {
		
		File name = getFile();
			
		if ( name.exists() && name.isDirectory() == false) { // se o nome existir, dá saída das informações sobre ele
				JOptionPane.showMessageDialog(this, "O caminho indica um arquivo, não um diretório\nLocalize um caminho válido!", 
						"ERRO", JOptionPane.ERROR_MESSAGE);
				analyzePath();
		}// fim o if externo	
		if ( name.isDirectory() ) { // listagem do diretório de saída
				
				String directory[] = name.list();
				Settings settings = new Settings();
				settings.PathProf( name.getPath() );
				
				l1.clear();
				for ( String directoryName : directory ) {
					if (directoryName.toLowerCase().endsWith(".xml")) {
					l1.addElement(directoryName);
					Cam.setText( name.getPath() );
					}
					}
				if (l1.isEmpty()) {
					JOptionPane.showMessageDialog(this, "Não foi localizado neste diretório nenhum arquivo XML\nLocalize um que contenha arquivos XML", "ERRO", 
							JOptionPane.ERROR_MESSAGE);
					analyzePath();
				}
		}// fim if		
		if (name.exists() == false && name.isDirectory() == false){ // se não for arquivo ou diretório, mensagem de erro
				JOptionPane.showMessageDialog( this, name + " Diretório não existe! ", "ERRO", JOptionPane.ERROR_MESSAGE );
			}// fim if
		lista1.setListData(l1);
		}
		public void analyzePathValid ( String path ) {
		
			File name = new File ( path );
		
		if ( name.exists() && name.isDirectory() == false) { // se o nome existir, dá saída das informações sobre ele
				
				JOptionPane.showMessageDialog(this, "O caminho indica um arquivo, não um diretório\nDigite um caminho válido!", 
						"ERRO", JOptionPane.ERROR_MESSAGE);
				analyzePath();
		}// fim o if externo	
		if ( name.isDirectory() ) { // listagem do diretório de saída
				String directory[] = name.list();
				l1.clear();
				for ( String directoryName : directory ){
					if (directoryName.toLowerCase().endsWith(".xml")) {
					l1.addElement(directoryName);
					}
				}
				
		
		}// fim if		
		if (name.exists() == false && name.isDirectory() == false){ // se não for arquivo ou diretório, mensagem de erro
				JOptionPane.showMessageDialog( this, name + " Diretório não existe! ", "ERRO", JOptionPane.ERROR_MESSAGE );
			}// fim if
		lista1.setListData(l1);
		}
		public void actionPerformed ( ActionEvent e ) {// escuta o evento do clique no botão
    	if (e.getSource() == Proc) { // botão Pesquisa
    		analyzePath();// chama analyzePath()
    	}
    	if (e.getSource() == Atualist){ // botão Atualizar lista1 
    		analyzePathValid( Cam.getText() );// chama analyzePathValid
    	}
    	if (e.getSource() == Pass1) {
    		
    		
    		Object[] temp = lista1.getSelectedValues();
    		for ( int i = 0; i < temp.length; i++){
    			l2.addElement(temp[i]);
    			l1.removeElement(temp[i]);
    			Atualist.setEnabled(false);
        		Proc.setEnabled(false);
    		}
    		lista1.setListData(l1);
    		lista2.setListData(l2);
    		}
    	if (e.getSource() == Pass2) {
    		
    		Object[] temp = lista2.getSelectedValues();
    		for ( int i = 0; i < temp.length; i++){
    			l1.addElement(temp[i]);
    			l2.removeElement(temp[i]);
    		}
    		lista1.setListData(l1);
    		lista2.setListData(l2);
    			if(lista2.getModel().getSize() == 0){
    				Atualist.setEnabled(true);
        	        Proc.setEnabled(true);	
        		}
    	}
    	if (e.getSource() == Pass3 ){
    	   	
    		l2.addAll(l1);
			l1.clear();
    		lista1.setListData(l1);
			lista2.setListData(l2);	
			Atualist.setEnabled(false);
	        Proc.setEnabled(false);	
    	}
		if (e.getSource() == Pass4 ){
			l1.addAll(l2);
			l2.clear();
			lista1.setListData(l1);
			lista2.setListData(l2);
			Atualist.setEnabled(true);
	        Proc.setEnabled(true);	
		}
		}
Criado 2 de outubro de 2006
Respostas 0
Participantes 1