Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> JFileChooser Listeners. 
:(
    Опции темы
ShurikA
Дата 8.11.2005, 18:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



С помощью ActionListener действующий на класс JFileChooser можно получить даные (те или иные) после нажатия кнопки "OPEN".
Каким "Listener" можно вопользоваться чтобы получить теже данные при "отмечании" фаила (если вообще возможно)?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
bars_uz
Дата 8.11.2005, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 26.3.2005
Где: Tashkent

Репутация: нет
Всего: нет



Bratan.. Pomoemu zdes ti doljen sozdat svoe class..
PM MAIL ICQ   Вверх
LSD
Дата 8.11.2005, 21:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Код
JFileChooser fileChooser = new JFileChooser("C:\\");
fileChooser.addPropertyChangeListener(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY ,new PropertyChangeListener()
{
  public void propertyChange(PropertyChangeEvent e)
  {
    System.out.println("Selected file: " + e.getNewValue());
  }
});
fileChooser.showOpenDialog(null);



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 8.11.2005, 22:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Цитата(LSD @ 8.11.2005, 20:57)
Код
JFileChooser fileChooser = new JFileChooser("C:\\");
fileChooser.addPropertyChangeListener(JFileChooser.SELECTED_FILE_CHANGED_PROPERTY ,new PropertyChangeListener()
{
  public void propertyChange(PropertyChangeEvent e)
  {
    System.out.println("Selected file: " + e.getNewValue());
  }
});
fileChooser.showOpenDialog(null);

Спасибо!!! smile
Кстати, это встроенная функция?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 8.11.2005, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата(ShurikA @ 8.11.2005, 22:34)
Кстати, это встроенная функция?

Что значит встроенная?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 8.11.2005, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Цитата(LSD @ 8.11.2005, 22:11)
Что значит встроенная?
Опять ступил smile

ещё один вопрос на тему JFileChooser:
известно мне что можно убрать "ControlButton" с помощью jFileChooser1.setControlButtonsAreShown(false);.
можно ли так же убрать и строки :
File Name:
File Type:

?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 8.11.2005, 23:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата(ShurikA @ 8.11.2005, 23:38)
можно ли так же убрать и строки :
File Name:
File Type:
?

Ты хочешь изменить тип просмотра List/Details, или именно убрать заголовок над столбцами в режиме Details?

P.S. Вид JFileChooser-а сильно меняется в зависимости от LaF, поэтому указывай с каким ты работаешь.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 9.11.2005, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Цитата(LSD @ 8.11.2005, 22:54)
Ты хочешь изменить тип просмотра List/Details, или именно убрать заголовок над столбцами в режиме Details?

Не то и не другое.
Если пльзоваться стандартным обьектом "JFileChooser" то он выглядит так:
--Resize_Images_Alt_Text--

Как видишь, внизу есть строки:
File Name: ...
File Type: ...


Можно ли их убрать?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 9.11.2005, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата(ShurikA @ 9.11.2005, 00:09)
Можно ли их убрать?

Хм... Точно не знаю, но по моему нет (надо подробней разбираться).

А зачем это надо, может есть способ попроще?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 9.11.2005, 00:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Цитата(LSD @ 8.11.2005, 23:16)
А зачем это надо, может есть способ попроще?

Просто красивееsmile

Продолжим:
Код

.
.
.
jFileChooser1.addPropertyChangeListener(jFileChooser1.SELECTED_FILE_CHANGED_PROPERTY, new PropertyChangeListener()
                {
                    public void propertyChange(PropertyChangeEvent evt) 
                    {
                        buildFileList((File)evt.getNewValue());
                        //File dir = (File) evt.getNewValue();
                        //tf.setText(dir.getPath());
                    }
                });
.
.
.


при этом
Код

private void buildFileList(File dir)
    {
        File[] listFiles = dir.listFiles();
        fList = null;
        fList = new JList(listFiles);
        fList.repaint();
    }


и так же в public void init():
Код

.
.
.
JSplitPane splitPane = new JSplitPane( JSplitPane.VERTICAL_SPLIT,
                                               jFileChooser1,
                                               fList );
        add(splitPane);
.
.
.


когда помчаю дерикторию, fList не обновляется...

?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 9.11.2005, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



По умолчаню у JFileChooser fileSelectionMode установлен в FILES_ONLY, поэтому каталоги не выбираются (их нельзя получить и через getSelectedFile()). Чтобы от этого избавиться надо: fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES).


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 9.11.2005, 13:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Цитата(LSD @ 9.11.2005, 10:08)
По умолчаню у JFileChooser fileSelectionMode установлен в FILES_ONLY, поэтому каталоги не выбираются (их нельзя получить и через getSelectedFile()). Чтобы от этого избавиться надо: fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES).

