标签: swingx

Swing vs JavaFx用于桌面应用程序

我有一个非常大的程序,目前正在使用SWT.该程序可以在Windows,Mac和Linux上运行,它是一个包含许多元素的大型桌面应用程序.现在SWT有点老了我想切换到Swing或JavaFX.我想听听你对三件事的看法.

我主要担心的是桌面GUI应用程序会有什么好处?(我在网上看了很多人都认为JavaFX和Swing一样好,但除了简单的意见火焰战争之外我没有看到很多有效的论据).它必须适用于Windows,Mac和一些流行的Linux发行版.

  • 什么更干净,更容易维护?

  • 从头开始构建什么会更快?

我在我的应用程序中使用MVC方法,如果有任何帮助的话.

java user-interface swing javafx swingx

189
推荐指数
4
解决办法
21万
查看次数

收购后SwingLabs(SwingX)的状态是什么

我找到了这个较旧的讨论:有没有人使用Swing的"swingx"扩展?,但我想知道SwingLabs,SwingX的当前状态.一堆下载地址等都被破坏了,例如:

https://swingx.dev.java.net http://swinglabs.org/projects.jsp上的第一个链接

https://swingx.dev.java.net/files/documents/2981/153005/swingx-1.6.2-bundle.zip最新稳定下载

等等...

这只是一个替换新域名的问题,还是甲骨文摧毁了这些活动?

java swing swingx

81
推荐指数
1
解决办法
2万
查看次数

如何创建"现代化"的Java桌面应用程序?

定期询问类似的问题,但其中许多答案已经过时.

我需要用Java构建一个跨平台的桌面应用程序,其GUI与当代桌面应用程序的质量相当.

Swing是默认选择,但是我还没有遇到一个Swing应用程序,它至少看起来不太过时和笨重(主观,我知道,但是使用GUI很难避免审美判断).

我注意到新的比特币客户端现在使用带有Java绑定的QT,并且确实具有吸引人的用户界面,但这样做的缺点是它不再是纯Java.

当我搜索与Swing相关的库时,我发现的大部分内容都是5岁或更大,尽管桌面应用程序的美学从那时起已经有了很大的发展.

如果您需要从头开始构建Java桌面应用程序,那么它将用于GUI?

java user-interface swing swingx look-and-feel

47
推荐指数
5
解决办法
6万
查看次数

过滤JTree

问题

对a应用过滤JTree以避免某些节点/叶子出现在渲染版本中JTree.理想情况下,我正在寻找一个允许动态过滤器的解决方案,但如果我能让静态过滤器工作,我会很高兴.

为了使它更容易一些,让我们假设JTree只支持渲染,而不是编辑.应该可以移动,添加,删除节点.

一个例子是a上面的搜索字段JTree,而在键入时,JTree只显示带有匹配的子树.

一些限制:它将用于可以访问JDK和SwingX的项目中.我想避免包含其他第三方库.

我已经想到了一些可能的解决方案,但这些都不是理想的

途径

基于模型的过滤

  • 装饰TreeModel以过滤掉一些值.快速而简单的版本很容易编写.过滤掉节点,并且在过滤器或委托TreeModel的每次更改时,装饰器都可以触发整个树发生变化的事件(treeStructureChanged根节点作为节点).将它与恢复选择状态和扩展状态的侦听器相结合JTree,你会得到一个或多或少有效的版本,但是来自它的事件TreeModel都搞砸了.这或多或少是这个问题中使用的方法
  • 装饰TreeModel但尝试点燃正确的事件.我(还)没有设法提出这个的工作版本.它似乎需要委托的副本,TreeModel以便能够在从委托模型中删除节点时使用正确的子索引触发事件.我认为有更多的时间我可以让它工作,但它只是感觉不对(过滤感觉像视图应该做的事情,而不是模型)
  • 装饰用于创建初始化的任何数据结构TreeModel.但是,这完全是不可重用的,并且可能和编写装饰器一样困难TreeModel

基于视图的过滤

