我应该为Perl命令行程序创建Java GUI吗?

时间:2010-02-04 19:08:45

标签: java perl user-interface

我有一个Perl命令行程序,需要GUI。我看到这主要是使用GTk完成的。

但是,我们希望在Java中执行此操作,因为我们希望将其重新用于其他桌面应用程序。

遵循Java方法是否存在任何问题。你会推荐什么?

4 个答案:

答案 0 :(得分:4)

如果您在目标平台上安装了Firefox,我一直在使用CPAN上的模块XUL::Gui,它使用Firefox来渲染其gui。它仍处于开发阶段,但在大多数情况下应该足够稳定。虽然不是Java,但HTML / XUL平台是在Perl中快速建立gui原型的好方法。或者它当然可以托管一个java applet。但是,我想如果你计划将gui重用于Java应用程序,那么主要用Java构建它并在两种语言之间创建/实现消息传递协议比从Perl端设计gui更容易重新实现。也就是说,这是一个为命令行应用程序创建一个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本身编写的语言)。

答案 1 :(得分:1)

Perl是跨平台的,与Gtk一样,但您必须分发适当的库和二进制文件才能启动您的应用程序。 Perl基金会has a short article on the subject,但不是很详细。

答案 2 :(得分:0)

请注意,有一些Perl / Java集成(有关详细信息,请参阅this tutorial)。

您可以使用它在Perl脚本之上调用Java Swing GUI

答案 3 :(得分:0)

在java中编写了一个基于xml的通用命令行界面:

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

我正在考虑制作我自己的基于Gui的程序,但还没有能够使用它。但如果你不想花很多时间在这上面,那绝对值得一试。