自定义桌面最大化最小化和关闭按钮
1、取消窗体修饰
JFrame窗体默认采用本地系统的窗体修饰,如里需要根据我们的想法来定的话,那我们我
先要取消窗体修饰tUndecorated()方法来实现。
publicvoidtUndecorated(booleanundecorated)
2、设置按钮外观
设置鼠标经过图标
tIcon()方法可以为鼠标设置普通状态图标之外,还可以设置按钮的其他状态图标,如设置
鼠标经过按钮时显示图标。tRolloverIcon();
publicvoidtRolloverIcon(IconrolloverIcon)
说明:
rolloverIcon:鼠标经过按钮时显示图标对象
取消鼠标外观
usPainted(fal);//取消焦点绘制
derPainted(fal);//取消边框绘制
tentAreaFilled(fal);//取消内容绘制
这3个方法分别取消了按钮的焦点绘制、边框绘制以及内容绘制,这样按钮就没有外观和任
何效果了,就象窗体取消修饰效果一样。
3、改变窗体状态
自定义最小化,最大化,都需要控制窗体的状态,这需要通过JFrame类的tExtendedState()
publicvoidtExtendedState(intstate)
state参数说明
枚举值描述
ICONIFIED
最小化的窗口
NORMAL
默认大小的窗口
MAXIMISED_HORIZ
水平方向最大化窗口
MAXIMIZED_VERT
垂直方向最大化窗口
MAXIMIZED_BOTH
水平与垂直方向都最大化的窗口
05;
cs;
;
;
/**
*带背景的面板组件
*
*@authorZhongWeiLee
*/
publicclassBackgroundPanelextendsJPanel{
/**
*背景图片
*/
privateImageimage;
/**
*构造方法
*/
publicBackgroundPanel(){
super();
////如果为true,则该组件绘制其边界内的所有像素
tOpaque(fal);
//布局格式
tLayout(null);
}
/**
*设置图片的方法
*/
publicvoidtImage(Imageimage){
=image;
}
@Override
protectedvoidpaintComponent(Graphicsg){//重写绘制组件外观
if(image!=null){
intwidth=getWidth();//获取组件大小
intheight=getHeight();
age(image,0,0,width,height,this);//绘制图片
与组件大小相同
}
omponent(g);//执行超类方法
}
}
05;
Layout;
ion;
ueue;
yout;
yout;
;
;
Event;
Listener;
ent;
stener;
dapter;
vent;
otionAdapter;
con;
n;
;
;
eButton;
publicclassControlFormStatuxtendsJFrame{
//容器
privateJPanelcontentPane;
//坐标
privatePointpresdPoint;
/**
*Launchtheapplication.
*/
publicstaticvoidmain(String[]args){
Later(newRunnable(){
publicvoidrun(){
try{
ControlFormStatusframe=newControlFormStatus();
ible(true);
}catch(Exceptione){
tackTrace();
}
}
});
}
/**
*Createtheframe.
*/
publicControlFormStatus(){
//取消窗体修饰
tUndecorated(true);
//关闭
tDefaultCloOperation(_ON_CLOSE);
//大小及位置
tBounds(100,100,450,300);
//容器
contentPane=newJPanel();
//容器边框为null
der(null);
//容器布局
out(newBorderLayout(0,0));
//添加容器
tContentPane(contentPane);
//面板读取图标
BackgroundPaneltopPanel=newBackgroundPanel();
//为此类添加鼠标事件
MotionListener(newMouMotionAdapter(){
@Override
//鼠标按键在组件上按下并拖动时调用
publicvoidmouDragged(MouEvente){
do_topPanel_mouDragged(e);
}
});
//鼠标按键在组件上按下时调用
Listener(newMouAdapter(){
@Override
publicvoidmouPresd(MouEvente){
do_topPanel_mouPresd(e);
}
});
//读取图片
ImagecenterImage=newImageIcon(getClass()
.getResource("")).getImage();
//坐标,获取图片的大小做为坐标
Dimensiondimension=newDimension(th(this),
ght(this));
//设置此组件的首选大小
ferredSize(dimension);
//设置此组件图标
ge(centerImage);
//容器添加面板
(topPanel,);
//FlowLayout布局格式
out(newFlowLayout(,5,5));
//面板
JPanelpanel=newJPanel();
//设置此组件的首选大小
ferredSize(newDimension(60,22));
//如果为true,则该组件绘制其边界内的所有像素。
que(fal);
//添加面板
(panel);
//布局格式
out(newGridLayout(1,0,0,0));
//按钮
JButtonbutton=newJButton("");
//设置按钮的按下图标
loverIcon(newImageIcon(
.getResource("/com/swing05/")));
//为按钮添加事件
ionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
do_button_itemStateChanged(e);
}
});
usPainted(fal);//取消焦点绘制
derPainted(fal);//取消边框绘制
tentAreaFilled(fal);//取消内容绘制
//为按钮设置图标
n(newImageIcon(
.getResource("/com/swing05/")));
//添国按钮
(button);
//创建最初未选定的切换按钮,不设置文本或图像。
JToggleButtonbutton_1=newJToggleButton("");
//接收项事件的侦听器接口
button_mListener(newItemListener(){
publicvoiditemStateChanged(ItemEvente){
do_button_1_itemStateChanged(e);
}
});
//置按钮的翻转图标
button_loverIcon(newImageIcon(
.getResource("/com/swing05/")));
//设置按钮的选择图
button_ectedIcon(newImageIcon(
.getResource("/com/swing05/")));
//设置图标
button_n(newImageIcon(
.getResource("/com/swing05/")));
//取消内容绘制
button_tentAreaFilled(fal);
//取消边框绘制
button_derPainted(fal);
//取消焦点绘制
button_usPainted(fal);
(button_1);
JButtonbutton_2=newJButton("");
//为按钮添加事件
button_ionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
do_button_2_actionPerformed(e);
}
});
button_loverIcon(newImageIcon(
.getResource("/com/swing05/")));
button_usPainted(fal);
button_tentAreaFilled(fal);
button_derPainted(fal);
button_n(newImageIcon(
.getResource("/com/swing05/")));
(button_2);
BackgroundPanelbackgroundPanel_1=newBackgroundPanel();
ImagetopImage=newImageIcon(getClass()
.getResource("")).getImage();
backgroundPanel_ge(topImage);
(backgroundPanel_1,);
}
protectedvoiddo_button_itemStateChanged(ActionEvente){
tExtendedState(IED);//窗体最小化
}
protectedvoiddo_button_2_actionPerformed(ActionEvente){
dispo();//销毁窗体
}
protectedvoiddo_button_1_itemStateChanged(ItemEvente){
if(teChange()==ED){
tExtendedState(ZED_BOTH);//最大化窗体
}el{
tExtendedState();//恢复普通窗体状态
}
}
protectedvoiddo_topPanel_mouPresd(MouEvente){
presdPoint=nt();//记录鼠标坐标
}
protectedvoiddo_topPanel_mouDragged(MouEvente){
Pointpoint=nt();//获取当前坐标
PointlocationPoint=getLocation();//获取窗体坐标
intx=locationPoint.x+point.x-presdPoint.x;//计算移动后的新坐标
inty=locationPoint.y+point.y-presdPoint.y;
tLocation(x,y);//改变窗体位置
}
}
本文发布于:2023-03-06 08:22:45,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/1678062165155404.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:最小化快捷键.doc
本文 PDF 下载地址:最小化快捷键.pdf
留言与评论(共有 0 条评论) |