Witajcie!

Zawsze nienawidziłem obsługiwania czarnych okienek, sprawiania, by ładnie wyglądały generowane w nich komunikaty. Dlatego razem z pisaniem swoich programów (których nie będę zamieszczał, aby nie spadła reputacja forum :P) pisałem klasę "Pomocnik". Zawiera ona kilka prostych metod, mam nadzieję, że się Wam przyda.

Proszę też o rady: jakie metody byłyby jeszcze mile widziane?, co by tu jeszcze ulepszyć?, jakie nadać metodom sensowne nazwy?Zdaję sobie sprawę, że z punktu widzenia optymalizacji użycie StringTokenizer'a nie jest zbyt dobre; jednak pierwotnie pisałem program na własne potrzeby.

Tutaj taka mała dokumentacja:

Na wstępie zaznaczę, że klasa Pomocnik korzysta jeszcze z klasy OknoPostepu, które miało być wstępem do przejścia na GUI. Zrezygnowałem jednak z zamieszczania tek części kodu, aby się nie ośmieszyć.

Klasa pomocnik zawiera tylko metody statyczne.

  1. Inicjalizacja
  2. Podstawowa metoda
  3. Wyrównywanie tekstu
  4. Paragrafy
  5. Listy
  6. Tabele
  7. Odczyt danych wprowadzonych przez użytkownika

1. Inicjalizacja
Przed użyciem klasy należy użyć metody "boolean setSzerokoscOkna(int szerokosc)" (wartość wynikowa informuje, czy udało się zmienić wartość składowej). Zaimpletowałem kilka domyślnych wartości, proszę o propozycje nowych.
public static final int SZEROKOSC_STANDART_FULLSCREEN = 80;
public static final int SZEROKOSC_1024 = 125;
public static final int SZEOKOSCC_NETBEANS_1024 = 142;
public static final int SZEROKOSC_HIGHWIDTH = 200;
public static final int SZEROKOSC_SUPERHIGHWIDTH = 300;
Analogiczne funkcje: "int getSzerokoscOkna()".

2. Podstawowa metoda
Podstawową metodą klasy "Pomocnik" jest "boolean komunikat(String tekst)" (wartość wynikowa informuje, czy udało się zmienić wartość składowej).
Jest ona odpowiednikiem metody "System.out.println()", jednak tekst zostaje wcześniej odpowiednio sformatowany, na podstawie różnych ustawień, o których mowa niżej.
Analogiczne funkcje: "boolean komunikatW(String tekst)" - nie drukuje na końcu znaku nowej linii.

3. Wyrównywanie tekstu
Można ustawić wyrównanie tekstu za pomocą funkcji "boolean setWyrownanie(int jednaZPonizszychStalych)" (wartość wynikowa informuje, czy udało się zmienić wartość składowej).
public static final int WYROWNANIE_LEFT = 0;
public static final int WYROWNANIE_CENTER = 1;
public static final int WYROWNANIE_RIGHT = 2;
public static final int WYROWNANIE_JUSTIFITY = 3;
Analogiczne funkcje: "int getWyrownanie()".

4. Paragrafy
Tekst można ustawiać w tzw. "paragrafy". Oto przykład:
Początek metody main.
Inicjalizacja zmiennych.
Zainicjalizowano zmienną "a".
Zainicjalizowano zmienną "b".
KONIEC INICJALIZOWANIA
GUI
Stworzenie GUI
Zainicjalizowanie JTextArea
Wpisanie tekstu
Dodanie do JScrollPane
Zainicjalizowanie JText
Wystąpił błąd!

