Как отобразить иерархию (Java) - PullRequest
0 голосов
/ 21 марта 2012

У меня есть этот проект, и он позволяет пользователям создавать свои собственные проекты внутри него, сохранять его и делать гораздо больше. Я делаю все это на Java, используя программу Eclipse. Сегодня я в основном хотел узнать, как мне поступить с отображением Иерархии? Я могу быть более конкретным, когда пользователь создает проект, он спрашивает их, где они хотят иметь папку проекта. Допустим, они выбирают имя папки JavaProjects и его рабочий стол (я использую Windows, так что извините, если это не то же самое на Mac и Linux), и в этой папке у них есть папка Scripts и папка с изображениями, а внутри там есть папка с изображениями. папка с текстурой и папка с логотипом (я также придумываю эти папки в своей голове, когда я делаю это). Как я могу сделать так, чтобы в моем JPanelEast он отображал такой формат, как Package Explorer In Eclipse? Смогу ли я просто просканировать папку, в которую они вставили, и аккуратно разложить все папки и файлы? Или я должен был сделать что-то гораздо большее из моих знаний?

Если здесь поможет мой код, за исключением строки меню и слушателей действий

package Engine;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.BorderFactory;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBoxMenuItem;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JRadioButtonMenuItem;
import javax.swing.SwingConstants;

@SuppressWarnings("serial")
public class TestProjectBuilder extends JFrame {

    JPanel jPanelNorth = new JPanel();
    JPanel jPanelSouth = new JPanel();
    JPanel jPanelEast = new JPanel();
    JPanel jPanelCenter = new JPanel();

    JButton jButtonDebug = new JButton("Debug");
    JButton jButtonPause = new JButton("Pause");
    JButton jButtonRun = new JButton("Run");

    JLabel jLabelHeir = new JLabel("");

    GridLayout gridLayout1 = new GridLayout(4,1);

    public TestProjectBuilder() {

        setTitle("Test Project Builder");
        setSize(1400, 800);

        jPanelNorth.setBackground(Color.DARK_GRAY);
        jPanelNorth.setBorder(BorderFactory.createRaisedBevelBorder());
        jPanelNorth.setPreferredSize(new Dimension(14, 40));
        jPanelNorth.setToolTipText("North Panel");

        jPanelNorth.add(jButtonDebug);
        jButtonDebug.setHorizontalAlignment(SwingConstants.CENTER);
        jPanelNorth.add(jButtonPause);
        jButtonPause.setHorizontalAlignment(SwingConstants.CENTER);
        jPanelNorth.add(jButtonRun);
        jButtonRun.setHorizontalAlignment(SwingConstants.CENTER);

        jPanelSouth.setBackground(Color.DARK_GRAY);
        jPanelSouth.setBorder(BorderFactory.createTitledBorder(""));
        jPanelSouth.setPreferredSize(new Dimension(10,200));
        jPanelSouth.setToolTipText("South Panel");

        jPanelEast.setBackground(Color.DARK_GRAY);
        jPanelEast.setBorder(BorderFactory.createEtchedBorder());
        jPanelEast.setPreferredSize(new Dimension(300,10));
        jPanelEast.setToolTipText("East Panel");

        jPanelCenter.setBackground(Color.GRAY);
        jPanelCenter.setBorder(BorderFactory.createEtchedBorder());
        jPanelCenter.setPreferredSize(new Dimension(56,10));
        jPanelCenter.setToolTipText("Center Panel");



        this.getContentPane().add(jPanelNorth, BorderLayout.NORTH);
        this.getContentPane().add(jPanelSouth, BorderLayout.SOUTH);
        this.getContentPane().add(jPanelEast, BorderLayout.EAST);
        this.getContentPane().add(jPanelCenter, BorderLayout.CENTER);

        jPanelCenter.setLayout(gridLayout1);

    }
    public static void main(String[] args) {
        TestProjectBuilder tpb = new TestProjectBuilder();
        tpb.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        tpb.setVisible(true);
    }
}

Заранее всем спасибо за помощь

Ответы [ 2 ]

3 голосов
/ 21 марта 2012

Вы можете начать с кода для GUI браузера файлов .

image

2 голосов
/ 21 марта 2012

В руководстве по Java есть раздел об использовании TreeViews для этого. http://docs.oracle.com/javase/tutorial/uiswing/components/tree.html

Я публикую ссылку здесь, потому что это сложно для простого ответа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...