質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Java Development Kit

Java Development Kit(JDK)とは、Javaでの開発のために要するソフトウェアをまとめたパッケージです。コンパイラの「Javac」やクラスライブラリの「jar」など、Java開発者向けツールが含まれています。

JFrame

JFrameはJFC/Swingフレームワークのコンポーネントであり、トップレベルのコンテナです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

受付中

javaで正多角形の描画のプログラムをやっています。正n角形のnの部分を入力するところでつまずいています。

Biginner
Biginner

総合スコア0

Java Development Kit

Java Development Kit(JDK)とは、Javaでの開発のために要するソフトウェアをまとめたパッケージです。コンパイラの「Javac」やクラスライブラリの「jar」など、Java開発者向けツールが含まれています。

JFrame

JFrameはJFC/Swingフレームワークのコンポーネントであり、トップレベルのコンテナです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

1回答

0リアクション

1クリップ

499閲覧

投稿2022/09/14 18:33

編集2022/09/15 08:08

前提

javaで正多角形の描画のプログラムをやっています。正n角形のnの部分を入力するところでつまずいています。

実現したいこと

static Scanner stdIn = new Scanner(System.in);
System.out.println("正何角形?:");
static int n = stdIn.nextInt();
の部分で正多角形のnを入力してから、描画に移るプログラミングがしたいです。
n=9;などと置いてから実行した場合はできました。

発生している問題・エラーメッセージ

Exception in thread "main" java.lang.NoSuchMethodError: 'void DrawCanvas.<init>(int)' at Test2.main(Test1.java:29)

該当のソースコード

該当の言語

Java

import javax.swing.*; import java.awt.Color; import java.awt.Graphics; import java.util.Scanner; public class Test1 { public static void main(String[] args){ Scanner stdIn = new Scanner(System.in); int n; while (true) { System.out.println("正何角形?(3-999):"); try { n = stdIn.nextInt(); if (3 <= n && n <= 999) break; } catch (Exception ignored) { stdIn.next(); } } double a = n; double b = 180/a; double m = Math.toRadians(b); double l = a*(Math.sin(m)); System.out.println("正"+n+"角形の円周率の近似:"+l); GameWindow gw = new GameWindow("円と正多角形",1000,1000); gw.add(new DrawCanvas(n)); gw.setVisible(true); } } class DrawCanvas extends JPanel{ private int n; public DrawCanvas(int n) { this.n = n; SpinnerNumberModel model = new SpinnerNumberModel(n, 3,999, 1); JSpinner spinner = new JSpinner(model); spinner.addChangeListener(e -> { this.n = (int) spinner.getValue(); repaint(); }); add(spinner); } @Override public void paintComponent(Graphics g) { super.paintComponent(g); int x0 = 500; int y0 = 500; int r = 400; int x[] = new int[n]; int y[] = new int[n]; double delta = 2 * ( Math.PI /(double)n ); for(int i= 0; i<n; i++) { x[i] = (int)(Math.cos(-Math.PI/2.0 + delta * i)*r) + x0; y[i] = (int)(Math.sin(-Math.PI/2.0 + delta * i)*r) + y0; } g.setColor(Color.red); g.drawPolygon(x, y, n); } public void paint(Graphics g) { super.paint(g); g.setColor(Color.blue); g.drawOval(100, 100, 800, 800); } } class GameWindow extends JFrame{ public GameWindow(String title, int width, int height) { super(title); setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(width,height); setLocationRelativeTo(null); setResizable(false); } }

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/10/10 17:25

こちらの質問が複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

2022/09/14 23:59依頼された後にこの質問は修正されています

こちらの質問が他のユーザーから「プログラミングに関係のない質問」という指摘を受けました。

m.ts10806

2022/09/14 23:34

まず構文エラー直してビルドできるようになってからでないとスタートラインにすら立てないと思います
TN8001

2022/09/22 08:58

> TN8001さんの修正内容で変更したところ次のようなエラーが出ました。TN8001さんのコードでも同じエラーが出ました。 気が付いていませんでした。すいません。 回答への返答・疑問等は、回答のコメント欄にお願いします。 質問を編集したことは**回答者には通知されません** [編集した事を回答者にも通知したい | ヘルプ](https://teratail.com/help#notify-editing) 「質問への追記・修正依頼」をした人・低評価をした人には通知されます。 > Exception in thread "main" java.lang.NoSuchMethodError: 'void DrawCanvas.<init>(int)' > at Test2.main(Test1.java:29) DrawCanvasのコンストラクタ「public DrawCanvas(int n){}」が見つからないと言っています。 どういう環境でどうコンパイルしどう実行しましたか? 手元のIDE(IntelliJ IDEA)では問題なく実行できました。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Java Development Kit

Java Development Kit(JDK)とは、Javaでの開発のために要するソフトウェアをまとめたパッケージです。コンパイラの「Javac」やクラスライブラリの「jar」など、Java開発者向けツールが含まれています。

JFrame

JFrameはJFC/Swingフレームワークのコンポーネントであり、トップレベルのコンテナです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。