2011-01-03 5 views
2
import javax.swing.*; // For JPanel, etc. 
import java.awt.*;   // For Graphics, etc. 
import java.awt.geom.*;  // For Ellipse2D, etc. 
import java.awt.event.*; 


public class ShapeExample extends JPanel { 
    private Rectangle2D.Double square = 
    new Rectangle2D.Double(50, 50, 100, 100); 
    private Rectangle2D.Double square1 = 
    new Rectangle2D.Double(10, 10, 200, 200); 

    public void paintComponent(Graphics g) { 
    clear(g); 
    Graphics2D g2d = (Graphics2D)g; 
    g2d.fill(square); 
    g2d.draw(square1); 
    } 
g.add(b = new Button("Bonjour"), BorderLayout.NORTH); 
    b.setActionCommand("Good Morning"); 
    b.addActionListener(a); 
    g.add(b = new Button("Good Day"), BorderLayout.CENTER); 
    b.addActionListener(a); 
    g.add(b = new Button("Aurevoir"), BorderLayout.SOUTH); 
    b.setActionCommand("Exit"); 
    b.addActionListener(a); 
    g.pack(); 
    g.show(); 
} 
    // super.paintComponent clears offscreen pixmap, 
    // since we're using double buffering by default. 

    protected void clear(Graphics g) { 
    super.paintComponent(g); 
    } 

    protected Rectangle2D.Double getsquare() { 
    return(square); 
    } 

    public static void main(String[] args) { 
    WindowUtilities.openInJFrame(new ShapeExample(), 100, 100); 
    Button b; 

    } 
} 

このコードをデバッグするにはどうすればよいですか?このJavaコードをデバッグする方法は?このコードのエラーは何ですか?

私が手にエラーがこれをデバッグする方法この

ShapeExample.java:19: <identifier> expected 
g.add(b = new Button("Bonjour"), BorderLayout.NORTH); 
    ^
ShapeExample.java:19: <identifier> expected 
g.add(b = new Button("Bonjour"), BorderLayout.NORTH); 
     ^
ShapeExample.java:19: ';' expected 
g.add(b = new Button("Bonjour"), BorderLayout.NORTH); 
     ^
ShapeExample.java:19: invalid method declaration; return type required 
g.add(b = new Button("Bonjour"), BorderLayout.NORTH); 
      ^
ShapeExample.java:19: illegal start of type 
g.add(b = new Button("Bonjour"), BorderLayout.NORTH); 
        ^
ShapeExample.java:19: ';' expected 
g.add(b = new Button("Bonjour"), BorderLayout.NORTH); 
           ^
ShapeExample.java:20: <identifier> expected 
    b.setActionCommand("Good Morning"); 
        ^
ShapeExample.java:20: illegal start of type 
    b.setActionCommand("Good Morning"); 
        ^
ShapeExample.java:21: <identifier> expected 
    b.addActionListener(a); 
        ^
ShapeExample.java:21: <identifier> expected 
    b.addActionListener(a); 
         ^
ShapeExample.java:22: <identifier> expected 
    g.add(b = new Button("Good Day"), BorderLayout.CENTER); 
     ^
ShapeExample.java:22: <identifier> expected 
    g.add(b = new Button("Good Day"), BorderLayout.CENTER); 
     ^
ShapeExample.java:22: ';' expected 
    g.add(b = new Button("Good Day"), BorderLayout.CENTER); 
      ^
ShapeExample.java:22: invalid method declaration; return type required 
    g.add(b = new Button("Good Day"), BorderLayout.CENTER); 
       ^
ShapeExample.java:22: illegal start of type 
    g.add(b = new Button("Good Day"), BorderLayout.CENTER); 
         ^
ShapeExample.java:22: ';' expected 
    g.add(b = new Button("Good Day"), BorderLayout.CENTER); 
            ^
ShapeExample.java:23: <identifier> expected 
    b.addActionListener(a); 
        ^
ShapeExample.java:23: <identifier> expected 
    b.addActionListener(a); 
         ^
ShapeExample.java:24: <identifier> expected 
    g.add(b = new Button("Aurevoir"), BorderLayout.SOUTH); 
     ^
ShapeExample.java:24: <identifier> expected 
    g.add(b = new Button("Aurevoir"), BorderLayout.SOUTH); 
     ^
ShapeExample.java:24: ';' expected 
    g.add(b = new Button("Aurevoir"), BorderLayout.SOUTH); 
      ^
