Java编程 在一个简化绘图程序中,支持图形种类有点和圆,在设计过程中认为所有点和圆都是图形,并定
- 提问者网友:离殇似水流年飞逝
- 2021-03-20 17:21
在一个简化绘图程序中,支持图形种类有点和圆,在设计过程中认为所有点和圆都是图形,并定义类型shape,point个circle,分别表示图形,点和圆,并且点和圆具有基本图形的所有特征。试给出各类间的关系并给出Java的类声明
- 二级知识专家网友:花一样艳美的陌生人
- 2021-03-20 18:23
{
int shape_id;//图形编号,图形的成员属性
//public display(){};//显示方法,图形的成员方法
}
public class Point extends Shape//定义点,继承图形
{
//由于继承Shape,此类自带shape_id和display(){}方法
int posX;
int posY;//定义二维中点的坐标
//int posZ;//如果是个三维绘图程序另说
//public Point(int x,int y){};//构造方法
//@override
//public display(){}//覆盖display方法
}
public class Circle extends Shape//定义圆,继承图形
{
static final double PI=3.1415926535;//定义圆周率
Point core;//圆的中心点
double r;//圆的周长
public Circle(Point p,double l)//构造方法
{
core=p;
r=l;
}
}
结论是 圆和点泛化为图形且点组合于圆;
- 1楼网友:厌今念往
- 2021-03-20 18:46
import java.awt.graphics; import java.awt.event.actionevent; import java.awt.event.actionlistener; import java.awt.event.itemevent; import java.awt.event.itemlistener; import java.awt.event.mouseevent; import java.awt.event.mouselistener; import java.awt.event.mousemotionlistener; import javax.swing.*; class starpaint extends jpanel implements mouselistener, mousemotionlistener{ private int x1 , y1 , x2 , y2; public starpaint(){ //setbackground(color.black); addmouselistener(this); addmousemotionlistener(this); } public void paintcomponent(graphics g){ super.paintcomponent(g); judgeshape(g); x2 = 0;y2 = 0; }
private void judgeshape(graphics g) { // todo auto-generated method stub switch (startestp.shape) { case 0: drawline(g); break; case 1: drawoval(g); break; case 2: drawrect(g); break; } }
private void drawrect(graphics g) { // todo auto-generated method stub g.drawrect(x1, y1, x2 - x1, y2 - y1); system.out.println(2); }
private void drawoval(graphics g) { // todo auto-generated method stub system.out.println(1); g.drawoval(x1, y1, x2 - x1, y2 - y1); }
private void drawline(graphics g) { // todo auto-generated method stub g.drawline(x1, y1, x2, y2); system.out.println(0); }
public void mouseclicked(mouseevent arg0) { // todo auto-generated method stub
}
public void mouseentered(mouseevent arg0) { // todo auto-generated method stub }
public void mouseexited(mouseevent arg0) { // todo auto-generated method stub }
public void mousepressed(mouseevent arg0) { // todo auto-generated method stub x1 = arg0.getx(); y1 = arg0.gety(); repaint(); }
public void mousereleased(mouseevent arg0) { // todo auto-generated method stub x2 = arg0.getx(); y2 = arg0.gety(); repaint(); }
public void mousedragged(mouseevent arg0) { // todo auto-generated method stub x2 = arg0.getx(); y2 = arg0.gety(); repaint(); }
public void mousemoved(mouseevent arg0) { // todo auto-generated method stub }
}
public class startestp extends jframe implements actionlistener,itemlistener{ static int shape = 0; starpaint starpaint = new starpaint(); string[] string = {"line","oval","rect"}; jcombobox combobox = new jcombobox(string); public startestp(){ setsize(600,500); combobox.additemlistener(this); add("center",starpaint); add("north",combobox); setvisible(true); }
public void actionperformed(actionevent arg0) { // todo auto-generated method stub }
public void itemstatechanged(itemevent arg0) { // todo auto-generated method stub if (arg0.getstatechange() == itemevent.selected) shape = combobox.getselectedindex(); //system.out.println(shape); } public static void main(string[] args) { new startestp(); }
}