Über Buttonverzeichnis auswählen --> Pfadangeben in Textfield

Polli

Mitglied
Hallöchen,

ich wollte mal fragen ob mir jemand sagen kann wie ich es hinbekomme, wenn ich über den Button eine Datei aussuche und das der Pfad der Datei dann im Textfeld erscheint.

Ich hab da auch schon was vorbereitet, damit ihr seht wie weit ich schon gekommen bin :)

Code:
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.filechooser.FileFilter;


public class ButText 
{
    JFrame f = new JFrame(); 
    Container c = f.getContentPane(); 
    static GridBagLayout gbl = new GridBagLayout(); 

	ActionListener open = new ActionListener()
	{
		public void actionPerformed(ActionEvent e)
		{
		    JFileChooser fc = new JFileChooser(); 
		    fc.setFileFilter( new FileFilter() 
		    { 
		      @Override public boolean accept( File f ) 
		      { 
		        return f.isDirectory() || 
		          f.getName().toLowerCase().endsWith( ".txt");
		      } 
		      @Override public String getDescription() 
		      { 
		        return "Text"; 
		      } 
		    } ); 
		 
		    int state = fc.showOpenDialog( null ); 
		 
		    if ( state == JFileChooser.APPROVE_OPTION ) 
		    { 
		      File file = fc.getSelectedFile(); 
		      file.getAbsoluteFile();
		      System.out.println( file.getName() );
		      System.out.println( file.toURI().toString());
		    } 
		}
	};

	//ÜBERSCHRIFT
	JLabel Ueschrift = new JLabel("<html><FONT SIZE = 6><u>Überschrift</u></font></html>");
	
	//TextFeld
	JTextField A  = new JTextField();
	
	//IMAGE
    final Icon smallIcon = new ImageIcon( JMenu.class.getResource("/images/magnifier.png") );
   
    //Button
	JButton LupeA 	 = new JButton(smallIcon)  	;

	public void ButtonPress()
	{
		LupeA.addActionListener(open)  ;
	}
	
	public void init()
	{
	    f.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE ); 
	    c.setLayout( gbl ); 
		f.pack();
		f.setVisible(true);
		f.setLocation(128, 128);
		f.setSize( 350, 150 );
		f.setVisible( true );
	}
	
	static void addComponent( Container cont, 
			GridBagLayout gbl, 
			Component c, 
			int x, int y, 
			int width, int height, 
			int ipadx, int ipady,
			double weightx,
			Insets insets
			) 
	{ 
		GridBagConstraints gbc = new GridBagConstraints(); 
		gbc.fill = GridBagConstraints.VERTICAL; 
		gbc.insets = insets;
		gbc.gridx = x; gbc.gridy = y; 
		gbc.gridwidth = width; gbc.gridheight = height; 
		gbc.ipadx = ipadx; gbc.ipady = ipady;
		gbl.setConstraints( c, gbc ); 
		gbc.anchor = GridBagConstraints.WEST;
		cont.add( c ); 
	} 

    public void GridBLayout()
    {
		addComponent( c, gbl, Ueschrift,   0,  0, 16, 1,   0,  0, 1.0, new Insets( 0, 0,20, 0));
		
		addComponent( c, gbl, A,  	       11, 3,  4, 1, 250, 0, 0.1, new Insets( 0, 0, 0, 0));
		addComponent( c, gbl, LupeA, 	   15, 3,  1, 1,   0, 0, 0.0, new Insets( 0, 0, 0, 10));
    }
    
    public void run()
    {
		init();
		GridBLayout();
		ButtonPress();
	}
	  public static void main( String[] args ) 
	  { 
		  ButText L = new ButText();
		  L.run();
	  }

}

Ich hoffe ihr könnt mir weiter helfen :)

Wenn es zu ungenau beschrieben wurde, bitte einfach fragen ;)
 
Hallo,

kann es sein, dass es nicht dein Quelltext ist?

Du verschiebst das Textfield mal über den ActionListener.
Code:
A.setText(file.getAbsolutePath)

MFG

Sascha
 
Ach ne, hab ich verguckt. Brauchst nichts zu verschieben.
Füge einfach die Zeile die ich oben gepostet habe da ein, wann du möchtest, dass der Pfad im Textfeld steht.

MFG

Sascha
 
Zurück