トップページ⇒tech
1001コメント322KB

【初心者】Java質問・相談スレ4【大歓迎】

■ このスレッドは過去ログ倉庫に格納されています
00011NGNG
JAVA初心者の方はこちらのスレで質問をしましょう。そして誰か教えてあげてください。

なお、ソースを貼るときには、半角空白が消える仕様のため、タブ1つを全角空白2つに
置換してから投稿しましょう。雑誌や宿題などの疑問を質問するときは出展を明記した
ほうが解決が早いです。

関連情報は >>2-10 あたりにあります。 (一部 dat落ちやHTML化待ち)


JavaScriptの質問はWeb製作板へどうぞ。
web制作管理
http://pc.2ch.net/hp/

パソコンの基本操作に関しては、PC初心者板や、各OS板などで質問しましょう。
パソコン初心者@2ch掲示板
http://pc.2ch.net/pcqa/

上級者の方で教える技術が無い方は下記スレでダベりましょう。
初心者無視! Java相談室 その9
http://pc.2ch.net/test/read.cgi/tech/1021555964/


基本的にsage進行でおねがいします。
0602デフォルトの名無しさんNGNG
クリッカブルマップと Java3Dのポリゴンは関係ないような… とか言ってみるテスト。
0603デフォルトの名無しさんNGNG
画像表示してるコンポーネントに MouseListener 付けて、
java.awt.Polygon 等の java.awt.Shape の実装クラスで
マウスポインタが範囲内かを contains で判定するとか。
そんな感じで… できませんか?
0604デフォルトの名無しさんNGNG
>>603
やってみればいいじゃん。
0605デフォルトの名無しさんNGNG
>>604
いや 600 != 603 なので、やってみればいいじゃん。とか言われても。
0606デフォルトの名無しさんNGNG
>>601
>>602
クリッカブルマップですと、ブラウザーに表示した画像データ上に
任意の形をしたポリゴン?が作れて、ボタンができますよね?
でも、そのポリゴン?に色分けで塗りつぶしってできますか?
JAVAならどうなるのかな?と思ったのですが・・・。
0607デフォルトの名無しさんNGNG
>>606
なんかJavaとHTMLを同列に考えてるみたいでアレだが・・・やろうと思えば何でもできる。
0608デフォルトの名無しさんNGNG
>>606
>任意の形をしたポリゴン?が作れて、ボタンができますよね?
ボタン? 出来たっけか?
0609デフォルトの名無しさんNGNG
>>607
>>608
ボタンってゆーのは、ポリゴン?そのもののことです・・・
押すとアクションするので、ボタンといってしまいました。

実は、GISアプリケーションをつくりたいのですが、
何十万もするGISソフトはとてもとても手がでないので、
JAVA、VBとかのアプリケーションソフトで
プログラムしたいのですが、なんの言語がおすすめでしょうか?
話が脱線してしまいましたが・・・。
0610デフォルトの名無しさんNGNG
>>609
そのGISソフトがなぜ数十万するか考えてみるのもいいかもね。
0611デフォルトの名無しさんNGNG
>>609
Javaでも出来ることは出来るよ。
個人的には オススメしないけど。
最近の風潮では、そーゆー描画関係は
ブラウザに任せちまえってのもあるしね。
0612デフォルトの名無しさんNGNG
>>610
詳細な地図が矢鱈と高いだけかと・・・
0613デフォルトの名無しさんNGNG
>>612
彼は小学校の周りの町探検地図でも作るのか?
0614デフォルトの名無しさんNGNG
>>613
じゃあ何か?
世界地図表示して各国の
名前と人口と国民総生産でも表示させる気か?
0615デフォルトの名無しさんNGNG
>>613
探検! ぼくのまち!
0616デフォルトの名無しさんNGNG
よって地図を買わないと結局ソフト作っても無意味。
でよろしいか?
0617デフォルトの名無しさんNGNG
>>616
いや、元の質問社の口ぶりだと
既に地図を持ってるだろ?
0618デフォルトの名無しさんNGNG
>>610
〜
>>617
いろいろな意見ありがとうございます。
地図はあります。市町村の管内図とか地籍図とかあるので、
それをスキャンすれば画像データは買わなくてもいい状態です。
仕掛けとしては、人ごとに分筆されている土地部分をマウスで
クリックすると、別ウィンドウに面積とか所有者とかのデータを
だそうとしています。

