- - PR -
getToolkit()でエラーが出ます。
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-09-12 23:38
昨日、こちらでアプリケーション作成時の不具合について投稿させていただいた凛です。
今日はまた別のエラーが取れずに四苦八苦しています。 エラーの内容は、getToolkit()についてです。 メニューバーを作成し、ファイルを開く操作を記述しようとしたところ、getToolkit()について、「シンボルを解決できません」というエラーが出てしまいます。 作っているソースは↓です。 import java.awt.*; import java.awt.image.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; public class MBar{ final static JMenuBar menuBar = new JMenuBar(); Image img; public MBar(){ JMenu menuFile = new JMenu("ファイル(F)"); JMenuItem menuOpen = new JMenuItem("開く(O)"); JMenuItem menuSave = new JMenuItem("保存(S)"); JMenuItem menuExit = new JMenuItem("終了(X)"); JMenu menuHelp = new JMenu("ヘルプ(H)"); JMenuItem menuUse = new JMenuItem("使い方(U)"); menuFile.setMnemonic('F'); menuOpen.setMnemonic('O'); menuSave.setMnemonic('S'); menuExit.setMnemonic('X'); menuHelp.setMnemonic('H'); menuUse.setMnemonic('U'); menuOpen.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { FileDialog fd = new FileDialog(new Frame(),"開く",FileDialog.LOAD); fd.setVisible(true); if(fd.getFile() == null) return; String fullpath=fd.getDirectory()+fd.getFile(); img = getToolkit().getImage(fullpath); } }); menuSave.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { FileDialog fd = new FileDialog(new Frame(),"開く",FileDialog.SAVE); } }); menuExit.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent evt){ System.exit(0); } }); menuBar.add(menuFile); menuFile.add(menuOpen); menuFile.add(menuSave); menuFile.addSeparator(); menuFile.add(menuExit); menuBar.add(menuHelp); menuHelp.add(menuUse); } } なぜエラーが出るのか、どのようにすればエラーが出なくなるのか、ご教授よろしくお願いいたします。 | ||||
|
投稿日時: 2006-09-13 09:07
エラーメッセージには何が問題なのかという答えが書かれています。 実行時に例外が出る、またはコンパイル時にエラーが出る場合、 そのエラーメッセージ全文を提示しましょう。 | ||||
|
投稿日時: 2006-09-13 09:19
申し訳ございません。改めて、エラーメッセージの前文を書いておきます。 MBar.java:37: シンボルを解決できません。 シンボル: メソッド getToolkit () img = getToolkit().getImage(fullpath); ^ エラー 1 個 上記のようなエラーメッセージが表示されます。 どうぞよろしくお願いいたします。 | ||||
|
投稿日時: 2006-09-13 09:33
そのgetToolkitメソッドはどこに定義されているんですか?
| ||||
|
投稿日時: 2006-09-13 09:45
想馬さま。
>そのgetToolkitメソッドはどこに定義されているんですか? ソースの中にはgetToolkitメソッドは定義していません。 やはり定義しないと動かないのでしょうか? 以前、別のプログラムを作ったときには、getToolkitメソッドを作らなくても、画像の格納が出来たのですが、今回はそのようにはいかないのでしょうか? | ||||
|
投稿日時: 2006-09-13 09:58
>以前、別のプログラムを作ったときには、getToolkitメソッドを作らなくても、画像
>の格納が出来たのですが、今回はそのようにはいかないのでしょうか? それはgetToolkitメソッドを持つクラスを継承していたからでしょう。 | ||||
|
投稿日時: 2006-09-13 10:01
作ってもいないのに動いたらそれはそれで怖いのですが メソッドを利用できるということはどこかに実装が書いてあるということです。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/Component.html#getToolkit() たぶん、そのときはjava.awt.Componentを継承していたので 親クラスのgetToolkit()が利用できた、今回は違うので利用できない、 というあたりでしょう。 どこで定義されているのかわからないメソッドやフィールド、変数などに 出くわした場合、コンパイラは「シンボルを解決できません」と警告します。 「シンボル」ってのはそういった代物を表していると思えば 理解できる…のだろうか。やっぱり解りにくいメッセージだよなぁ。 | ||||
|
投稿日時: 2006-09-13 11:24
前回も今回もAppletじゃないでしょうか。
前回はJAppletを継承しているのに、今回はしていない。 |