首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Java:如何在未装饰的JFrame周围绘制边框?

Java:如何在未装饰的JFrame周围绘制边框?
EN

Stack Overflow用户
提问于 2013-11-23 09:43:44
回答 3查看 41.6K关注 0票数 10

目前,我从DropShadowBorder库中获得了javax.swing.border.Border类(它扩展了SwingX类),因此这是常规Border的一个实例。我想把这条边界画在我未装饰的JFrame周围。我目前正在JFrame中使用以下方法来设置边框:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
DropShadowBorder b = new DropShadowBorder(Color.BLACK, 0, 10, 0.2f, 10, true, true, true, true);
this.getRootPane().setBorder(b);

注意:我使用框架的根窗格来绘制边框,因为框架本身不支持边框本身。

问题是,边界是在组件本身内绘制的,正如您在下面的图片中所看到的,阴影边框是在内部绘制的,与框架本身的边界相对应:

注意:(阴影)边框是在框架内针对其边界绘制的,而不是在框架之外绘制的。

使用什么样的边框并不重要,它们都是在JFrame本身中绘制的。

我的问题是:是否可以在框架周围画任何边框,而不仅仅是在框架的边界上画边框?

可以用来解决这个问题的一种方法是创建一个不同的未装饰的全屏幕窗口,这个窗口是透明的,普通的窗口放在这个窗口的顶部。这个全屏窗口用于绘制阴影,因此阴影不需要在框架本身中绘制。这是一个解决方案,以获得类似的结果,这是而不是我想要的。我想在框外画一条边框。这类解决方案通常会引起其他问题。

EN

回答 3

Stack Overflow用户

发布于 2014-09-08 18:20:32

是的,您可以在未装饰的JFrame周围绘制边框。只需获取JFrame的根窗格并通过setBorder(边框)方法设置其边框即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
getRootPane().setBorder(BorderFactory.createMatteBorder(4, 4, 4, 4, Color.RED));

例如:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Borders2UndecoFrame extends JFrame{
    JLabel label = new JLabel("Welcome!", JLabel.CENTER);
    public Borders2UndecoFrame(){
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(new Dimension(200, 200));
        add(label, BorderLayout.CENTER);
        setUndecorated(true);
        getRootPane().setBorder(BorderFactory.createMatteBorder(4, 4, 4, 4, Color.RED));
        setVisible(true);

    }
    public static void main(String[] args) {
        new Borders2UndecoFrame();
    }

} 

票数 22
EN

Stack Overflow用户

发布于 2013-11-23 16:46:25

JFrames和JDialogs是唯一需要与外部窗口系统交互的swing窗口。要获得外部阴影,需要外部上下文。看看这个关于如何得到它的答案:

Undecorated JFrame shadow

票数 1
EN

Stack Overflow用户

发布于 2013-11-23 12:54:59

来自decorations

一些Java外观和感觉可以提供自己的标题栏、图标和窗口边框。如果外观和感觉支持此特性,则它的getSupportsWindowDecorations( )方法将返回true。

因此,您需要实现自己的Java外观和感觉。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20165698