Выставленно DIRECTORIES_ONLY
Добавлено @ 13:44
Провлемма не с JFileChooser, он равотает, проверенно.
дело в JList.


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 9.11.2005, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата(ShurikA @ 9.11.2005, 13:39)
Провлемма не с JFileChooser, он равотает, проверенно.
дело в JList.

Что я вижу из твоего кода:
1. Каждый раз при изменении данных ты создаешь новый JList, это не противозаконно, но неэфективно с точки зрения производительности
2. При создании нового JList, ты не добавляешь его в JSplitPane и не удаляешь оттуда старый JList


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 9.11.2005, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Может я не прав но:
1. Каждый раз я обнуляю обьект указывающий на JList. (List = null;)
2. К нему же присваиваю новый. (fList = new JList(listFiles);)
3. По идее добавлять не надо, так как это та же самая ссылка "fList".

Исправь меня если я не прав.


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 9.11.2005, 18:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Проблема в том, что fList это твоя собственная переменная и она не имеет никакого отношения к иерархии компонентов. Чтобы компонент начал отображаться надо добавить его в контейнер методом add(), что выполняется неявно в конструкторе new JSplitPane( JSplitPane.VERTICAL_SPLIT, jFileChooser1, fList), т.е. после создания нового JList тебе надо вызвать у splitPane метод setLeftComponent() или setRightComponent() (он автоматом проведет все действия по удалению старого объекта и добавлению нового).

Но я все же не понимаю, почему ты каждый раз создаешь новый JList, почему нельзя просто поменять данные в старом?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 9.11.2005, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Цитата(LSD @ 9.11.2005, 17:46)
почему нельзя просто поменять данные в старом?

Ты имеешь в виду:
Код

        File[] listFiles = dir.listFiles();
        fList.removeAll();
        fList.add(listFiles);
        fList.repaint();


или даже fList.repaint(); не надо?

Это сообщение отредактировал(а) ShurikA - 9.11.2005, 19:00


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 9.11.2005, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата(ShurikA @ 9.11.2005, 18:58)
Ты имеешь в виду:
....
или даже fList.repaint(); не надо?

Именно, и repaint() не нужен.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 9.11.2005, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



ОК, Спасибо.
Будем пробоватьsmile


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
ShurikA
Дата 10.11.2005, 01:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Круто!!! smile работает.

Но повилась другая проблемма.
Код таков:
Код

.
.
.
DefaultListModel listModel = new DefaultListModel();
        fList = new JList(listModel);
        fList.addListSelectionListener(new ListSelectionListener()
                {
                    public void valueChanged(ListSelectionEvent e) 
                    {
                        
                    }
        
                });                
.
.
.
private void buildFileList(File dir, boolean renew)
    {
        if(renew)
            listModel.removeAllElements();
        File[] listFiles = dir.listFiles();
        for(int i=0; i<listFiles.length; i++)
        {
            if(accept(listFiles[i]))
            {
                listModel.addElement(listFiles[i]);
            }
        }
    }
.
.
.


теперь надо при отмечании строки в JList получить данные отмеченного фаила...
перепробовал всё smile

