java swing编程,java swing菜鸟教程
这个关于java swing接口的程序是我以前写过的代码。现在只是更新了很多功能,改进了界面,让界面更加友好,同时也让程序更加稳定可靠。即便如此,这个程序在运行时还是有缺陷的。比如加载网络图片的时候,好像有点卡。不知道是不是网速的原因,网络图片的操作让整个界面反应迟钝。如果你是高手,相信你可以自己完善这个程序,最终让它更加完美。我会在后续工作中完善这个程序。事实上,当java作为接口,尤其是本地客户端的应用软件时,java是完全失败的。想象一下,为了运行一个java程序,一个用户不得不安装一个用户不想安装的庞大而笨拙的虚拟机!而且有时候跑起来像狗爬一样!这是个笑话,但这是真的。难怪java在本地应用上被C彻底打败了。如果是脱离了网络环境,java的发展可能没有现在这么好!Java现在好像不太景气。毕竟有那么多语言虎视眈眈,试图取代java。java的母公司孙被甲骨文收购。真不知道是好事还是坏事。别说闲话了!这个程序比较大,一千多行(其实不大)。我把源程序做成压缩包上传到了CSDN,其中CutImg类是一个单独的文件,有兴趣的朋友可以自己下载。需要注意的是,剪切功能只能实现本地图片的剪切,不能实现网络图片的剪切。java高手可以自己实现这个功能。以下是下载页面的文本链接:
文字链接:http://download.csdn.net/download/zhulike2011/5524851
以下是一些片段:
public Paint(Graphics G){//用小球画图的方法,用Graphics类来画。
g . set color(pane . get background());//这个语句是用来擦除球的轨迹的,这样你就知道这个语句行不行了。
g.fillOval(tempX,tempY,XSIZE,YSIZE);
g . set color(c);
g.fillOval(x,y,XSIZE,YSIZE);
tempX=x;tempY=y;
}
public void move(rectangle 2dg){//这个方法用来控制球的移动,确定球是否到达边界。
x=dx
y=dy
if(x ^ 2){
dx=-dx;
}
if(x XSIZE retangleX){
dx=-dx;
}
if(y g.getMinY() YSIZE){
dy=-dy;
}
if(y YSIZE 40=retangleY){
dy=-dy;
}
}
/**
*剪贴板中是否有可供粘贴的文本数据?
*
* @return true是文本数据。
*/
public boolean isClipboardString(){
布尔b=假;
clipboard clipboard=this . gettoolkit()。getsystem clipboard();
可转移内容=clipboard . get contents(this);
尝试{
if(content . gettransferdata(data flavor . String flavor)instance of String){
b=真;
}
} catch(异常e) {
}
返回b;
}
//此方法用于读取图片
尝试{
img=ImageIO.read(
新建文件( D:\ \我的文档\ \我的图片\ \ sb . gif );//不能显示动态,只能显示静态
img=img.getScaledInstance(宽度,高度,图像。SCALE _ DEFAULT);
北京=新ImageIcon(img);
} catch (IOException e) {
e . printstacktrace();
}
下面是构造函数方法。如果你能理解这个构造函数的作用,你就能写出整个程序了!
公共测试演示(){
cot=this . getcontentpane();
setSize(700,500);
pane=new Beijing pane(this . getwidth()、this . getheight());
panBall=new xiaoqiu pane(this . getwidth()、this . getheight());
cleary pane=new JPanel();
clearity pane . set visible(true);
clearitypane . seto paque(false);//透明效果
clearityPane.setBounds(新矩形(700,450));
panball . set layout(new BorderLayout());
buttonbalpane . add(changebaccolor);
buttonbalpane . add(changeBallColor);
buttonbalpane . add(start _ ball);
button ball . set layout(new BorderLayout());
button ball . set background(color . red);
button ball . add(buttonbalpane,BorderLayout。南);
label.setSize(100,150);
ball=new BallDemo(this.getSize().width-20,this.getSize().身高-30,纽扣球);
透明窗格。add(BBB);
窗格。set layout(new BorderLayout());
BBB。设置可见(假);
潘波尔。添加(透明窗格,边框布局.中心);//添加透明面板
按钮窗格。添加(换图);
按钮窗格。添加(改变颜色);
按钮窗格。添加(start _ re tangle);
panBall.add(buttonpane,BorderLayout .南);
//cot。添加(窗格);
平移按钮。添加(Bt);
平移按钮。添加(bt0);
平移按钮。添加(bt1);
平移按钮。添加(bt2);
平移按钮。添加(bt3);
平移按钮。添加(bt4);
菜单栏。添加(菜单打开);
菜单栏。添加(菜单原生);
菜单栏。添加(菜单网);
菜单栏。添加(菜单退出);
菜单栏。添加(菜单保存);
pane.add(panButton,BorderLayout .南);
pane.add(菜单栏,BorderLayout .北);
pane.add(label,BorderLayout .中心);
更换图片。addactionlistener(this);
改变颜色。addactionlistener(this);
更改ballcolor。addactionlistener(this);
changebackcolor。addactionlistener(this);
重新开始纠结。addactionlistener(this);//给矩形小球启动按钮注册监听
开始_球。addactionlistener(this);//给小球启动按钮注册监听
窗格。addmouse侦听器(this);
bt0。addactionlistener(this);
Bt。addactionlistener(this);
bt1。addactionlistener(this);
bt2。addactionlistener(this);
bt3。addactionlistener(this);
bt4。addactionlistener(this);
标签。addmouse侦听器(this);//给图片注册监听
menus ave . addmouse监听器(this);
菜单打开。addmouse侦听器(this);
本地菜单。addmouse侦听器(this);
菜单网。addmouse侦听器(this);
菜单退出。addmouse侦听器(this);
jtp。addchangelistener(this);//给选项卡注册变化接口监听
jtp.add(默认面板,窗格);
jtp.add(矩形小球运动,panBall);
jtp.add(小球运动,buttonBall);
小床。添加(jtp);
这个。setdefaultcloseoperation(JFrame .DISPOSE _ ON _ CLOSE);
设置可见(真);
}
下面是效果图:
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。