JAVAですと、具体的にどのような記述(命令)がつかえますか?
0619デフォルトの名無しさんNGNG
>>618
まず、常識レベルに言語のこと覚えなされ。
0620デフォルトの名無しさんNGNG
>世界一のJava(TM)ユーザーを抱える NTT DoCoMo よりJavaOne(SM)への期待コメント

SDCからこんなメールが来たんですが、
NTT Docomo社員の誰が世界一のユーザーですか?
また、どうやって世界一をきめたんでしょう?
0621デフォルトの名無しさんNGNG
>>620
前やってたじゃん。天下一武闘会。
いやぁ、Swingピッコロ大魔王が出てくるとは思わなかったよ・・・。
0622デフォルトの名無しさんNGNG
>> 599
ありがとうございます。

では、100msecより短い時間でなにかを動かしたいときは、
いったいどうすればいいでしょうか。
0623デフォルトの名無しさんNGNG
>>621ってどこが面白いの?誰か教えて
0624620NGNG
>>621
俺は"623"じゃないからな
0625デフォルトの名無しさんNGNG
俺は"601"じゃないからな
0626デフォルトの名無しさんNGNG
>>622
for(int i=0;i<10;i++);
みたいなwaitを掛けてみるば?
0627デフォルトの名無しさんNGNG
>>626
でもそれ・・・アレだな。
0628デフォルトの名無しさんNGNG
>>627
そうだけど
他に思い付かない・・・・yo・・・・
0629デフォルトの名無しさんNGNG
Java Appletについて教えてください。

Appletでテキストファイルの読み込みを行いたいのですが
JBuilder6上ではエラーなく処理が通るのに
ローカルでブラウザからAppletを実行したり
サーバー上で実行したりするとエラーがでていまいます。
以下、エラーと思われる構文です。
-------ここから----------
ofm = new OwnerFrame(new BufferedReader(new InputStreamReader(new File("test.txt").toURL().openStream())));
-------ここまで----------

以下は、Javaコンソールで表示されるエラーメッセージです。
-------ここから----------
java.lang.NoSuchMethodError: java/io/File: method toURL()Ljava/net/URL; not found
 at quizGame.init
 at com/ms/applet/AppletPanel.securedCall0
 at com/ms/applet/AppletPanel.securedCall
 at com/ms/applet/AppletPanel.processSentEvent
 at com/ms/applet/AppletPanel.processSentEvent
 at com/ms/applet/AppletPanel.run
 at java/lang/Thread.run
-------ここまで----------

FileクラスにtoURLメソッドがないというエラーだと思うのですが、仕様を見てみるとtoURLメソッドは
存在しているので、理由がまったくわかりません。

どなたか宜しくお願いします。
0630デフォルトの名無しさんNGNG
アプレットの文字列をクリックするとハイパーリンクして別のURLに飛ぶというようなことを
するにはどうしたらよいのでしょうか?
0631デフォルトの名無しさんNGNG
>>629-630
java.net.URLクラスのAPIドキュメントをゴ一読方願います
0632デフォルトの名無しさんNGNG
getAppletContext().showDocument(url);
ってやったらできた。
0633デフォルトの名無しさんNGNG
http://js-web.cside.com/
0634629NGNG
>631さん
申し訳ないですが、一通り読んでみてもわかりません。
理解力なくてすいませんがもう少し、教えていただけないでしょうか?

宜しくお願いします。
0635デフォルトの名無しさんNGNG
>>634
>new File("test.txt").toURL()
この式合ってるの?
0636デフォルトの名無しさんNGNG
合ってないの。
0637デフォルトの名無しさんNGNG
>>629
なんとなく、ブラウザのJavaサポートが1.1なのではと言ってみるテスト。
com/ms/applet という部分から動いてるのはMicrosoftVMっぽい。
ttp://support.microsoft.com/default.aspx?scid=kb;en-us;Q214828
を見たところIE5.5でJDK1.1.4までしかサポートしていないから、
素のままじゃ1.2で導入されたtoURLメソッドは無くて当然かな。

