Tag: java 7

在Java 6和Java 7中使用透明窗口

我正在开发Java 6 (1.6.0_24)中的应用程序,它使用透明的JFrame来获取消失的动画。 这是我的代码: public static void slowDisappearWindowAction(Window source, int milisSlow, int milisFast) throws InterruptedException{ float level = 1.0f; //slow effect -> 50% for(int i=0; i 0% for(int i=0; i<8 ; i++){ level=level-0.05f; AWTUtilities.setWindowOpacity(source,level); Thread.sleep(milisFast); } AWTUtilities.setWindowOpacity(source,0.1f); } 它在我的机器上工作正常,但是当我在安装了Java 7另一台PC上进行测试时,我遇到了错误: Exception in thread “AWT-EventQueue-0” java.awt.IllegalComponentStateException: The frame is decorated at java.awt.Frame.setOpacity(Unknown Source) at java.awt.Window$1.setOpacity(Unknown Source) […]

Java 7 JColorChooser:禁用透明度滑块

JDK 7为JColorChooser添加了一个新的透明度滑块: 问题是我不想让我的用户选择透明的颜色。 不幸的是,似乎没有一种简单的方法来禁用滑块。 摆脱透明度的一种方法是仅根据所选颜色创建一种新颜色,但删除alpha值。 然而,这给用户留下了错误的印象,因为滑块现在实际上什么都不做,我讨厌有一个无用的UI元素。 所以我的问题是,摆脱透明度滑块的最佳方法是什么? PS:IMO,他们只是添加滑块并使其成为默认行为,这很奇怪。 这可能会导致JDK 6程序中的许多错误,这些错误不希望颜色选择器返回带有alpha值的颜色。

在OS X Lion上使用Java 7中的JTable进行setValueAt的虚假调用?

在升级到Lion和Java 7之后,我遇到了JTables的问题。 当我使用箭头键移动选择时,它调用带有空字符串的setValueAt()作为编辑值。 为了测试这个,我创建了一个带有表的简单JFrame,并将以下类设置为其模型。 public class SpyModel extends AbstractTableModel { public int getColumnCount() { return 5; } public int getRowCount() { return 5; } public Object getValueAt(int rowIndex, int columnIndex) { return “”; } public boolean isCellEditable(int rowIndex, int columnIndex) { return true; } public void setValueAt(Object aValue, int rowIndex, int columnIndex) { System.out.println(aValue == […]

为什么switch语句比Java 7中的String更快?

在Java 7中 , string对象可以在switch语句的表达式中。 有人可以从官方文档中解释以下声明吗? Java编译器通常使用String对象生成比使用链式if-then-else语句更高效的字节码。

强制在JDK7工具中使用英语

我刚刚在德国的Windows机器上安装了JDK7,我注意到的第一件事是,与操作系统和一些消息(例如,来自工具的帮助消息,而不是来自编译器的错误消息)之后的JDK6不同,它是德语版本。 我怎么能强迫它到处使用英语呢? AFAIK安装程序不是特定于语言的,安装过程中的所有消息都是英文的。

使用Java 6中的Java 7 SDKfunction

我有兴趣使用Java 7 SDK中的一些NIO2function(特别是文件系统观察者 ),但是我不想为Java 7编译我的类并排除Java 6运行时。 主要是因为我希望保持与Mac OS X的兼容性,还因为我不想强迫我的用户升级。 这可能吗? 最好的方法是什么? 任何链接或示例? 以下是我可以想象的一些方法:使用不同的编译器编译类文件并根据Java版本动态加载它? 或者也许使用reflection? 或者也许只有Java 7的编译器设置来生成Java 6兼容的类? 我正在寻找一个不会变成丑陋混乱的解决方案:),所以理想情况下我可以编写两个接口实现,一个使用新function,一个不使用,然后动态选择一个而不必进行reflection调用到处都是。

Java 7日期/时间API

我注意到Java7 API的快照已经在java.sun.com 上播放了一段时间,但我刚刚看了一眼它,专门针对承诺的JodaTime启发的Date / Time API。 唉,我在发表的文档中没有提到它。 这是因为它还没有完成,而且这个发布的API是一个早期的,不完整的快照,还是因为这个想法已被悄然丢弃了?

Java 7 zip文件系统提供程序似乎不接受URI中的空格

我一直在测试所有可能的变体和排列,但我似乎无法使用zip / jar方案构造一个包含空格的路径(URI)的FileSystemProvider。 Oracle Docs提供了一个非常简单的测试用例。 我冒昧地修改了这个例子,只是在URI中添加空格,它就停止工作了。 下面的代码段: import java.util.*; import java.net.URI; import java.nio.file.*; public class Test { public static void main(String [] args) throws Throwable { Map env = new HashMap(); env.put(“create”, “true”); URI uri = new URI(“jar:file:/c:/dir%20with%20spaces/zipfstest.zip”); Path dir = Paths.get(“C:\\dir with spaces”); if(Files.exists(dir) && Files.isDirectory(dir)) { try (FileSystem zipfs = FileSystems.newFileSystem(uri, env)) {} […]

Java 7 String switch反编译:意外指令

我已经反编译了一个使用新的Java 7字符串切换function的非常简单的类。 class上: public class StringSwitch { public static void main(String[] args) { final String color = “red”; switch (color) { case “red”: System.out.println(“IS RED!”); break; case “black”: System.out.println(“IS BLACK”); break; case “blue”: System.out.println(“IS BLUE”); break; case “green”: System.out.println(“IS GREEN”); break; } } } 对这个类运行Java 7“javap”,会生成一组有趣的指令( 这里提供了完整的反汇编代码): public static void main(java.lang.String[]); flags: ACC_PUBLIC, ACC_STATIC Code: […]

Java Swing循环进度条无法正常工作

我从Oracle站点发现了这个测试项目 ,因为我想在我的项目中添加一个循环进度条。 我正在使用Netbeans开发应用程序,当我启动应用程序时,应该是圆圈的JPanel ….令人失望。 我删除了所有无法解决此问题的代码,我已经得到了这段代码: import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.beans.PropertyChangeEvent; import javax.swing.*; import javax.swing.plaf.LayerUI; public class Loading_Test extends javax.swing.JFrame { static final WaitLayerUI layerUI = new WaitLayerUI(); public Loading_Test() { JPanel panel = new JPanel(); JLayer jlayer = new JLayer(panel, layerUI); add(jlayer); initComponents(); } @SuppressWarnings(“unchecked”) private void initComponents() { setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); javax.swing.GroupLayout layout […]