JPanel i pierwsza prosta aplikacja

0

Witam, moje pytanie dotyczy dokładnie efektownego przełączania się między panelami, a dokładnie: chcę zrobić prostą aplikację w, której będę mógł oglądać kody do wykorzystania - ogólnie tekst. Chcę stworzyć menu, w którym po wybraniu odpowiedniej pozycji uruchamia (lub tworzy) się odpowiedni panel - to chyba lepsze rozwiązanie niż jeden panel i manipulowanie metodą paintComponent...i tutaj właśnie kolejne pytanie: jak to jest rozwiązane w profesjonalnych "prostych" aplikacjach?

0

metoda paintComponent nie służy do operacji na tekście.

0

Może zakładki? JTabbedPane.

0
to tylko ja napisał(a)

metoda paintComponent nie służy do operacji na tekście.

tak wiem - tylko porównywałem jtextarea z paintComponent...

to może inaczej: jak w Javie wyświetlać efektywnie dużą ilość tekstu, bo raczej JTextArea do tego się nie nada... czy dobrze korzystać z listy, czy też JTable?

0

TextArea się nada - ewentualnie JTextPane - nie ma problemu z dużą ilością textu.

0
to tylko ja napisał(a)

TextArea się nada - ewentualnie JTextPane - nie ma problemu z dużą ilością textu.

bo np. chciałbym wyświetlać jako tekst jakiegoś e-booka lub plik tekstowy 30MB więc będą to setki tysięcy linii tekstu, dlatego obawiałem się że JTextArea to niedobry pomysł (bo pamięć)

0

To zależy jaki jest model użyty. W danym momencie kontrolka potrzebuje dostęp tylko do kodów znaków, które są renderowane na komponencie. Wystarczy niewielka przeróbka, a będziesz mógł swobodnie przeglądać zawartość nawet terabajtowego dysku sektor po sektorze (lub z dowolnym skokiem). Dzisiaj żadna użyteczna ilość tekstu nie jest problemem.

0
Olamagato napisał(a)

To zależy jaki jest model użyty. W danym momencie kontrolka potrzebuje dostęp tylko do kodów znaków, które są renderowane na komponencie. Wystarczy niewielka przeróbka, a będziesz mógł swobodnie przeglądać zawartość nawet terabajtowego dysku sektor po sektorze (lub z dowolnym skokiem). Dzisiaj żadna użyteczna ilość tekstu nie jest problemem.

jaka byłaby w takim razie Twoja propozycja?

0

Domyślny model tych kontrolek, które zaproponował "to tylko ja", jest zwykle zupełnie wystarczający. Dzisiaj nawet wrzucenie całego pliku 50 MB do pamięci RAM nie jest żadnym problemem (no chyba, że dla apletu, który z założenia pracuje domyślnie na maks. 128 MB).

0
Olamagato napisał(a)

Domyślny model tych kontrolek, które zaproponował "to tylko ja", jest zwykle zupełnie wystarczający. Dzisiaj nawet wrzucenie całego pliku 50 MB do pamięci RAM nie jest żadnym problemem (no chyba, że dla apletu, który z założenia pracuje domyślnie na maks. 128 MB).

czyli rozumiem jeżeli przypiszę kontrolce JTextArea String'a czy byte[], który zawiera tysiące znaków odczytanych z 30MB pliku to będzie wystarczające rozwiązanie do obsługi takiego tekstu...

0

Tak. Tylko wczytuj te dane w osobnym wątku, żeby nie przyblokować normalnej pracy. Odczyt danych z dysku jest wciąż 100 razy wolniejszy niż zapis do gołego RAM bez cache. A danych jest sporo więcej niż kiedyś.

0

Czyli po prostu bufor

0

Żaden bufor.

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