PO Graficzny interfejs użytkownika - ćwiczenia: Różnice pomiędzy wersjami
Nie podano opisu zmian |
|||
(Nie pokazano 14 wersji utworzonych przez 4 użytkowników) | |||
Linia 1: | Linia 1: | ||
{{powrot|Programowanie obiektowe|}} | {{powrot|Programowanie obiektowe|do przedmiotu Programowanie obiektowe}} | ||
{{powrot|PO | {{powrot|PO Graficzny interfejs użytkownika|do wykładu Graficzny interfejs użytkownika}} | ||
== Zadanie 1 == | == Zadanie 1 == | ||
Linia 13: | Linia 13: | ||
|} | |} | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | |||
<span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie kod</span> | |||
<div class="mw-collapsible-content" style="display:none"> | |||
'''import''' javax.swing.*; | '''import''' javax.swing.*; | ||
Linia 44: | Linia 46: | ||
} | } | ||
</div> | </div> | ||
</div> | </div> | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | |||
Widoczna będzie tylko etykieta dodana jako | <span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie wyjaśnienie</span> | ||
<div class="mw-collapsible-content" style="display:none"> | |||
Widoczna będzie tylko etykieta dodana jako ostatnia, gdyż w każdym rejonie (bezparametrowa metoda ''add()'' dodaje komponenty po środku) może znajdować się tylko jeden komponent. Kolejne dodawane komponenty zastępują poprzednie. | |||
</div> | |||
</div> | </div> | ||
== Zadanie 2 == | == Zadanie 2 == | ||
Zmodyfikuj klasę ''GridLayoutTest'', tak aby to trzecia | Zmodyfikuj klasę ''GridLayoutTest'', tak aby to trzecia (tam gdzie jest przycisk ''P3''), a nie szósta pozycja w siatce była pusta. | ||
{| border="1" | {| border="1" | ||
Linia 61: | Linia 65: | ||
|} | |} | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | |||
<span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie kod</span> | |||
<div class="mw-collapsible-content" style="display:none"> | |||
'''import''' java.awt.*; | '''import''' java.awt.*; | ||
'''import''' javax.swing.*; | '''import''' javax.swing.*; | ||
Linia 91: | Linia 97: | ||
} | } | ||
</div> | </div> | ||
</div> | </div> | ||
== Zadanie 3 == | == 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. | 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. | ||
{| border="1" | {| border="1" | ||
Linia 102: | Linia 108: | ||
| Żeby uruchomić przykład [[media:PO_GUI_Zad3.jar|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> | | Żeby uruchomić przykład [[media:PO_GUI_Zad3.jar|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> | ||
|} | |} | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | |||
<span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie kod</span> | |||
<div class="mw-collapsible-content" style="display:none"> | |||
'''import''' java.awt.*; | '''import''' java.awt.*; | ||
'''import''' javax.swing.*; | '''import''' javax.swing.*; | ||
Linia 148: | Linia 155: | ||
} | } | ||
</div> | </div> | ||
</div> | </div> | ||
== Zadanie 4 == | == Zadanie 4 == | ||
Linia 159: | Linia 166: | ||
| Żeby uruchomić przykład [[media:PO_GUI_Zad4.jar|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> | | Żeby uruchomić przykład [[media:PO_GUI_Zad4.jar|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> | ||
|} | |} | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | |||
<span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka 1</span> | |||
<div class="mw-collapsible-content" style="display:none"> | |||
Jako pierwszy parametr konstruktora trzeba przekazać obiekt ''ContentPane'', a nie kontener. Obiekt ''ContentPane'' dla danego kontenera uzyskuje się przy pomocy metody ''getContentPane()''. | Jako pierwszy parametr konstruktora trzeba przekazać obiekt ''ContentPane'', a nie kontener. Obiekt ''ContentPane'' dla danego kontenera uzyskuje się przy pomocy metody ''getContentPane()''. | ||
</div> | </div> | ||
</div> | </div> | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | |||
<span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka 2</span> | |||
<div class="mw-collapsible-content" style="display:none"> | |||
''BoxLayout'' respektuje sposób wyśrodkowania preferowany przez komponenty. Do zmiany preferowanego wyśrodkowania komponentu służy metoda ''setAlignmentX(Component.CENTER_ALIGNMENT)''. | ''BoxLayout'' respektuje sposób wyśrodkowania preferowany przez komponenty. Do zmiany preferowanego wyśrodkowania komponentu służy metoda ''setAlignmentX(Component.CENTER_ALIGNMENT)''. | ||
</div> | </div> | ||
</div> | </div> | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | |||
<span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie kod</span> | |||
<div class="mw-collapsible-content" style="display:none"> | |||
'''import''' java.awt.*; | '''import''' java.awt.*; | ||
'''import''' javax.swing.*; | '''import''' javax.swing.*; | ||
Linia 215: | Linia 227: | ||
} | } | ||
</div> | </div> | ||
</div> | </div> | ||
== Zadanie 5 == | == Zadanie 5 == | ||
Linia 227: | Linia 239: | ||
|} | |} | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | |||
<span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka 1</span> | |||
<div class="mw-collapsible-content" style="display:none"> | |||
Dodaj do przycisków ''MouseListener'', a kod zamieniający kartki umieść w metodzie ''mouseEntered(MouseEvent)'' | Dodaj do przycisków ''MouseListener'', a kod zamieniający kartki umieść w metodzie ''mouseEntered(MouseEvent)'' | ||
</div> | </div> | ||
</div> | </div> | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | |||
Jeżeli używasz ''CardLayout'' w głównym kontenerze, jako parametr ''parent'' metod first()'', ''last()'', ''next()'' i ''previous()'' | <span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka 2</span> | ||
<div class="mw-collapsible-content" style="display:none"> | |||
Jeżeli używasz ''CardLayout'' w głównym kontenerze, jako parametr ''parent'' metod first()'', ''last()'', ''next()'' i ''previous()'' przekazuj kontener uzyskany z głównego kontenera przy pomocy metody ''getContentPane()'', a nie sam główny kontener. | |||
</div> | |||
</div> | </div> | ||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | |||
<span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie kod</span> | |||
<div class="mw-collapsible-content" style="display:none"> | |||
'''import''' java.awt.*; | '''import''' java.awt.*; | ||
'''import''' java.awt.event.*; | '''import''' java.awt.event.*; | ||
Linia 251: | Linia 269: | ||
'''class''' ZamianaKart '''extends''' MouseAdapter { | '''class''' ZamianaKart '''extends''' MouseAdapter { | ||
'''public''' '''void''' mouseEntered(MouseEvent e) { | '''public''' '''void''' mouseEntered(MouseEvent e) { | ||
//jeżeli używasz CardLayout w głównym kontenerze, | //jeżeli używasz CardLayout w głównym kontenerze, to metodom oczekującym parametru | ||
// | //opisanego w dokumentacji jako "the parent container in which to do the layout" | ||
//przekazuj kontener uzyskany z głównego kontenera przy pomocy metody getContentPane(), | //przekazuj kontener uzyskany z głównego kontenera przy pomocy metody getContentPane(), | ||
//a nie sam główny kontener | //a nie sam główny kontener | ||
Linia 296: | Linia 314: | ||
} | } | ||
</div> | </div> | ||
</div>}} | </div> | ||
== 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. | |||
{| border="1" | |||
|+ Podgląd działającego rozwiązania | |||
! Archiwum JAR !! Applet | |||
|- | |||
| Żeby uruchomić przykład [[media:PO_GUI_Zad6.jar|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> | |||
|} | |||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | |||
<span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie kod</span> | |||
<div class="mw-collapsible-content" style="display:none"> | |||
'''import''' java.awt.*; | |||
'''import''' java.awt.event.*; | |||
'''import''' javax.swing.*; | |||
'''public''' '''class''' Zad6 '''extends''' JFrame { | |||
JFrame okno = '''this'''; | |||
JTextField wynik = '''new''' JTextField(9); | |||
JTextField pole1 = '''new''' JTextField("1",9); | |||
JTextField pole2 = '''new''' JTextField("2",9); | |||
JComboBox działanie = '''new''' JComboBox(); | |||
'''public''' '''void''' licz() { | |||
'''try''' { | |||
String dz = (String) działanie.getSelectedItem(); | |||
Integer w; | |||
'''if''' (dz.equals("+")) | |||
w = Integer.parseInt(pole1.getText()) + Integer.parseInt(pole2.getText()); | |||
'''else''' | |||
w = Integer.parseInt(pole1.getText()) * Integer.parseInt(pole2.getText()); | |||
wynik.setText(w.toString()); | |||
} '''catch''' (NumberFormatException ex) { | |||
wynik.setText("Błąd"); | |||
} | |||
} | |||
//do obsługi zdarzeń często używane są anonimowe klasy wewnętrzne | |||
//jeden egzemplarz będzie dzielony przez oba pola | |||
ActionListener sumowanie = '''new''' ActionListener() { | |||
'''public''' '''void''' actionPerformed(ActionEvent ev) { | |||
licz(); | |||
} | |||
}; | |||
Zad6() { | |||
'''super'''("Okno ZliczanieKliknięć"); | |||
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); | |||
JPanel panel = '''new''' JPanel(); | |||
panel.setLayout('''new''' FlowLayout()); | |||
panel.add(pole1); | |||
pole1.addActionListener(sumowanie); | |||
pole1.setHorizontalAlignment(JTextField.RIGHT); | |||
działanie.addItem("+"); | |||
działanie.addItem("*"); | |||
działanie.addActionListener('''new''' ActionListener() { | |||
'''public''' '''void''' actionPerformed(ActionEvent e) { | |||
licz(); | |||
} | |||
}); | |||
panel.add(działanie); | |||
panel.add(pole2); | |||
pole2.addActionListener(sumowanie); | |||
pole2.setHorizontalAlignment(JTextField.RIGHT); | |||
panel.add('''new''' JLabel("=")); | |||
wynik.setEditable('''false'''); | |||
panel.add(wynik); | |||
//puste obramowanie odsuwa komponenty od krawędzi | |||
panel.setBorder(BorderFactory.createEmptyBorder(30,15,30,15)); | |||
add(panel); | |||
setSize(300,150); | |||
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''' 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> | |||
|} | |||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | |||
<span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Wskazówka</span> | |||
<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> | |||
<div class="mw-collapsible mw-made=collapsible mw-collapsed"> | |||
<span class="mw-collapsible-toogle mw-collapsible-toogle-default style="font-variant:small-caps">Rozwiązanie kod</span> | |||
<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(); | |||
} | |||
}); | |||
} | |||
} | |||
</div> | |||
</div> |
Aktualna wersja na dzień 21:42, 28 maj 2020
<<< Powrót do przedmiotu Programowanie obiektowe
<<< Powrót do wykładu Graficzny interfejs użytkownika
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 (tam gdzie jest przycisk P3), a nie szósta pozycja w siatce 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
Rozwiązanie kod