2010-02-04 68 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,但一直没能尚未使用它。但如果你不想在这方面花费太多时间,绝对值得一试。

相关问题