复制
相关文章
Java开发 窗体JFrame
package expression; import java.awt.Color; import java.awt.Container; import javax.swing.*; public class Demo extends JFrame{//继承父类 public Demo(){ setVisible(true);//设置窗体可见 setTitle("窗体标题"); /*窗体关闭规则 * EXIT_ON_CLOSE 关闭窗体,并停止程序 * DO_NOTH
用户2965768
2019/02/26
1.5K0
初学java之JFrame窗口模式
1 package project; 2 import javax.swing.*; 3 import java.awt.*; 4 public class test 5 { 6 public static void main(String args[]) 7 { 8 JFrame window1 , window2; 9 window1 = new JFrame("第一个"); 10 window2 = new JFrame("第二个");
Gxjun
2018/03/22
1.3K0
为什么都2022年了还有人用Java写GUI?
虽然工作中很少用到,在某些场合还是有用,比如说Eclipse,IDEA 就是用java写的GUI,现在这个IDE不是还是很红么?也许到了2050年,还是用这些软件,或者还会出很多java写的GUI软件,也并不是国内人写得少,就是没用的。
灬沙师弟
2023/03/07
2K0
为什么都2022年了还有人用Java写GUI?
C++ OpenCV轮廓周围矩形和圆形绘制
前面我们学习了轮廓提取,正常我们在提到到轮廓截取出来时一般需要是矩形的图像,这次我们就来学习一下轮廓周围绘制矩形等。
Vaccae
2019/07/24
2.5K0
如何在QGraphicsView的边框上制作标尺?
最近使用Qt开发一个Rip的软件工具,类似于SAI软件的作业属性中的截图,如下图所示:
ccf19881030
2021/04/19
2K0
如何在QGraphicsView的边框上制作标尺?
JAVA学习中Swing概述中的JFrame学习
别先生
2017/12/29
1.7K0
Origin绘制上面和右边边框
如下面两个图,是绘制前后的对比图,可以发现多了上面和右边的边框,且边框无刻度。
全栈程序员站长
2022/08/31
1.2K0
Origin绘制上面和右边边框
java山寨qq账号密码验证_java swing实现QQ账号密码输入框
本文实例为大家分享了Java swing 仿QQ账号密码输入框,供大家参考,具体内容如下
全栈程序员站长
2022/09/09
2.3K0
java山寨qq账号密码验证_java swing实现QQ账号密码输入框
OpenGL绘制多边形边框线
利用OpenGL如何在绘制多边形的时候同时绘制其变现呢? 网上一种解决方案是利用glPolygonMode,将多边形绘制两次,一次绘制面,一次绘制边。这种方案理论上是可行的(我没有试过),但是OpenGL要进行两次绘制,效率上明显是不高的。
卡尔曼和玻尔兹曼谁曼
2019/01/22
2.7K0
OpenGL绘制多边形边框线
JavaSwing 图形界面GUI王者级开发(大纲)
JavaSwing_1.1: FlowLayout(流式布局) JavaSwing_1.2: GridLayout(网格布局) JavaSwing_1.3: GridBagLayout(网格袋布局) JavaSwing_1.4: BoxLayout(箱式布局) JavaSwing_1.5: GroupLayout(分组布局) JavaSwing_1.6: CardLayout(卡片布局) JavaSwing_1.7: BorderLayout(边界布局) JavaSwing_1.8: SpringLayout(弹性布局) JavaSwing_1.9: null(绝对布局) JavaSwing_1.10:TableLayout(表格布局)
JavaEdge
2021/02/22
1.3K0
java swing一篇轻松学习(高考后可以自学)
是一种中间层容器,它能容纳组件并将组件组合在一起,但它本身必须添加到其他容器中使用。
红目香薰
2022/11/30
9.7K0
java swing一篇轻松学习(高考后可以自学)
前端基础:CSS
CSS 大大提高工作效率,可以将 HTML 代码与样式代码分离,让原本 HTML 不能描述的效果,通过 CSS 描述出来。
RendaZhang
2020/09/08
2.5K0
前端基础:CSS
java学习之路:30.JFrame窗体,JDIalog窗体
开头说一下,如果使用 import java.awt.*; import javax.swing.*; 出现错误,请查看: 解决无法使用java.awt.和javax.swing. 1.JFrame窗体 package number; import java.awt.*; import javax.swing.*; public class Xuexi extends JFrame{ public void CreateJFrame(String title) { JFrame jf =new JFr
花狗Fdog
2020/10/28
2.2K0
java学习之路:30.JFrame窗体,JDIalog窗体
Java实现坦克大战1.0
下图说明了Java坐标系。坐标原点位于左上角,以像素为单位。在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。
timerring
2023/05/07
7590
Java实现坦克大战1.0
条码软件中如何在边框上添加文字
很多用户在使用条码标签软件设计制作标签时,会有自己的一些个性化的需要,虽然条码软件不能和作图软件相比,但是很多效果还是可以通过一些小技巧来实现的。比如下面要给大家介绍的把文字压在边框上的效果。如下图所示。
神奇像素科技
2022/03/01
2.7K0
条码软件中如何在边框上添加文字
Java GUI编程11—单选按钮:JRadioButton
单选按钮就是在给定的多个选择项中选择一个,并且只能选择一个。在Swing中可以使用JRadioButton完成一组单选按钮的操作,JRadioButton的常用方法如下表。
全栈程序员站长
2022/09/02
4.7K0
Java GUI编程11—单选按钮:JRadioButton
Java-GUI编程之Swing组件
很多情况下,我们常常喜欢给不同的组件设置边框,从而让界面的层次感更明显,swing中提供了Border对象来代表一个边框,下图是Border的继承体系图:
愷龍
2022/09/26
2.3K0
Java-GUI编程之Swing组件
Java图形化界面电脑管家界面
学会JavaSwing构建程序界面后,小伙伴们最大的困惑可能是“为什么我们做出来的界面那么丑、不跟市面流行的程序界面一样呢?”
老九学堂-小师弟
2019/10/09
2.5K0
创建被图像填充的组件解释几处做法解释几点
如果你直接new一个组件的话,组件是标准外观 如果需要改变组件的外观,最关键的就是要就需要重写组件的paintCoponent(Graphics g)方法,同时需要调整组件的大小 DIY的JPanel 下面用代码说话 import javax.swing.*; import java.awt.*; class ImagePanel extends JPanel{ private Image image;//用来储存背景对象 private Dimension dimension;//用
用户1174983
2018/02/05
1.2K0
创建被图像填充的组件解释几处做法解释几点
点击加载更多

相似问题

如何在ToolStripButton周围绘制边框

114

如何在UILabel周围绘制边框?

96

如何在画布周围绘制边框

10

如何在NSTextView周围绘制边框

254

如何在NSTexturedSquareBezelStyle按钮周围绘制边框

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文