小编ugh*_*zan的帖子

无法访问的代码编译器错误

以下代码给出了unreachable statement编译器错误

public static void main(String[] args) {
    return;
    System.out.println("unreachable");
}
Run Code Online (Sandbox Code Playgroud)

有时为了测试目的,希望阻止调用方法,因此快速执行此操作(而不是在使用它的任何地方对其进行注释)是立即从方法返回,以便该方法不执行任何操作.然后我总是这样做以解决编译器错误

public static void main(String[] args) {
    if (true) {
        return;
    }
    System.out.println("unreachable");
}
Run Code Online (Sandbox Code Playgroud)

我只是好奇,为什么它是一个编译错误?它会以某种方式打破Java字节码,它是为了保护程序员还是其他东西?

另外(这对我来说更有趣),如果编译java到字节码进行任何类型的优化(或者即使它没有)那么为什么它不会在第二个例子中检测到明显无法访问的代码呢?编译器伪代码用于检查语句是否无法访问?

java compiler-construction

25
推荐指数
2
解决办法
2万
查看次数

未修饰的JFrame最大化始终使用OS X中的主监视器分辨率

我在OS X中的辅助(或任何非主要)监视器上最大化未修饰的帧时出现问题.似乎在第二个监视器上最大化帧时,使用主监视器的边界并且帧是调整大小超出屏幕范围(如果主监视器更大)或它没有填满整个屏幕(如果主监视器更小).

OS X Yosemite中的Java 1.8.0_40会出现此问题.在Windows和Linux中测试时没有出现此问题.

运行应用程序时,它看起来像这样.添加了数字网格,以便能够查看框架是否超出屏幕边界.

最大化测试

这是代码:

import java.awt.Color;
import java.awt.Cursor;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class MaximizeTest extends JFrame {

    public static void main(String[] args) {
        MaximizeTest frame = new MaximizeTest();
        frame.dispose();
        frame.setUndecorated(true);
        frame.pack();
        frame.setSize(400, 400);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }

    private final JPanel mainPanel = new NumberGridPanel();
    private final JButton maximizeButton = new JButton();
    private final JButton closeButton = …
Run Code Online (Sandbox Code Playgroud)

java macos swing

7
推荐指数
0
解决办法
455
查看次数

如何翻转JFrame及其孩子?

这可能看起来很愚蠢(可能是)但是我怎样才能JFrame颠倒所有组件?JFrame必须JFrame在控制器上包含文本的中间沿轴线垂直翻转所有内容.优选地,JTextFields,JButtons等即使翻转也按预期工作.

我做了一些搜索,但没有找到任何有用的主题.

有没有比手动更改布局更简单的方法,然后扩展和覆盖所使用的每个控件的绘制方法?

编辑:我设法让它工作.你可以在下面看到我的答案.

java user-interface swing paint

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