PerlGtk.pl

  
Menu główne
use PerlMongers::Warszawa;
use PerlMongers::Krakow;
NG_gRadio
Perl i Java - część 2
  przez wrares (79 odsłon)
Witam Wszystkich w drugiej części naszej przygody z Perlem i Javą. Dziś dalej będziemy rozwijać nasze rozważania na temat użycia Swing-u, w naszych aplikacjach. Dziś będziemy instalować nowy moduł, który będzie wykorzystywał moduły wyszczególnione w poprzednim artykule, a z drugiej strony będzie konkretyzował wykorzystanie Swingu. Nasz moduł dostępny jest w zasobach CPAN i pobieramy go z tego repozytorium oraz instalujemy we własnym ekosystemie. Moduł Java-Swing, posiada wsparcie, które oczekujemy w Naszych aplikacjach. Instalacja jest typowa dla ekosystemu Perla, więc nie będę jej przytaczał. Zachęcam do wykonania testów w katalogu /t, gdyż odpowiemy sobie na pytanie czy moduł jest prawidłowo zainstalowany. W katalogu
/example 

Dostępny jest w ramach instalowanego modułu, przykład programu calc. Wchodząc do tego katalogu i pisząc komendę
perl calc 

otrzymamy na ekranie błąd, i to pomimo prawidłowej instalacji i przejścia wszystkich błędów.
Class PerlActionListener not found at /usr/local/lib/perl5/5.10.0/i686-pld-linux-thread-multi/Inline/Java.pm line 619

Musimy trochę spojrzeć szerzej na ten problem. Java nie wie nic o sposobie działania Perla, a Perl Javy. Dlatego potrzebny jest mechanizm tłumaczący, który byłby zrozumiały dla obydwu ekosystemów. Takie sterowanie dostępne jest w katalogu /java. Warto spojrzeć do jego wnętrza, gdyż dostaniemy wszystkie potrzebne informacje o sterowaniu Swingiem z Perla. A teraz wróćmy do naszego przykładu z programem calc. Aby program wykonał się prawidłowo proponuję takie rozwiązanie
(1) Założyć katalog kalkulator
(2) Do niego skopiować katalog java
(3) Skopiować program calc
(4) Wykonać komendę perl calc w tym katalogu


Nastąpi prawidłowe wykonanie programu, i na ekranie widzimy formatkę. A dlaczego tak program konfigurujemy. Z prozaicznej przyczyny. Spójrzmy do środka skryptu calc
Interesuje nas ten fragment

Zrzut ekranu tutaj...

Cytat:

# Note that to make the example work, you must have the directory containing
# the Java::Swing classes in the classpath. In the distribution this is
# called java.

BEGIN { $ENV{CLASSPATH} .= 'java' }



Jak widzimy nasze środowisko wykonania jest w sekcji BEGIN informowane, gzie przed wykonanie skryptu ma zajrzeć. I jest to katalog /java gdzie znajdują się Nasz tłumaczenia odwołań Perla do Swing-u Javy. A teraz typowy przykład
#!/usr/bin/perl -w
use strict;


#Ustalamy gdzie jest nasz wrapper
BEGIN { $ENV{CLASSPATH} .= 'java' }


#Wczytujemy nmoduł
use Java::Swing;

#Tworzymy instancję obiektu
my $swing = Java::Swing->new();


#Zgodnie z zasadą programaowania w Javie tworzymy ramkę
my $ramka = JFrame->new("Portal perlgtk.pl");
$ramka->setSize(400,400);
$ramka->setVisible(1);


#Zamknijmy ramkę
$swing->connect(
    "WindowListener", $ramka, { windowClosing => \&koniec }
);

#Start Naszej Aplikacji
$swing->start();

#Zakończmy ją poprawnie
sub koniec {
    $swing->stop();
}

I to na razie tyle...

Obraz z mojego komputera dostępny tutaj...
Powrót
Szukaj w PerlGtk.pl
The Perl Job site
Szukaj kodu :