当前位置:文档之家› 最新46自定义桌面最大化最小化和关闭按钮汇总

最新46自定义桌面最大化最小化和关闭按钮汇总

46自定义桌面最大化最小化和关闭按钮
自定义桌面最大化最小化和关闭按钮
1、取消窗体修饰
JFrame窗体默认采用本地系统的窗体修饰,如里需要根据我们的想法来定的话,那我们我先要取消窗体修饰setUndecorated()方法来实现。

public void setUndecorated(boolean undecorated)
2、设置按钮外观
设置鼠标经过图标
setIcon()方法可以为鼠标设置普通状态图标之外,还可以设置按钮的其他状态图标,如设置鼠标经过按钮时显示图标。

setRolloverIcon();
public void setRolloverIcon(Icon rolloverIcon)
说明:
rolloverIcon:鼠标经过按钮时显示图标对象
取消鼠标外观
button.setFocusPainted(false);//取消焦点绘制
button.setBorderPainted(false);//取消边框绘制
button.setContentAreaFilled(false);//取消内容绘制
这3个方法分别取消了按钮的焦点绘制、边框绘制以及内容绘制,这样按钮就没有外观和任何效果了,就象窗体取消修饰效果一样。

3、改变窗体状态
自定义最小化,最大化,都需要控制窗体的状态,这需要通过JFrame类的setExtendedState()
public void setExtendedState(int state)
state参数说明
NORMAL 默认大小的窗口
MAXIMISED_HORIZ 水平方向最大化窗口MAXIMIZED_VERT 垂直方向最大化窗口MAXIMIZED_BOTH 水平与垂直方向都最大化的窗口package com.swing05;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JPanel;
/**
* 带背景的面板组件
*
* @author ZhongWei Lee
*/
public class BackgroundPanel extends JPanel {
/**
* 背景图片
*/
private Image image;
/**
* 构造方法
*/
public BackgroundPanel() {
super();
////如果为 true,则该组件绘制其边界内的所有像素
setOpaque(false);
//布局格式
setLayout(null);
}
/**
* 设置图片的方法
*/
public void setImage(Image image) {
this.image = image;
}
@Override
ControlFormStatus frame = new ControlFormStatus();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public ControlFormStatus() {
//取消窗体修饰
setUndecorated(true);
//关闭
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//大小及位置
setBounds(100, 100, 450, 300);
//容器
contentPane = new JPanel();
//容器边框为null
contentPane.setBorder(null);
//容器布局
contentPane.setLayout(new BorderLayout(0, 0));
//添加容器
setContentPane(contentPane);
//面板读取图标
BackgroundPanel topPanel = new BackgroundPanel();
//为此类添加鼠标事件
topPanel.addMouseMotionListener(new MouseMotionAdapter() { @Override
//鼠标按键在组件上按下并拖动时调用
public void mouseDragged(MouseEvent e) {
do_topPanel_mouseDragged(e);
}
});
//鼠标按键在组件上按下时调用
topPanel.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
do_topPanel_mousePressed(e);
}。

相关主题