AbstractDirectoryChooser перенесён в общий пакет и преобразован в более гибкий класс AbstractFileChooser

This commit is contained in:
Victor 2013-12-02 15:10:19 +02:00
parent e5d05ef173
commit 222e8f34f1

View File

@ -1,4 +1,4 @@
package tse.lr3; package com.annimon.ui;
import java.awt.Component; import java.awt.Component;
import java.awt.Dimension; import java.awt.Dimension;
@ -15,25 +15,29 @@ import static javax.swing.WindowConstants.DISPOSE_ON_CLOSE;
* *
* @author aNNiMON * @author aNNiMON
*/ */
public abstract class AbstractDirectoryChooser extends JDialog implements ActionListener { public abstract class AbstractFileChooser extends JDialog implements ActionListener {
private final JFileChooser chooser; private final JFileChooser chooser;
public AbstractFileChooser(String title) {
this(title, "Выбрать директорию", JFileChooser.DIRECTORIES_ONLY);
}
public AbstractDirectoryChooser(String title) { public AbstractFileChooser(String title, String buttonText, int mode) {
setTitle(title); setTitle(title);
setPreferredSize(new Dimension(200, 80)); setPreferredSize(new Dimension(200, 80));
setDefaultCloseOperation(DISPOSE_ON_CLOSE); setDefaultCloseOperation(DISPOSE_ON_CLOSE);
initWindow(); initWindow(buttonText);
chooser = new JFileChooser(); chooser = new JFileChooser();
chooser.setCurrentDirectory(new File(".")); chooser.setCurrentDirectory(new File("."));
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); chooser.setFileSelectionMode(mode);
chooser.setAcceptAllFileFilterUsed(false); chooser.setAcceptAllFileFilterUsed(false);
} }
private void initWindow() { private void initWindow(String buttonText) {
JPanel panel = new JPanel(); JPanel panel = new JPanel();
JButton button = new JButton("Выбрать директорию"); JButton button = new JButton(buttonText);
button.setPreferredSize(new Dimension(150, 40)); button.setPreferredSize(new Dimension(150, 40));
button.setAlignmentX(Component.CENTER_ALIGNMENT); button.setAlignmentX(Component.CENTER_ALIGNMENT);
button.addActionListener(this); button.addActionListener(this);
@ -51,8 +55,7 @@ public abstract class AbstractDirectoryChooser extends JDialog implements Action
@Override @Override
public void run() { public void run() {
directorySelected(chooser.getSelectedFile()); onFileSelected(chooser.getSelectedFile());
System.out.println("Готово!");
} }
}).start(); }).start();
} else { } else {
@ -60,5 +63,5 @@ public abstract class AbstractDirectoryChooser extends JDialog implements Action
} }
} }
protected abstract void directorySelected(File directory); protected abstract void onFileSelected(File file);
} }