是否可以使用JavaFX更改应用程序图标,还是必须使用Swing完成?
我非常喜欢IDEA的代码格式,但是如何让它重新格式化特定项目中的所有代码而不通过每个文件?我已经找到了在将代码提交到subversion之前整理/优化代码的选项,这很好,但它似乎只适用于已经修改过的文件(在大多数情况下这是明智的!)
有没有办法自动格式化项目中的所有源文件而无需手动完成所有这些文件?
我经常看到使用[L
类型来表示数组的消息,例如:
[Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
(上面是我刚刚拔出的任意例子.)我知道这表示一个数组,但语法来自何处?为什么开始[
但没有关闭方括号?为什么L?这纯粹是武断的还是还有其他一些历史/技术原因?
我有以下代码行来比较String.str1不等于str2,这是可以理解的,因为它比较了对象引用.但那么为什么s1等于s2?
String s1 = "abc";
String s2 = "abc";
String str1 = new String("abc");
String str2 = new String("abc");
if (s1==s2)
System.out.println("s1==s2");
else
System.out.println("s1!=s2");
if (str1==str2)
System.out.println("str1==str2");
else
System.out.println("str1!=str2");
if (s1==str1)
System.out.println("str1==s1");
else
System.out.println("str1!=s1");
Run Code Online (Sandbox Code Playgroud)
输出:
s1==s2
str1!=str2
str1!=s1
Run Code Online (Sandbox Code Playgroud) Java 7中的JCombobox已经更新为使用泛型 - 我一直认为它有点疏忽,它还没有,所以我很高兴看到这种变化.
但是,当试图以这种方式使用JCombobox时,我意识到我期望使用这些泛型类型的方法仍然只是返回Object.
这究竟是为什么?对我来说,这似乎是一个愚蠢的设计决定.我意识到底层的ListModel有一个通用的getElementAt()
方法,所以我会用它来代替 - 但它有点迂回的做法,看起来它可能在JComboBox本身上被改变了.
在将RXTX用于许多不同的项目之后,我遇到了许多烦人的差异和问题,这些问题只能明智地归结为库中的错误 - 死锁,种族危险以及RXTX库深处的监视器线程被打开阻止关闭的程序(即使我使用的所有端口都已关闭!)运行最新的"不稳定"版本有所帮助,但它仍然远离我称之为可靠的地方,项目上的活动似乎相当低现在.
但是,搜索RXTX的免费跨平台替代方案似乎没有提出太多其他方面.
还有另一个图书馆,任何人都试过更幸运吗?我不需要并行端口支持,只需要串行,并且它不一定必须与RXTX或javax.comm
API 兼容.
我更喜欢Java 7引入的泛型钻石语法 - 而不是从节省时间的角度来看(毕竟大多数IDE都为你填补了这一点)但仅仅因为它使代码看起来更清晰.由于这个和其他原因(主要是我正在开发一个新的软件和Java 7中的一些新API将是有用的),我很可能会切换现有的代码库来使用/需要Java 7.
然而,有一个公平的块已经编写了前钻石语法,我想始终使用钻石语法.是否有IDE快捷方式(我使用Netbeans但显然可以在任何免费的IDE中打开项目来执行任务)或其他可以自动切换现有通用代码以使用菱形语法的东西?
在环顾四周寻找一个体面的图书馆用Java播放视频之后,我已经不知所措了.周围的每个人都在尖叫不要使用JMF,因为它已经过时,过时而且需要用户安装它,其他替代品如VLCJ似乎很好,如果它们工作但仍然相对不稳定并依赖大量本机代码,并且至于处理DVD,在免费图书馆看起来像金尘!
基于以上(或其他任何你能想到的),人们会推荐哪些选项,还有其他任何我错过的合理选择吗?或者其他任何人认为可能在不久的将来可用?
在我目前的项目中,我们必须在java中开发一个外观漂亮的桌面应用程序.
目前,我们有一个非常基本的桌面应用程序编写的摇摆和团队没有良好的摇摆知识.我们可以在摇摆中创建一个非常好看的UI吗?
我们应该使用JavaFX来创建桌面应用程序吗?
有什么其他选择吗?
在Java 7及更高版本中,diamond可用于正常推断类型,因此没有问题:
List<String> list = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
但是,对于像这样的匿名内部类,它不能:
List<String> st = new List<>() { //Doesn't compile
//Implementation here
}
Run Code Online (Sandbox Code Playgroud)
为什么是这样?从逻辑上讲,在这种情况下,我可以将类型推断为String
.这个决定的逻辑原因是,在匿名内部类中实际上不能推断出类型,还是由于其他原因而省略了?