001 /* JAPI - (Yet another (hopefully) useful) Java API 002 * 003 * Copyright (C) 2004-2006 Christian Hujer 004 * 005 * This program is free software; you can redistribute it and/or 006 * modify it under the terms of the GNU General Public License as 007 * published by the Free Software Foundation; either version 2 of the 008 * License, or (at your option) any later version. 009 * 010 * This program is distributed in the hope that it will be useful, but 011 * WITHOUT ANY WARRANTY; without even the implied warranty of 012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 013 * General Public License for more details. 014 * 015 * You should have received a copy of the GNU General Public License 016 * along with this program; if not, write to the Free Software 017 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 018 * 02111-1307, USA. 019 */ 020 021 package net.sf.japi.swing; 022 023 import java.awt.BorderLayout; 024 import java.io.File; 025 import javax.swing.JComponent; 026 import javax.swing.JTextField; 027 import javax.swing.JFileChooser; 028 029 /** A class that displays a textfield for a file and a button for choosing the file. 030 * @author <a href="mailto:chris@riedquat.de">Christian Hujer</a> 031 */ 032 public final class JFileField extends JComponent { 033 034 /** The JTextField used to display the filename. 035 * @serial include 036 */ 037 private final JTextField textField; 038 039 /** Create a FileField. 040 * @param size Number of columns for the textfield part. 041 */ 042 public JFileField(final int size) { 043 textField = new JTextField(size); 044 final JFileChooserButton button = new JFileChooserButton(textField, JFileChooser.FILES_ONLY); 045 setLayout(new BorderLayout()); 046 add(textField, BorderLayout.CENTER); 047 add(button, BorderLayout.LINE_END); 048 } 049 050 /** Create a FileField. 051 * @param size Number of columns for the textfield part. 052 */ 053 public JFileField(final JFileChooser fileChooser, final int size) { 054 textField = new JTextField(size); 055 final JFileChooserButton button = new JFileChooserButton(fileChooser, textField, JFileChooser.FILES_ONLY); 056 setLayout(new BorderLayout()); 057 add(textField, BorderLayout.CENTER); 058 add(button, BorderLayout.LINE_END); 059 } 060 061 /** Return the selected file. 062 * @return selected file 063 */ 064 public File getSelectedFile() { 065 return new File(textField.getText()); 066 } 067 068 /** Return the selected filename. 069 * @return selected filename 070 */ 071 public String getSelectedFilename() { 072 return textField.getText(); 073 } 074 075 } // class FileField