1.准备工作a.需要下载一个带着swing插件的eclipse
b.需要配置好jdk
c.创建一个jframe的项目(如下图所示的步骤)
d.把资源文件放入与src所在的那个目录
步骤如下:
1.先复制资源文件
2.粘贴文件
3.把jar文件放入referenced libraries文件夹下
这第3步的具体操作如何所示
那么如何判断添加是否成功呢?
解答:看referenced libraries下面是否出现了刚刚build path的
两个文件,若出现了,则代表添加成功(成功的视图如下所示:)
e.design界面和source界面主要是干嘛的?
source界面用于写源代码,主要是用于写触发按键某一事件,需要进行简单的逻辑判断
design界面是通过可视化界面来帮我们进行界面的基本设计,直接拖拽即可,不用书写那些定义、基本属性的赋值这类的java代码了
2.界面窗体的设计与实现整体的按钮的布局应该如下图所示
实现过程如下:
a.对窗体进行操作
//设置窗体关闭模式 exit-退出程序 do_nothing退出没有任何操作setdefaultcloseoperation(jframe.exit_on_close);//设置窗体的大小和坐标 x y 宽度 高度setbounds(100, 100, 584, 439);//居中显示setlocationrelativeto(null);//设置窗体不可拖拽setresizable(false);//设置窗体的图标seticonimage(new imageicon("love.png").getimage());
b.在design界面.根据刚刚的布局分布图,把按键移动到合适位置
c.把gif图片设置为相应为相应按钮的图标
lblnewlabel.seticon(newimageicon("e:\\ueclipseworkspace\\love\\gfriend.gif"));
d.对剩下的组件进行颜色的设置
//以button按钮为例,进行颜色的设置//setforeground是设置控件里面的字体颜色btnnewbutton.setforeground(color.white);//setbackground是设置控件里面的背景颜色btnnewbutton.setbackground(color.pink);//setforeground是设置控件里面字体类型以及字体大小btnnewbutton.setfont(new font("微软雅黑", font.bold, 15));
3.对按钮加上监听事件3.1 对"好的"这个按钮加上鼠标点击事件
3.1.1 在design界面对"好的"按钮添加鼠标点击事件
3.1.2 跳转到resource界面后,对鼠标点击事件加上具体操作
//鼠标点击后就会弹出提示frameutil.msg("好的,老婆我就知道你会同意的");//结束程序system.exit(0);
3.2 对"滚"这个按钮加上鼠标进入事件
3.2.1 在design界面对"滚"按钮添加鼠标进入事件
3.2.2 跳转到resource界面后,对鼠标进入事件加上具体操作
//弹出信息框,不断的挽留,不允许它退出程序frameutil.msg("老婆大人,原谅我好吗?");frameutil.msg("我错了,再也不敢把钱不上交了");
3.3 对"滚"这个按钮加上鼠标点击事件(点中随机位置了)
3.3.1 在design界面对"滚"按钮添加鼠标点击事件
3.3.2 跳转到resource界面后,对鼠标点击事件加上具体操作
//当用户点击到滚按钮的随机位置时,也要进行一波挽留操作,不允许拒绝//弹窗弹出挽留语句frameutil.msg("老婆大人,原谅我好吗?");frameutil.msg("我错了,再也不敢把钱不上交了");
4.设置滚按钮的层级为最上面无论怎么移动,都是最上层
5.为界面添加一首背景音乐//前提:需要把他人写好的资源包build path到自己的项目中//需要在窗体可见之前进行设置frameutil.playmusic("嫁给我.mp3");//当这首歌的路径和src文件夹同级别时,这样写就可以了//这个放的位置在方法体外面
6.源代码package demo;import java.awt.borderlayout;import java.awt.eventqueue;import javax.swing.jframe;import javax.swing.jpanel;import javax.swing.border.emptyborder;import com.frame.util.frameutil;import javax.swing.jlabel;import javax.swing.imageicon;import java.awt.color;import java.awt.font;import javax.swing.jbutton;import java.awt.event.actionlistener;import java.awt.event.actionevent;import java.awt.event.mouseadapter;import java.awt.event.mouseevent;import java.util.random;public class love extends jframe { private jpanel contentpane; /** * launch the application. */ public static void main(string[] args) { eventqueue.invokelater(new runnable() { public void run() { try { love frame = new love(); //设置窗体不可见 // frameutil.playmusic("嫁给我.mp3"); frame.setvisible(true); } catch (exception e) { e.printstacktrace(); } } }); frameutil.playmusic("嫁给我.mp3"); } /** * create the frame. */ public love() { //设置窗体的大小 settitle("\u9ed1\u51e4\u68a8"); //设置窗体关闭模式 exit-退出程序 do_nothing退出没有任何操作 setdefaultcloseoperation(jframe.exit_on_close); //设置窗体的大小和坐标 x y 宽度 高度 setbounds(100, 100, 584, 439); //剧中显示 setlocationrelativeto(null); //设置窗体不可拖拽 setresizable(false); //设置窗体的图标 seticonimage(new imageicon("love.png").getimage()); contentpane = new jpanel(); contentpane.setborder(new emptyborder(5, 5, 5, 5)); setcontentpane(contentpane); contentpane.setlayout(null); jbutton button = new jbutton("\u6eda"); button.setforeground(color.white); button.setfont(new font("微软雅黑", font.bold, 15)); button.setbackground(color.pink); button.setbounds(396, 273, 113, 27); button.addmouselistener(new mouseadapter() { @override public void mouseentered(mouseevent arg0) { random random=new random(); int x=random.nextint(480); int y=random.nextint(380); button.setbounds(x, y, 113, 27); } @override public void mouseclicked(mouseevent e) { frameutil.msg("老婆大人,原谅我好吗?"); frameutil.msg("我错了,再也不敢把钱不上交了"); } }); contentpane.add(button); jlabel lblnewlabel = new jlabel("new label"); lblnewlabel.seticon(new imageicon("e:\\ueclipse-workspace\\love\\gfriend.gif")); lblnewlabel.setbounds(14, 40, 200, 200); contentpane.add(lblnewlabel); jlabel lblnewlabel_1 = new jlabel("\u5c0f\u59d0\u59d0\u6211\u559c\u6b22\u4f60\u5f88\u4e45\u4e86"); lblnewlabel_1.setfont(new font("微软雅黑", font.bold, 20)); lblnewlabel_1.setforeground(color.pink); lblnewlabel_1.setbounds(269, 57, 219, 73); contentpane.add(lblnewlabel_1); jlabel label = new jlabel("\u505a\u6211\u5973\u670b\u53cb\u597d\u5417?"); label.setforeground(color.red); label.setfont(new font("微软雅黑", font.bold, 20)); label.setbounds(269, 167, 219, 73); contentpane.add(label); jbutton btnnewbutton = new jbutton("\u597d\u7684"); btnnewbutton.addmouselistener(new mouseadapter() { @override public void mouseclicked(mouseevent arg0) { //joptionpane.showmessagedialog(null,"我的"); frameutil.msg("好的,老婆我就知道你会同意的"); system.exit(0); } }); btnnewbutton.setforeground(color.white); btnnewbutton.setbackground(color.pink); btnnewbutton.setfont(new font("微软雅黑", font.bold, 15)); btnnewbutton.setbounds(254, 272, 113, 27); contentpane.add(btnnewbutton); }}
以上就是怎么用java+swing实现抖音上的表白程序的详细内容。