プラグイン入れてみそ。
0638デフォルトの名無しさんNGNG
JDBCでinsertRow()を使うときに、SELECTで最低1行は拾っておかないと
いけないのですか?カーソルの位置が不正です。みたいなエラーが出るのですが・・。
0639デフォルトの名無しさんNGNG
ServletとJSPでシステムを作っているのでが、コントローラの
単体テストってどうやるんですか?コントローラだけでテストなんて
しないですよね?誰か詳しい人教えてください。
0640でふぉるとんNGNG
>>638
moveToInsertRowはやってるのかね?
APIドキュメントは読んだかね?
0641デフォルトの名無しさんNGNG
>>639
コントローラの何の動作をテストしたいの?
0642638NGNG
>>640
moveToInsertRowはもちろんやっています。
APIもじーっくり読みました。サイトも見て回ったんですが・・。

文法的には間違っていないはずです。

ドライバが対応していない場合があったりしますか?
そんな風なことを見かけたんですが、確信が持てないです・・。

0643デフォルトの名無しさんNGNG
>>641
A ボタンがちゃんと押されているかどうか
0644デフォルトの名無しさんNGNG
Javaのソース読んでて、わからないメソッドやクラスにでくわしたとき
みなさんどのようにして調べているのですか?
0645デフォルトの名無しさんNGNG
>>644
JAVADOCがある時:読む。
JAVADOCがあってもなくても:テストクラスを作ってみた。
0646javaccNGNG
別スレでも書いたのですが、レスつかなかったので、もう一回…
JAVACCって、どれくらいの知名度があるんですか?
これなんですけど。
http://www.webgain.com/products/java_cc/
JAVACCの将来性とか知ってる人が居ましたら、教えてほしいです。
皆様、Javaでパーサ作ったりとかあんまりしないんですかねぇ…
0647デフォルトの名無しさんNGNG
>>646
一応Javaでは一番メジャーっぽいし
他に画期的なのが出ない限り生き残るんでは?

ところでせっかくJavaなのに日本語テキストの扱いが面倒なのは何とかならないか、、、
カスタムリーダー書くの面堂、

>皆様、Javaでパーサ作ったりとかあんまりしないんですかねぇ…

それこそ新規で言語処理系でも作る気がなければ
確かにそんなにつかわないよな。
Cプログラマの中でもYACCとか使ったことの在る奴は何パーセントくらいなんだろ。

普通のアプリのニーズならXMLやプロパティファイルで十分だし。
0648javaccNGNG
>>647
先日、「Javaccを管理しているWebGainが消息不明」という記事を見ました。
Javaに絡んだ言語変換パーサを作ってるので、yaccよりJavaccをチョイス
したのですが、どうもJavacc自体が先行き不透明な感じがするのです。
おかげで、ほんの少しだけ安心しました。

日本語のドキュメントもほとんど無いですよね。
0649デフォルトの名無しさんNGNG
>>647
>日本語テキストの扱いが面倒
ってのは?
0650デフォルトの名無しさんNGNG
JAVAを勉強しようと思うのですが、
一から始めるJAVAって感じのサイトありませんか?
0651デフォルトの名無しさんNGNG
>>650
ここでスレ立てればいいんじゃないでつか?
0652デフォルトの名無しさんNGNG
>>651
立てるまでもあるまい
0653Rina ◆tI333vNE NGNG
>>650
http://www.atmarkit.co.jp/fjava/special/javasite/javasite.01.html
0654デフォルトの名無しさんNGNG
>>653
ありがとうございました。早速勉強。
0655デフォルトの名無しさんNGNG
>>641
テストは画面遷移以外のテストをしたいのです。一通りの処理というか。
っていうか、MVCモデルでのControllerって単体テストするもんですか?
下位クラスが無きゃ実際の処理なんてテストできないですよね?
そこらへん詳しく載ってるサイト教えて。
0656デフォルトの名無しさんNGNG
>>655
最低でもVCでじゃないの?
0657Rina ◆tI333vNE NGNG
>>655
VCで。Mは無くてもいいし、必要だと思えば
使い捨ての利くコンソール版作ってからやる。
0658デフォルトの名無しさんNGNG
MVCって三層C/Sを一つのサーバでやってるって感じですか?

