PO Graficzny interfejs użytkownika - ćwiczenia: Różnice pomiędzy wersjami
Linia 383: | Linia 383: | ||
'''public''' '''void''' run() { | '''public''' '''void''' run() { | ||
'''new''' Zad6(); | '''new''' Zad6(); | ||
} | |||
}); | |||
} | |||
} | |||
</div> | |||
</div>}} | |||
== Zadanie 7 == | |||
Komponenty Swing wyświetlające tekst obsługują formatowanie HTML. Korzystając z tego udogodnienia stwórz prostą aplikację wyświetlającą stronę HTML znajdującą się pod zadanym adresem URL. Do wyświetlania strony użyj obiektu ''JEditorPane''. Do odczytywania strony użyj obiektu ''java.net.URL''. | |||
{| border="1" | |||
|+ Podgląd działającego rozwiązania | |||
! Archiwum JAR !! Applet | |||
|- | |||
| Żeby uruchomić przykład [[media:PO_GUI_Zad7.jar|Po_GUI_Zad7.jar]] ściągnij najpierw archiwum jar na swój komputer (możesz to zrobić klikając na odnośniku prawym klawiszem myszy i wybierając "Zapisz jako...") i uruchom jak zwykły program. || <applet code="applet.Zad7Applet" archive="images/d/db/PO_GUI_Applety.jar" width="500" height="380"></applet> | |||
|} | |||
{{wskazowka| 1 ||<div class="mw-collapsible mw-made=collapsible mw-collapsed"><div class="mw-collapsible-content" style="display:none"> | |||
Metoda ''setPage(URL)'' nie usuwa wszystkich informacji o poprzednio wyświetlanej stronie, np. definicji stylów. | |||
Aby pozbyć się wszystkich pozostałości należy utworzyć nowy dokument przy pomocy wywołania ''getEditorKit().createDefaultDocument()'' i przekazać go do metody ''setDocument()''. | |||
</div> | |||
</div>}} | |||
{{rozwiazanie| kod ||<div class="mw-collapsible mw-made=collapsible mw-collapsed"><div class="mw-collapsible-content" style="display:none"> | |||
'''import''' java.awt.*; | |||
'''import''' java.awt.event.*; | |||
'''import''' javax.swing.*; | |||
'''public''' '''class''' Zad7 '''extends''' JFrame { | |||
JEditorPane tekst = '''new''' JEditorPane(); | |||
JTextField adres = '''new''' JTextField("http://www.google.pl"); | |||
JButton przycisk = '''new''' JButton("Wczytaj stronę"); | |||
Zad7() { | |||
'''super'''("Okno ZliczanieKliknięć"); | |||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | |||
ActionListener wczytajStronę = '''new''' ActionListener() { | |||
'''public''' '''void''' actionPerformed(ActionEvent ev) { | |||
java.net.URL url = '''null'''; | |||
'''try''' { | |||
//poprzedni dokument mógł pozostawić style | |||
tekst.setDocument(tekst.getEditorKit().createDefaultDocument()); | |||
url = '''new''' java.net.URL(adres.getText()); | |||
tekst.setPage(url); | |||
} '''catch''' (Exception e) { | |||
System.err.println("Błędny URL: " + url); | |||
tekst.setText("Błędny URL: " + url + "\n" + e.getMessage()); | |||
} | |||
} | |||
}; | |||
adres.addActionListener(wczytajStronę); | |||
przycisk.addActionListener(wczytajStronę); | |||
JScrollPane suwaki = '''new''' JScrollPane(tekst); | |||
add(suwaki); | |||
Box box = '''new''' Box(BoxLayout.X_AXIS); | |||
box.add(przycisk); | |||
box.add(Box.createHorizontalStrut(10)); | |||
box.add(adres); | |||
add(BorderLayout.SOUTH, box); | |||
setSize(500,400); | |||
setVisible(true); | |||
} | |||
'''public''' '''static''' '''void''' main(String[] args) { | |||
//aby uniknąć zakleszczeń, tworzenie GUI zawsze zlecamy dla wątku obsługi zdarzeń | |||
javax.swing.SwingUtilities.invokeLater('''new''' Runnable() { | |||
'''public''' void run() { | |||
'''new''' Zad7(); | |||
} | } | ||
}); | }); |
Wersja z 07:22, 31 sie 2006
Zadanie 1
W klasie WitajŚwiecie umieść w oknie głównym drugą etykietę z tekstem. Użyj w tym celu bezparametrowej metody add(). Czemu obie etykiety nie są widoczne?
Archiwum JAR | Applet |
---|---|
Żeby uruchomić przykład Po_GUI_Zad1.jar ściągnij najpierw archiwum jar na swój komputer (możesz to zrobić klikając na odnośniku prawym klawiszem myszy i wybierając "Zapisz jako...") i uruchom jak zwykły program. | <applet code="applet.Zad1Applet" archive="images/d/db/PO_GUI_Applety.jar" width="300" height="120"></applet> |
Rozwiązanie kod
Rozwiązanie wyjaśnienie
Zadanie 2
Zmodyfikuj klasę GridLayoutTest, tak aby to trzecia pozycja w siatce (tam gdzie jest przycisk P3), a nie szósta była pusta.
Archiwum JAR | Applet |
---|---|
Żeby uruchomić przykład Po_GUI_Zad2.jar ściągnij najpierw archiwum jar na swój komputer (możesz to zrobić klikając na odnośniku prawym klawiszem myszy i wybierając "Zapisz jako...") i uruchom jak zwykły program. | <applet code="applet.Zad2Applet" archive="images/d/db/PO_GUI_Applety.jar" width="300" height="120"></applet> |
Rozwiązanie kod
Zadanie 3
Wyświetl okno o rozmiarach 300 na 150, zawierające na górze pięć przycisków: P1, P2, P3, P4 i Bardzo długi przycisk rozmieszczonych przez GridLayout o dwóch wierszach i trzech kolumnach, a na dole takie same pięć przycisków rozmieszczonych przy pomocy FlowLayout. Grupy przycisków powinny być rozmieszczone na oknie przez BorderLayout. Sprawdź czy wszystkie przyciski mieszczą się w oknie o tych rozmiarach.
Archiwum JAR | Applet |
---|---|
Żeby uruchomić przykład Po_GUI_Zad3.jar ściągnij najpierw archiwum jar na swój komputer (możesz to zrobić klikając na odnośniku prawym klawiszem myszy i wybierając "Zapisz jako...") i uruchom jak zwykły program. | <applet code="applet.Zad3Applet" archive="images/d/db/PO_GUI_Applety.jar" width="300" height="120"></applet> |
Rozwiązanie kod
Zadanie 4
Używając BoxLayout i obiektów klasy Box przygotuj program wyświetlający 5 przycisków rozmieszczonych w dwóch kolumnach (w pierwszej trzy w drugiej dwa). Niech w każdej kolumnie przyciski będą wyśrodkowane. Porównaj efekt z przykładem GridLayoutTest.
Archiwum JAR | Applet |
---|---|
Żeby uruchomić przykład Po_GUI_Zad4.jar ściągnij najpierw archiwum jar na swój komputer (możesz to zrobić klikając na odnośniku prawym klawiszem myszy i wybierając "Zapisz jako...") i uruchom jak zwykły program. | <applet code="applet.Zad4Applet" archive="images/d/db/PO_GUI_Applety.jar" width="300" height="120"></applet> |
Wskazówka 1
Wskazówka 2
Rozwiązanie kod
Zadanie 5
Przygotuj program wyświetlający przycisk, który po najechaniu na niego myszką zmienia położenie. Do zmiany położenia użyj CardLayout.
Archiwum JAR | Applet |
---|---|
Żeby uruchomić przykład Po_GUI_Zad5.jar ściągnij najpierw archiwum jar na swój komputer (możesz to zrobić klikając na odnośniku prawym klawiszem myszy i wybierając "Zapisz jako...") i uruchom jak zwykły program. | <applet code="applet.Zad5Applet" archive="images/d/db/PO_GUI_Applety.jar" width="300" height="120"></applet> |
Wskazówka 1
Wskazówka 2
Rozwiązanie kod
Zadanie 6
Rozszerz klasę Dodawanie o możliwość zmiany działania na mnożenie. Niech wybór działania będzie możliwy przy pomocy przycisku combo (JComboBox). Niech wynik będzie obliczany zarówno, gdy zostanie zaakceptowana wartość, z któregoś z pól oraz gdy zostanie zmienione działanie. Niech zawartość pól tekstowych będzie wyśrodkowana do prawej.
Archiwum JAR | Applet |
---|---|
Żeby uruchomić przykład Po_GUI_Zad6.jar ściągnij najpierw archiwum jar na swój komputer (możesz to zrobić klikając na odnośniku prawym klawiszem myszy i wybierając "Zapisz jako...") i uruchom jak zwykły program. | <applet code="applet.Zad6Applet" archive="images/d/db/PO_GUI_Applety.jar" width="300" height="120"></applet> |
Rozwiązanie kod
Zadanie 7
Komponenty Swing wyświetlające tekst obsługują formatowanie HTML. Korzystając z tego udogodnienia stwórz prostą aplikację wyświetlającą stronę HTML znajdującą się pod zadanym adresem URL. Do wyświetlania strony użyj obiektu JEditorPane. Do odczytywania strony użyj obiektu java.net.URL.
Archiwum JAR | Applet |
---|---|
Żeby uruchomić przykład Po_GUI_Zad7.jar ściągnij najpierw archiwum jar na swój komputer (możesz to zrobić klikając na odnośniku prawym klawiszem myszy i wybierając "Zapisz jako...") i uruchom jak zwykły program. | <applet code="applet.Zad7Applet" archive="images/d/db/PO_GUI_Applety.jar" width="500" height="380"></applet> |
Wskazówka 1
Rozwiązanie kod