Przelać na papier

Na początek zajmiemy się okienkami dialogowymi. Klasą przeznaczoną do ich tworzenia jest JOptionPane zawarta w pakiecie javax.swing. Za pomocą jej statycznych metod:

showConfirmDialog()
showInputDialog()
showMessageDialog()

możemy tworzyć okienka dialogowe określonego typu. Pierwsza generuje okienko z pytaniem, na które oczekujemy odpowiedzi od użytkownika poprzez wciśnięcie przycisków Yes ,

No

lub Cancel. Mamy do wyboru kilka metod showConfirmDialog(), które różnią się między sobą pobieranymi parametrami:

JOptionPane.showConfirmDialog(null, “Czy chcesz zapisać podany plik?”);

Do tego typu metody przekazujemy tylko dwa argumenty: komponent okna rodzica (jeśli takiego nie ma, wpisujemy po prostu null) oraz obiekt wiadomości (może nim być łańcuch znakowy). Istnieje także inny typ takiej metody:

JOptionPane.showConfirmDialog(null, “Czy chcesz zapisać podany plik?”,”Tytuł okienka.”, JOptionPane.YES_NO_OPTION);

W tym wypadku podajemy dodatkowo w postaci łańcucha znakowego nazwę okienka widoczną na pasku tytułowym oraz zmienną statyczną klasy JOptionPane, wskazującą przyciski, które powinny być dostępne dla użytkownika. Możemy także skorzystać z jeszcze innego typu tej metody i podać także rodzaj wiadomości, którą przekazujemy, dzięki czemu wygląd ikonki w okienku będzie uzależniony od typu wiadomości, np. dla ostrzeżenia będzie to wykrzyknik, a dla pytania znak zapytania. Możemy również załadować własną ikonkę.

Druga metoda, czyli showInputDialog(), pobiera od użytkownika informację w postaci łańcucha znakowego wpisywanego do pola tekstowego umieszczonego w okienku. Najprostszy typ tej metody pobiera tylko obiekt wiadomości:

JOptionPane.showInputDialog(“Wpisz nazwę pliku:”);

Trzecia metoda klasy JOptionPane – showMessageDialog() podaje do użytkownika wiadomość w formie ostrzeżenia.

JOptionPane.showMessageDialog(null, “Wpisz poprawną nazwę pliku!”);

Tak jak w wypadku poprzednich metod, także i tu istnieją różne typy. Każda metoda służąca do tworzenia okienka określonego typu zwraca inną wartość.

showConfirmDialog()

zwraca liczbę całkowitą (0 –

JOptionPane.YES_OPTION

, 1 –

JOptionPane.NO_OPTION

lub 2 –

JOptionPane.CANCEL_OPTION

), w zależności od wciśniętego przez użytkownika przycisku. Metoda showInputDialog() zwraca zwykle obiekt typu String, a metoda showMessageDialog nie zwraca żadnej wartości. Działanie programu Test rozpoczyna się właśnie od pojawienia się okienka dialogowego, pobierającego od użytkownika jego imię i nazwisko:

…….
public class Test {
public static void main(String[ ] args) {
String nazwisko=JOptionPane. showInputDialog(“Wpisz imię i nazwisko:”);
if(nazwisko.equals(“”) || nazwisko. equals(” “))
{ System.exit(0); }
else {Okno okno=new Okno(nazwisko);
      Toolkit narz=Toolkit.
getDefaultToolkit();
      Dimension ekran=narz.
getScreenSize();
      int sz=ekran.width;
      int w=ekran.height-27;
      okno.setSize(sz,w);
      okno.setVisible(true);
      okno.setDefaultClose-Operation(3);
    }
} }

W metodzie main() naszej głównej klasy zaimplementowaliśmy zmienną nazwisko, która będzie przechowywała dane pobrane od użytkownika. Za pomocą instrukcji if-else sprawdzamy, czy użytkownik wpisał jakieś dane lub nie wpisał spacji. W tym wypadku nakazujemy zamknięcie programu:

System.exit(0);

. Jeśli proces wpisania danych przebiegł poprawnie, tworzymy okno programu za pomocą klasy Okno i definiujemy jego wielkość na cały ekran.