java课设——用菜单按钮控制绘图
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
功能综述
复习、巩固Java讥占T1基刊好认进一挥对Java语言的理解和掌握课程设计为学生提供了一个既动手又动脑、独立实践的机会,将课本上的理论知识和实际有机的结合起
来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力,培养学生在项目开发中团队合作精神、创新意识及能力。
实现简单绘图功能,具体要求:画直线,画空心或实心椭圆、画空心或实心矩形、画多边形(图形的位置和大小可在程序中设定)。
(一)分析与设计说明
本学期对于java语言的学习,本程序运用图形界面和绘图功能,均已学过利用Eclipse工
具,采用java语言解决问题。
界面上方相应所需的菜单选项或下方的按钮,得到所需图形,完成功能的实现。
运行程序,输入图形类型,并输入两个坐标参数(不超过界面的大小),再选择程序
(二)代码分析
/图形界面的实现(图形界面包括2个标签,4个菜单,6个按钮,5个文本组件)
//导入程序所需要的包
import java.awt.*;
import java.awt.eve nt.*;
import javax.swi ng.*;
public class Draw exte nds JFrame impleme nts Actio nListe ner{
private static fin al l ong serialVers ionUID = 1L;
private static final int WIDTH=600;
private static final int HEIGHT=600;
JMe nuBar men ubar;
JMe nu men u1,me nu 2,me nu 3,me nu4;
JMe nultem item1,item2,item3,item4,item5,item6;
JButton butt on 1,butt on 2,butto n3,butto n4 ,butto n5,butto n6;
JLabel label1;
Mypa nel pan e1= new Mypa nel();
DrawCa nvas JD=n ull;
//将图形界面设为名为“控制绘图”且长宽都为600的图形界面。
public Draw(){
super("控制绘图");
setSize(WIDTH,HEIGHT);
Container c=getC onten tPa ne();
JD=new DrawCa nvas();
JPa nel pane2=new JPa nel(); Compe nt(c, pan e2);
}
private void Compe nt(C ontainer c, JPa nel pan e2) {
men ubar =new JMe nuBar();
menu仁new JMenu(”直线");
menu2=new JMenu(” 椭圆");
menu3=new JMenu(” 矩形");
menu4=new JMenu(” 多边形");
item仁new JMe nultem(”直线");
item2=new JMen ultem(”空心椭圆“
item3=new JMen ultem(”实心椭圆“
item 4=new JMe nultem(”空心矩形“
item5=new JMe nultem(”实心矩形“
item6=new JMen ultem(”多边形");
iteml.addActio nListe ner(this); item2.addActio nListe ner(this); item3.addActi on Liste
ner(this); item4.addActio nListe ner(this); item5.addActi on Liste ner(this); item6.addActi on
Liste ner(this); label 仁new JLabel("");
men u1.add(item1);
menu 2.add(item2);
menu 2.addSeparator();
menu 2.add(item3);
menu 3.add(item4);
menu 3.addSeparator();
menu 3.add(item5);
menu 4.add(item6);
menu bar.add(me nu1);
menu bar.add(me nu 2); menu bar.add(me nu 3);
menu bar.add(me nu 4); setJMe nuBar(me nu bar);
butt on 1= new JButt on (”直线");
button2=new JButton(”空心椭圆");
button3=new JButton(”实心椭圆");
button4=new JButton(”空心矩形");
button5=new JButton(”实心矩形");
button6=new JButton(”多边形");
pan e2.add(butt on 1); pan e2.add(butt on 2); pan e2.add(butt on 4); pan e2.add(butt on 6);
pan e2.add(label1);
pan e2.add(butt on 3); pan e2.add(butt on 5);
butt on 1.addAct ion Liste ner(this); butt on 2.addAct ion Liste ner(this); butt on 3.addAct ion Liste ner(this); butt on4 .addAct ion Liste ner(this); butt on 5.addAct ion Liste ner(this); butt on
6.addAct ion Liste ner(this);
c.add(pa ne1,BorderLayout.NORTH);
c.add(pa ne2,BorderLayout.SOUTH);
c.add(JD,BorderLayout.CENTER);
pa ne2.setLayout( new GridLayout(2,5,20,10));
}
/*Draw 继承了JFrame,因此可以显示,首先声明标签、菜单、按钮和一个JFrame窗口。
然床通过构建标签、菜且、按钮菜单项添加理菜且屮。标签、菜单、按钮添加理窗口容器中,设置容器的大小及添加按钮和菜单事件监听者。*/
/*处理事件监听器事件*/
public void acti on Performed(Act ion Eve nt e) {
int x1,y1,x2,y2;
x1=I nteger.parsel nt(pa ne1.getA().getText());
y1=I nteger.parse In t(pa ne1.getB().getText());
x2=I nteger.parse In t(pa ne1.getC().getText());
y2=I nteger.parse In t(pa ne1.getD().getText());