班级信息管理系统《Java面向对象程序设计》

发布时间 : 星期六 文章班级信息管理系统《Java面向对象程序设计》更新完毕开始阅读

Java课程设计

如图当点击新建时,画板中的图形清除,如图5。当点击打开时,可将已经创建好的图再导入到画布中,如图6。

图4 即将新建 图5 一张崭新的画布

图6 重新打开文件

第5部分 心得与体会

本次课程设计加深了我对课本知识的理解,进一步深化了我对Java面向对象(OOP)的思想认识。学会了简单的面板及控件布局设计,能够按照自己的想象设计出框架布局,能够进行简单的图形的绘制和编辑等,实现了Windows自带画图的部分基本功能,总的说来收益匪浅。 对于这样的课程设计,工作量相对平时作业确实大了许多。由于开始的不熟练耽误了一些时间,后来在实现连续保存图形的算法上很是纠结了一阵,一直没有想到很好的做法,最后参考了一些其他程序的一些思想,才找到头绪。整体上看做画图比较简单,但是就做的过程中发现要注意很多的细节性问题。

17

Java课程设计

实验过程中也走了很多的弯路,由于在开始设计的时候思路不时很清晰,对于一些问题不能很好的提出解决问题的方法,在设计过程中,代码总是重复的修改,并且由于不能再以各高度上给自己编写的代码进行一个评价,在很多问题上,代码并不时最优的。相信在以后的学习中,随着知识的增多,问题会逐渐得到解决。

第6部分 附录

构建主要窗体代码:

public class Dr extends JApplet implements ActionListener {

…….. JButton line,rectangle,round,oval,roundrect,colchooser,filled; Panel pmain=new Panel(); Panel pbtn=new Panel(); //DrawingBoard paintb; MenuBar mb; Graphics g; DrawingBoard paintb;//重要 Dimension d; final static JLabel lbl = new JLabel(); public static void main(String[] args) { f.add(lbl); mh.addActionListener(app); mj.addActionListener(app); app.init(); app.start(); }

初始化面板部分代码: public void init() { …… paintb=new DrawingBoard(); pmain=new Panel(); pmain.setLayout(new BorderLayout()); pmain.setSize(10, 700); pmain.add(pbtn,BorderLayout.WEST); pmain.add(paintb,BorderLayout.CENTER); add(pmain); }

画板类部分代码: 构建IShape接口类: interface IShape {

public static final int RIGHT_PRESSED = 0;

18

Java课程设计

public static final int LEFT_RELEASED = 1;

public static final int CURSOR_DRAGGED = 2;

public void processCursorEvent(MouseEvent evt, int type);

public void draw(Graphics g); }

构建抽象类RectBoundedShape:

abstract class RectBoundedShape implements IShape {

protected Color color;

protected int startX, startY, endX, endY;

protected boolean filled_or;

protected RectBoundedShape(Color c,int x, int y,boolean f) { color = c; filled_or=f;

startX = endX = x; startY = endY = y; }

public void processCursorEvent(MouseEvent e, int t) { if (t != IShape.CURSOR_DRAGGED) return; int x = e.getX(); int y = e.getY(); endX = x; endY = y; } }

矩形类:

class Rect extends RectBoundedShape {

public Rect(Color c, int x, int y,boolean f) { super(c, x, y ,f); }

public void draw(Graphics g) { g.setColor(color); int x, y, w, h;

if (startX > endX) { x = endX;

w = startX - endX; } else {

x = startX;

19

Java课程设计

w = endX - startX; }

if (startY > endY) { y = endY;

h = startY - endY; } else {

y = startY;

h = endY - startY; }

if(filled_or) { g.drawRect(x, y, w, h); g.fillRect(x, y, w, h); }

else g.drawRect(x, y, w, h); } }

//其他图形类以此类推

覆盖适配器的WindowControl类: class WindowControl extends WindowAdapter { JApplet c; public WindowControl(JApplet c) { this.c=c; } public void windowClosing(WindowEvent e) { c.destroy(); }

}........忽略此处.......

20

联系合同范文客服:xxxxx#qq.com(#替换为@)