小编Mar*_*mus的帖子

如何设置颜色的R,G,B和Alpha分量?

有3个整数值构成RGB值,我也有颜色的Alpha分量值.如何设置这4个值以获得所需的颜色

java rgb image rgba

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

如何在编辑时选择JTable单元格中的所有文本,而不是在键入时选择?

JTable的默认行为是在您开始键入时附加到内容,并在单击时将插入符号放在单击的位置.我希望这两件事的行为都能改变,因此当我编辑单元格时,通过键入或单击然后键入来替换内容.然而,当我单击一个单元格然后更改插入位置时,我希望内容保留,以便我可以更改它.

我知道如何在单元格编辑时选择所有内容,方法是将单元格编辑器替换为选择SwingUtilities.invokeLater内部的单元格编辑器(参见其他地方),但这会导致输入行为中断.当我这样做并开始键入单元格时,首先将键入的字符附加到字符串,然后选择它(但选择是不可见的!),当键入另一个字符时,内容将被替换.

有没有办法在键入高亮(但不是编辑)单元格时立即替换内容,但在单击单元格时选择全部?

这是我用于CellEditor的代码:

public class TextFieldCellEditor extends JTextField implements TableCellEditor
{
    private CellEditorListener  cellEditorListener  = null;

    private boolean             isInteger           = false;
    private Object              oldValue;

