- ベストアンサー
コンパイルエラー <identifier>がありませんの意味が分かりません。
コンパイルエラー <identifier>がありませんの意味が分かりません。教えていただけないでしょうか。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
//フレームにラベルをセット(BorderLayoutの残りエリア frame.add(label,BorderLayout.CENTER); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } この部分の}が余分なのではないでしょうか。 //フレームにラベルをセット(BorderLayoutの残りエリア frame.add(label,BorderLayout.CENTER); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //} こうすれば良いかと。
その他の回答 (2)
さっきの参考URLの説明のとおり「クラスやメソッドのブロック記述が間違っている」のです。 ソースをもう一度よく見てみましょう。ブロック記述とは中括弧の記述だとお考えください。
お礼
importの前にjavaがいつの間にか入ってしまったみたい。それをとってもエラーになってしまうのですが・・・
補足
frame.setVisible(true);のあとに閉じパーレンがひとつ足りないことに気づきソースを打ち直してみたらエラーが増えてしまいました。 javaimport javax.swing.*; import java.awt.*; import java.awt.event.*; public class SampleD8L1{ private JFrame frame; private JPanel panel; private JLabel label; private JButton btnA; private JButton btnB; private JButton btnC; public SampleD8L1(){ //フレームを作成してレイアウトをセット frame = new JFrame("Click Me Buttons!"); frame.setLayout(new BorderLayout()); //パネルを作成してレイアウトをセット panel = new JPanel(); panel.setLayout(new GridLayout(1,3,5,5)); //表示用ラベルを作成 label = new JLabel("ボタンをクリックしてください",JLabel.CENTER); //btnAを作成 btnA = new JButton("btnA"); //btnAがクリックされた時のイベントを定義 btnA.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ label.setText("btnAがクリックされました"); } }); //btnBを作成 btnB = new JButton("btnB"); //btnBがクリックされた時のイベントを定義 btnB.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ label.setText("btnBがクリックされました"); } }); //btnCを作成 btnC = new JButton("btnC"); //btnCがクリックされた時のイベントを定義 btnC.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ label.setText("btnCがクリックされました"); } }); //パネルにボタンをセット panel.add(btnA); panel.add(btnB); panel.add(btnC); //フレームにパネルをセット(BorderLayoutの北側) frame.add(panel,BorderLayout.NORTH); //フレームにラベルをセット(BorderLayoutの残りエリア frame.add(label,BorderLayout.CENTER); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } //フレームのサイズを定義して表示 frame.setSize(250,100); frame.setVisible(true); } //mainメソッドの定義 public static void main(String args[]){ SampleD8L1 application = new SampleD8L1(); } } コンパイル結果 C:\Java\Samples\D8>javac SampleD8L1.java SampleD8L1.java:1: 'class' または 'interface' がありません。 javaimport javax.swing.*; ^ SampleD8L1.java:2: 'class' または 'interface' がありません。 import java.awt.*; ^ SampleD8L1.java:3: 'class' または 'interface' がありません。 import java.awt.event.*; ^ SampleD8L1.java:69: <identifier> がありません。 frame.setSize(250,100); ^ SampleD8L1.java:70: <identifier> がありません。 frame.setVisible(true); ^ SampleD8L1.java:74: 'class' または 'interface' がありません。 public static void main(String args[]){ ^ SampleD8L1.java:77: 'class' または 'interface' がありません。 } ^ SampleD8L1.java:77: 'class' または 'interface' がありません。 } ^ エラー 8 個 ごめんなさい、お手上げです(涙)。
アドバイスを2点。 (1) どうしてもエラーメッセージの意味がわからなければ、そのメッセージをそのまま検索にかけると有益な情報が見つかりやすいです。 (2) 掲示板でコンパイルエラーの相談をする際には、ソースも示すほうがよいです。メッセージだけ出されても、直接の原因は第三者にはわかりません。
補足
amajun様、ご回答ありがとうございます。 ごめんなさい。ソースコードです。 Javaの入門書(丸の内とら 著 翔泳社)を見ながら作成しました。 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class SampleD8L1{ private JFrame frame; private JPanel panel; private JLabel label; private JButton btnA; private JButton btnB; private JButton btnC; public SampleD8L1(){ //フレームを作成してレイアウトをセット frame = new JFrame("Click Me Buttons!"); frame.setLayout(new BorderLayout()); //パネルを作成してレイアウトをセット panel = new JPanel(); panel.setLayout(new GridLayout(1,3,5,5)); //表示用ラベルを作成 label = new JLabel("ボタンをクリックしてください",JLabel.CENTER); //btnAを作成 btnA = new JButton("btnA"); //btnAがクリックされた時のイベントを定義 btnA.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ label.setText("btnAがクリックされました"); } }); //btnBを作成 btnB = new JButton("btnB"); //btnBがクリックされた時のイベントを定義 btnB.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ label.setText("btnBがクリックされました"); } }); //btnCを作成 btnC = new JButton("btnC"); //btnCがクリックされた時のイベントを定義 btnC.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent ae){ label.setText("btnCがクリックされました"); } }); //パネルにボタンをセット panel.add(btnA); panel.add(btnB); panel.add(btnC); //フレームにパネルをセット(BorderLayoutの北側) frame.add(panel,BorderLayout.NORTH); //フレームにラベルをセット(BorderLayoutの残りエリア frame.add(label,BorderLayout.CENTER); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } //フレームのサイズを定義して表示 frame.setSize(250,100); frame.setVisible(true); //mainメソッドの定義 public static void main(String args[]){ SampleD8L1 application = new SampleD8L1(); } } コンパイルエラーメッセージです。 C:\Java\Samples\D8>javac -nowarn SampleD8L1.java SampleD8L1.java:69: <identifier> がありません。 frame.setSize(250,100); ^ SampleD8L1.java:70: <identifier> がありません。 frame.setVisible(true); ^ エラー 2 個 あと、質問の追加になってしまいますが import java.awt.*; import java.awt.event.*; とありますがeventクラスはawtパッケージの下のクラスではない、ということなのでしょうか?
お礼
アドバイスのとおりにしたらコンパイルできました! 本当にありがとうございます。