java 使用工具时出错
java getting error while using implements
我是 java 的新手,所以请帮我解决我的问题。
这是我打印收据单的代码
public class BillPrintable implements Printable{
public int print(Graphics graphics,PageFormat pageformat,int pageIndex)throws PrinterException
{
int result = NO_SUCH_PAGE;
if(pageIndex == 0)
{
Graphics2D g2d= (Graphics2D) graphics;
double width = pageformat.getImageableWidth();
g2d.translate((int) pageformat.getImageableX(), (int) pageformat.getImageableY());
FontMetrics metrics=g2d.getFontMetrics(new Font("Arial",Font.BOLD,7));
int idLength=metrics.stringWidth("000");
int amtLength=metrics.stringWidth("000000");
int qtyLength=metrics.stringWidth("000000");
int priceLength=metrics.stringWidth("00000");
int prodLength=(int)width-idLength-amtLength-priceLength-17;
int productPosition = 0;
int discountPosition=prodLength+0;
int pricePosition =discountPosition+idLength + 10;
int qtyPosition = pricePosition + priceLength + 4;
int amtPosition = qtyPosition + qtyLength;
try {
int y=20;
int yShift = 10;
int headerRectHeight = 15;
int headerRectHeighta = 40;
g2d.setFont(new Font("Monospaced",Font.PLAIN,9));
g2d.drawString("............................", 12, y);y+=yShift;
g2d.drawString(" Restaurant Bill Reciept ", 12, y);y+=yShift;
g2d.drawString("----------------------------", 12, y);y+=headerRectHeighta;
g2d.drawString("......................................", 10, y);y+=yShift;
g2d.drawString("......................................", 10, y);;y+=yShift;
g2d.drawString(" Free Home Delivery ", 10, y);;y+=yShift;
g2d.drawString(" 9895776277 ", 10, y);;y+=yShift;
g2d.drawString("......................................", 10, y);;y+=yShift;
g2d.drawString(" Thanks To Visit Our Restaurant ", 10, y);;y+=yShift;
g2d.drawString("......................................", 10, y);;y+=yShift;
}
catch(Exception r)
{
r.printStackTrace();
}
result = PAGE_EXISTS;
}
return result;
}
}
这里我得到的错误是这样的The type bill.BillPrintable must implement the inherited abstract method Printable.print(Graphics, PageFormat, int)
。不知道问题是怎么产生的以及如何解决的problem.please帮我解决提前谢谢
这是我导入的statements.please看看
import java.awt.Font;
import java.awt.Graphics2D;
import javafx.print.Paper;
import com.sun.prism.Graphics;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.text.*;
import java.awt.print.*;
import java.awt.print.PageFormat.*;
import java.awt.print.Paper.*;
import javax.swing.UIManager;
import java.awt.FontMetrics;
错误是覆盖方法 print(Graphics, PageFormat, int)
,该方法继承自父 class。参数应该与父方法相同,否则 java 会将其视为声明一个新方法,而不是覆盖该方法。此方法也是静态的,因此您可以调用此方法,而无需实例化 class.
您从错误的包中导入 class Graphics
:
import com.sun.prism.Graphics
必须是
import java.awt.Graphics
此外,以下导入也不重要:
import java.text.*;
import java.awt.print.*;
import java.awt.print.PageFormat.*;
import java.awt.print.Paper.*;
注意:不要直接使用com.sun
classes
来自错误包的图形
请试试这个
import java.awt.Graphics
我是 java 的新手,所以请帮我解决我的问题。 这是我打印收据单的代码
public class BillPrintable implements Printable{
public int print(Graphics graphics,PageFormat pageformat,int pageIndex)throws PrinterException
{
int result = NO_SUCH_PAGE;
if(pageIndex == 0)
{
Graphics2D g2d= (Graphics2D) graphics;
double width = pageformat.getImageableWidth();
g2d.translate((int) pageformat.getImageableX(), (int) pageformat.getImageableY());
FontMetrics metrics=g2d.getFontMetrics(new Font("Arial",Font.BOLD,7));
int idLength=metrics.stringWidth("000");
int amtLength=metrics.stringWidth("000000");
int qtyLength=metrics.stringWidth("000000");
int priceLength=metrics.stringWidth("00000");
int prodLength=(int)width-idLength-amtLength-priceLength-17;
int productPosition = 0;
int discountPosition=prodLength+0;
int pricePosition =discountPosition+idLength + 10;
int qtyPosition = pricePosition + priceLength + 4;
int amtPosition = qtyPosition + qtyLength;
try {
int y=20;
int yShift = 10;
int headerRectHeight = 15;
int headerRectHeighta = 40;
g2d.setFont(new Font("Monospaced",Font.PLAIN,9));
g2d.drawString("............................", 12, y);y+=yShift;
g2d.drawString(" Restaurant Bill Reciept ", 12, y);y+=yShift;
g2d.drawString("----------------------------", 12, y);y+=headerRectHeighta;
g2d.drawString("......................................", 10, y);y+=yShift;
g2d.drawString("......................................", 10, y);;y+=yShift;
g2d.drawString(" Free Home Delivery ", 10, y);;y+=yShift;
g2d.drawString(" 9895776277 ", 10, y);;y+=yShift;
g2d.drawString("......................................", 10, y);;y+=yShift;
g2d.drawString(" Thanks To Visit Our Restaurant ", 10, y);;y+=yShift;
g2d.drawString("......................................", 10, y);;y+=yShift;
}
catch(Exception r)
{
r.printStackTrace();
}
result = PAGE_EXISTS;
}
return result;
}
}
这里我得到的错误是这样的The type bill.BillPrintable must implement the inherited abstract method Printable.print(Graphics, PageFormat, int)
。不知道问题是怎么产生的以及如何解决的problem.please帮我解决提前谢谢
这是我导入的statements.please看看
import java.awt.Font;
import java.awt.Graphics2D;
import javafx.print.Paper;
import com.sun.prism.Graphics;
import java.awt.print.PageFormat;
import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.awt.print.PrinterJob;
import java.text.*;
import java.awt.print.*;
import java.awt.print.PageFormat.*;
import java.awt.print.Paper.*;
import javax.swing.UIManager;
import java.awt.FontMetrics;
错误是覆盖方法 print(Graphics, PageFormat, int)
,该方法继承自父 class。参数应该与父方法相同,否则 java 会将其视为声明一个新方法,而不是覆盖该方法。此方法也是静态的,因此您可以调用此方法,而无需实例化 class.
您从错误的包中导入 class Graphics
:
import com.sun.prism.Graphics
必须是
import java.awt.Graphics
此外,以下导入也不重要:
import java.text.*;
import java.awt.print.*;
import java.awt.print.PageFormat.*;
import java.awt.print.Paper.*;
注意:不要直接使用com.sun
classes
来自错误包的图形
请试试这个
import java.awt.Graphics