目前正在构建一个应用程序,它应该用于某些声音处理。我在swt / jface的java / eclipse中这样做。 处理本身需要内部算法的一些选项/属性。这时,我有一个.properties文件,其中包含所有选项,如:
trimLeadingSilence = 20
trimtrailingSilence = 20
trimhold = 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”的配置文件,但我不想重新发明这样的事情 - 这就是为什么我问你们:)
答案 0 :(得分:0)
我无法清楚地知道你在问什么。
但是,既然你的问题是如何动态建立一个gui ,我有一个建议:
您可以使用Java模板引擎 像Freemarker这样的图书馆。这个 会帮助你创建可以的GUI 建立在飞行中工作。同 freemarker你可以有一个单一的 模板文件然后替换 相应的价值观。
我已经用它来动态生成HTML文件。您可以评估是否可以使用它。 API文档很丰富。所以你可以经历一次。
答案 1 :(得分:-1)
你的意思是,你想创建一个拥有你指定的所有选项的UI吗?它的形式或菜单无关紧要,取决于您。但是,你可以在.properties
文件中配置名称和类型。
请参阅,您在AWT / Swing OR Servlet中构建一个Menu OR表单,但是您可以从属性文件中读取它吗?
您也可以使用Spring bean XML定义进行相同的配置,这可以提供更多支持,就像您可以在某些Map OR List中指定所有细节一样......
感谢。
答案 2 :(得分:-1)
我很长时间没有使用Swing,所以这里只是一个基本原则
配置应该在xml中完成,.properties文件在这里很糟糕,因为它没有描述开箱即用的对象。
添加按钮(“应用配置”),附加actionListener,其中1)解析xml配置,2)然后创建表单或更改现有表单,文本区域,颜色等的设置。
xml config的示例:
找到 - 检查它是x_coordinate,y_coord(或使用layoutManager,取决于逻辑),action,而不是jframe.getLayout()。add(new Button(x_coord,y_coord,action)。
发现 - 相同。
比jframe.setVisible(true);