Program napisany w BlueJ pod windowsem, gdy uruchomiany jest na linuxie to czcionki sa rozciągnięte w nie mieszczą sie w komponentach. Co można w tym wypadku zrobić aby program był prawidłowo wyswietlany na obu systemach?
Np: Wykrywaj w jakim systemie jest teraz program uruchomiony, i odpowiednio zmieniaj czcionki. ;-)
Dodałem if w którym za pomocą System.getProperty("os.name") wykrywam czy program jest uruchomiony pod linuxem i wtedy zmieniam czcionki
Równie dobrze możesz policzyć szerokość wyrenderowanego napisu czcionką jaka jest użyta w komponencie i na podstawie tej szerokości ustawiać preferowaną szerokość komponentu. To rozwiązuje problem docelowo bo na jakim systemie byś uruchomił, to zawsze będzie dobrze.
Tylko, że w takim przypadku musiałbym przenosić komponenty ponieważ by na siebie nachodziły, a to już zmienia wygląd programu.
Jeszcze inna metoda. Razem z programem rozprowadzasz plik czcionek i tyle. Tylko musisz wybrać jakiś opensourcowy wzór.
Użyłem metody kolegi Koziołek, chyba jest najlepsze rozwiązanie tego problemu. Dziękuje za pomoc.
HaMmEr6952 napisał(a)
Tylko, że w takim przypadku musiałbym przenosić komponenty ponieważ by na siebie nachodziły, a to już zmienia wygląd programu.
Właśnie po to istnieją layout mangery. Nie obchodzi Cię rozdzielczość, bieżące wielkości elementów, a tylko rozmieszczenie elementów względem siebie. Jedynym wymaganiem jest ustalenie minimalnej wielkości pola aby wszystkie komponenty mieściły się. Obecnie może to być dolne wymaganie rozdzielczości np. 800x600 i dla niej zaprojektować formatki z uwzględnieniem zapasu wielkości czcionek. Dobrze zaprojektowana formatka będzie prawidłowo wyglądać zarówno dla czcionek o wielkości 10 jak i 20. Podobnie ze stylami znaków.
Robienie formatki tyko pod jeden rozmiar nie działa dobrze - choćby z powodu czcionek i wymiarów różnych ekranów.
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.