• 締切済み

javaでアプレットの描画が出来ない

ものすごく初心者な質問で申し訳ありません。 jdk-1.6.0をVine linux 3.2にインストールして使用しています。 javaのソースを書いてコンパイルするなどには問題は無いのですが (今のところ) 以下のようなアプレットを試してみたところアプレットの窓は起動しますが 描画がされません。 import java.applet.Applet; import java.awt.Graphics; /* <applet code="test" width=200 height=200> </applet> */ public class test extends Applet { public void paint(Graphics g) { g.drawLine(10,10,180,110); } } 以上のコードを %javac test.java %appletviewer test.java としました。窓は起動し、アプレットが開始された、と表示されるのですが 線が見当たりません。 (ちなみに教科書にあるサンプルなので間違いがあったとしたら写し間違いです) 線が表示されるはずなんですが、表示されないのです。 まども起動するので何かJAVAを使う環境として何か細かい設定を間違って いるのかと思い質問しました。 分かる方がいらっしゃったら教えてください。

  • Java
  • 回答数4
  • ありがとう数0

みんなの回答

  • haraga
  • ベストアンサー率56% (36/64)
回答No.4

#2です 先ほどの回答はeclipseでの確認でした。 hotjava.properties を下のリンクで探すといろいろ書いてあります

参考URL:
http://bugs.sun.com/bugdatabase/index.jsp
kuntaro33
質問者

補足

ページを少しだけ見てみました。 色々とエラーやバグの話が載っていて参考になりそうですね。 一度、時間をかけて自分と同じ境遇の人がいないかチェックしてみることに します。

  • haraga
  • ベストアンサー率56% (36/64)
回答No.3

#2です(Win:XP JDK1.6)で確かめてますが 「警告: AppletViewer プロパティファイルが読み込まれません: C:\Documents and Settings\hogehoge\.hotjava\properties デフォルトを使用します。」 とでます。(私もはじめて)これが表示されるのは最初だけで、 最初のViewer 起動時に C:\Documents and Settings\hogehoge\の下に .appletviewer なるファイルが生成されています。 その中身は ------------------------1 http.proxyPort=80 package.restrict.access.sun=true http.proxyHost= -----------------------------1 です。意味はわかりません。2回目以降はこの生成されたファイルを読んでいるようでエラーになりません。 vineがないので推測ですが、viewer起動時に作成されるはずの .appletviewer が権限がなく作成されない。(メッセージ出てもよさそうですが) .appletviewer を権限がなく読めない。 などが考えられます。 アカウント近辺にそのようなファイルはありませんか? あれば属性を確認してください。 ない場合はHomeディレクトリの下(かな?)に .hotjavaディレクトリを作成し その中にpropertiesファイルを作成してください。中身は 1で構わないかと。。。 それにしても「デフォルトを使用します。」って一文が非常に気になります。

kuntaro33
質問者

補足

詳細な検討をありがとうございます。 実は使っている教科書に、haragaさんの書いていらっしゃるエラーが 出るかもしれないが、そのまま続行しなさい、と書いてあります。 最初に書いていなくて申し訳ありません。 ~/.hotjava/properties/.appletviewer を作ってやり直してみましたが変化はありませんでした。

  • haraga
  • ベストアンサー率56% (36/64)
回答No.2

import java.applet.*; import java.awt.Graphics; import java.awt.Color; public class test extends Applet { public void paint(Graphics g) { g.setColor(Color.blue); g.drawString("test!",50,50); g.drawLine(10,10,180,110); } } 同じ環境にならないので(win、JDK1.4=古い!)回答にはなりませんが 1 これでテキストは表示されますか? また、ビューワーではなく <html> <body> <applet code=test.class width="200" height="200" > </applet> </body> </html> 2 みたいなページをブラウザで表示してみたらどうなんでしょう。 3 以前に javacでコンパイルしたもの”test.class”を削除して、再コンパイルはどうでしょ? 4 余力あればeclipseの方が便利ですが・・・

kuntaro33
質問者

補足

お返事ありがとうございます。 ビューワで見る方法をまだ調べていませんで、試していませんが、 以下 1)テキスト表示⇒同様に出てこない 3)test.class削除⇒再コンパイル⇒同じ 4)エクリプス・・・。実はnetbeansでpaintメソッドをオーバーライドする、というプログラムもうまく走りません。バックグラウンドのみの表示になってしまいます・・・。 ということでテキストの簡単なプログラムで試してみよう、と始めた結果、 今回のように同様のことが起きるのです。 ビューワでみる方法を調べて試してみます。

  • PED02744
  • ベストアンサー率40% (157/390)
