奇怪的摆动边框神器
Strange swing border artifact
这是我的简化代码示例:
public class TestPanel extends JPanel {
private static void createAndShowGUI() {
JFrame myFrame = new JFrame("");
myFrame.setBounds(new Rectangle(100, 100, 240, 180));
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel box = new JPanel(null);
box.setBackground(Color.BLUE);
JPanel left = new JPanel();
left.setOpaque(false);
JPanel right = new JPanel();
right.setOpaque(false);
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left, right);
splitPane.setResizeWeight(0.5);
splitPane.setOpaque(false);
box.setLayout(new BorderLayout());
box.setBorder(new EmptyBorder(10, 10, 10, 10));
box.add(splitPane);
myFrame.getContentPane().add(box, BorderLayout.CENTER);
myFrame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(TestPanel::createAndShowGUI);
}
}
它产生以下结果:
如果仔细观察左下角,您可能会注意到奇怪的边框扭曲:
有谁知道哪里出了问题?
在macos上测试过,jdk1.8.0_251
看来这是你本地的问题。我看不到这个神器。
这是我的简化代码示例:
public class TestPanel extends JPanel {
private static void createAndShowGUI() {
JFrame myFrame = new JFrame("");
myFrame.setBounds(new Rectangle(100, 100, 240, 180));
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel box = new JPanel(null);
box.setBackground(Color.BLUE);
JPanel left = new JPanel();
left.setOpaque(false);
JPanel right = new JPanel();
right.setOpaque(false);
JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left, right);
splitPane.setResizeWeight(0.5);
splitPane.setOpaque(false);
box.setLayout(new BorderLayout());
box.setBorder(new EmptyBorder(10, 10, 10, 10));
box.add(splitPane);
myFrame.getContentPane().add(box, BorderLayout.CENTER);
myFrame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(TestPanel::createAndShowGUI);
}
}
它产生以下结果:
如果仔细观察左下角,您可能会注意到奇怪的边框扭曲:
有谁知道哪里出了问题? 在macos上测试过,jdk1.8.0_251
看来这是你本地的问题。我看不到这个神器。