Problem z apletem

Problem z apletem
ME
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 14 lat
0

Witam,
piszę applet w Netbeans.
Uruchamiam go poprzez Clean and Build -> prawym na główną klasę -> Run File.
Otwiera mi się okno appletu, wszystko ładnie.
Ale gdy przejdę do katalogu build i otwieram powstały plik html, nie jest już tak różowo...
Wyświetla się tylko czarny prostokąt.
Umieszczając applet na samodzielnie napisanej stronie, efekt jest ten sam.
Gdzie leży błąd?
Może nie powinienem umieszczać panelu i labeli w metodzie init() ?
Mogę wkleić kod.

Proszę o pomoc,
pozdrawiam.

ME
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 14 lat
0

Może opiszę dokładniej problem.
Chcę napisać applet. W głównym pliku, w metodzie init() umieściłem BorderLayout. W polach North i South są Labele, a w polu Center Panel.
Tworzenie i rysowanie tła na panelu odbywa się w osobnej klasie Panel.
Na tym panelu będę chciał rysować obiekty, zdefiniowane w innych klasach.
Jak to wszystko połączyć? Szczególnie chodzi mi o metodę paint().

Olamagato
  • Rejestracja:ponad 16 lat
  • Ostatnio:21 dni
  • Lokalizacja:Polska, Warszawa
  • Postów:1058
0

Metoda init jest wywoływana przez jeden z wątków przeglądarki przeznaczonych dla sandboxa (w skrajnym wypadku każda metoda apletu init, start, stop, destroy są wywoływane przez osobne wątki stworzone przez przeglądarkę). Wywoływanie kodu Swinga bezpośrednio z tych metod jest proszeniem się o kłopoty. Powinieneś stworzyć klasę implementującą interfejs Runnable, która będzie w metodzie run() konstruowała obiekty Swinga (na panelu dostarczanym przez przeglądarkę) i tę klasę powinieneś w metodzie init odpalić przez wywołanie invokeAndWait(twojaKlasa). Może być ona anonimowa bo i tak sprowadza się do wywołania jakiejś metody np. createGUI() - tyle, że już z wątku Swinga.

Metoda paint() może pochodzić z klasy panelu jaki sobie napiszesz i załadujesz w createGUI(). Wtedy będzie ona poprawnie obsługiwana przez Swinga.

Twoim bieżącym problemem jest jednak co innego. Czarny prostokąt oznacza zazwyczaj to iż przeglądarka nie znalazła obiektu klasy, którą stworzyłeś. Otwórz sobie konsolę javy w przeglądarce aby to sprawdzić. Przyczyną najczęściej są notoryczne problemy plików .class javy ze ścieżkami, a dokładniej z pakietami i ich przełożeniem na rzeczywiste położenie w lokalnym systemie plików. Warto czasem zapytać aplet o swoje położenie domyślne, co można zrobić za pomocą: obiektApletu.getClass().getResource(".")

Przykład powiązania umiejscowienia pakietu z osadzeniem apletu na stronie html:

Kopiuj
package org.terrorist.nuclear; //pakiet określa ścieżkę, której można użyć w applet code
//...
import javax.swing.JApplet;
import javax.swing.JPanel;
//...
class MeltdownWorm extends JApplet
{
/*...*/
}

Kod aplet jest osadzany przez javę na ścieżce względnej. Dlatego jeżeli "applet code" przydzieli się samą nazwę klasy apletu, to domyślnie sam aplet nie powinien znajdować się w jakimkolwiek pakiecie (klasa nie powinna zawierać instrukcji package). Ponieważ nie jest to na dłuższą metę do utrzymania, więc trzeba uzgadniać ścieżkę taką jaką wyprodukuje kompilator java w wywołaniu apletu. Jeżeli zagnieżdżenie pakietów będzie głębsze, to trzeba to uwzględniać tak jak w tym przykładzie:

Kopiuj
<html>
	<head><title>الله أكبر</title></head>
	<body>
	<applet code="org/terrorist/nuclear/MeltdownWorm.class" width="100%" height="100%">
		<param name="start" value="24.12.2010">
		Get Stuxnet frontend updated version.
	</applet>
	</body>
</html>
[...]

W przypadku umieszczenia klasy w archiwum jar, to powinien on zawierać już taką ścieżkę jaka odpowiadałaby użyciu w "applet code". I po rozpakowaniu przez przeglądarkę plik .class znalazłby się tam gdzie jest oczekiwany.


Jeżeli ktoś komuś coś, ewentualnie nikt nikomu nic, to właściwie po co...?
ME
  • Rejestracja:ponad 14 lat
  • Ostatnio:ponad 14 lat
0

Ok, poradziłem sobie.
Dziękuję za pomoc.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)