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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Список 
V
    Опции темы
filipp76
  Дата 19.5.2007, 19:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 4.4.2007
Где: Украина, Киев

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



Подниму эту тему чтоб не начинать новую. Как в данном случае получить текст из JList?
Добавляю элементы так
Код

    Icon i = new ImageIcon(clSpyTabbedThread.class.getResource("user.png"));
    DefaultListModel listModel = new DefaultListModel();
    ImageListElement im= new ImageListElement(i, "aaaaa");//просто для теста, вот этот текст после добавления хочу вернуть обратно 
    jUList.setModel(listModel);
    listModel.addElement(im);
    jUList.setCellRenderer(new ImageListCellsRedender());

Все добавляется без проблем, но вот как при необходимости достать текст оттуда так и не понял. Может это не логично но пробовал так - в класс ImageListElement добавил метод
Код

  public static String getListText(){
   return(text);   
  }

Дальше 
Код

ImageListElement gT=listModel.getElementAt(0);

После чего собирался своим методом забирать текст, но не работает, ругается на не совместимость типов. Но я не могу понять почему!! тогда эта строка работает, ведь тут в качестве параметра надо отдавать Object, почему же я его обратно забрать не могу??? Подскажите пожалуйста, прошу строго не судить мой метод...), я только учусь..)
Код

listModel.addElement(im);


Это сообщение отредактировал(а) filipp76 - 19.5.2007, 19:29
PM MAIL WWW ICQ   Вверх
powerOn
Дата 19.5.2007, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(filipp76 @  19.5.2007,  20:28 Найти цитируемый пост)
Может это не логично но пробовал так - в класс ImageListElement добавил метод

Цитата(filipp76 @  19.5.2007,  20:28 Найти цитируемый пост)
public static String getListText(){

Как это ты так, к не статическому полю обращаешься из статического метода? Но в целом идея правильная.
Если ругается на тип, то попробуй явное приведение. Или перепиши классы с использованием generic.






--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
filipp76
Дата 20.5.2007, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 4.4.2007
Где: Украина, Киев

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



Цитата(powerOn @  19.5.2007,  21:06 Найти цитируемый пост)
Как это ты так, к не статическому полю обращаешься из статического метода?

Поле сделал статическим. Тут отладчик сработал как надо и тыкнул меня носом smile 

Цитата(powerOn @  19.5.2007,  21:06 Найти цитируемый пост)
попробуй явное приведение

Я бы с радостью, но как? Не знаю как это делается.

Цитата(powerOn @  19.5.2007,  21:06 Найти цитируемый пост)
Или перепиши классы с использованием generic.

Про generic, вообще первый раз слышу..(( Нашел инфу про это тут - enericsinjava, но успел прочитать только раз и толком ничего не понял smile 
Мне кажется что явное приведение типов мне поможет, скорей всего с этим мне кажется легче будет разобратся, только подскажите пожалуйста как это делается.

P.S. Я никак не могу понять почему
Код

    ImageListElement im= new ImageListElement(i, "aaaaa");
    listModel.addElement(im);//параметр типа Object, почему тут не ругается на не совпадение типов???
    ImageListElement im=listModel.getElementAt(0);//а тут ругается!..


Это сообщение отредактировал(а) filipp76 - 20.5.2007, 00:54
PM MAIL WWW ICQ   Вверх
powerOn
Дата 20.5.2007, 00:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(filipp76 @  20.5.2007,  01:27 Найти цитируемый пост)
Поле сделал статическим. 

зачем?  smile  У тебя это поле должно быть общим для всех объектов этого класса? У всех элементов таблицы одна и таже строка?

так попробуй:
Цитата(filipp76 @  20.5.2007,  01:27 Найти цитируемый пост)
ImageListElement im= (ImageListElement) listModel.getElementAt(0);



Это сообщение отредактировал(а) powerOn - 20.5.2007, 00:43


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
filipp76
Дата 20.5.2007, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 4.4.2007
Где: Украина, Киев

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



Цитата(powerOn @  20.5.2007,  00:43 Найти цитируемый пост)
ImageListElement im= (ImageListElement) listModel.getElementAt(0);

Спасибо, работает!

Цитата(powerOn @  20.5.2007,  00:43 Найти цитируемый пост)
зачем?    У тебя это поле должно быть общим для всех объектов этого класса? У всех элементов таблицы одна и таже строка?

У меня почти все методы статические, это наверно частая ошибка новичков. Объясню почему.
У меня есть класс А, в нем есть private поле mas[][](тип не важен), я хочу получать длинну масива из любого класса, для этого пишу метод
Код

  public int getMasLength(){
   return(mas.length);    
  }

Но с других классов у меня этого метода не видно..пока я не сделаю его статическим, при этом конечно вылазит ошибка что mas не объявлен как static, потому мне и его приходится делать статическим. В чем моя ошибка?
Кстати в данном случае все нормально, убрал статик перед полем и методом, все работает.


PM MAIL WWW ICQ   Вверх
powerOn
Дата 20.5.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


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

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



Цитата(filipp76 @  20.5.2007,  02:08 Найти цитируемый пост)
Но с других классов у меня этого метода не видно..пока я не сделаю его статическим, при этом конечно вылазит ошибка что mas не объявлен как static, потому мне и его приходится делать статическим. В чем моя ошибка?

Значит у вас либо метод, либо поле объявлено как static. Уберите его и с метода и с поля. Из статического метода нельзя обращаться к не статическим данным. Статические данные общие для всех экземпляров данного класса. Они не привязаны к конкретному объекту. Еще рекомендую прочитать главу об этом в учебнике.

Объявите так:
Код

private int mas; // здесь тип не важен, но быть он конечно же должен.
public int getMas()
{
    return mas;
}



--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
filipp76
Дата 20.5.2007, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 4.4.2007
Где: Украина, Киев

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



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

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

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


 




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


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

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