[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[jfriends] むりやり、NetScapeComunicator からアプレットの印刷
こんにちは、岸田です。
事情があって、ウェブブラウザの印刷ボタンからアプレットを印刷するというこ
とについて調べています。
インターネットエクスプローラーはブラウザの印刷ボタンからアプレットが印刷で
きるけれども、ネットスケープコミュニケータからだとアプレットがきちんとした
サイズで印刷できないということが、某MLにも書いてあるし、某ニュースグループ
にも書いてあるし、自分の環境
WindowsNT, InternetExplorlar 4.0, Netscape Comunicater4.51
でも確認しました。
それで、昨日からいろいろ試していて、ついに、Netscape Comunicater4.51 からも
アプレットの印刷ができました。ちょっと画像が大きくなってしまうけれども、
アプレット画面が欠けるということはありません。
どんなことをしたかというと printAll()メソッドの中に g.setClip()メソッドを
入れてみただけです。#ここまでたどり着くにはたいへんだった(笑)。
そこで、皆さんの環境ではどんなものでしょう?
次のプログラムを実行して、アプレットをウェブブラウザの印刷ボタンでアプレット
を印刷できるかどうか教えてください。
-------
import java.applet.*;
import java.awt.*;
public class TestApplet extends Applet {
private int width;
private int height;
public void init() {
width = getSize().width;
height = getSize().height;
}
public void printAll(Graphics g) {
g.setClip(0, 0, width, height);
super.printAll(g);
}
public void paint(Graphics g) {
g.setColor(Color.yellow);
g.fillRect(0, 0, width, height);
g.setColor(Color.red);
g.drawLine(0, 0, width - 1, height - 1);
g.setColor(Color.red);
g.drawLine(0, height - 1, width - 1, 0);
g.setColor(Color.blue);
for (int i = 0;i < width; i += 10) {
g.drawLine(i, 0, i, height - 1);
}
for (int i = 0;i < height; i += 10) {
g.drawLine(0, i, width - 1, i);
}
g.drawRect(0, 0, width - 1, height - 1);
}
}
-------
<html>
<applet codebase="." code=TestApplet.class width=400 height=400>
</applet>
</html>
-------
岸田ゆき枝
yukie@xxxxxxxxxx