我有一个Perl命令行程序,需要GUI。我看到这主要是使用GTk完成的。
但是,我们希望在Java中执行此操作,因为我们希望将其重新用于其他桌面应用程序。
遵循Java方法是否存在任何问题。你会推荐什么?
答案 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的程序,但还没有能够使用它。但如果你不想花很多时间在这上面,那绝对值得一试。