Pomoc przy programie - wyświetlanie linii na mapie

0

Proszę o pomoc w znalezieniu, dlaczego program nie działa. Na pewno funkcje Odczyt i RysujLinie są zrobione dobrze, bo wcześniej działały. Dołączam projekt spakowany zipem.

1

W RadioButonRysuj czy nie powinno być tak?(ogólnie flagi są zamienione)

public void actionPerformed(ActionEvent e) {
	obrazPanel.rysujLinie = this.isSelected();
	obrazPanel.repaint();
}
0

Dziękuję. Teraz linie rysują się, ale niestety tylko do połowy. Przed wprowadzeniem do RysujLinie dodatkowo pętli z nr-em RadioButtonu rysowały się całe. Niestety w pliku Izolinie linie są dla każdej godziny takie same, więc nie można sprawdzić, czy ta zmiana w pierwszym wymiarze pętli zmieni też to, co jest rysowane.

1

Nie wiem co chciałeś osiągnąć zmieniając wartość pola rysujLinie, ale nie zmieniasz tego pola. Kod ma krótszy, równoważny zapis:

public void actionPerformed(ActionEvent e) {
    obrazPanel.rysujLinie = true;
    obrazPanel.repaint();
}

Masz błąd w funkcji rysującej, Powinno być

	        		for(int j = 0; j< odczyt.linie[i].length; j++)
	        		{
	        			System.out.println("WW");
	        			for(int k = 0; k< odczyt.linie[i][j].length - 1 ; k++) //<- tu było źle
	        			{

Program jest zupełnie nieodporny na brak plików Mapa.jpg i Izolinie.

0

Jeszcze jedno. Dlaczego odczytujesz plik Izolinie wielokrotnie (w metodzie paintComponent)? On powinien być czytany raz, na starcie programu. Jeśli przewidujesz, że ten plik może zostać podmieniony podczas programu, to dodaj przycisk, który odczyta nową wersję pliku.

1 użytkowników online, w tym zalogowanych: 0, gości: 1