小编Wak*_*iko的帖子

Java 7 JColorChooser:禁用透明度滑块

JDK 7为JColorChooser添加了一个新的透明度滑块:

在此输入图像描述

问题是我不想让我的用户选择透明的颜色.不幸的是,似乎没有一种简单的方法来禁用滑块.

摆脱透明度的一种方法是仅根据所选颜色创建一种新颜色,但删除alpha值.然而,这给用户留下了错误的印象,因为滑块现在实际上什么都不做,我讨厌有一个无用的UI元素.

所以我的问题是,摆脱透明度滑块的最佳方法是什么?

PS:IMO,他们只是添加滑块并使其成为默认行为,这很奇怪.这可能会导致JDK 6程序中的许多错误,这些错误不希望颜色选择器返回带有alpha值的颜色.

java swing transparency java-7 jcolorchooser

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

Java ImageIO:异常怪异

在我的应用程序中,我试图使用保存BufferedImage到PNG文件ImageIO.该文件由用户选择,因此我需要对可能发生的错误做出反应(例如,用户试图保存在他没有写入权限的位置).但是我无法IOException理解这种情况.

以下代码显示了该问题.尝试保存到"/ foo"应该为*nix系统上的大多数用户抛出异常,因为它们在根目录中没有写入权限.

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class IOTest {

    public static void main(String[] args) {
        BufferedImage img = new BufferedImage(640, 480,
                BufferedImage.TYPE_INT_RGB);
        try {
            File f = new File("/foo");
            ImageIO.write(img, "png", f);
        } catch (IOException e) {
            System.out.println("Caught IOException!");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,没有捕获异常.输出:

    java.io.FileNotFoundException: /foo (Permission denied)
    at java.io.RandomAccessFile.open(Native Method)
    at java.io.RandomAccessFile.<init>(RandomAccessFile.java:233)
    at javax.imageio.stream.FileImageOutputStream.<init>(FileImageOutputStream.java:69)
    at com.sun.imageio.spi.FileImageOutputStreamSpi.createOutputStreamInstance(FileImageOutputStreamSpi.java:55)
    at javax.imageio.ImageIO.createImageOutputStream(ImageIO.java:419)
    at javax.imageio.ImageIO.write(ImageIO.java:1530)
    at IOTest.main(IOTest.java:16)
Exception in thread "main" java.lang.NullPointerException
    at …
Run Code Online (Sandbox Code Playgroud)

java io exception filenotfoundexception ioexception

5
推荐指数
1
解决办法
3996
查看次数

根据某个特征对对象列表进行分组

我有一个对象列表(本例中的字符串),我想根据函数返回的某个特征对其进行分类.

例如,请考虑以下列表:

['sky', 'ocean', 'grass', 'tomato', 'leaf']
Run Code Online (Sandbox Code Playgroud)

和一个函数color(item),它返回传递给它的字符串的颜色,例如color('sky')返回'blue'.我现在想要将列表转换为字典或列表列表,这些列表根据项目的颜色/函数返回的值对项目进行分组.可能的结果如下所示:

{ 
    'blue': ['sky', 'ocean'],
    'green': ['grass', 'leaf'],
    'red': ['tomato']
}
Run Code Online (Sandbox Code Playgroud)

我不关心密钥本身,只是相应地对项目进行分组,因此嵌套列表也可以.试着以pythonic方式做到这一点:)

python dictionary list-comprehension list

0
推荐指数
1
解决办法
794
查看次数