Java . Wydobywanie obiektu klasy z JList.

Java . Wydobywanie obiektu klasy z JList.
X3
  • Rejestracja:ponad 9 lat
  • Ostatnio:2 miesiące
  • Postów:308
0

Witam. Mam klasę:

Kopiuj
public class ChannelData 
{
    private String AName;
    private String AUrl;
    private String AGfxUrl;
}

Dodałem do JList:

Kopiuj
 JList<ChannelData> channelList = new JList<>(listModel);
owner.add(new JScrollPane(channelList));

Moje pytanie:
Jak teraz pobrać np. AUrl konkretnego klkniętego item?
Zrobiłem tak:

Kopiuj
        public void mouseClicked(MouseEvent evt) 
        {
            JList list = (JList)evt.getSource();
            if (evt.getClickCount() == 2) 
            {                
                // Double-click detected
                int index = list.locationToIndex(evt.getPoint());
                ListModel model = list.getModel();
            }
        }
    }

Nie wiem ,co dalej.

bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0
Kopiuj
model.getElementAt(index);

Dlaczego komplikujesz kod programu i życie użytkownika wymagając podwójnego kliknięcia?


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
X3
  • Rejestracja:ponad 9 lat
  • Ostatnio:2 miesiące
  • Postów:308
0

Z przyzwaczejnia z delphi i c++. A mógłbyś odpowiedzieć na moje pytanie. Zależy mi, bo piszę mój pierwszy program w javie. Na razie dużo pytań.
model.getElementAt(index);
I...?
Zrobiłem tak:
Object o = model.getElementAt(index);
Ale nie można pobrać AUrl.

edytowany 2x, ostatnio: xenix33
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

Jeśli klasy są w jednym pakiecie, to zmień modyfikator dostępu"

Kopiuj
protected String AUrl;

W przeciwnym razie dopisz getter w klasie ChannelData

Kopiuj
public String getAUrl()
{
    return AUrl;
}

Zmień też

Kopiuj
Object o = model.getElementAt(index);

na

Kopiuj
ChannelData channel = model.getElementAt(index);
Kopiuj

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 2x, ostatnio: bogdans
X3
  • Rejestracja:ponad 9 lat
  • Ostatnio:2 miesiące
  • Postów:308
0

Dzięki. Będzie łatwiej.

X3
  • Rejestracja:ponad 9 lat
  • Ostatnio:2 miesiące
  • Postów:308
0

Ale trzeba ChannelData channel = (ChannelData) model.getElementAt(index);
Chodzi supwer.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.