package HUATU;
//创建一个绘图应用程序,随机地绘制线条、矩形和椭圆。
//为此,需要创建一组“灵活的”形状类。如果为这些类提供一个Graphics对象,
//将绘制位置告诉他们,他们就知道如何绘制自身。
//这些类的名字应为MyLine,MyRect和MyOval(提示:可有共同的父类MyShape)。
//使用随机数来挑选形状类型和形状的位置。
//画线,非填充
//一个文件来实现
import java.lang.*;
import java.util.*;
import java.awt.*;import java.io.*;
import javax.swing.*;
import java.awt.event.*;public class HUATU extends JPanel {
Graphics g;
HUATU()
{ super();
}
public class Myshape{
public int x1,y1,x2,y2;
public Myshape()
{
return;
}
public Myshape(int x1Coordinate, int y1Coordinate,int x2Coordinate, int y2Coordinate)
{
setPoint(x1Coordinate, y1Coordinate,x2Coordinate, y2Coordinate);
}
public void setPoint( int x1Coordinate, int y1Coordinate, int x2Coordinate, int y2Coordinate )
{
x1= x1Coordinate;
y1= y1Coordinate;
x2= x2Coordinate;
y2= y2Coordinate;
}
public int getX1()
{
return x1;
}
public int getY1()
{
return y1;
}
public int getX2()
{
return x2;
}
public int getY2()
{
return y2;
}
}
public class Line extends Myshape{
public Line(){ return;}
public Line( int x1Coordinate, int y1Coordinate,int x2Coordinate,int y2Coordinate)
{
super(x1Coordinate, y1Coordinate,x2Coordinate, y2Coordinate);
// setLine( x1Coordinate, y1Coordinate, x2Coordinate, y2Coordinate);
}
public void setLine(int x1Coordinate, int y1Coordinate, int x2Coordinate, int y2Coordinate){
g.drawLine(x1, y1,x2, y2);// Coordinate
}
}
public class Oval extends Myshape{
public Oval(){return;}
public Oval ( int xCoordinate, int yCoordinate,int xRadius,int yRadius)
{
super(xCoordinate, yCoordinate, xRadius, yRadius);
//setOval( xCoordinate, yCoordinate, xRadius, yRadius);
}
public void setOval(int xCoordinate, int yCoordinate, int xRadius, int yRadius){
g.drawOval(x1,y1,x2,y2);
}
}
public class Rect extends Myshape{
public Rect(){ return;}
public Rect(int x1Coordinate, int y1Coordinate, int x2Coordinate, int y2Coordinate ){
super(x1Coordinate, y1Coordinate,x2Coordinate, y2Coordinate);
//setRect( x1Coordinate, y1Coordinate, x2Coordinate, y2Coordinate);
}
public void setRect(int x1Coordinate, int y1Coordinate,int x2Coordinate, int y2Coordinate){
g.drawRect(x1,y1,x2,y2);
}
}
public static void main(String argsp[])
{
Random random = new Random();
HUATU panel=new HUATU();
JFrame application=new JFrame();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.setSize(600,600);
application.add(panel);
application.setVisible(true);
int x1,y1,x2,y2,m;
m=Math.abs(random.nextInt())%3+1;
x1= Math.abs(random.nextInt())%255+1;
y1= Math.abs(random.nextInt())%255+1;
x2= Math.abs(random.nextInt())%255+1;
y2= Math.abs(random.nextInt())%255+1;
if(m==1)
{
Line myLine = panel.new Line(x1,y1,x2,y2);
// Point p = new Point();
myLine.setLine(x1,y1,x2,y2);
}
if(m==2)
{
Oval myOval = panel.new Oval(x1,y1,x2,y2);
//Point p = new Point();
myOval.setOval(x1,y1,x2,y2);
}
if(m==3)
{
Rect myRect = panel.new Rect(x1,y1,x2,y2);
//Point p = new Point();
myRect.setRect(x1,y1,x2,y2);
}
}
}
总是说对象传递不正确?
//创建一个绘图应用程序,随机地绘制线条、矩形和椭圆。
//为此,需要创建一组“灵活的”形状类。如果为这些类提供一个Graphics对象,
//将绘制位置告诉他们,他们就知道如何绘制自身。
//这些类的名字应为MyLine,MyRect和MyOval(提示:可有共同的父类MyShape)。
//使用随机数来挑选形状类型和形状的位置。
//画线,非填充
//一个文件来实现
import java.lang.*;
import java.util.*;
import java.awt.*;import java.io.*;
import javax.swing.*;
import java.awt.event.*;public class HUATU extends JPanel {
Graphics g;
HUATU()
{ super();
}
public class Myshape{
public int x1,y1,x2,y2;
public Myshape()
{
return;
}
public Myshape(int x1Coordinate, int y1Coordinate,int x2Coordinate, int y2Coordinate)
{
setPoint(x1Coordinate, y1Coordinate,x2Coordinate, y2Coordinate);
}
public void setPoint( int x1Coordinate, int y1Coordinate, int x2Coordinate, int y2Coordinate )
{
x1= x1Coordinate;
y1= y1Coordinate;
x2= x2Coordinate;
y2= y2Coordinate;
}
public int getX1()
{
return x1;
}
public int getY1()
{
return y1;
}
public int getX2()
{
return x2;
}
public int getY2()
{
return y2;
}
}
public class Line extends Myshape{
public Line(){ return;}
public Line( int x1Coordinate, int y1Coordinate,int x2Coordinate,int y2Coordinate)
{
super(x1Coordinate, y1Coordinate,x2Coordinate, y2Coordinate);
// setLine( x1Coordinate, y1Coordinate, x2Coordinate, y2Coordinate);
}
public void setLine(int x1Coordinate, int y1Coordinate, int x2Coordinate, int y2Coordinate){
g.drawLine(x1, y1,x2, y2);// Coordinate
}
}
public class Oval extends Myshape{
public Oval(){return;}
public Oval ( int xCoordinate, int yCoordinate,int xRadius,int yRadius)
{
super(xCoordinate, yCoordinate, xRadius, yRadius);
//setOval( xCoordinate, yCoordinate, xRadius, yRadius);
}
public void setOval(int xCoordinate, int yCoordinate, int xRadius, int yRadius){
g.drawOval(x1,y1,x2,y2);
}
}
public class Rect extends Myshape{
public Rect(){ return;}
public Rect(int x1Coordinate, int y1Coordinate, int x2Coordinate, int y2Coordinate ){
super(x1Coordinate, y1Coordinate,x2Coordinate, y2Coordinate);
//setRect( x1Coordinate, y1Coordinate, x2Coordinate, y2Coordinate);
}
public void setRect(int x1Coordinate, int y1Coordinate,int x2Coordinate, int y2Coordinate){
g.drawRect(x1,y1,x2,y2);
}
}
public static void main(String argsp[])
{
Random random = new Random();
HUATU panel=new HUATU();
JFrame application=new JFrame();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.setSize(600,600);
application.add(panel);
application.setVisible(true);
int x1,y1,x2,y2,m;
m=Math.abs(random.nextInt())%3+1;
x1= Math.abs(random.nextInt())%255+1;
y1= Math.abs(random.nextInt())%255+1;
x2= Math.abs(random.nextInt())%255+1;
y2= Math.abs(random.nextInt())%255+1;
if(m==1)
{
Line myLine = panel.new Line(x1,y1,x2,y2);
// Point p = new Point();
myLine.setLine(x1,y1,x2,y2);
}
if(m==2)
{
Oval myOval = panel.new Oval(x1,y1,x2,y2);
//Point p = new Point();
myOval.setOval(x1,y1,x2,y2);
}
if(m==3)
{
Rect myRect = panel.new Rect(x1,y1,x2,y2);
//Point p = new Point();
myRect.setRect(x1,y1,x2,y2);
}
}
}
总是说对象传递不正确?
这句很有问题。。
Java大学教程?Big Java?忘了,前一段我看见过这个,你在这两本书上找找
将g改为getGraphics()