2010-02-04 67 views
2

我有一個Perl命令行程序,需要GUI。我看到這主要是使用GTK完成的。我應該爲Perl命令行程序創建一個Java GUI嗎?

但是我們希望在Java中這樣做,因爲我們希望重新用於其他桌面應用程序。

遵循Java方法是否存在任何問題。你會推薦什麼?

+0

您的GUI將僅啓動命令行程序還是需要更緊密的集成? – 2010-02-05 04:25:21

+0

您也可以使用WxPerl或Tk庫進行GUI Perl編程。 Wx很受歡迎,例如。 Padre IDE寫在裏面。 – 2010-02-05 09:08:34

+0

@Brian:需要集成UI以捕獲來自Perl程序的異常和輸出,並以某種方式顯示UI中perl進程的進度。所以需要在cli進程和JAVA包裝器之間進行一些主動的交互。 – 2010-02-05 14:33:03

回答

1

Perl與Gtk一樣是跨平臺的,但您必須分發適當的庫和二進制文件來啓動您的應用程序。 Perl Foundation has a short article on the subject,但它不是很詳細。

0

請注意,有一些Perl/Java集成(有關更多信息,請參見this tutorial)。

您可以使用它在Perl腳本之上調用Java Swing GUI

4

如果您在目標平臺上安裝了Firefox,我一直在使用Firefox來渲染其gui的CPAN上的模塊XUL::Gui。它仍在開發中,但應該足夠穩定以便在大多數情況下使用。雖然不是Java,但HTML/XUL平臺是在Perl中快速構建gui的原型的一個很好的解決方案。或者它肯定可以託管一個java applet。然而,我想如果你打算重新使用gui來創建一個Java應用程序,那麼主要使用Java構建它,並且在兩種語言之間創建/實現消息傳遞協議比從Perl端設計gui更容易重用。這就是說,這裏是一個命令行應用程序創建一個圖形用戶界面的一個簡單的例子:

use XUL::Gui; 

display Window title => 'Foo Processor', 
    Hbox(
     (map { 
      my $id = $_; 
      CheckBox id => $id, 
       label => "use $id", 
       option => sub {shift->checked eq 'true' ? " -$id" :()} 
      } qw/foo bar baz/ 
     ), 
     TextBox(id => 'num', 
      type => 'number', 
      option => sub {' -num ' . shift->value} 
     ), 
     Button(label => 'run', oncommand => sub { 
      my @opts = map {$ID{$_}->option} qw/foo bar baz num/; 
      $ID{txt}->value = `fooproc @opts`; 
     }), 
    ), 
    TextBox(FILL, id => 'txt'); 

XUL::Gui還採用熟悉的設計技術,比如HTML和CSS這會降低學習曲線。 XUL是Mozilla的gui開發語言,它提供了許多有用的小部件(並且是Firefox gui本身編寫的語言)。

0

現在沒有在java編程的基於XML的通用命令行界面:

http://sourceforge.net/projects/japag/

我想使我自己的程序基於GUI,但一直沒能尚未使用它。但如果你不想在這方面花費太多時間,絕對值得一試。

相關問題