Inna czcionka windows i linux

0

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?

0

Np: Wykrywaj w jakim systemie jest teraz program uruchomiony, i odpowiednio zmieniaj czcionki. ;-)

0

Dodałem if w którym za pomocą System.getProperty("os.name") wykrywam czy program jest uruchomiony pod linuxem i wtedy zmieniam czcionki

0

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.

0

Tylko, że w takim przypadku musiałbym przenosić komponenty ponieważ by na siebie nachodziły, a to już zmienia wygląd programu.

0

Jeszcze inna metoda. Razem z programem rozprowadzasz plik czcionek i tyle. Tylko musisz wybrać jakiś opensourcowy wzór.

0

Użyłem metody kolegi Koziołek, chyba jest najlepsze rozwiązanie tego problemu. Dziękuje za pomoc.

0
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.

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