刚好我做完了这个调查项目:代码给你送上:package doline;import java.applet.Applet; import java.awt.*; import javax.swing.JOptionPane; import java.awt.event.*; import java.awt.print.*; public class DoLine extends Applet implements ActionListener, Printable { int intSize; int intDu; int intBit; int intX; int intY; Point pBegin; Point pEnd; Button button1;
import java.awt.*;
import javax.swing.JOptionPane;
import java.awt.event.*;
import java.awt.print.*;
public class DoLine extends Applet
implements ActionListener, Printable {
int intSize;
int intDu;
int intBit;
int intX;
int intY;
Point pBegin;
Point pEnd;
Button button1;
double intTemp;
public void init(){
intSize=Integer.parseInt(JOptionPane.showInputDialog("長度を入力してください:"));
intDu=Integer.parseInt(JOptionPane.showInputDialog("角度を入力してください:"));
intBit =(int)Math.round(72/25.4*intSize);
intX = (int)Math.round(Math.cos(intDu* 3.1415926/180)*intBit);
intY = (int)Math.round(Math.sin(intDu* 3.1415926/180)*intBit);
pBegin=new Point(10,10);
pEnd = new Point(10+intX,10+intY);
button1 = new Button("印刷");
add(button1);
button1.addActionListener((ActionListener) this);
}
public void paint(Graphics g){
g.drawLine(pBegin.x ,pBegin.y ,pEnd.x,pEnd.y); } public void actionPerformed(ActionEvent e){
if (e.getSource()==button1)
{
printSelf();
}
}
public void printSelf() {
// PrinterJobを取得する
PrinterJob printerJob = PrinterJob.getPrinterJob();
// プリンタダイアログを表示して、印刷ボタンが押された場合
if (printerJob.printDialog()) { try {
// Printableオブジェクトを設定する
printerJob.setPrintable(this);
// 印刷する
printerJob.print();
}
catch (PrinterException e) {
e.printStackTrace();
}
}
} public int print(Graphics g, PageFormat pf, int pageIndex) { // 最初のページの場合
if (pageIndex == 0) {
/** 印刷先の Graphicsを Graphics2D としてキャスト */
Graphics2D g2d = (Graphics2D)g;
// 原点を印刷可能な範囲に移動
g2d.translate(pf.getImageableX(), pf.getImageableY());
// 描画色の設定
g2d.setColor(Color.black);
g2d.drawLine(pBegin.x ,pBegin.y ,pEnd.x,pEnd.y);
// 印刷を続行
return Printable.PAGE_EXISTS;
}
// 2ページ目以降の場合
else {
// 印刷終了
return Printable.NO_SUCH_PAGE;
}
}
}