我想从JFrame中删除标题栏,所以我在那个JFrame上调用setUndecorated(true),但是我想在JFrame上保留边框(漂亮渐变),当装饰打开时它会出现?我能这样做吗?比如为LookAndFeel默认获取边框实例或者自己制作渐变边框?
答案 0 :(得分:2)
默认系统LookAndFeel窗口边框由系统绘制,而不是Java,因此无法单独从窗口中删除标题栏。你可以做的唯一事情就是不自己设计窗口并自己绘制边框(是的,要完全复制系统边框,你必须付出很多努力)。
也许SWT可以提供类似的内容,但要使用它,你将不得不放弃标准的Swing。
答案 1 :(得分:1)
您可以通过创建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);
}
}