我想从 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);
}
}