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