Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / проблемы с отображением содержимого файлов с помощью jTree / 15 сообщений из 15, страница 1 из 1
28.01.2013, 12:04:43
    #38126995
Medniy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с отображением содержимого файлов с помощью jTree
Всем привет, в общем возникла следующая проблема.
Имеется дерево, где отображается список файлов, имеется jTextPane где отображается содержимое файлов..
список получаю таким способом
Код: java
1.
String[] newFileList = new File("D:\\IRAM\\Tek\\OPMET\\SIGMET\\").list();


отображается все нормуль...
только начинаю редактировать имя файла, точнее отображаемое его имя с помощью -
Код: java
1.
2.
StringBuffer Strings = new StringBuffer(string);
              Strings.delete(4, 100);


просмотр содержимого перестает работать...
в общем, чего хочется - в данный момент в дереве отображаются полные имена файлов, а мне нужно только, к примеру, первые 4 символа.. но и при этом чтобы ссылки на сами файлы сохранились и отображался текст содержимого.. подскажите как лучше реализовать?
...
Рейтинг: 0 / 0
28.01.2013, 15:00:51
    #38127357
Medniy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с отображением содержимого файлов с помощью jTree
help, plz)
...
Рейтинг: 0 / 0
28.01.2013, 15:18:10
    #38127396
Medniy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с отображением содержимого файлов с помощью jTree
чтение из файла происходит следующим образом -
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
 DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) jTree1.getLastSelectedPathComponent();


        if (selectedNode == null) {
            return;
        }
        if (!selectedNode.isLeaf()) {
            return;
        }
        try {


            FileReader file_reader = new FileReader(Path_data + selectedNode);
            char buffer[] = new char[4096];
            int len;

            while ((len = file_reader.read(buffer)) != -1) {
                String s = new String(buffer, 0, len);
                jTextPane1.setText(s);
            }
        } catch (IOException e1) {
        }



то есть, грубо говоря, мне нужно переименовать "selectedNode" так, чтобы ссылка на файл осталась
...
Рейтинг: 0 / 0
28.01.2013, 15:19:00
    #38127400
Medniy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с отображением содержимого файлов с помощью jTree
точнее содержимое "selectedNode"
...
Рейтинг: 0 / 0
29.01.2013, 09:50:26
    #38128287
Medniy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с отображением содержимого файлов с помощью jTree
неужели никто не знает?
...
Рейтинг: 0 / 0
30.01.2013, 02:12:25
    #38129975
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с отображением содержимого файлов с помощью jTree
Medniyнеужели никто не знает?
DefaultMutableTreeNode oldSelectedNode = selectedNode ...
...
Рейтинг: 0 / 0
30.01.2013, 12:10:48
    #38130341
Medniy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с отображением содержимого файлов с помощью jTree
а можно подробней?) просто ток начал изучать Java)
...
Рейтинг: 0 / 0
30.01.2013, 14:00:50
    #38130581
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с отображением содержимого файлов с помощью jTree
Medniyа можно подробней?) просто ток начал изучать Java)
если я вас правильно поняла, то вам поможет приблизительно следующее:
DefaultMutableTreeNode select=(DefaultMutableTreeNode)jXTree2.getSelectionPath().getLastPathComponent();

javax.swing.tree.DefaultMutableTreeNode selectedNode = new javax.swing.tree.DefaultMutableTreeNode("path");

javax.swing.tree.DefaultMutableTreeNode selectedNodeOld = new javax.swing.tree.DefaultMutableTreeNode(selectedNode.getUserObject());

selectedNode.setUserObject("new value");

System.out.println("selectedNode old value="+selectedNodeOld.getUserObject()+" selectedNode new value="+selectedNode.getUserObject());
...
Рейтинг: 0 / 0
30.01.2013, 14:01:18
    #38130583
JulT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с отображением содержимого файлов с помощью jTree
сорри, забыла выделить код
...
Рейтинг: 0 / 0
31.01.2013, 09:58:15
    #38131766
Medniy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с отображением содержимого файлов с помощью jTree
спс, попробую
...
Рейтинг: 0 / 0
31.01.2013, 12:53:10
    #38132139
Medniy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с отображением содержимого файлов с помощью jTree
этот способ хорошо работает при каком-нить событии дерева...
а мне бы чтобы при загрузке программы срабатывало
...
Рейтинг: 0 / 0
31.01.2013, 13:10:03
    #38132187