Это сообщение отредактировал(а) ShurikA - 10.11.2005, 05:20


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 10.11.2005, 12:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Код
fList.addListSelectionListener(new ListSelectionListener()
{
  public void valueChanged(ListSelectionEvent e)
  {
    JList list = (JList) e.getSource();
    File file = (File) list.getSelectedValue();
  }
});



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 10.11.2005, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Пробовал, чего то не совсем получилось.
Надо перепроверить.


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
ShurikA
Дата 10.11.2005, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



я ещё никого не достал?smile smile
...

в продолжении уже сказанного, с помощью кода:
Код

fList.addListSelectionListener(new ListSelectionListener()
{
  public void valueChanged(ListSelectionEvent e)
  {
.
.
.
  }
});


При отмечянии одного из фаилов (они только картинки), нужно показать картинку вдругой панели апплета.
Пробовал через "Canvas" и через "ImageIcon" пользуясь "JLabel"...
фигня получается.
Как лучше это делать?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 10.11.2005, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Картинку надо масштабировать или скролировать?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 10.11.2005, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Цитата(LSD @ 10.11.2005, 19:55)
Картинку надо масштабировать или скролировать?

Желательно масштабировать. Но это мне вроде удалось.
Вопрос как правильно её вывести в определённую часть апплета?

Это сообщение отредактировал(а) ShurikA - 10.11.2005, 23:25


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 10.11.2005, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата(ShurikA @ 10.11.2005, 23:25)
Вопрос как правильно её вывести в определённую часть апплета?

Как отобразить Image уже обсуждалось.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 11.11.2005, 16:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Цитата(LSD @ 10.11.2005, 22:36)
Как отобразить Image уже обсуждалось.

Это я уже читал, и не равотает. Правда не знаю точно почему. Может надо ещё раз всё переписать.
И хочу обратить твоё внимание на то что фаил картинки берётся у клиента а не на серваке. Есть ли разница?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 11.11.2005, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата(ShurikA @ 11.11.2005, 16:07)
И хочу обратить твоё внимание на то что фаил картинки берётся у клиента а не на серваке. Есть ли разница?

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


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 11.11.2005, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Цитата(LSD @ 11.11.2005, 20:58)
Апплет работает на клиенте, так что эти картинки для него локальные, а вот картинки на сервере как раз удаленные.

а, понял.


Цитата(LSD @ 11.11.2005, 20:58)
Покажи код которым загружаешь картинку.

Дай самому помучаться, я этот класс по новой перепишу. но уже не сегодня...


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
ShurikA
Дата 12.11.2005, 17:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Всё таки застрял, чего то я не догоняю.

Код

.
.
.
Frame imageFrame;
.
.
.
public void init() {
.
.
.
jsp = fileListConf();
.
.
.
JSplitPane splitPaneLeft = new JSplitPane( JSplitPane.VERTICAL_SPLIT,
                                               jFileChooser1,
                                               jsp );
        JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT,
                                              splitPaneLeft,
                                              imageFrame);
        add(splitPane);
}


Прои этом :
Код

private JScrollPane fileListConf()
    {
        listModel = new DefaultListModel();
        fList = new JList(listModel);
        fList.addListSelectionListener(new ListSelectionListener()
        {

            public void valueChanged(ListSelectionEvent e) {
                JList list = (JList) e.getSource();
                File file = (File) list.getSelectedValue();
                //tf.setText(file.getAbsolutePath());
                Image img = Toolkit.getDefaultToolkit().getImage(file.getAbsolutePath());
                //imageFrame.removeAll();
                imageFrame.add(new JLabel(new ImageIcon(img)));
            }
        });
        int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED;
        int h = ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED;
        return(new JScrollPane(fList, v, h));
    }


