从 JFrame 中删除标题栏后保留边框



我想从 JFrame 中删除标题栏,所以我在该 JFrame 上调用 setUndecorated(true),但我想在该 JFrame 上保留边框(漂亮的渐变),装饰打开时会出现?我能做到吗?比如获取 LookAndFeel 默认值的边框实例或自己制作渐变边框?

默认系统

LookAndFeel 窗口边框是由系统绘制的,而不是由 Java 绘制的,因此无法单独从窗口中删除标题栏。您唯一能做的就是自己装饰窗户并绘制边框(是的,要完全复制系统边框,您必须付出很多努力)。

也许类似的东西可以在 SWT 中使用,但要使用它,您将不得不放弃标准 Swing。

您可以通过

创建JPanel并为其指定边框,然后将面板设置为框架的内容来直观地完成此操作。

public class Undecorated {
  public static void main(String[] args) {
    JFrame frame = new JFrame();
    JPanel borderedPanel = new JPanel();
    //Use any border you want, eg a nice blue one
    borderedPanel.setBorder(BorderFactory.createMatteBorder(5, 5, 5, 5, Color.BLUE));
    frame.setContentPane(borderedPanel);
    frame.setUndecorated(true);
    frame.setSize(new Dimension(200, 200));
    frame.setVisible(true);
  }
}

相关内容

  • 没有找到相关文章

最新更新