Проводник файлов с использованием Java-как это сделать?
Я настроен на создание проводника файлов с помощью Java. Цель состоит в том, чтобы эмулировать поведение проводника по умолчанию как можно ближе, независимо от того, что может быть базовой ОС.
Я не занимался программированием GUI на Java.
Я посмотрел Swing, SWT и JFace, и я начинаю свой проект с этого урока:
http://www.ibm.com/developerworks/opensource/library/os-ecgui1/
Я хотел бы узнать ваше мнение о наилучшем подходе к решению этой проблемы. Если вы можете прокомментировать сложность кодирования, переносимость и независимость от ОС, а также эффективность, это было бы здорово.
Есть ли еще что-нибудь, что я должен знать? Существуют ли какие-то другие способы?
Большое спасибо!
Спасибо за ответы и ответы.
Похоже, что я выберу Swing для реализации проводника файлов.
Что меня пугает, так это мысль о том, что не будет ничего, чтобы имитировать представление проводника по умолчанию... Не могли бы вы дать несколько советов по этому поводу? Делать Я получаю список файлов, получаю значки, а затем размещаю их в виде сетки на экране, чтобы показать вид проводника по умолчанию?
2 ответов:
Вам было бы лучше использовать Swing. Вам нужны разные версии SWT и JFace для разных операционных систем.
Лучший подход-начать с простого и добавить к тому, что у вас есть, когда вы узнаете больше.
Для начала вам понадобится JFrame с двумя дочерними элементами JPanel.
Вам нужно будет добавить JMenuBar к JFrame. Элементы JMenu добавляются в JMenuBar. Элементы JMenuItem добавляются в JMenu.
Обзор качелей Oracle поможет вам добавить больше компонентов качания к вашему проекту.
Я бы начал с Как использовать средства выбора файлов, но пример в
org.netbeans.swing.outline.Outline, обсуждается здесь , является привлекательным.Добавление: @Gilbert Le Blanc поднимает отличный вопрос о легкости и переносимости Swing. В отличие от этого, SWT требует немного больше усилий для развертывания, но некоторые пользователи предпочитают большую точность
org.eclipse.swt.widgets.FileDialog, как показано здесь .Добавление: я замечаю, что
FileDialogотображает более родное окно, как видно здесь . Вы можете попробовать это на своей целевой платформе(платформах).import java.awt.*; import java.awt.event.*; import javax.swing.*; /** @see https://stackoverflow.com/questions/2914733 */ public class FileDialogTest { public static void main(String[] args) { final JFrame frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new GridLayout(0, 1)); frame.add(new JButton(new AbstractAction("Load") { @Override public void actionPerformed(ActionEvent e) { FileDialog fd = new FileDialog(frame, "Test", FileDialog.LOAD); fd.setVisible(true); System.out.println(fd.getFile()); } })); frame.add(new JButton(new AbstractAction("Save") { @Override public void actionPerformed(ActionEvent e) { FileDialog fd = new FileDialog(frame, "Test", FileDialog.SAVE); fd.setVisible(true); System.out.println(fd.getFile()); } })); frame.pack(); frame.setLocationRelativeTo(null); frame.setVisible(true); } }
Comments