вот... smile


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 12.11.2005, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Не надо каждай раз создавать JScrollPane и JLabel, достаточно просто у JLabel менять иконку:
Код
  private JLabel label;
  private JList fList;
  private DefaultListModel listModel;

  public void init()
  {
    JList fList = fileListConf();
    label = new JLabel();
    imageFrame.add(label);
    JSplitPane splitPaneLeft = new JSplitPane(JSplitPane.VERTICAL_SPLIT, jFileChooser1, new JScrollPane(fList));
    JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, splitPaneLeft, imageFrame);
    add(splitPane);
  }

  private JList fileListConf()
  {
    listModel = new DefaultListModel();
    fList = new JList(listModel);
    fList.addListSelectionListener(new ListSelectionListener()
    {
      public void valueChanged(ListSelectionEvent e)
      {
        JList list = (JList) e.getSource();
        File file = (File) list.getSelectedValue();
        label.setIcon(new ImageIcon(file.getAbsolutePath()));
      }
    });
    return fList;
  }

Добавлено @ 21:04
Цитата(ShurikA @ 12.11.2005, 17:20)
Всё таки застрял

У меня тоже не сразу все получается, главное пытаться smile


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 12.11.2005, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Цитата(LSD @ 12.11.2005, 20:02)
У меня тоже не сразу все получается, главное пытаться

У меня на самом деле пока не хватает опыта ...


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
ShurikA
Дата 13.11.2005, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Решил всё переписать по новой, и появились новые беды.
Вот то что пока есть:
Код

package imageuploader;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import javax.swing.*;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeEvent;
import java.io.File;


public class ImageUploader extends JApplet {
    boolean isStandalone = false;
    BorderLayout borderLayout1 = new BorderLayout();
    MyJFileChooser fileChooser;
    FileListModel dirFileList, choosenFileList;
    JTextField tf;
    
    //Get a parameter value
    public String getParameter(String key, String def) {
        return isStandalone ? System.getProperty(key, def) :
                (getParameter(key) != null ? getParameter(key) : def);
    }

    //Construct the applet
    public ImageUploader() {
    }

