小编Bra*_*ell的帖子

这个有效的Java代码会从javac 1.8 update 91中产生错误

我相当确定下面的代码是有效的Java 1.8代码:

import java.util.function.Consumer;

public class UnsolvableClass {

    private Consumer<Object> func = (Object theErrorVariable) -> {};

    public UnsolvableClass() {
        return;
    }

}
Run Code Online (Sandbox Code Playgroud)

现在,您可能会想:"为什么在构造函数中有返回?" 好吧,那是因为它是我提出的最小的示例代码,产生了这个错误.

请注意,在构造函数中使用return语句是完全合法的.

编译时,javac会抛出此错误.

UnsolvableClass.java:10: error: variable theErrorVariable might not have been initialized
        return;
        ^
1 error
Run Code Online (Sandbox Code Playgroud)

我喜欢当错误与..."theErrorVariable"变量未被初始化时它认为错误发生在"返回"行上的情况.

如果我删除"返回"行,一切都编译好.此外,如果我删除lambda语句,它也编译好.

注意:我尝试使用Eclipse的java编译器进行编译,并且编译成功.

听起来像javac的lambda支持中一个非常模糊的错误.我错过了什么吗?

如果我不是,这是一个真正的错误,我会在哪里向Oracle报告?

java lambda compiler-errors

12
推荐指数
1
解决办法
151
查看次数

创建一个ClassLoader以从字节数组加载JAR文件

我正在寻找一个自定义类加载器,它将JAR从自定义网络加载文件.最后,我必须使用的是JAR文件的字节数组.

我无法将字节数组转储到文件系统上并使用URLClassLoader.
我的第一个计划是JarFile从流或字节数组创建一个对象,但它只支持一个File对象.

我已经写了一些使用了JarInputStream:

public class RemoteClassLoader extends ClassLoader {

    private final byte[] jarBytes;

    public RemoteClassLoader(byte[] jarBytes) {
        this.jarBytes = jarBytes;
    }

