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

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

ただいまの
回答率

87.35%

○○○○(String title){ の宣言をできるようにしたい。

解決済

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 624

score 87

前提・実現したいこと

今javaプログラミングの練習中で電卓を試しに作ってみているのですが、javadriveを参考にしてボタンを押すとその数字が入力されるプログラムを作っていました。しかし、なぜかエラーが消えないので質問してみました。

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

denpart0201.java:44: エラー: シンボルを見つけられません
                den01.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                     ^
  シンボル:   メソッド setDefaultCloseOperation(int)
  場所: タイプdenpart0201の変数 den01
denpart0201.java:45: エラー: シンボルを見つけられません
                den01.setVisible(true);
                     ^
  シンボル:   メソッド setVisible(boolean)
  場所: タイプdenpart0201の変数 den01
エラー2個

該当のソースコード

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JTextField;
import javax.swing.border.LineBorder;

import java.awt.Font;
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.awt.Container;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Dimension;
import java.awt.event.*;
import java.awt.event.KeyEvent;

import java.io.File;

import javax.imageio.ImageIO;

public class denpart0201
{

    static int x = 1234567890;

    public static void main( String[] args )                    //メイン文
    {
        denpart0201 den01 = new denpart0201("電卓");
        den01.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        den01.setVisible(true);

    }

    denpart0201(String title){
        JFrame frame01 = new JFrame("電卓");                        //フレームの処理名称宣言
        frame01.setBounds(100, 100, 400, 600);                        //フレームの座標、サイズを指定
        frame01.getContentPane().setBackground( Color.WHITE );        //フレームの色を指定


        JPanel panel01 = new JPanel();

        LineBorder border01 = new LineBorder(Color.BLACK, 2, true);    //ボーダーラインを作成
        panel01.setBorder(border01);                            //ボーダーラインを表示
        frame01.setLayout(new FlowLayout());                    //レイアウトを選択
        panel01.setPreferredSize(new Dimension(250, 350));        //パネルのサイズを指定
        panel01.setBackground( new Color(200,255,255) );            //パネルの色を指定
        JButton button01 = new JButton("1");        //ボタンを作成
        JButton button02 = new JButton("2");        //ボタンを作成
        JButton button03 = new JButton("3");        //ボタンを作成
        JButton button0pu = new JButton("+");        //ボタンを作成
        JButton button04 = new JButton("4");        //ボタンを作成
        JButton button05 = new JButton("5");        //ボタンを作成
        JButton button06 = new JButton("6");        //ボタンを作成
        JButton button0ma = new JButton("ー");        //ボタンを作成
        JButton button07 = new JButton("7");        //ボタンを作成
        JButton button08 = new JButton("8");        //ボタンを作成
        JButton button09 = new JButton("9");        //ボタンを作成
        JButton button0ka = new JButton("X");        //ボタンを作成
        JButton button0ze = new JButton("0");        //ボタンを作成
        JButton button0zero = new JButton("00");        //ボタンを作成
        JButton button0wa = new JButton("÷");        //ボタンを作成
        JButton button0ce = new JButton("ce");        //ボタンを作成
        JButton button0iko = new JButton("=");        //ボタンを作成
        JButton button0back = new JButton("bs");        //ボタンを作成

        button01.setPreferredSize(new Dimension(50, 50));        //ボタンのサイズを指定
        button02.setPreferredSize(new Dimension(50, 50));        //ボタンのサイズを指定
        button03.setPreferredSize(new Dimension(50, 50));        //ボタンのサイズを指定
        button0pu.setPreferredSize(new Dimension(50, 50));        //ボタンのサイズを指定
        button04.setPreferredSize(new Dimension(50, 50));        //ボタンのサイズを指定
        button05.setPreferredSize(new Dimension(50, 50));        //ボタンのサイズを指定
        button06.setPreferredSize(new Dimension(50, 50));        //ボタンのサイズを指定
        button0ma.setPreferredSize(new Dimension(50, 50));        //ボタンのサイズを指定
        button07.setPreferredSize(new Dimension(50, 50));        //ボタンのサイズを指定
        button08.setPreferredSize(new Dimension(50, 50));        //ボタンのサイズを指定
        button09.setPreferredSize(new Dimension(50, 50));        //ボタンのサイズを指定
        button0ka.setPreferredSize(new Dimension(50, 50));        //ボタンのサイズを指定
        button0ze.setPreferredSize(new Dimension(50, 50));        //ボタンのサイズを指定
        button0zero.setPreferredSize(new Dimension(105, 50));        //ボタンのサイズを指定
        button0wa.setPreferredSize(new Dimension(50, 50));        //ボタンのサイズを指定
        button0ce.setPreferredSize(new Dimension(50, 50));        //ボタンのサイズを指定
        button0iko.setPreferredSize(new Dimension(105, 50));        //ボタンのサイズを指定
        button0back.setPreferredSize(new Dimension(50, 50));        //ボタンのサイズを指定



        frame01.getRootPane().setDefaultButton(button0iko);        //Enterを押すと[button0iko]を起動        //0はゼロ


        JPanel panel201 = new JPanel();
        panel201.setBorder(border01);                            //ボーダーラインを表示
        panel201.setPreferredSize(new Dimension(215, 50));        //パネルのサイズを指定
        panel201.setBackground( Color.WHITE );                    //パネルの色を指定


        button01.setMnemonic(KeyEvent.VK_1);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動
        button02.setMnemonic(KeyEvent.VK_2);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動
        button03.setMnemonic(KeyEvent.VK_3);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動
        button04.setMnemonic(KeyEvent.VK_4);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動
        button05.setMnemonic(KeyEvent.VK_5);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動
        button06.setMnemonic(KeyEvent.VK_6);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動
        button07.setMnemonic(KeyEvent.VK_7);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動
        button08.setMnemonic(KeyEvent.VK_8);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動
        button09.setMnemonic(KeyEvent.VK_9);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動
        button0ze.setMnemonic(KeyEvent.VK_0);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動
        button0zero.setMnemonic(KeyEvent.VK_Z);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動
        button0pu.setMnemonic(KeyEvent.VK_Q);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動
        button0ma.setMnemonic(KeyEvent.VK_W);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動
        button0ka.setMnemonic(KeyEvent.VK_E);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動
        button0wa.setMnemonic(KeyEvent.VK_R);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動
        button0back.setMnemonic(KeyEvent.VK_A);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動
        button0ce.setMnemonic(KeyEvent.VK_S);                    //VKをALTキーとする そして_の後にあるキーを押されると[button]が起動


        Container con = frame01.getContentPane();                //パネルを関数に変換(多分)
        con.add(panel01);                                        //パネルをフレームに表示

        panel01.add(panel201);                                    //パネルの中にパネルを表示

        panel01.add(button01);                                    //ボタンを表示
        panel01.add(button02);                                    //ボタンを表示
        panel01.add(button03);                                    //ボタンを表示
        panel01.add(button0pu);                                    //ボタンを表示
        panel01.add(button04);                                    //ボタンを表示
        panel01.add(button05);                                    //ボタンを表示
        panel01.add(button06);                                    //ボタンを表示
        panel01.add(button0ma);                                    //ボタンを表示
        panel01.add(button07);                                    //ボタンを表示
        panel01.add(button08);                                    //ボタンを表示
        panel01.add(button09);                                    //ボタンを表示
        panel01.add(button0ka);                                    //ボタンを表示
        panel01.add(button0ze);                                    //ボタンを表示
        panel01.add(button0zero);                                    //ボタンを表示
        panel01.add(button0wa);                                    //ボタンを表示
        panel01.add(button0ce);                                    //ボタンを表示
        panel01.add(button0iko);                                    //ボタンを表示
        panel01.add(button0back);                                    //ボタンを表示

        JLabel label01 = new JLabel("" + x );                        //ラベルを作成
        panel201.add(label01);                                        //パネルをフレームに表示

        frame01.setVisible(true);                                //フレームを表示
        frame01.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);    //フレームを閉じれば終了
    }

    static void put( String str )
    {
        System.out.println( str );
    }
}

