在Java中,如何在类中创建图形,然后获取要在Applet中使用的图形?
为图形创建此类的一种尝试如下:
import java.lang.*;
import java.util.*;
import java.awt.*;
public class Cords{
public static Graphics cords;
public static int w,h,n;
private static int xC,yC;
public static void Paint(Graphics g)
{
for(xC=0;xC<=w;xC+=n){
g.drawLine(xC,0,xC,h);
g.drawString(""+xC,xC,11);
}
for(yC=0;yC<=h;yC+=n){
g.drawLine(0,yC,w,yC);
g.drawString(""+yC,1,yC));
}
cords=g.create();
}
public static Graphics cords(int w, int h,int n){
return cords;
}
然后我尝试在applet中使用...
import java.awt.*;
import java.applet.Applet;
import javax.swing.Timer;
public class CordsTest extends Applet
private int x,y,w,h,n;
private Cords a;
public void init()
{
//w=getWidth();
//h=getHeight();
//a.cords(w,h,50);
}
public void paint(Graphics g){
w=getWidth();
h=getHeight();
g.setColor(Color.black);
paint(a.cords(w,h,50));
}
}
由于我对Stack Overflow上的问题比较新,如果格式问题有任何错误,请耐心等待,如果可能,请通过评论告诉我,以便将来可以避免这些。谢谢!
答案 0 :(得分:1)
paint
。
为了进行任何绘画,您应该将Graphics
的引用传递给您绘画类的实例,例如。
使用像...这样的东西。
public class Cords{
public void paint(Graphics g, int w, int h, int n)
{
for(int xC = 0; xC <=w; xC += n){
g.drawLine(xC,11,xC,h);
g.drawString(""+xC,xC-(n/5),11);
}
for(int yC = 0; yC <= h; yC += n){
g.drawLine(25,yC,w,yC);
g.drawString(""+yC,1,yC+((n/5)/2));
}
}
}
在您的小程序中,您需要创建Cords
的实例,然后将其传递给Graphics
public class CordsTest extends Applet implements ActionListener{
private Cords cords;
public void paint(Graphics g){
w=getWidth();
h=getHeight();
g.setColor(Color.black);
if (cords == null) {
cords = new Cords();
}
cords.paint(g, w, h, 10);
}
请查看Painting in AWT and Swing和Performing Custom Painting了解详情。
老实说,除非你真的不得不这样做,避免小程序,先从简单的JFrame
和JPanel