ShapeExample.java:24: invalid method declaration; return type required 
    g.add(b = new Button("Aurevoir"), BorderLayout.SOUTH); 
       ^
ShapeExample.java:24: illegal start of type 
    g.add(b = new Button("Aurevoir"), BorderLayout.SOUTH); 
         ^
ShapeExample.java:24: ';' expected 
    g.add(b = new Button("Aurevoir"), BorderLayout.SOUTH); 
            ^
ShapeExample.java:25: <identifier> expected 
    b.setActionCommand("Exit"); 
        ^
ShapeExample.java:25: illegal start of type 
    b.setActionCommand("Exit"); 
        ^
ShapeExample.java:26: <identifier> expected 
    b.addActionListener(a); 
        ^
ShapeExample.java:26: <identifier> expected 
    b.addActionListener(a); 
         ^
ShapeExample.java:27: <identifier> expected 
    g.pack(); 
     ^
ShapeExample.java:28: <identifier> expected 
    g.show(); 
     ^
ShapeExample.java:33: class, interface, or enum expected 
    protected void clear(Graphics g) { 
      ^
ShapeExample.java:35: class, interface, or enum expected 
    } 
^
ShapeExample.java:39: class, interface, or enum expected 
    } 
^
ShapeExample.java:41: class, interface, or enum expected 
    public static void main(String[] args) { 
       ^
ShapeExample.java:43: class, interface, or enum expected 
    Button b; 
    ^
ShapeExample.java:45: class, interface, or enum expected 
    } 

のですか?

+0

「ボタンb」は有効範囲にありません – Nishant

+0

Javaの場合、命令が定数を定義していない場合、メソッドの内部に存在する必要があります。そうでないと、Rubyのように解釈できません(たとえRubyであっても当てはまりませんが)どこでも何かを行うことができます。いくつかのエラーがありますが、そのうちのコンパイラはいくつか簡単に列挙しています。私はあなたのコードを、おそらく概念的には紙の上で、目標を達成するための明確な方法のグループに再編成しようとすることを検討するかもしれません。 –

+2

私はあなたがIDEを使用し、そのコードの書式設定を使用することをお勧めします、このエラーは本当に明白で簡単に修正することができます。 –

答えて

4

あなたのコードの中にランダムにコードがあります。クラス内のすべての非宣言コードは、ある種のメソッド内になければなりません。 paintComponentメソッドに入るコードを意味しますか?私も代わりに、ここで地元のButtonのインスタンスを使用していていることも

public void paintComponent(Graphics g) { 
    clear(g); 
    Graphics2D g2d = (Graphics2D)g; 
    g2d.fill(square); 
    g2d.draw(square1); 
    Button bonjourButton = new Button("Bonjour"); 
    g.add(bonjourButton, BorderLayout.NORTH); 
    b.setActionCommand("Good Morning"); 
    b.addActionListener(a); 
    Button goodDayButton = new Button("Good Day"); 
    g.add(goodDayButton, BorderLayout.CENTER); 
    b.addActionListener(a); 
    Button aurevoirButton = new Button("Aurevoir"); 
    g.add(aurevoirButton, BorderLayout.SOUTH); 
    b.setActionCommand("Exit"); 
    b.addActionListener(a); 
    g.pack(); 
    g.show(); 
} 

ノート:もしそうなら、あなたは方法に余分な}

の変更を持っています。

編集:そしてまた、あなたは、この機能の範囲ではるかに少ないコードでaどこでもという名前のものは、ありませんとアクションリスナーaを定義する必要があります。

+0

が正しく、6行目に余分なものがあります – buc

+0

私は必要な変更をすべて行いました。そして、エラーはまだ残っています。 – Hick

+0

全く同じエラーの場合は、変更を不適切に行ったか、元のコードを正しくまたは何かに貼り付けていないかのいずれかです。いくつかのコメント作成者のアドバイスを参考にして、適切なIDEを使用してください。 –

0

主な間違いはここにある:どちらか

g.add(b = new Button("Aurevoir"), BorderLayout.SOUTH); 

あなたが使用する必要があります。

g.add(new Button("Aurevoir"), BorderLayout.SOUTH); 

たりremaingコードに確認を:

Button b = new Button("Aurevoir") 
g.add(b, BorderLayout.SOUTH); 

これは多分、他を解決しますマークされたエラー

+0

主な間違いは、 'paintComponent'メソッドの外部の'} 'ですが、スコープ外の' Button'は一度修正すればコンパイルエラーを引き起こします。 –

関連する問題