    @Override
    public Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {
        Class<?> clazz = findLoadedClass(name);
        if (clazz == null) {
            try {
                InputStream in = getResourceAsStream(name.replace('.', '/') + ".class");
                ByteArrayOutputStream out = new ByteArrayOutputStream();
                StreamUtils.writeTo(in, out);
                byte[] bytes = out.toByteArray();
                clazz = defineClass(name, bytes, 0, bytes.length);
                if …
Run Code Online (Sandbox Code Playgroud)

java arrays jar classloader

10
推荐指数
2
解决办法
5612
查看次数

C++直接绘制到屏幕上(如叠加层)

如今许多笔记本电脑都有FN热键来改变音量,亮度等,并且通常会在屏幕上呈现完全在操作系统上方呈现的视觉提示.对于新的Windows 8/8.1系统,这种视觉甚至出现在地铁一侧的桌面之外.它们不能在无边框窗口内绘制,否则它不会显示在metro接口上.

我曾尝试研究DirectX是否可以直接绘制到屏幕上,但它似乎不能.我甚至不知道我是否应该研究OpenGL ......?

我使用GDI取得了一些成功; 特别是带参数NULL的GetDC函数来抓取屏幕设备.

#include <Windows.h>

int main() {
    const HDC dc = GetDC(NULL);
    while (1) {
        Rectangle(dc, 100, 100, 500, 500);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,这需要重复渲染所有内容,因为我的屏幕区域可能会被后台更改的其他窗口覆盖.即使它在循环中重新渲染,也会出现大量的屏幕闪烁.

这些笔记本电脑的OEM制造商如何实现这一目标?

谢谢.

c++ windows directx gdi+ gdi

9
推荐指数
1
解决办法
3887
查看次数

Jetbrains PhpStorm HTML缩进

看起来PHPStorm不想遵循我指定的代码样式.每次格式化HTML文件时,它都会折叠缩进:

<html>
    <head>
        bleh
    </head>
    <body>
        bleh
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

<html>
<head>
<bleh>
    bleh
<bleh>
</head>
<body>
<bleh>
    bleh
<bleh>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

"bleh"(包含所有包含的标签)缩进了它们的假设.
我找到了设置:文件 - >设置 - >代码样式 - > HTML - >其他 - >"不要缩进子项".
那里面填充了几个已经删除的标签(因此文本字段为空).
这些设置理论上适用于当前方案的项目方案.
但是,我还没有完全理解这些方案的概念,所以我可能会遗漏一些重要的东西.

图片:
http ://snapshot.overloadproducts.com/7411c9d50e0b43edc76c1e625a38d61c http://snapshot.overloadproducts.com/5a74f83356572f3644a6d52bf2fa1f66

编辑:第二天打开PHPStorm,它表示项目文件已在外部编辑,需要刷新.一旦它完成,它再次正确格式化.
因此,某些设置文件不同步,并且设置窗口未保存到文件中.
我认为还是一个错误.

html formatting phpstorm

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

当JTextArea超过一定数量的行时启用滚动条

这是我第一次使用任何StackExchange网站,所以让我们看看它是怎么回事.

所以我一直用Java制作一个"本地"聊天程序,并使用JTextField进行聊天输入.但我想允许多行聊天,所以我切换到JTextArea.我正在使用GroupLayout(使用Window Builder Pro-eclipse构建),以便轻松调整窗口/组件的大小.这是一张图片:

在此输入图像描述

JTabbedPane,JTextArea和Send按钮都包含在JPanel中,左边的所有内容都在它自己的JPanel中.所以我有JTextArea和按钮停靠在右侧JPanel的底部.允许JTextArea垂直调整大小,但按钮不允许.当我输入新行时,我能够让JTextArea垂直增长,如下所示:

在此输入图像描述

但我无法想办法,如果我在JTextArea中输入一定数量的行,则会出现滚动条并阻止JTextArea占用更多空间.所以我尝试将JTextArea包装在JScrollPane中,但最初禁用滚动条,然后在我需要JTextArea开始滚动时启用它们,但我了解到如果我将它包装起来,JScrollPane将不会增长但仍然会像它一样滚动条可见,但......没有它们.:/

**我想在这里放一个链接,但StackOverflow不喜欢我;)

所以,我有点卡住......有什么东西可以做到这一点,我错过了吗?我想我可以创建两个不同的GroupLayout对象,一个滚动窗格甚至没有效果,然后其他滚动窗格有效,但卡在一定大小.在keyPress监听器上,我可以检查文本区域是否超过某个限制,然后它会切换面板的布局?内部JTextArea仍然是同一个对象,但只是不同的布局对象.关于这种方法的意见?

无论如何,提前感谢所有花时间回答这个问题的人.:)

java swing chat jscrollpane jtextarea

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

重新验证JList - 自定义元素

我正在使用JList来保存聊天程序的聊天数据.
它使用自定义列表渲染器将自定义JPanel对象呈现为元素类型.
这个JPanel包含两个JLabel(锚定到顶部,用于名称和时间),以及一个JTextArea(锚定到底部,用于聊天消息).

它看起来像这样:

一张pic1 http://oi44.tinypic.com/20jiix5.jpg

一切都很好,但我想添加一个隐藏/显示功能.
使用以前编程的PopupMenu处理程序,当您右键单击元素时,会出现一个弹出窗口.

一张pic2 http://oi42.tinypic.com/2m5exxt.jpg

当你点击隐藏(或显示,它是一个切换),那么它应该最小化元素,如此...

一张pic3 http://oi41.tinypic.com/kf3apx.jpg

唯一的问题是......它不会更新JList单元格大小,因为您可以看到文本曾经是大的空白区域.
但是,当我输入另一条消息时......

一张pic4 http://oi40.tinypic.com/35jdoo7.jpg

JList修复了完成"隐藏"操作的单元格大小.
我的问题是如何让JList以编程方式重新验证/重绘/ etc.
并且不要以为我没有尝试过所有明显的解决方案......

public void setHidden(boolean hidden) {
    // this is in the custom JPanel class
    System.out.println("Initial: " + this.getPreferredSize());

    // TextArea is the JTextArea which we set invisible when we want to hide it.
    TextArea.setVisible(!hidden); // TextArea is a variable btw
    this.invalidate();
    this.validate();
    this.repaint();

    System.out.println("After: " + this.getPreferredSize());
    container.revalidate();
}

/*
 * This is what the above printlns show when you …
Run Code Online (Sandbox Code Playgroud)

java swing custom-renderer jpanel jlist

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

sudo:命令未找到

我正在尝试以screen另一个用户身份执行sudo.

我正在使用命令:

echo 'userpassword' | /usr/bin/sudo -u 'myuser' -S '/usr/bin/screen -ls'
Run Code Online (Sandbox Code Playgroud)

在互联网上找到的任何帮助都说明了sudo清除环境变量(比如PATH).所以我决定使用应用程序的完整路径,但我仍然得到命令not found错误.

错误:

sudo: /usr/bin/screen -ls: command not found
Run Code Online (Sandbox Code Playgroud)

Sudo安装在系统上.屏幕安装在系统上.

因为sudo,我已经尝试了-E-H旗帜,但它没有帮助.

我试着PATH用这样的东西设置变量:

... | /usr/bin/sudo -u 'myuser' -S 'env PATH=$PATH; /usr/bin/screen -ls'
Run Code Online (Sandbox Code Playgroud)

据说$PATH假设在命令执行之前扩展但我得到了其他错误......

有人可以提供一个命令,让我可以作为另一个用户执行命令,并解释命令的每个部分的作用,以便我能理解它吗?

谢谢.

linux ubuntu sudo gnu-screen

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

DataTrigger绑定到UserControl依赖项属性

我在使用DataTrigger在"选择"时可视地更改UserControl时遇到了问题.
我在名为"IsSelected"的类中创建了一个"bool"依赖项属性.

我正在使用这个XAML:

<UserControl x:Name="zControl"
             x:Class="Intel.AdaptivePerformance.Client.UI.Controls.ZoomControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             mc:Ignorable="d" 
             d:DesignWidth="50" d:DesignHeight="32">
    <Border BorderBrush="Black" BorderThickness="1,0,1,2" Background="#2F000000">
        <Border.Style>
            <Style TargetType="{x:Type Border}">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ElementName=zControl, Path=IsSelected}" Value="True">
                        <Setter Property="BorderThickness" Value="1,0,1,0" />
                        <Setter Property="Background" Value="{x:Null}" />
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Border.Style>
        <Label Content="{Binding ElementName=zControl, Mode=OneWay, Path=Text}" HorizontalAlignment="Center" HorizontalContentAlignment="Center" VerticalAlignment="Center" VerticalContentAlignment="Center" />
    </Border>
</UserControl>
Run Code Online (Sandbox Code Playgroud)

并使用此C#:

public partial class ZoomControl : UserControl {

    public static readonly DependencyProperty IsSelectedProperty = DependencyProperty.Register("IsSelected", typeof(bool), typeof(ZoomControl), new PropertyMetadata(false));
    public static readonly DependencyProperty TextProperty = DependencyProperty.Register("Text", typeof(string), typeof(ZoomControl), new …
Run Code Online (Sandbox Code Playgroud)

c# wpf xaml binding user-controls

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