Проводник файлов с использованием Java-как это сделать?



Я настроен на создание проводника файлов с помощью Java. Цель состоит в том, чтобы эмулировать поведение проводника по умолчанию как можно ближе, независимо от того, что может быть базовой ОС.



Я не занимался программированием GUI на Java.



Я посмотрел Swing, SWT и JFace, и я начинаю свой проект с этого урока:
http://www.ibm.com/developerworks/opensource/library/os-ecgui1/



Я хотел бы узнать ваше мнение о наилучшем подходе к решению этой проблемы. Если вы можете прокомментировать сложность кодирования, переносимость и независимость от ОС, а также эффективность, это было бы здорово.

Есть ли еще что-нибудь, что я должен знать? Существуют ли какие-то другие способы?

Большое спасибо!





Спасибо за ответы и ответы.



Похоже, что я выберу Swing для реализации проводника файлов.
Что меня пугает, так это мысль о том, что не будет ничего, чтобы имитировать представление проводника по умолчанию... Не могли бы вы дать несколько советов по этому поводу? Делать Я получаю список файлов, получаю значки, а затем размещаю их в виде сетки на экране, чтобы показать вид проводника по умолчанию?

712   2  

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

    Ничего не найдено.