    //Initialize the applet
    public void init() {
        try {
            jbInit();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //Component initialization
    private void jbInit() throws Exception {
        this.setSize(new Dimension(600, 800));
        this.getContentPane().setLayout(borderLayout1);
        
        fileChooser = new MyJFileChooser();
        tf = new JTextField(30);
        
        fileChooser.addPropertyChangeListener(fileChooser.SELECTED_FILE_CHANGED_PROPERTY, new PropertyChangeListener()
                {
                    public void propertyChange(PropertyChangeEvent evt)
                    {
                        tf.setText((String)evt.getNewValue());
                    }
                });
        JSplitPane splitPane = new JSplitPane(JSplitPane.VERTICAL_SPLIT, fileChooser, tf);
        add(splitPane);

    }

    //Get Applet information
    public String getAppletInfo() {
        return "Applet Information";
    }

    //Get parameter info
    public String[][] getParameterInfo() {
        return null;
    }

    //static initializer for setting look & feel
    static {
        try {
            //UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
            //UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
        } catch (Exception e) {
        }
    }
}


и так же:
Код

package imageuploader;

import javax.swing.JFileChooser;

public class MyJFileChooser extends JFileChooser 
{
    JFileChooser jFileChooser;
    
    public MyJFileChooser() 
    {
        jFileChooser = new JFileChooser();
        jFileChooser.setMultiSelectionEnabled(false);
        jFileChooser.setFileSelectionMode(jFileChooser.DIRECTORIES_ONLY);
        jFileChooser.setControlButtonsAreShown(false);
    }
}


1. Объект fileChooser не принимает установки которые я ему даю в классе MyJFileChooser.
2. Пытаюсь прагнать, бежит пока не отмечаю директорию. На это он выдаёт ошибку:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at imageuploader.ImageUploader$1.propertyChange(ImageUploader.java:65)


У меня какая то дыра в понимании... smile
Добавлено @ 21:34
Вроде как 2-е связанно с 1-ым.


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
batigoal
Дата 13.11.2005, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 3
Всего: 151



Мне кажется, ты не совсем понимаешь концепцию наследования. Я бы переписал твой класс так:
Код

package imageuploader;

import javax.swing.JFileChooser;

public class MyJFileChooser extends JFileChooser 
{
    public MyJFileChooser() 
    {
        super();
        this.setMultiSelectionEnabled(false);
        this.setFileSelectionMode(jFileChooser.DIRECTORIES_ONLY);
        this.setControlButtonsAreShown(false);
    }
}



--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
ShurikA
Дата 13.11.2005, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Цитата(Lamer @ 13.11.2005, 20:56)
Мне кажется, ты не совсем понимаешь концепцию наследования.

есть децл smile
спасибо


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
ShurikA
Дата 15.11.2005, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Следующая беда. Игрался с этим очень долго.
...

init()
Код

.
.
.
        tf = new JTextField(30);
        fileChooser = new MyJFileChooser();
        dirFileList = new FileListModel();
        dirFileList.getList().addListSelectionListener(new ListSelectionListener()
        {
            public void valueChanged(ListSelectionEvent e)
            {
                  JList list = (JList) e.getSource();
                  File file = (File) list.getSelectedValue();
                  
                  tf.setText(file.getName());
            }
        });

        fileChooser.addPropertyChangeListener(fileChooser.SELECTED_FILE_CHANGED_PROPERTY, new PropertyChangeListener()
                {
                    public void propertyChange(PropertyChangeEvent evt)
                    {
                        JFileChooser ch = (JFileChooser) evt.getSource();
                        dirFileList.Renew((File)ch.getSelectedFile());
                    }
                });
.
.
.


Код

public class FileListModel extends JList
{
    private JList fList;
    private DefaultListModel listModel = new DefaultListModel();
    
    public FileListModel()
    {
        this(new File(System.getProperty( "user.home" )));
    }
    
    public FileListModel(File dir) 
    {
        buildList(dir);
    }

    /**
     * buildList
     *
     * @param dir File
     */
    private void buildList(File dir) 
    {
        File[] listFiles = dir.listFiles();
        for(int i=0; i<listFiles.length; i++)
        {
            if(accept(listFiles[i]))
            {
                listModel.addElement(listFiles[i]);
            }
        }

    }

    //Renew the list
    public void Renew(File dir)
    {
        if(listModel.size() != 0)
        {
            listModel.removeAllElements();
        }
        buildList(dir);
    }
    
    //Do we accept this file?
    private boolean accept(File f)
    {
        String extension = getExtension(f);

        if (extension != null)
        {
            if (extension.equals("tiff") ||
                extension.equals("tif") ||
                extension.equals("gif") ||
                extension.equals("jpeg") ||
                extension.equals("jpg") ||
                extension.equals("png"))
            {
                return true;
            }
        }
        return false;
    }
    
    //Get the extension of a file.
    private String getExtension(File f)
    {
        String ext = null;
        String s = f.getName();
        int i = s.lastIndexOf('.');

        if (i > 0 && i < s.length() - 1)
        {
            ext = s.substring(i + 1).toLowerCase();
        }
         return ext;
    }
    
    public JList getList()
    {
        if(fList==null)
            fList = new JList(listModel);
        return  fList;
    }
}


Всё хорошо работает, пока я не отмечаю что то в dirFileList, после этого если я хочу выбрать другую библиотеку в fileChooser сразу выдаёт ошибку:
Код

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at imageuploader.ImageUploader$1.valueChanged(ImageUploader.java:69)
    at javax.swing.JList.fireSelectionValueChanged(JList.java:1317)
    at javax.swing.JList$ListSelectionHandler.valueChanged(JList.java:1331)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:187)
.
.
.



--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 15.11.2005, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Приведи стек ошибки полностью.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 15.11.2005, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Код

C:\Borland\JBuilder2006\jdk1.5\bin\javaw -classpath "C:\Documents and Settings\Alex\jbproject\ImageUploader\classes;C:\Borland\JBuilder2006\jdk1.5\lib\htmlconverter.jar;C:\Borland\JBuilder2006\jdk1.5\lib\tools.jar;C:\Borland\JBuilder2006\jdk1.5\lib\jconsole.jar;C:\Borland\JBuilder2006\jdk1.5\lib\dt.jar;C:\Borland\JBuilder2006\jdk1.5\jre\lib\deploy.jar;C:\Borland\JBuilder2006\jdk1.5\jre\lib\rt.jar;C:\Borland\JBuilder2006\jdk1.5\jre\lib\jce.jar;C:\Borland\JBuilder2006\jdk1.5\jre\lib\jsse.jar;C:\Borland\JBuilder2006\jdk1.5\jre\lib\ext\sunjce_provider.jar;C:\Borland\JBuilder2006\jdk1.5\jre\lib\ext\dnsns.jar;C:\Borland\JBuilder2006\jdk1.5\jre\lib\ext\sunpkcs11.jar;C:\Borland\JBuilder2006\jdk1.5\jre\lib\ext\localedata.jar;C:\Borland\JBuilder2006\jdk1.5\jre\lib\charsets.jar;C:\Borland\JBuilder2006\jdk1.5\jre\lib\im\thaiim.jar;C:\Borland\JBuilder2006\jdk1.5\jre\lib\im\indicim.jar;C:\Borland\JBuilder2006\jdk1.5\jre\lib\javaws.jar;C:\Borland\JBuilder2006\jdk1.5\jre\lib\plugin.jar;C:\Borland\JBuilder2006\lib\jbuilder.jar;C:\Borland\JBuilder2006\lib\primetime.jar"  com.borland.jbuilder.runtime.applet.AppletTestbed 600 800 imageuploader.ImageUploader
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at imageuploader.ImageUploader$1.valueChanged(ImageUploader.java:69)
    at javax.swing.JList.fireSelectionValueChanged(JList.java:1317)
    at javax.swing.JList$ListSelectionHandler.valueChanged(JList.java:1331)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:187)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:214)
    at javax.swing.DefaultListSelectionModel.removeIndexInterval(DefaultListSelectionModel.java:611)
    at javax.swing.plaf.basic.BasicListUI$Handler.intervalRemoved(BasicListUI.java:2197)
    at javax.swing.AbstractListModel.fireIntervalRemoved(AbstractListModel.java:161)
    at javax.swing.DefaultListModel.removeAllElements(DefaultListModel.java:385)
    at imageuploader.FileListModel.Renew(FileListModel.java:58)
    at imageuploader.ImageUploader$2.propertyChange(ImageUploader.java:78)
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:333)
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:341)
    at java.beans.PropertyChangeSupport.firePropertyChange(PropertyChangeSupport.java:270)
    at java.awt.Component.firePropertyChange(Component.java:7159)
    at javax.swing.JFileChooser.setSelectedFile(JFileChooser.java:475)
    at javax.swing.plaf.basic.BasicFileChooserUI$Handler.valueChanged(BasicFileChooserUI.java:511)
    at javax.swing.JList.fireSelectionValueChanged(JList.java:1317)
    at javax.swing.JList$ListSelectionHandler.valueChanged(JList.java:1331)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:187)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:157)
    at javax.swing.DefaultListSelectionModel.setValueIsAdjusting(DefaultListSelectionModel.java:619)
    at javax.swing.JList.setValueIsAdjusting(JList.java:1671)
    at javax.swing.plaf.basic.BasicListUI$Handler.mouseReleased(BasicListUI.java:2348)
    at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:232)
    at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
    at java.awt.Component.processMouseEvent(Component.java:5488)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
    at java.awt.Component.processEvent(Component.java:5253)
    at java.awt.Container.processEvent(Container.java:1966)
    at java.awt.Component.dispatchEventImpl(Component.java:3955)
    at java.awt.Container.dispatchEventImpl(Container.java:2024)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
    at java.awt.Container.dispatchEventImpl(Container.java:2010)
    at java.awt.Component.dispatchEvent(Component.java:3803)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)




