⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 textexportfilechooser.java

📁 编辑视频文件
💻 JAVA
字号:
/* * File:     TextExportFileChooser.java * Project:  MPI Linguistic Application * Date:     02 May 2007 * * Copyright (C) 2001-2007  Max Planck Institute for Psycholinguistics * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */package mpi.eudico.client.annotator.gui;import mpi.eudico.client.annotator.ElanLocale;import java.awt.BorderLayout;import java.awt.Component;import java.awt.Container;import java.awt.Frame;import java.awt.GridBagConstraints;import java.awt.GridBagLayout;import java.awt.GridLayout;import java.awt.HeadlessException;import java.awt.Insets;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.File;import javax.swing.JButton;import javax.swing.JComboBox;import javax.swing.JComponent;import javax.swing.JDialog;import javax.swing.JFileChooser;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JTextField;import javax.swing.SwingUtilities;import javax.swing.filechooser.FileFilter;/** * A custom save dialog that adds a combo box to select an encoding for  the * text file. * * @author Han Sloetjes * @version 1.0 sep 2005 */public class TextExportFileChooser extends JComponent implements ActionListener {    private JFileChooser chooser;    private JButton okButton;    private JButton cancelButton;    private String dialogTitle;    private JDialog dialog;    private int returnValue = JFileChooser.ERROR_OPTION;    private JLabel encLabel;    private JComboBox encodingBox;    /**     * Creates a new TextExportFileChooser instance     */    public TextExportFileChooser() {        initComponents();    }    /**     * Sets up the components. The standard "Save" and "Cancel" buttons  are     * replaced because of layout considerations (the encoding combobox  is     * best situated above the control buttons).     */    private void initComponents() {        encLabel = new JLabel("Encoding: ");        encodingBox = new JComboBox();        encodingBox.addItem("ISO-LATIN");        encodingBox.addItem("UTF-8");        encodingBox.addItem("UTF-16");        encodingBox.setSelectedIndex(1);        okButton = new JButton();        cancelButton = new JButton();        this.setLayout(new GridBagLayout());        Insets insets = new Insets(0, 6, 6, 6);        chooser = new JFileChooser();        chooser.setDialogType(JFileChooser.SAVE_DIALOG);        chooser.setControlButtonsAreShown(false);        //chooser.addActionListener(this);        GridBagConstraints gbc = new GridBagConstraints();        gbc.gridx = 0;        gbc.gridy = 0;        gbc.anchor = GridBagConstraints.NORTHWEST;        gbc.fill = GridBagConstraints.BOTH;        gbc.weightx = 1.0;        gbc.weighty = 1.0;        this.add(chooser, gbc);        JPanel encPanel = new JPanel();        encPanel.add(encLabel);        encPanel.add(encodingBox);        gbc = new GridBagConstraints();        gbc.gridx = 0;        gbc.gridy = 1;        gbc.anchor = GridBagConstraints.SOUTH;        gbc.fill = GridBagConstraints.NONE;        gbc.insets = insets;        this.add(encPanel, gbc);        JPanel buttonPanel = new JPanel(new GridLayout(1, 2, 6, 6));        okButton.setText(ElanLocale.getString("Menu.File.Save"));        okButton.addActionListener(this);        cancelButton.setText(ElanLocale.getString("Button.Cancel"));        cancelButton.addActionListener(this);        if (System.getProperty("os.name").startsWith("Mac OS X")) {            buttonPanel.add(cancelButton);            buttonPanel.add(okButton);        } else {            buttonPanel.add(okButton);            buttonPanel.add(cancelButton);        }        JPanel butBorderPanel = new JPanel(new GridBagLayout());        gbc = new GridBagConstraints();        gbc.gridx = 0;        gbc.gridy = 0;        gbc.anchor = GridBagConstraints.WEST;        gbc.fill = GridBagConstraints.HORIZONTAL;        gbc.weightx = 1.0;        butBorderPanel.add(new JPanel(), gbc);        gbc = new GridBagConstraints();        gbc.gridx = 1;        gbc.gridy = 0;        gbc.anchor = GridBagConstraints.EAST;        gbc.insets = insets;        butBorderPanel.add(buttonPanel, gbc);        gbc = new GridBagConstraints();        gbc.gridx = 0;        gbc.gridy = 2;        gbc.anchor = GridBagConstraints.SOUTH;        gbc.fill = GridBagConstraints.HORIZONTAL;        gbc.insets = insets;        this.add(butBorderPanel, gbc);    }    /**     * Copied from JFileChooser.     *     * @param parent the parent component, usually a frame     * @param approveButtonText the text for the "OK" or approve button     *     * @return JFileChooser.ERROR_OPTION, APPROVE_OPTION or CANCEL_OPTION     *     * @throws HeadlessException     *     * @see JFileChooser.showDialog(Component, String)     */    public int showSaveDialog(Component parent, String approveButtonText)        throws HeadlessException {        if (approveButtonText != null) {            chooser.setApproveButtonText(approveButtonText);        }        dialog = createDialog(parent);        dialog.addWindowListener(new WindowAdapter() {                public void windowClosing(WindowEvent e) {                    returnValue = JFileChooser.CANCEL_OPTION;                }            });        returnValue = JFileChooser.ERROR_OPTION;        dialog.show(); // blocks...        dialog.dispose();        dialog = null;        return returnValue;    }    /**     * Copied from JFileChooser. Creates a configured dialog.     *     * @param parent the parent     *     * @return a dialog object     *     * @throws HeadlessException     */    protected JDialog createDialog(Component parent) throws HeadlessException {        Frame frame = (parent instanceof Frame) ? (Frame) parent                                                : (Frame) SwingUtilities.getAncestorOfClass(Frame.class,                parent);        JDialog dialog = new ClosableDialog(frame, dialogTitle, true);        Container contentPane = dialog.getContentPane();        contentPane.setLayout(new BorderLayout());        contentPane.add(this, BorderLayout.CENTER);        dialog.pack();        dialog.setLocationRelativeTo(parent);        return dialog;    }    /**     * Returns the selected character encoding.     *     * @return the selected character encoding, default is UTF-8     */    public String getSelectedEncoding() {        String enc = (String) encodingBox.getSelectedItem();        if (enc == null) {            enc = "UTF-8";        } else if (enc.equals("ISO-LATIN")) {            enc = "ISO-8859-1";        }        return enc;    }    /**     * Selects the specified encoding in the encoding combo box.     *     * @param encoding the encoding to select     */    public void setSelectedEncoding(String encoding) {        encodingBox.setSelectedItem(encoding);    }    /**     * Returns the current directory.     *     * @return the current directory     */    public File getCurrentDirectory() {        return chooser.getCurrentDirectory();    }    /**     * Sets the directory for the chooser.     *     * @param dir the directory for the chooser     */    public void setCurrentDirectory(File dir) {        chooser.setCurrentDirectory(dir);    }    /**     * Returns the selected File.     *     * @return the selected File     */    public File getSelectedFile() {        return chooser.getSelectedFile();    }    /**     * Sets the file filter.     *     * @param filter the file filter for the chooser     */    public void setFileFilter(FileFilter filter) {        chooser.setFileFilter(filter);    }    /**     * Returns the current file filter     *     * @return the current file filter     */    public FileFilter getFileFilter() {        return chooser.getFileFilter();    }    /**     * Sets the title for the dialog.     *     * @param title the title     */    public void setDialogTitle(String title) {        dialogTitle = title;        if (dialog != null) {            dialog.setTitle(title);        }    }    /**     * Action Listener implementation.     *     * @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)     */    public void actionPerformed(ActionEvent e) {        if (e.getSource() == okButton) {            // method approveSelection() does not seem to set the file name typed in             // the textfield as the selected file            // chooser.approveSelection();            // find the first textfield encountered            Component c = getTextField(chooser);            if (c instanceof JTextField) {                String fileName = ((JTextField) c).getText();                chooser.setSelectedFile(new File(                        chooser.getCurrentDirectory(), fileName));            }            returnValue = JFileChooser.APPROVE_OPTION;            dialog.setVisible(false);        } else if (e.getSource() == cancelButton) {            returnValue = JFileChooser.CANCEL_OPTION;            dialog.setVisible(false);        }    }    /**     * Recursively test all child components untill a TexrtField is     * encountered.     *     * @param container the container holding child components     *     * @return the first JTextField or null     */    private Component getTextField(Container container) {        Component c = null;        if (container != null) {            Component[] cc = container.getComponents();            for (int i = 0; i < cc.length; i++) {                c = cc[i];                //System.out.println("C: " + c.getClass());                if (c instanceof JTextField) {                    return c;                } else if (c instanceof Container) {                    c = getTextField((Container) c);                    if (c instanceof JTextField) {                        return c;                    }                }            }        }        return c;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -