Tag: java

Java,如何绘制不断变化的graphics

以前没做过,所以显然我吮吸它。 这里,当前鼠标位置周围的64个像素在窗体上绘制得稍大些。 问题是,这是缓慢的,我不知道从哪里开始修复。 除此之外,我做了一个线程,它在完成时不断地调用更新graphics,并且像文本一样带有一点点fps,以显示事物的绘制速度。 图像示例:(图像来自Eclipse中的字母'a') 代码示例: @SuppressWarnings("serial") public static class AwtZoom extends Frame { private BufferedImage image; private long timeRef = new Date().getTime(); Robot robot = null; public AwtZoom() { super("Image zoom"); setLocation(new Point(640, 0)); setSize(400, 400); setVisible(true); final Ticker t = new Ticker(); this.image = (BufferedImage) (this.createImage(320, 330)); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent […]

我如何淡入淡出图像?

我有一个从JPanelinheritance而来的类,我想要设置一个小animation来显示面板/图像,然后在事件触发时淡出。 我大概设置了一个线程,并开始animation,但我该怎么做,实际上做淡出?

Java中任意集合的笛卡尔积

你知道一些整洁的Java库吗,让你做两个(或更多)集的笛卡尔积? 例如:我有三套。 一个具有Person类的对象,其次是具有类Gift的对象,另一个具有类GiftExtension的对象。 我想生成一个包含所有可能的三元组Person-Gift-GiftExtension的集合。 集的数量可能会有所不同,所以我不能在嵌套的foreach循环中做到这一点。 在某些情况下,我的应用程序需要制作一个Person-Gift对的产品,有时候它是三倍的Person-Gift-GiftExtension,有时候甚至可能会设置Person-Gift-GiftExtension-GiftSecondExtension-GiftThirdExtension等。

Java错误:比较方法违反了它的一般合同

我看到很多关于这个的问题,并试图解决这个问题,但经过一个小时的谷歌search和大量的试验和错误,我仍然无法修复。 我希望你们中的一些人能够解决问题。 这是我得到的: java.lang.IllegalArgumentException: Comparison method violates its general contract! at java.util.ComparableTimSort.mergeHi(ComparableTimSort.java:835) at java.util.ComparableTimSort.mergeAt(ComparableTimSort.java:453) at java.util.ComparableTimSort.mergeForceCollapse(ComparableTimSort.java:392) at java.util.ComparableTimSort.sort(ComparableTimSort.java:191) at java.util.ComparableTimSort.sort(ComparableTimSort.java:146) at java.util.Arrays.sort(Arrays.java:472) at java.util.Collections.sort(Collections.java:155) … 这是我的比较: @Override public int compareTo(Object o) { if(this == o){ return 0; } CollectionItem item = (CollectionItem) o; Card card1 = CardCache.getInstance().getCard(cardId); Card card2 = CardCache.getInstance().getCard(item.getCardId()); if (card1.getSet() < card2.getSet()) […]

Java:导出到eclipse中的.jar文件

我试图将Eclipse中的程序导出到jar文件。 在我的项目中,我添加了一些图片和PDF:s。 当我输出到jar文件时,似乎只有main被编译和导出。 如果可能的话,我会将所有内容导出到一个jar文件,因为那么我想把它转换成一个可导入的文件,比如.exe-file。 但是,如何?

如何在java中获得一个整数的0填充二进制表示?

例如,对于1, 2, 128, 256输出可以是(16位): 0000000000000001 0000000000000010 0000000010000000 0000000100000000 我试过了 String.format("%16s", Integer.toBinaryString(1)); 它为左填充留出空间: ` 1' 如何把0填充。 我无法在Formatter中find它。 还有另一种方法吗? 提前致谢。 PS 这篇文章描述了如何格式整数与左0填充,但它不是二进制表示。

JSF服务层

我不确定我在JSF中使用MVC环境的方法是否是最好的方法。 既然我正在试图从JSF中获得最大的收益,我想知道我的服务层(或者说模型,用MVC术语讲)应该如何devise。 我知道视图控制器的比例应该是1比1(例外排除)。 现在我应该以什么方式devise我的服务层? 我应该使用一个大服务(不这么认为)吗? 如果没有,基于我应该分割我的服务? 请注意,我的服务将从Bean(MVC中的控制器)中调用,服务本身将在必要时使用JPA调用DAO。 提前致谢

java.lang.OutOfMemoryError:Java堆空间

我正在执行multithreading程序时出现以下错误 java.lang.OutOfMemoryError: Java heap space 上述错误发生在其中一个线程中。 根据我的知识,堆空间仅由实例variables占用。 如果这是正确的,那么为什么这个错误在运行正常之后发生,因为在创build对象时分配了实例variables的空间。 有没有办法增加堆空间? 我应该对我的程序做些什么改变,以便占用更less的堆空间?

在双精度上移动小数点以上

所以我有一个双重设置等于1234,我想移动一个小数点,使其12.34 所以要做到这一点,我把两倍乘以1到1234,就像这样 double x = 1234; for(int i=1;i<=2;i++) { x = x*.1; } System.out.println(x); 这将打印结果“12.340000000000002” 有没有一种方法,而不是简单地格式化到两位小数,有正确的双存储12.34?

使用Java重命名文件

我们可以重命名文件test.txt test1.txt ? 如果test1.txt存在将重命名? 如何将其重命名为已存在的test1.txt文件,以便将test.txt的新内容添加到其中供以后使用?