这似乎是要走的路.过滤不应影响模型,只影响视图.

  • 我看了RowFilter上课.虽然javadoc似乎建议你可以结合使用它JTree:

    当与JTree相关联时,条目对应于节点.

    我找不到RowFilter(或RowSorter)和JTree班级之间的任何联系.RowFilterSwing教程的标准实现似乎表明RowFilter只能直接使用JTable(参见参考资料JTable#setRowSorter).没有类似的方法可供选择JTree

  • 我也看了一下JXTreejavadoc.它有一个ComponentAdapter可用的,并且javadoc ComponentAdapter表示RowFilter可以与目标组件进行交互,但我看不出如何建立RowFilter和之间的链接JTree
  • 我还没有看到如何JTable使用RowFilter …

java swing jtree swingx

34
推荐指数
3
解决办法
1万
查看次数

用自定义版本替换Java类库中的类

BasicLabelUI的javax /秋千/ PLAF /基本是通过影响已确认的bug.在我的应用程序中,我需要固定版本提供的功能(为v9提交).由于法律和技术原因,我仍然受限于受影响的JDK版本.

我的方法是在我的项目中创建一个包javax/swing/plaf/basic,包含固定版本.

如何强制我的项目支持我在已安装的JDK中的缺陷类上包含的类的版本?

这必须具有一定的便携性,因为固定类也必须在客户端工作,并且必须忽略JDK安装中的缺陷类.因此,我不想修改JDK,而是绕过这个特定的类.

java patch swingx

20
推荐指数
1
解决办法
7562
查看次数

如何将jXDatePicker与maskFormatter一起使用?

我想使用带有maskFormatter的jxdatepicker.我试过了

MaskFormatter maskFormatter = new MaskFormatter ("##/##/####");
JFormattedTextField field=new JFormattedTextField (maskFormatter);
jXDatePicker.setEditor (field);
Run Code Online (Sandbox Code Playgroud)

MaskFormatter maskFormatter = new MaskFormatter ("##/##/####");
maskFormatter.install (jXDatePicker.getEditor ());
Run Code Online (Sandbox Code Playgroud)

第一种和第二种解决方案都不起作用

PS:JFormattedTextField使用MaskFormatter AND jXDatePicker工作正常,操作简单JFormattedTextField

java swing datepicker swingx maskformatter

17
推荐指数
1
解决办法
387
查看次数

对DefaultRowSorter进行子类化以允许树表排序

这个问题中,我问如何使JXTreeTable(SwingX)排序成为它的首要元素.

我接过一看库(aephyr)所建议mKorbel,并试图将其与JXTreeTable结合(我创建了一个名为JXSortableTreeTable类新复制JXTreeTable的源代码).

到目前为止,我能够实现一种机制来对树表的节点进行排序,即当convertRowIndexToModel调用我的自定义排序器(见下文)时,它返回的索引是正确的.

因此,我有一个看起来像这样的类:

public class TreeTableRowSorter <M extends TreeTableModelAdapter> extends DefaultRowSorter {
    private M treeTableModel; // model
    private List<Integer> indices; // list where each entry is the model index
    private IdentityHashMap<Object, NodeSorter> sorters;

    private class IndicesMapFiller { // class that fills the "map" this.indices
        public void fillIndicesMap(Object node) { // recursive
            // Fills the indices "map"
        }
    }

    @Override
    public int convertRowIndexToModel(int index) {
        return indices.get(index);
    }

    @Override
    public int convertRowIndexToView(int …
Run Code Online (Sandbox Code Playgroud)

java swing swingx treetable jxtreetable

16
推荐指数
1
解决办法
2288
查看次数

将新组件放在JXTaskPane上

JXTaskPaneJava中Swing的使用有一个标题栏.其中有一个扩展/收缩按钮.我希望能够在标题栏中添加我自己的操作,该标题栏将显示在展开/收缩按钮旁边.

我怎样才能做到这一点?我尝试了很多次,但没有得到预期的结果.我创建了一个新的JButton并将其位置设置在标题栏坐标上,但它已添加到元素中.

我附上了一个屏幕截图,在标题栏中显示了一个帮助类型操作,以显示我的意思.

任务图片

java swing swingx customtaskpane jxtaskpane

13
推荐指数
1
解决办法
931
查看次数

用于Java Swing的Map API

我想在swing应用程序中可视化地理地图.我发现只有swingx地图api.

你知道其他开源地图api吗?

java swing map swingx

10
推荐指数
1
解决办法
7864
查看次数

如何在所有文本组件中使用Ctrl + Z和Ctrl + Y?

事实上,我知道如何使用CTRL+ Z(Undo)和CTRL+ Y(Redo)与一个JTextField实现.但是我的Swing应用程序中有数百个文本组件,所以有没有办法将它应用于我的应用程序中的所有文本组件,所以当我在任何文本组件中单击CTRL+ Z时,它将撤消该字段中的最后一个条目?

我试图在EventQueue中实现它,但它没有用!

java swing undo swingx redo

9
推荐指数
2
解决办法
3560
查看次数