- ベストアンサー
フレームにJPEGを表示させたい
JAVAアプレットでフレームを作成しました。 そこにJPEGの画像を表示させようと思い、下記のようにしました。 class TestFrame extends Frame { Image image; TestFrame(String title) { super(title); setLayout(null); image = getImage(getDocumentBase(), "A1.jpg"); } public void paint(Graphics g){ g.drawImage(image,300,300,this); } } しかし、上記をコンパイルすると 「image = getImage(getDocumentBase(), "A1.jpg");」の所でコンパ イルエラーが発生しました。 色々調べた所「public URL getDocumentBase()ドキュメントの URL を返します。戻り値:アプレットを含んでいるドキュメントの URL」 と言うことでした。 つまりgetDocumentBaseが使えないみたいです。 ではどうやってフレームにJPEGの画像を表示させればいいのでしょうか?
- gal
- お礼率100% (8/8)
- Java
- 回答数2
- ありがとう数8
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まずはコンパイルエラーの原因から: TestFrameクラスはFrameクラスのサブクラスとして定義されてますね。getDocumentBaseはAppletクラスのメソッドですから、コンパイラは「TestFrameクラスにも、その基本クラスにもgetDocumentBaseなどというメソッドは定義されてないぞ!」とエラーにしているのでしょう。 解決策は: フレームにイメージを表示させるには、アプレットで getImage(getDocumentBase(),"A1.jpg") とやった結果(Imageクラスへの参照)を何らかの方法でフレームに渡してあげる必要があります。TestFrameクラスの定義をアプレットの中に入れてしまう(Innerクラスにする)のも解決策のひとつになるでしょう。 おまけ: nobi2000さんの回答ですけど、Imageはabstractクラスですから new Image(...) はできませんが、アプレットの getImage は実際にはImageクラスの派生クラスを返します。それをImageクラスの参照に代入することは何ら問題ありません。
その他の回答 (1)
絵を張ったことはないのですが…。 Imageってabstractクラスじゃないのかな…。 abstractクラスって、 継承してabstractメソッドをオーバーライドさせて使うものじゃなかったかとおもうのだけども…。 とりあえず、 ImageじゃなくてImageIcon使って ImageIcon image = new ImageIcon("A1.jpg"); みたいに書き換えたらよいのではないでしょおか。
お礼
フレームを内部クラスにすることによって、画像をフレームに表示することが 可能となりました。 色々ご親切にありがとうございました。
関連するQ&A
- JPEG画像のみを印刷したいのですが・・・
度々質問します。 ブラウザに表示させたイメージ画像(JPEG)を印刷した所、印刷できま せんでした。 ちょうど他の方も印刷が出来ないと言うことで、ご質問されていまして、 参考になるURLにジャンプして色々見たのですが、正直よくわかりません。 本にもちょうど載っていたのですが、的外れな事が書かれているため、 参考にもなりません。 以下のソースは最初にA1.jpgを表示させ、その後「画像を変更」ボタンを 押すとB2.jpgに画像が変更されるものです。 やりたいのは、ボタンをもう一つ(印刷ボタン)追加して、そのボタンが 押された時に画像が印刷されるようにしたいんです。 基本的に画像のみを印刷したいと言う単純明快な形にしたいんです。 それで出来たらバカにでもわかるくらい簡単に書いていただけると助かります。 お手数ですがよろしくお願いします。 import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.io.*; import java.lang.*; public class Sample extends Applet { Button Henko; Image image; Color bgcolor; Font font; public void init() { setLayout(null); bgcolor = new Color(240,248,255); setBackground(bgcolor); setForeground(Color.black); font = new Font("Serif",Font.PLAIN,18); image = getImage(getDocumentBase(),"A1.jpg"); Henko = new Button("画像を変更"); Henko.setFont(font); Henko.setBounds(20,100,140,30); add(Henko); Henko.addActionListener(new Gazohenko()); } public void paint(Graphics g){ g.drawImage(image,150,150,this); } public class Gazohenko implements ActionListener{ public void actionPerformed(ActionEvent e){ image = getImage(getDocumentBase(), "B2.jpg"); repaint(); } } }
- ベストアンサー
- Java
- 【Java】画像表示が出来ない!
Java初心者です。 Eclipseを使って、Javaアプレットでjpeg画像を表示させようとしたのですが、上手くいきません。表示したい画像をインポートして、このようなコードを書きました。 import java.applet.Applet; import java.awt.*; /* <applet code="クラス名.class" width="497" height="600"> <param name="img" value="img/test.jpg"> </applet>*/ public class クラス名 extends Applet { Image img; public void init() { img = getImage(getDocumentBase() , getParameter("/test.jpg")); } public void paint(Graphics g) { g.drawImage(img , 0 , 0 , this); } } Javaアプレットで実行しても、アプレットは真っ白なままです。GIF画像でも試してみましたが、同じく失敗でした。他のJavaアプレットのプログラム(図形を表示したり)は成功したので、私のパソコンのJavaは問題ないと思います。回答よろしくお願いします。
- ベストアンサー
- Java
- Java アプレットで画像をコピーして配置
Javaアプレットでなのですが、画面上に自分で持っている画像をコピーして配置したいです。 http://oshiete1.goo.ne.jp/qa2452081.html のソースを参考にさせて頂いたのですが、 コピー元のオブジェクトを自分の持っている画像(アイコン)にしたいです。 Path指定をするとできるのかなと思っていて、以下の2行を加えてみたのですができません。 img[0] = getImage(getDocumentBase(), "../../img/01.jpg"); g.drawImage( img[0],20,20, this ); ご教授よろしくお願いします。
- ベストアンサー
- Java
- 画像を貼り付けたアプレットの表示位置を指定したい
今晩は、JAVA初心者です、宜しくお願いします。 下のような簡単なプログラムを書いてやりましたが、 アプレットの表示位置を指定してやろうとして、「setLocation(300,300);」 とかいてやりましたが、Imageがアプレットの(300,300)の位置に 張り付きました。 また、「l.setLocation(300,300);」と書いても、画面の左上を起点と して表示されてしまいます。 他の方法も色々とやってみたのですがどの方法も旨く出来ませんでした。 どのようにすれば指定した場所に表示させることが出来るのでしょうか。 宜しくお願いします。 ====================================================================== public class I_1 extends JApplet { public void paint (Graphics g) { Image im = getImage(getDocumentBase(),"Winter.jpeg"); g.drawImage(im,0,0,400,400,this); I_1 l = new I_1(); // setLocation(300,300); l.setLocation(300,300); setVisible(true); } } ======================================================================
- ベストアンサー
- Java
- アプレットに画像が表示されません
今晩は、java初心者です、宜しくお願いします。 下のようなプログラムを書きましたが、画像がアプレットに表示されません。 画像はeclipseで同じプロジェクト(フォルダ)内に置いています。 文法上のエラーは出ておりません。 原因がわかりません宜しくお願いします。 ============================ public class Test extends Applet { MediaTracker tracker ; Image img ; public void init() { tracker = new MediaTracker( this ) ; img = getImage( getDocumentBase() , "a.jpg" ) ; tracker.addImage( img , 0 ) ; } public void start() { try { tracker.waitForAll(); } catch (InterruptedException e) { } } public void paint( ) { Graphics g2 = getGraphics(); g2.drawImage( img , 0 , 0 , 50 , 50 , this ) ; } }
- ベストアンサー
- Java
- ★Appletで画像読み込み&画像表示★
import java.awt.*; import java.applet.*; public class S1 extends Applet { Image img; public void init() { img=getImage(getCodeBase(),"sample.jpeg"); } public void paint(Graphics g){ g.drawImage(img,50,50,this); } } 以上プログラムでアプレット上に拡張子がjpeg形式のsampleという100*100の画像を表示しようとしています。 クラス名はS1で問題なくエラーもありません。 java関連のサイトでも同じようにして画像が表示できるとされていたのですが、私のパソコンではアプレット上には何も表示されないまま、アプレットのみが起動するという状態になりました。 Eclipse SDKというものを使用していますが、それが原因なのかどうかもわからず困っています。 お手数をお掛けしますが、回答の程よろしくお願いします。
- ベストアンサー
- Java
- イメージの表示に関して教えてください。
画像を表示するアプレットです。 ボタンをクリックすると、二つの画像を交互に変換して、表示するプログラムを作りたいのですが、よく出来ません。 どうすれば、画像を変換できますか?また、「この部分はこうした方がいい」という部分があれば教えてください。 どうか、よろしくお願いします。 (スペースが表示されない・・・(^^ゞ) ***********************************************ImageDemo.java********* import java.awt.*; import java.applet.*; import java.awt.event.*; //<applet code=ImageDemo.class width=470 height=623></applet> public class ImageDemo extends Applet{ View view; Image image,image2; Panel panel_left,panel_right; Button buttonChange; boolean flag; public void init(){ flag = true; image = getImage(getDocumentBase(),"nagasaku.jpg"); image2 = getImage(getDocumentBase(),"kawamura.jpg"); view = new View(image); buttonChange = new Button("Button Change"); buttonChange.addActionListener(new myActionListener()); add(view); add(buttonChange); } class myActionListener implements ActionListener{ public void actionPerformed(ActionEvent ae){ Object obj = ae.getSource(); if(obj == buttonChange){ if(flag){ view = new View(image2); flag = false; } if(!flag){ view = new View(image); flag = true; } } } } } //////////////////////////////////////////////// class View extends Canvas{ Image image; View(Image image){ this.image = image; setSize(358,623); } public void paint(Graphics g){ g.drawImage(image,0,0,358,623,this); } }
- ベストアンサー
- Java
- 画像を表示させるプログラム
こんばんわ。 現在、Javaで画像を表示させるアプレットを作っているのですが、画像が表示されません。 書いたソースは以下です。 import java.applet.Applet; import java.awt.*; /* <applet code="Panel.class" width="497" height="600"> </applet> */ public class Panel extends Applet { Image data; public void init() { data = getImage(getDocumentBase(),"2-1.gif"); } public void paint(Graphics g) { g.drawImage(data, 0, 0, data.getWidth(this), data.getHeight(this), this); } } 2-1.gifという画像ファイルを表示させたいと思っています。画像ファイルはソースファイルと同じディレクトリにあります。appletviewerで実行しているのですが画像がさっぱり表示されません。 SDKのバージョンは1.5を使っています。 お手数おかけしますが、ご教授の程よろしくおねがいします。
- ベストアンサー
- Java
- さあ、表示だ!ってあれ~?
import java.awt.*; import java.applet.*; public class S1 extends Applet { Image img; public void init() { img=getImage(getCodeBase(),"image/sample.jpeg"); } public void paint(Graphics g){ g.drawImage(img,50,50,this); g.drawString("Hello!",10, 10); } } というプログラムでアプレットビューアを呼び出すことに成功! がしかし、Hello!という文字は表示できたものの画像が処理されません。。; 他にもColorやrepaint()を用いて背景に色を設定したり、変えたりすることもできました! でも、何回やっても画像が表示されません。 原因を教えてもらうとありがたいです。 ちなみに、関係のありそうなファイル状況を説明します↓ Dドライブ━プロジェクトファイル┳imageファイル━sample.jpeg ┣srcファイル━S1.java ┗binファイル┳S1.class ┗java.policy.applet
- ベストアンサー
- Java
お礼
>getImage(getDocumentBase(),"A1.jpg") とやった結果(Imageクラスへの参 >照)を何らかの方法でフレームに渡してあげる必要があります。 私も自分の知っている限りの方法を使い、アプレットで取得した結果をフレームに 渡そうとしましたが、出来ませんでした。 内部クラスにすることによって、それが可能とは知らなかったので、フレームを 内部クラスにして、何とかフレームに画像を表示することを可能としました。 フレームを内部クラスにはしたくなかったのですが、この際やむを得ないですね。 色々ありがとうございました。