Java滑竿演示器.docx
《Java滑竿演示器.docx》由会员分享,可在线阅读,更多相关《Java滑竿演示器.docx(10页珍藏版)》请在冰豆网上搜索。
Java滑竿演示器
JAVA语言课程设计
设计题目:
滑竿演示
任务目标:
做一个用户图形界面的滑竿演示器,用水平和垂直滑竿的滑动幅度来控制面板中椭圆的形状。
学院:
软件学院
班级:
应用技术四班
姓名:
韩公达
学号:
日期:
2009/7/8
目录
JAVA语言课程设计1
目录2
1设计要求1
1.1程序要求1
1.2运行效果1
1.2.1主界面1
1.2.2仅滑动竖直滑竿2
1.2.3仅调动水平滑竿2
1.2.4同时滑动水平和竖直滑竿3
2程序整体设计说明3
2.1程序中所使用的类3
2.2.主要成员方法3
2.3内部类4
2.3异常处理说明4
2.4算法4
2.4.1滑竿事件处理4
2.4.2实例化滑竿5
2.4.3增加滑竿的事件处理5
2.4.4增加组件到容器上5
2.4.5画椭圆5
2.5.6椭圆高和宽的修改器6
2.5源代码6
参考文献9
致谢10
1设计要求
1.1程序要求
本程序是一个图形用户界面程序,有水平和竖直两个滑竿,要求滑动任意的滑竿椭圆的形状都要跟随滑竿的滑动幅度而变化。
1.2运行效果
1.2.1主界面
图1-1主界面
1.2.2仅滑动竖直滑竿
图1-2调动竖直滑竿
1.2.3仅调动水平滑竿
图1-3调动水平滑竿
1.2.4同时滑动水平和竖直滑竿
图1-4同时滑动水平和竖直滑竿
2程序整体设计说明
2.1程序中所使用的类
类名:
publicclassJSliderDemo
作用:
主类
继承的父类:
JFrame
类名:
classValueChangeListener
作用:
滑竿事件处理
实现接口:
ChangeListenerr
类名:
publicclassGraphPanel
作用:
画椭圆
继承的父类:
JPanel
2.2.主要成员方法
publicJSliderDemo()
构造方法
设置各组件的大小,添加组件
publicvoidstateChanged(ChangeEvente)
事件处理
用来设置椭圆的高和宽。
publicvoidpaintComponent(Graphicsg)
调用父类方法绘制椭圆。
publicvoidsetW(intlength)
设置宽度,重绘组件。
publicvoidsetH(intlength)
设置高度,重绘组件。
2.3内部类
类名:
classValueChangeListener
作用:
滑竿事件处理
实现接口:
ChangeListener
2.3异常处理说明
无异常处理。
2.4算法
2.4.1滑竿事件处理
在publicvoidstateChanged(ChangeEvente)方法中,
if(e.getSource()==xSlider)
则panel.setW(xSlider.getValue());
设置椭圆的宽度
else{
panel.setH(ySlider.getValue());
}
设置椭圆高度
2.4.2实例化滑竿
实例化水平滑竿:
xSlider=newJSlider(SwingConstants.HORIZONTAL,0,200,10);
设置水平滑竿的刻度
xSlider.setMajorTickSpacing(10);
实例化竖直滑竿:
ySlider=newJSlider(SwingConstants.VERTICAL,0,200,10);
设置竖直滑竿的刻度
ySlider.setMajorTickSpacing(10);
2.4.3增加滑竿的事件处理
增加水平滑竿的事件处理:
xSlider.addChangeListener(myListener);
增加竖直滑竿的事件处理:
ySlider.addChangeListener(myListener);
2.4.4增加组件到容器上
添加水平滑竿:
container.add(xSlider,BorderLayout.SOUTH);
添加竖直滑竿:
container.add(ySlider,BorderLayout.EAST);
添加椭圆面板:
container.add(panel,BorderLayout.CENTER);
2.4.5画椭圆
调用父类方法
super.paintComponent(g);
绘制椭圆
g.fillOval(5,5,width,hight);
2.5.6椭圆高和宽的修改器
椭圆宽度的修改器:
publicvoidsetW(intlength)
{
width=(length>=0?
length:
10);
repaint();
}
椭圆高度的修改器
publicvoidsetH(intlength)
{
hight=(length>=0?
length:
10);
repaint();
}
2.5源代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjavax.swing.event.*;
//滑杆
//@author康爱丽
//
publicclassJSliderDemoextendsJFrame{
JSliderxSlider;
JSliderySlider;
GraphPanelpanel;
publicJSliderDemo()
{
super("康爱丽制作的滑杆演示");
panel=newGraphPanel();
panel.setBackground(Color.orange);
xSlider=newJSlider(SwingConstants.HORIZONTAL,0,200,10);
xSlider.setMajorTickSpacing(10);
//设置刻度值
xSlider.setPaintTicks(true);//描绘刻度
ySlider=newJSlider(SwingConstants.VERTICAL,0,200,10);
ySlider.setMajorTickSpacing(10);
ySlider.setPaintTicks(true);
ySlider.setInverted(true);//设置拖动方向
ValueChangeListenermyListener=newValueChangeListener();//实例化滑杆事件处理
xSlider.addChangeListener(myListener);
ySlider.addChangeListener(myListener);
Containercontainer=getContentPane();//得到容器
container.add(xSlider,BorderLayout.SOUTH);//增加组件到容器上
container.add(ySlider,BorderLayout.EAST);
container.add(panel,BorderLayout.CENTER);
setSize(320,320);
setVisible(true);
setLocation(300,220);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口时退出程序
}
classValueChangeListenerimplementsChangeListener{
publicvoidstateChanged(ChangeEvente){
if(e.getSource()==xSlider){//判断事件源
panel.setW(xSlider.getValue());//设置椭圆宽度
}
else{
panel.setH(ySlider.getValue());//设置椭圆高度
}
}
}
publicstaticvoidmain(Stringargs[]){
newJSliderDemo();
}
}
importjava.awt.*;
importjavax.swing.*;
publicclassGraphPanelextendsJPanel{
intwidth=10;
inthight=10;
publicvoidpaintComponent(Graphicsg){
super.paintComponent(g);
g.fillOval(5,5,width,hight);//绘制椭圆
}
publicvoidsetW(intlength){
width=(length>=0?
length:
10);
repaint();
}
publicvoidsetH(intlength){
hight=(length>=0?
length:
10);
repaint();
}
}
参考文献
[1]《JAVA程序语言设计》马皓清华大学出版社
[2]《JAVA2程序设计实用教程》宋振会陈立电子工业出版社
[3]《JAVA编程思想》(美)BruceEckel侯捷(译)机械工业出版社
[4]《JAVA基础教程》耿祥义清华大学出版社
[5]《JAVA语言学习手册》PatrickNiemeyerJonatbanKmudsen林琪(译)中国电力出版社
致谢
感谢计算机科学与技术学院陈玮老师,在学习JAVA中他给了我很大帮助,给了我信心。
感谢我的朋友给我的点拨。