• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

FXCollections.observableArrayList() - iteracja

Cloud VPS
0 głosów
434 wizyt
pytanie zadane 30 sierpnia 2016 w Java przez kaminki Obywatel (1,030 p.)
edycja 30 sierpnia 2016 przez kaminki

Mam problem z wyświetlaniem zawartości ObservableList.

public static void getValues(){
		try {
			connectToDatabase();
				
			sql = "SELECT * FROM wordsToTranslation" ;
			
			executeSql2(sql);
			
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
	}

private ObservableList<TableDB> data = FXCollections.observableArrayList();

public void getValuesFromDb() throws SQLException{
		
		getValues();
		int i = 1;
			while(resultSet.next()){
				data.add(new TableDB(resultSet.getInt(1), resultSet.getString(3), resultSet.getString(2)) );
				System.out.println(i + " " + data.get(3).toString());
				i++;
		}
	}

public void initialize(URL arg0, ResourceBundle arg1) {
		
		try {
			getValuesFromDb();
		} catch (SQLException e) {
			e.printStackTrace();
		}
}

 

W metodzie getValuesFromDb() dodaję dane z bazy danych do data i dopisałem do testu

System.out.println(i + " " + data.get(3).toString());

aby zobaczyć czy wszystko się wyświetli. W bazie danych w tabeli mam 3 kolumny id, namePL oraz nameEN. Jest około 11000 wierszy w tabeli. W każdym wierszu namePL jest słowo "brak" a w nameEN są różne zdania. Gdy chcę wyświetlić id to wszystko jest ok. Gdy namePL to zaczyna się gdzieś od pozycji 2500 i do końca a gdy nameEN to od pozycji około 9000 do końca. Wygląda na to że coś z pamięcią jest nie tak a nie mogę nic na ten temat znaleźć bo id jako cyfry pokazuje wszystkie, słowa polskie jako że są tylko słowa "brak" to nie zajmują dużo miejsca i pokazuje się więcej pozycji niż gdy w przypadku angielskiej nazwy gdzie są zdania.

komentarz 30 sierpnia 2016 przez kaminki Obywatel (1,030 p.)
Wygląda to tak, że gdy chcę wyświetlić wartości z tabeli, w której jest więcej tekstu to pokazuje mniej pozycji (od pewnego miejsca do końca ). Wygląda jak by była ograniczona pojemność i więcej nie pokaże.

1 odpowiedź

+1 głos
odpowiedź 30 sierpnia 2016 przez Leszek Szymański Gaduła (3,180 p.)
wybrane 30 sierpnia 2016 przez kaminki
 
Najlepsza
Spróbuj wrzucić wynik do pliku a nie na ekran, może jest jakiś bufor wyświetlanych danych.
komentarz 30 sierpnia 2016 przez kaminki Obywatel (1,030 p.)
Ale ogólnie wyświetla się dobrze w tableView. Problem jest w konsoli. A potrzebuję tego do iteracji żeby przejść przez wszystkie wiersze i na podstawie słowa angielskiego wczytywać słowa polskie ze słownika. A iteracja rozpoczyna się nie od początku tylko od około pozycji 9000.
1
komentarz 30 sierpnia 2016 przez Leszek Szymański Gaduła (3,180 p.)
A próbowałeś uruchomić apliację w trybie Debug i sprawdzić co sie dzieje?? Wydaje mi się że wszystko działa jak należy tylko bufor jest za mały(raczej jest to opcja ustawień środowiska) i dlatego "zawija wynik danych", nadpisuje to co było wcześniej.
komentarz 30 sierpnia 2016 przez kaminki Obywatel (1,030 p.)
Wszystko już działa. Pracuję w eclipsie i wyłączyłem "Limit console output". BYło ograniczenie i dlatego nie pokazywało wszystkiego

Podobne pytania

0 głosów
2 odpowiedzi 3,555 wizyt
pytanie zadane 26 stycznia 2017 w Java przez 0xf Dyskutant (8,180 p.)
+1 głos
1 odpowiedź 384 wizyt
pytanie zadane 27 lipca 2022 w Java przez michal441599 Użytkownik (530 p.)
0 głosów
1 odpowiedź 560 wizyt
pytanie zadane 28 października 2018 w Java przez ILikeJava Obywatel (1,230 p.)

93,453 zapytań

142,448 odpowiedzi

322,717 komentarzy

62,830 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...