試したこと

コントラクトをクラスに使用しているdenpart0201にした。(編集済み)

補足情報(FW/ツールのバージョンなど)

java  jdk-14.0.2

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

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

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • dodox86

    2020/08/03 15:53 編集

    なぜ分からないのか不思議です。他のメソッドではできていますね。他のメソッドはコピペでしょうか。メソッドの作り方は基本なので、「Java メソッドの作り方」などで検索してみてください。

    キャンセル

回答 2

checkベストアンサー

+1

返り値の型が省略できるのはコンストラクタの場合のみであり、コンストラクタであるためにはクラス名と同名である必要があります。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

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

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

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/08/03 16:22

    swordoneさんのアドバイスに応じてこのように直してみました。
    /
    public static void main( String[] args ) //メイン文
    {
    denpart0201 den01 = new denpart0201("電卓");
    den01.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    den01.setVisible(true);

    }
    /
    しかし、次は「den01 のシンボルが見つけられません」と出たのですが同ればいいでしょうか?

    キャンセル

+1

エラーメッセージに書いてあるとおり、戻り値の型が書いてないのでエラーになってます
なにも戻さないなら、voidを付けましょう

void Dentaku(String title){

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

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

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

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2020/08/03 16:44 編集

    クラス名を変えずに今までDentakuだった場所をdenpart0201にしてみました。すると、

    enpart0201.java:43: エラー: クラス denpart0201のコンストラクタ denpart0201は指定された型に適用できません。
    denpart0201 den01 = new denpart0201("電卓");
    ^
    期待値: 引数がありません
    検出値: String
    理由: 実引数リストと仮引数リストの長さが異なります

    と言うエラーが新しく追加されたのですがどうすればよいでしょうか?

    キャンセル

  • 2020/08/03 16:47

    コンストラクタは戻り値の型は書きません
    denpart0201(String title){

    キャンセル

  • 2020/08/03 17:11

    してみました。すると

    denpart0201.java:44: エラー: シンボルを見つけられません
    den01.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    ^
    シンボル: メソッド setDefaultCloseOperation(int)
    場所: タイプdenpart0201の変数 den01
    denpart0201.java:45: エラー: シンボルを見つけられません
    den01.setVisible(true);
    ^
    シンボル: メソッド setVisible(boolean)
    場所: タイプdenpart0201の変数 den01
    エラー2個

    とでてきました。

    キャンセル

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

  • ただいまの回答率 87.35%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

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