powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / проблемы с отображением содержимого файлов с помощью jTree
15 сообщений из 15, страница 1 из 1
проблемы с отображением содержимого файлов с помощью jTree
    #38126995
Medniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет, в общем возникла следующая проблема.
Имеется дерево, где отображается список файлов, имеется 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
проблемы с отображением содержимого файлов с помощью jTree
    #38127357
Medniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
help, plz)
...
Рейтинг: 0 / 0
проблемы с отображением содержимого файлов с помощью jTree
    #38127396
Medniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чтение из файла происходит следующим образом -
Код: 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
проблемы с отображением содержимого файлов с помощью jTree
    #38127400
Medniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
точнее содержимое "selectedNode"
...
Рейтинг: 0 / 0
проблемы с отображением содержимого файлов с помощью jTree
    #38128287
Medniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
неужели никто не знает?
...
Рейтинг: 0 / 0
проблемы с отображением содержимого файлов с помощью jTree
    #38129975
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Medniyнеужели никто не знает?
DefaultMutableTreeNode oldSelectedNode = selectedNode ...
...
Рейтинг: 0 / 0
проблемы с отображением содержимого файлов с помощью jTree
    #38130341
Medniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а можно подробней?) просто ток начал изучать Java)
...
Рейтинг: 0 / 0
проблемы с отображением содержимого файлов с помощью jTree
    #38130581
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
проблемы с отображением содержимого файлов с помощью jTree
    #38130583
JulT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сорри, забыла выделить код
...
Рейтинг: 0 / 0
проблемы с отображением содержимого файлов с помощью jTree
    #38131766
Medniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спс, попробую
...
Рейтинг: 0 / 0
проблемы с отображением содержимого файлов с помощью jTree
    #38132139
Medniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
этот способ хорошо работает при каком-нить событии дерева...
а мне бы чтобы при загрузке программы срабатывало
...
Рейтинг: 0 / 0
проблемы с отображением содержимого файлов с помощью jTree
    #38132187
Medniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в общем мой код
Код: 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
проблемы с отображением содержимого файлов с помощью jTree
    #38132194
Medniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в последнем листе идет сверка списка листьев дерева со списком файлов находящихся в папке, соответственно при нахождение различий выполняется требуемое действие, либо удаление, либо добавление в дерево
...
Рейтинг: 0 / 0
проблемы с отображением содержимого файлов с помощью jTree
    #38132343
Medniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
кажется разобрался, оказалось все намного проще чем я думал)
...
Рейтинг: 0 / 0
проблемы с отображением содержимого файлов с помощью jTree
    #38132354
Medniy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот она - неопытность))
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / проблемы с отображением содержимого файлов с помощью jTree
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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