0659デフォルトの名無しさんNGNG
>>658
そだね。
アプリケーションでMVCというと、一つのプロセスの上で
それやってる感じ。通知は単なるメソッドコールになる。
0660デフォルトの名無しさんNGNG
>>659
勉強になりました。
0661デフォルトの名無しさんNGNG
VCでテストやるか?
CM(またはMスタブ)で、JUnitでVの代理ロジック記述じゃないのけ?
0662デフォルトの名無しさんNGNG
>>661
Vドライバもいるんじゃない?
0663デフォルトの名無しさんNGNG
>>662
どうせMのオブザーバだけでしょ?ユニットテスト側で準備すりゃいいじゃん。
0664デフォルトの名無しさんNGNG
static メソッドの中で、そのメソッドが所属するクラス名やパッケージ名って
取得できますか?
0665デフォルトの名無しさんNGNG
>>664
ハァ?
staticメソッドを実装している位置って、そのクラスじゃないのか?
なんで実行時に取る必要があるのよ?Classオブジェクトが欲しいなら
<クラス名>.classでええよ。
0666Rina ◆tI333vNE NGNG
Hoge.class.getName()
Hoge.class.getPackage()
0667デフォルトの名無しさんNGNG
>>665-666
サンキュー、それそれ。
ちなみに名前が変わるかも知れないパッケージのクラスの中から
バンドルされてるリソースを、パッケージ名変更の影響なくアク
セスしたかったのよん♥ 文字列でも持たせると、後で grep
出来ない形でコード書く奴がいるかも知れないので。
0668デフォルトの名無しさんNGNG
argsって何でしたっけ?
ちょっとど忘れして…
0669デフォルトの名無しさんNGNG
age
0670デフォルトの名無しさんNGNG
そういえば GZIP はあるのに tar 機能がねーな、と思ってみたり。

>>668
public static void main(String[] args) のことか?
ARGument String だと思うが。
0671デフォルトの名無しさんNGNG
ARGumentSだったりして
0672デフォルトの名無しさんNGNG
コンパイルなどでの
エラーの探し方のコツとかってある?

どう考えても、どこが間違ってるのか分からん時とか、平気で1日無駄にするし
0673デフォルトの名無しさんNGNG
なぜエラーが起こったかを記憶しておく。
そうすれば費やした時間は無駄にならない。
がんばれや、学生さん。
0674デフォルトの名無しさんNGNG
>>670
tarは誰にでも すぐに書けるからでは…
(仕様しってれば)
0675デフォルトの名無しさんNGNG
Forte for Java, CE3 を使って勉強してます。
外部クラスからJTextAreaにデータを表示させたいんですが、

class SleepingA implements Runnable {
private Application appli ;
public void run() {
appli.addTextArea("SleepingA Start") ;
}
}

で本体側
public class Application extends javax.swing.JFrame
に

public void addTextArea( String str ) {
jTextArea1.setText( str ) ;
}

を加えて、コンパイルは出来るんですが
実行時にエラーが出てしまいます。
何がおかしいんでしょうか?

エラー:
java.lang.NullPointerException
at ThreadTest.SleepingA.run(Application.java:189)
at java.lang.Thread.run(Thread.java:484)
0676デフォルトの名無しさんNGNG
>>675
ねぇ、appliにインスタンス代入してる?
0677675NGNG
というと、本体側の
SleepingA runA = new SleepingA();
Thread threA = new Thread(runA);
threB.start();
ですか?
0678デフォルトの名無しさんNGNG
>>677
どこかで

appli = new Application();

もしくは他で作ったインスタンスを代入したのか?と。
0679デフォルトの名無しさんNGNG
インスタンスの代入というのがよくわからないんですが・・・
0680デフォルトの名無しさんNGNG
>>674
tar の仕様きぼーんぬ。
0681デフォルトの名無しさんNGNG
>>680
検索すれば直ぐ見つかるよー
0682デフォルトの名無しさんNGNG
>>679
SleepingAクラスのコンストラクタとかでappliを初期化しているか?
appliは「Applicationへの参照」であるから実体(インスタンス)は無い。
自分で実体を作成して代入してやる必要がある。
実体を作成するのが new だ。

と、>>678 は言っている。
0683デフォルトの名無しさんNGNG
>>682
助かりました。あれ以上の説明が思いつかんかった。
勉強やり直してきます。
0684デフォルトの名無しさんNGNG
お二方、回答どうもありがとうございます。
private Application appli = new Application() ;
でエラーはなくなりましたが、String値の受け渡しが出来ません(TT)