    // Start editing
    @Override
    public Component getTableCellEditorComponent(JTable table, Object obj, boolean isSelected, int row, int column)
    {
        Color color2 = DefaultLookup.getColor(this, ui, "Table.alternateRowColor");
        super.setBackground(color2 != null && (row & 1) == 1? color2 : table.getBackground());
        super.setForeground(table.getForeground());
        super.setBorder(DefaultLookup.getBorder(this, ui, "Table.focusCellHighlightBorder"));

        super.setText(obj.toString());

        isInteger = obj instanceof Integer;
        if (isInteger)
        {
            super.setHorizontalAlignment(SwingConstants.RIGHT);
            oldValue = obj;
        } …
Run Code Online (Sandbox Code Playgroud)

java swing jtable

10
推荐指数
1
解决办法
6566
查看次数

IntelliJ:包装javadoc文本但不包括标记

我正在尝试格式化以下Javadoc,但我无法弄清楚如何.

输入示例:

/**
 * Headline.
 * <p>
 * Lorem ipsum dolor sit amet,
 * consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
 * <p>
 * A list:
 * <ul>
 * <li>The description above should be wrapped at the right margin, and broken lines should be joined.</li>
 * <li>A line starting or ending in a tag should not be joined.</li>
 * </ul>
 *
 * @author Mark Jeronimus
 */
Run Code Online (Sandbox Code Playgroud)

当我按'格式'时我想看到这个:

/**
 * Headline.
 * <p>
 * …
Run Code Online (Sandbox Code Playgroud)

formatting intellij-idea

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

当泛型方法返回'nothing'但null无法返回时返回什么?

假设我有一个像这样的库方法(非常简短):

public static <V> Optional<V> doSomethingWith(Callable<V> callable) {
    try {
        return Optional.of(callable.call());
    } catch (Exception ex) {
        // Do something with ex
        return Optional.empty();
    }
}
Run Code Online (Sandbox Code Playgroud)

而且我想要一些不会返回值的东西,例如:

    Library.</*What1*/>doSomethingWith(() -> {
        foo();
        return /*what2*/;
    });
Run Code Online (Sandbox Code Playgroud)

我对没有返回值的泛型方法的第一直觉是生成类型Void并返回null,但是因为结果被包装在一个Optional会抛出异常.

什么是合理的占位符/*What1*//*what2*/看上去并不完全随机的像Integer0

[编辑]我试图避免Optional.ofNullable因为这里使用空来表示callable.call()没有正常完成.

java generics optional java-8

7
推荐指数
2
解决办法
1084
查看次数

退出eclipse并保持Java应用程序运行?

如何在不杀死eclipse中启动的应用程序的情况下退出Eclipse?我知道在调试模式下启动的应用程序与Eclipse有一个网络链接,但在发布模式下启动的应用程序应该没有问题.但是,无论我如何结束eclipse(甚至杀死进程)都会在几秒钟后杀死已启动的应用程序,无论这些程序中的重要未保存数据如何.

动机?可以是任何:eclipse内部错误请求重启,需要释放更多内存(eclipse是330MiB),由进程资源管理器意外杀死.

java eclipse kill exit

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

禁用hashCode和equals的checkstyle

我需要示例配置来完全禁用check-style for hashCode()equals()methods.

java coding-style checkstyle

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

如何正确关闭可变数量的流?

我正在创建多个流,我必须并行(或可能并行)访问.我知道如何在编译时修复资源量时尝试使用资源,但是如果资源量由参数确定怎么办?

我有这样的事情:

private static void foo(String path, String... files) throws IOException {
    @SuppressWarnings("unchecked")
    Stream<String>[] streams = new Stream[files.length];

    try {
        for (int i = 0; i < files.length; i++) {
            final String file = files[i];
            streams[i] = Files.lines(Paths.get(path, file))
                .onClose(() -> System.out.println("Closed " + file));
        }

        // do something with streams
        Stream.of(streams)
            .parallel()
            .flatMap(x -> x)
            .distinct()
            .sorted()
            .limit(10)
            .forEach(System.out::println);
    }
    finally {
        for (Stream<String> s : streams) {
            if (s != null) {
                s.close();
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java java-8 try-with-resources java-stream

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

执行程序服务的并发数组访问

阵列元素是否在工人之间正确发布?

假设我有一个大数组(任何原子数据类型,所以没有longdouble),

  • 我创建了一个填充数组的工作者,我传递给它的构造函数,
  • 我提交工人执行人,并等待,直到它完成(future.get()).工人不会退货.它只是填充我的阵列.
  • 然后,我立即在其构造函数中创建并提交具有相同数组的另一个worker.它看到了最新的价值吗?

换句话说,它保证了前一个工作者的最后一次写入发生在第一次读取下一个工作者之前?

我是否应该(或者为了最佳实践或某事)让第一个工作人员返回数组,即使引用与我已经拥有的引用相同?

[编辑]一些背景:我使用byte数组或short数组,它们代表图像,每个使用多达500,000,000个元素.我对每个元素执行简单的算术运算.

java concurrency executorservice happens-before

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

如何使用流检查两个阵列

我有一个应用程序的数组列表,我有一个目录,它只包含jar文件(我使用反射来访问我平台中的这些jar文件).我想循环遍历目录中的所有文件,查找所有jar文件,然后检查它们是已验证应用程序的数组列表的一部分,并从中构建一个新的数组列表,其中包含所有已验证的文件和存在.

到目前为止,我有这个:

App.getAppStore()
   .stream()
   .filter(o -> {
       File[] listOfFiles = new File("C:/Temp/MyApps/").listFiles();
       Object[] foo = Arrays.stream(listOfFiles)
                            .filter(x -> x.getName().contains(o.getName()))
                            .toArray();

       return true;
}).toArray();
Run Code Online (Sandbox Code Playgroud)

然而,这给了我arraylist里面的所有内容,即使它们不存在于文件中.任何帮助将不胜感激,我想使用流.

我想转此:

ArrayList<Application> verifiedApps = new ArrayList<verifiedApps>();
for( Application app : App.getAppStore() ) {
    for( File verifiedApp : new File("C:/Temp/MyApps/").listFiles() ) {
        if( verifiedApp.getName().contains( app.getName() )
            verifiedApps.add( app );
    }
}
Run Code Online (Sandbox Code Playgroud)

使用流来习惯了解如何使用流.

java filtering java-8 java-stream

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

生成随机浮动,包括两个边界

我需要生成范围内的随机实数[-0.5, 0.5]包括两个边界

我发现了产生相似范围的各种方法,例如

-0.5 + Math.random()
Run Code Online (Sandbox Code Playgroud)

但是上限始终是排他性的,我也需要包含性。0.5必须在范围内。

java random

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