`
zengxx1989
  • 浏览: 295310 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

如何去掉JFrame上的最大化最小化和关闭按钮

阅读更多
在JDK1.4以前,我们只有一种方式来去掉窗口的标题栏,那就是直接使用JWindow,用JWindow来代替JFrame使用。但用过JWindow的人一定知道,JWindow在操作系统的任务栏是不可见的,这样我们就无法在几个视窗之间来切换到这个窗口了。

     使用JWindow也是很多人知道的一种去掉标题栏的方式。但从Java1.4开始,有一种新的方式可以使用,我们来看看。

     现在我们创建一个类并继承于JFrame,
public class DecoratedFrame extends JFrame {
public DecoratedFrame() {
   this.getContentPane().add(new JLabel("Just a test."));
   this.setUndecorated(true); // 去掉窗口的装饰
   this.getRootPane().setWindowDecorationStyle(JRootPane.NONE); //采用指定的窗口装饰风格
   this.setSize(300,150);
}
public static void main(String[] args) {
   JFrame frame = new DecoratedFrame();
   frame.setVisible(true);
}
}


     请看加了注释的两行,要去掉标题栏,关键代码就是这两行,第1行去掉窗口的装饰,第2行为窗口指定头饰风格。在这里,可以通过调用this.getRootPane().setWindowDecorationStyle()方法为窗口指定以下的装饰风格:

NONE                  无装饰(即去掉标题栏)
FRAME                 普通窗口风格
PLAIN_DIALOG          简单对话框风格
INFORMATION_DIALOG    信息对话框风格
ERROR_DIALOG          错误对话框风格
COLOR_CHOOSER_DIALOG 拾色器对话框风格
FILE_CHOOSER_DIALOG   文件选择对话框风格
QUESTION_DIALOG       问题对话框风格
WARNING_DIALOG        警告对话框风格

在使用Jframe的时候,普遍都会有标题栏,还有最小化,最大化,关闭按纽的,还要实现拖动窗体的功能。
这样的话,对我们实现自定义样式的窗体是很有影响的,

1) 要去掉标题栏:
jFrame.setUndecorated(true);
// 这样就可以去掉Jframe中对window的装饰了,

2) 去掉标题栏,我们就有可能要给程序写代码提供最小化,最大化,关闭的操作,如何实现?
只要给按纽添加MouseListener,
在mouseClick中的调用

jFrame.setExtendedState(jFrame.ICONIFIED); //最小化

if(jFrame.getExtendedState() != jFrame.MAXIMIZED_BOTH)
jFrame.setExtendedState(jFrame.MAXIMIZED_BOTH);
else
jFrame.setExtendedState(jFrame.NORMAL);
// 最大化或正常状态

System.exit(0);
// 关闭,退出程序

3) 要拖动窗体的功能:
只要给窗体中的某个组件添加如下代码就行了:

    Point loc = null;    Point tmp = null;    boolean isDragged = false;    private void setDragable() {        this.addMouseListener(new java.awt.event.MouseAdapter() {            public void mouseReleased(java.awt.event.MouseEvent e) {               isDragged = false;               jFrame.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));            }            public void mousePressed(java.awt.event.MouseEvent e) {               tmp = new Point(e.getX(), e.getY());               isDragged = true;               jFrame.setCursor(new Cursor(Cursor.MOVE_CURSOR));            }        });        this.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {            public void mouseDragged(java.awt.event.MouseEvent e) {               if(isDragged) {                   loc = new Point(jFrame.getLocation().x + e.getX() - tmp.x,                     jFrame.getLocation().y + e.getY() - tmp.y);                   jFrame.setLocation(loc);               }            }        }); }  在初始化该组件的时候调用 setDragable() 就可以使组件具体拖放窗体的功能了。因为可能有背景图,可能会重写paint方法,不能在paint方法中调用setDragable()

只是参考
分享到:
评论
1 楼 javaAlpha 2010-06-01  

相关推荐

    如何去掉JFrame上的最大化最小化和关闭按钮.doc

    去掉JFrame上的最大化最小化和关闭按钮.doc

    jframe应用技术

    在开发Java应用程序时,通常情况下利用JFrame创建窗口。利用JFrame创建的窗口分别包含一个标题、最小化按钮、最大化按钮和关闭按钮,如图1所示。

    更改标题栏背景并重写JFrame窗口

    对JFrame窗口进行了重写 最大最小化按钮可以改变(我用的是qq上的最大最小化按钮图标) 对JFrame进行更改 得到了自己想要的窗口 本窗口是用来做局域聊天窗口特别设计的 详细 内容 代码都有详细注释谢谢下载

    Java开发的俄罗斯方块游戏(内含源码+运行视频+设计文档)

    Java Swing组件中包括以下几个常用的类:JFrame 是屏幕上的图形对象,可以有最大化、最小化、关闭等基本操作,是Java的GUI程序设计的基本思路;JPanel 能够用来嵌套,对窗体中有相同逻辑功能的组件进行组合,能够...

    java写的一个流星雨小程序【全屏版】

    java写的一个流星雨小程序【全屏版】是之前发布的java写的一个流星雨小程序全屏幕的版本,自动获取屏幕大小、去除边框、最大化最小化关闭按钮,实现全屏。

    Swing的中自定义的窗体、内部窗体样式的设置

    本示例中使用6行代码左右实现了窗体和内部窗体换肤效果,以及让窗体不能调整大小、窗体置中,以及除去窗体的装饰条--看不到最小化、最大化和关闭按钮,以及光标的样式等的功能。 因为Apple的皮肤没有在网上找它相应...

    WindowEvent&MouseEvent.pptx

    处理 Window Events(窗口事件)在窗口打开、关闭、最大化、最小化时会触发WindowEvent事件window事件由WindowListener接口处理WindowListener接口有7个函数分别对应7种窗口事件public void windowOpened...

    JxBrower6.21破解版

    //不显示标题栏,最大化,最小化,退出按钮 //frame.setUndecorated(true); frame.setSize(400, 600); frame.add(view, BorderLayout.CENTER); frame.setExtendedState(JFrame.MAXIMIZED_BOTH); frame....

    java课程设计九宫格数独.doc

    在九宫格数独游戏界面和弹出的消息提示界面有相关的最 小化、最大化、关闭等按钮可以操作。 3. 对性能的要求 1. 具有较强的实用性 2. 易于理解和应用 3. 对程序的配置要求不高,能广泛应用 三、问题分解 1. 分析找出...

    Java开发技术大全 电子版

    2.7.2求最大公约数和最小公倍数89 2.7.3Fibonacci数列90 2.7.4逆向输出数字91 2.7.5求水仙花数92 2.7.6输出图形93 2.7.7输出九九口诀表94 2.8本章小结95 第2篇Java面向对象编程 第3章对象和类98 3.1面向...

    Java开发技术大全(500个源代码).

    GcdAndGcm.java 求最大公约数和最小公倍数 errorInit.java 演示变量初始化错误的程序 integerExample.java 演示各种整型变量的使用 isPrime.java 判断素数 leapYearByIf.java 用if语句判断闰年 ...

Global site tag (gtag.js) - Google Analytics