本体=Application() から class SleepingA のスレッドを作成しているので、
SleepingA で
appli = new Application() ;
とすると元の本体とは別に、新たなApplication() を作ってしまっているから
元のApplication()にString値が受け渡されないと、考えてよろしいの
でしょうか?とすると、SleepingAの方から元のApplicationのスレッドを作るようにして、
そいつにString値を渡す、というやり方で良いんでしょうか?
0685デフォルトの名無しさんNGNG
A. コンストラクタに引数を設けてApplicationのインスタンスを渡す。
B. SleepingAをインターフェースにしてApplicationにimplementsする。
という手が考えられる。
Aがお手軽。
0686デフォルトの名無しさんNGNG
>>680
http://www.gnu.org/directory/tar.html
0687デフォルトの名無しさんNGNG
あと、スレッドを使うときは競合に気をつけること。
って、setTextはスレッドセーフダタ...

>>670
tarって必要か?
昔のzipが複数ファイルまとめられないからtarが存在していた
と理解してたんだが・・・
0688デフォルトの名無しさんNGNG
>>687
商用 Unix だと本番機に compress & tar しか入っていないことも多々ある
のよん。
0689デフォルトの名無しさんNGNG
httpServletResponceなどのServlet.HttpのAPIて無いのですか?

Sunのページにはなかったのですが…
http://java.sun.com/j2se/1.4/ja/docs/ja/api
0690デフォルトの名無しさんNGNG
質問です。
import ABC;(ABCは、自分で定義したクラス)
と書いてコンパイルしようとすると、
「"."がありません
 import ABC;  」
^
というエラーメッセージが表示されるのですが、原因が
分かりません。どなたかご存知でしたら、アドバイスをお願いします
0691デフォルトの名無しさんNGNG
>>688
あいや、正確には
Javaのプログラムから、tarって必要か?
なんだが。
0692デフォルトの名無しさんNGNG
>>689
http://java.sun.com/j2ee/sdk_1.2.1/techdocs/api/index.html
0693デフォルトの名無しさんNGNG
>>692
sankusu
あと日本語ページとか無いのでしょうか?
0694デフォルトの名無しさんNGNG
>>690
import はパッケージの利用の宣言であり、クラスの利用宣言ではない
からではないか?
ABCの入っているソースの天辺にpackage ABC;と書いてコンパイルし、
クラスパス以下にABCフォルダ作って、そこにclassファイル置いてみてくれ。

ただ、エラーの内容がイマイチ?なのだが。
それはちゃんとコピペしたものなのか?
0695名無しさん@xyzzyNGNG
>>690
import ABC.*;
0696デフォルトの名無しさんNGNG
>>693
http://www.ingrid.org/jajakarta/servletapi/servletapi-4.0/docs-ja/index.html
0697デフォルトの名無しさんNGNG
>>691
tar しか入っていない環境ならふつー .tar.Z や .tgz だな。
アーカイブはバッチ処理に渡したりもらったりするケースも
結構あるから。

とはいえ JDK が入っているなら jar で ZIP は解凍できるから、
他の鯖にデータまとめて持ってくようなバッチでもなければ ZIP
で良のか。
0698デフォルトの名無しさんNGNG
>>694
>>695
ありがとうございます。
パッケージ化する方法を試してみました。
(フォルダ名をABC、クラス名をMyClass.class)
確かに、import ABC.MyClass;
とするとコンパイル通りました。
ありがとうございます
0699デフォルトの名無しさんNGNG
>>687
>昔のzipが複数ファイルまとめられないからtarが存在していた
>と理解してたんだが・・・
ソレ、たぶん間違いっす。
0700デフォルトの名無しさんNGNG
>ソレ、たぶん間違いっす。

ソレ、たぶん間違いっす。
0701デフォルトの名無しさんNGNG
元々 tar は複数ファイルをテープ上にアーカイブしたり元に戻したりする
ためのもの。アーカイブをディスク上に作成することも出来たので、compress
や gzip と組み合わせて使われるようになった (古い Unix の思想「1 コマン
ドは 1 機能に従事する」に従い「アーカイブ」と「圧縮」は別コマンドになっ
ていた)。

よく知らんが ZIP アーカイブはこれより後に PC 向けに作られたもの
だったと思う。俺が始めて見かけたのは 6〜7年前くらいだったかな。
NIFTY-Serv に入った頃に知った。
0702デフォルトの名無しさんNGNG
Javaの変数名前付け基準って、みなさんはどうしてますでしょうか?
■ このスレッドは過去ログ倉庫に格納されています