小编Mic*_*rry的帖子

JavaFX应用程序图标

是否可以使用JavaFX更改应用程序图标,还是必须使用Swing完成?

java javafx stage javafx-2 javafx-8

161
推荐指数
5
解决办法
12万
查看次数

Intellij IDEA,格式化项目中的所有代码

我非常喜欢IDEA的代码格式,但是如何让它重新格式化特定项目中的所有代码而不通过每个文件?我已经找到了在将代码提交到subversion之前整理/优化代码的选项,这很好,但它似乎只适用于已经修改过的文件(在大多数情况下这是明智的!)

有没有办法自动格式化项目中的所有源文件而无需手动完成所有这些文件?

java code-formatting intellij-idea

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

[L数组符号 - 它来自哪里?

我经常看到使用[L类型来表示数组的消息,例如:

[Ljava.lang.Object; cannot be cast to [Ljava.lang.String;

(上面是我刚刚拔出的任意例子.)我知道这表示一个数组,但语法来自何处?为什么开始[但没有关闭方括号?为什么L?这纯粹是武断的还是还有其他一些历史/技术原因?

java arrays

76
推荐指数
5
解决办法
3万
查看次数

是什么让参考比较(==)适用于Java中的某些字符串?

我有以下代码行来比较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 string equals

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

为什么JSeboBox上的getSelectedItem()不是通用的?

Java 7中的JCombobox已经更新为使用泛型 - 我一直认为它有点疏忽,它还没有,所以我很高兴看到这种变化.

但是,当试图以这种方式使用JCombobox时,我意识到我期望使用这些泛型类型的方法仍然只是返回Object.

这究竟是为什么?对我来说,这似乎是一个愚蠢的设计决定.我意识到底层的ListModel有一个通用的getElementAt()方法,所以我会用它来代替 - 但它有点迂回的做法,看起来它可能在JComboBox本身上被改变了.

java generics swing jcombobox java-7

49
推荐指数
1
解决办法
6394
查看次数

RXTX的稳定替代品

在将RXTX用于许多不同的项目之后,我遇到了许多烦人的差异和问题,这些问题只能明智地归结为库中的错误 - 死锁,种族危险以及RXTX库深处的监视器线程被打开阻止关闭的程序(即使我使用的所有端口都已关闭!)运行最新的"不稳定"版本有所帮助,但它仍然远离我称之为可靠的地方,项目上的活动似乎相当低现在.

但是,搜索RXTX的免费跨平台替代方案似乎没有提出太多其他方面.

还有另一个图书馆,任何人都试过更幸运吗?我不需要并行端口支持,只需要串行,并且它不一定必须与RXTX或javax.commAPI 兼容.

java serial-port rxtx

49
推荐指数
3
解决办法
4万
查看次数

将现有泛型转换为菱形语法

我更喜欢Java 7引入的泛型钻石语法 - 而不是从节省时间的角度来看(毕竟大多数IDE都为你填补了这一点)但仅仅因为它使代码看起来更清晰.由于这个和其他原因(主要是我正在开发一个新的软件和Java 7中的一些新API将是有用的),我很可能会切换现有的代码库来使用/需要Java 7.

然而,有一个公平的块已经编写了前钻石语法,我想始终使用钻石语法.是否有IDE快捷方式(我使用Netbeans但显然可以在任何免费的IDE中打开项目来执行任务)或其他可以自动切换现有通用代码以使用菱形语法的东西?

java generics java-7

30
推荐指数
3
解决办法
7156
查看次数

用Java处理视频(DVD,.avi .mkv)

在环顾四周寻找一个体面的图书馆用Java播放视频之后,我已经不知所措了.周围的每个人都在尖叫不要使用JMF,因为它已经过时,过时而且需要用户安装它,其他替代品如VLCJ似乎很好,如果它们工作但仍然相对不稳定并依赖大量本机代码,并且至于处理DVD,在免费图书馆看起来像金尘!

当前选项:

  • 现在JavaFX 2正在获得动力,这是我一直在认真研究的东西(因此我的问题在这里)但是到目前为止我没有运气试图弄清楚如何让它比标准的FLV视频更糟糕.
  • VLCJ的工作做得很好(参见我目前的答案),目前我正在努力.它使用libvlc来做任何事情,因为它可以播放几乎任何文件并且开箱即用DVD.最大的问题是你必须为每个玩家使用多个虚拟机才能使其稳定运行,这意味着响应速度相对较慢.我还没有这种方法在Mac上工作.
  • JMF是荒谬的过时,可怕的,就我而言,并不是一个真正的选择.我过去玩过它,经验不是很好!
  • FMJ表示这是JMF的替代下降.我还没有像我和其他大多数人那样让它发挥作用,这本身就让我对它的质量和理解感到厌倦,即使我设法让它发挥作用!
  • Xuggler非常适合它的功能,它有很棒的教程,而且编写得非常好.虽然它对于低级转码工作很有用,播放视频并以正确的顺序和同步等方式获取帧只是一个正常工作的噩梦,并再次添加更多代码,这意味着更多的维护,可能更多的错误等等...
  • 我还没有尝试过任何愤怒的GStreamer-Java,虽然它似乎不支持DVD播放(它是一个我正在研究的开源应用程序,所以商业插件也不是一个选项)并且它的编解码器支持不会似乎是最宽的.
  • JCodec是一项有趣的工作,是我见过的唯一一个从纯Java角度实现视频支持的工作 - 但目前缺乏对格式的支持,这是一个相对较新的项目.
  • 在我想要支持的每个平台的不同本地库中自己写一些东西.这是绝对的最后选择,因为它需要额外的维护和编码时间.

基于以上(或其他任何你能想到的),人们会推荐哪些选项,还有其他任何我错过的合理选择吗?或者其他任何人认为可能在不久的将来可用?

java api video media-player

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

我们可以开发非常好看的用户界面,如果不是什么是替代品

在我目前的项目中,我们必须在java中开发一个外观漂亮的桌面应用程序.

目前,我们有一个非常基本的桌面应用程序编写的摇摆和团队没有良好的摇摆知识.我们可以在摇摆中创建一个非常好看的UI吗?

我们应该使用JavaFX来创建桌面应用程序吗?

有什么其他选择吗?

java swing desktop-application javafx look-and-feel

23
推荐指数
4
解决办法
2万
查看次数

为什么不能在匿名内部类上使用菱形推断类型?

在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.这个决定的逻辑原因是,在匿名内部类中实际上不能推断出类型,还是由于其他原因而省略了?

java type-inference java-7

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