--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
batigoal
Дата 15.11.2005, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 3
Всего: 151



ShurikA
Соответственно, в строке 69 в твоем первом файле какая-то из ссылок равна null. Какая это строка?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
ShurikA
Дата 15.11.2005, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Код

tf.setText(file.getName());

Добавлено @ 14:23
То как я понимаю:
при выборе новой библиотеки в fileChooser dirFileList это понимает как valueChanged, так как он действительно меняется, но на ничто...
Пробовал перед обработкой propertyChange сделать clearSelection в dirFileList - не помогло.


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
batigoal
Дата 15.11.2005, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 3
Всего: 151



Значит, либо tf=null, либо file=null.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
ShurikA
Дата 15.11.2005, 14:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Цитата(Lamer @ 15.11.2005, 13:23)
Значит, либо tf=null, либо file=null.

по видимому file так как он приходит из ListSelectionEvent e, а у него нет NewValuew.
Но как с этим бороться?


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 15.11.2005, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата(Lamer @ 15.11.2005, 14:23)
Значит, либо tf=null, либо file=null.

Нет, ни tf ни file не null, т.к. если бы они были null то стек вызовов бы на этом месте и заканчивался, а он идет дальше. Или file.getName() возвращает null или некое недопустимое значение, которое tf.setText() не может переварить. Поставь отладочную печать, что возвращает file.getName().


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 15.11.2005, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Проблемма в ListSelectionEvent e, и file.getName() тут не причём.
Ещё раз:
если в dirFileList ничего не отмеченно - всё ОК, в fileChooser можно отмечать что угодно другое и при этом список обновляется.
если же отметить сто то в dirFileList, то есть фукция public void valueChanged(ListSelectionEvent e) один раз отработала, то при любом другом выборе директории в fileChooser выдаётся выше указанная ошибка.


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
batigoal
Дата 15.11.2005, 17:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 3
Всего: 151



