课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
在Java中有很多的知识和技能都是相互贯穿在一起的,那么我们都是需要去不断的学习IT中的很多知识,这样才能够适应现在的IT行业发展。
在完成装载图像工作后,即可用两种方法设计图像按钮。
(1)方法二
直接设计一个ImageButton 构件类,它继承Canvas类,在其内部通过对按钮的
按下或释放的判断来改变按钮轮廓的明暗边界。当判断出按钮按下时,就改变按钮
边框的明暗布局。这样,就动态地实现了一个按钮按下和释放的过程。然后我们可
以把图像裱贴在按钮的中心位置,这就实现了图像按钮的功能。其中,设计一个se
tPush(booleanPush)函数,也把它加入ImageButton类中。它的功能是设置图像按
钮构件当前按下或释放状态。最后,可以在一个Panel构件中,加入许多这样的Ima
geButton构件。具体设计如下:
class ButtonCanvas extends Canvas{
boolean tPush;
Dimension ps;
Image img;
ButtonCanvas(Image image,int x,int y){
img=image;
ps=new Dimension();
ps.width=x;
ps.height=y;
}
public void setPush(boolean tt){
tPush=tt;
repaint();
}
public void paint(Graphics g){
//绘制按钮边界和背景
g.drawRect(0,0,ps.width-1,ps.height-1);
setBackground(Color.gray);
g.setColor(Color.gray.brighter());
g.fillRect(2,2,ps.width-3,ps.height-3);
//*** 在画布上绘制按钮 按下或释放 ***
if(!tPush){
g.setColor(Color.gray.darker());
g.drawLine(ps.width-2,1,ps.width-2,ps.height-2);
g.drawLine(1,ps.height-2,ps.width-2,ps.height-2);
g.setColor(Color.white);
g.drawLine(1,1,ps.width-2,1);
g.drawLine(1,1,1,ps.height-2);
}
else{
g.setColor(Color.white);
g.drawLine(ps.width-2,1,ps.width-2,ps.height-2);
g.drawLine(1,ps.height-2,ps.width-2,ps.height-2);
g.setColor(Color.gray.darker());
g.drawLine(1,1,ps.width-2,1);
g.drawLine(1,1,1,ps.height-2);
}
//**** 在按钮中心加载图像 ******
g.drawImage(img,
ps.width/2-img.getWidth(this)/2,
ps.height/2-img.getHeight(this)/2,this);
}// end of paint()
}// end of ButtonCanvas
3.编制响应程序
事件处理是GUI编程的核心。对于Applet 小程序,它的事件捕捉和处理比应用
程序简单。可把捕捉程序放在其GUI构件的子类之中,也可以把捕捉程序放在构件
的容器之中。笔者采用后一方法。
……
public class MyTest extends Frame
……//事件响应函数
public boolean handleEvent(Event evt)
{
switch (evt.id)
{
……
case Event.MOUSE_DOWN:
if(evt.target instanceof Canvas){
if(evt.target==ImageClossButton){
ImageClossButton.setPush(true);
mTextArea.setText("按下");
}
return true;
case Event.MOUSE_UP:
if(evt.target instanceof Canvas){
if(evt.target==ImageClossButton){
ButCvs.setPush(false);
mTextArea.setText("释放");
}
return true;
default:
return super.handleEvent(evt);
}
} // End of handleEvent
} // End of Frame
(2)方法一
把按钮的按下和释放两个动作设计成随着鼠标动作变化的轮换显示的两个图
像,Img1,Img2。首先,我们设计一个ImageButton构件类,它继承Canvas类,把上述
两个图像放在这个ImageButton类之中。其次,再设计一个setImage(String)函数
,也把它加入ImageButton类中。它的功能是能够设置ImageButton构件当前显示的
图像。当判断出是按钮按下时,就改变当前按钮图像为按钮按下时的图像。这样,
一个ImageButton类就对应一个图像按钮的所有图像信息和基本操作。最后,可以
在一个Panel构件中,加入许多这样的ImageButton构件,再把Panel构件按照布局管
理器的规定放在Frame类或其他容器中。具体设计如下:
import java.awt.*;
……
class ImageButton extends Canvas{ //定义一个图像按钮类
Image image;
//按钮上的图像
Dimension preferredSize;
//按钮的尺寸大小
ImageButton(Image img,int x,int y){
image=img;
preferredSize=new Dimension();
preferredSize.width=x;
preferredSize.height=y;
}
public void paint(Graphics g){ //绘制图像按钮
g.drawRect(0,0,preferredSize.width,preferredSize.hei
ght);
g.drawImage(image,0,0,this);
}
public void setImage(Image img){ //设置新图像
image=img;
repaint();
}
……
}//****** End of ImageButton ******
……
如果你想从事IT行业,那么你有很多东西是需要去不断的进行学习和更新的,你需要去适应IT行业的发展,那么你在这个行业中才能走得更加的顺利,在Java编程中你需要不断的积累和拓展Java编程知识。你也可以进行一些专业的学习和培训,这样来不断的提升自己的知识和操作能力。