use*_*252 6 java printing netbeans
我的代码打印图形对象时遇到问题.这个确切的代码工作大约一周前,现在当我在netbeans中打开文件时,它会在执行时崩溃.
这是代码:
package Project;
import java.awt.*;
import javax.swing.*;
import java.awt.print.*;
public class Print implements Printable {
private Component componentToBePrinted;
public static void printComponent(Component c) {
new Print(c).print();
}
public Print(Component componentToBePrinted) {
this.componentToBePrinted = componentToBePrinted;
}
public void print() {
PrinterJob printJob = PrinterJob.getPrinterJob();
printJob.setPrintable(this);
if (printJob.printDialog())
try {
printJob.print();
} catch(PrinterException pe) {
System.out.println("Error printing: " + pe);
}
}
@Override
public int print(Graphics g, PageFormat pageFormat, int pageIndex) {
if (pageIndex > 0) {
return(NO_SUCH_PAGE);
} else {
Graphics2D g2d = (Graphics2D)g;
g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
disableDoubleBuffering(componentToBePrinted);
componentToBePrinted.paint(g2d);
enableDoubleBuffering(componentToBePrinted);
return(PAGE_EXISTS);
}
}
public static void disableDoubleBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(false);
}
public static void enableDoubleBuffering(Component c) {
RepaintManager currentManager = RepaintManager.currentManager(c);
currentManager.setDoubleBufferingEnabled(true);
}
}
Run Code Online (Sandbox Code Playgroud)
Netbeans告诉我,当我和@Override告诉我它什么都不做时,我没有覆盖抽象方法print(Graphics,PageFormat,int).
还行:
Graphics2D g2d = (Graphics2D)g;
Run Code Online (Sandbox Code Playgroud)
错误说它无法转换图形类型.我不知道我做错了什么,因为这个确切的代码工作一周前.
听起来像是Java版本问题。 @Override是在 Java 5 中添加的,但仅对覆盖类的方法有效。Java 6 添加了@Override对在接口上实现方法的支持 (即Printable)。
此外,我认为Graphics传递的所有 Swing实例现在都是实际Graphics2D实例,因此从 Java 1.2 开始,转换应该是安全的。因此,如果您遇到转换错误,那么您可能正在使用非常旧的 Java 版本?
无论哪种方式,我都建议您检查您的 Netbeans 配置以确保您至少使用 Java 6。
不久前我也遇到过类似的问题。
在某个编译器版本/java版本组合中,@Override注释不起作用并给出编译器错误。如果你删除它,它就会起作用。
这不能被视为一个完整的答案,因为我不知道它不起作用的原因,因为注释@Override是在 java 5 中引入的,并且我有编译器和 java 版本 >= 5。也许其他人可以启发我们原因。
| 归档时间: |
|
| 查看次数: |
2655 次 |
| 最近记录: |