Jak widać "paragrafy" służą do wizualnego rozmieszczenia elementów, podobnie jak folderów w drzewie.
Metody związane z paragrafami:

  • "boolean setWielkoscWciecia(int wielkosc)" - ustawia liczbę spacji, jaką program dodaje na początku każdego wiersza, jeśli jest się "wewnątrz" jakiegoś paragrafu. Analogiczna funkcja: "int getWielkoscWciecia()".
  • "void paragraf(String tekst)" - rozpoczyna nową "gałąź" o tytule "tekst". Jest nią np. "Inicjalizacja zmiennych".
  • "void koniecParagrafu()" - zakończenie danej gałęzi; nie pobiera Stringa; jeśli chcesz wyświetlić np. napis "KONIEC INICJALIZOWANIA", to posłuż się normalnie metodą "boolean komunikat(String tekst)".
  • "boolean komunikat(String tekst)" - np. "Zainicjalizowano zmienną 'a'".
  • "void zerujParagraf()" - jeśli w czasie działania progarmu wystąpi błąd i obsłużysz go catch'em, to niestety nie wiesz, jaki jest poziom "zagłębienia" paragrafów. Wówczas korzystasz z tej metody. Sprawia ona, że "wcięcie jest zerowane". Użyto np. przed "Wystąpił błąd".
    UWAGA!!! Korzystając z paragrafów, możesz też wyrównywać tekst, jednak nie jest to zalecane ze względów estetycznych.

5. Listy
Można też tworzyć listy (ale nie zagnieżdżone).
Do rozpoczęcia używamy: "void lista(String naglowek)", gdzie "naglowek" to tytuł listy.
Skończ listę, używając "void koniecListy()".
Użyj metod:

  • "boolean setSpacjiPrzedWypunktowaniem(int spacji)"; "int getSpacjiPrzedWypunktowaniem()" - jeśli chcesz zaznaczyć, ile ma byś spacji przed znakiem wypunktowania, jakim może być np. myślnik.
  • "boolean setWypunktowanie(String wypunktowanie)"; "String getWypunktowanie()" - jeśli chcesz ustalić, jakim znakiem ma być wypunktowanie.
  • "boolean setSpacjiPoWypunktowaniu(int spacji)"; "int getSpacjiPoWypunktowaniu()" - jeśli chcesz zaznaczyć, ile ma byś spacji po znaku wypunktowania.
    Twórz nowe punkty listy używając metody "boolean komunikat(String tekst)".

6. Tabele
Programik może też wyświetlać tabele. Korzystanie nie jest najłatwiejsze, ale po kolei:

"boolean tabela(int[] szerokosci)" - zwraca wartość reprezentującą, czy udało się rozpocząć tabelę.
Jako argument podajemy tablicę typu int prezentującą szerokości kolejnych kolumn.

Konfigurujemy używając metod:

  • void setLiniaNadNaglowkiem(boolean czyTak)
  • void setLiniaPodNaglowkiem(boolean czyTak)
  • void setLiniaPodKazdymWierszem(boolean czyTak)
  • void setLiniaNaKoncu(boolean czyTak)
  • void setLiniaPionowa(boolean czyTak)
  • boolean setDodatkoweWciecie(int ileSpacji)
  • void resetujUstawieniaTabeli() - zmienia wartości na początkowe:
    liniaNadNaglowkiem = false;
    liniaPodNaglowkiem = true;
    liniaPodKazdymWierszem = false;
    liniaNaKoncu = false;
    liniaPionowa = true;
    Można też odczytać te informacje, używając metod o tych samych nazwach, ale zaczynających się od "get", a nie "set".

Rysujemy nagłówek
"boolean naglowek(String[] teksty)" - jako parametry podajemy łańcuchy znaków, które będą się znajdowały w kolejnych kolumnach. Wynikiem funkcji jest informacja, czy się udało (liczba elementów tablicy "teksty" musi być równa "szerokosci" z "boolean tabela(int[] szerokosci").
Nagłówka możesz użyć tylko raz, tylko na początku, inaczej tabela będzie się źle wyświetlała.

Rysujemy kolejne wiersze
WYKONUJEMY TO UŻYWAJĄC METODY "void wiersz(String[] teksty), a nie "boolean komunikat(String tekst)"!!!

Kończymy tabelę
"void koniecTabeli()"

7. Odczyt danych wprowadzonych przez użytkownika
Użyj metody "String pobierzDane()", aby zapytać użytkownikma o dowolny łańcuch znaków.
UWAGA!!! Metoda ta nie tworzy nowego wiersza, tak więc należy wpierw użyć funkcji "boolean komunikatW(String tekst)".

Kod klasy:

Aby nie zaśmiecać forum, nie będę tu umieszczał kodu. Link do pliku .java macie tutaj: http://chomikuj.pl/krzysiumed/JAVA/Pomocnik/Wersja+1.00</b>