Цитата(LSD @ 15.11.2005, 16:37)
Нет, ни tf ни file не null, т.к. если бы они были null то стек вызовов бы на этом месте и заканчивался, а он идет дальше.

Не понял. Ведь он этим и обрывается:
Цитата
at imageuploader.ImageUploader$1.valueChanged(ImageUploader.java:69)

Поясни, плиз.


ShurikA
Может, ошибка такого рода (я не очень внимательно смотрел код): когда ты выбираешь файл, у тебя пересоздается список (методом Renew), но вместо каталога подставляется твой файл? А потом, соответственно, получается неправильный путь. Вообще, я не очень понимаю, почему при выборе файла (addPropertyChangeListener(fileChooser.SELECTED_FILE_CHANGED_PROPERTY...)) выполняется обновление списка файлов (dirFileList.Renew(...)).

Это сообщение отредактировал(а) Lamer George - 15.11.2005, 17:13


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
ShurikA
Дата 15.11.2005, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Lamer George
Представь себе такое:

fileChooser - откофигурирован так что бы показывал только директории, при этом если отметить директорию в fileChooser (не важно какую), в другой части апплета появляется список графических фаилов находящихся в той самой отмеченной директории с помощью dirFileList.Renew. То есть: fileChooser и dirFileList это разные вещи, в разных частях апплета.

теперь...
если в этом присловутом dirFileList ничего не отмечать и бегать по разным дерикториям в fileChooser то dirFileList обновляется без проблемм.
если же отметить хоть один элемент в dirFileList -> беда!!!


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
batigoal
Дата 15.11.2005, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 3
Всего: 151



ShurikA
Угу, с задачей все понял.

Ты попробовал проверять на null значение ссылки file?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
ShurikA
Дата 15.11.2005, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Цитата(Lamer @ 15.11.2005, 16:58)
Ты попробовал проверять на null значение ссылки file?

Да, она не null


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 15.11.2005, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата(Lamer @ 15.11.2005, 17:04)
Цитата(LSD @ 15.11.2005, 16:37)
Нет, ни tf ни file не null, т.к. если бы они были null то стек вызовов бы на этом месте и заканчивался, а он идет дальше.

Не понял. Ведь он этим и обрывается:
Цитата
at imageuploader.ImageUploader$1.valueChanged(ImageUploader.java:69)

Поясни, плиз.

Ты прав это я стормозил, я заметил классы ShurikA только в середине стека, а самый последний нет.
Добавлено @ 20:10
Все таки кто-то из этих двоих null надо выяснить кто, замени:
Код
tf.setText(file.getName());

