• 締切済み

<identifier>エラーについて

paintメソッド内ではなく、public class直下で図形の表示をしなければならないのですが、どうしても <identifier>がありません とエラーが出てしまいます; 調べてみたのですがわからなかったので指摘をお願いしますorz プログラムは以下の通りです /* <applet code="Reidai25kai.class" width=500 height=600> </applet> */ import java.applet.Applet; import java.awt.*; public class kadaiM extends Applet implements Runnable { int xichi = 100, yichi = 250, xido = 3, yido = 4; int i, mx=225, my=495; int[] bx = {100,150,200,250,300,350, 100,150,200,250,300,350, 100,150,200,250,300,350}; int[] by = {250,250,250,250,250,250, 300,300,300,300,300,300, 350,350,350,350,350,350}; g.setColor(new Color( 0, 255, 0)); g.fillRect(mx, my, mx+50, my+10); g.drawRect(0, 0, 450, 550); for(i=0; i<18; i++) { g.setColor(new Color(255,170,10*i)); g.fillOval(bx[i]-20,by[i]-20,50,50); } public void init() { Thread hyoji; hyoji = new Thread(this); hyoji.start(); } public void run() { for( ; ; ) { try { xichi = xichi + xido; //ボールx座標の更新 yichi = yichi + yido; //ボールy座標の更新 repaint(); if(xichi < 10 || xichi > 440)xido = -xido; //横方向跳ね返り if(yichi < 10 || yichi > 540)yido = -yido; //縦方向跳ね返り Thread.sleep(30); } catch(InterruptedException e){} } } public void paint(Graphics g) { g.setColor(new Color( 0, 0, 255)); g.fillOval(xichi-10, yichi-10, 20, 20); } }

  • Java
  • 回答数1
  • ありがとう数1

みんなの回答

  • Yanch
  • ベストアンサー率50% (114/225)
回答No.1

> paintメソッド内ではなく、public class直下で図形の表示をしなければならないのですが、どうしても なぜ、描画処理を、「public class直下」に書くような事が必要なのでしょう? 描画処理は、paint()メソッドに書きましょう。 AWTはイベントドリブン型の処理です。

関連するQ&A

  • JavaApplet

    Appletで 円が徐々に大きくなる。 一定の直径を超えるたびに色が変わる。 最大まで大きくなったら、縮んで色を変えながらもとの大きさに戻る。 というのを延々繰り返すものを作りました。 コードは以下です。 import java.applet.*; import java.awt.*; import java.awt.Color; public class project4 extends Applet implements Runnable{ int x; Thread th; public void start(){ th = new Thread(this); th.start(); } public void run(){ while(1==1) { for (x =0; x<=180; ++x) { repaint(); try{ Thread.sleep(100); } catch( InterruptedException e){ } } for (; x>=0; --x) { repaint(); try{ Thread.sleep(100); } catch( InterruptedException e){ } } } } public void paint (Graphics g){ if (x<=18) {g.setColor(Color.blue); } g.fillOval(150,150,20+x,20+x); if ((x >18) && (x<=36)) {g.setColor(Color.darkGray); } g.fillOval(150,150,20+x,20+x); if ((x >36) && (x<=54)) {g.setColor(Color.yellow); } g.fillOval(150,150,20+x,20+x); if ((x >54) && (x<=72)) {g.setColor(Color.green); } g.fillOval(150,150,20+x,20+x); if ((x >72) && (x<=90)) {g.setColor(Color.orange); } g.fillOval(150,150,20+x,20+x); if ((x >90) && (x<=108)) {g.setColor(Color.red); } g.fillOval(150,150,20+x,20+x); if ((x >72) && (x<=108)) {g.setColor(Color.yellow); } g.fillOval(150,150,20+x,20+x); if ((x >108) && (x<=126)) {g.setColor(Color.magenta); } g.fillOval(150,150,20+x,20+x); if ((x >126) && (x<=144)) {g.setColor(Color.orange); } g.fillOval(150,150,20+x,20+x); if ((x >144) && (x<=162)) {g.setColor(Color.cyan); } g.fillOval(150,150,20+x,20+x); if ((x >162) && (x<=180)) {g.setColor(Color.pink); } g.fillOval(150,150,20+x,20+x); } } ここに ボタンを押したら、円の動きがとまる というeventを増やしたいのですが、どうすればよいかアドバイスをいただけませんか。ボタンを使うにはActionListenerを実装しなければならないと思うのですがRunnableと共存はできますか?

    • ベストアンサー
    • Java
  • エラーも無いのにボールが動きません

     JAVA初心者です、宜しくお願いします。  今晩は、以下のようなコードを書いてやりましたが、動きません。  何故でしょう、特にエラーははいていません。  原因が分かりません、宜しくお願いします。 =============================================================== public class Ball_1 extends Applet implements Runnable { Thread thr = null; Color BGcolor; int appWidth; int appHeight; int x; int vel; public void inti() { BGcolor = Color.white; appWidth = 400; appHeight = 400; x = 30; vel = 20; } public void paint(Graphics g) { g.setColor(BGcolor); g.fillRect(0,0,appWidth,appHeight); g.setColor(Color.blue); g.fillOval(x,20,100,100); } public void start() { if(thr == null) { thr = new Thread(this); thr.start(); } } public void stop() { if(thr != null) { thr.stop(); thr = null; } } public void run() { while(true) { x = x + vel; if(x > appWidth) { x = x - appWidth; } repaint(); try { thr.sleep(50); } catch(InterruptedException e) { thr.stop(); } } } }

    • ベストアンサー
    • Java
  • PacMan

    以下のようなプログラムで自動で動くパックマンを作りました。 パックマンが転がっていくのですが、どうしても目の部分の起動がかけません。 どなたかお力を貸していただけないでしょうか? ================================================= import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.util.*; /* <applet code="PacMan2.class" width="500"height="500"> </applet> */ public class PacMan2 extends Applet implements Runnable { volatile Thread thr; volatile boolean runFlag = true; public void start() { thr = new Thread(this); runFlag = true; thr.start(); } public void stop() { runFlag = false; thr = null; } public void run() { while (runFlag) { repaint(); try { Thread.sleep(1000); //1,000 mili-seconds } catch(InterruptedException e) { runFlag = false; } } } public void paint(Graphics g) { Calendar cal = Calendar.getInstance(); int s = cal.get(Calendar.SECOND); g.setColor(new Color(128,255,255)); g.fillArc(100+s,100,60,60,45-s,300);   g.setColor(new Color(0,0,0)); g.fillOval(130,105,10,10); } } =================================================

    • ベストアンサー
    • Java
  • アプレットの配列をテキスト形式で保存する

    ある画像の上をマウスクリックするとそこに赤いマーカーが表示され、さらにそのマーカーの座標をテキスト形式で保存できるプログラムを組みたいと考えています。マーカー表示はできましたが、保存方法がまったくわかりません。35箇所のマーカー座標を保存したいのですが…。 どなたか教えていただけませんでしょうか。 ブラウザ上で動作させたいので、JavaAppletにて組んでいます。 import java.awt.*; import java.awt.event.*; import java.applet.Applet; public class sample extends Applet{ private int[] xpos = new int[35]; private int[] ypos = new int[35]; private int num = 0; Image imgs; public sample(){ addMouseListener(new MyMouseAdapter()); } public void init(){ imgs = getImage(getDocumentBase(),"sample.gif"); } public void paint(Graphics g){ g.drawImage(imgs,0,0,this); g.setColor(Color.red); for(int i = 0; i < num; i++){ g.fillOval(xpos[i]-2, ypos[i]-2, 4, 4); } } class MyMouseAdapter extends MouseAdapter { public void mouseClicked(MouseEvent e){ if(num >= 35){ return; } int x,y; x = e.getX(); y = e.getY(); xpos[num] = x; ypos[num] = y; num++; Graphics g = getGraphics(); g.setColor(Color.red); g.fillOval(x-2, y-2, 4, 4); } } }

  • Appletのrepaint()が動作しません

    import java.applet.*; import java.awt.*; /*<applet code="zxy" width="1000" height="1000"></applet>*/ class Object extends Applet { protected int x; /* オブジェクトのx座標 */ protected int y; /* オブジェクトのy座標 */ protected int width; protected int height; Image buffer; Graphics buffer_g; Dimension d = getSize(); public Object() { x = 0; y = 0; width = 0; height = 0; } } /* 楕円クラス */ class Oval extends Object implements Runnable { public Oval() { width = (int)(Math.random() * 56 + 10); height = (int)(Math.random() * 56 + 10); } public void run() { while( true ){ try{ repaint(); Thread.sleep(50); } catch( Exception e ){} } } public void paint( Graphics g ) { if( buffer_g == null ) buffer_g = buffer.getGraphics(); Dimension d = getSize(); buffer_g.setColor( Color.white ); buffer_g.fillRect( 0, 0, d.width, d.height ); buffer_g.setColor( Color.black ); buffer_g.drawOval( x, y, width, height ); x += (int)(Math.random() * 10); y += (int)(Math.random() * 10); g.drawImage( buffer, 0, 0, this ); } } public class A extends Applet { Image buffer; Graphics buffer_g; Oval ov1 = new Oval(); Thread thOv1 = new Thread( ov1 ); public void start() { thOv1.start(); Dimension d = getSize(); buffer = createImage( d.width, d.height ); } } 上記プログラムを実行しても、paint()の中が実行されずにtryブロックを繰り返すだけになってしまいます。paint()を実行するにはどうすればいいでしょうか?

  • ペイントソフトでキャンバス内にだけにかけるようにしたいです。

    どうしたらいいのかわからいので、何かヒントでiいので教えてください。 import java.applet.*; import java.awt.*; import java.awt.event.*; /* <APPLET CODE ="Mous" WIDTH = 500 HEIGHT = 300> </APPLET> */ public class Mous extends Applet { Graphics g; int point_x, point_y; Button color_black,color_red,color_blue,clear; public void init() { g = getGraphics(); setLayout(null); addMouseListener(new MouseAdapter () { public void mousePressed(MouseEvent e){ point_x = e.getX(); point_y = e.getY(); } }); addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { g.drawLine(point_x,point_y,e.getX(),e.getY()); point_x = e.getX(); point_y = e.getY(); } }); color_black = new Button("黒"); color_black.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { g.setColor(Color.black); } }); color_red = new Button("赤"); color_red.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { g.setColor(Color.red); } }); color_blue = new Button("青"); color_blue.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { g.setColor(Color.blue); } }); clear = new Button("クリアー"); clear.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { g.clearRect(0,0,500,300); } }); add(color_black); add(color_red); add(color_blue); add(clear); } }

  • javaのエラーの意味がわかりません、お願いします

    今日は、javaを勉強している初心者です。 以下のコードを書いてやりましたが、「sleep(Graphics)は引数()に適用できません」、「Color.Whiteを解決できません」とエラーがでます、エラーの意味が分かりません。 一体何処が間違っているのでしょうか、宜しくお願いします。 ===================================================================== public class ani_Moving_Ball extends Applet { int x; public void paint(Graphics g) { for(x=0 ; x<180 ; ++x) { clear(g); g.drawOval(x,90,19,19); sleep(); } } public void clear(Graphics g) { g.setColor(Color.White); g.fillRect(0,80,200,40); g.setColor(Color.Black); } public void sleep(Graphics g) { double s=0.0; for (int j=1 ; j<100 ; ++j) { for (int k=1 ; k<100 ; ++k) { s =+ Math.sin((double)j); } } } }

    • ベストアンサー
    • Java
  • 色が変わる文字について

    javaの初心者です。 環境OSWindows2000 使用ソフトjavaBuilder5です。 今回入門書を見ながら作ったのですが、 (写したが正しいかな?) 実行すると文字の後ろの色がグレーになります。 これを変更する方法を教えてください 黒とか赤とかに変更したいのです。 ーーーソースーーー import java.applet.Applet; import java.awt.*; import java.lang.*; public class TopTitle extends Applet implements Runnable{ Thread th=null; String msg="",cen="",def="",aft=""; int no,width,wait; public void init(){ msg=getParameter("MESSAGE"); msg=" "+msg+" "; no=msg.length(); wait=Integer.parseInt(getParameter("WAIT")); } public void update(Graphics g){ paint(g); } public void paint(Graphics g){ Font f=new Font("TimesRoman",Font.BOLD,48); FontMetrics fm=getFontMetrics(f); g.setFont(f); int width=fm.stringWidth(def); g.setColor(new Color(0,0,255)); g.drawString(msg,0,48); g.setColor(new Color(125,125,125)); g.drawString(cen,width,48); } public void start(){ if (th==null){ th=new Thread(this); th.start(); } } public void run(){ int i; while (true){ try{ for(i=0;i<no-1;i++){ def=msg.substring(0,i); cen=msg.substring(i,i+1); th.sleep(1000); repaint(); } th.sleep(wait); } catch(InterruptedException e){} } } public void stop(){ if(th!=null){ th.stop(); th=null; } } }

    • ベストアンサー
    • Java
  • 画面のちらつきの原因が知りたいです

    JAVAの初心者です、宜しくお願いします。 下のようなプログラムを書きました。 「public void paint(Graphics g){ ~ repaint();」とすると、画像がちらつきます、しかし、「repaint();」を消すとちらつかなくなります、この原因が分かりません。 一体何故このような現象が起こるのでしょうか、宜しくお願いします。 ========================================================== import java.applet.Applet; import java.awt.Button; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; public class Oval_Rec_1_071128 extends Applet implements MouseListener , ActionListener { int x1 ; int y1 ; int xh = 50 ; int yv = 50 ; Button bt1 ; Button bt2 ; public void actionPerformed(ActionEvent ae){} public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void init() { setBackground(Color.yellow); addMouseListener(this); bt1 = new Button("push"); bt1.setFont(new Font("SansSerif", Font.BOLD, 20)); bt1.setBackground(Color.black); bt1.setForeground(Color.lightGray); add(bt1); bt1.addActionListener(this); bt2 = new Button("change_circle"); add(bt2); bt2.addActionListener(this); } public void mousePressed(MouseEvent e) { x1 = e.getX(); y1 = e.getY(); xh = e.getX(); yv = e.getY(); // repaint(); //comment out } public void paint(Graphics g) { g.setColor(Color.red); g.setFont(new Font("Serif",Font.BOLD,24)); g.drawString("Hello Applet World ! !" , 50 , 50); g.setColor(Color.blue); g.drawLine( 100 , 100 , 500 , 500); g.setColor(Color.cyan); g.fillOval( x1 , y1 , xh , yv); g.setColor(Color.magenta); g.fillRect( xh , yv, x1/10 , y1/10 ); repaint(); } }

    • ベストアンサー
    • Java
  • javaの円グラフがうまくいきません。

    import java.applet.Applet; import java.awt.*; public class graph extends Applet{ public void paint(Graphics g){ int pa[] = new int[5]; int i,count; pa[0]=-72; pa[1]=-72; pa[2]=-72; pa[3]=-72; pa[4]=-72; count=5; int k=0; if(pa[k]<0){ pa[k]=0; } int t,sum=0; for(t=0;t<count;t++){ sum=sum+pa[t]; } int u,s=0; for(i=0;i<5;i++){ for(u=0;u<i;u++){ s=s+360*pa[i-1]/sum; // } g.setColor(new Color(200,50,200)); g.fillArc(100, 100, 300, 300, 90+s,pa[i]/sum*360); } } } 実行しても真っ白のままなにも描かれていません。 count=1にしてpa[0]の部分だけを描こうとしても無理でした。 直接-72と入れるとちゃんと描かれていました。 どうしてでしょうか?

    • ベストアンサー
    • Java

専門家に質問してみよう