前提・実現したいこと
javaでおみくじを作っています。
内容は占いボタンを押したら、占いの結果が表示されるプログラムです。
発生している問題・エラーメッセージ
エラー 無効なメソッドです。戻り値が必要です。 のエラーが出て治せません
該当のソースコード
import javax.swing.*; import java.awt.event.*; import java.awt.BorderLayout; import java.util.Scanner; import java.util.Random; public class SwingTest1 extends JFrame implements ActionListener{ JLabel label; Random rand = new Random(); int num = 0; public static void main(String[] args){ SwingTest test = new SwingTest("SwingTest"); test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); test.setVisible(true); } SwingTest(String title){ setTitle(title); setBounds( 50, 50, 300, 200); label = new JLabel(""); label.setHorizontalAlignment(JLabel.CENTER); JButton btn1 = new JButton("占う"); btn1.addActionListener(this); btn1.setActionCommand("占う"); JPanel p = new JPanel(); p.add(btn1); getContentPane().add(p, BorderLayout.CENTER); getContentPane().add(label, BorderLayout.PAGE_END); } public void actionPerformed(ActionEvent e){ String cmd = e.getActionCommand(); num = rand.nextInt(10); switch (num){ case 0: System.out.println("大吉"); break; case 1: System.out.println("中吉"); break; case 2: System.out.println("中吉"); break; case 3: System.out.println("小吉"); break; case 4: System.out.println("小吉"); break; case 5: System.out.println("末吉"); break; case 6: System.out.println("末吉"); break; case 7: System.out.println("吉"); break; case 8: System.out.println("吉!"); break; case 9: System.out.println("凶"); break; } } }
試したこと
補足情報(FW/ツールのバージョンなど)
質問に書かれている以外のエラーは出ていませんか?
質問のコードで宣言されているクラスは"SwingTest1"だけです。しかし、このクラスには"public SwingTest1(String str){ //コンストラクタで実行されるコード; }"というようなコンストラクタ宣言されていません。
そのため、「SwingTest test = new SwingTest("SwingTest");」のところでコンパイルエラーが発生するはずです。("SwingTest"というクラスが宣言されていないのに、"SwingTest"クラスのインスタンスを作れるはずがないです。)
プログラムの内容を再確認してください。
そして、どのような操作をした時に『エラー 無効なメソッドです。戻り値が必要です。 のエラーが出て治せません』というメッセージが出たのを教えてください(エラーメッセージは全文を質問に追加して下さい)
SwingTestのところをSwingTest1にしたらエラーなくできました。ありがとうございます。
回答1件
あなたの回答
tips
プレビュー