実現したいこと
javaのGUIを勉強しているものです。以下のMain.javaMain.javaのプログラムを実行すると、「MainWindowクラスのシンボルが見つかりません」エラーが出ます。
Main.javaファイルとMainWindowファイルはそれぞれ違うファイルで作成しておりlastというフォルダーに入っています。
なぜエラーが出るのでしょうか。。。
プログラム初心者なのでわかりやすく教えていただけると幸いです。よろしくお願いいたします。
発生している問題・分からないこと
別ファイルの中にあるクラスのシンボルが見つかりませんでした。(Main.javaで実行、MainWindow.java内にあるMainWindowクラスのシンボルが見つからない)
エラーメッセージ
error
1Main.java:8: エラー: シンボルを見つけら 2れません 3 static MainWindow mainWindow; 4 ^ 5 シンボル: クラス MainWindow 6 場所: クラス Main 7Main.java:10: エラー: シンボルを見つけられません 8 mainWindow = new MainWindow(); 9 ^ 10 シンボル: クラス MainWindow 11 場所: クラス Main 12Main.java:13: エラー: シンボルを見つけられません 13 mainWindow.setFrontScreenAndFocus(ScreenMode.TITLE); 14 15 ^ 16 シンボル: 変数 ScreenMode 17 場所: クラス Main 18エラー3個
該当のソースコード
//ここからMain.java package last; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; public class Main{ static MainWindow mainWindow; public static void main(String[] args){ mainWindow = new MainWindow(); mainWindow.preparePanels(); mainWindow.prepareComponents(); mainWindow.setFrontScreenAndFocus(ScreenMode.TITLE); mainWindow.setVisible(true); } } //ここからMainWindow.java package last; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MainWindow extends JFrame{ private static final long serialVersionUID = 1L; //フィールド ScreenMode screenmode = ScreenMode.TITLE; final int WIDTH = 800; final int HEIGHT = 600; CardLayout layout = new CardLayout(); TitlePanel titlePanel; GamePanel gamePanel; MainWindow(){ this.setTitle("タイトルを設定"); ImageIcon icon = new ImageIcon(getClass().getClassLoader().getResource("画像のpng")); this.setIconImage(icon.getImade()); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setResizable(false); this.getContentPane().setBackground(Color.green); this.setLayout(layout); this.setPreferredSize( new Dimension(WIDTH,HEIGHT)); this.pack(); this.setLocationRelative(null); //this.setLocation(450,50); public void preparePanels(){ titlePanel = new TitlePanel(); this.add(titlePanel,"タイトル画面"); gamePanel = new GamePanel(); this.add(gamePanel,"ゲーム画面"); this.pack(); } public void prepareComponents(){ titlePanel.prepareComponents(); gamePanel.prepareComponents(); } public void setFrontScreenAndFocus(ScreenMode s){ screenMode = s; //表示される画面の設定 switch (screenMode) { case TITLE: layout.show(this.getContentPane(),"タイトル画面"); titlePanel.requestFocus(); break; case GAME: layout.show(this.getContentPane(),"ゲーム画面"); gamePanel.requestFocus(); break; } } } }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
「java シンボルが見つからない」で検索し、大文字小文字の違い、変数名が誤っている、import が不足しているは確認しました。
補足
特になし