Medniy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с отображением содержимого файлов с помощью jTree
в общем мой код
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
public Sigmet() {
        initComponents();

        rootNode = new DefaultMutableTreeNode("SIGMET");
        model = new DefaultTreeModel(rootNode);
        jTree1.setModel(model);
        jTree1.setEditable(true);
        jTree1.setShowsRootHandles(true);
        jTree1.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION);

        nodeMainFIR = new DefaultMutableTreeNode(Name_main);
        rootNode.add(nodeMainFIR);

        nodeAuxFIRs = new DefaultMutableTreeNode("Смежные");
        rootNode.add(nodeAuxFIRs);
        nodeAuxFIRList = new DefaultMutableTreeNode[RPI.size()];
        
        
        for (int i = 0; i < RPI.size(); ++i) {
            nodeAuxFIRList[i] = new DefaultMutableTreeNode(RPI.get(i));
            nodeAuxFIRs.add(nodeAuxFIRList[i]);


        }
        updateTree();
        repaint();



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
private void updateTree() {
        boolean isCommon;
        String[] newFileList = new File("D:\\IRAM\\Tek\\OPMET\\SIGMET\\").list();
        // Удаление старых
        for (int oldFileIndex = 0; oldFileIndex < totalFileList.length; ++oldFileIndex) {
            isCommon = false;
            for (int newFileIndex = 0; newFileIndex < newFileList.length; ++newFileIndex) {
                if (totalFileList[oldFileIndex].equals(newFileList[newFileIndex])) {
                    isCommon = true;
                    break;
                }
            }
            if (!isCommon) {
                deleteLeafFromTree(totalFileList[oldFileIndex]);
            }
        }
        // Добавление новых
        for (int newFileIndex = 0; newFileIndex < newFileList.length; ++newFileIndex) {
            isCommon = false;
            for (int oldFileIndex = 0; oldFileIndex < totalFileList.length; ++oldFileIndex) {
                if (newFileList[newFileIndex].equals(totalFileList[oldFileIndex])) {
                    isCommon = true;
                    break;
                }
            }
            if (!isCommon) {
                addLeafIntoTree(newFileList[newFileIndex]);

            }
        }
        // Запоминаем новый список
        totalFileList = newFileList;
    }

    public void deleteLeafFromTree(String string) {
        int sumMain = nodeMainFIR.getChildCount(); //Получаем кол-во главных FIR
        for (int i = 0; i < sumMain; ++i) {
            DefaultMutableTreeNode child = (DefaultMutableTreeNode) nodeMainFIR.getChildAt(i);

            if (child.toString().equals(string)) {
                model.removeNodeFromParent(child);
                break;
            }
        }
        for (int i = 0; i < RPI.size(); ++i) {
            int sumAux = nodeAuxFIRList[i].getChildCount();
            for (int j = 0; j < sumAux; ++j) {
                DefaultMutableTreeNode child = (DefaultMutableTreeNode) nodeAuxFIRList[i].getChildAt(j);
                if (child.toString().equals(string)) {
                    model.removeNodeFromParent(child);
                    break;
                }
            }
        }

        model.nodeChanged(nodeMainFIR);

        repaint();

    }

    public void addLeafIntoTree(String string) {
        
        model.insertNodeInto(new DefaultMutableTreeNode(string), nodeMainFIR, nodeMainFIR.getChildCount());
        model.nodeChanged(nodeMainFIR);
        repaint();


        for (int i = 0; i < RPI.size(); ++i) {
            model.insertNodeInto(new DefaultMutableTreeNode(string), nodeAuxFIRList[i], nodeAuxFIRList[i].getChildCount());
            model.nodeChanged(nodeAuxFIRList[i]);
            repaint();
        }


    }
...
Рейтинг: 0 / 0
31.01.2013, 13:12:17
    #38132194
Medniy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с отображением содержимого файлов с помощью jTree
в последнем листе идет сверка списка листьев дерева со списком файлов находящихся в папке, соответственно при нахождение различий выполняется требуемое действие, либо удаление, либо добавление в дерево
...
Рейтинг: 0 / 0
31.01.2013, 14:09:09
    #38132343
Medniy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с отображением содержимого файлов с помощью jTree
кажется разобрался, оказалось все намного проще чем я думал)
...
Рейтинг: 0 / 0
31.01.2013, 14:11:14
    #38132354
Medniy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблемы с отображением содержимого файлов с помощью jTree
вот она - неопытность))
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / проблемы с отображением содержимого файлов с помощью jTree / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]