我即将开始开发相当大的基于Java的桌面应用程序.在查看JIDE组件和框架之后,它似乎是一个很好的解决方案.我想听听使用这些产品的人的意见.他们有多可靠?什么是学习曲线?优点和缺点?
我有一个JComboBox,其值通过网络检索.
我正在寻找一种向用户指示该事实的方法,当用户想要查看列表时,展开下拉列表,然后才检索数据.
基本要求包括:
请注意,在用户想要查看组合的值(即展开下拉列表)之前,不会检索数据.
我使用了一个SwingWorker来保持UI响应.组合框使用JIDE's覆盖Overlayable,JIDE InfiniteProgressPanel聆听工作人员.
我发现,我只能在Jide Table中使用每个字段一次.例如,如果我计算某些字段的平均值,我无法计算相同字段的总和.
有可能克服吗?
UPDATE
以下是Jide PivotTable的示例,右侧打开了现场面板:
如您所见,从字段面板中取出并拖动到数据区域或行区域的字段将从字段面板中消失.这意味着任何字段只能存在于一个区域中.
这同样意味着API方法PivotField#setAreaType(),它具有标量参数.即,一个字段只能分配给一个区域类型.
这导致我Region Area在基础源中复制了4次字段:一个用于值,一个用于平均值,一个用于最小值,一个用于最大值.
同时,希望用不同的聚合函数对相同的字段进行多次计数看起来很一般,如果数据透视表不允许开箱即用,这很奇怪.
我有两个JTables,一个在主视口,一个在页脚视口,使用JideScrollPane. 问题是当 mainJTable的视图被自定义时,页脚JTable保持不变,有什么方法可以同步它们的视图吗?
谢谢。

我目前有一个JTable,其中填充了一系列数据,这些数据构成了导入屏幕的基础.当我选择了我想要或不想要的更新时,我按下Apply按钮并成功应用更新,但JTable没有完全更新.
这是处理应用更改的方法的代码:
private void doProcessChanges() {
ChangeProcessor cp = new ChangeProcessor();
final List<Integer> rowsToRemove = new ArrayList<Integer>();
BeanTableModel<UpdateModel> model = (BeanTableModel<UpdateModel>) table.getModel();
for (int i=0; i<model.getRowCount(); i++) {
UpdateRow ur = mode.getObject(i);
if (ur.isAccepted() <> ChangeAcceptance.NO_ACTION) {
cp.processChange(ur);
rowsToRemove.add(i);
}
}
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
for (int row : rowsToRemove) {
model.removeObject(row);
model.fireTableDataChanged();
}
}
);
}
Run Code Online (Sandbox Code Playgroud)
从SwingWorker线程中调用该方法,如下所示:
SwingWorker<Object, Object> worker = new SwingWorker<Object, Object>() {
@Override
protected Object doInBackground() throws Exception {
doProcessChanges();
return null; …Run Code Online (Sandbox Code Playgroud)