0

我想从 JFrame 中删除标题栏,所以我在那个 JFrame 上调用 setUndecorated(true),但我想在那个 JFrame 上保留边框(漂亮的渐变),当装饰打开时会出现?我可以这样做吗?像获取 LookAndFeel 默认的边框实例或自己制作渐变边框之类的东西?

4

2 回答 2

2

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

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

于 2012-04-12T12:38:00.617 回答
1

您可以通过创建 aJPanel并为其设置边框,然后将面板设置为框架的内容来直观地完成此操作。

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);
  }

}
于 2012-04-12T11:28:57.157 回答