• ベストアンサー

javaについて

javaでプログラムを書くときにMediaTracker mt = new MediaTracker(this);とToolkit tk = Toolkit.getDefaultToolkit();の記述は書かなければならない決まりのようなものなのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • rara_sun
  • ベストアンサー率50% (271/539)
回答No.1

どちらもインスタンス生成に必要なコードです。 だから、決りと思ってくださっても良いです。 もし少しでも理解したいと思うなら、 それぞれのメソッドや”インスタンス”と組み合わせてインターネット検索すると沢山発見できます。

mos21
質問者

お礼

回答ありがとうございます。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • liar_adan
  • ベストアンサー率48% (730/1515)
回答No.2

MediaTrackerはイメージファイル(JPG等)の読み込みに使うもの。 Toolkitもイメージ関係に使うもので、 イメージを取り扱わないプログラムでは不要です。

mos21
質問者

お礼

ありがとうございましたー。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • なぜエラーになるのかがわかりません?(長文です。)

    下記のクラス(Panel_Middle)内でパネル(pnlFd)を作成してます。しかし、メインフォームからこのクラスの"CreateMainPanel"関数を呼ぶと "pnlFd.setBounds(new Rectangle(5, 5, 110, 38));" の後に"java.lang.NullPointerException "とエラーが出ます。色々考えたのですが、理由がわかりません。 public class Panel_Middle extends Panel{ Panel_Main pnlFd = new Panel_Main("A.gif","B.gif"); Image im; //CONSTRUCT public Panel_Middle(String img) { im = Toolkit.getDefaultToolkit().getImage(img); //MediaTracker画像入力監視 MediaTracker mt = new MediaTracker(this); mt.addImage(im, 0); try { mt.waitForID(0); } catch (InterruptedException e) { } } //Print public void paint(Graphics g) { if (g.drawImage(im, 0, 0, this) != true) { System.out.println("ng"); } } public void CreateMainPanel(){   this.add(pnlFd, null); pnlFd.setBounds(new Rectangle(5, 5, 110, 38)); pnlFd.setImageInit(); } }

    • ベストアンサー
    • Java
  • 作ったクラスにイベントを追加するには?

    パネルを継承したクラスを作りました(パネルA)。 そのパネルAをメインフレームに作成しました。 作ったパネルAの上にサブパネルBを作りました。 サブパネルのイベントを書きたいのですがコードは作ったクラス内に書けないのでしょうか? 例)下記が作ったパネル継承クラスです。この中でpnlSubを作っているのです。で、このpnlSubのクリックイベントを書きたいのですが、どのようにイベントを用意すればよいのでしょう? package ### import java.awt.*; public class PanelA extends Panel{ Image im; Panel pnlSub = new Panel(); //CONSTRUCT public PanelA(String img) { im = Toolkit.getDefaultToolkit().getImage(img); //MediaTracker画像入力監視 MediaTracker mt = new MediaTracker(this); mt.addImage(im, 0); try { mt.waitForID(0); } catch (InterruptedException e) { } //パネル(pnlVolume)設定 this.add(pnlVolume, null); pnlSub.setBackground(Color.red); pnlSub.setBounds(new Rectangle(5, 8, 108, 5)); } //Print public void paint(Graphics g) { if (g.drawImage(im, 0, 0, this) != true) { System.out.println("ng"); } } }

    • ベストアンサー
    • Java
  • javaの配列について。

    javaのプログラミングについてなのですが、配列を利用して、 画像イメージ zu0.jpg,zu1.jpg,zu2,jpgをウィンドウズアプリケーションで 3つ縦に並べて表示させ、ページ上部にタイトルを入れろという課題が出たのですが、 なかなかうまいきません。原因がわからないので質問させていただきます。 どうかお力添えお願いいたします。 ↓↓プログラム文↓↓ import java.awt.*; class PictF extends Frame{ Font f; Image im; PictF(){ setBackground(new Color(200,255,255)); f=new Font("Dialog",Font.ITALIC,36); Image[] im=new Image[3]; for(int i=0;i<im.length;i++) im[i]=Toolkit.getDefaultToolkit().getImage("zu"+i+".jpg"); setTitle("image"); setSize(400,700); } public void paint(Graphics g){ Image[] im=new Image[3]; for(int i=0;i<im.length;i++) g.drawImage(im[0],10,10,this); g.drawImage(im[1],10,100,this); g.drawImage(im[2],10,210,this); g.setFont(f); g.setColor(Color.blue); g.drawString("Ikeda Auditorium",100,240); } public static void main(String[] args){ PictF pf=new PictF(); pf.setVisible(true); } }

    • ベストアンサー
    • Java
  • jarファイルの起動方法

    クラスファイルと画像をjarファイルに固めてクリックで起動したいのですができません。正確に言うと、最初の2~3回はできていたのですが、何回かプログラムを修正せいているうちにjarに固めてクリックしても起動しなくなりました。  マニフェストファイルは、 Main-Class: MainWindow(この後改行) です。 jarファイルへの固め方は、testフォルダにclassファイルと画像ファイルがあるものとして、 cd C:\test C:\j2sdk1.4.2_05\bin\jar cf kakei.jar *.class *.PNG C:\j2sdk1.4.2_05\bin\jar ufm kakei.jar manifest.txt です。 プログラム内の画像のロード方法は、 MediaTracker tracker=null; Image images=null; try{ tracker=new MediaTracker(this);//画像の取り込み tk=Toolkit.getDefaultToolkit(); URL img=getClass().getResource("img1.PNG"); images=tk.createImage(img); tracker.addImage(images,0,93,28); } catch(Excetption e){} 最初の2~3回はこの方法できちんと実行できました。また、ほかのアプリケーションもこの方法でやっていましたがうまくいきます。画面にまったく表示されませんが実行後にjarファイルを削除できないので おそらく実行はされているのだと思います。 どうぞよろしくお願いいたします。

    • ベストアンサー
    • Java
  • 画像がうまく表示されません

    下のプログラムを実行すると、 最初の読みこみはうまくいくのですが、(一部出なくなる画像がありますが…) Internet Explorerの更新ボタンを押した時、 (1)の部分で止まってしまうようで、画像が表示されなくなります。 (ローカルドライブで実行した場合はうまく表示できるのですが、ネットワークで実行した場合にこのようになってしまいます) import java.applet.Applet; import java.awt.*; public class met extends Applet{ Image img[] = new Image[6]; MediaTracker mt; public void init(){ mt = new MediaTracker(this); for(int i = 0;i < 6;i++){ img[i] = getImage(getCodeBase(),i+".gif"); mt.addImage(img[i],0); } try{ mt.waitForID(0); }catch(InterruptedException e){} } public void paint(Graphics g){ // (1) if(!mt.checkID(0)){ g.clearRect(0,0,500,500); g.drawString("読み込み中",200,240); return; } g.setColor(Color.white); g.fillRect(0,0,500,500); for(int i = 0;i < 6;i++){ g.drawImage(img[i],i*50,0,this); } } }

    • ベストアンサー
    • Java
  • java.lang.OutOfMemoryErrorというエラーがでる。

    javaを勉強しています。タイトルのように java.lang.OutOfMemoryErrorというエラーが出てしまいます。少し調べてみたらどうやらメモリーの使いすぎ(?)のようなのですが、プログラムの方に問題があるのでしょうか?それとも使えるメモリーを増やすといった解決策を取ったほうがいいのでしょうか? よろしくお願いします。プログラムはまず画像が表示されて、左クリックすると次の画像へ変わる、といった処理をするアプレットです。 package jibundesukosidutu; import java.applet.Applet; import java.awt.Graphics; import java.awt.MediaTracker; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class Main extends Applet implements MouseListener{ File[] imagelist; File image = new File("image"); BufferedImage drawImage; static int i = 0; MediaTracker mt = new MediaTracker(this); public void init(){ imagelist = image.listFiles();//ディレクトリの画像ファイルたちを配列に入れていく。 addMouseListener(this); try { drawImage = ImageIO.read(imagelist[i]);//drawImageメソッドで画像ファイルとして引数を取れるように、型変換しておく。 } catch (IOException e) { e.printStackTrace(); } } public void paint(Graphics g){//drawImageファイルを表示するだけ int w, h; w = getSize().width; h = getSize().height; mt.addImage(drawImage,0); try { mt.waitForID(0); } catch (InterruptedException e) { e.printStackTrace(); } g.drawImage(drawImage,0,0,w,h,this);//imagelist[0]を表示したい。 } public void mouseClicked(MouseEvent e) { int btn = e.getButton(); if(btn == MouseEvent.BUTTON1){//左クリック=進め System.out.println("左クリック"); i++; //searchFile(true); try { drawImage = ImageIO.read(imagelist[i]); } catch (IOException e1) { e1.printStackTrace(); } repaint(); }else if(btn == MouseEvent.BUTTON2){ System.out.println("右クリック"); //searchFile(false); } } public void searchFile(boolean next){ //next→次の画像、false→前の画像 } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } public void mousePressed(MouseEvent e) { } public void mouseReleased(MouseEvent e) { } }

    • ベストアンサー
    • Java
  • Image を90度回転して、新しいImageを作成するには?

    Image データがあったとして、それを90度回転させた別のImageを作成したいのですが、すごく時間がかかります。 もっといいやり方があると思うのですが、ネットで調べても方法が見つかりませんでした。 今採用しているのは下記のようなやり方です。 もっと短時間でImage作成できる、良い方法をご教授頂けないでしょうか? PixelGrabber pg_f = new PixelGrabber(oldimg, 0, 0, oldw, oldh, old_pixel, 0, oldw); try{ pg_f.grabPixels(); } catch (InterruptedException e){ return null; } int trans = ~0x00000000; for (int x = 0; x < oldw; x++) { for (int y = 0; y < oldh; y++) { new_pixel[y + (newh - x - 1) * neww] = old_pixel[x + oldw * y] & trans; } } Image new_img = Toolkit.getDefaultToolkit().createImage(new MemoryImageSource(neww, newh, new_pixel, 0, neww)); MediaTracker mediaTracker = new MediaTracker(frame); mediaTracker.addImage(new_img, 0); try { mediaTracker.waitForID(0); } catch (InterruptedException ie) { System.err.println(ie); System.exit(1); }

  • 画像処理についておしえてください!

    ここに新たに表示した画像を消去するボタンを 追加したいので教えてください! import java.awt.*; import java.awt.event.*; import java.io.*; import java.applet.Applet; public class k202 extends Frame implements ActionListener { MyCanvas c1; Button b1; Button e1; Image img; Button btnClear; int flag; public k202() { super(); setTitle("Hello"); setSize(500,500); setLayout(null); c1 = new MyCanvas(); c1.setBounds(25,25,250,150); this.add(c1); b1 = new Button("Read"); b1.setBounds(25,200,100,25); b1.addActionListener(this); this.add(b1); e1 = new Button("Clear"); e1.setBounds(50,250,150,50); //ボタンのイベント処理メソッドを定義 e1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e){ flag = 0; repaint(); } }); } public static void main (String args []) { new k202().show(); } public void actionPerformed(ActionEvent ev) { if (ev.getSource() == b1) { this.readImageFromFile(); } } void readImageFromFile() { try { FileDialog fd = new FileDialog(this,"Select Image File.",FileDialog.LOAD); fd.setVisible(true); String fname = fd.getDirectory() + fd.getFile(); Toolkit tk = Toolkit.getDefaultToolkit(); img = tk.getImage(fname); c1.repaint(); } catch(Exception e) { System.out.println(e); } } class MyCanvas extends Canvas { public void paint(Graphics g) { if (img != null) { g.drawImage(img,0,0,this); } } } }

  • JAVAの初歩でとても悩んでます・・

    JAVAについての質問があります。とても困ってます・・。初心者の自分にもわかるようそれぞれの番号に対しての説明をしていただけると嬉しいです。 ちょっと長いのですが、例文があったのでそれを書いておきます。 (1)「メディアストラッカー」 (2)「スレッド」 (3)「インプリメント」 (4)myMt.waitForID(0) (5)myMT.checkID(0) (6)myTh = null; import java.applet.*; import java.awt.*; public class Lesson19 extends Applet implements Runnable{ Image[] myImg; int myNo; MediaTracker myMt; //メディアトラッカーオブジェクト Thread myTh; //スレッド public void init() { int count; myImg = new Image[3]; myNo = 0; myMt = new MediaTracker(this); myTh = null; for (count = 0; count < 3; count++) { myImg[count] = getImage(getDocumentBase(), "image" + count + ".gif"); myMt.addImage(myImg[count], 0); } } public void start(){ if (myTh == null) { myTh= new Thread(this); myTh.start(); } } public void run() { try { myMt.waitForID(0); } catch(InterruptedException e) {} while (true) { myNo = myNo + 1; if (myNo== 3) myNo = 0; try { myTh.sleep(1000); } catch(InterruptedException e) {} repaint(); } } public void paint(Graphics g) { if (myMt.checkID(0)) g.drawImage(myImg[myNo], 80, 80, this); g.drawString("image" + myNo, 75, 50); } }

    • ベストアンサー
    • Java
  • パネルの絵の差し替え方法

    JBuilderでJavaの開発を勉強しています。 パネルがクリックされるたびに、パネルに張られている絵を差し替えたいのですが最初の2回のクリックではパネルの絵が消えてしまい3回目からのクリックでは問題なく絵は切り替わります。下記のロジックで問題があるのでしょうか? メインフレームのパネルクリックイベントから"public void ChangeImage(int num)"関数を呼びます。 ************************************************* public class New_Panel extends Panel { Image img; Image im_off; Image im_on; //CONSTRUCT public Panel_FD() { im_off = Toolkit.getDefaultToolkit().getImage("OFF.jpg"); im_on = Toolkit.getDefaultToolkit().getImage("ON.jpg");   //初期イメージ img = Toolkit.getDefaultToolkit().getImage("ON.jpg"); } public void paint(Graphics g){ g.drawImage(img, 0, 0, this); } //イメージ変更 public void ChangeImage(int num){ Graphics g; img.flush(); img = this.createImage(100, 40); if (sw == 0) { g = img.getGraphics(); g.drawImage(im_off, 0, 0, this); } else { g = img.getGraphics(); g.drawImage(im_on, 0, 0, this); } //再描画 repaint(); } } *************************************************

    • ベストアンサー
    • Java