小编Dom*_* D.的帖子

如何从gradle构建中获取版本属性以包含在运行时Swing应用程序中

我有一个简单的父项目,其中包含模块/应用程序.我选择的构建工具是gradle.父母build.gradle定义如下.

apply plugin: 'groovy'
dependencies {
    compile gradleApi()
    compile localGroovy()
}


allprojects {
    repositories {
        mavenCentral()
    }

    version "0.1.0-SNAPSHOT"
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是在我的swing应用程序中使用version属性(0.1.0-SNAPSHOT).具体来说,我希望它显示在主JFrame的标题栏中.我希望能够做类似的事情this.setTitle("My Application - v." + ???.version);

该应用程序是一个简单的java项目,但我并不反对添加常规支持它会有所帮助.

java groovy swing gradle

20
推荐指数
3
解决办法
2万
查看次数

JSF在action,actionlistener,onClick之间的区别

我在我的项目中使用JSF.我正在使用PrimeFaces的上下文菜单.我看到p:menuItem我们有action,actionListener,onclick方法.所以我的问题是:什么时候我都用action,actionListner,onclick,什么是执行的顺序?

jsf primefaces jsf-2

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

单击时取消选择javafx ListView上的项目

我在JavaFX应用程序中使用ListView控件.它被设置为MULTIPLE选择模式.我知道作为用户,我可以按住Ctrl键单击一个项目以取消选择它,但这对我的用户来说不够直观.我想要一种方法来第二次点击取消选择它.换句话说,点击一次 - 选择; 单击所选项目,它将被取消选中.

我尝试过使用ChangeListener和onMouseClicked事件.两者都不是很好.以下是每个代码片段.

的ChangeListener:

效果 - 列表中的第一项永远不会被选中.我点击它并保持不被点击.对项目2..n没有影响

listView.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<SpecificAlgorithmData>() {
    @Override
    public void changed(final ObservableValue observableValue, final SpecificAlgorithmData oldData, final SpecificAlgorithmData newData) {

        //if already selected then deselect it
        int selectedIndex = listView.getSelectionModel().getSelectedIndex();
        System.out.println("selected " + selectedIndex);
        System.out.println("all selected" + listView.getSelectionModel().getSelectedIndices());
        if (!selecting && !listView.getSelectionModel().getSelectedIndices().contains(selectedIndex)){


            Iterator <Integer> iterator = listView.getSelectionModel().getSelectedIndices().iterator();
            selecting = true;
            listView.getSelectionModel().select(-1);//deselect all

            while (iterator.hasNext()){
                int index = iterator.next();
                if (index!= selectedIndex){
                    listView.getSelectionModel().select(index);
                }
            }
            selecting = false;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

的onClick:

没有效果,因为我不知道如何获得我刚刚点击的索引.由于硬编码,这完全不允许选择第2项.

listView.setOnMouseClicked(new EventHandler<MouseEvent>() { …
Run Code Online (Sandbox Code Playgroud)

java javafx javafx-2

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

rsync递归,深度有限

我有一个小的java应用程序/服务,它使用Java 7的新文件监视根文件夹及其子文件夹java.nio.file.WatchService.当新事件发生时(新文件,修改,删除等等)我启动rsync执行以将文件从服务器A复制到服务器B(反之亦然).该命令使用--delete选项确保从A中删除的文件也从B中删除.但是,为了使用此功能,您必须启用-r(递归子目录).通常这不是什么大问题,但根文件夹是5GB的数据(19000个文件,1500个文件夹).Rsync非常出色,但仍需要几分钟才能运行.

我遇到的问题是,如果两个服务器上的文件大致同时发生变化,则服务器A上创建的新文件可能会被同步B-> A的进程删除,因为--delete只会将源与目标进行比较并看到目的地的文件多于源文件.

由于我已经不情愿地使用Java应用程序查看每个目录,因此我不必使用-r(递归)rsync.我的第一个想法是用rsync来限制递归的深度,但我不认为这是rsync的一个特性.我也考虑过使用--exclude但不确定模式的外观.有人有主意吗?

作为参考,以下是生成的rsync命令的示例:

rsync -r --no-group --no-owner --no-perms --update --checksum --verbose --progress --stats --delete --ignore-errors "/media/server1files/" "/server2::server2"

java linux rsync

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

标签 统计

java ×3

gradle ×1

groovy ×1

javafx ×1

javafx-2 ×1

jsf ×1

jsf-2 ×1

linux ×1

primefaces ×1

rsync ×1

swing ×1