
javaを勉強しようと思い、参考書付属CDROMからjdk1.3.1_01をインストールした
のですが、コマンドラインでのコンパイル、classファイルの実行は出来るのです
けどGUI(Frame)を作成する時にコンパイルが出来ません。
「setSizeメソッドがありません」というようなエラーが出ます。
ライブラリが無い、もしくはディレクトリ構成が違うのかと思い、sunのHPからいろいろ
調べたのですがファイル構成がとくに間違っている様子でもなさそうです。
使用しているユーザー環境のシェルプロファイルには以下の記述でパスを通しています。
export JAVA_HOME=/usr/java/jdk1.3.1_01
PATH=$PATH:$JAVA_HOME/bin
(redhat7.1にrpmからインストールしました。ディレクトリは/usr/java/jdk1.3.1_01/
です。インストール方法とパスの記述は参考書にあったものと同様にしました。)
GUIの作成に何か他に必要なものがあるのでしょうか。または各種設定等に問題が
あるのでしょうか。どなたか助言、御指摘いただければ、と思います。
ちなみにファイル構成の確認は下記のページを参照しました。
http://java.sun.com/j2se/1.3/ja/docs/ja/tooldocs …
No.3ベストアンサー
- 回答日時:
#2を書いたatonです。
見落としが一つありました。
同一ファイル内でAppFrameとFrameの2つのクラスを宣言してるんですね。
Javaでは原則一ファイル一クラスなので,これはペケです。
そもそもFrameクラスを作る意味がないので,ソースは以下のようであるべきだと思います。
<ソース ファイル名AppFrame.java>
//
// AppFrame.java -- フレームを作る
//
import javax.swing.*;
public class AppFrame extends JFrame {
public AppFrame() {
setSize(400, 300);
}
public static void main(String[] args) {
AppFrame frame = new AppFrame();
frame.show();
}
}
<ソース終り>
しかしもしpalopaloさんが#1に書かれたようなソースが参考書に載っていたのだとしたら,その参考書は捨てたほうがいいと思いますが…。
atonさん、ありがとうございます。このソースで早速試してみます。
また、urlを参考にさせていただきます。
moyuruさん、atonさん、ご回答いただき本当にありがとうございました。
No.2
- 回答日時:
Javaではpublicなclassの場合,ファイル名とクラス名が一致していなければまずいはず(参考URL)。
この場合ファイル名は AppFrame.java でないとコンパイルエラーが出ます。ちなみに,参考URLのおおもとのページ
http://www.gimlay.org/~javafaq/javafaq.html
はJavaの勉強を始める人に役立つ情報がたくさんあるので,下手な参考書より役に立つと思います。
参考URL:http://www.gimlay.org/~javafaq/S002.html#S002-04
No.1
- 回答日時:
>コマンドラインでのコンパイル、classファイルの実行はできるのですが
それでメソッドのエラーがでるのなら単純なコードのミスだと思います。せめてソースとエラーの内容くらい載せて下さい。
この回答への補足
ご回答ありがとうございます。
問題のソースとエラー内容を書きます。
<ソース ファイル名Frame.java>
//
// Frame.java -- フレームを作る
//
import javax.swing.*;
class AppFrame extends JFrame {
public AppFrame() {
setSize(400, 300);
}
}
public class Frame
{
public static void main(String[] args)
{
AppFrame frame = new AppFrame();
frame.show();
}
}
<ソース終り>
<エラー表示 "javac Frame.java"実行時>
Frame.java:8:error:Cannot find method "setSize(int, int)"
<エラー表示終り>
Frame.javaは、始め参考書を見ながら自分で書いてみたのですが、エラーになったため
参考書付属のCDROMにあるソースをjavacしてみたけど結果は同じでした。上記ソースが
参考書付属のものです。
自分なりに、
「エラーにsetSize(int, int)のmethodが見付からない。
javax.swing.*をimportとあるので恐らくこれがsetSizeを含むライブラリ?
setSizeが無いということは、javax.swingが無い、または正しい場所に無くて読めない。」
などと考え(java関連の書物等にswingを使ってGUIを作成する。云々。とあるのでこのように
考えました。)swingがどこにあるのか?などいくつか調べましたが、今一つ理解出来ない時に
質問のなかで書いたsunのurlにたどりつき、jdkのファイル構成は間違っていないことを知り、
それでは一体何?と訳がわからなくなったのではずかしながら熟練者の知恵をお借りしようと
思った次第です。
上記の私の考えかたを含め、どんなご意見でも結構です。ご指摘くださればと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Googleログインボタンのデザイ...
-
「main メソッドを持つクラスが...
-
JDONWROADER2のエラー修復
-
googleスプレッドシートのスク...
-
JaneStyleのスレッドが見れなく...
-
googleスプレッドシートのGASに...
-
jdk17.06のインストーラーが起...
-
Eclipse 動的プロジェクトで404...
-
下記問題の答えが"D"になる意味...
-
正規表現について質問です。 カ...
-
eclipseで作ったプログラムを他...
-
スプレッドシートからリマイン...
-
Verilogについて質問です。この...
-
論理回路設計をVerilogで行う問...
-
ゲーム開発の入門書を探しています
-
jdbcでinsert,delete,createをe...
-
session,requestはjspで未定義...
-
サーブレットをapacheで公開す...
-
下記のリストならno002が含まれ...
-
is this even a thing?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JDONWROADER2のエラー修復
-
Googleログインボタンのデザイ...
-
googleスプレッドシートのGASに...
-
「main メソッドを持つクラスが...
-
配列にnullを代入すると、null...
-
jdbcでinsert,delete,createをe...
-
プログラミングの問題です。大...
-
正規表現について質問です。 カ...
-
Eclipse 動的プロジェクトで404...
-
マイクラでPythonのプログラミ...
-
JSFタグのfタグとは
-
スプレッドシートからリマイン...
-
Processingでマウスクリックで...
-
eclipse実行ができない
-
eclipseで作ったプログラムを他...
-
次のhtml・cssでspan内の文字を...
-
プログラミングのプの字も知り...
-
自作Androidアプリのデータ引き...
-
直し方について教えて頂きたい...
-
googleスプレッドシートのスク...
おすすめ情報