未装饰的JDialog边框

7
我有一个关于使用Metal L&F的未修饰JDialog周围边框的问题。
看一下这张图片,可以看到窗口上的边框: enter image description here 我试图弄清楚如何去掉或更改JDialog最外层蓝色边框的颜色。我查看了外观和感觉的UI默认值,但是没有找到适用于此的任何内容。
有人有任何想法如何去掉那个边框吗?
谢谢!

我的回答 http://stackoverflow.com/a/32752359/5370194 能帮到你吗? - Jun
3个回答

11

您需要更改根面板的 Border

getRootPane().
   setBorder( BorderFactory.createLineBorder(Color.RED) );

5

如果你想摆脱它,你可以使用

frame.setUndecorated(true);
frame.getRootPane().setWindowDecorationStyle(JRootPane.NONE);

要将Java风格的外观更改为Windows风格,您可以使用

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());

这并不是我想要的。我需要标题栏保持在顶部,同时也需要框架未装饰。唯一的方法是使用金属外观和感觉。将窗口装饰样式设置为无会去掉顶部的标题栏。 - Mark

2
你可以这样做:
((JPanel)getContentPane()).setBorder(BorderFactory.createLineBorder(Color.BLUE));

您可以尝试以下方法来更改最外层边框:

getRootPane().setBorder(BorderFactory.createLineBorder(Color.BLUE));

您想要做的就是这个吗?


getRootPane()在边框内部 - 作者指的是未装饰的JDialog外部边框。 - Tamara Koliada

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接