回答No.1

Color指定がないので、バックグラウンドとフォアグラウンドの色が一緒になっていて、 見えないだけでは? import部に import java.awt.Color; ロジック部に Color c = Color.Blue; g.setColor(c); を追加されてみては?

kuntaro33
質問者

補足

お返事ありがとうございます。 先ほど、カラーの設定をやってみたのですが、線は出てきませんでした。 単にコードの問題なのか、 インストールしたjavaの問題なのか、 今のところ全くわかりません。 同じような経験をお持ちの方はおられませんかねぇ・・・。

関連するQ&A

  • アプレットについて

    appletviewerで実行したところ アプレットの枠しか出てきません。中身が現れないのです。どうしたらよろしいでしょうか? import java.applet.Applet; import java.awt.*; /* <APPLET CODE="JFont2.class"WIDTH=500 HEIGHT=100> </APPLET> */ public class JFont2 extends Applet{  public void pait(Graphics g){   String ss="Djia@go",s1;   int baseline1=60,baseline2;   int x1=30,y1;    Font ft=new Font("Serif",Font.PLAIN,48);  g.setFont(ft);  g.drawString(ss,x1,baseline1);     FontMetrics fm=getFontMetrics(ft);   //アクセント上部に線を引く         y1=baseline1-fm.getAscent();     g.drawLine(10,y1,220,y1); } }

    • ベストアンサー
    • Java
  • javaアプレットでのy=x^2のグラフ

    javaアプレットでy=x^2のグラフを描写したいのですが、現在の状態ではグラフの右側しか画面に現れません。軸の移動をすればよいと思うのですが、どのように修正すればよいのでしょうか? import java.applet.Applet; import java.awt.Graphics; import java.awt.Color; public class test1 extends Applet{ public void paint(Graphics g){ g.setColor(Color.red); int x,yp=100,xp=0; for(x=0;x<200;x++){ int y=(int)(x*x)*(-1)+100; g.drawLine(xp,yp,x,y); xp = x; yp = y; } } }

  • javaの基本

    ここに書いてある http://www.tohwa-u.ac.jp/~kodama/java/1_world.html import java.applet.*; import java.awt.*; public class hello extends Applet { public void paint(Graphics g) { g.drawString("Hello World",20,20); } } hello.javaを作って ターミナルでjavac hello.javaでコンパイルして appletviewer hello.java とやるんですが sun.Applet.Mainというappletviewerが出て ウインドウが出ず困っています コードも間違ってないし 合ってると思います http://www.tohwa-u.ac.jp/~kodama/java/pictures/viewer01.jpg 見たいにでず sun.applet.mainというアプリみたいなのがドックに出て 3秒くらいで消えてしまいます 何故なんでしょう? どなたか詳しい方教えて下さい

    • ベストアンサー
    • Java
  • アプレットでパッケージ指定した際の実行方法を教えてください。

    タイトルの通りです>< 例えば次のようなプログラムがあったとします。 package draw; import java.applet.Applet; import java.awt.Color; import java.awt.Graphics; /* <applet code="BackGroundColor.class" width="200" height="200"> </applet>*/ public class BackGroundColor extends Applet { public void paint(Graphics g) { setBackground(Color.cyan); setForeground(Color.lightGray); g.fillOval(10, 10, 180, 100); } } 面倒なのでタグはソース内に書き込みます。 これをアプレットビューアで確認するときに appletviewer BackGroundColor.java とやると「アプレットは初期化されていません」と怒られるわけです。 ですが、「package draw;」を消して、コンパイル後、実行すると 見事成功します。 パッケージ指定したときの実行方法を教えてください><

    • ベストアンサー
    • Java
  • Javaのアプレットの後継について

    以前のJavaのグラフィックスの本を見るとappletを用いてブラウザ内に結果を表示することが紹介されています。あるいはappletviewerとかです。最近はappletを使わないようになって、インストールされていないとのことです。そのため、appletを用いて表示していたソースコードなどを新しいものに対応させるにはどのような修正になるのでしょうか。すべて作り直しになるでしょうか。 JavaのグラフィックスはJFrameとかでブラウザを用いないで表示することは可能ですが、それだけではないように思うのですが。Javascriptを用いるというようなことは聞いていますが、詳細は存じません。 考え方、方向性だけでも結構なのですが、よろしくお願いします。

  • Javaアプレットについての質問です

    Javaアプレット関係の質問です。 Eclipseで「Sample_01.java」ファイルを作成します。→ コマンドプロンプトでコンパイルします。→ 作成した「Sample_01.class」ファイルをデスクトップに移動します→ HTMLファイルを開きます。 …この手順だと問題なくアプレットを表示できるのですが、 Eclipseで「Sample_01.java」ファイルを作成します。→ 「保管」します。→ ナビゲータービューから「Sample_01.class」ファイルを取りだします→ デスクトップに移動します。→ HTMLファイルを開きます。 …この手順だとなぜか×マークが表示されエラーになります。 繰り返しになりますが、どちらのファイルも名前・中身は全く同じものとなっています。コンパイルの方法が違うだけです。 なぜEclipseで自動作成された方のclassファイルだけエラー?が出たのでしょうか?エラーが出ない対策とかはありませんかね? Javaアプレットに詳しい方いましたら教えてください。 //一応ソース乗せておきます import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.util.*; public class Sample_01 extends Applet{ private static final long serialVersionUID = 1L; public void init(){ } public void paint(Graphics g){ g.drawRect(200,200,25,30); } }

  • 直線・曲線描画時の原点の変更

    こんにちは。 大学の課題でJava上で曲線を描く、という物を作っているのですが、 左上原点から左下原点への変更の仕方がよくわかりません。 今は仕方なく、 g.drawLine(150, h-0, 0, h-300); のように、y座標側にh(アプレットの高さ)を入力して行っているのですが、drawLineの記述数が増えるとひとたまりもありません。 Graphicsクラスを拡張する事も考えたのですが、いまいち・・・。 何かいい方法はありますでしょうか?? ソースは ============================================= import java.applet.Applet; import java.awt.Graphics; public class abcd extends Applet { int w,h; //Appletの幅,高さ public void init(){ w = size().width; h = size().height; } public void paint(Graphics g){ g.drawLine(300, h-0, 0, h-150); g.drawLine(150, h-0, 0, h-300); } } ============================================= です。 ちなみにGraphicsクラスを拡張しようとしてよくわからなくなりました。↓↓ ============================================= public class Graphicsc extends java.awt.Graphics { public void drawLine(int arg0, int arg1, int arg2, int arg3) { ????????・・・・ } }

    • ベストアンサー
    • Java
  • アプレットの動作テストができない

    Eclipseのメニュー→「実行」→「Javaアプレット」で、"HELLO"の文字を表示させるアプレットの動作テストしたんですが、エラーが出てしまいました。 エラー内容は以下の通りです。 -------------------------------------- この行に複数マーカーがあります。 - シリアライズ可能クラス Sample_01 は long 型の static final serialVersionUID フィールドを 宣言していません。 - ブレークポイント:Sample_01 ---------------------------------------- HTML上での動作テストは問題なくできるのですが、Eclipseでの動作テストは失敗します。なぜでしょうか? ソースはJava講座のHPの物なので、間違いないと思うのですが…。 //ソース import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.util.*; public class Sample_01 extends Applet{ //この部分に使用する変数を宣言// public void init(){ //ここで最初にやっておきたい処理を記述する// } public void paint(Graphics g){ g.drawString("HELLO!",200,200);//ここでアプレット画面に表示させる処理を記述する// } }

    • ベストアンサー
    • Java
  • Javaアプレットについてですが

    Javaアプレットでボタンを押したら数字が増えるものを作っているのですがどうもうまく動きません。 ソースは下の通りです。 変更しなければいけないところがあるならお願いします。 import java.applet.Applet; import java.awt.Graphics; import java.awt.Button; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class Sample7 extends Applet implements Runnable, ActionListener { Button bt; int num; public void init() { bt = new Button("開始"); add(bt); bt.addActionListener(this); Thread th; th = new Thread(this); th.start(); } public void actionPerformed(ActionEvent ae) { public void run() { try{ for(int i=0; i<11; i++){ num = i; repaint(); Thread.sleep(1000); } } catch(InterruptedException e){} } } public void paint(Graphics g) { String str = num + "です。"; g.drawString(str, 50, 50); } }

    • ベストアンサー
    • Java
  • アプレットを実行すると、×が表示され、Javaアプレットの読み込みに失敗しました。のメッセージが表示されます。

    Java JDK5をインストールしました。 C:\Program Files\Javaに jdk1.5.0_06 jre1.5.0_06 がインストールされています。 コンパイルは、PATHにC:\Program Files\Java\jdk1.5.0_06\binを追加すれば、できるようになりました。 Javaアプレットの読み込みに失敗しました。のメッセージが表示されます。 // 図形の表示 import java.applet.*; import java.awt.*; public class Test_0002 extends Applet{ public void paint(Graphics g){ g.fillOval(0, 0, 200, 100); } }

    • ベストアンサー
    • Java

専門家に質問してみよう