на
Код
String str = file.getName();
tf.setText(str);



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 22.11.2005, 21:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Что происходит когда в JList отмечается обьект?
Потому как когда после того как что то отмеченно пытаюсь очистить список при помощи removeAllElements() он орёт:
Код

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at imageuploader.ImageFrame.setNew(ImageFrame.java:40)
    at imageuploader.ImageUploader$1.valueChanged(ImageUploader.java:69)
    at javax.swing.JList.fireSelectionValueChanged(JList.java:1317)
    at javax.swing.JList$ListSelectionHandler.valueChanged(JList.java:1331)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:187)
    at javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
    
...



--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
batigoal
Дата 22.11.2005, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 3
Всего: 151



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


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
ShurikA
Дата 22.11.2005, 23:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Перерисовки сейчас вообще не происходит, я её убрал... smile


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
LSD
Дата 23.11.2005, 00:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 9
Всего: 538



Цитата(ShurikA @ 22.11.2005, 21:07)
Что происходит когда в JList отмечается обьект?
Потому как когда после того как что то отмеченно пытаюсь очистить список при помощи removeAllElements() он орёт:

Судя по стеку проблема в твоем коде, в imageuploader.ImageFrame.setNew(ImageFrame.java:40) что там происходит и должен ли он вызываться при изменении JList?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ShurikA
Дата 23.11.2005, 10:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



В данный момент я всё убрал, всё что я делаю это вычищаю List, и не более того. Так что imageuploader.ImageFrame.setNew тут не причём.


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
batigoal
Дата 23.11.2005, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 3
Всего: 151



Цитата(ShurikA @ 23.11.2005, 11:02)
В данный момент я всё убрал, всё что я делаю это вычищаю List, и не более того.

Возможно, при этом возникает одно из событий, на которые у тебя повешены обработчики. Например, событие изменения выделенного элемента.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
ShurikA
Дата 23.11.2005, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



На самом деле очистка листа повешенна на событие изменения выделенного элемента. И это единственное что там есть. Просто:
Код

.
   dirFileList.removeAllElements();
.



--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
batigoal
Дата 23.11.2005, 11:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 3
Всего: 151



Ну вот, смотри: список очищается --> выделение с удаляемого элемента снимается --> возникает это событие. Нужно просто добавить в обработчике проверку на то, выбрано ли у тебя вообще что-нибудь.

Или ты имеешь в виду, что выбирается элемент в одном списке, а очищается другой?

Это сообщение отредактировал(а) Lamer George - 23.11.2005, 11:16


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
ShurikA
Дата 23.11.2005, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Цитата(Lamer @ 23.11.2005, 10:15)
Ну вот, смотри: список очищается --> выделение с удаляемого элемента снимается --> возникает это событие. Нужно просто добавить в обработчике проверку на то, выбрано ли у тебя вообще что-нибудь.

Я это говорил несколько топиков назад. Просто пока не удалось с этом побороться.


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
ShurikA
Дата 23.11.2005, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Нашол!!!!! smile
Код

.
.
.
dirFileList.getList().addListSelectionListener(new ListSelectionListener()
        {
            public void valueChanged(ListSelectionEvent e)
            {
                  JList list = (JList) e.getSource();
                  File file = (File) list.getSelectedValue();
                  if(file != null)
                      frame.setNew(file);
                  //tf.setText(file.getName());
            }
        });
.
.
.



--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
batigoal
Дата 23.11.2005, 13:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 3
Всего: 151



Собственно, именно эту строку (if(file != null)) я и пытался тебе внушить smile


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
ShurikA
Дата 23.11.2005, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

Репутация: 1
Всего: 3



Цитата(Lamer @ 23.11.2005, 12:54)
Собственно, именно эту строку (if(file != null)) я и пытался тебе внушить 

Я понял что её надо кудуто впихнуть но только сейчас догнал кудаsmile


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Апплеты | Следующая тема »


 




[ Время генерации скрипта: 0.1296 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.