OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

GUI(Frame)作成について

  • 暇なときにでも
  • 質問No.192937
  • 閲覧数77
  • ありがとう数1
  • 気になる数0
  • 回答数3
  • コメント数0

お礼率 50% (2/4)

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/linux/jdkfiles.html
通報する
  • 回答数3
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.3
レベル11

ベストアンサー率 47% (160/334)

#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に書かれたようなソースが参考書に載っていたのだとしたら,その参考書は捨てたほうがいいと思いますが…。
お礼コメント
palopalo

お礼率 50% (2/4)

atonさん、ありがとうございます。このソースで早速試してみます。
また、urlを参考にさせていただきます。
moyuruさん、atonさん、ご回答いただき本当にありがとうございました。
投稿日時 - 2002-01-08 19:30:41
-PR-
-PR-

その他の回答 (全2件)

  • 回答No.1

>コマンドラインでのコンパイル、classファイルの実行はできるのですが それでメソッドのエラーがでるのなら単純なコードのミスだと思います。せめてソースとエラーの内容くらい載せて下さい。 ...続きを読む
>コマンドラインでのコンパイル、classファイルの実行はできるのですが
それでメソッドのエラーがでるのなら単純なコードのミスだと思います。せめてソースとエラーの内容くらい載せて下さい。
補足コメント
palopalo

お礼率 50% (2/4)

ご回答ありがとうございます。
問題のソースとエラー内容を書きます。

<ソース ファイル名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のファイル構成は間違っていないことを知り、
それでは一体何?と訳がわからなくなったのではずかしながら熟練者の知恵をお借りしようと
思った次第です。
上記の私の考えかたを含め、どんなご意見でも結構です。ご指摘くださればと思います。
投稿日時 - 2002-01-07 19:45:51


  • 回答No.2
レベル11

ベストアンサー率 47% (160/334)

Javaではpublicなclassの場合,ファイル名とクラス名が一致していなければまずいはず(参考URL)。この場合ファイル名は AppFrame.java でないとコンパイルエラーが出ます。 ちなみに,参考URLのおおもとのページ http://www.gimlay.org/~javafaq/javafaq.html はJavaの勉強を始める人に役立つ情報がたくさんあるので,下手な参 ...続きを読む
Javaではpublicなclassの場合,ファイル名とクラス名が一致していなければまずいはず(参考URL)。この場合ファイル名は AppFrame.java でないとコンパイルエラーが出ます。

ちなみに,参考URLのおおもとのページ

http://www.gimlay.org/~javafaq/javafaq.html

はJavaの勉強を始める人に役立つ情報がたくさんあるので,下手な参考書より役に立つと思います。
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