[英]How to dynamicly build up a gui
目前,我正在构建一个应进行声音处理的应用程序。 我正在使用swt / jface在java / eclipse中进行此操作。 处理本身需要内部算法的一些选项/属性。 目前,我有一个.properties文件,其中包含所有选项:
trimLeadingSilence = 20
trimtrailingSilence = 20
修剪点= 5
fftFrameSize = 512 ...
我不希望用户在文本编辑器(如notepad ++)中编辑这些选项,而是在我的应用程序的GUI中。
现在,我考虑如何执行此操作。 我有2个“想法”:为每个选项集创建一个类,并手动编码所有这些无聊的gui代码行。 像这里只是一种选择;-)
Spinner spinnerSilenceBack = new Spinner(shell, SWT.BORDER);
spinnerSilenceBack.setMinimum(0);
spinnerSilenceBack.setMaximum(200);
selection = Integer.valueOf(PropertyManager.getPropertyValue("trimming", "trailingSilence"));
spinnerSilenceBack.setSelection(selection);
spinnerSilenceBack.setIncrement(5);
spinnerSilenceBack.setPageIncrement(20);
spinnerSilenceBack.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
int selection = ((Spinner) e.getSource()).getSelection();
int digits = ((Spinner) e.getSource()).getDigits();
int result = (int) (selection / Math.pow(10, digits));
PropertyManager.setPropertyValue("trimming", "trailingSilence", String
.valueOf(result));
}
});
由于存在许多不同的选择,因此这会花费很多时间。 因此,我考虑了如何在启动应用程序时动态创建此类gui代码,或者只是动态创建这些gui窗口。 至少我需要一个用于“ gui creator”的配置文件,但是我不想重新发明这样的东西,这就是为什么我问你们:)
我不清楚你在问什么。
但是,由于您的问题是如何动态构建gui ,所以我有一个建议:
您可以使用Freemarker之类的Java模板引擎库。 这将帮助您创建可即时运行的GUI。 使用freemarker,您可以拥有一个模板文件,然后相应地替换这些值。
我用它来动态生成HTML文件。 您可以评估是否可以使用它。 API文档丰富。 因此,您可以经历一次。
您的意思是说,您要制作一个包含所有指定选项的UI吗? 它的形式或菜单无关紧要,由您决定。 但是,您可以肯定地在.properties
文件中配置名称和类型。
看,您在AWT / Swing OR Servlet中构建了Menu OR表单,但是您可以从属性文件中读取它吗?
您还可以使用Spring bean XML定义配置相同的内容,它可以提供更多支持,例如您可以在某些Map OR List等中指定所有详细信息。
谢谢。
我已经很长时间没有使用Swing了,所以这只是一个基本原理。
配置应该在xml中完成,.properties文件在这里不好,因为它没有开箱即用地描述对象。
添加按钮(“应用配置”),附加actionListener,其中1)解析xml配置,2)然后创建表单或更改现有表单,文本区域,颜色等设置。
xml配置示例:
找到-检查它的x_coordinate,y_coord(或使用layoutManager,取决于逻辑),动作,然后检查jframe.getLayout()。add(new Button(x_coord,y_coord,动作)。
发现-一样。
比jframe.setVisible(true);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.