📄 textfieldandfilechoosercomponent.java
字号:
/* * Created on 01.05.2005 */package net.sourceforge.ganttproject.gui;import java.awt.Component;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.File;import javax.swing.Box;import javax.swing.ImageIcon;import javax.swing.JFileChooser;import javax.swing.JLabel;import javax.swing.JTextField;import javax.swing.filechooser.FileFilter;import net.sourceforge.ganttproject.language.GanttLanguage;/** * @author bard */public class TextFieldAndFileChooserComponent { private TestGanttRolloverButton myChooserButton; private JTextField myTextField; private File myFile; private FileFilter myFileFilter; private String myDialogCaption; private Component myComponent; private Component myParentComponent; private int myFileSelectionMode = JFileChooser.FILES_AND_DIRECTORIES; public TextFieldAndFileChooserComponent(final Component parentComponent, String dialogCaption) { myDialogCaption = dialogCaption; myParentComponent = parentComponent; initComponents(); } public TextFieldAndFileChooserComponent(String label, String dialogCaption) { Box innerBox = Box.createHorizontalBox(); innerBox.add(new JLabel(label)); innerBox.add(Box.createHorizontalStrut(2)); myParentComponent = innerBox; myDialogCaption = dialogCaption; initComponents(); innerBox.add(myComponent); myComponent = innerBox; } private void initComponents() { myChooserButton = new TestGanttRolloverButton(new ImageIcon(getClass() .getResource("/icons/open_16.gif"))); myTextField = new JTextField(); myTextField.setColumns(40); myTextField.setEditable(false); Box box = Box.createHorizontalBox(); box.add(myTextField); box.add(myChooserButton); myComponent = box; myChooserButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { showFileChooser(); } }); } public Component getComponent() { return myComponent; } public File getFile() { return myFile; } public void setFile(File file) { myFile = file; myTextField.setText(file == null ? "" : file.getAbsolutePath()); } public void setFileFilter(FileFilter filter) { myFileFilter = filter; } public void showFileChooser() { System.out.println(myTextField.getText()); JFileChooser fc = new JFileChooser(new File(myTextField.getText())); fc.setDialogTitle(myDialogCaption); fc.setApproveButtonToolTipText(myDialogCaption); fc.setFileSelectionMode(myFileSelectionMode); // Remove the possibility to use a file filter for all files FileFilter[] filefilters = fc.getChoosableFileFilters(); for (int i = 0; i < filefilters.length; i++) { fc.removeChoosableFileFilter(filefilters[i]); } fc.addChoosableFileFilter(myFileFilter); int returnVal = fc.showDialog(myParentComponent, GanttLanguage .getInstance().getText("ok")); if (returnVal == JFileChooser.APPROVE_OPTION) { onFileChosen(fc.getSelectedFile()); } } protected void onFileChosen(File file) { myFile = file; myTextField.setText(myFile.getAbsolutePath()); } public void setFileSelectionMode(int mode) { myFileSelectionMode = mode; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -