Проводник с использованием Java - как это сделать? - PullRequest
7 голосов
/ 26 мая 2010

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

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

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

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

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

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


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

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

Ответы [ 2 ]

6 голосов
/ 26 мая 2010

Вам лучше использовать Swing. Вам нужны разные версии SWT и JFace для разных операционных систем.

Лучший подход - начать с простого и добавить к тому, что у вас есть, по мере того, как вы узнаете больше.

Чтобы начать, вам нужен JFrame с двумя детьми JPanel.

Вам нужно добавить JMenuBar в JFrame. Элементы JMenu добавляются в JMenuBar. Элементы JMenuItem добавляются в JMenu.

Oracle Swing Overview поможет вам добавить больше компонентов Swing в ваш проект.

4 голосов
/ 26 мая 2010

Я бы начал с Как использовать средства выбора файлов , но пример в 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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...