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

このエントリーをはてなブックマークに追加
ここはプログラム技術板のJavaに関するスレッドです。

質問のさいは状況が相手に伝わるように書きましょう。
エラーコードなどもしっかり書いたほうが適切な回答を得られます。
自己解決した場合でもどのようにして解決したかくらいは書きましょう。

プログラム技術と直接関係のない質問は
プログラマ板などのほうが適切な場合もあります。http://pc.2ch.net/prog/
JavaScriptの質問はWeb製作板へ http://pc3.2ch.net/hp/
パソコンの基本的な質問はPC初心者板へ http://pc.2ch.net/pcqa/

JavaFAQもご利用ください。
http://www.gimlay.org/~javafaq/javafaq.html

過去ログは>>5-7

『コマンドまたはファイル名が違います』
『'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。』
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』
などの質問の回答は>>2-3

いまからJavaのプログラムを始めたいかたは>>2-4
必要な情報やコンパイラのダウンロード先へのリンクがあります。

携帯・モバイル・iアプリ、サーブレットなどのJava関連スレは>>8-9

諸事情によりリンクがずれた場合は>>2-20
Q. javac コマンドを実行したときに、
『コマンドまたはファイル名が違います』や
『'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。』
と表示されてコンパイルできません。
A. javac.exeへのPATHが通っていません。
http://java.sun.com/j2se/1.4.1/ja/install-windows.html
を良く読んで、javac.exe のあるディレクトリ(例: C:\j2sdk1.4.1_01\bin )のパスを
環境変数PATHに追加してください。
その後、
Windows98/MEの場合はOSを再起動、
Windows2000/XPの場合はコマンドプロンプトを新たに立ち上げなおしてください。
設定したパスが正しければ、javacが使えるようになります。
それでも同じエラーが出る場合は、設定した値が間違っています。よく見直してください。

Q. javac Hello.java でコンパイルはできるのですが、
java Hello を実行しようとすると
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』
と表示されて実行できません。
A. カレントディレクトリ(.)がクラスパス(classpath)に含まれていません。
コマンドプロンプトで、
set CLASSPATH=%CLASSPATH%;.
と設定する。最後の「;」と「.」を見落とさないように!
または、
http://www.gimlay.org/~javafaq/S004.html#S004-02
を読んでカレントディレクトリ「.」を環境変数CLASSPATHに追加してください。

クラスパスとはなにか(JavaFAQ 基礎知識)
http://www.gimlay.org/~javafaq/S004.html
Q. Javaのインストール方法、パスや環境変数の設定方法が分かりません。
A: Java(TM) 2 SDK インストールガイド
http://java.sun.com/j2se/1.4.1/ja/install.html
http://java.sun.com/j2se/1.4.1/ja/install-windows.html

Q: クラスの使い方が分かりません。
A: Java 2 プラットフォーム API 仕様
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html

Q: SDKの仕様や、Javaの使い方、コマンドの使い方を教えて下さい。
A: Java(TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.4/ja/docs/ja/index.html

Q: Javaの言語仕様が知りたいです。
A: Java言語規定
http://www.y-adagio.com/public/standards/tr_javalang/index.htm
http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html

Q: 「僕以外の人も、同じ疑問を持ったはず」と思えるような質問があります。
A: Java House ML Topics / Java FAQ / Java Tips
http://java-house.jp/ml/topics/
http://www.gimlay.org/~javafaq/
http://www.javaworld.com/columns/jw-tips-index.shtml

このほかのFAQ(良くある質問とその回答)はこちら↓をご覧ください。
http://www.gimlay.org/~javafaq/javafaq.html
zusa-
■■■ 過去スレの一覧 (2) ■■■
ネタ心者歓迎!今更ながらにJavaを学ぼう!
http://piza.2ch.net/tech/kako/981/981424252.html
ネタ心者歓迎!今更ながらにJavaを学ぼう! その弐
http://pc.2ch.net/tech/kako/993/993358225.html
ネタ心者歓迎! 今更ながらにJava相談室
http://pc.2ch.net/tech/kako/1003/10035/1003569074.html
ネタ心者歓迎! 今更ながらにJava相談室 その2
http://pc.2ch.net/tech/kako/1006/10064/1006408230.html
ネタ心者歓迎!今更ながらにJava相談室 その3
http://pc.2ch.net/tech/kako/1007/10078/1007802486.html
ネタ心者歓迎!今更ながらにJava相談室 その4
http://pc.2ch.net/tech/kako/1010/10105/1010545421.html
初心者歓迎! Java相談室 その5
http://pc.2ch.net/tech/kako/1012/10129/1012968994.html
初心者歓迎! Java相談室 その6
http://pc.2ch.net/tech/kako/1015/10154/1015418174.html
初心者歓迎! Java相談室 その7
http://pc.2ch.net/tech/kako/1018/10186/1018631329.html
初心者歓迎! Java相談室 その8
http://pc.2ch.net/tech/kako/1020/10204/1020453823.html
初心者無視! Java相談室 その9
http://pc3.2ch.net/test/read.cgi/tech/1021555964/l50
■■■ 過去スレの一覧 (3) ■■■
【初心者・ネタ】Java質問・相談スレ【大歓迎】
http://pc.2ch.net/tech/kako/1021/10218/1021817147.html
【初心者】Java質問・相談スレ2【大歓迎】
http://pc.2ch.net/tech/kako/1023/10233/1023319551.html
【初心者】Java質問・相談スレ3【大歓迎】
http://pc.2ch.net/tech/kako/1024/10248/1024885660.html
【初心者】Java質問・相談スレ4【大歓迎】
http://pc3.2ch.net/tech/kako/1026/10266/1026601774.html
【初心者】Java質問・相談スレ5【大歓迎】
http://pc3.2ch.net/tech/kako/1028/10280/1028096225.html
【初心者】Java質問・相談スレ6【大歓迎】
http://pc3.2ch.net/tech/kako/1029/10297/1029774594.html
【初心者】Java質問・相談スレ6【大歓迎】(本当は7)
http://pc3.2ch.net/tech/kako/1031/10313/1031397913.html
【初心者】Java質問・相談スレF【大歓迎】(重複の7)
http://pc3.2ch.net/test/read.cgi/tech/1032944182/l50
【初心者】Java質問・相談スレ8【大歓迎】
http://pc3.2ch.net/tech/kako/1032/10329/1032944246.html
【初心者】Java質問・相談スレ9【大歓迎】
http://pc3.2ch.net/tech/kako/1034/10343/1034303501.html
【初心者】Java質問・相談スレ10【大歓迎】
http://pc3.2ch.net/tech/kako/1035/10355/1035570359.html
【初心者】Java質問・相談スレ11【大歓迎】
http://pc3.2ch.net/tech/kako/1036/10361/1036142056.html
【初心者】Java質問・相談スレ12【大歓迎】
http://pc3.2ch.net/tech/kako/1037/10374/1037407642.html
【初心者】Java質問・相談スレ13【大歓迎】
http://pc3.2ch.net/tech/kako/1038/10387/1038731106.html
【初心者】Java質問・相談スレ14【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1040150533/l50
■■■ Java関連スレいろいろ ■■■
【IDE 統合開発環境】
【統合】Java開発環境スレ
http://pc3.2ch.net/test/read.cgi/tech/1038118138/l50

【サーバサイドやエンタープライズ】
EJB(初心者歓迎)
http://pc3.2ch.net/test/read.cgi/tech/1017240849/l50
■■ Servlet/JSP(EJB含む) 質問スレ ■■ (WebProg板)
http://pc.2ch.net/test/read.cgi/php/1023501812/l50
《The Jakarta Project》
http://pc3.2ch.net/test/read.cgi/tech/1019996589/l50
TOMCAT
http://pc3.2ch.net/test/read.cgi/tech/998525941/l50
Servlet/JSPのフレームワークを語るスレ
http://pc3.2ch.net/test/read.cgi/tech/1001950590/l50
EJBは終わってる
http://pc3.2ch.net/test/read.cgi/tech/1036481443/l50
JavaサーブレットQ&A LV2
http://pc.2ch.net/tech/kako/1012/10127/1012728608.html
サーバーサイドJAVAをまたーり語るスレ
http://pc.2ch.net/tech/kako/1004/10049/1004972840.html
【携帯・モバイル】
携帯JAVAのスレッド
http://pc3.2ch.net/test/read.cgi/tech/1011977260/l50
iモード携帯電話用Java(iアプリ) Part 3
http://pc3.2ch.net/test/read.cgi/tech/1040898596/l50
iアプリでゲーム (ゲーム製作技術板)
http://game.2ch.net/test/read.cgi/gamedev/1005042631/l50
京セラJAVA搭載PDA「PocketCosmo」 (モバイル板)
http://pc3.2ch.net/test/read.cgi/mobile/1021979970/l50

【その他】
クライアントサイドJavaどうよ? part2
http://pc3.2ch.net/test/read.cgi/tech/1032665721/l50
ム板のみんなでRobocode (・∀・)ヤロ−ウヨ!1台目
http://pc3.2ch.net/test/read.cgi/tech/1020161792/l50
Java 高速GUI SWT
http://pc3.2ch.net/test/read.cgi/tech/1032448424/l50
【徹底討論】Java3Dの可能性について考える
http://pc3.2ch.net/test/read.cgi/tech/1033703640/l50
★お前らJavaはJNIで組もうぜ★
http://pc3.2ch.net/test/read.cgi/tech/1033795664/l50
Javaアプレットのゲームの限界は! (ゲーム製作技術板)
http://game.2ch.net/test/read.cgi/gamedev/1005230153/l50
■■■ 民間サイト ■■■
巨大なJavaリンク集
Java的リンク
http://www.geocities.co.jp/SiliconValley/6064/java_link.html

What's New about Java(Java に関する最新ニュース)
http://www.gimlay.org/~andoh/java/javanew.html

■■■ 無料の統合開発環境 ■■■
【Eclipse R2】
http://www.eclipse.org/downloads/index.php

【Sun ONE Studio 4 (Forte 4)】
http://jp.sun.com/products/software/tools/jde/try/index.html

【NetBeans v3】
http://www.netbeans.jp/dowonload.htm

【JBuilder 7 Personal】
http://www.borland.co.jp/jbuilder/jb7/download/

※2chではないので暴れないように。
■■■ 他板のJavaスレッド ■■■
UNIXでJAVA (Unix板)
http://pc.2ch.net/test/read.cgi/unix/1011292632/l50
LinuxのJAVAチューニングスレ (Linux板)
http://pc.2ch.net/test/read.cgi/linux/1004594459/l50
◆◆◆◆◆◆MacでJava◆◆◆◆◆◆ (新Mac板)
http://pc.2ch.net/test/read.cgi/mac/991194610/l50

■■■ 撲滅させたいかた、死滅を心配してるかた ■■■
CとJavaを比較した場合Cの良いとこと悪いとこ
http://pc.2ch.net/tech/kako/1009/10097/1009707596.html
Java撲滅委員会
http://pc.2ch.net/tech/kako/996/996848309.html
●●JAVAって死滅しちゃうの????●●
http://pc.2ch.net/tech/kako/1005/10051/1005159122.html
●●JAVAって死滅しちゃうの???? PART2●●
http://pc.2ch.net/tech/kako/1006/10060/1006053686.html
●●JAVAって死滅しちゃうの???? PART3●●
http://pc.2ch.net/tech/kako/1008/10081/1008162230.html
Javaって死滅しちゃうの?
http://pc3.2ch.net/test/read.cgi/tech/1042268758/l50
書きこみOK? >>1
おつ
15デフォルトの名無しさん:03/01/13 10:42
JGL って何ですか?
>>15
http://www.recursionsw.com/products/jgl/jgl.asp
Java Generic Library だそーです。

前スレで御世話になった結局JInternalFrameを使うことにした者です。

JDesktopPaneって、デスクトップアイコン感覚で
MyIcon extends JComponent を貼りつけたりできないんですかね?
ダメなら枠とか背景とか消した JInternalFrame を使う手があるのは承知してますが。
(こっちの方が全ての子がJInternalFrameとなって統一感が出て良いのかな・・・無駄な気がするが)
>>17
あれから、ふと思ったのだけどJInternalFrameの該当するソースをぬきだして
自力で実装するという手もあったかも。
19デフォルトの名無しさん:03/01/13 12:40
>16
Java Generic とは違うのね?
>16
日本語解説ページってない?
21あべし:03/01/13 13:07
結局OS再インストールで解決してしまった
打つだし脳・・・・・
なんかボーランドの開発環境ってインストールでやたらトラブルなぁ
開発環境自体は好きなんだけど。
>>21
誰お前?

JDKはSUNが作ってるが。
>>22
前スレ
2417:03/01/13 13:46
分からん・・・。
JDesktopPaneには確かにJInternalFrameを優遇する機構はあるようだが、
だからと言って一般のJComponentを弾く機構は見付からず。
軽量オブジェクトらしいしとりあえずJInternalFrame使うか。
# 軽量オブジェクトが何なのか知りませんが。

>18
オブジェクト指向厨としてはそれは出来ません。
多少重くなっても継承とかメンバ変数を使います。
>>24
本来、使用目的の違うものをむりに使うよりは、
めんどうでも一から実装しなおしたほうが楽でいいよ。
そもそも、ある目的に特化したクラスを、
無理してべつの目的に使うのは苦労が多いし
それはオブジェクト指向的ともあまりいえないかと。

未だなにかに特化していない抽象的なクラスを、
なにかに特化させて用いるか、
もしくはなにかの部品として用いるのならいざしらず。

まあいまの方法でうまくいっているのなら、
そのまま進むのが一番だとはおもうけどね。

でもとりあえず、
>JDesktopPaneには確かにJInternalFrameを優遇する機構はあるようだが、
>だからと言って一般のJComponentを弾く機構は見付からず。
のためにはソースを見るのが一番かと。
2617:03/01/13 14:24
>>25
ウィンドウシステムと今回作っている物(平面上の構造化データのエディタと思ってもらえばいいかな)の共通点
・マウスで移動、サイズ変更、閉じる(削除)、アイコン化(退避)が行える必要がある
・内部に部品を配置する必要がある
違い
・内部に配置する部品がウィンドウシステムでは様々なものが考えられるのに対し、
 3種類(細かく分けると5種類くらいかな)に限られている
・階層化がウィンドウシステムではデスクトップ+MDIの2階層程度が普通なのに対し、
 利用者が望むだけの階層を作れる必要がある(実際にはメモリ限界ですが)。

一つめは別に関係ないし、階層化については setContentPane(desktopPane) で行けますし、
メモリ消費も(比較実験はしてませんが)べとべと書いたのとあまり変わらなさそうなので、無理だという感覚は無いです。
むしろ良いもの見つけた、て感じです。

>ソース
ヘタレなのか見ても分からなかったです。
add周辺とpaint周辺を見てみたんですが・・・・・・。
もうちょい粘れば分かるかもしれないですけど、別に執着していないので。
JavaMail使って、IMAPサーバと通信するサンプルを、JSPで作れって言われたんですが、
Java自体素人な所為でサッパリです。

クライアントアプリでもいいので、IMAP4と通信するサンプルとかって、
どこかにないでしょうか?

+激しく助けてください+
新スレ祝いage
>>28
後で内祝い持っていくよ。
>>27 JavaMail完全解説とかいう本またはそのサイトは駄目?

おれもJavaMailでSMTPのみ使ったことあるけど
エンコーディングに苦労した。
そのときはJavaMail完全解説のサイトからその本の著者が作った
ライブラリを使った。
いまならもっと改善されてそのライブラリすら要らないかもしれない。
SMTPのみなのでPOPとかはわかりません。
>>27
書籍「JavaMail完全解説」※サポートBBS有
http://www.sk-jp.com/book/javamail/index.html

JavaMail(tm) APIを用いたメール受信
http://www43.tok2.com/home/mahkun/pg/java040.html

JavaMail Programming
http://www4.big.or.jp/~tan-y/programming/javamail.html

ざっくりぐぐっただけでも十分な情報が。とりあえずサンプル書いて、
ここに貼れ。
3228:03/01/13 14:40
本は、回りの本屋に売ってないんですよ。
サンプルソースはどれがサンプルになるのか良くわからんです。

んー。。。「JavaMailでメッセージ受信を行うライブラリです。」とかって奴なんでしょうか?

参ったなぁ・・・
3328:03/01/13 14:41
> 31

サンクスコ!

ちょっと、調べてみます。
gikomail が javamail を使ってるみたいだけど。


http://www.geocities.co.jp/SiliconValley-Sunnyvale/9210/
3528:03/01/13 14:58
GikoMailはPOP3への対応のみのようでした。
IMAP4のサンプルって、なかなか無いんですね。
困りました・・・
コレはもう書いたらソース公開するしかないね(w
3728:03/01/13 15:17
Servlet板と、こっちと、どっちに公開したらいいんでしょうね(w;
>>35

>>31の3番目より転載
(前略)
JavaMailは名前通りなんですが、JavaでメールのやりとりをするためのAPIを定義したものです。
JavaMailの特徴は、JavaMail本体はインターフェースの定義が主で実際に通信を行うプロトコルの実装は
「プロバイダー」と呼ばれる部分で実装を行います。従ってプロバイダーを交換してやる事で新しいプロトコルに
対応する事が可能です。その際、アプリケーション側は使用するプロバイダーを変える記述をする以外の変更をする必要はありません。
JavaMail自体がフレームワークとして定義されているからですね。
JavaMail標準アーカイブ(mail.jar)では送信にSMTP、受信にIMAPのプロトコルを実装したプロバイダーが組み込まれています。
(後略)

て事は、このサイトにあるPOP3のサンプルソースをありがたくDLさせてもらって、中の、

 Store store = sess.getStore("pop3");

を、"imap"に変更すりゃいいんじゃないの?
>>37
君が「わからない」ポイントは、JavaMailを使うって部分じゃないの?
「基本的にメールクライアントを」作った上で、その取得した内容をJSPに出力なんだろ?
ならここでいいんじゃないの?

つーか、いろいろ試してみれ。
>>19
基本的にはCollection APIみたいです。
JavaGenericLibraryって書いてあるけど
Tigerで追加予定のGenericsとは関係ないよーで。
4117:03/01/13 15:43
えー。情けない話ですが。
JComponent で普通に通りました。サイズが 0x0 になっていた模様。

getLayout()==null の場合の仕様を、
初期位置が (0,0) サイズがgetPreferredSize() になると思い込んでいたのが原因です。

JInternalFrameを使う時は最初は中身が空→サイズを指定しないとまずいだろ、と
思ってやっていたのでうまく行っていたのですが、今度の場合は大きさ固定の物なので
自動的にやってくれるだろ、と思ってやってました。
くだらないオチですみませんです。お騒がせしました。
4228:03/01/13 15:46
サンプル発見しますた。

ttp://www.sk-jp.com/java/library/
ttp://www.sk-jp.com/java/library/skwebmail/index.html

> ここで公開しているライブラリはすべてフリーです。
> 例えば作者に断ることなくライブラリ単位/ソースの断片の単位で
> 商用製品に使用しても文句はいいません。
> ただし利用はもちろん自己責任でお願いいたします。
> 要するに利用に関しては誰にもなにも制限をつけたくないということです。

らしいです。
世の中には、オトコマエな人がいらっしゃるんですねぇ。
このスレの連中、スキルが低いな。
やっぱり所詮Java厨って事か。
つまらーんところで悩んでるよ(藁
>>43
初心者大歓迎のスレで高いスキルを期待されても…
>>43
そーゆー事は
http://pc3.2ch.net/test/read.cgi/tech/1021555964/l50
とかで言ってください。
46初心者:03/01/13 17:29
今日オライリーのJavaプログラムクイックリファレンスを見てたんですが
2.8LinkedListでわけ分からなくなりました。
オブジェクトの比較でなんで算術演算子=が使われてるのかな。
「オブジェクトへの参照型」というのがなんかぐちゃっとした感じで......
>46
「算術」演算子ではないです。
両辺がオブジェクトの場合、== は
同じ物を指している場合true,そうでない場合falseを返します。

>44 このスレはJava初心者は歓迎しますが、煽りを無視できない2ch初心者歓迎しません。
50初心者:03/01/13 18:20
あれえ?
コードは
public class LinkedList{

public interface Linkable{
public Linkable getNext();
public void setNext(Linkable node);
}
linkable head;
それでメソッドの定義が続くんですが、たとえばこのように
public synchronized void insertAtHead(Linkable node){
node.setNext(head);
head=node;
}
なっていて、これはオブジェクトの比較ではないんでしょうか?

>>50
> head=node;
は比較じゃなくて代入でしょ。
52山崎渉:03/01/13 18:24
(^^)
5350:03/01/13 18:40
すみません、
なんとなく分かりました。
オブジェクトもなんらかの値をもっているということなんでしょうか。
>>53
誰にも分からないJava講座の
ttp://park.ruru.ne.jp/ando/work/who/html/cc.html#doc1_2
あたりを読むと納得がいくかもしれん。要はポインタ同士の代入だわな。
5550:03/01/13 19:59
>>54
どうも
自分でコードをを書いてみてそれがぐうーっと動く感じがほんのり分かった感じです。
56超初心者:03/01/13 21:16
質問です。
Windowsでjavaを利用したネットワークシステムで、
クライアントのアプリケーションを実行、操作するようなシステムを作りたいと思っているんですが、
可能でしょうか??
良い方法かホームページなどあったら教えてください。
お願いします。
57デフォルトの名無しさん:03/01/13 21:17
スレッドにsynchronizedをつけるのとオブジェクトにsynchronozedをつけるのと
何が違うのか教えてください。
オブジェクトをロックするってことは同じだと思うのだが…
> スレッドにsynchronizedをつける

???
>>57
>>56
質問が漠然としすぎてる…
>>60
要は相手のPCに常駐させて寝てる間にいろいろしちゃおうって話だろ。
学校で習ったjava使って。
>>61
VNC みたいな奴?
IBM が何か作ってなかったっけ?
>>62
VNC for Javaってのが存在したと記憶。
6462:03/01/13 21:29
いちおう悪いことに使う気は全くなかったのですが。。。
まさにそのVNCみたいなやつです。
すいません、java で vb の #if みたいのってどうやってやるんでせう…。
>62
サーバ側でポート開いてメッセージ待って、メッセージを受けてコマンドを実行して、結果を返せばいい話?
下記のネットワーク系のAPIをしばらく眺めて、気になる単語を検索し勉強して、計画が出来たらここで立案してみ。
採点・修正したげるから。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/net/package-summary.html

>65
vbはよく知らんが、それって
#if DEBUG
とか書く奴?だったらCのプリプロセサと同じだな。
Java にはそんなものは美しくない物は無い。
適当な static クラスを用意して、そこから定数を読むようにすれば
コンパイル時に最適化されて同様の効果になる。
>>56
RMIとかCORBAで検索をかけるとよろしいかと。
ほかに「分散コンピューティング」「エージェント指向」
などの言葉とJavaで複合検索するのもおすすめ。
6865:03/01/13 21:59
>>66
なるほどわかりやした。m(__)m
>66 の >62 は >56 の間違いです。あと偉そうですいません。
4nd・・(ププッ
>>57
スレッドににsynchronizedをつけるとは、
具体的にいうとどういうことなのでしょうか。
7256:03/01/13 22:24
ありがとうございます。
といあえずこれらを参考になんとか勉強してみます。
またわかんないとこあったらお願いします。
>>57
質問がアバウトだけども、synchronizedは、要するにオブジェクトの変遷を同期化します。(この答えもアバウト?)
スレッドだろうがなんだろうが、です。
>>57
要するに「2台同時に突っ込まれて来ても困るドライブするー」において、先に来た1台がなんかしてる間、
後の1台(以上)の車を待たせておくって事。
75デフォルトの名無しさん:03/01/13 23:53
質問します
GUIアプリケーションでフレーム(ウィンドウ)部分を
表示せずに、中身だけ表示するにはどうすればいいですか?
>>75
質問されている絵ヅラが浮かびません。
>>75
java.awt.Window とか javax.swing.JWindow 使うとか?
78デフォルトの名無しさん:03/01/14 00:08
>>75
Applet
79デフォルトの名無しさん:03/01/14 00:11
>>76
わかりにくかったみたいですね。
すみません
例えば、デスクトップ上に、ボタンが浮かんでるような
状態にするとかという意味です。
>>77,78
できればもう少し、詳細にお願いできますか。
それだけでは、想像もつかないので。
>>79
頼むからJavaで訳わからんもん作るのやめて下さいよ・・・。
良くも悪くも箱庭言語なんですから。
81デフォルトの名無しさん:03/01/14 00:15
つまり、無理ってことでしょうか。
それならあきらめます。
82デフォルトの名無しさん:03/01/14 00:18
>>80
禿同
そもそもJavaでGUIアプリを作るほうが愚か。
意地悪せずに、教えてやれよ。
地に落ちたJava厨やJavaプログラムの外聞なんて、
今更気にしたってしょうがないだろ。
デスクトップ上に、ボタンが浮かんでるようなアプリ、
Javaらしくて最高じゃん。
>>83
その手の話は
http://pc3.2ch.net/test/read.cgi/tech/1042268758/l50
でお願いします。
>75 ほらよ。

import javax.swing.*;
import java.awt.*;

for(int i=0;i<768;i++){
JWindow w = new JWindow();
w.setLocation(i,i);
w.setSize(100,100);
w.getContentPane().add(new JTextField(),BorderLayout.CENTER);
w.show();
}

一応言っておくが、2行冗談が入ってるからそのまんま実行するなよ。
88デフォルトの名無しさん:03/01/14 00:36
いろいろありがとうございました。
参考にしてもう少しがんばってみます。
デスクトップ上にボタンが浮かんでるソフト。見たい、見たいぞよ。
他人のパソコンにインストールして、一度使ってみたいぞよ。
良いじゃないか別に何だって…
>>89
>>86のコードに5,6行つけくわればできる。
つーかじっさいにいま作って実行してみたがすごい光景だ…。

>>84はJavaらしいというけれど、
なんかこれ、俺のイメージするJavaアプリとは
随分と、かけ離れているんですが…。絶句というかちょっと驚いた。
>>79 わざわざそういうものをJavaでつくるということは
Windows以外の環境でもそれを実現させたいわけですか?
Javaフリークな私からすれば
Windows以外でも動くアプリ作って普及させて欲しいなとは思いますが。

>>80 >>84 Javaで作っておけば将来そのプログラムが長生きする可能性が
残るから、まあいいのではないかと。
9379:03/01/14 01:26
>>92
Javaで作ってる理由は、Javaの勉強のためという以外に、
特に深い理由はありません。
>>93
勉強のためとの事なので、念のため。
考え方として、>>86のソースにも書いてあるが(@see javax.swing.JWindow)「Windowが無い状態」でも、
その「コンテナ」は必要。場合によって、それを見せないだけ。あるいは、見えないようにするだけ。
と、考えてみるべし。

ちなみにC/C++でWin32プログラム作る時も同様。
スレ違いかもしれんが

> ちなみにC/C++でWin32プログラム作る時も同様

何か誤解してると思う。
96イヌ:03/01/14 02:15
最近、weblogicでJSPやってます。プログラムを途中で終了させたいと思い、
System.exit()を使ったのですが、weblogicごと落ちてしまいます。
Java VMの処理を終了する、とはそういうことなのですか…。
JSPでプログラムを終了させるには、通常どうするものなのですか??
スレ違いかも知れませんが、ご存知の方、どなたかお助けくださいませ。
>>96 Tomcatなら startコマンドで、起動、stopコマンドで停止だが。
OSは何? WinNT系ならコントロールパネルのサービスで起動と停止ができるんでない?
最近のはOSが起動すると同時にServletContainerも起動するみたいだ(Tomcatインストーラの拡張子exeかmsi版)。

終了ってどういうもの?
ブラウザで表示するだけなら、終了しないでほっといていいんでない?
98イヌ:03/01/14 02:32
>97
どうもありがとうございます。
でも、そういうことではなく、JSPのソース内で、文字列の表示と
プログラムの終了を、if()で切り替えたいのです。
if(xxx!=null){
  %>文字列表示<%
}else{
  このスクリプトを終了させたいけど、
  System.exit(0)は使えないみたい
}
%>まだまだ続きはあるの<%


こんな場合、どうすればいいのでしょう。
System.exit()は、確かにプログラムは終了するのですが、
weblogicごと落ちてしまうのです。ちなみに、OSは、unix系です。
>>98
returnしてしまってその後の処理を中断するとか、
エラーページ送出にディスパッチするとか、じゃないのかね。
100javax.sound:03/01/14 03:18
JAVAでボタンを押して音を鳴らすにはどうしたらよいでしょうか?

au1 = getAudioClip(getDocumentBase(),"ファイル名.mid");

という部分で何度やってもエラーが出てしまいます


>>95
スレ違いだから別にいいけど、なんで?

>>100
ちなみに
java.applet.Applet#getAudioClip(url,name)の事で、そこで使用しているインスタンスは、
java.applet.AudioClipだよね?(ちゃんと書くように)

つーか、それってMIDIも大丈夫なんだっけ?Appletは良く知らんけど。
103デフォルトの名無しさん:03/01/14 03:31
"Audio","Clip"って、"*.wav"じゃなかったっけ?
104javax.sound:03/01/14 03:58
java.applet.AudioClipです(すいません)

auとmidは大丈夫らしいですけど・・・

>>100
SecurityExceptionじゃないだろうな?
ていうかエラーの内容書かないていうのは、俺らに対する挑戦か。
>>106
そんなところだ。
>>100
>>1に書いてあることをよく読まれるとよいかと。
>>108
読んだけど答えが書いてません。
>>109
>質問のさいは状況が相手に伝わるように書きましょう。
>エラーコードなどもしっかり書いたほうが適切な回答を得られます。

>>100のような質問の仕方では適切な回答を得るのは難しい。
>>110
何真面目に答えてんの?
>>109見る限り逆ギレするタイプだろ。放置。
>>111
109と100は別人と思われる。
100、104の名前欄を109と較べて見れば
その可能性が高いとみるほうが自然。
もちろん>>100のような質問では回答のしようがないことには同意だが。
114イヌ:03/01/14 09:05
>99
関数ではないので、returnは不可能です。
そして、他のページにも飛びません。
正常終了で、もう出力はないときに、どう終了すればいいのか
知りたいのです…
もちろん、なければ関数化するとか、ifの構造自体を変更する、
という手は考えています。
>>110 >>111 >>112
もうそろそろ反省しただろうから答えてあげたら?
>>115
どんなエラーが出るの?それ先に書いてよ。
>>114
JSPは関数だよ。ていうかやってみたの?
>>114

異常時に途中で終了するのは仕方ないが、正常時に途中で終了するような
処理は書かない方が身のためだぞ。

>>117

JSPは関数というのも問題があると思うんだけど。
119イヌ:03/01/14 10:59
>117
return で終了できました。どうもありがとうございました。
コンソールアプリ同様、main()が呼ばれている感じなんですね。
その内容、どこで定義されているのでしょうか?
ご存知なら、教えていただけますか?

120U ◆CZtFsGiu0c :03/01/14 13:40
>>119
JSPはサーブレットに変換されます。通常そのサーブレットはHttpJspPageを
実装したもので、HTMLべた書き部分、スクリプトレットなどは_jspService
メソッド内に展開されます。

Weblogicだとどこにあるかわかりませんが、どこかにJSPをサーブレットソース
に変換したファイルがあると思いますから、探してみてください。

暇つぶしに標準配布の Java ドキュメントあさってたら下のようなものを
見つけたけど、誰か使ったことある人いたら使い物になりそうな出来か
教えてくだされ。

> MIF ドックレット - 実験的 - MIF (Maker Interchange Format) 形式で
> API ドキュメントを生成します。 これらの MIF ファイルは、Adobe
> FrameMaker (または fmbatch) で開くことができ、またオプションで PDF、
> PS、Microsoft RTF、Microsoft Word、または WordPerfect 形式に変換
> できます。 Java 2 SDK には含まれていません。
123イヌ:03/01/14 15:10
>120
どうもありがとうございました。スッキリしました。

続いて初歩的な問題かもしれませんが、質問させてください。
StringBufferは、配列にすることはできますか?
>>123
StringBuffer stringbuf = ....;
char[] array = stringbuf.toString().toCharArray();

とかって事ではなくて?
125デフォルトの名無しさん:03/01/14 15:16
Stringの中に数字が入ってるかどうかを調べるには
どうすればいいでしょうか?
ご教授ください。
>>125
数字ってのがどの程度の塊であるのか知らんけど、

for(int i = 0; i < str.size() ; i++){
 if( Character.isDigit(str.charAt(i)) )
  return true;
}
return false;

とか やるとか。
>>126
>for(int i = 0; i < str.size() ; i++){
じゃなくて
for(int i = 0; i < str.length() ; i++){
だった…
>>125
String str; が数字だけかどーかを調べるんだったら
try{
 Integer.parseInt(str);
 return true;
}catch(NumberFormatException e){
 return false;
}
とか。例外処理機構使うからアレだけど。
>>126
おっさん、true と false + 否定が逆だろう。それだと最初の 1 文字目が数字なら
必ず true で返るぞ。

俺はこうするが

try{
  Integer.parseInt(str);
  return true;
} catch(NumberFormatException ex){/* */}
return false;
130デフォルトの名無しさん:03/01/14 15:39
>>126-129さん
レスありがとうございます。
非常に参考になります。

>>128さん
>例外処理機構使うからアレだけど。
とありますが、例外処理を使うと何かデメリットがあるのでしょうか?
131デフォルトの名無しさん:03/01/14 16:10
配列についての質問です。
基本データ型の配列の場合は下のようにObject型の変数で受け取れるのに
int[] sizes = {2, 4, 6, 8};
Object obj = sizes;

参照型の配列の場合には下のようにObject型の配列で受け取るようにするのは
どうしてでしょうか?
Test[] test = new Test[4];
Object[] obj2 = test;
>>129
>>126 のは一文字でも"数字"が入っている場合は true、
という意図で書いてるのでアレでおっけーです。
>>131
>参照型の配列の場合には下のようにObject型の配列で受け取るようにするのは
>どうしてでしょうか?
何を疑問に思ってるのか良くわからないっす…

ちなみに
Test[] test = new Test[4];
Object obj2 = test;
でもコンパイル通るでしょ?
>>130
>例外処理を使うと何かデメリット
とりあえずJIT様が最適化しにくいってのと
例外処理自体が結構重いってので速度面でデメリットがあります。
135デフォルトの名無しさん:03/01/14 16:34
>>134
レスありがとうございます.
勉強になりました。
136デフォルトの名無しさん:03/01/14 17:55
>>131
JavaのすべてのクラスはObjectクラスから派生されているんじゃないの?
>>131
プリミティブタイプはObjectのサブクラスではないので、
int[] sizes = {2, 4, 6, 8}; のような「intの配列」は
「Objectの配列」として扱うことが不可能だからです。

しかしプリミィブタイプ以外のJavaにおけるすべてのタイプはObjectのサブクラスなので、
Test[] test = new Test[4]; のような、「プリミティブタイプ以外の配列」は
「Objectの配列」として扱うことができるわけです。

故に、
>配列についての質問です。
>基本データ型の配列の場合は下のようにObject型の変数で受け取れるのに
>参照型の配列の場合には下のようにObject型の配列で受け取るようにするのは
>どうしてでしょうか?
と尋ねるよりは、むしろ、
基本データ型の配列の場合は「Object型の配列」の変数で受け取れないのはなぜでしょうか
と尋ねるべきかと。

敢えて>>131の質問に答えるのなら
「参照型の配列(つまりプリミティブタイプ以外のタイプの配列)」の場合には
Object型の配列で受け取ることが可能だから、Object型の配列で受け取るし、
プリミティブタイプの配列の場合は、Object型の配列で受け取ることが不可能だから、
Objectで受け取っているということです。
>>136

言いたいことは分かるが、その表現は正確でないです。
インスタンス・オブジェクトはjava.lang.Objectを継承しているが、Classオブジェクト
はjava.lang.Classを継承しています。
>>138
私は>>136ではないが
java.lang.Classはjava.lang.Objectのサブクラスではないか?

java.lang
クラス Class

java.lang.Object
|
+--java.lang.Class

http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/Class.html
Class (Java 2 プラットフォーム SE v1.4.0)
140138:03/01/14 18:25
>>139

そのとおりでした。失礼しました。
131じゃないけど、
なんでプリミティブタイプの配列はObject型で受け取れるの?
>>141
Javaにおいては、
「配列はオブジェクトとして扱う」という規則があるから。
もちろん、その配列の中に格納されているプリミティブタイプ自体はObjectではないので、
プリミティブタイプの配列はObject[]に格納することは不可能。
でも上記の規則によってプリミティブタイプの配列自体は、
これも一種の配列なのでObjectに格納することが可能。

ああややこしい。
143デフォルトの名無しさん:03/01/14 19:19
公開されているソースを自分ので動かしたいのですが、
コンパイル時点で「推奨されないAPIを使用」とか
出てきてエラーになってしまいます。
何か別にすることはあるのでしょうか?
初心者なのでお願いします!
144デフォルトの名無しさん:03/01/14 19:26
>143
公開されてる場所に情報があるかもしれないので確認せよ
あとそのような質問の仕方では誰も対応できない
あなたがどんな環境でどんなソースをコンパイルしているのかわからないから
質問するときは相手の立場にたってしなさい
>>143
javac -deprecation **.java
>>143
ここなどを見られると自身で対処できるようになるかと。
http://java-house.jp/ml/archive/j-h-b/044529.html
http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/solaris/javac.html
147143:03/01/14 19:35
>>144
すみませんでした。
ttp://sula0015.soc.shimane-u.ac.jp/socinfo/lang/java/gameland/games.htm
のページの「カギを見つけて脱出せよ」というゲームです。
ソフトはsdk1.4.0を使っています。
使われているものと違うとコンパイルできないのですか??

>>145
何やら10のエラーが出てきちゃいました…。
148143:03/01/14 19:41
>>147
ありがとうございます!
推奨されないクラスとかってあるんですね?
ソースがまだ読めないので…
149146:03/01/14 19:43
たいして変わりはしないとおもうが、
>>146のリンク先よりは、おそらくこちらのほうがよかったかな。
http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/win32/javac.html

>>147
そういうことなら、もしかすると
javac -target 1.1 コンパイルしたいクラスのファイル.java
だけでもどうにかなるかも。
150146:03/01/14 19:52
Javaも、1.0から1.1にバージョンアップしたときに大きく変わりましたし、
1.1から1.2のバージョンアップのときにも、また大きく変わりました。

こういったバージョンアップのさいに、
「推奨されないAPI」が生まれるわけです。

これから勉強するのなら、まあマイクロソフトのVM用や、
OS X以前のマッキントッシュ用にアプレットを作るのでもない限り、
せめて1.2以降のソースで学習したほうがよいかと。

仕事でアプレットを作らなければならないとかいうことでないのなら、
個人的にはアプレットよりもJava Web Startのほうがおもしろいかと。
151デフォルトの名無しさん:03/01/14 20:43
ちょっと前にJava始めました。
入門書に書いているソースどおりに書いて、Applet作ったんだけど,
appletviewerでは表示されるのに、なぜかhtmlを開いた時は灰色でしか表示されません。
MicrosoftVMもJavaVMもDLしているし、他に手のつけようがありません。
だれか表示できる方法を知っていたら教えて下さい。
>151
>MicrosoftVMもJavaVMもDLしているし、
両方あってもいいわけじゃないんだけど。
とりあえずJavaVM(sun製の奴か?)を使うように設定する。
それから、コンソールを表示してエラーログを見て対策を自分で考えろ。
それでも分かんなかったらそのログをここに貼れ。
153146:03/01/14 21:19
>>151
おそらくそれも>>149にある
javac -target 1.1 コンパイルしたいクラスのファイル.java
で解決するかと。

現在のjavaコンパイラは、
そのままでは1.1用のバイトコードを生成してくれないのです。
1.1用のバイトコードを生成するためには
-target 1.1というオプションをつけてコンパイルしてやる必要があるのです。

灰色の画面しか現れないのは、おそらくブラウザが使用するJavaのVMが、
マイクロソフトのVMになっているからでしょう。
マイクロソフトのVMのヴァージョンは1.1なので。
>>151
MSJVMの場合は InternetExplorer で
ツール->インターネットオプション->詳細設定->MicrosoftVM->Javaコンソールの使用(再起動が必要)
にチェックすれば
表示->Javaコンソール
でJavaコンソール見られるので
(以下 >>152 の後半と同じなので略)
>>149
ところで「推奨されないメソッド」って
-target 1.1 でどーにかなるんだっけか?
156ケイ:03/01/14 21:36
はじめまして、ケイと申します。
いきなりの質問すみません。
5*d^2x/dt^2+2*dx/dt+3x=0 t=0の時 x=1 dx/dt=0
というのがあたえられていて、ヒントとして
dx/dt=y
dy/dt=-2y/5-3x/5
t=0〜50の範囲で時間間隔を1秒おきでxを求めたい
のですが正直解法が全くわかりません。これをオイラー法、2次のルン
ゲクッタ法で解きたいのですが、誰か分かる方はいらしたら、どうか
よろしくお願い致します。ちなみにこの二つの公式は分かるのですが、
実際どのようにつかうのかが分かりません。
157146:03/01/14 22:04
>>155
この場合の推奨されないAPIは警告にすぎずコンパイル自体は通るので、
なにか問題があるとしたら生成されるバイトコードと
アプレットを実行するブラウザのVMのバージョンの違いとみた次第。

>>156
>t=0〜50の範囲で時間間隔を1秒おきでxを求めたい
tを秒数とするのなら、
tを引数としxを返り値とするメソッドを作り、
あとはforループでそのメソッドを呼び出し
結果は配列にでも格納してゆけばよいのでは?

for (int t = 0; t <= 50; t++) {
x[t] = method(t);
}
>>156 数値計算か。
大学で数値計算の授業かなにかの課題で出そうなネタだな

アルゴリズム関係か
C言語だけど、この本なかなかいいよ。ポインタ演算とか(殆ど?)使ってないから
すぐにJavaに変換できるよ。
http://www.sra.co.jp/people/miyata/algorithm/

Javaならこういうのあるよ。この人も凄いね。
CCSドキュメントに載ってないかな?
http://www.cmt.phys.kyushu-u.ac.jp/~M.Sakurai/java/numerical1.html

まあ、Javaは数値計算に弱いっす。FortranやMATLAB,Mathematicaには勝てんかな?
Javaで数値計算の本なら2冊ほどあったと思った。片方はOO殆どつかってなくてつかえんかったよ。
C言語でできることをそのままJava化しただけでOOの特性生かされていないのがあったよ。
どうでもいいことまで書いてしまいました.....。ま、がんばってちょ
159143:03/01/14 23:30
>>157
いろいろ試してみたのですが原因がわかりません…。
1.1を使ってコンパイルしてもAPIの警告がでてしまいました。
でappletviewerで見ても動きません。
1.4.0の新しい書き方があるのでしょうか?
>>159
Javadocに、これの代わりに何々をしようするとか書いてあるよ。
書いてないことも結構あるけどね。
161146:03/01/15 00:01
>>159
動かなかったか。ごめんね。
ところで下からdungeon.mapとかの必要なファイルは
ダウンロードしてくるなり、自分で生成するなりはしたんだよね?
http://sula0015.soc.shimane-u.ac.jp/socinfo/lang/java/gameland/dungeon/dungeon.map

うちでは1.4のコンパイラでコンパイルし、
(もちろんコンパイル時に警告はでたけど)どうにか動いたのだが、
もしなにをやっても動かないようなら、
JDK1.02よりもあたらしいバージョンのJavaで書かれたソースを探してきて
それで勉強したほうがいいかと。
162143:03/01/15 00:09
>>146
dungeon.mapの使い方が分かりません…。
できれば教えてください、お願いします!
163146:03/01/15 00:15
>>162
ただダウンロードしてきて、
生成されたdungeon.classとおなじディレクトリに置いておくだけ。
あとkero.gifの画像ファイルのダウンロードも忘れずに。
http://sula0015.soc.shimane-u.ac.jp/socinfo/lang/java/gameland/dungeon/kero.gif

でも、最初はもっと簡単なプログラムで勉強したほうがよろしいかと。
164146:03/01/15 00:17
それと>>154などを参考に、
実行時に出力されるエラーログを見たほうが解決は早かったかと。
165143:03/01/15 00:37
>>146
他のアプレットは同じようにしたら動きました!
基礎的なことがまったく分かっていませんでした。
ありがとうございます
dungeon.mapは拡張子はgifでいいのですか?
ファイルで名前を付けて保存しちゃったのですが…
166146:03/01/15 00:41
>>165
dungeon.mapの拡張子はmap。
"dungeon.map"というファイル名ね。

最初はもっと簡単な、たとえば画面に
Hello Worldと表示したり、
あるいはgifかなにかの画像ファイルを
描画するようなプログラムから始めたほうかいいとおもうよ。
167143:03/01/15 00:49
>>146
はい…本当はそうしたいのですが、
金曜までにゲームを作れ!という課題がでてるのです。
内外設計書まで書いたのですが、JAVAの知識が無さすぎました。
そこでテンプレを探してたのですが、まったく動かず…
前にじゃんけんゲームのテンプレで他のゲームを作れたので、
今回もと思ったのです。。
>>167
どんな規模でどんな内容のゲーム?
オシエテクリ
169143:03/01/15 02:30
>>168
パックマンに近いゲームを作ろうとしています。
ある程度ゲームなればいいらしいっす。
でもネットにソースが落ちて無いんですよね…
7行スレにパックマンなかったっけ?
171143:03/01/15 02:38
>>170
え!7行スレってどこですか??
http://pc.2ch.net/tech/kako/984/984182993.html の 905。
が、解析するより自分で考えた方が早いと思われ。
>>172
パックマンなら中学の時、2時間(部活)で作った事ある。
クライアントスレで拾ってきたんだがこいつは綺麗だね
http://www.incors.com/alloylnf/jws/alloyDemo.jnlp
つーか、初心者大歓迎!だから別にいいんだが、そんな切羽詰ってるなら、
2chでレス待つより先に調べる場所なり資料なりあるんじゃなかろうか、と言ってみるテスト。
「こうすれば動く」からこう書くのでなく、「これが動く理由はこうじゃないかな?」っていう
Try&Errorが自分を育てるYO。

あと、ゲーム作りのポイントは言語がどうのというより、まずアルゴリズムとその土台。
「やり易い環境」「やる辛い環境」(VBなら楽だけど、Javaだと大変。あるいはその逆)てのがあるので、
その辺を今後はじわっと考えて、いろいろ試すといい。
176イヌ:03/01/15 13:00
以前、同じ質問をさせていただいてますが、改めてもう一度させてください。
StringBuffer型の配列を作ることは、可能ですか??

int[] aaa = new int[10];

みたいな感じで、

StringBuffer[] xxx = new StringBuffer......

のようなことができたらなーと夢見る今日この頃。
177デフォルトの名無しさん:03/01/15 13:10
StringBuffer[] xxx = new StringBuffer[10];

でOKでないの?
>>174 おお、ついにJavaもここまで来たか。
javaw.exeとJavaWebStartでこういうことができるとは知らなかった。
あのアルファチャンネルのようなMacのようなガラスのように透き通るボタン
グラデーション、しかもGUIなのに遅くない。

テーマも変えられるのははじめてみた。
Swingというと、今まで紫色のSolarisカラーばかりだった。
この色をみただけでSwingを嫌がる人もいたのではないか、と思う。

>>177 ついでに説明するなら
for(int i = 0; i < xxx.length; i++){
xxx[i] = new StringBuffer();
}
も加えておいとくべきでしょ
17928:03/01/15 13:51
中間報告です。

> 38
> Store store = sess.getStore("pop3");
> を、"imap"に変更すりゃいいんじゃないの?

とりあえず、これでIMAPサーバとの通信はできました。
んで、メールも取得できるんですが
ttp://www.hellohiro.com/javamailpop.htmのサンプルだと
"text/html"メールの際にエラーが出ちゃいます。

んで、GikoMailのメール取得部分を調べながらコツコツやってるんですが
うまくいかなくて困っております。

後、JavaMailのリファレンスはココに乗っていました。
日本語なんで重宝しています。
ttp://java.sun.com/j2ee/sdk_1.3/ja/techdocs/api/
単純な質問で申し訳ないのですが、
別のファイルで作ったクラスを読み込むには如何したら良いのでしょうか?
>>180
InputStream in = new FileInputStream("Hoge.class");
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
while(true){
int len = in.read(buffer);
if(len < 0) break;
out.write(buffer, 0, len);
}
byte[] content = out.toByteArray();
182180:03/01/15 14:09
>181

えーっと、これってファイルを読み込んでるんですよね?
説明のしかたがマズかったです。スマソ。

File [SmpMain.java]

public class SmpMain {
 public static void main(String[] args) {
 }
}

File [SmpClass.java]
public class SmpClass {
 private int val;
 
 SmpClass{
  val = 0;
 }
 
 public void subClass() {
  System.out.println(val);
 }
}

こー言った場合に、mainでsubを利用するにはどうしたら良いのかなーと・・・
>>180
二つのファイルを
おなじディレクトリにおいておくだけでいいよ。

// A.javaのファイル
public class A {
 public B b = new B();
}

// B.javaのファイル
public class B {
}

/*
A.java と B.javaをおなじディレクトリにおいて、
javac A.java をコマンドラインから入力すると、
コンパイラが自動的にB.javaのファイルも読み込んでコンパイルしてくれる。
*/

さらに詳しいことが知りたくなったら、
「パッケージ」とか「クラスパス」とかのことを調べてね。
184180:03/01/15 14:12
>183

ヽ(´ー`)ノ ワーイ
>>182
えーと、おれが説明したようなことではなくて、
インナークラスの話か。

subというのはsubClassのことていいのかな?
186180:03/01/15 14:18
そです、サブクラスです。

インナークラスって言うんですか。
勉強不足でスマソ
>>185
クラスが何かもわかってなくて、
メイン処理とそこから呼び出すサブ処理というようにわけているだけかと。
>>186
いや失礼。よくよく見るとインナークラスではないんだな。
>>183に書いてあるように、ふたつのファイルを同じディレクトリに入れておいて
あとはFile [SmpMain.java]をこう書くだけでいいよ。

public class SmpMain {
 public static void main(String[] args) {
  SmpClass smp = new SmpClass();
  smp.subClass();
 }
}
あとFile [SmpClass.java]だが、
これの4行目が、もしコンストラクタを書きたかったのなら、
 SmpClass{ 
ではなく
 public SmpClass() {
に修正してください。
190180:03/01/15 14:34
> 183, 185

ウマーく行きました。
サンクスコ。
191デフォルトの名無しさん:03/01/15 15:27
マウスを使って絵を描くプログラムはできたんですけど、
最大化や画面からでた時、描いた線が消えるんですよ。
再描画って、どうしたらできますか?
おしえてください。
192デフォルトの名無しさん:03/01/15 15:40
http://www6.ocn.ne.jp/~endou/index2.html
    ★YAHOOOプロフィール★
>>191
描画した画像のデータをクラス内部に持たせておき、
swingならpaintComponent()、AWTならpaint()内に、
その画像データをもとに、画像を描画するプログラムを書く。
194デフォルトの名無しさん:03/01/15 15:51
>193
全部の線とか○とかを描き直さなきゃいけないのでしょうか
195イヌ:03/01/15 15:57
>177, 178
ありがとう!!StringBufferが配列になったワン!!
196デフォルトの名無しさん:03/01/15 16:07
ある時間がきたら指定したプログラムを動作するようなプログラムを
作りたいんですがどうしたらいいのでしょうか・・。
またこのプログラム本体にパラメータの受け渡しもしたいのですが無理でしょうか?
197デフォルトの名無しさん:03/01/15 16:20
>>196
ある時間までぼーっとしてるプログラムを書けばいい。
私はcronを利用してEJBを起動させてました。
アプリケーションサーバでもそうした機能を搭載しているものも
あるようです。
自力実装するのであれば、起動時に次のスケジュールの時間まで
Thread.sleep()させるというやり方でできるかもしれませんね。
まぁうまくおきてくれるとは限りませんが・・・。
199デフォルトの名無しさん:03/01/15 16:22
>193
なんとなくですが、わかりますた。
ちなみに私はチョソですが、何か?
>>198
cron のが良いでしょうね。

Javaでやる場合はこんな感じっすかね?
Calender time;//指定時間
long sleepTime = time.getTimeInMillis() - System.currentTimeMillis();
while( 0 < sleepTime ){
 try{
  Thread.sleep( sleepTime );
 }catch( InterruptedException exception ){
 }
 sleepTime = time.getTimeInMillis() - System.currentTimeMillis();
}
....; //プログラムを実行。
>>194
うん。

>>196
Timerを上手に使う。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/Timer.html

プログラム本体へのパラメータの受け渡しは、
java プログラム名 引数1 引数2 引数3...(以下すきなだけ)
これでmain(String[] args)の
String args[0]に 引数1が入力される。
202196:03/01/15 17:14
197-201ありがとうございます。
cronって初めて聞きました、それを使ったほうがいいのですか?
JSPからパラメータをつけそのプログラムに渡して
また時間がきたら別のJSPにパラメータを渡して起動しようとしたいのですが
JSPから.javaを呼び出しパラメータを渡せばいけるのかな。
timer関連勉強してみます^^
swingだと
オフスクリーンに書いておいてsetIconで描画すればいいんだよ。
paintComponent()なんて使わなくていいYO!
↑遅いいくない?

Image img=crateImage(100,100);
Graphics g=img.getGraphics();
g.drawRect(0,0,99,99);
g.dispose();
ImageIcon ii=new ImageIcon(img);
setIcon(ii);

だぞ
205デフォルトの名無しさん:03/01/15 17:43
>>203
真性発見、記念age
206山崎渉:03/01/15 17:44
(^^)
質問すたいことがあります。
System.gc()を使えば、参照されていないオブジェクトを
本当にすべて掃除してくれるのですか?
自作のJavaアプリを長時間動かしつづけていると次第に重たくなってしまう
のです。それでSystem.gc()を入れてみたのですが一向に軽くならないです。
一言でよいので助言ください・・・・・・・
>>207
じゃあ参照残ってるんだろ。
209デフォルトの名無しさん:03/01/15 18:19
実行時のプロセスIDを取得することは可能ですか?
シェルの機能で渡すことはできるようですが、Windowsでは?
>>207
Runtime#maxMemory()
Runtime#freeMemory()
Runtime#totalMemory()
等を使ってgc前後のメモリ量みてみるとか。
211207:03/01/15 18:36
>>210
起動時にメモリを64MB取って
それを試してみたんですが、だんだん
47→32→14→5→1・・・
と減っていくのです。一応15MBくらいまでは回復するようですが
それ以上は回復せず、1〜15MBあたりを行ったり来たりしています。

static int[] dat=new int[100000];
dat配列の中身を操作し、中身が変更されるたびに
VectorクラスへaddElement()やremove()しています。
>205
おいおい、一番厨房なヤツがなに言ってんだ?プ
>>211
で、自分で使ってるメモリ量は?
dat は一個で 400,000バイト使うけど。

dat と同じものが100個ぐらいあって、
常に新しい dat を生成 & 古い dat を廃棄してる場合は
そんなモンじゃないかと思うけど。
>>211
俺もそんなものだとはおもうけど、
一応、Vectorの現在のサイズなども毎回表示させてみては?
>>213
VectorやJavaの仕組みは分からないのですが、そういうものなのでしょうか?

static int[] dat=new int[100000];
Vector vec=new Vector(); // datを入れるもの
int[] ref;
ref=dat; // 参照

ここでref[100]=123;等、いろいろ代入する。

vec.remove(7); // vecには8個までdatを入れるのでケツの古いものは消す
vec.insartElement(ref,0); // 先頭に新しいdatを挿入する

本当はもっと複雑なのですがやっていることは大体上のとおりです。
vec.remove(7);の部分で参照が外されると思っていたのですが・・・。
↑207の者です
>>215
とりあえず vec.size() で要素数取ってみたら?
>>215
WeakReferenceでも使ってテストしてみては?
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/ref/WeakReference.html

使い方がわからなければ下のページあたりをご参考に。
http://www.wakhok.ac.jp/~tatsuo/kougi99/8shuu/kougi.html
http://www.wakhok.ac.jp/~tatsuo/kougi99/8shuu/jisshuu.html
>>215
vec.size()で調べてみましたが、ようその数は8以上にはなっていませんでした。
-verbosegcオプションでGCの行動を調べてみたると、どうやら上で書いた
Vector等の処理が原因ではなかったようです。すみません。
他の部分で、JDailogをnewで生成したりdespose()で消去を繰り返すと
だんだんとメモリを消費していくみたいです。
JDialogをnew→dispose()のあとにSystem.gc()を行うと
[Full GC[Unloding class sun.reflect.GeneratedSerializationConstructor・・・
なるものが出てきて5〜10MBほど減ってしまいます(減った分は永遠に増えない)

勉強不足です、すみませんでした。
220219:03/01/15 20:09

× >>215
○ >>214,217です

俺は何をやっているんだろう(泣
>>219-220
まあなにはともあれ貴方の試したかった部分は、
きちんとガーベイジコレクトされているようでなにより。
>>209
プロセスIDは標準ライブラリじゃ取れないんでJNI使うしか無いと思われ。
誰かライブラリ作ってるかも?と思うなら "Java getProcessID" とかでぐぐってみれば見つかるかも?
223143:03/01/15 21:36
>>175
はい…それが一番なんですよね…。

classファイルをjavaファイルに戻すことは出来るのですか?
>>223
JODE とかで逆コンパイルできます。完全な復元は無理だけど。
http://jode.sourceforge.net/
225143:03/01/15 21:50
>>224
ありがとうございます。完全な復元は無理ですか…。
課題はやっぱり自分で作ることにしました。
ブロック崩しをパックマンにがんばって変えています!
226初心者:03/01/15 23:26
Exception in thread "main" java.lang.NoclassDefFoundError...
と出てしまう時と、出ない時があります。
例えば、
class unnko
{
public static void main(string[])
{
Sustem.out.println("unko");
}}
なら実行できますが、
import java.io.*;
class Sample6
{
public static void main(String args[])throws IOException
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));

String str1 =br.readLine();
String str2 =br.readLine();
 int sum=0;
sum += Integer.parseInt(str1);
sum += Integer.parseInt(str2);

System.out.println("3つの数の合計は"+sum+"です。");
}}
だと前述のエラーになります。
どうしてなんでしょうか?
ちなみにj2sdk1.4.0_03 です。
ちなみにクラスパスの設定はカレントディレクトリは
含まれています。
厨房ですが、よろしくです。
>>226
227のいうとおり、きちんと設定できれば、ちゃんと実行できるよ。
がんばってね。
>>226
おそらく大文字・小文字の問題かと。

ファイル名がsample6になっているとか、
コマンドラインからjava Sample6と入力するべきところを
java sample6と入力してしまったのではないでしょうか。
230初心者:03/01/16 00:19
おお、皆さん優しくてちょと感動しました。

ちなみに問題は解決しました。
クラスパスの設定が、やっぱり間違ってました。

合ってると思ったんだけど。。。
恥ずかしい・・・
231初心者:03/01/16 01:44
なぜかまた実行できなくなりまそた。
あぁ
おやすみなさい
232初心者:03/01/16 01:49
そしてまたできなくなりました・・・
とほほ。
寝ます。また来ます。
233デフォルトの名無しさん:03/01/16 09:37
Java Web Start ってノートンの LiveUpdate みたいな機能も付いているんですか?
23428:03/01/16 10:03
だめだ・・・詰まってしまいました・・・

GikoMailのPOP3.javaを参考に、メールの取得を行おうとしているんですが、
ぜんぜん取れなくて困っています。
昨日一日、ググって見てたんですが・・・モウダメポ


public String dumpPart(Part p) throws Exception {
 StringBuffer sb = new StringBuffer();
 Object o = p.getContent();
 if (o instanceof String) {  // ココは通る
  sb.append((String)o);   // 文字列が空になる
 }
 return (new String(sb));
}
 if (o instanceof String) {  // ココは通る
  sb.append((String)o);   // 文字列が空になる
 } else {
  System.out.println(o.getClass().getName());
 }
23628:03/01/16 10:18
o.getClass().getName() の結果なんですが、java.lang.Stringらしいです。
んで、System.out.plintlnをしてみたのですが、やっぱ空・・・



237209:03/01/16 11:26
>>222
Java getpidでググって次のソースを見つけました。
http://java-house.jp/ml/archive/j-h-b/038736.html

一時ファイル名にプロセスIDを使う(日時+プロセスID+ホスト名)を使うのは
常套手段ではないかと思うのですが、Javaな人はどうしてるんでしょうか?

238203:03/01/16 11:37
>>204
ImageIcon作る分そりゃ時間掛かるが
速度差なんてたかが知れてる。ゲームみたいにリアルタイム重視でも
十分使える。まあクソ重いswingでゲーム作るヤツは神だが・・・

>>237
ふつー File#createTempFile()
240デフォルトの名無しさん:03/01/16 11:38
数当てゲームで
正解が出るまでに何回数字を入力したかを数えて、「正解がでるまで〜かいかかりました!」というメッセージを画面に表示する。
さらにその回数が5回以下だったら「すばらしい!」10回以上「勘が鈍いですね」
5回と10回の間だったら「普通です」
と表示させたいのですが、ちょっと分からないので教えてください!!
もう最終手段なのでお願いします!!助けて〜。
241デフォルトの名無しさん:03/01/16 11:38
>>237
一時ファイルくださいプログラムをつくる
一時ファイルなんて母体のOSに結構依存するから
242209:03/01/16 11:39
>>239
どうも。
Javaな世界ではそれでいいんでしょうね。
割り切ってそうすることにします。
>>236
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/io/File.html#createTempFile(java.lang.String, java.lang.String, java.io.File)
とか。
244デフォルトの名無しさん:03/01/16 11:42
数当てゲームで、正解が出るまでに何回数字を入力したかを数えて、「正解がでるまで〜かいかかりました!」というメッセージを画面に表示する。
さらにその回数が5回以下だったら「すばらしい!」10回以上「勘が鈍いですね」
5回と10回の間だったら「普通です」と表示させたいのですが、分かる人いたら教えてください!!
お願いします!!
>>244
指つかえ!!
それで数えろ!
10本あるから数えられるだろ!!
246209:03/01/16 12:35
>>241
プロセス周りもSWTみたいにToolkit化されていると
うれしいんですけどね。
>>244
そうすればいいじゃん。
標準出入力はSystem.inとSystem.outだぞ。
248デフォルトの名無しさん:03/01/16 13:10
>>244
カウント用の変数を1つ用意して、入力ごとにインクリメント、
正解が出たら(ルーチンを抜けたら)その変数でif判定してください。
int count=0;
while(1){
//ルーチン
count++;
}
System.out.println("正解が出るまで"+count+"回かかりました");
if(count<6) System.out.println("素晴らしい!!")
else if(count>9) System.out.println("勘が鈍いですね");
>>248
>while(1){
while(true){
っすね。
>>249
あ、そうですね。
これは失礼しました。
251デフォルトの名無しさん:03/01/16 13:37
ある本に載ってたプログラムなんだけど

public class T21
{
public static void main(String[] args)
{
TurtleFrame f;
f = new TurtleFrame();
Turtle m = new Turtle();
Turle m1 = new Turtle();
f.add(m);
f.add(m1);
m.fd(100);
m.rt(90);
m.fd(150);
m1.rt(90);
m1.fd(100);
}
}

これって単独でコンパイルできんの?
継承しなくていいんでつか?
>>244
おい、ネタだろ?
それがワカランかったら数が当たっているという判定ができんだろ?
それとも変数を表示させる方法が知りたかったわけ?
253デフォルトの名無しさん:03/01/16 13:40
>>248
ありがとうございました!!
みなさんおりがとうございます。
>>251
既にTurtleクラスのオブジェクトが作成(コンパイル)済みであれば
勝手にリンクして(繋いで)くれるからエラーにはならないよ。
>>251
継承しなくてもいい(と思う)けど、
TurtleFrame やら Turtle が無いとコンパイルできんよ。
>>251
継承の意味を理解しましょう
257デフォルトの名無しさん:03/01/16 14:07
2次元配列を定数化したくて、こんな感じにプログラムしました。
final int[][] array={{1,2,3},
{2,3,4},
{3,4,5}};

array[0][0]=5;
System.out.println(array[0][0]);

コンパイルしても、エラー無しでarray[0][0]には5が代入されてました。
試しに
final int a=100;
a=300;
にすると、エラーになりました。

配列は定数にできないのですか?



258デフォルトの名無しさん:03/01/16 14:15
100個の乱数用意して、昇順に並べ替える。

ってどうするんですか?
時間がない、、やばいい、、
259デフォルトの名無しさん:03/01/16 14:19
JDK1.4.1のSwingを用いて入力画面を作りました。
配置したJTextArea(スクロールペイン有り)には最大64kb(半角英数字65536文)が入力されます。
2048バイトずつカット&ペーストで入力し、20kbを超えた辺りから、
ペーストした後、それが表示されるまで時間が掛かり出し、
64kbまでペーストした時点で表示されるまでに30秒掛かってしまいました。
これは、Javaの仕様上しょうがない現象なのでしょうか?
また、これを回避する為の手段はあるのでしょうか?
識者の方、御教授下さい。

PC=CPU:AMD750MHz,メモリ:256MB,WinMe
>>258
配列に乱数を代入して、昇順にソート
>>258
java.util.Arrays の sort でも使えば?
262デフォルトの名無しさん:03/01/16 14:35
JDBC について質問があります。

わたしは今んとこ、JET使いです。
#素直にAccessといわんか!

JETでは、SQLを流した結果を、Recordsetという変数に格納できます。
フィールドは、Fields(0)、Fields(1)....Fields(n)と結果にあわせて自動的に
設定されるので、あとはレコードの処理だけで簡単です。

JDBCでも同様に、SQLで得られた結果を可変的に格納する事はでき
ませんか?
JDBCに関する入門書は、どれもexecuteQueryで得られた結果は
フィールド名指定で呼び出すようになっています。
これでは、SQLを実行する度にJDBCの設定が必要になってしまい、
大変に面倒です。

プログラム言語のスタンダードたるJAVAが、よもやVBAで出来る記述が
できないとも思えないので、わたしの探し方に問題があるのかもしれません
が、結果によってフィールドが変化するようなJDBCの記述について、
情報をお持ちでしたら教えてください。
263デフォルトの名無しさん:03/01/16 15:02
このスレで質問に答えてくれる神々に質問!

神がJAVAを習得される際に用いた参考書OR問題集はなんでつか?
>>263
結城本上下とSUNのjavadocのAPI
265デフォルトの名無しさん:03/01/16 15:14
先ほど教えてもらったのですが、
エラーが出てしまいます。
どこを直したらいいですか?
全部書き込むことができないので、
1部になりますが・・・。
int seikai = (int) (Math.random() * 1000);
while(flag){
moji = kbd.readLine();
x = Integer.parseInte(moji);

if(x > seikai && x <= 999){
System.out.println("大きすぎます、もう1回!");
}else if(x <seikai && x >= 0){
System.out.println("小さすぎます、もう1回!");
}else if(x == seikai){
System.out.println("正解です!");
flag = false;
}else{
System.out.println("入力するのは0〜999の間の数字ですよ");

int count=0;
count++; }
System.out.println("正解が出るまで"+count+"回かかりました");
if(count<6)
System.out.println("素晴らしい!!");
}else if(count>9)
System.out.println("勘が鈍いですね");
}
26628:03/01/16 15:21
POP3で受信したら上手くいったっすよ>メール受信

IMAPとの相性か、サーバの問題かを切り分けるたびに出てきまっさ・・・
267デフォルトの名無しさん:03/01/16 15:26
>>265
どこでエラーがおきるのかとエラーの種類ぐらい書いてくれると
解きやすい・・・
>>265
やっぱネタかなぁ…
素直にHelloWorldとかから勉強した方が…
>>257
コードが断片的ゆえなにをしているのかが少々理解不能だが、
エラーがでたのは、以下の部分ではないか?
final int a=100;
a=300;

finalと宣言され、さらに100という値の入力されたaに、
再度、300という数値を入れようとすれば、当然のことながらエラーになる。
finalと宣言された変数は、ただ一度しか代入できないので。

>>258
JDKのなかにdemoというディレクトリがあったかとおもう。
そのなかに大きさ順にならべかえるアプレットがあるので
それをご参考に。

>>265
>>1に書かれていることをよくよんでから書き込んだほうが
適切な回答をもらえるとおもうよ。
270265:03/01/16 15:35
シンボルを解釈処理できませんと表示されています。
すべてのプログラムを書き込みたいのですが、
改行が多すぎるため、エラーが出てしまいます。
全部表示させたほうが分かりやすいですか?
1部でも分かりますか?
>>257
>配列は定数にできないのですか?
無理っす。
>>270
出力されたエラーなら全部ここにマウスでコピペして貼り付けてよし。
膨大なソースコードをここにコピペしようとするのなら逝ってよし。

//ソースは一部でもわかるとおもうよ。
//その一部が適切な一部なら。
273デフォルトの名無しさん:03/01/16 15:38
http://www6.ocn.ne.jp/~endou/index2.html
     ★YAHOOOプロフィール★
274265:03/01/16 15:40
コマンド プロンプトではコピペできません。
本当にすいません。
かなり勉強不足だとは思うのですが、
教えていただければ幸いです。
コピペできないのなら、自分の指で入力すればよい。

まあもしWindowsをつかっているのなら、
そのプロンプトのウインドウの上のほうに
いくつかボタンが並んでいるとおもうが、
そのなかの『プロパティ』というボタンをクリックして開いたダイアログのなかから、
『その他』をクリックするとマウスの設定画面がでてくるよ。
276デフォルトの名無しさん:03/01/16 15:46
redirect操作知ってればそれで・・・
例)java classname > tmp.txt

知らなければエラーの名前とそのクラスでのエラーの行数
>>276
コンパイルエラーは標準エラー出力に出力するはずだから > では取れないと思われ。
>>270に出力されたエラーだけど、
ソースの何行目に問題があるとかの情報もいっしょに出力されているはずなので、
もしソースをはるのなら、その行あたりを貼るといいとおもう。

ちなみにそのエラーは、
Javaのコンパイラが意味不明な文字とであったときなどに出力される。
原因は、変数やメソッドの綴りの入力間違いや、
スコープなどのせいで無効な変数を使おうとした場合におこることが多い。

>>276
&>ではどうか?
まあDOSなどでは使えないような気もするが。
279265:03/01/16 15:53
kadai1.java:40: 'catch' への 'try' がありません。
}catch(IOException e){
kadai1.java:42: \12288 は不正な文字です。
   }catch(NumberFormatException e){
kadai1.java:42: \12288 は不正な文字です。
   }catch(NumberFormatException e){
kadai1.java:46: '}' がありません。
}
kadai1.java:4: 'try' への 'catch' または 'finally' がありません。
try{
kadai1.java:1: パッケージ Java.io は存在しません。
import Java.io.*;
^
kadai1.java:8: シンボルを解釈処理できません。
シンボル: クラス BufferedReader
位置 : kadai1 の クラス
BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in)
);
kadai1.java:8: シンボルを解釈処理できません。
シンボル: クラス BufferedReader
位置 : kadai1 の クラス
BufferedReader kbd = new BufferedReader(new InputStreamReader(System.in)
);
kadai1.java:8: シンボルを解釈処理できません。
280257:03/01/16 15:53
>>269
>>271
ありがとうございます。
配列は無理なんですね。finalは消します。
281デフォルトの名無しさん:03/01/16 15:56
>>279
コンパイルエラーかよ・・・
ちなみに

import Java.io.*;

import java.io.*;
>>278
WinXP だと
>javac ????.java > err.txt 2>&1
とかやればいーのかな?
>>279
try{
なにかの処理
}
するのならそのあとにcatch(例外) {
}
しなければだめということ。

ソースの一部に全角スペースがはいっている。

BufferedReaderを使うためのおそらくjava.io.*がインポートされていない。
>>279
>>265 の時点でわかってたけど { と } の対応関係が狂ってる。
285259:03/01/16 16:02
不躾ですみません。
>>259について何か情報ありませんか?
---
簡単に…JTextAreaには膨大(かな?)なデータを入力してはいけないのですか?
286自己つっこみ:03/01/16 16:03
>>278
すまそ>&2。
このあたりはシェルスクリプトで色々だとおもうけど。
>>285
import javax.swing.*;
import java.awt.*;
public class test {
 public static void main(String[] args) throws Exception {
  JFrame w = new JFrame();
  w.setLocation(100,100);
  w.setSize(100,100);
  w.getContentPane().add(new JScrollPane(new JTextArea()),BorderLayout.CENTER);
  w.show();
 }
}
みたいな最小のプログラムで試したけど >>259 みたいな症状は再現しませんでした。
>>285
ごめん、GUIは詳しくない
SWING系のドキュメントに書いてないかな・・・
2つの整数をcompareTo()で比較する場合どういった
記述のしかたをしたらいいんでしょうか?
>>259
あんまり関係なさそうだけどこういうのがあったよ。
http://developer.java.sun.com/developer/bugParade/bugs/4213032.html
291265:03/01/16 16:11
ありがとうございます。
もう分からなくなちゃって、{}
がどこにつながっているのかがわからなくなってます。
色々アドバイスありがとうございます。
>>289
Integer num1 = ...;
Integer num2 = ...;
if(0 < num1.compareTo(num2)){
 ...;
}else if(0 == num1.compareTo(num2)){
 ...;
}else{
 ...;
}
とか?
素直に int で大小比較する方が簡単だと思う。
>>290
jdk1.2以降では直ってるって書いてあるけど…
Win9x + jdk1.1.* + swing の組み合わせの問題らしい。
294196:03/01/16 16:18
CやVB等では同ページ内で指定した場所に移動するには
goto文がありますがJavaでは使えないんですよねー;;
で、何か別の方法ないでしょうか?
for文内とかだと breakでできるらしいのですが・・
>>294
(古典的な意味での)リファクタリングをしっかり行なうなどしていれば、
goto文はとくに使う必要がないので。

それにJavaにおいてはラベルを指定してのbreakやcontinueがありますので。
296265:03/01/16 16:27
何度も何度もすいません。
[5回と10回の間なら普通です]
}else if(){
 System.out.println("普通です");
()の部分はどうすればいいですか?
>>294
test:{
 break test;
 System.out.println("この文には制御が移らない。");
}// break test;後 test: のブロックの外に制御が移る。

みたいな特殊なbreakの使い方があるのでそれで頑張ってみるとか。
詳しくは以下を参照してください。
http://www.y-adagio.com/public/standards/tr_javalang/14.doc.htm#6842
>>296
もういちどしっかり授業を受けなおしたほうがいいとおもうが、
ifのところには、&&と<と>をうまく使うといいとおもうよ。
>>296
>if(count<6) System.out.println("素晴らしい!!");
>else if(count>9) System.out.println("勘が鈍いですね");
の後に続けるなら else だけでよいと思われ…

if(x > seikai && x <= 999){
System.out.println("大きすぎます、もう1回!");
}else if(x <seikai && x >= 0){
System.out.println("小さすぎます、もう1回!");
}else if(x == seikai){
System.out.println("正解です!");
flag = false;
}else{
System.out.println("入力するのは0〜999の間の数字ですよ");
}
int count=0;//←エラー実行時えらー常にcountが0にセットされる
count++; }
System.out.println("正解が出るまで"+count+"回かかりました");
if(count<6){//←coutはwhile文の中で宣言されているのでwhile文のそとでは使えない
System.out.println("素晴らしい!!");
}else if(count>9){
System.out.println("勘が鈍いですね");
}
else {
System.out.println("hutu-");
}
301265:03/01/16 16:36
ありがとうございます。
もう最後の授業も終わってしまったので
教えてくれる人を探していたんです。
すいません。あまりにも初心者の質問でした。
302259:03/01/16 16:39
>290
 ご提示ありがとうござます。
 >>293さんが仰る通り1.4.1では問題無いみたいですね...
 皆さんSwingはあまり使われないのかしら?
 #今更C++に変更出来ないし...

 その後の調べで以下のような事が判っています。
 ・起動時オプションで最大メモリ128MBなんてやってもやらなくて現象は変わらない。
 ・実行中のメモリ使用量見ても精々2MB弱位しか使ってない。
 ・キー入力して行くと、5,000文字を超えた辺りから動作が緩慢になり出し、
  9,000文字位からレスポンスが悪く(キー入力してから3秒経ってから表示)なる。
 ・一気に64kbの文字をコピペすると、10秒位表示されず、他のフィールドに移動すら出来ない
  >1分ほど経過したら移動出来るようになった。
303デフォルトの名無しさん:03/01/16 16:40
org.w3c.dom の DOMService を使いこなせる猛者はいらっしゃいますか?
304294:03/01/16 16:42
ふーむ、リファクタリング^^;
やっぱbreakしかないのかな・・
頑張ってみます。ありがとうございました^^
リファクタリングというよりは構造化と素直に言ったほうが判りやすいかと
306デフォルトの名無しさん:03/01/16 17:16
J2SE SDK 1.4.1-01 で Excelsior JET 3.0 Personal を使いたく
インストールしたのですが Could not determine the compiler と表示され
Excelsior を起動することが出来ませんでした
解決方法をご存じの方いらっしゃいますか

環境
Windows 2000 Pro (latest updated)
J2SE SDK 1.4.1-01
Excelsior JET 3.0 Personal
>>304
ちなみに >>295 が言ってるラベル指定のcontinueってのはこんな感じ。

test: for(int i=0;i<10;i++){
 for(int j=0;j<10;j++){
  System.out.println( "多重ループの外側へcontinueできる。" );
  continue test;
 }
}
詳しくはこちらを参照してください。
http://www.y-adagio.com/public/standards/tr_javalang/14.doc.htm#6122

ラベル付きbreakとか例外とかと合わせれば
goto の代表的な使い方をかなりサポートしてるから
殆ど goto 使う必要はなくなると思います。
308デフォルトの名無しさん:03/01/16 18:04
javaを学習して1ヶ月ですかどうしても理解できないことが複数あるので
宜しくお願い致します。
現在クラスライブラリを勉強してるんですが
そのメソッドに
「int indexOf(int ch)」
についてです。
文字を格納するなら、仮引数として
「int indexOf(char ch)」
になるんでは・・・?と未熟ながら思うんですよ。
StringbufferクラスはCHAR型で理解できるんですよ
→「StringBuffer append(char c)」
なぜIndexofメソッドの仮引数がint型なのか誰かご教授お願い致します。
309308:03/01/16 18:09
後、StringBufferクラスについてなんですが
「StringBuffer append(char c)」
のStringbufferは「戻り値の型」になるんでしょうか?
int,double,byteは型だと判るんですが
Stringbufferという型が存在するものなんでしょうか?
どうように
「String charAt(int index)」
のStringも同じように疑問です。
宜しくお願い致します。
無視られてるようなので。

>>262
>JDBCでも同様に、SQLで得られた結果を可変的に格納する事はでき
>ませんか?

java.sql.ResultSet
>>309
>「StringBuffer append(char c)」
>のStringbufferは「戻り値の型」になるんでしょうか?

YES

>Stringbufferという型が存在するものなんでしょうか?

クラスは型
StringBufferはクラス
∴StringBufferは型
クラス=型です
>>308
「int indexOf(int ch)」
なんていうクラスのメソッド?
314デフォルトの名無しさん:03/01/16 19:43
マッピーのようなアプレットを作成しようとしてるのですが、
例えば右に行きたいときにそこに壁があったら進めなくするには
どうするのでしょうか?
私が考えた方法だと、全ての存在する壁の数ぶんだけ当たり判定
をさせ、当たれば右方向入力をキャンセルさせるという方法ですが
これだとすごく時間が掛かると思い、他にいい方法がないかと
思い質問しました
315デフォルトの名無しさん:03/01/16 19:43
double sa = 1.0 - 0.8;
System.out.println(sa);
を実行すると、
0.19999999999999996
という出力になるのですが、正しい 0.2 と出力させるには
どのような手段を用いればよいのでしょうか?
>>306ですがスレ違いかもしれないのでよそで聞いてきます
317259:03/01/16 20:06
しつこいようですが、
>>259,>>302について何か情報ありますか?
周りの男性人は、わたしが派遣社員だからと思って、思い切り無視してくれるし...
恐れ多くてJH-MLには入れないし...
2chに期待するわたしが間違っているのかしら…エェーン(T_T;
階乗プログラム作成中・・・。char *insert_abc(int abc,int n,int(*Set)(int n));
[A] [AB BA] [CAB CBA ACB BCA ABC BAC]のように、成長していくポインターを作りたい。 
 その際、できるだけループをすくなくする事を心がけ階乗値を使うこと。
  ポインターの成長例:
[CAB[0][1] CBA[0][1] ACB[1][0] BCA[1][1] ABC[2][0] BAC[2][1]]
次ループでは、
[CAB[0][0] CBA[0][1] ACB[0][2] BCA[0][3] ABC[0][4] BAC[0][5]]
 ×4=4!=24
という具合に3重ループで成長します。
これらの、バグを取ろうにも複雑すぎてわからない状態。
1981ソースが、長いためこちらの掲示板をみてください。
http://www.tachiki.com/cgi-bin/chatc/ealis.cgi?#3
320151:03/01/16 20:13
>>152 >>153 >>154
かなり遅れましたがすいません。レスありがとうございます。
>>153の、
>javac -target 1.1 コンパイルしたいクラスのファイル.java
で直りました。
本当にありがとうございました。
>>319
ここ Java スレなんだけど
322308:03/01/16 20:18
>>311.312
レス有難うございます。
クラスライブラリのクラスは全て「型」という認識でいいのかな...
例えばMATHクラスの場合、MATH=「型」でいいってことですか?
凄く参考になりました。有難うございます。

>>313
Stringクラスです。
著書で感じた疑問なので、ひょっとしたら誤植なのかな・・?とも
思ったので調べてみます。
>>317
得ろ画像きぼん
324デフォルトの名無しさん:03/01/16 20:27
>>314
壁の数が少ないなら総当りでかまわないはず。
壁が方眼紙のような定位置に存在するなら
2次元配列を使えば決め打ち
マッピーの位置から該当する配列の要素を調べるとか。
定位置じゃないなら適当にソートして調べるとか。

ちょっと思いついただけなので。
もっと効率の良い方法がありそう。
325劉邦:03/01/16 20:33
JAVAやっててCが恋しくなりました。
このままJAVA続けるべきでしょうか?
326315:03/01/16 20:37
>>318
BigDecimalの解説を読んでもよく分からない(泣)。

BigDecimal sa = new BigDecimal(1.0 - 0.8)
System.out.println(sa.doubleValue());

こうやってみても結果は同じなんだけど、どうすれば
0.2は出てくるのでしょうか?
>>325
好きにしろ
>>314
ゲーム技術板に行けといいたいところだが
AA荒らしの巣になってるな
>>314
画面を網の目状に区切って番号うってけ。
配列使って何とかしろ!!

0が空間、1が壁。

int[] map={
1,1,1,1,1,1,1,1,
1,0,0,0,0,0,0,1,
1,0,1,1,0,0,0,1,
1,0,0,0,0,0,0,1,
1,1,1,1,1,1,1,1 }

背景のブロックの大きさが16x16とし、横8コ、縦5コ分の面積のゲーム画面とし
自分の座標の変数をmx,myとする。
もし自分が座標(57,33)の位置にいてそこが壁かどうか知りたい場合は

if( map[ (mx/16)+((my/16)*8) ]==1 ) {
壁です。動けません }
else { 空間です。動けます }

とする。後は自分でやろう。ていうか板違い。ゲ製作板へどうぞ。
330劉邦:03/01/16 20:50
Cと結婚します
>>326
>new BigDecimal(1.0 - 0.8);
この時点で new BigDecimal(0.19999....); になってる。
BigDecimal a = new BigDecimal(1.0);
BigDecimal b = new BigDecimal(0.2);
System.out.println(a.subtract(b).doubleValue);
>>329
的確に教えていただき有難うございます
二次元配列にして苦しんでたのですが
map[ (mx/16)+((my/16)*8) ]==1で十分ですね
ゲ製作板は見て無かったです。というかあるのすら知らなかった
早速行ってきます
ゲ製作板=廃墟
Javaアプレットのゲームの限界は! (ゲーム製作技術板)
http://game.2ch.net/test/read.cgi/gamedev/1005230153/l50

廃墟同然のスレのような気もするががんばれ。
335315:03/01/16 21:03
>>331
BigDecimal b の 0.2 を 0.8 にしてやってみたけど
結果は同じでした。

BigDecimal a = new BigDecimal(1.0);
BigDecimal b = new BigDecimal(0.8);
System.out.println(a.subtract(b).doubleValue());

0.19999999999999996
>>317
とりあえず >>287 程度の最小構成でも現象が再現するか試してみては?
demoについてきたJavaで作られたノートパッド風のエディタで
再現するかどうか試してみては?
>>335
BigDecimal a = new BigDecimal("1.0");
BigDecimal b = new BigDecimal("0.8");
System.out.println(a.subtract(b).toString());

339315:03/01/16 21:16
>>338
ありがとうございます。これで 0.2 を出力できました。

ですが、double値として取得して、その後の計算で
利用したいのですが、そういったことは不可能なので
しょうか。
>>335
解説しとくと、 0.2(1/5) や 0.8(4/5) は二進数では循環小数になるので
浮動小数点数(doubleやfloat)では近似値でしか表現できません。
つまり BigDecimal(0.8) ってのは 0.8 の時点で0.800000 の近似値になってるので
BigDecimal 使っても意味が無くなってるわけです。
>>302
えーと、JTextArea に setLineWrap(true) して
64kb全く改行なしのテキスト突っ込むような無茶すると遅くなると思うけど
そーゆー事してないよね?
>>339 BigDecimal#doubleValue()
>>342
ちなみに
BigDecimal a = new BigDecimal("1.0");
BigDecimal b = new BigDecimal("0.8");
System.out.println(new BigDecimal(a.subtract(b).doubleValue()));
すると
0.200000000000000011102230246251565404236316680908203125
が得られます。
>>339
あんま良くなくみえるかも〜
import java.math.*;
public class Main {
public static void main(String[] argv){
BigDecimal a = new BigDecimal(1.0);
BigDecimal b = new BigDecimal(0.8);
System.out.println(a.subtract(b).setScale(1, BigDecimal.ROUND_HALF_EVEN).toString());
}
}
http://pc3.2ch.net/test/read.cgi/tech/1032944182/l50
↑で、JavaBeansはIDEでの使用を前提とした技術と豪語する痛い香具師ハケーン
ハラ痛いw
>>343 つまり精度を気にするなら全部BigDecimalだけで計算しろってことだろ。

大抵の場合はStrictMathやstrictfpでもいいのだが。

問題はBigDecimalだけだと三角関数とか対数の計算は自分で関数作らないと
いけないんだな。

toString()でString方にしてからdoubleに変換する方が精度はいいだろう。
315は精度を気にしているわけじゃないんじゃ・・・・・・。
むしろ、数桁の精度の小数を綺麗に出したいって感じではないのだろうか。
「書式付き java」とか、「printf java」で検索してみ。いくつかライブラリが見付かる。
決定版がどれなのかは分からん。
>>347 DecimalFormatですか。
なら小数点以下第何桁をカットして表示ができますね。
349デフォルトの名無しさん:03/01/16 23:26
delphiのexitのようなメソッド等から抜け出して呼び出し元に戻る方法を
教えてください
>>349
return ですかね?
最近javaに手をつけた超初心者です.
helloworldのアプレットを作成し,htmlよりアプレットを
よみだしたいのですが,
アプリケーションにコマンドを送信しているときに、エラーが発生しました。
と表示されIEの窓が全て閉じてしまいます.
どなたか解決法をご教授いただけないでしょうか?
ソースは以下の通りです.
ちゃんとディレクトリも同じところに作成しました.

helloworldのソース
import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorld extends Applet {
public void paint( Graphics g ) {
g.drawString( "Hello World", 0, 0 );
}
}

helloworld.htmlのソース
<HTML>
<BODY>
<APPLET CODE="HelloWorldApplet.class" WIDTH=160 HEIGHT=120 >
</APPLET>
</BODY>
</HTML>
>>351
クラス名が HelloWorld なのに
html では HelloWorldApplet.class を呼んでるのは何故?
ClassNotFoundExceptionだろうな〜
>>257
遅レスだが、、、配列もfinalつける意味はあるよ。
つければ配列自体は変更不可になる。
ただ配列の中身をfinalにしたわけじゃないから中身は変更可。
同様にクラス変数をfinalにした場合も
その変数が参照しているものは変更可なので注意。

final int a = 100;
a = 300; // 変更不可なのでエラー

final int[] b = new int[] {0, 1, 2};
b = new int[]{0, 1, 2}; // 変更不可なのでエラー
b[0] = 3; // 変更可なのでエラーにならない
355初心者:03/01/16 23:49
同じコードでも実行しようとすると、
その時々で、Exception in thread "main"
java.lang.NoClassDefFoundError
になります。
わけがわかりません、お願いします。
ちなみに、j2sdk1.4.0_03です。
356デフォルトの名無しさん:03/01/16 23:52
ペイントで書いた絵が表示されなくて困っています。
一筆で書かないとダメだと言うことを聞いたことが
あるんですが、どうなのでしょうか?
よろしくお願いします
>>355
java.lang.NoClassDefFoundError
ロードしようとしたクラスが見つからないってさ。
Exception in thread "main"
「main」って名前のスレッドで例外が発生したそうだ。

>>356
初めて聞いた。
>>356
「ペイント」としか書いてないけど「ペイント」って何?
「表示」としか書いてないけど、どのように表示しようとしたの?
あと、マルチポストはやめたほーがいーよ。
>>355
ここなんか、どうでしょう。
http://www.gimlay.org/~javafaq/S003.html#S003-01
360デフォルトの名無しさん:03/01/16 23:56
>>356
他の絵(ちゃんとしたソフトで書かれた絵)は表示できるんですが、
原因は何なのですか?
361デフォルトの名無しさん:03/01/16 23:58
>>359
アクセサリのペイントです。
表示は拾ってきたソースで画像だけを変えてみたいのです。
>>358
>「ペイント」って何?

Windows知らないと今時食っていけないでしょう。
>>355
とりあえず >>2 を参照。
「その時々で」と言われても >>355 のPC上で
何が起こってるのかは >>355 にしかわからんのですが。
>356
gifやjpgは表示できるがbmpは表示できないってことかね
365初心者:03/01/16 23:59
>>357
それってコードの正誤とかも関係あるんですか?
それ以外にどういった理由で発生するものなのでしょうか?

ちなみに
クラスパスの設定はあってると思います。
>>360
それでは特定しずらいです。
もう少し情報プリーズ。
画像の種類、表示できるというソース上の画像名を置き換えた結果など
367デフォルトの名無しさん:03/01/17 00:01
>>364
拾ってきた絵は使えるんですけど、
自分で書いた絵はgif,jpg,bmpと試してみたんですが
無理でした。
368初心者:03/01/17 00:01
>>359
参考になります!ありがとうございます
>>363
そうですよね。でも特に変わった事はしてないと
思うんですが、突然実行できなくなったり
するんで なんでかなー?と思ったんでそう書きました
すいません
一筆で描けっての
>>367
とりあえず一筆書き云々は関係なさそう。

ソースのファイルの読み込み部分
*.bmp とかが書いてある付近の前後10行程度を
張ってみてくれれば何かわかるかも?
371367:03/01/17 00:12
public void init(){
setLayout(new BorderLayout());
Panel p=new Panel();
text1=new TextField("Push start!!",10);
text2=new TextField(Integer.toString(score),5);
p.add(text1);
p.add(text2);
p.add(new Button("Start"));
add("South",p);
resize(350,380);
setBackground(Color.black);
image=getImage(getDocumentBase(),"kaeru.gif");
image2=getImage(getDocumentBase(),"0.gif");
image3=getImage(getDocumentBase(),"1.gif");
image4=getImage(getDocumentBase(),"1.gif");
image5=getImage(getDocumentBase(),"1.gif");
audio=getAudioClip(getDocumentBase(),"ooh.au");
audio2=getAudioClip(getDocumentBase(),"whoopy.au");
Dimension dd=size();
offScreen=createImage(dd.width,dd.height);
offGraphics=offScreen.getGraphics();
d= new int[10][10];
xx= new int[4];
yy= new int[4];
m= new int[4];
d_set();
372初心者:03/01/17 00:12
ぐぐぐが 実行できた・・?
意味わからん
該当する理由も>>353の方にはなかったし・・・
とりあえず解決できたので、
ありがとうございました
373367:03/01/17 00:13
お手数かけてすいません
ゲームのソースらしいです。
一筆で描かないとどう考えても無理
375351:03/01/17 00:23
>>352,353さんレスありがとうございます
>>351です.

HTMLのソースを
<HTML>
<BODY>
<APPLET CODE="HelloWorld.class" WIDTH=160 HEIGHT=120 >
</APPLET>
</BODY>
</HTML>
に書き換えてもダメでした..やっぱり
IEの窓が閉じてしまいます…ググっても
全然情報が無いみたいです…(><;)
何故なのでしょうか…
ちなみに今更ですが簡単な環境です
OS windows2000
ブラウザ IE6
エディタ メモ帳
>>375
.classいらないよ。
<APPLET CODE="HelloWorld" WIDTH=160 HEIGHT=120 >
>>375
jdk1.4以降の場合はコンパイル時に
javac -target 1.1 HelloWorld.java
みたいにしないとダメだけど、そーゆー事じゃないよね?
でもまぁ、-target 1.1 付けなくても IE の窓閉じないと思う…
うん。せいぜい灰色の横幅160高さ120の四角が表示されるだけ。
ところでHelloWorld.classを削除してそのhtmlファイルをIEで開いても落ちる?
>>371
MSJVM だと bmp も表示できるみたいだけど…
Sun の JVM でも png,gif,jpeg は表示できるはずだし。
ちなみに WindowsXP 付属のペイント使って出力した jpeg, png, gif 全部 getImage() で読み込めてます。
jdk1.4.1_01 だけど。
>>371
暇だったら

public class test extends Applet {
 Image image;
 public void init(){
  image = getImage(getDocumentBase(),"test.png");
 }
 public void paint( Graphics g ){
  g.drawImage( image, 0, 0, this );
 }
}

みたいな最小のプログラムでも表示できてないか試してみてくらさい。
382351&375:03/01/17 01:11
>>376さん,>>377さん,>>378さん,>>379さん
レスありがとうございますm(_ _)m

.classを消して見ても無理でした…
<applet>〜</applet>を消すと IEは閉じないです.
色々検索していてお礼が遅くなりました…すみません…
>>382
MSJVM 入ってないとか…
でも IE6 だと JVMダウンロードするか問い合わせてくるような気もするし…
とりあえず appletviewer で動くか確認してみるってのは?
>>382
ちなみに私の手元だと、
g.drawImage( image, 0, 0);を
g.drawImage( image, 10, 10);に
変えただけで、ちゃんと動いたよ。
>>384
drawImage と drawString がゴッチャになってるよーな…
386デフォルトの名無しさん:03/01/17 06:31
質問させてください。
あるtreeを作成し、そのオブジェクトをバイナリデータとしてObjectOutputStreamで
ファイルに書き込んでおき、のちのちObjectInputStreamで読み込んで使用したいんです。
小さなtreeであれば上手くいくのですが、どうも巨大なtreeであると書き込み時にエラー
がでてしまいます。エラーも多すぎてコマンドプロンプトだとスクロールしきれないし
困ってます。Serializationに関して何か「こういうオブジェクト」はできない!みたいな
のがあるんでしょうか?ちなみに書き込み前のオブジェクトは正常です。(ちゃんとしたtreeが
できていることを確認しました。)文章だけですいませんが、お願いします。
387384:03/01/17 08:01
あらっ、351と、381が混じっちゃった。
384は、351のほうで、drawStringを使用。
>>386
他のオブジェクトを参照として持ってるものとか。出来るの?あれ。
>>386
>>282 の方法とかでエラーの情報取って頑張ってください。
390386:03/01/17 10:32
>388
何やら、writeObjectとreadObjectをオーライドしてどうこうすると
みたいなことが書いてあるのだけど、いまいちよくわからない。
適当にやってみたらエラーは消えて書き込みは出来た様なのですが、
読み込みができない・・・。
391 ◆odHOE.4x.I :03/01/17 10:53
遅くなったけど

>>382
g.drawStringは 0,0だとアプレットの表示範囲に表示されない。
以下の場合だとぎりぎりで左上に表示される。

import java.applet.Applet;
import java.awt.Graphics;
public class HelloWorld extends Applet
{
  public void init()
  {
    repaint();
  }
  public void paint( Graphics g )
  {
    g.drawString( "Hello World", 0, 10 );
  }
}
>>386
もしWindowsをお使いならとりあえずここの方法などをつかって、
どんなエラーが出力されているのかを調べるのがよろしいかと。
http://www.gimlay.org/~javafaq/S171.html#S171-04
>>306
表示された英文の意味は判りますよね。
なんのコンパイラを使うか設定してあげればよろしいのではないでしょうか。
readmeファイルやドキュメントなどには書いてありませんか。
>>388,>>390
オブジェクトが循環参照になっていたとしても直列化できるよ。

内部的な動作では、ストリームに同じオブジェクトを複数回直列化する必要がある場合、
初回のみ実際の直列化を行い、二回目以降はオブジェクトの番号みたいなものだけを
書き込むようになっている。

readObject()/writeObject()を実装する目的は、直列化時に特殊な処理をする必要がある
フィールドを持っている場合などに、直列化処理をカスタマイズするためのもの。
例えば、EJBの場合に、リモートオブジェクトからハンドルに変換して書き込むとかね。

>>386が例外の内容を書いてないから原因はわからんが、Serializableじゃない
オブジェクトが混じってるとか、バージョンが違うとか、クラスが見つからないとか、
そんなところじゃないかな?
395259:03/01/17 14:39
まとめてレスします。
レスくれた方、どうもありがと。
>>323
 残念…(なんとタイムリーな...)
 つい最近まで、http://秘密(--; に掲載されてました。(目線有りで)
 って言うか、元彼が勝手に投稿してた...頭来たので今裁判中(爆
 #デジカメで撮り合いした事があったんですが、その場で消してもらったんで気にもしてなかった...
  思い出したらムカついて来たっ!! ヤロォ〜!!!
 鬱出汁脳...
>>336
 >>287で教授頂いた最小プログラムで実行しました。
 やはりダメでした。
 が...
 >>341さんが指摘された事、行なってました。

 入力データが改行しちゃいけないデータなので、改行があるとダメなんです。
 なので、改行無しで64kb分のデータ作ってコピペ他動作チェックしてました。
 っで、改行付きデータを64kb分コピペしたら実際のプログラムでも問題無く動作しました。

と言う事で、>341さん、”そーゆー事”してました。
これってしょうがない?
でも、何で遅くなるのかしら〜。遅くなる理由ギボンヌ!!
>>356
アプレットはどうだか分かんないけど、getImageでファイルから画像データ
取った時は、一旦オフスクリーンへコピーし、以後はそのコピーしたものを
使うようにせんといろいろ不便だよ。
397386:03/01/17 16:49
レス、ありがとうございます。

>>394
treeのノードクラスはjava.io.Serializableをインプリメントしましたが、
そのノードクラスから参照しているいくつかのクラスに関してSerializableを
インプリメントしていなかったのでそれが原因かもしれないです。

>>392
エラーメッセージ、もう少し良く見てみようと思います。

ちょっとこれから月曜までPCが使えなくなってしますので、来週、出来るかどうか
試してみてご報告します。ありがとうございました。
398351&375&382:03/01/17 17:23
>>383さん
appletviewerではきちんと作動しています.
ほかにもいくつかアプレット作って見たのですが,
やはり全て窓が閉じてしまいます.
appletviewerではすべて作動しています.

IEが原因でしょうか?
セキュリティレベルなどは中でデフォルト状態で試しているのですが…
情報まってます.

詳しくは。。。>>351 >>375 >>382 です.
皆様よろしくお願いします.
>>398
マイクロソフトにエラー報告しといたら?
IE6ってバグ多いって聞くしね。
>>398
JDKは?
401 ◆odHOE.4x.I :03/01/17 18:23
>>398
テユーカ どこか適当なサイトのアプレットを見た時どうなの?
それでもだめだったらIEの再インストール(できるかしらんけど)だね。
>>398 ほかのブラウザではどうなった?
Netscape, Opera, Mozillaとか。
特にNetscapeでの動作確認がお勧め。

コントロールパネルのJavaコンソールでは、Appletの設定がIEでも有効に機能しているか?
IEのオプション-[詳細設定]で、<applet>にJava2にv1.4.1を使用(再起動が必要)
がチェックされているか?

もしSunのJVMを使う気が無いならMSJVMをコントロールパネルの
プログラムの追加と削除で一旦アンインストール、再インストール。
403351&375&382&398:03/01/17 19:04
>>399 400 401さんレスありがとうございます

他のアプレット見た時もIE全部窓閉まります…
いろいろ検索してみましたがキーワードが上手くヒットしていないのか
情報が見つかりません…

再インストしかないですか…(><;)
404 ◆odHOE.4x.I :03/01/17 19:14
>他のアプレット見た時もIE全部窓閉まります…

じゃ、ソースの問題じゃないじゃん!<<バカー(#゚Д゚)ゴラァ

>再インストしかないですか…(><;)

ブラウザのね
>>398
>セキュリティレベルなどは中でデフォルト状態で試しているのですが…

セキュリティレベルをカスタムにし、[レベルのカスタマイズ]をクリック
MS VMの設定-[Javaの許可]-[カスタム]を選択すると
[Javaカスタム設定]ボタンが現れる。
そこで何か変更するのはどうだろうか。
406351&375&382&398:03/01/17 19:27
Operaでためしてみました.
やっぱりアプレットのあるページは全てエラーが出てしまいます.
Operaでもエラーが出たってゆーことは
ブラウザ再インストしても直らないのではないでしょうか?
すみません知識不足で…
407デフォルトの名無しさん:03/01/17 19:37
http://www6.ocn.ne.jp/~endou/index2.html
     ★YAHOOOプロフィール★
>>406 With JavaのOperaをインストールした?
Operaについてはとりあえずこのあたりを参考にしてみてくれ

http://pc3.2ch.net/test/read.cgi/win/1040357448/581
409デフォルトの名無しさん:03/01/17 19:38
継承するとコンパイルエラーが出ます。助けてください。
下のソースはPointクラスをPoint3dクラスで継承しようとしています。

■エラー内容
Point3d.java:5: シンボルを解釈処理できません。
シンボル: クラス Point
位置 : points.Point3d の クラス
public class Point3d extends Point {
^
Point3d.java:8: シンボルを解釈処理できません。
シンボル: 変数 x
位置 : points.Point3d の クラス
x += dx; y += dy; z += dz;
^
Point3d.java:8: シンボルを解釈処理できません。
シンボル: 変数 y
位置 : points.Point3d の クラス
x += dx; y += dy; z += dz;
^
エラー 3 個
410409:03/01/17 19:39
続きです。m(__)m

■Point.javaの内容
------------------------------------------------------------
package points;

public class Point {
int x, y;
public void move(int dx, int dy) { x += dx; y += dy; }

}
------------------------------------------------------------

■Point3d.javaの内容
------------------------------------------------------------
package points;

import points.*;

public class Point3d extends Point {
int z;
public void move(int dx, int dy, int dz) {
x += dx; y += dy; z += dz;
}
}
-------------------------------------------------------------

環境は以下の通りです。
JDK1.3.1_04
OS Win2000 sp2
IE6sp1
>>409 xという変数はどこかで宣言されているの?
>>410 どちらも同じディレクトリに入っている?
Pointクラスのxとyをpublicかprotectedにしてみては?
>環境は以下の通りです。
>IE6sp1
この、ブラウザの情報は関係ないと思う。
413409:03/01/17 19:51
>>>409 xという変数はどこかで宣言されているの?

親クラス(Pointクラス)で宣言しています。

>Pointクラスのxとyをpublicかprotectedにしてみては?

結果は同じでした。
2つのソースは同じフォルダ(points)に入っています。

Point3d.java:5: シンボルを解釈処理できません。
シンボル: クラス Point

この継承元が認識できていないエラーが元凶かなと思っています。

このソースの出所です。
http://www.y-adagio.com/public/standards/tr_javalang/8.doc.htm#30229
>>413 こういうときは大抵、x,y,zを初期化するコンストラクタを指定する。
public Point(int x, int y){
this.x = x;
this.y = y;
}

public Point(){
this(0, 0);
}

public Point3d(int x, int y, int z){
super(x, y);
this.z = z;
}

public Point3d(){
this(0, 0, 0);
}
>>413
同じディレクトリ(フォルダ)、同じパッケージ名にあるなら
>import points.*;
宣言は不要。
ファイル名とクラス名は一致。となると、ほかに考えられる原因は....。
ソースに全角文字..や全角空白..?
416デフォルトの名無しさん:03/01/17 20:06
Serializeをつかって
深いコピーをしています

あるクラスを深いコピーして
そのクラスのフィールドで参照されている
一部の他のクラスは浅いコピーすることは
できるのでしょうか?

つまり
深いコピーされたオブジェクトと元のオブジェクトが
同じオブジェクトを参照するようにしたいのです

Serializableインターフェースをインプリメントと
しないと
NotSerializableExceptionが発生していまいます

よろしくお願いします
>>416 deepコピー後にアクセッサメソッドなどでフィールドにアクセスし = で参照。
418416:03/01/17 20:18
>>417
レス ありがとうございます

ちょっと私の説明がわるかったと思います
深いコピーだとフィールドで参照されている
オブジェクトもコピーされますが

参照されている一部のオブジェクトは
コピーされないようにしたいのです
不可能でしょうか?

つたない説明ですいません
>>418 コピーしたいフィールドのみclone()し
コピーしたくないオブジェクトは=にした自作clone()メソッドをオーバーライド
420409:03/01/17 20:37
>同じディレクトリ(フォルダ)、同じパッケージ名にあるなら
>>import points.*;
>宣言は不要。

あ、そうなんですか。
エラーが出るもんで追加してました。

>ファイル名とクラス名は一致。となると、ほかに考えられる原因は....。
>ソースに全角文字..や全角空白..?

特に見当たりませんでした。

継承しない場合はコンパイルエラーは出ません。(その場合、変数の宣言の追加が必要ですが)
みなさんは409のソースでコンパイルエラーは出ませんか?
環境の問題なんでしょうか??
421U ◆CZtFsGiu0c :03/01/17 21:28
>>420
クラスパスの設定は? コンパイル時のカレントディレクトリは?
すくなくとも以下の状況ならコンパイルできる。

・クラスパスにカレントディレクトリが入っている
・カレントディレクトリはpointsの親ディレクトリ
・以下のコマンドでコンパイル(Windowsの場合)

javac points\Point3d.java
>>418
readObject(InputSteream)
writeObject(OutputStream)
をオーバーライド(正確にはオーバーライドではないのだが。
Objectにはそんなメソッド無いので。)してしまえ。
>>420
>>410のソースを2つとコンパイルしたが何もエラーは出なかったぞ。
文字コードは問題なし? Windowsでメモ帳使っているからShift_JISだよな?
UTF-8が標準だが。
>>423
> 文字コードは問題なし? Windowsでメモ帳使っているからShift_JISだよな?
> UTF-8が標準だが。
すまぬ。勝手にメモ帳使っているとか書いた。他の、メモ帳を使っているとレスした人の古いレスと間違えてしまった。
425416:03/01/17 23:25
>>419
>>422
レス ありがとうございます

やはり コピーをつくるメソッドを
自分で定義すればよいのですね
わかりました
今回はシリアライズを使うので
readObject(InputSteream)
writeObject(OutputStream) を独自に
書いてやってみます

アドバイスしてくださった みなさん
ありがとうございました
426デフォルトの名無しさん:03/01/17 23:51
JSPなどでよく見られる
<input type=\"text\" name=\"name\">
という\はどう言う意味ですか?
>>426
「"」などの特殊文字のエスケープ。たぶん。
>>274 コピペできるYo! (Win2000/XPでの説明)左上のアイコンクリックして[編集]-[範囲指定]
でドラッグできるようになる。Enterでクリップボードに貼り付けられる。
プロパティで簡易編集モードを選択するといきなりドラッグできる。

>>275 それは(ボタンが並んでいるのは)Win9x/Meだと思われます。
>>427
正解だから胸を張れ。特殊文字というのはいただけないけれど。
>>426-427 その通りです。が、
この場合、out.println()メソッドなどのなかに""で囲ったときのみで、
JSPでout.println()などを使わないときは \ は不要です。
>>429
すまそ。いやおれJSPとかよく知らないのよ。
たまたま板を開いたとき一番上にこのスレと、
その質問があったから答えてみたの。
432デフォルトの名無しさん:03/01/18 00:14
>>427-431
ありがとうございます
結局のところ\ってどう言う時に使うのですか?
>>432 例えば文字列を代入するとき""で囲むとき
str内に"を入れたいとき、二つ目の"が現れたとき文字列の終了と
勘違いするので\でエスケープする。
String str = "\"2ちゃんねる\""

\\ \そのもの \n改行 \r リターンコード \t タブ など
初歩的で簡単なことなのでJavaの本やサイトで調べましょう。
434409:03/01/18 00:46
>421
解決しました。
ありがとうございました。

\points>javac Point3d.java
となっていました。
LinkedListに格納されているStringの要素を配列で取得したいんですが、

LinkedList list;
String strings[];

strings = (String[])list.toArray();

とするとClassCastExceptionが発生します。

LinkedList list;
String strings[];
int n;

strings = new String[list.size()];
for(n = 0; n < list.size(); n++)
  strings[n] = (String)list.get(n);

のように、要素を1個ずつキャストするしかないんでしょうか?
>>435
toArray(Object[] a)っていうメソッドがあるよ。
437435:03/01/18 01:29
>>436
strings = new String[list.size()];
list.toArray(strings);

でうまくいきました。サンクスです。
あと、

strings = new String[0];
strings = (String[])list.toArray(strings);

とするのもアリのようです。こっちの場合は
配列の長さを要素数の分に確保し直してくれるんですね。
>>437
>strings = new String[0];
>strings = (String[])list.toArray(strings);

確かにありですが、内部でリフレクションを利用して配列をnewし直すのでおっそいです。
> 確かにありですが、内部でリフレクションを利用して配列をnewし直すのでおっそいです。

ソースちゃんと読んだ事あるか?
>>439
ほい。

>public Object[] toArray(Object a[]) {
> if (a.length < size)
>  a = (Object[])java.lang.reflect.Array.newInstance(
>              a.getClass().getComponentType(), size);
プ
442 ◆odHOE.4x.I :03/01/18 10:53

> 確かにありですが、内部でリフレクションを利用して配列をnewし直すのでおっそいです。

早いとか遅いとかを問題にしているのではなくて、

>配列の長さを要素数の分に確保し直してくれるんですね。

不必要な用を確保しなくてもすむ所にメリットを感じる場合は

>strings = new String[list.size()];
>list.toArray(strings);

よりも、

>strings = new String[0];
>strings = (String[])list.toArray(strings);

が、良いです。それはソースにもある様に 必要な要素分だけnewInstanceする
からです。

>public Object[] toArray(Object a[]) {
> if (a.length < size)
>  a = (Object[])java.lang.reflect.Array.newInstance(
>              a.getClass().getComponentType(), size);

コードもすっきりとするのではないでしょうか? 終了。
>>442
>不必要な用を確保しなくてもすむ所にメリットを感じる場合は
>>strings = new String[0];
不必要な配列(new String[0])を使ってるのでは?
>>443
サイズ0の配列は、速くて、軽いね。
計測すると、差もほとんど無し。
コードがすっきりする方がメリットがでかいですな。
不必要なnewは良くないね。必ずヒープを消費するわけだし。
なぜtoArrayの引数にclassが取れないんだろう。ダサいね。
>>442
toArray(new String[0]) みたいなコードは
toArray(Object a[]) は a.length < size の時 a.length の配列を
reflection で確保して返す、という前提条件を知らない場合
サイズ0の配列を確保してる行為が意味不明ですっきりしてないと思うぞ。
そのぶん toArray(new String[list.size()]) みたいに書いた方が誰でも理解できてすっきりしてる。

ところで toArray(new String[0]) みたいなコードは何がすっきりしてるの?
447教えて君:03/01/18 14:53
P503isとP504iの実機では動いているものが、504エミュでは動きませんでした。
問題はネットからデータを読み込み、スクラチパッドへ入れるところ
なのですが、この部分はフリーのソースを使っていまして。
自分でも勉強しているのですが、まだ実力が足りずリファレンス等を見ても
何が悪いのか見当がつきません。
エミュではjava.lang.IndexOutOfExceptionが出ます。
利用ソース元はhttp://throw-and-catch.hp.infoseek.co.jp/lib/lib.htm
にあるPadManagerクラスで、画像の読み込みと保存を主に利用しています。
今あるソースを拡張して30kbの中で作りたくて504環境に移行しましたが、
504になって変わった点等、アドバイスがございましたらお願い致します。
>>445
メソッド数増やしたくなかったのでは?
toArray(Object[] a) と toArray(Class clazz) の
どっちか選べって言われたら前者だと思う。

俺は 0<collection.size() のとき
collection.toArray(new String[0]) が
IllegalArgumentException とか
IndexOutOfBoundsException を投げないって仕様の方が不思議。
>>447
マルチポストは止めた方が良いと思われ。
>>444
サイズ1のArrayListでやったけど倍近く差が出たよ。
10,000,000回に回数増やしたら4倍ぐらいに差が広がった。
>>445
>なぜtoArrayの引数にclassが取れないんだろう。ダサいね。

Class[]が作れなくなるから。
あ、作れるか。スマソ
あんまりな質問ですみません。

BufferedReader.read() で取った数値を文字にしるには、どげんしたら良かとですか?
>>454
(char)BufferedReader.read()
>>454
Integer#toStringとかええんちゃうん?
>>455 >>446
どおもです…。m(__)m
antについて質問です。

<property name="build.srcdir" value="${basedir}/src"/>
<property name="build.destdir" value="${basedir}/classes"/>

<target name="build" description="ビルド">
<mkdir dir="${build.destdir}"/>
<native2ascii encoding="utf-8" src="${build.srcdir}" dest="${build.destdir}" includes="**/*.java"/>
<javac srcdir="${build.destdir}" includes="**/*.java" destdir="${build.destdir}"/>
</target>

以上のようにnative2asciiで変換させているのですが、2回目以降は
> ant
Buildfile: build.xml

build:
[native2ascii] Converting 1 file from D:\program\java\src to D:\program\java\classes
[native2ascii] java.lang.Exception: D:\program\java\classes\jp\rcl\net\j2ch\Main.java に書き込むことができません。

BUILD FAILED
file:d:/program/java/build.xml:13: conversion failed

と上書きできない旨のエラーが出ます。
毎回native2asciiの出力先を消しておかなければならないんでしょうか?
>>458
俺は、native2asciiするファイルはエディタで変換しちゃうから、
antのタスクでnative2ascii使ったこと無いけど、
とりあえず、native2asciiの前にantのタスクで消せばいいんちゃうんかと。
460デフォルトの名無しさん:03/01/18 20:17
http://www.geocities.co.jp/Milano-Cat/6218/cs_female/

こういうの作りたいのですが、JAVAの知識がなにもないので作れません。
よかったら助言おねがいします。
>>458
javac タスクに encoding 指定するのじゃダメなんすか?
462デフォルトの名無しさん:03/01/18 20:18
アプレットのTextAreaについての質問です
大変困っているので、何卒どなたかお願いします

TextAreaに表示される文字の色を列毎に変える事は可能ですか?
TextArea.setForegroundで文字の色字体は変えれるのですが、当然TextArea全体
の色が変化してしまい、意味がありません。

1行目は青、2行目は赤と言った風に文字を変える事は可能なのでしょうか?
どうかよろしくお願いします
>>458 おれの場合、src, classes以外に、asciiに変換した用のソースディレクトリを作っている。
native2ascii実行する前にasciiディレクトリを一旦rmdirしmkdirする。
それからsrcからasciiディレクトリにascii化したソースを出力する。
asciiディレクトリのソースをjavacしてclassesに出力、
コンパイルが終了したらasciiディレクトリをrmdirする

このようにしてbuild.xmlファイルを記述している。
>>460 それ、JavaじゃなくてJavaScript。全然違うものです。
よって板違いだが、作りたいものがそれに似たものならそれのソースを見ればだいぶ勉強になる、と助言しとく。
(JavaScriptはソースがDLできるよ。DL法は勝手に勉強しろ)
>>460 ほんとだimage.htmlにもmenu.htmlにもappletタグもobjectタグも見つからなかった。
レスありがとうございます。
>>459
>>463
やはりnative2asciiの前にascii化ソースを削除するということですね。
今は
<delete>
<fileset dir="${build.destdir}" includes="**/*.java"/>
</delete>
<native2ascii encoding="utf-8" src="${build.srcdir}" dest="${build.destdir}" includes="**/*.java"/>
としているので、このままで逝きたいと思います。

>>461
すいません。書くの忘れていましたが、jikesを使っています。
>>462
>1行目は青、2行目は赤と言った風に文字を変える事は可能なのでしょうか?
不可能です。

http://openlab.ring.gr.jp/kyasu/
の KFC とか使えば可能かも。
>462
JTextPane
JEditerPane
>>468
あれのビューいじるの大変じゃない?
460です。レスありがとうございました。JAVAとJAVAスクリプトはちがうのですか。
ダウンロードはしてみたんですが無断転載不可ということなので、
似たような者をつくろうと思っていたのですが。。。
助言ありがとうございました!
>>469
javax.swing.text.StyledDocument 実装すれば良いだけ…
ってすげー大変そうだけど。
>>471
DefaultStyledDocumentって使えないの? 
>>472
あくまでデフォルトなのがネック。継承して自分なりのレンダラにするのがめんどいっす。
474デフォルトの名無しさん:03/01/18 22:36
182 :通りすがりのマルチ ◆n.CHii/cVw :03/01/17 02:07 ID:IY2pTvoD
>>149
上が180以上、下が120。高脂血漿。医者にいつ心筋梗塞起きても
おかしくないと言われました
javadocのパッケージの部分の説明ってソースのどこに書けばいいのでしょうか?
>>475
パッケージのソースと同じディレクトリにpackage.htmlを置く。
それから、javadocを使う。
>>476 overview.htmlもあるといいねぇ。
package.htmlをantで使うときは要注意か?
copyタスクをつかっておかないといけないかも
478デフォルトの名無しさん:03/01/19 02:36
>>440のJavaのソースってどこでみれるんですか?
>>476
>>477
できました!
ついでにoverviewも書いちゃいました
>>478
src.jarってのを解凍する。
ただし、そのソースを見た場合、(略
481デフォルトの名無しさん:03/01/19 02:50
そうですか。
482 ◆odHOE.4x.I :03/01/19 08:33
>>462
TextAreaを使わずにpaintする。
言い換えるとg.drawStringで書く。と言うのは?
483名無しさん@3周年:03/01/19 08:53
たまに、
import AAA.bbb.*;
import AAA.bbb.ccc;
っていうインポート文をみるんだけど、
import AAA.bbb.ccc;って
意味あるの?
>>483
cccという名前のクラスが別のパッケージにもあって、そっちのパッケージも
*でパッケージごとインポートしている状況で、そのファイル内でAAA.bbb.ccc
をクラス名(ccc)だけで呼び出したいときは、そう書きますよ。

理想は、*でインポートするのを即刻止めるべきですが。
できのよいIDEならimport文の自動編集くらい当然のようにやってくれますし。
>>482
ドキュメントのレンダリングをすべて自力でやる手間よりは、
APIライブラリ解析して使うほうが楽だと思うよ。
>>483
import java.awt.*;
import java.util.*;
とかやると java.awt.List と
java.util.List で衝突したりするよ。
487デフォルトの名無しさん:03/01/19 16:32
はじめまして。
このごろ本格的にJAVAの勉強をはじめました。
早速ですが質問です。
class Bで格納した変数aをclass Aに引き渡す場合どうすればいいのでしょうか?
よろしくお願いします。
>>487 質問が意味不明。そういう質問のときはメソッドという言葉が出てくるはず。
とりあえず引数として渡す方法と、参照を保持させておくという方法があると言っとく。
>>487 変数(フィールド)aがpublic staticなら

class A{
public void method(){
//処理
B.a;
//処理
}
}

変数(フィールド)aがprivate 非staticな例なら
class B {
private int a;

public B(int a){
this.a = a;
}

public int getA(){
return a;
}
}

class A {
public void method(){
B b = new B(1);
int x = b.getA();
}
}
490デフォルトの名無しさん:03/01/19 18:28
初心者です。
よろしくお願いします。

AWTのリストをリストα,リストβと2つ作ったとします。
1つ(同一)のItemLisnerに2つとも登録します。

つまり同一↓の関数内でα,βの判別を行いたいのです。
public void itemStateChanged(ItemEvent ie){
}

この中でα,βどちらのイベントなのか判断する方法がわかりません。
どなたかご存じでしたら教えて頂きたいのですが、よろしくお願いします。
>>490
ItemEvent#getItemSelectable() で α か β への参照が得られるはず。
492デフォルトの名無しさん:03/01/19 18:33
今オブジェクトに関して勉強しているのですが
著書に解説していない事項が気になって(涙
複数疑問があるので、ぜひ宜しくお願い致します

1
static(クラスメソッド)からインスタンスメソッドにアクセスできない
と勉強したんですが、その逆はアクセスできるんでしょうか?
個人的にインスタンスメソッドからクラスメソッドにはアクセスできる
ような気はするんですが、どうなんでしょうか?

2
今のところ、「クラス型の変数」はStringクラス、StringBufferクラスの
2通り習ったんですが、このMATHなどもフィールドで宣言できるものなんですか?

3
mainメソッドでオブジェクトをつくるとき、
例 Car car1=new Car();
このcar1というものは「ローカル変数」「インスタンス変数」「クラス変数」
どれに該当するものなんでしょうか?
メソッドの中だから「ローカル変数」なのかな・・と思ってるんですが・・

どうぞ宜しくお願いします。
493デフォルトの名無しさん:03/01/19 18:39
>>492
1.できる
2.言っていることがわからない。MATHって何?
3.そのとおり、ローカル変数。

1と(内容はよくわからんが)2は自分ですぐ試せるんだから、自分でやれよ。
>>492
> 1
> static(クラスメソッド)からインスタンスメソッドにアクセスできない
> と勉強したんですが、その逆はアクセスできるんでしょうか?
> 個人的にインスタンスメソッドからクラスメソッドにはアクセスできる
> ような気はするんですが、どうなんでしょうか?
同じクラス内での話だね。
試しに自分でやってみよう。それが理解への近道。

> 2
> 2通り習ったんですが、このMATHなどもフィールドで宣言できるものなんですか?
ちょっと意味がわからないぞ。MathクラスのフィールドはPIとEだけです。
質問内容をもっと具体的に説明したほうがいい。

> 3
> mainメソッドでオブジェクトをつくるとき、
> 例 Car car1=new Car();
> このcar1というものは「ローカル変数」「インスタンス変数」「クラス変数」
> どれに該当するものなんでしょうか?
> メソッドの中だから「ローカル変数」なのかな・・と思ってるんですが・・
ローカル変数。もしcar1がそのクラスのフィールドであればインスタンス変数か
クラス変数のどちらかになる。
クラス変数はstaticな変数のこと。
staticでなければインスタンス変数。
2 Math クラスはコンストラクタが private で定義されているのでインスタンスを作れない

数学計算というグループでまとめてるだけで、
オブジェクト指向的でないといえばそうかも。
>492
1.やってみれば分かるだろ。そういうのは推測どおりにならない場合に聞きに来いよ。。
2.Mathの間違いだな?
class hoge{
Math math = new Math();
}
↑やってみれば分かるだろ。publicコンストラクタが無いので無理。

3.やってみれば・・・・・・分からないな。いい質問です。正解。

>494
>ローカル変数。もしcar1がそのクラスのフィールドであればインスタンス変数か
>クラス変数のどちらかになる。
ローカルスコープで上書きされると思われ。
497490:03/01/19 19:07
>>491
ありがとうございます。
さっそくやってみたのですが、今度は意味不明のエラーが出てしまいます。

public void itemStateChanged(ItemEvent ie){
}

↑この中でリストα.()やリストβ.()とα,βの何かを呼び出そうとすると
NULLEXCEPTIONが発生してしまいます。
リストも関数も同一クラス中に存在します。
リストはクラスのコンストラクタでnewしてます。
そもそもItemListenerが反応しているのにNULLも何もないと思うのですが。
リスト宣言をstaticにもしてみましたが、駄目でした。

何か特別な事をしないといけないのでしょうか?


498デフォルトの名無しさん:03/01/19 19:16
Javaの文で全く同じ文でも
returnがある文とない文があるのですが
いまいち違いがわかりません

returnがあるとどうなって、ないとどうなるのですか?
>>497
スマソ。解読は試みたんだが、

>>498
返り値の無いメソッドで、
最後にreturnがあるか、無いかの違いなら気にするな。
大人になったらわかる。
500デフォルトの名無しさん:03/01/19 19:25
Excelファイルに図を挿入したら
bmpでもjpgでも元のファイルよりも莫大な容量の
ファイルになってしまいます

例えば100kのファイルを挿入したら、Excelでは5Mぐらいになってしまいます
これの解決方法をオ願いします
誤爆だ
>>500
なりません。もっとまともなネタで出直してきなさい。
503デフォルトの名無しさん:03/01/19 19:47
再度の質問です
Exclesior JET を正常に使用している方で
よかったら環境等を教えていただけませんか
当方の環境だとエラーが出て起動できなかったので参考になるかと思いまして
サーブレットで、アクセスされるごとに、インスタンスフィールドを
初期化したいんですが。。。
init(SerletConfig)メソッドはいったいどこで呼ばれるんでしょうか?
Tomcat4.1で、JDK1.4です。
505デフォルトの名無しさん:03/01/19 19:51
初心者の質問ですが
同じクラスファイルの中にたまに何個もクラスがありますよね。あれってどう言う意味ですか

あとBeansでsetの部分とgetの部分は具体的にあそこで何をしてるのですか?
↓の文は例です
public void setItemName(String strName){
itemName = StraName;
}

public String getItemName(){
return itemName;
}
>>506
public class MonaMona {
 String itemName; // ←注目 注目 注目
 public void setItemName(String strName){
  itemName = strName; // 引数に与えられたstrNameをitemNameに入れる。
 }
 public String getItemName(){
  return itemName; // フィールドのitemNameを返す。
 }
}
>>505 これは内部クラスのことを別としての説明です。

単なる練習用、動作テスト程度にプログラミングするなら
同じファイルに複数のクラスがあっても構わない。

クラスをパッケージ化した場合は同じファイルに複数ある場合、
ファイル名と名前が同じで且つpublicになっているクラスのみ
パッケージ外部からアクセスできる。

長いプログラムや、あるクラスを何度も再利用したい場合は同じファイルに複数のクラスは入れないほうがいい。
複数のファイルに分割した方が良い。
>>504 initという名前からして初期化の意味
Servletを起動したときinit()が呼び出される。
init()メソッドをオーバーライド
>>500 Excelは板違い。
ソフトウェア板かWindows板かビジネスsoft板で質問したほうがいい。
510デフォルトの名無しさん:03/01/19 21:13
クラスやメソッドの前にある
publicがあるとき
privateがあるとき
あと何もなしの時の違いがわかりません

public・・・ほかでも反映されるって、ほかってどこのことですか?
publicとprivateはわかるのですが、何もない時ってどう言う動きになるのですか?
ネタにしても、もう少しレベルあげれ。
>>511
激しくスレ違い
上級者のみのJavaスレでも行け
>>510
何も無い時はデフォルトでprivateが付く、
publicは
「全部ずるっとまるごとお見通しだ!」
状態
privateは
「すいません、結婚式は身内だけで静かにやりたいんで、、」
状態
protectedは
「俺の娘に手を出したら殺す!!!みんじゃねーよ糞が!!」
状態
514504:03/01/19 21:53
やっぱりinit()、init(ServletConfig)メソッドが呼ばれるタイミングが
わかりません。
そのクラスを最初に実行したときに、呼ばれるんでしょうか?
それとも、各クライアントごとに呼び出されるんでしょうか?

それとも一つのクラスを非同期で共有するのでしょうか?
わかんなくなってきました。。。
>>510
とりあえず試してみるって発想は無いのか。
試せない状況で気になって仕方ないってんなら、スコープについて調べてみろ。
>>513
privateとprotectedの違いって何?
外からしたら不可視なわけでしょ?
>>513
デフォルトは package public でしょ。
>>513
> 何も無い時はデフォルトでprivateが付く、
これは間違ってます。
同じパッケージ内からは参照できる(だったっけ?)
>>516
privateは不可視、
protectedも不可視、しかしこれは、自分を継承した
子クラスからのアクセスにだけは公開してあげるよ♪てこと。
あんまり使わない。
>>517
うおおお!!今までずっとprivateだって信じてたのに!!!
package public = friend(friendという宣言はないが)
少なくともprivateではない。privateだと継承されないから。
protectedはパッケージ内からは丸見えよ〜
つまり
public 全部丸見え
protected パッケージ内丸見え
private 誰も見れない
523デフォルトの名無しさん:03/01/19 22:20
ちなみに、Interfaceはpublicがデフォルトでした。
>>512
その仕様、最初に知ったときは驚いたね〜
折角シコシコprotectedにしたのに、丸見えだからね〜
public - アクセスに制限がない。
protected - 同じパッケージ、またはそのサブクラスからしかアクセスできない。
省略 - 同じパッケージ内からしかアクセスできない。
private - 同じクラスからしかアクセスできない。
で、パッケージの定義とはなんぞや?
527デフォルトの名無しさん:03/01/19 22:31
http://www.hellohiro.com/jdbcmysql.htm
のHelloWorldJDBCMySQL.javaを動かそうとしてるのですが、
下記エラーが出てしまい動きません。
jdbcのドライバの設定がおかしいと思うのですが、
いくら考えても分かりません。誰か教えてください。
java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
at java.net.URLClassLoader$1.run(URLClassLoader.java:198)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:130)
at HelloWorldJDBCMySQL.main(HelloWorldJDBCMySQL.java:8)
素直に「パッケージって何ですか?」って聞けよ(w
>>526
「パッケージの定義とはなんぞや?」とはなんぞや?

  _、_    パッケージて何ですか?
( ,_ノ` )     
     ζ
    [ ̄]'E
      ̄
>>527
ClassNotFoundExceptionて書いてあるだろうが
つーかソース晒せよ
>>530
用途ごとにディレクトリ分けて
同一ディレクトリにあるクラスをまとめたやつ
とでも覚えとけ。
>>532
  _、_    Javaのprotectedて何の使い道も無いっすね。
( ,_ノ` )    コーヒーのくせに使えない奴だ。>Java
     ζ
    [ ̄]'E
      ̄
>>532
protectedは継承したときに初めてアクセスできるようになるんだよ
お前が使えねー
>>527
ここで例外出てる。
Class.forName("org.gjt.mm.mysql.Driver");
このクラスが無いんだと。クラスパスを通してあげてな。
536デフォルトの名無しさん:03/01/19 22:46
初心者なので、馬鹿みたいな質問だとは思いますが、よろしくお願いします。

一つのプログラムに対して、いくつかのファイルに分けて
記述されているとき、
たとえば、ファイル A.java と B.java があって
【A.java】
package shop;
 ・
 ・
 public class Shop {
  ・
  ・
  ・
}

【B.java】
packeage shop;
 ・
 ・
public class Buy(Shop shop){


}

という感じで、A.java内で定義したクラス型を他のファイルで使うと、
コンパイル時に、「シンボルを解決できません」というコンパイルエラーが出て
コンパイルできません。
こういう場合はどうすれば、良いのでしょうか?
初心者なので、非常に初歩的な質問かと思いますがよろしくお願いします。
packeageがスペルミス
>>530
名前空間、あるいはシステム分割の単位
> public class Buy(Shop shop){
おかしくないかい?
540527 :03/01/19 23:11
ソースはこれです。
http://www.hellohiro.com/src/HelloWorldJDBCMySQLUpdate.java
今クラスパスの通したことで
set classpath=C:\j2sdk1.4\lib\org\gjt\mm\mysql
エラーが変わりました。ありがとうございました。

Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorldJDBCMySQL
>>540
C:\j2sdk1.4\lib
にもクラスパス通してあげて。
>>541
違う。これだこれ。
set classpath=C:\j2sdk1.4\lib\org\gjt\mm\mysql;.;
>>540
念のために言っておくと、カレントにもパス通せよ、と。
あと補足だが、*.jarは一つのディレクトリと解釈されるので、それもちゃんとパス通せよ、と。
544デフォルトの名無しさん:03/01/19 23:26
メソッドやクラスでvoidがあるのとないのとありますが
違いって何ですか?
545899:03/01/19 23:27
サーブレットで開発をしているのですが、
ある画面に遷移した際に、IEのステータスバーに出ている読み込み具合を
示す青いバーが遷移後に表示をはじめて、途中でとまったままに
なっています。画面は表示されるのですが、「ページが表示されました」
というメッセージがでません。なぜなのでしょうか。
画面はフレーム構成で、上フレームのonloadで下フレームを呼んでいます。
>>544
voidは戻り値を返せない。
>>546
retrunを使えないって事ですか?
>>547
使えるが、何の値も返せない。
549899:03/01/19 23:47
545は分からないでしょうか。
フレーム構成で、まずフレームを表示したあと、フレームの上の
部分をsrc指定で表示し、その後上フレームのonloadで下フレームを
表示しています。
550デフォルトの名無しさん:03/01/20 00:02
>>546
うーん
よくわかりません

素人考えながら、それならvoidは別になくてもいいのでは?
>>550
返り値が無い事と明示的に示す必要があるから。

例えばコンストラクタメソッドは返り値の指定が無い。これは
自動的にポインタ(とはJavaでは言わないが)を返す事になっているから。

要するにこれらをはっきり区別するため。
>>549
あんた、いろんな所に誘導されてるようだが、多分、web製作か、WebProgで、
聞くのが妥当かと。
すんません、質問です。

jdb 使用時に System.in.read は使用することが出来ないんでしょうか、
以下、「メール受信を行いますか?[y/n]:y」の末尾の y を拾おうとして失敗しています。

 VM が起動しました: 保留した ブレークポイント mypop.getResponse を設定しました
 メール受信を行いますか?[y/n]:y
 認識できないコマンドです。ヘルプを参照してください...
 >
 >
554549:03/01/20 00:19
そうですか。
分かりました。
web開発をしていてよくある現象なので、みなさんは知っていらっしゃる
かと思ったのですが。もしかしたらhtmlを読み込む前にonloadで
htmlの要素を呼び出しているのがよくないのかとか思ったのですが。
もしくは1画面で2つサーブレットを呼び出すとそういうことに
なるのかな。とか。
555デフォルトの名無しさん:03/01/20 00:27
>>550

int a(){
return b;
}
float c(){
return d;
}

かた おなまえ(いれてね){
かたのものをかえすよ

というせんげんのきまりがあるからだよ
ほかのはちゃんとかたをせんげんしているんだから
やっぱりぼいどーとさけんだほうがみためもいいし
こんぱいらさんがわかりやすいとおもうんだ

つけなかったらぼいどね、でもいいとおもうけれど
みんなぼいどつけることになれてるから
それでいいんじゃないのかな。
>>550
>素人考えながら、それならvoidは別になくてもいいのでは?
そのとおり。voidを記述しなければいけないのは過去をひきずっているだけ。
>>554
それって、たぶんIEのバグ。
複数コンテンツをロードする時に、なんかのタイミングでIEの独自プログレスバーが
リセットされなくなる現象。海外のMLでそんな記事見つけた。

尚、この話はスレ違いなので、これ以上質問しないように。
>>556
お前はインタフェース(宣言のinterfaceにあらず)の可読性をないがしろにしたいの
ですか?
559549:03/01/20 00:36
>>557
ありがとうございます。
スレ違いなので、こちらのでスレッドで
もしよろしかったら、対策を教えていただけないでしょうか。
http://pc.2ch.net/test/read.cgi/php/992317108/l50

>>556
>過去をひきずっているだけ。
ハァ?
過去ってC++の事?C/C++のVOIDはjavaのvoidではないぞ。
へみ猫のほうのvoidとも違うぞ。
ということに(以下略
>>556
関係無いけどIDLでも戻り値 voidの指定がある理由って、わかる?
>>544 voidや返す型が無いのはメソッドではなくコンストラクタ

>>550 コンパイラがコンストラクタとの区別を高速化する手段にもなっていると思う。
voidはつけたほうが解りやすい。

Javaではvoidはずしたらエラーになるぞー

「戻り値の型が宣言されていません!!!」

と文句を言ってくるぞー
>>557 >>559 プログレスバーって、Servletとは関係なく、
JavaScriptで(IEの場合はJScriptか?)
動くヤシではないか? スクリプト使ってる?
567教えて君return:03/01/20 00:54
iアプリの勉強をはじめたばかりの者です。
何卒ご教授お願い致します。

ネットからデータを読み込み、スクラチパッドへ入れるところを
http://throw-and-catch.hp.infoseek.co.jp/lib/lib.htm
にあるPadManagerクラスが便利なので利用しているのですが、
P503isとP504iの実機では動き、504エミュでは
実行時にjava.lang.IndexOutOfExceptionが出ます。
コンパイルは通ります。
503環境時は普通に使用できてました。

今あるソースを拡張して30kbの中で作りたくて504環境に移行しましたが、
504になって変わった点等、アドバイスがございましたらぜひお願い致します。
>>567 試しにIndexOutOfExceptionの前にArrayIndexOutOfExceptionや
StringIndexOutOfExceptionをcatchするのはどうですか?
そのときのメッセージ内容もここに貼り付けるのはどうでしょう?
570549:03/01/20 01:00
>>566
使っています。
javascriptの問題なのでしょうか。
>>567
ソース付いてるやん・・・自分で調べろよ・・・
>>567
× java.lang.IndexOutOfException
○ java.lang.IndexOutOfBoundsException

俺はiアプリは知らないが、「実機では動く」ってのは実機側で例外を根こそぎcatchしてるから
本当は死んでるんだけど、動いてるように見えるってオチは無いよな。

つーかどこでその例外吐いてるのか。
573デフォルトの名無しさん:03/01/20 01:01
ここへの書き込みミスのため、指摘が違う方向へ行っちゃったので、
修正して書きます。

初心者なので、馬鹿みたいな質問だとは思いますが、よろしくお願いします。

一つのプログラムに対して、いくつかのファイルに分けて記述されているとき、
たとえば、ファイル A.java と B.java があって
【A.java】
package shop;
 ・
 ・
 public class Shop {
  ・
  ・
}

【B.java】
packeage shop;
 ・
 ・
public class Buy{
public void additem(Shop shop){
  ・
  ・
 }
}
という感じで、A.java内で定義したクラス型を他のファイルで使うと、
コンパイル時に、「シンボルを解決できません」というコンパイルエラーが出て
コンパイルできません。こういう場合はどうすれば、良いのでしょうか?
初心者なので、非常に初歩的な質問かと思いますがよろしくお願いします。
574556:03/01/20 01:01
過去を引きずっていると言ったのは、無くても動作可能(Eiffelは返り値が無いとき記述なしですよね)
で、JavaがC/C++似の文法を採用していることを理由とした自分の推測です。
それをひっくるめて可読性にも寄与しているとも思いますが。
575デフォルトの名無しさん:03/01/20 01:03
あ、すみません。また直し忘れています。
packeage => package
プログラムではきちんとなっています。
>>575
怪しすぎる。何故プログラムからコピペしない?
>>575
// Shop.java
package shop;
public class Shop {
}

// Buy.java
package shop;
public class Buy{
  public void additem(Shop shop){
  }
}

何の問題も無くコンパイルできましたよ?
なんとなく、コンパイルするディレクトリの問題の予感。
>>573 B.javaのファイル名を Buy.javaにするか、
Buyというクラスのクラス名をBという名前に変更せよ。
>>574
煽る訳じゃないが、Eiffelは関係無いのでは?
つーかEiffelで動作可能だからって、Javaとは関係無い。

戻り値が無いって事を明示的に書く方が可読性が上がると思うんだが。
581573:03/01/20 01:24
CLASSPATHにこれらが入っているフォルダまでのパスを追加したら
成功しました。
お騒がせしました。
582574:03/01/20 01:30
>>580
EiffelをあげたのはJavaに似た言語で単にvoidが無くても動作する例を見せたかったからです。
voidが無くても動作可能だったはずなのはわかりますよね。

>戻り値が無いって事を明示的に書く方が可読性が上がると思うんだが。
C/C++ユーザが多い = voidがあった方が読みやすい人が多い
ということであれば同意します。

はっきり言ってあってもなくても大して変わらないと思うのでC/C++ユーザを確保するために
他の文法も含めてJavaではvoidを書くことにしたのだと思います。
>>581 AクラスとBクラスを別ディレクトリ、別パッケージから参照するプログラムを作るわけでなければ
CLASSPATHいらないと思う。
>>582 Java/C/C++/C# と Python との比較はどうですか?
あれこそ斬新な記述方法を持った言語という気がする。
戻り値の記述がかなり簡略化されているのに惹かれた。
procedureとfunctionみたいな明確な線引きって無いからな。
でもやっぱ可読性高めるためにvoidはつけとけよ。
大した手間でもあるまいし
586574:03/01/20 01:43
>>584
すいません、そういう話は好きなんですが
スレ違いになりそうなのと僕がPythonを良く知らないのでダメです。

というわけでPythonを勉強してきます。。。
587574:03/01/20 01:46
>>585
そういうことですね。
voidつけるのもたいした手間じゃないし
voidが無いことから返り値がないことを理解するのもたいした手間じゃない。
というわけであってもなくてもどっちでも良いですけれど。
構文の一貫性は重要。
>>581
そんなバカな!コンパイルエラーと言っていたではないか!
return void;
void f1() {
}
void f2() {
return f1();
}

これができないのは糞
コンストラクタでreturn使うのってどうなん?

hoge(String str){
  if (str == null) return;
  this.str = str;
}
みたいの
593デフォルトの名無しさん:03/01/20 02:18
初歩的な質問なんだけど、例えば
public Amethod(double x){}の引数xにint型の値を渡してメソッドを呼ぶことって出来たっけ??
それとコンストラクタの場合も同様に??
相談にのってくださいませ。

今perlでテキスト処理がメインのプログラムを作ってます。
コードが長くなり袋小路に追い込まれています。

そこで、オブジェクト指向の考えを取り入れようかと思っています。
しつもんなのですが、オブジェクト指向で
テキスト処理が主のプログラムを作成するときに、

・今までどおりperlでオブジェクト指向を取り入れる
・正規表現も使えるようになったJavaに移行する

のどちらがベストですか。
よろしくおながいします。

テキスト処理程度ならperlでいいだろ…
>>594
あなたの中で繋がっているであろう認識の連鎖が、必ずしも一般的では無い可能性について、
心のノートに300字以内でまとめよ。

それが出来ない場合、Perlスレに行き、構造化ないしOOの設計について質問汁。
>>594
Python や Ruby を使ってみるに一票
598名無しさん@3周年:03/01/20 03:17
Javaでimportされたクラスにmainメソッドがあって、
importしたクラスにもmainメソッドがある場合、
importされたクラスのmainメソッドは動作しないんでしょうか?
長いって何行?
>>598
実行するときにクラスを指定してるじゃん
601デフォルトの名無しさん:03/01/20 05:30
>>592

できる。

>>593

できる。

>>598

普通のstaticメソッドを使うようにmainメソッドを書けば実行できる。
>>594
コードが長くなり、袋小路に追い込まれているのとオブジェクト指向はほとんど関係ないでしょう。
その状態であればPerlを使いつづけるのがいいと思います。
Perlで手続き型のプログラミングをしても立派なコードはかけます。
機能ごとにメソッドに分割するとか、変数名などを誰にでもわかりやすい名前に変更するなどして、
コードを理解しやすくしましょう。
あとグローバル変数を利用するのは止めましょう。
>>504
HttpServlet の init メソッドは インスタンス生成時に一回だけ、
つまりServlet コンテナが起動してから最初にServletが呼び出されたときのみ呼ばれる。
アクセス毎に呼び出される処理を書きたかったらservice(あるいはdoGet,doPost)内に
書くべし。
604教えて君return:03/01/20 08:17
>569 >572
お返事ありがとうございます。
実機では本当に動いています。
操作可能なんです。
>○java.lang.IndexOutOfBoundsException
でした。m(_ _)m
そのとおりです。
504のプログラミングを解説しているサイトをご存知無いでしょうか?
503時代はあんなにたくさんあったのに・・・。
605 ◆odHOE.4x.I :03/01/20 11:43
>>498
特に記述する必要はないが「明示的」に 返す値はない といった所かな。
ただし、記述する必要がなくても「明示的に」記述することでソースが
読みやすく(見やすく)なる場合もあるよ。

boolean bFlag ;
と宣言しても
boolean bFlag = false ;
と宣言しても、booleanは初期化しない場合はfalseなので記述の義務はないが、
後者「明示的に」書いておくことで、 目で見て理解できるでしょ?

Object o = null ;// ここも 明示的に nullを書いているだけ
o = new Object();
>>498
メソッドの途中でif文等の分岐で条件によっては
そこで処理を終わらせて強制的にメソッドを抜けたいときには
return を書くとそこで処理を終わらせることができる。

>>605
Object o;

Object o = null;
は違うよ。
前者は初期化なしで変数の宣言のみ。
この記述だけだと変数oはnullとはならない。
後者は宣言と初期化を同時に行う。
607デフォルトの名無しさん:03/01/20 11:51
>>605
試しにこんなプログラム書いてみ。
public class Test{

 public static void main(String[] args) {

   Object o;
   if (o == null) {
     System.out.println("null");
   } else {
     System.out.println("nullではない");
   }

 }

}

Test.java:6: 変数 o は初期化されていない可能性があります。
if (o == null) {
^
エラー 1 個

こんなエラーが出てコンパイルできないから。
608 ◆odHOE.4x.I :03/01/20 12:01
voidをつけることは>>588のいうとおり必要なことだとは思うが、
C/C++のように intで宣言して int 0; でvoid扱いにするといったことをJavaでは
「やめ」にしたと、俺は解釈しているよ。

メソッドは宣言する際に必ず「何の型の値を返す」かを指定する必要があり、返す
値がない場合は void型の値を返すことになるのでは? そーいう意味では 
voidメソッドに return ; はあっても良いよね。

さらに>>592のいう、voidを付けることすら許されないコンストラクタの場合、
当然 return ; するべきではないと思う。実際、そーいったソースはよく目にするけどね。
609 ◆odHOE.4x.I :03/01/20 12:07
あ、いわれてみれば確かにそうだね。
newする前に使うことを(使われることを)考えていなかったよ。
俺は = null ; とする事で、「この変数はまだ new されてないんだよ〜」と
「明示的に」しておくことが出来ると思ったんだ。
610 ◆odHOE.4x.I :03/01/20 12:15
>>608
int 0 ; -> return 0 ; だね ^^;ごめん
611デフォルトの名無しさん:03/01/20 12:28
独習JAVAで勉強中のスーパー初心者です。

静的変数とインスタンス変数の違いを教えてください。

いろいろと他のドキュ探して読んではいるのですが、もうサッパリ、、、
なんかJAVA抑えるにはこの辺が肝になりそうな予感なので、
わかり易い資料等ありましたらぜひご教授ください。
612デフォルトの名無しさん:03/01/20 12:57
>>611
java直前必修問題集を読め。(青本)その前にやさしいjavaもいいぞ。
613611:03/01/20 13:00
>>
614611ですが:03/01/20 13:02
↑ミス、すまそ
>>612
あとで本屋に逝ってきます。
615611ですが:03/01/20 13:03
静的変数の場合

System.out.println("Min of -8 and -4 is " +
Math.min(-8, -4));

このステートメントの場合だと、Mathクラスのminというメソッド
を呼び出して()内の値を返す。
616611ですが:03/01/20 13:04
インスタンス変数の場合

String s = "One Two Three Four Five Six Seven";
String substring = s.substring(0, 10);
System.out.println(substring);

このステートメントのあるクラスのsというString型のインスタンスに
substring(0, 10)というメソッドを使って値を返す。

という認識でよいのでしょうか?
>>616
よいです。
618611ですが:03/01/20 13:24
>>616
ありがとうございます。

もうひとつよろしこです。
s.substring(0, 10);
と記述することで、sというインスタンスに、
Stringクラスのsubstringというメソッドが呼び出せる

であると、Stringクラス はString型のインスタンスに対して、
".メソッド名"が記述されたことで呼び出される。。。

と思っておけば良いのでしょうか???

つーか自分で頭の中が整理できたきがするにょ
英語の文字列の先頭を大文字に変えるメソッドってない?
Sunのリファレンスを一通り見たんだけどないみたい。
誰か知っていたら教えてくれ
>>619
Sunのリファレンスみたのなら、java.lang.StringのtoUpperCase()は
見つからなかったの????
文字列の先頭文字をsubstringとかcharAt()で取り出して、toUpperCase()で
大文字に変換してreplace()かなんかで元の文字列の先頭文字と入れ替えれば
OKじゃないのかな?
>>619
Character.toUpperCase(str.charAt(0)) + str.substring(1);
こんな感じかな?
char[] c = str.toCharArray();
c[0] = Character.toUpperCase(c[0]);
new String(c);

なんてやり方もある。
623386:03/01/20 17:01
こんにちわ。
数日前にSerializableについてバイナリデータとして保存できないということ
で質問したものです。
保存できないのはどうもStackOverflowErrorという再帰メソッドに関する
エラーのためなようです。階層が深すぎるためのもののようですが、
解消法としてtreeを浅くするしかないのでしょうか??
>>623
循環参照をしてるんじゃないか?
フィールドが保持しているインスタンスを注意深く見てみれ
625386:03/01/20 18:07
>624
循環参照ってお互いに参照しあってるとか自分自身を参照してるっていう
ことですよね。一応それは避けるようにプログラミングしたし、実際tree
のノードをみてみたけど循環している気配はなかったです。
626デフォルトの名無しさん:03/01/20 18:21
下記のsourceがコンパイルできません。
「abstractとして宣言してます」と表示されるんですがどうしてなんでしょうか?
長いみたいなので2つに分けます。お願いします


class CarI
{
  private int num;
  private double gas;
  public CarI()
  {
  num=0;
  gas=0.0;
  System.out.println("車を作成しました。");
  }
  public void setCar(int n,double g);
  {
  num=n;
  gas=g;
  System.out.println("ナンバーは"+num+"にガソリン量を"+gas+"にしました。");
  }
  public void show()
  {
  System.out.println("車のナンバーは"+num+"です。");
  System.out.println("ガソリン量は"+gas+"です。");
  }
}
627626:03/01/20 18:22
class sample9
{
  public static void main(String args[])
  {
  CarI cars[];
  cars=new CarI[3];

  for(int i=0;i<cars.length;i++){
  cars[i]=new CarI();
  }

  cars[0].setCar(1234,20.5);
  cars[1].setCar(2345,30.5);
  cars[2].setCar(3456,40.5);
  for(int i=0;i<cars.length;i++){
  cars[i].show();
  }
  }
}
628U ◆CZtFsGiu0c :03/01/20 18:37
>>626
ほんとにこれだけ? 親クラスを継承したりインタフェースを実装してたり
していない?
どこにabstractがあるんだろう。。。
>>626
エラーメッセージを貼らないのは答えてもらえないパターン。
どうせあとで聞かれるんだから最初から貼れよ。
631626:03/01/20 18:44
すみません。errorメッセージは下記の通りなんです・・
ソースは上記の2つだけです。


C:\A\BIN>javac sample9.java
sample9.java:11: メソッド本体がないか、abstract として宣言されています。
public void setCar(int n,double g);
^
sample9.java:13: シンボルを解釈処理できません。
シンボル: 変数 n
位置 : CarI の クラス
num=n;
^
sample9.java:14: シンボルを解釈処理できません。
シンボル: 変数 g
位置 : CarI の クラス
gas=g;
^
エラー 3 個
>>631
public void setCar(int n,double g);
{

隊長!余分なセミコロンを発見しました!
633626:03/01/20 18:57
>>632氏初め、皆様方
セミコロンは外してコンパイル成功しました。
皆さん本当に有難うございました。
でもどうして「abstract」と表示されるんでしょうか・・・
もう少し勉強してみます
>>633
public void setCar(int n,double g);
だとエラーメッセージが言うようにメソッド本体がないことになるから、
メソッド本体は派生先で実装することになる。だからabstractって言われる。
>>594 >>602 perlだと継承できないんでなかったっけ?

>>606 tryの中にreturnがあるときはfinallyを先に実行してからreturnするよーん。

>>611 おれは初めてJavaを勉強した本は「独習Java」だったがまあまあよかったと思うぞ。
なんであんな本買ったかというとあれのC言語版、「独習C」がすごく丁寧に説明されていたから、
という単純な理由だけで「独習Java」を買ってしまった。Javaを初めて勉強するにはまあまあだったとは思う。
あれで実際に例題と練習問題を解いて自分でコンパイルして自分で実行すれば
あれでも基礎的な理解だけでも十分深まると思う。
636611ですが:03/01/20 21:21
>>635
さんくすこ!見えてきました!
このまま「独習Java」で最後まで猛進します。
>>636
ただし、独習Javaはプログラムの経験がない人には難解なので注意が必要。
はじめてプログラムを勉強する人向けの本ではない。
>>635
>perlだと継承できない
639デフォルトの名無しさん:03/01/20 22:15
JAVAを初めて2ヶ月ぐらいで大それた事をしようとしてヒィヒィ言ってます。
アプレットで作成した画像をCGIを介して保存したいのですが、

String stAddr="www.***.co.jp";
String stUrl="http://www.***.co.jp/~hoge/hoge.cgi
BufferedImage bi;

try { // サーバー接続用ソケットと出力ストリーム作成
sock=new Socket(adr,80);
osStr=sock.getOutputStream();

} catch(Exception e) {}
try{
ImageIO.setUseCache(false);
ImageIO.write(bi, "png", osStr);
} catch(Exception e) {}

とやったのでは当然出来ません。
そこでヘッダーを追加したいのですが、

String stHead="POST "+stUrl+" HTTP/1.0\n";
stHead+="Content-Length:"+String.valueOf(s)+"\n\n";

 とし、どこかにstHead.getBytes()と追加するのだと思っていますが、
 ImageIOから出力されるであろうサイズsを求めるにはどうすればよいのでしょうか。
 またヘッダーはどういう風に追加すれば宜しいのでしょうか?
 ご教授お願いします。
640デフォルトの名無しさん:03/01/20 22:48
       / ̄ ̄ ̄ ̄\
        /     ●  ●、
        |Y  Y       \
        | |   |        ▼ |
        | \/      _人_|
        |       ___/
        \    /
          |    l |
          |    | |
         /    /| |
         |   / | |
         |  | |  U
         | || |
          | / | |
         // | |
        //  | |
       //   | |
       U    U

>>639
念のために聞くが、当然そのCGI(Servletでもなんでもいい)は、
multipart/form-data を解析して、サーバ内のファイルシステムに保存するような
処理はしてるんだよな?

とりあえずRFCを読め。特に"POST"のバウンダリ文字列関係の記述部分。

#つーかなんでSocket使ってるんだろう...。使いたかったのか。
>>641
おいおい、なんでmultipart/form-dataなんだよ(藁
>639
そういう経験は無いけど俺だったらどうするか。
1、まず、とりあえずプレーンテキストで同様のことをするプログラムを組んでみる。
2、今度はアプレット上の画像をJPEGかPNGにしてBASE64かなんかで
  テキストに変換して標準出力に出す奴を作ってみる。
3、それをプレーンテキストを受け取るCGIに送りつけるのを作る。
  (Javaの標準APIでできそう。ってバイナリも意外と行けたりしてw)
4、CGIをいじってBASE64デコードをさせる。

完成。バイナリデータを清く正しく送るんだ!とかいう理想に萌えてるんならRFCを読みましょう。
644639:03/01/20 23:56
CGIというかperlで
read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'});
と一行で標準出力から得られるんで
open (GOTPIC, "hoge.png");
print GOTPIC $buffer;
close GOTPIC;
とすれば保存は出来るのかなと思ってました。
標準出力する為に必要なのが分からなくて、
調べてたらSocketで出来たからというのがSocket使ってる理由だったりします。
645デフォルトの名無しさん:03/01/21 00:08
importでsqlなりutilなり用途ごとに宣言するけど
あれって共通のものは初めから全部宣言して、
宣言したけど使わないものは別に無視にしたら良いと思うけど
駄目なの?
>>645
そうしたほうが良いという意見と、してはいけないという意見、
どちらも見たことがある。自分で決めてくれ。
>>591
C++ではできるらしいね。STL用に構文が拡張されたとか。

>>606
ローカル変数は初期化されないがフィールドに関しては
参照型はnullで、値型はfalse, 0, 0.0などで初期化されることが保証されてる。
648デフォルトの名無しさん:03/01/21 04:16
byte型で、0xffを代入したいときはどうすればいいのでしょうか?
精度が落ちる可能性がある、って言われてエラーになります。
それとも、符号有りなので無理なんでしょうか?
>>648
byte の範囲は -128 〜 127 まで。 0xFF は 255 なので範囲外。
Java では精度を落とす型変換をCみたいにコンパイラが
暗黙のうちにやってくれないため、 byte b = (byte)0xFF;
みたく明示的にキャストしてやらないとダメです。
650639:03/01/21 04:48
皆様レスありがとうございました。
結局
ByteArrayOutputStream oSt = new ByteArrayOutputStream();
ImageIO.write(bi,"png",oSt);
byte[] t = oSt.toByteArray();
//ヘッダ
     byte[] stSend = stHead.getBytes();

として強引にtに書き込みました。
そこでtとヘッダのstSendを足したいのですが、バイナリデータ同士を足すにはどうすればよいのでしょうか?
>>649
説明間違ってませんか。
0xFFって2進で1111 1111 1111 1111でしょ?
別に精度の問題なくbyteにキャストできる。
ちなみにbyteは2の補数で負数を表現するから-1だよ。
>>650
サイズがわかっているのであれば、新たな配列を確保して、
System.arraycopyしてやればいい。
>>651
4bit区切りがウザイ。
>>648
簡単な説明:
OxFFというリテラル値を、コンパイラはintと解釈します。
byteへの代入は縮小変換になりますので、キャスト無しでは
コンパイラが代入を許してくれません。というだけの話。
>>651
>0xFFって2進で1111 1111 1111 1111でしょ?


>別に精度の問題なくbyteにキャストできる。
精度落ちるよ。
byte b = (byte)0xFF;
byte c = -1;
System.out.println(b == c);
>>655
それよかbの中身を見たいぞ。
657655:03/01/21 09:47
>>656
b = 1111 1111 (2)
c = 1111 1111 (2)
658デフォルトの名無しさん:03/01/21 10:01
>>655
コンパイルエラーだよ (藁
>>650
oSt.toByteArray()する前に、oStに追加分をwriteすれば?
ストリームってなんだか分かってますか?
660デフォルトの名無しさん:03/01/21 10:01
なんかマヌケなやり取りがつづいてますね。
微笑ましいですね。
662 ◆odHOE.4x.I :03/01/21 10:59
>>647
>ローカル変数は初期化されないが

ここかポイントだったね
663デフォルトの名無しさん:03/01/21 11:03
>>645
やってもかまわんがソースの可読性の問題だね。
664デフォルトの名無しさん:03/01/21 11:32
さすが初心者スレ
665 ◆odHOE.4x.I :03/01/21 12:33
>>645

import java.util.* ;

import java.util.Vector ;

どちらも処理等に影響することはないんだけどね。
特に何を必要としているかが分かるでしょ?しかもソースの頭で。
666 ◆odHOE.4x.I :03/01/21 12:37
public class HOE extends java.applet.Applet //←
{
// こーいう指定の仕方はどうかとは思うけど、同じクラス名で衝突する
// 場合もあるからそーいう時は java.util.xxxx foo = new java.util.xxxx()
// とする時はあるよね
}
667458:03/01/21 13:55
レス有り難うございます。

まさか、宣言時にキャストが要るとは思いもしませんでした。
66828:03/01/21 15:03
激しく古いネタですが・・・

使ってたIMAPサーバがJavaMailのコマンドに対応していませんですた・・・
#こんな感じ XX FETCH 1 (BODY[2]<0.16384>)

調べた結果、mail.imap.partialfetch Propertyn変更で一応の対応はできたっぽいです。
# Properties props = System.getProperties();
# props.put("mail.imap.partialfetch","false");

まぁ、まだ本文部分は取得できとらんわけですが・・・ (つД`)
669デフォルトの名無しさん:03/01/21 15:04
java1.3.1でチャットを作っています。

TextArea 内に Append するときに文字色を変えようと思ったのですが、
そういう機能が見つからず、JTextArea を使おうかと思っています。

しかし、JTextArea だと水平方向のスクロールバーがとれなくて困っています。
また、色を変えるのに setSelectedTextColor メソッドを使ったのですが、
変わってくれません。

どなたかやり方を教えてください。
質問をまとめてみます。

1.TextArea 内に表示する文字の色を変えることができるのか。
2.1が可能ならばその方法。
3.JTextArea の水平スクロールバーを削除する方法。
4.JTextArea 内の文字色を変える方法。

ヒント程度でいいので、おねがいします。
>>669
>1.TextArea 内に表示する文字の色を変えることができるのか。
無理

>3.JTextArea の水平スクロールバーを削除する方法。
JScrollPane の setHorizontalScrollBarPolicy(int policy) 等で
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER を指定する。

>4.JTextArea 内の文字色を変える方法。
javax.swing.text.StyledDocument の実装
もしくは javax.swing.text.DefaultStyledDocument を改造する。
671デフォルトの名無しさん:03/01/21 15:31
EJBのめんどくささには呆れてます。
早くなくなれJAVA
>>671
その手の話題は以下のスレでお願いします。

Javaって死滅しちゃうの?
http://pc3.2ch.net/test/read.cgi/tech/1042268758/l50
JCP 見てたら Tiger(JDK1.5) 用拡張案を発見しますた。

More New I/O APIs for the JavaTM Platform ("NIO.2")
http://www.jcp.org/en/jsr/detail?id=203

1.ネイティブファイルシステムに依存しない広範なファイル属性へのアクセス,
 ファイルシステムにプラグインできるサービスプロバイダ作成用API
2.ファイルとsocket両方の非同期I/O処理用API。
3.バインディング、オプション指定、マルチキャストデータグラムを含む
 JSR-51で定義されたソケットチャンネル機能性の完成。
674 ◆odHOE.4x.I :03/01/21 16:58
>>669
>469にもありますが、
>http://openlab.ring.gr.jp/kyasu/
>の KFC とか使えば可能かも。

が参考になるかも。色を変えられるだけでなくアイコンも付けられます。
675669:03/01/21 17:12
>> 670
>> 674

ありがとうございます。
スクロールバーは消せそうです。

色の方はまだ時間がかかりそうですが、
頑張ってみます。

ところで
>http://openlab.ring.gr.jp/kyasu/
はリンク切れポイんですが・・・。
676(-ω-)/:03/01/21 17:20
プログラムと全然関係無いのですが、すいません。
ワードで画像を貼り付けたあと、画像を動かしたいんですができません。
教えてください。お願いします。
>>675
どこが切れてんだか・・・
678デフォルトの名無しさん:03/01/21 17:48
>>676
霊的現象によるパソコンの誤作動が原因っぽいので、
塩水を本体にかけて清めてみろ。
679626:03/01/21 17:59
>>634
abstractやinterfaceの実装はまだ理解できていないので
意識して学習してみます。有難うございます。

少し学習してふと思ったことんですが
例えばCarクラスのコンストラクタの
public Car()
{
}
「Car」という部分は戻り値みたいなものなのかな...と思ったのですが
どうなのでしょうか...?
680デフォルトの名無しさん:03/01/21 18:05
>>679
コンストラクタに戻り値はない。
>>679
>>680が正解だけど、あえていえば、そう言えないことも無い。
682669:03/01/21 18:38
ほんとすみません。
切れてませんでした。
わざわざ教えていただいたのに・・・汗
683デフォルトの名無しさん:03/01/21 18:57
>>681
んなこたーない
コンストラクタに戻り値がないのは、コンストラクタは自身の
オブジェクトを返す必然性から戻り値を指定する意味がない
から(自身の型を返すしかないから)だと思うのだが。
>>684
そゆことだネ。
返り値を指定できるとしたらプールしたインスタンスのポインタを返してやるとか、
いろいろあるネ。
686デフォルトの名無しさん:03/01/21 21:51
マルチキャスト使ったプログラムを作ったんですけど、
Linuxじゃ、外にパケットが飛んでいきません。入っても来ないです。
PORTは1002を使ってます。
Windowsで同じバイナリで動くことは確認しました。

原因が分かる方はいらっしゃいませんでしょうか?
>>686
いるんじゃないかな。
>>687
おれもそう思う
689デフォルトの名無しさん:03/01/21 22:44
>>686
OSがLANカード認識してないとか(ワラ
>>686
回答もらえて良かったですね。ではがんばってください。
691686:03/01/21 23:16
ありがとう。がんばるよ。

Linux板の方が良かったかな・・・。
692デフォルトの名無しさん:03/01/22 00:07
参考書みても全然載ってないのですが
ビジネスロジックとフレームワークって何ですか?
具体的に何をさしてるのですか?
>>691
質問は「原因が分かる方はいらっしゃいませんでしょうか?」
だろ?>>687-688で何が不満なのか。二度と来んな。
>>692
暴論な。

ビジネスロジック:≒ロジック≒アルゴリズム
フレームワーク:そのジャンルのアプリケーションで共通な部分をモジュール化し、必要最低限のコードを書けばソフトが完成してしまうと言う便利だけれど融通の利かないクラス群。
695デフォルトの名無しさん:03/01/22 00:17
かわいそーだよー(;_;)
ネットワークってまるでダメ男なんだけど、答える方だってもう少し情報が欲しいんじゃないの?
つか、ファイアウォールの設定とかだったら死刑だけど。
つか、ウェルノウンポート一応避けるとか。
698デフォルトの名無しさん:03/01/22 00:28
classpathの設定が悪くてエラーが出ると思われるのですが、
自分ではclasspathを設定しているつもりです。
現在設定されているclasspathを確認する方法はありませんか?
699686:03/01/22 00:29
ごめん。
書いたあとで、情報少なすぎることに気付いた。
>>693
もう来ないから堪忍してくれ。

マジで申し訳ない。
>>698
DOS
> echo %CLASSPATH%

$ echo $CLASSPATH

set
>自分ではclasspathを設定しているつもりです
設定している部分を見る。
set | grep CLASSPATH
とか。
704デフォルトの名無しさん:03/01/22 01:24
<ソース>
http://www.hellohiro.com/src/HelloWorldJDBCMySQLUpdate.java

<設定クラス>
%classpath%;.;c:\azMySq;c:\j2sdk1.4;c:\j2sdk1.4\jre\lib;.;c:\j2sdk1.4\jre\lib;c
\j2sdk1.4\jre\lib\ext;c:\azMySq;c:\j2sdk1.4;c:\j2sdk1.4\jre\lib;C:\j2sdk1.4\lib
org\gjt\mm\mysql;c:\j2sdk1.4\jre\lib;c:\j2sdk1.4\jre\lib\ext;C:\j2sdk1.4\lib\ex
\org\gjt\mm\mysql;C:\j2sdk1.4\lib\mysql-connector-java-2.0.14-bin.jar;C:\作業フ
ォルダ\mysql-connector-java-2.0.14
<Driver保存場所>
C:\j2sdk1.4\lib\ext\org\gjt\mm\mysql
<エラー>
Exception in thread "main" java.lang.NoClassDefFoundError: Driver (wrong name: o
rg/gjt/mm/mysql/Driver)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:246)
at java.net.URLClassLoader.access$100(URLClassLoader.java:54)
at java.net.URLClassLoader$1.run(URLClassLoader.java:193)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:322)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:130)
at HelloWorldJDBCMySQL.main(HelloWorldJDBCMySQL.java:9)
705704:03/01/22 01:25
エラーの内容です。
お手数ですが、よろしくお願いします。
>>686
Linuxがどうなっていたかは判りませんが、
たしかUNIX系のOSはルート権限をもつ者でなければ、
1024番未満のボートは使用不可能なのではなかったかと。

それか>>689などの
プログラム以前のハードよりのところに原因があるのではないかと。
>>686の情報だけではなんとも助言のしようもありませんが。
>>704-705
おそらくはclasspathの問題。
>>1-3か、そのソースの載っていたホームページをご熟読ください。
708706:03/01/22 01:35
失礼。ボートではなくポート。
訂正しなくとも判るとはおもうけど一応訂正。
>>645 Dateクラス使うとバッティングするで
Dateクラスなど使うときはやめとく。
同じソースファイルで
java.sql.Dateとjava.util.Date両方使いたいときは、import宣言は使用禁止や

>>704 C:\j2sdk1.4\lib\ext\org\gjt\mm\mysql
が怪しい。 末尾にjarファイルも指定してみては?

jreとかパス通しすぎ。重複しているようにも見える。
710704:03/01/22 02:15
何とか動きました。
ありがとうございました。
原因はやはり、クラスパスでした。
クラスパスが汚れすぎてよく分からなくなってしまったので、
またやり直す予定です。
<対処方法>
クラスパスの追加。ドライバをコピーしていくつか
ヒットしそうな場所にコピー。
<実行結果>
Hello!
1 日本語 こんにちわ 世界
2 英語 Hello World
Swingなどのウィンドウアプリケーション(Not アプレット)で、自分自身が
すでに起動していないかを調べる(WinMain関数の引数みたいな)方法を
知りたいっす。
>>711
JNIを利用するか、Application LoaderをOS依存のCかなんかで書くかして、そこでチェックするしかないですね。
>>711
汚い方法で良いなら、特定のファイルが生成されてたら起動不可
みたいなプログラム使えば出来なくも無い。
1919とか使われてなさそうなポートにバインドしておく。二回目以降1919のバインドに失敗する。とか。
715デフォルトの名無しさん:03/01/22 09:56
すみません
JavaでDVD動画再生アプリって作れるものなのですか?
>>715
出来ない理由はあまり無いです。所詮はDVD-ROM上のファイルなんで。
問題はDVDのプロテクトだな。あとは速度とかフルスクリーン表示は
どうするの?とかいった些細な問題しかないだろう。
718デフォルトの名無しさん:03/01/22 11:12
JRE 1.4.1_01 と Navidia と WinXPSP1 の組み合わせで
フリーズするひとはおられますか!?
>>718
nVidiaってISA時代からビデオチップをものすごい種類作ってて最近はマザーボードにまで手を出してるんだが。
>>719 それがどうかしたのか? 信者で悪口を言われたようでむかついたとか?
>>720
nVidiaの何使ってんだよハゲ。ってことですよ。
722デフォルトの名無しさん:03/01/22 11:28
WinXP SP1クリーンインスコで
時たまランダムリブートしてしまうのですが、、、
これってSunに公表されていないのかな
>>721たしかに。SONY使ってるんですがうまく洗えないんです。みたいなもんだ。
>>720
漠然と nVidia ってだけじゃ情報不足って事では?

ところで Navidia ってのは typo でいーんだよね?
725デフォルトの名無しさん:03/01/22 11:30
G force2 Go ってやつです。スマソ
>>725
1. Java を使ってるときだけ発生するのか?
2. 1.が yes なら、どのクラス(コンポーネント)を使ったときに再現するかを調べて
 BugParadeに報告しといてくらさい。
レス感謝!

Java使ってるときだけです
調べてみていないのですがやってみます
>>727
BugParade検索したらこんなんありました。

App crash drawing lines after display mode switch (windows/GeForce2Go chip only)
http://developer.java.sun.com/developer/bugParade/bugs/4731131.html

jdk1.4.1_02 とか jdk1.4.2 では直ってるらしい。
(ちなみに両方ともまだ出てません)
どうもありがとう。。。
これでやっと先に進めます
>>729
一応言っておくけど、キミんとこで発生してるバグが >>728 と同じとは限らないので要注意。
731デフォルトの名無しさん:03/01/22 14:13
java関係ないかもしれないんですが教えてください^^;
JSPで inputtype=textareaにて取り込んだ改行つきのデータを
SQLに保存し後でそれをそのまま出そうとしたら改行が無効になってでてきてしまいます。
textareaボックスを作ってその中にだすと正しく表示されるのですが
どうしてなんだろう・・
>>731
<br /> タグと \nとの違いはわかるか?
>>712-713
711です。どうもありがとう。とりあえず>>713さんの方法が
一番簡単っぽい。ただ、ファイル作ってクローズしちゃうと
ファイル消していくらでも起動できるので、起動でファイル
を作ったら開きっぱなしにしておいて、終了で削除するの
がいいような気がしてきた。
俺の提案は無視されたか・・・。
>>734
>>714さん?すいません、ポートにバインドとかよくわからんかったので。
>>713は汚い方法じゃないよ。 れっきとした手法だよ。
>>714は汚い方法だよ。 でも俺はこっちの手法のが好きだ。最高。
737731:03/01/22 15:08
<br /> はタグで
\n   は文字コード?
>>737
>SQLに保存し後でそれをそのまま出そうとしたら改行が無効になってでてきてしまいます
こいつの出力先はHTMLだよな?
HTMLなら \nを <br />に変換汁
739 ◆odHOE.4x.I :03/01/22 16:03
TEXTAREAに改行を生かすオプションとかあったような。
ちがうか。
740デフォルトの名無しさん:03/01/22 16:44
http://itpro.nikkeibp.co.jp/members/NBY/techsquare/20030117/2/
普通、こういう感じでVectorなりに突っ込んだオブジェクトを
利用するときには
あらかじめ適当なインターフェイスを付けたものだけ
ぶちこみませんか?
もっと言うとVectorをそのまま使わずに適当に継承とかしたりして
Objectじゃなくあるインターフェイスを
持つものだけしか入れたり出したりできないように
しておくものじゃないの?
その方が器の特性がはっきりして保守性とか向上するじゃん?
>>740
その通り、しかし何とも面倒くさい。
JDK1.5のジェネリック機能に期待と言うところか。
>>740
受け取るのが String だったら例外的に
vec.get(index).toString() みたいにする事もできるんだけどね…
743デフォルトの名無しさん:03/01/22 17:54
(String)vectoe.get(i)とかな
744デフォルトの名無しさん:03/01/22 19:08
カスタムタグの属性にObject型は渡すことは可能でしょうか?
toStringしてから属性に設定するしかないのでしょうか?
以下のような方法でテストしてみました。

JSP
<% Date date = new Date(); %>
<sample:test arg="<%=date%>">

タグハンドラ
public String arg;

public void setArg( Object arg ){
this.arg = arg.toString();
}

public int doStartTag(){
pageContext.getOut().print( arg );
}
745デフォルトの名無しさん:03/01/22 20:28
Javaで動的配列ってどうやって作るの?
String[] a = new String[];
じゃダメみたいだし。
>>745
Vectorとかどうだい?
>>745
ArrayListか、LinkedList使っとけ。
目的によって使い分けるが吉。
748デフォルトの名無しさん:03/01/22 20:42
次のアセンブリ言語で書かれたプログラムは何を計算するのか答えよ。教えてください
おねがいします!

MOV $1000,%EAX
MOV $0,%EDX
L1;
CMP $0,(%EAX)
JNZ L2
JMP L3
L2;
ADD(%EAX),%EDX
INC %EAX
JMP L1
L3;

スレ違いだしバグってるし。
宿題スレに池。
750デフォルトの名無しさん:03/01/22 20:49
すみません
751デフォルトの名無しさん:03/01/22 23:52
指定したある文字と文字の間の文字列
例えばコメントの/*------*/ の間の文字列を一斉に削除したいのですが
うまいやり方ってありますか?

ちょっとならいいけど、たくさんだと、それだけでかなり時間のロスになってしまいます
もちろんコメントは必要だと言う批判はあると思いますが、お願いします
>>751
java.util.regexはお嫌い?
753デフォルトの名無しさん:03/01/22 23:58
JFrameやJDialogで「リサイズ可能」にした場合の「最小サイズ」みたいなのって指定できませんか?
「この大きさよりは小さくできないよ」ってやつ。
コンポーネントが消えないサイズでガードしたいんですけど。。
754デフォルトの名無しさん:03/01/23 00:09
>>752
詳しく教えてください
>>751 エディタの正規表現置換機能を使うといい。
>>753 getMinimumSize()とかオーバーライドするのはダメかな?やってみないと分からんが。
エディタの中には「コメント一斉削除(範囲選択可)」みたいなのもあるから
そういうの使ってもいい。
>>742
そんなやり方があったのね・・・
すいません、今JavaServletにてWEB上にてデータを打ち込み
そのデータをメールで送るようなものを作成しているのですが、
1回目の送信はうまくいくのいですが2回目メールを送信しようとすると文字化け
が発生してしまいます。
文字化けの処理もちゃんとかけてはいるのですが何故かうまくいきません。
どなたかよろしければお教えください。
環境は、Linux(RedHut6.2) sendMail で動作させています。
759758:03/01/23 00:28
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class Doctor extends HttpServlet {
public void doGet( HttpServletRequest request, HttpServletResponse response )
throws IOException, ServletException
{
PrintWriter out = getWriter( response );
HttpSession session = request.getSession( true );

String name = "";
String email = "";
String school = "";
String faculty = "";
String phone = "";
String regist = "";
String question = "";

try {
if ( request.getParameter( "_NAME" ) != null &&
!request.getParameter( "_NAME" ).equals( "" ) ) {
name = getParameter( request, "_NAME" );
}

if ( request.getParameter( "_EMAIL" ) != null &&
!request.getParameter( "_EMAIL" ).equals( "" ) ) {
email = getParameter( request, "_EMAIL" );
}
760758:03/01/23 00:29

if ( request.getParameter( "_SCHOOL" ) != null &&
!request.getParameter( "_SCHOOL" ).equals( "" ) ) {
school = getParameter( request, "_SCHOOL" );
}
} catch ( Exception e ) {
}

try {
StringBuffer sb = new StringBuffer();

sb.append( "名前:" + name + "\n" );
sb.append( "メールアドレス:" + email + "\n" );
sb.append( "データ1:" + school + "\n" );
mail.SendMail.Send( "localhost", "[email protected]", "[email protected]", "件名", sb.toString() );
} catch ( Exception e ) {
}
// HTML部分の作成
out.println( testHtml.getHtml() );
out.close();
}

public void doPost( HttpServletRequest request, HttpServletResponse response )
throws IOException, ServletException
{
doGet( request, response );
}
761758:03/01/23 00:30
//----- PrintWriter をHTML表示用にSHIFT-JIS に合わせる-----//
public PrintWriter getWriter( HttpServletResponse response )
throws IOException
{
response.setContentType( "text/html; charset=Shift_JIS" );
return new PrintWriter( new OutputStreamWriter( response.getOutputStream(), "Shift_JIS" ) );
}

private String getParameter( HttpServletRequest request, String key ) {
try {
return new String( request.getParameter( key ).getBytes( "8859_1" ), "Shift_JIS" ) ;
} catch ( Exception e ) {
return "";
}
}

というようになっています(長くてすいません)
762デフォルトの名無しさん:03/01/23 00:52
>>758

Servletのバージョンは?
何で、JavaMail使わないの?
763758:03/01/23 01:07
あ、すいません、sendMailはメールサーバーの種類です
メール送信部分にはちゃんとJavaMailを使用しておりますです
servletsは2.2を使用しております
>>758
ソース追いかけてないけど、文字化けしたときの一般論としては、
入力と出力をhex dumpしてみるとかするね。例えば、getParameter()
のとこで入力をShift_JISで決めうちにしているけど毎回必ずShift_JISで
入ってきているのかとか。
765758:03/01/23 01:26
>>764さん
ありがとうございます
たしかにgetParameter()のところでしか変換処理をしていないので
そこをMAC等のPCで流れる文字等を見ましたが2回目とかに流れる文字は
UnicodeでもShift_JISでもないただの壊れた文字(?)のようになってしまい
よくはわからないのが現状でした。
何故2回目にservletが呼ばれたときにはそこで文字が破損するのかがわからない
ので、分かる方いらっしゃいましたら是非回避策等よろしくお願いします
766デフォルトの名無しさん:03/01/23 01:31
勉強中ですが
クラスとかメソッドとかはわかるようになったのですが
インターフェイスがどうしても理解できないです・・・

あるとないとではどう違うのですか?
また、どう言う時に必要なのですか?
>>765
安易なやりかただとJISAutoDetectで.
ブラウザ依存だと<form>要素に accept-charset=Shift_JIS、つけるとかいろいろ。
>>753
ウィンドウにリスナーを登録して、リサイズされたときのInsetsを
取得して、一定以下だったらsetBoundsすればいいんじゃない?
769758:03/01/23 03:16
>>767さん
レスありがとうございます
知り合いと一緒になって調査していたところ、一番最初はエンコード
を正しく行い2回目からはできないとのことでしたが、TOMCATなんだか
サーバーの設定なのかわかりませんが、一回目にエンコード処理をすると
何故か2回目以降の文字もエンコードが勝手に行われていたようで、今までだと
エンコードされた文字を更にエンコードしていたために文字が壊れているのでは
という結論になりました。
あまり納得できませんでしたが原因がわかったのでなんとかやってみようと思います
>>764 >>767
お二方レスありがとうございました
>>769
Tomcat3.3.xを使ってるならserver.xmlのContext - DecodeInterceptorで
文字コードを指定する。
これでgetParameterの時の小細工が要らなくなる。
>>766

・異なる継承関係にあるクラスに共通の振る舞い(メソッド)を持つことを強制できる
・異なる継承関係にあるクラスを共通の型で扱うことができる
・文字通り、インタフェース(外から見える部分)だけを先に定義しておき、
 実装クラスは自由に作れる/入れ替えられるという設計が可能。
 フレームワーク等ではこういったオブジェクト指向の利点を利用していると言える。
言語機構としての Interface を理解するには、
java.util の コレクションフレームワークを調べてみるのが
一番手っ取り早いと思ふ。

ArrayList と LinkedList のメリットデメリット。
その違いを意識せずに利用できる List インターフェイス。

一番単純でわかりやすい例だと思うんだけど。
773 ◆odHOE.4x.I :03/01/23 10:48
>>769
>知り合いと一緒になって調査していたところ、一番最初はエンコード
>を正しく行い2回目からはできないとのことでしたが、

そうなの?

new(s.getBytes(), JISAutoDetect)
とかの問題じゃないんだ?

原因が分かったら詳細キボンヌ
774 ◆odHOE.4x.I :03/01/23 10:50
ワリィ
"JISAutoDetect" にしといて""でくくってちょ。
分かると思うけど^^;
List list = new ArrayList();
勉強したての頃は何でこんなことやるのかわからなかったなぁ
直接、Javaとは関係ないのですが

1
1.1-1
1.1-2
2
2.2-1
2.2-1-1

このようなデータを

1
├1-1
└1-2
2
└2-1
 └2-1-1

このような形で表示したいのです。
データの階層は StringTokenizer 使ってぶった切ったのですが
ツリーの記号の付与し方がわからず困っています。

どなたか、良い知恵はありませんでしょうか?
>>776
└ と ├ とどっちを使うかだけだろ。ほんのちょっぴり面倒くさいのは。
1の子が1.x、2の子が2.xなら
2.xの下は2.x.xじゃないの?

上の例なら
2
2.2-1
2.2-1.1
779デフォルトの名無しさん:03/01/23 13:45
String変数に入っているIPアドレスが、
指定したネットワークアドレス内に含まれているかどうかを
判定するクラス・メソッドはJavaではないでしょうか。
192.168.1.10が、192.168.1.0/24 の範囲ないかどうかを判定させたいのです。
ロジックをゴリゴリを自前で書かないとダメでしょうか。
>ロジックをゴリゴリを自前で書かないとダメでしょうか。

それほどのことかねぇ・・?
で、ここでいうロジックって何?

覚えたての初心者が解く練習問題レベルじゃねーか
782デフォルトの名無しさん:03/01/23 15:18
WindowsでThreadのPriorityの設定は効果がないと
聞いたんですが、どうなんでしょうか?
>>782
JDK1.4.1 のソース覗いてみたけど最終的には
Win32API の SetThreadPriority 呼び出してます。
784デフォルトの名無しさん:03/01/23 17:24
今継承について学んでいるんですが、
スーパークラスを指す変数に、サブクラスのオブジェクトを代入した時、
著書では「サブクラスで新しく定義したメソッドは呼び出せない」
との記述があって疑問に思ったことがあります。
つまり、
サブクラスの
フィールド;
コンストラクタ;
オーバーライドされるメソッド;
の三つはOKで
オーバーライドされないサブクラスで新しく定義したメソッド;
のみは使用できないとの認識であってるんでしょうか?
実験してみたんですが、コンパイル自体できないからいいのかな・・?
とも思ってます
宜しくお願いします
>>784
>サブクラスの
>フィールド;
>コンストラクタ;

上記二つが、そのスーパークラスで定義されていないものなら
この二つもNG。
786784:03/01/23 17:39
もう一つ下らない質問かもしれないですが、
上記の逆はできないですよね?
サブクラスを指す変数に、スーパークラスのオブジェクトを代入する...みたいな。
逆のケースではコンパイルできなかったし....
class Hage extends JPanel {
public void doHage(){}
}

というクラスを作ったとき、

Hage hage = new Hage();
hage.doHage(); // OK
JPanel hage2 = new Hage();
hage2.doHage(); // NG

ということ。
変数の型によってオブジェクトのインタフェイス
(どういうメソッドを持っているか、という意味くらいに考えてくれ)が決定される。
788784:03/01/23 17:49
>>785
すいません。
書著のソースををみると、
サブクラスのフィールド、コンストラクタは
サブクラス独自でしか定義していないような気がして
混乱してます。
具体的にどういうことでしょうか?
今現在私の知識じゃ理解できないようでしたら、
どの編まで学習すれば理解できますか?
もしご迷惑でなければお願いします。
789デフォルトの名無しさん:03/01/23 17:49
Javaでデータベースにデータを追加するときに、プログラム中の変数を含んだ
SQL文はどのように書けばいいのでしょうか?
String sql = "INSERT INTO table VALUES (" + 変数 + ", " + 変数 + ")";
のように書き方では、
「パラメータが少なすぎます」
というエラーが出てしまいます。
どなたかアドバイスをお願いします。
>>784
たとえばSuperタイプのsuperという名前の容器があったとして、
派生タイプのインスタンスをこの容器に代入した場合。
Super super = new Sub();

この容器superには、Subクラスのインスタンスが入っているにもかかわらず、あくまでも外からみたときはSuperタイプのインスタンスとしてしか、あつかわれない。
故に、Superクラスで定義したメソッドやフィールド以外にはアクセスできない。

ただしSuperクラスで定義されたメソッドを呼び出した場合、
もしそのメソッドがSubクラスにおいてオーバーライドされていた場合は、
実際に実行されるのはSubクラスにおいて記述されたコードであって、
Superクラスにおいて記述されたコードではない。これすなわち多態性。

>>786
もしそれが許されていると
Subクラスにおいて新たなメソッドやフィールドを定義していた場合、
問題が発生するので、それは許されないものとなっています。

たとえばSubクラスに新しく"subMethod()"というメソッドが新たに定義されていた場合のことを考えてみてください。

Sub sub = new Super();
で、Subタイプの変数に、Superのインスタンスを代入することが許されたとして、
この場合のsubは、あくまでも外からみたときはSubクラスのインスタンスとして扱われます。
故に、subを介せばSubクラスで宣言した(publicな)すべてのメソッドやフィールドにアクセスすることができる。
ゆえにsub.subMethod()という、Superクラスには存在しないメソッドが呼び出される可能性がある。

いかにこのsubが外見的にはSubクラスのインスタンスのようにふるまうといっても、
このsubの中身は実際はSuperクラスのインスタンスなので、
Superに存在すらしないsubMethod()など呼び出すことは不可能。

>>788
多態性などについて学習されると理解できるようになるかもね。
>>789
> String sql = "INSERT INTO table VALUES (" + 変数 + ", " + 変数 + ")";

二番目に登場したダブルクォーティーションがくせもの。
つまり上の文はこういうふうに解釈されているからエラーがでたわけです。
String sql = "INSERT INTO table VALUES ("
「"」の前に「\」を使えば解決するかと。
>>785
コンストラクタって継承の束縛うけたっけか?
>>791
そうなの?
オレはてっきりinsert文中の "" (''でもいいけど)が足りなかったり
;が抜けてたりしてる方が問題だと思ってたよ。
java.netがimportできません!!
http://ash.jp/java/java_http.htm
>>792
そもそも
>スーパークラスを指す変数に、サブクラスのオブジェクトを代入した時、
というのなら、

>上記二つが、そのスーパークラスで定義されていないものなら
などの条件づけ以前に、コンストラクタの呼び出しは不可能だな。
>>793 >>789
あ、たしかにそうかも。失礼。
;は不要。
VALUES ('" + 変数 + "',' " + 変数 + "')"
でいいんじゃないか。
798デフォルトの名無しさん:03/01/23 18:33
アプレットでmp3形式のファイルを使う事はできますか?
799U ◆CZtFsGiu0c :03/01/23 18:48
>>797
セミコロンがなかったらコンパイルできないと思うけど:-)
>>789
それを見る限りでは間違っているところはわかりませんね。
生成されているSQLをコンソールなりログなりに出力して、それを
クエリツール(クエリアナライザとかSQLPlusとか)で実行してみたら?
ああ、「SQLにはセミコロンいらん」といいたかったんだ。
SQLplusなら必要だけど
801 ◆odHOE.4x.I :03/01/23 18:53
classファイルと同じディレクトリにあるmp3ファイルを、アプレット内で再生
する事は可能か?ということ?

それともローカルのmp3ファイル?
アプレットでの再生ではなく、別アプリケーションへの関連づけでも良いの?
802osiete!!!:03/01/23 19:14
質問っす。

public class tako{
 public static void main(String [ ] args){
     System.out.println("IKA");
      }
}

のプログラムで、@「args」て、何ですか?
(メソッドじゃ、ネ−ヨナ、かと、言って、クラス
の訳は、ネ−しな。う〜ん、何だろう。 よく
わからんけど、う、引数なのか。でも、引数の場合、
どういう意味があんだ。←心の中で勝手に思ってる事。)
AStringの次の「[ ]」は、何ですか?
 配列なの?
 また。この「[ ]」が、Stringの次になくて、「args」の
 次に来る場合(String args[ ]←こんな感じ。 )
 もあるんすけど、この2つの表現の違いて、なんすっか?

 宜しくお願いします、わ。
>>802
1
引数。
その意味はプログラムを起動するときに、
お好きな引数を持たせることができる。

例java tako 8
などとしてtakoを起動すれば、
args[0]に"8"という文字が代入されている。
お試しあれ。

2
どちらも意味はおなじ。記述者の好みでお好きなほうを。

ただargs[] のほうは、どちらかというと
旧来のC言語的な書き方のような気がする。
Stringの配列型のargsという変数が引数になっているメソッドという意味。
hoge.classがあるとき、コンソール上で
java hoge a b c
とした場合、a b c がそれぞれ args[0] args[1] args[2]
になる。
String args[] と、String[] args はどっちでもよいが、昔からの慣習というか
Cプログラマへの配慮と思われ。
String[] argsの方が正しいと思うけどね。
書き忘れ。

>>802
質問2の答えは配列。
たとえばjava tako 足 八本
でtakoを起動するとargs[0]には"足"が、
args[1]には"八本"が、それぞれ代入されているとおもうよ。
System.out.println()などで、お試しあれ。
806804:03/01/23 19:34
マケテル...(;´Д`)
807802です。:03/01/23 19:35
>>803
サンクスコです。

1
やっぱ、引数ですか。う〜ん。なるほど。
で、また、すんません、質問っす。
「例java tako 8」のこれは、DOS窓のコマンドラインの事
ですよね。(←当然か。)

また、この場合、引数をDOS画面から入力する事によって
クラス内でのロジック(仮にあったとした場合)制御とか
で、使うって事になるんですか?

すんません、お暇なら、宜しく願いますだ。
808804:03/01/23 19:38
class Test {
  public static void main(String[] args) {
    System.out.print(args[0]);
    System.out.print(args[1]);
  }
}

--------------------------------

C:\hoge>java Test 2 ch
2
ch
java -deprecation hoge.javaとかやるでしょ?
810デフォルトの名無しさん:03/01/23 19:39
本日23:00時より祭りを開催いたします。
是非、参加下さいます様、お願いします。
携帯PHS
迷惑メールサイト一斉訪問お祭り開催
http://cocoa.2ch.net/test/read.cgi/phs/1043309596/
>>808
引数が1個だと例外出ますな。
812804:03/01/23 19:39
2
ch
じゃなくて
2ch
ですた(;´Д`)
と思ったけどprintlnにnullを指定しても大丈夫な気がしてきた。
nullはnullと表示されるはず
815802です。:03/01/23 19:45
>>804->>811様(除く810)
あ、どうもありがとう。ございます。
いやー、よくわかった、わ。
(>>808が、うん、一番だ。)
816802です。:03/01/23 19:47
訂正
あ、どうもありがとう。ございます。
いやー、よくわかった、わ。
(>>812が、うん、一番だ。)

817U ◆CZtFsGiu0c :03/01/23 19:51
>>813
その前に配列の範囲外なので例外が出ますよ。
818 ◆odHOE.4x.I :03/01/23 19:55
以下のようにすれば、引数の数を固定せずに出力が出来る
class Test {
  public static void main(String[] args) {
    for(int i=0; i<args.length;i++){
      System.out.print(args[i]);
    }
    System.out.println("");
  }
}

--------------------------------

C:\hoge>java Test 2 ch
2ch

それと public static void main(String[] args){...
ですが、 String args[] だとString型の、argsという配列変数ともとれますので
String型配列の args という変数と宣言するのが正しいです。
変数名はあくまで args[]ではなく、args ですから。
勿論どちらでもエラーになりません。
819便乗質問です。:03/01/23 19:55
>>808さんへ
便乗質問です。

>C:\hoge>java Test 2 ch
よく、「hoge」というディレクトリが、なんか、よく例として
でてくるんですが、何をあらわしてるんですか?
UNIXの ほら、/etc/・・・なんたらかんたら、の「etc」とか
のWin版すっか?

お、お、お暇なら・・・・お・し・え・て君!!!


820山崎渉:03/01/23 19:58
(^^)
>>819
たしかこの板にも「武田騎馬軍団がhogeの謎をとくスレッド」みたいなのがあったはず。
俺も、その語源はよくしらないや。

英語圏だとfooとかがよくつかわれるのかも。
2ch圏ならnanasisanとかfusianasanとかか?
822819っす。:03/01/23 20:05
>>821さんへ
あ、そうなんすっか。ふ〜ん。
後で、そのスレ見てみますわ。
THANKS!!
823819っす。:03/01/23 20:14

>たしかこの板にも「武田騎馬軍団がhogeの謎をとくスレッド」みたいなのがあったはず。
>俺も、その語源はよくしらないや。

http://pc3.2ch.net/test/read.cgi/tech/1036253513/l100
めっけて、きますた。
824デフォルトの名無しさん:03/01/23 20:39
(コ-ディングの)学習方法について、教えて下さい。

メソッドとか、例外とかの語句(例;IOExceptionとか)ありますよね。
これらをコーディングする時、ヤッパ、スペルこれ全部
暗記するんですか?
ツ−ルとか、使えば、そんな事、心配しなくてイイヨ、てな、事になるんでしょうか?
今は、メモ帳で、いちいち、打ってます。(あ〜メンドくせ-な、て。)
もち、コピペも多少ありますよ。
(でも、面倒だな。→あ、すいません、決してコ-ディングを馬鹿にしている訳では
ありません。ただ、効率的な方法がないかな〜。という事なんです。)

825デフォルトの名無しさん:03/01/23 20:51
>>824
やっぱ、書いて、おぼえるしかない。
826 ◆odHOE.4x.I :03/01/23 20:59
>>824
Javaをどのレベルまで学習したいのかによります。
APIドキュメント見ながら打て。
>>789
誰からもまともな答え貰えなかったんだな(w
java.sql.PreparedStatement
java.sql.Connection#prepareStatement(String)
>>824
Eclipse 使うとしやわせになれるかもね。

【Java/C/他】統合開発環境Eclipse GM4
http://pc3.2ch.net/test/read.cgi/tech/1039405354/
>>824
Exception 程度だと指が覚えると思うけど…
>>824
一番効率的なのは向いてなかったと諦める事です。
とか言ってみるテスト。
832デフォルトの名無しさん:03/01/23 23:19
コンパイルしちまえば一緒なのは了解ですが、
日本語を含んだ Java のソース書くときは文字コードは何が行儀がいいと思いますか?

やっぱUTF-8か
すいません、
java標準のフォルダ用アイコンとかドライブ用アイコンって
何処にあるんでしょうか?
gifもアイコンも無いし・・・

プリントスクリーンを切り抜いてgifで保存するしかないですか?
834  マネーの虎:03/01/23 23:28
※180度、人生を変えるなら・・・!!!
【今の生活に満足している人はお断り・・・!!!】
http://www3.to/ds821
あまつさえ、native2ascii >>832
>>833
demoあたりから、持ってってください。
すいません、今月から始めた初心者なんですが
ttp://mizo-www.ia.noda.sut.ac.jp/Ajiwai/
の5章にjavabeansのプログラムがでてくるんですけど、
BDK(BDK1_1)で実行するときはどうすればいいんですか?
普通にパッケージごとコンパイルして構わないんでしょうか。
それとも他に正規の方法があるのでしょうか。
beansはどうもよくわかりません・・・
838833:03/01/24 01:44
>>836
無いです(TT)

諦めてプリントスクリーンから作りました。
>>838
無い!? そいつは悪いことをしたな。スマソ。
>>833
rt.jar の com/sun/java/swing/plaf/*/icons/ は探してみた?
841833:03/01/24 05:06
>>840
ありました!
rt.jarを解凍したらWindows風のとMotifが。

でも、僕の欲しい、javaっぽいのはフォルダからして
無かった・・・(; ;)

でも、良いんです。
ありがとうございました。

今度のjdkの中にjava用アイコンセット入れといてくんないかなぁ。
>>837
何も考えずコンパイルしとき。

JavaBeanってのはね、シリアライズ可能でアクセッサがついているオブジェクトのことよ。
深く考えるのはやめとき。
843デフォルトの名無しさん:03/01/24 07:57
>>842
ありがとうございます。さっそくコンパイルしてみました。
あとはこれをどうやったらBDKで使えるのでしょうか?
ほんとに初歩的なことですいません。
>>776 CompositeパターンやVisitorパターンを適用してみてはどうですか?

>>832 UTF-8マンセー。 JavadocもServlet,JSPもantもUTF-8がgooです。
XMLはUTF-8が標準でーす。 antなど使って>>835のようにasciiしてからコンパイル,javadocするとさらにgoo

>>843 JavaBeans, BDKで検索。詳しい使い方載ってた。
845デフォルトの名無しさん:03/01/24 10:59
JavaBeansだけを使ってVisualAgeJava等で
コードを書かずに何か作れるとかですよね?
AlphaBeansて所にいっぱいBeansがあるけど
昔はもっといろんなサイトがあったと記憶してますが
皆、止めてしまったのでしょうか?ガメラ?とかいう所とか。
 
>>843 >>845 これどうかな?
http://www.bekkoame.ne.jp/~sakamo_m/BeansFlavor/BeginTheBean/

#レス番号つけてくれ
Javaアプレットの質問をさせてください。
TextFieldから値を取り出して、Listの条件をswitchで分岐させて計算、出力する
アプレットを作ったんですが、二つのうちのボタンの一つが動作しないんです。
動かないのは計算を実行するボタンで、動くのは値をクリアするボタンです。
JBuilderで作ってるんですが、JBuilderのVMでは正常に動いているんですが
InternetExplorerのほうで動かしてみると押してもうんともすんとも・・・。
JDK1.1以降に実装されたクラスやメソッドは使ってないはずなのですが
これはやはりIEの搭載しているVMの問題なんでしょうか?
IEのほうのVMはおそらく最新の物を使っています。
何度も原因を探ろうとソースを読み返したり、デバッガを走らせたんですが
JBuilder上では正常動作しているので結局何も分からずじまいで。
これだけでは判断がとてもし辛いとは思いますが、見解をお聞かせください。
IEの最新のVMって?
MS版は例の裁判だか権力闘争だかの影響でめちゃめちゃ古いよ。
Sunの奴をプラグインとして使うべし。タスクバーの時計の脇にアイコンが出るはず。
配布などでMSVM対応の必要があるなら、新VMを待つ(詳しくは最近のニュースを見れ)か、
JDK1.1合わせにするか。
> JDK1.1以降に実装されたクラスやメソッドは使ってないはずなのですが
って書いてあるじゃん。
850847:03/01/24 14:45
あ、1.1以降だと間違ってました。
ぴったり1.1で実装されたメソッドは確か使っています
なので1.2以降が正解でした
ですがIEのVMは現在1.1.x(正確には忘れました
までサポートしていると、何かの本で読んだので、大丈夫だと思います。
あと、一応ページで公開するので、IEでは最低動かないとまずいんです
実はこれ途中で改良してから動かなくなったんです、改悪ですね(苦笑
しかも馬鹿っぽく前のソースを残しておらず・・・(泣
ソースの比較が出来れば何かの糸口になっただろうと今更後悔してます
(動いていたVerの時から1.1のメソッドは使っていたはずなんですが
851 ◆odHOE.4x.I :03/01/24 14:53
そのボタンのイベント部分のソースを貼り付けてみて。
計算するボタンと、クリアするボタン。
そもそも一つは呼び出される訳だから、イベント自身は問題ないみたいだね。
動かない方のボタンにも イベントをaddしてる? button.addAction....(this)とか。
それをちゃんとすましているのであれば、計算するメソッドに問題があるんだろうね。
JDKで -target オプションを使って VM1.1相当でコンパイルしてみると良いんだけどね。
JDKもしくはSDKもってる?
852847:03/01/24 15:07
>そのボタンのイベント部分のソースを貼り付けてみて。
>計算するボタンと、クリアするボタン。
中身のほうですよね、ちょっと長いんですが・・・いいんでしょうか?
あと、変数名で何するやつか分かっちゃうので
ちょっと恥ずかしいのもあるのですが(爆

>そもそも一つは呼び出される訳だから、イベント自身は問題ないみたいだね。
>動かない方のボタンにも イベントをaddしてる? button.addAction....(this)とか。
確認しましたけど、ちゃんとaddされてます
ビルダー上では動いてるので、ないと多分最初から動きませんけど^^;

>JDKで -target オプションを使って VM1.1相当でコンパイルしてみると良いんだけどね。
>JDKもしくはSDKもってる?
ビルダーを使い始めてから使ってないので入ってないんです
入れてやってみます
853 ◆odHOE.4x.I :03/01/24 15:17
じゃあ、それら2つのボタンのイベントがあるだろ?<<確認
その一つはちゃんと動く訳だ<<これはクリアするボタンだったな
もう一つは動かないんだな?
じゃあ、試しに 動かない方のボタンにクリアするメソッドを関連づけして見れ。
それでちゃんとクリアできるようであれば、動かない方のボタンは計算するコードに
問題があることになる。
訳が分からないばやいは、二つのボタンそれぞれが呼び出されたら
System.out.println("呼び出された");
とかを実行するようにして、ブラウザのJavaコンソールを出して確認して見ろ。

ここまで言っていることわかるか?
854847:03/01/24 15:40
>訳が分からないばやいは、二つのボタンそれぞれが呼び出されたら
>System.out.println("呼び出された");
>とかを実行するようにして、ブラウザのJavaコンソールを出して確認して見ろ。
似たコードを入れてみたことがあります
呼び出された時の一番最初、先頭に入れた場合は表示されて
最後に入れても表示されませんでした。
この間に問題がある・・・んですよね、って最初に言わなきゃだめか^^;

前者の
>じゃあ、試しに 動かない方のボタンにクリアするメソッドを関連づけして見れ。
>それでちゃんとクリアできるようであれば、動かない方のボタンは計算するコードに
>問題があることになる。
も初期表示を少し変えてやってみて、動きました。
855 ◆odHOE.4x.I :03/01/24 15:57
>この間に問題がある・・・んですよね、って最初に言わなきゃだめか^^;

お。いいぞいいぞ。
そうやって一行ずつ最後においたSystem.out....を上に上げて原因のある行を
特定するのだ。原始的だがとっても確実だ。
いっそ一行おきに入れてしまえば
どこで落ちてるか確実にわかるぞ!
857 ◆odHOE.4x.I :03/01/24 16:21
今入れてるのかな?ヽ(´ー`)ノ マターリイコウヨ
858847:03/01/24 16:24
>>856
それいいですね
吐くのに番号つけて何行目か、一気にやってみます
859847:03/01/24 16:46
ええと・・・ブラウザのJavaコンソール見たら例外が出てました・・・(汗
Exception occurred during event dispatching:
java.lang.NoSuchMethodError: java/lang/Double: method parseDouble(Ljava/lang/String;)D not found
at winapp/winMain.calButton_actionPerformed
at winapp/winMain$1.actionPerformed
at java/awt/Button.processActionEvent
at java/awt/Button.processEvent
at java/awt/Component.dispatchEventImpl
at java/awt/Component.dispatchEvent
at java/awt/EventDispatchThread.run
Exceptionて出てるのに何で気づかなかったんだろう(TT
...この例外は何なのでしょう?
実行時のエラーって初めてで^^;
860847:03/01/24 16:48
実行時というか、ボタンを押して呼び出すと出たんですが
JDK1.2で導入されたjava.lang.Double#parseDouble(java.lang.String)を使ってると読めるな。
awtのどっかの実装がそれを使うように変わってるんだろうな。
J2SDKのjavac使って -target=1.1 試してみ。
862デフォルトの名無しさん:03/01/24 16:54
Javaでデータベースの更新を実行すると、
「構文エラー:演算子がありません」
といわれてしまいます。
エラーの出る部分のソースは以下のとおりです。

String sql = "UPDATE table SET data='hoge' WHERE a=3 && b=1";
statement.executeUpdate(sql);

SQL文の条件式のところがおかしいようなのですが、分かる方はアドバイスをお願いします。
863847:03/01/24 16:59

あああぁぁぁぁ!
値を変数に代入する所、parseDouble使ってました・・・
引っ掛かってるのもそこでした(T_T
Doubleの実装は1.0でも、parseDoubleの実装は1.2だったんですね(T_T
メソッドまでちゃんと確認していくべきでした・・・
入力の精度は小数点の精度は必要ないので、parseIntに変えて
おそらくこれで解決します・・・、ヨカッタ・・・。
結果ももう少しで報告出来ると思います。
864デフォルトの名無しさん:03/01/24 17:05
"&&" じゃなくて、"and"だとわかったのですが、今度は
「抽出条件でデータ型が一致しません」
というエラーが出てしまいました。
865847:03/01/24 17:12
動きましたー
とても勉強になりました、なんとお礼を言ってよいやら・・・
皆さん、本当にありがとうございました_(_ _)_
同時に私が抜けているためにスレ資源を大量に消費してしまい
誠に申し訳ありませんでした^^;
>>864
Javaの質問じゃねーべ
867 ◆odHOE.4x.I :03/01/24 17:15
>>865
よかったね♪ これに懲りずにJavaをがんばってちょ
>865 くだらないミスほど解決に手間がかかるものです。おめでとう。
>>864
へー。だから?
>>864 SQLの本かサイトを読め
871デフォルトの名無しさん:03/01/24 21:12
872デフォルトの名無しさん:03/01/24 22:42
DirectShowで扱うようなキャプチャデバイスからの動画入力を
javaから扱いたいのですが、そういうAPIは存在するのでしょうか?
873v:03/01/24 22:50
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
 24時間受付  090−8505−3086
URL  http://www.h5.dion.ne.jp/~grobal/
メール  [email protected]
   グローバル探偵事務局 

>>872
jmf?
875872:03/01/24 23:00
>>874
jmfを使うんだとすれば
http://java.sun.com/products/java-media/jmf/2.1.1/apidocs/javax/media/protocol/CaptureDevice.html
この辺が関係すると思ったんですが、入力デバイスの指定方法とかが
さっぱりわかんないんです。っていうかできるんですかね?
よろしければ簡単なサンプルとかいただけると嬉しいっす。
876デフォルトの名無しさん:03/01/24 23:06
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□■□□□■□□□□□□□□□□■□□□□□□□□■□□□□■□■□□□□□□□□□□□□□□□□□□□□□□□□□
□□■□□□□■□□□□□■■■■■■■■■■■□□□■□□□□■□■□□□■■■■■■□□□□□□□□□■□□□□□□
□■□□■□□■■■■■□□□□□□■□□□□□□■■■■■■□□□□□□□□□□□■□■□■□□□□□□■□□□□□□
□□■■□□■□□□□■□□■■■■■■■■■□□□□■□□□□□□□□□□□□□■□□■□■□□□□□□■□□□□□□
□□■□□□□□□□□■□□■□□□■□□□■□□□□■□□■■■■□□□□□■■□□□□□□□□□□□□■□□□□□□
□■■■■□□■□□□■□□■□□□■□□□■□□□□■□□□□□□□□■■■■■■■■■■■□□□□□□■□□□□□□
□□□■□□□□■□□■□□■■■■■■■■■□□□■□□□□□□□□□□□□□■□□□□□□□□□□□□□□□□□□□
□■□■□■□□□□□■□□□□□■■■□□□□□□■□□□□□□□□□□□□■□□□□□□□□□□□□□□□□□□□□
□■□■□■□□□□□■□□□■■□■□■■□□□□■□□■□□□□□□□□□■□□□□□□□□□□□□□■□□□□□□
□■□■□■□□□□□■□■■□□□■□□□■■□■□□□■□□□□□□□□□□■□□□□□□□□□□□□■□□□□□□
□□□■□□□□□■■□□□□□□□■□□□□□□■□□□□■■■■■□□□□□□■■■■□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
>>875
CaptureDeviceManager の
getDeviceList(Format) で取ってくるんじゃんないでしょーか?
878872:03/01/25 00:21
>>877
キター!
ありがとうございますー
JTableの各セルは書き換えできないようにするけど
列は選択できるようにする
(getSelectedColumn() で取ってこれる)
しかも選択した行がユーザが目で見てわかる
といううまい方法をご教授願います
>>880
勝手にコントローラ書いてください。
switch文でbreakひとつ抜けていただけでプログラムが誤作動してました
こんな俺に罵倒メッセージをください。
>>882
良い経験になったな。がんばれ。
884 ◆odHOE.4x.I :03/01/25 18:07
>>882
そんなの普通。つか俺は年中。

ヽ(´ー`)ノ マターリイコウヨ ガンバッテ
885デフォルトの名無しさん:03/01/25 18:29
すいません、どなたか教えてください。

double a = 0.0;
int b = 1;
for(int i = 50 ; i <= 150 ; i++){
a = (i - 50) / (150 - 50);
g.drawString("" + a , b , 20);
b += 10
}

とやると、doubleで宣言したのに、aの値がはiが150のときのみ1で
それ以外は、小数点以下が切り捨てられ、0となってしまいます。
小数点以下を切り捨てないでaに代入する方法をどなたか教えていただけないでしょうか?
>>880
Swingは使った事無いけど、とりあえず、別の何かカーサになるようなモノを作って、
それをイベントを元に任意座標に重ねて表示とかじゃだめなのかね。
ただ、その場合
>(getSelectedColumn() で取ってこれる)
は無理だろうが。

ま、独自に実装するか、コンポジティブなアダプタでも書いてみるといいかも。
iがintだからそっちの型で計算されるわけだろ
doubleで変数もう1つ定義して計算前にiの値を代入してみてはどうか
>>885
つーか、キャスト汁。

× a = (i - 50) / (150 - 50);
○ a = ((double)i - 50) / (150 - 50);
んだね。
キャストでいいね。
× a = (i - 50.0) / (150.0 - 50.0);
891888:03/01/25 18:49
あるいは、

× for(int i = 50 ; i <= 150 ; i++){
○ for(double i = 50 ; i <= 150 ; i++){

#なんでか知らないけど forにつかうカウンタって、暗黙の内に intにしがちだよな。
892デフォルトの名無しさん:03/01/25 18:49
>>887,888
なるほど。
やはり、iが整数型だったからダメだったようです。
iをdoubleで宣言したら、できました。
どうもありがとうです。
893デフォルトの名無しさん:03/01/25 18:52
>>891
確かにそうですね。
あんまりループ変数に小数点を使うことはないですからね。
質問です。
Tree○○○ というようなクラスがいくつかあるのですが、
木構造が使えるクラスが用意されているのですか?
あれば教えてください。
>>894
気のせいでしょう。
>>892
その例では大丈夫だけど、doubleの比較をやるときは丸めに注意してね。
System.out.println(1.0-0.8);
なんてやると分かります。2進/10進変換や四捨五入でずれる。

>>894
TreeMap とかは内部でツリーを使ったMapの実装。
ツリーとして使うためのツリーってJDK内部に用意されていたっけ・・・。俺は知らんです。
ツリーって場面毎に求められる性能特性が違うから用意されていなくても不思議では無いと思う。
JTableの上にカーソルを置いてると
左下10ドット10ドットくらいのところに1ドットの黒点
が表示されない?

カーソルを動かすとすぐ消えるんだけど。
898デフォルトの名無しさん:03/01/25 22:16
Javaで2chブラウザ作れますか?
>>898
既に2,3の実装があります。俺も1つプロトタイプ作ったし。
900デフォルトの名無しさん:03/01/25 22:51
Javaで2chブラウザを作るとき、一番悩ましいのが
スキンの実装なんだけど、みんなどうやって解決してる?
>>900
>スキンの実装なんだけど

そんなもん本質ではないしUIの変更なんてSwingの十八番だと思うんだが。
>>901 かちゅのスキンとかああいうの指してるんだろ。
>>900 「一番」悩ましいか?適当なスキンファイル食って置換させればいいんじゃないの?

今から作るんならローカルプロキシタイプをキボンしてみる。
>>902
Javaにやらせるのはいまいちアホっぽいけどな・・・。
悩ましいのは、かちゅ〜しゃのスキンなら
JavaScript等を使って機能を追加することができるが
>>902のような安易な考えでは見た目しか変更できないという点
かちゅのスキンがどんなもんかは知らんが
> javascriptを使って機能追加
というなら, javaコードで機能拡張できるように設計して
2chブラウザ作ればいいじゃん。
>>900はJEditorPaneの存在を知らない予感。
みんなも気づいてるだろうが、実際スキンなんて、どうでもいい、と。
>>903
LinuxとWindowsをデュアルブートしてて、ログを共有したいんだが、アホっぽいか?
こーゆーときのためのJavaじゃないの?

>>904 レスポップアップくらいはjBVの方法で出来るよ。他に何がいるっけ。
俺は >>903 じゃないが...。
>LinuxとWindowsをデュアルブートしてて、ログを共有したいんだが、アホっぽいか?

...何を言わんとしているか、意味不明。
>>909 >903がアホと言った理由が分からんと言いたい。

漏れはローカルプロキシとして動く奴がいいが、
独立アプリならHTMLに拘る意味は無いのでJEditorPaneとかなのかな。
AAがずれないようにするのがちと面倒くさそう。
スキンぐらい好きんにさせてよ・・・
ログを共有したいだけなら、ログの書式を決めて(xmlとか)
各OS用にその書式を処理させるプログラムを書けばよいだけなので、
Javaである必要ないんじゃない?

つーかたぶん、
> 一番悩ましいのがスキンの実装
あたりが皆様の逆鱗に触れてると思われ。
>ログを共有したいだけなら、ログの書式を決めて(xmlとか)
ログは2chのスレッドdat形式でいいだろ。かちゅみたいに独自形式だと何かとややこしい。
問題はブックマークなどの整理機能だね。

>各OS用にその書式を処理させるプログラムを書けばよいだけなので、
>Javaである必要ないんじゃない?
誰が各OS用に同じプログラムを書いてくれるの?JVM用に書けば終わるのに。
Javaである必要が無ければJavaで作っちゃいけないんだろうか。
Javaのアプリってスキンがダサダサだからなあ
>>913
知らん。実装なんか作りたいやつに任せりゃいいじゃん。
要は、データ形式さえがっちり決めちゃえば、Javaにこだわらなくたっていいだろってこと。
で、一番悩ましいのがスキンなら、悩まない言語でそれぞれ用に作れば?ってことで。
必要ない=いけない、ではないので、JavaがいいならJavaでやれば?
>>915 読み取り装置もあらかじめJavaでやっとけば拡張が容易になるってことだろう。
ブラウザがJavaでできていれば読取装置もJavaのほうが移植が素早く完了する。
OSが異なっても移植に関する影響が少ないといいたんだろう。

そこで見た目にこだわり、SWTを使って、
Write once , Run Windows Only
になるという罠
>>917
それで何か問題でも?
SWTだったらRun Anywhereは保たれるんじゃない?
ちがた。
× >>917
>>918
初歩的、というかそれ以前の問題なのですが
ttp://mizo-www.ia.noda.sut.ac.jp/Ajiwai/
の第5章、第7章のファイルをBeansとしてBDKで使うにはどうしたら良いのですか?

MANIFEST
---
Manifest-Version: 1.0

Name: SimulatorBean.class
Java-Bean: True

Name: MyBAdaptor.class
Name: LocationComponent.class
Name: MobileComponent.class
Name: MobileComponentListener.class
Name: MobileEventObject.class
Name: MobileRobot.class
Name: MobileRobotBean.class
Name: SimpleSimulator.class
Name: SonarComponent.class
---
と既述して
jar cmf MANIFEST.mf MobileRobot.Bean.jar *.class
を実行しjarにしたのですたBDKでloadして使おうとするとエラーがでます・・・何が原因でしょうか。
package理解したばかりの房には難しい(というか資料なさすぎ)です(;´Д⊂)
>>922
エラーがでます・・・ってどんなエラーがでたの?
それがわかればなにか回等できるかも。

それにしてもそのリンク先、文字化けはするし、
ディレクトリの区切りに逆スラッシュ使っているせいか
ソースファイルがNot Foundになっているな。。。
//WindowsのIEで見たら平気なようではあるが。
>>922
>BeansとしてBDKで使うにはどうしたら良いのですか?

これって、「beanboxから使う」って意味か? // ちゃんと書くように
つーか、そのリンク先のソースって、Appletだと思うんだが。

beanboxとしても、こんなのロードされても困るのでは。
...って、なんでBDKなんか使ってるの?
925924:03/01/26 05:54
つーか、あの中にある「*Bean.java」をbeanboxで使いたいって事か?
にしても、それを使う為の利用側クラスって、当然別途用意してあるんだろうな?
926デフォルトの名無しさん:03/01/26 08:13
>>906
しぃスキンレベルのものが動かないと意味が無いんだよね
927 ◆odHOE.4x.I :03/01/26 11:54
>>900
>Javaで2chブラウザを作るとき、一番悩ましいのが
>スキンの実装なんだけど
一番悩ましいのは処理の高速化じゃない?

>>902
>今から作るんならローカルプロキシタイプをキボンしてみる。
あと、外部プロクシの切り替え機能の実装は難しくないよね

>>903
>Javaにやらせるのはいまいちアホっぽいけどな・・・。
え?どして?

>>908
>LinuxとWindowsをデュアルブートしてて、ログを共有したいんだが、
ログを格納するディレクトリを選べるようにしてあげれば良いんだよね。
あとは、文字コードに気を付けて読み書きすれば問題ないよね?

Javaでプロクシ機能を実装してログ(何のログ?)を他のユーザーや
別ドライブの同じブラウザ同士で共有できる機能を持つブラウザを
作るのは難しい事じゃないと思うけど、JavaでGUIアプリを作る事に
さほど価値を感じないJava開発者が多いのでは?

コンソールで2chがみれるJavaCUIアプリなら作ってみようかな?
928デフォルトの名無しさん:03/01/26 11:54
Ver1.4.1の正規表現について聞きたいんですが、一般に
boolean result = Pattern.matches(正規表現, 文字列);
で判定ができますよね。これはいいんですが…

文字列の最初の数文字に適合するか判定したいんです。
で、適合した場合は正規表現とコンビになっているコマンドを
実行したいんです。どうすればいいですかね?
929928:03/01/26 12:03
例として正規表現=d*g、文字列=dog&catと考えてください。
d*gの認識に伴って実行したいコマンドがf1()メソッドとしてみます。
>>929
^d.*g

勉強してくださいよ。
931928:03/01/26 12:22
確かに。マニュアルに
boolean b = Pattern.matches("a*b", "aaaaab");
って例が載っていたもので(笑)。まあそれはいいじゃないですか。

StringのcompareToやindexOfみたいな使い方できない?
>>931
急にタメ口か。なめられたもんだ。
>>932 厨は消えろ
934930:03/01/26 12:26
>>933
了解。さようなら。
>>934 もう二度とくんなよ
matches() じゃなくて lookingAt() 使え。
>>936 甘やかしてんじゃねぇよ
>>937 二度とくんなって言ったろ
>>923
WARNING: Could not instantiate bean "SimulatorBean" from
JAR "E:\bdk1_1\beans\jar\SimulatorBean.jar"
But were unable to load the class "SimulatorBean" because of
   java.lang.ClassNotFoundException: SimulatorBean
といったエラーが出ます。MANIFESTの書き方などはこれでいいのでしょうか?

>>924
本でBDKを使っていたんです。
利用側クラスを別途用意しなければならないのですか?よく分からなくて・・・
そんな分からない物を押し付けるなよと言われればそれまでなのですが、
ソースは全部記載されていたようなので、見る人が見れば理解できるのかな、
と思って質問してしまいました。
では、あれはアプレットとして使うもの(つまり別物)なのでしょうか。
940924:03/01/26 14:19
>>939
>本でBDKを使っていたんです。

ハァ? 意味がわからないが。
その本の中で、あのサイトのソースを使うように書いてあったのか?

>ソースは全部記載されていたようなので、見る人が見れば理解できるのかな、

自分でソースを良く読まずに、無関係な本に書かれてた実行手順どおりに動かないもんだから、
人に丸投げした、と。こういう事?

ていうか、beanboxてどういうモノか知ってるの?
"extends Applet" って、どう意味か知ってる??
941デフォルトの名無しさん:03/01/26 14:19
メソッドの名前を文字列変数に入れておいて、
直接メソッド名を記述せずに呼び出すことできますか?
できます。
>>941
クラス java.lang.Class
パッケージ java.lang.reflect
>>940
そうなんですよ。
前述したとおり、こちらはまだアプリケーションを齧っている段階で、beansは理解しきれていないんです
その「本」というのも理解できる人向けに書いてあるものなので詳しい手順などは略されているのです。
時間があるならば自分でアプリケーション→アプレット→???→beanなどと学んでいきたいのですが
それは叶わないので今回のように丸投げしてしまいました。すいません。

クビ覚悟で自分でなんとかしまつ。スレ汚しスマソ。
946デフォルトの名無しさん:03/01/26 14:37
Javaのネットゲームでサーブレット以外に使われている技術というのは
あるのでしょうか?
サーブレットだと、Httpを対象としていると思っているので他のプロトコルは
どうしているのかと思って質問しました。

Javaのサーバ系プログラム公開で有名な団体はJakarta-Projectぐらいしか知らないので、
ゲーム系でそんなのがあったら教えてください。
>>946
Socketクラスあるけれど。
> Javaのネットゲーム

意味不明...
>>948
じゃがたら島とかじゃないの?
>>949
何それ?
951940:03/01/26 14:51
>>945
>その「本」というのも理解できる人向けに書いてあるものなので詳しい手順などは略されているのです。

そういう話じゃなくてさ。「そのサイトのソース」は読んだのか、と。beanうんぬんの話じゃなくてさ。

>時間があるならば自分でアプリケーション→アプレット→???→beanなどと学んでいきたいのですが
>それは叶わないので今回のように丸投げしてしまいました。

俺も時間は無い。でも勉強してるよ。仕事以外でもいつも。でも、丸投げはしない。
まず調べろ。つーか、基礎からやり直せ。
「持ってる本が難しいから」とか「時間が無いから」というのは、かなり恥ずかしい類の言い訳だと
肝に命じた方がいいな。
「本が難しい」→もっと簡単な本を探す
「時間がない」→誰だって無い(この業界は特に)
954 ◆odHOE.4x.I :03/01/26 15:19
>>946
>サーブレットだと、Httpを対象としていると思っているので他のプロトコルは
>どうしているのかと思って質問しました。

例えばHTTP以外にどのプロトコルを使用したいのですか?
>>954
聞いてどうするんですか?そんなこと。
956946:03/01/26 15:39
>>954
>例えばHTTP以外にどのプロトコルを使用したいのですか?

市販のネットゲームで使われているようなものを。
FPSならUDPを、MMORPGならTCPを。
(自分でゲームを作る気は無いのですが、興味があったので質問しました)

上手く言えないのですがSocketクラスだけではなく、TOMCATのような土台と
なるプログラムでネットゲーム系でそういったものがあるのかなあと思いました。
Javaはそういうの向いてないねえ
>>946
1. java.servlet.HttpServletのスーパークラスは、別にHTTPに限定されていない。
HTTP以外のプロトコルを動かしたいなら、これを継承しろ。
2. 通信プロトコルが明確に規定されているなら、プロトコルハンドラを書け。
3. もちろん、低レベル通信の実現にはjava.net.Socket使え。
4. クライアントもJavaなら、RemortMethodInterfaceとか使えば、Netを意識する必要さえない。
次スレきぼんぬ
960デフォルトの名無しさん:03/01/26 16:30
今抽象クラスを勉強してるんですが、そのメリット...というか
いまいち存在意義が理解できないです。
「abstract」とつけなくても、実行結果が同じだったんですが
コードを読み取るという意味で便利ということなんでしょうか?
著書のコードをUPしたので宜しかったらお願いします

↓疑問に思った著書のサンプル
http://deepmind.hp.infoseek.co.jp/ari.txt

↓自分でabstract無しでどうかな・・と思って弄ったもの
http://deepmind.hp.infoseek.co.jp/nasi.txt
プログラムは実行結果のためだけに作るのではないのですよ・・・
>>960
abstractを外したことで実際には実行されないコード書く羽目にあったろ。
気持ち悪くないか?

>  void show()
>  {
>    System.out.println(speed);
>  }
963デフォルトの名無しさん:03/01/26 16:42
>>960
abstractメソッドがあるときにはabstractクラスにしなければならない。

でもわかんないだろうから、とにかく人のソースを読んで勉強するのが一番良い。
特にAPIのソースを読むのが良いんじゃないかな。
964デフォルトの名無しさん:03/01/26 16:52
http://jbbs.shitaraba.com/travel/832/
    ◆みんなの情報局◆
>>960
モデリングの勉強をしよう。
考え方や概念として抽象クラスにする、ということが理解できるようになる。

あとは、インスタンス化すべきではないクラス。必ずサブクラスを定義して
そこでその場に合わせた適切な実装を強制したい場合に抽象クラスを使う。
フレームワークなんかで用いることが多いかな。

>>961 には激しく同意。
プログラムは「動けば何でも同じ」ではない。
966960:03/01/26 17:08
>>962
なるほど。無駄なコードを省くのもメリットの一つと考えて宜しいんですね。
>>963
javaを学習すればするほど、沢山覚えなくちゃいけないことあるんですね。
もっと勉強します。
>>966
あ、ついでに interface の意義についても考察してみるといいYO
まあ、printlnくらいならいくら無駄があってもいいんだけど、
これが return password; なんて文だと下手なダミー書くとバグになるよな。
abstractがあれば、バグの一部がコンパイル時に分かるって訳だ。
interfaceの意義はこのスレで最近あったね。

↓反則。
throw new NoSuchMethodException();
969デフォルトの名無しさん:03/01/26 20:05
HTMLのタグを大文字から小文字に書き換えるソフトを作ろうと思い、
PerlTools.jarというライブラリを拾ってきたのですが、
\Lでの大文字→小文字変換が出来ません。

Perl5Util util = new Perl5Util();
String s2 = util.substitute("s!<(\\/)?([A-Za-z]+)!<$1\\L$2!g", s1);

Perl5互換と書いてあったのですが、\Lは使えないのでしょうか?
使えない場合、別の解法はありますでしょうか?

よろしくお願いします。
String sTag = "<foo>";
sTag.toLowerCase();

これで何故ダメなのか。
971デフォルトの名無しさん:03/01/26 20:40
Java初心者です。次のようなエラーメッセージがでました。
Exception in thread "main" java.lang.NoClassDefFoundError: testProg
原因がまったくわからないのですが教えてください。
972969:03/01/26 20:43
>>970
レスありがとうございます。
"<foo>"にtoLowerCaseを使う場合、タグの種類を1つずつ全て指定するのでしょうか?
何度もループを回すのが面倒なので一括置換したいのですが
ずれた反応でしたらすみません。
>>971
>1の上から4つ目のリンク先に行くと良い。
974971:03/01/26 20:55
>>973
??
意味がわかりませんが。
975デフォルトの名無しさん:03/01/26 20:57
Java FAQを見てみるのもいいんじゃないかってことじゃない?
>>971
>>1 は見たのか???
>>972
toLowerCase() は文字列内のすべてのアルファベットを小文字に変える
メソッド。それで良いなら s1 = s1.toLowerCase(); とすれ。

ただし属性値も小文字に変換されてしまうが (<foo bar="HELLO!"> とか)
978969:03/01/26 21:02
>>977
そうですね。それが嫌なのでPerlライブラリ探してきたのです。
すんなり流用できないようなら地道に1文字ずつ判定していくしかないのかな?
うーん、素直にPerlで書いたほうがいいのか・・・
>>978
http://java.sun.com/j2se/1.3/ja/docs/ja/api/

から、"javax.swing.text.html","javax.swing.text.html.parser" パッケージを参照汁。

または、これ。...ただしパーザがあるかどうかは未確認。

Jakarta ECS
http://www.terra-intl.com/jakarta/ecs/
980979:03/01/26 21:10
って、書いてから気づいたけど、↑のどっちでやっても、結局パーザ部分は自分で書く必要があるな。
981ななし:03/01/26 21:21
>>980
いいや、例によってバグバグでよければ、sunのモジュール使ってもいい。

バグバグでよければ。
982960:03/01/27 04:20
>>965
>モデリングの勉強をしよう。
>考え方や概念として抽象クラスにする、ということが理解できるようになる
「モデリング」って言葉を始めて聞きました。
著書を参考にして、深く勉強してみたいです
>>967
>あ、ついでに interface の意義についても考察してみるといいYO
今日の午後に勉強予定です(笑
頑張ります。

引き続き抽象クラスを学習してるんですが、
http://deepmind.hp.infoseek.co.jp/ari.txt
スーパークラスの変数にサブクラスのオブジェクトをいれてるんですが、
サブクラスの変数を作ってオブジェクトを格納しても、コンパイルができません。
抽象クラスは必ずスーパークラスの変数にサブクラスのオブジェクトを
いれなくてはならないものなんでしょうか?
>>982
>スーパークラスの変数にサブクラスのオブジェクトをいれてるんですが、
>サブクラスの変数を作ってオブジェクトを格納しても、コンパイルができません。
具体的には?↓は通るよね。
CarA car = new CarA(1234,20.5);
car.setSpeed(60);
car.show();

>抽象クラスは必ずスーパークラスの変数にサブクラスのオブジェクトを
>いれなくてはならないものなんでしょうか?
そんなことはない。
用語に注意。抽象クラスはインスタンスを作れない。
VehicleA は抽象クラスだが、CarA、PlaneA はそうではない。

抽象クラスである親クラスの型の変数に入れることで、
子クラスのオブジェクトを同じものとして扱える。いわゆる多態性。
↓の部分ね。
for(int i=0;i<vc.length;i++){
vc[i].show();
}
984960:03/01/27 05:00
>>982
レス有難う御座います
>CarA car = new CarA(1234,20.5);
>car.setSpeed(60);
>car.show();
でコンパイル成功しました。
実験用に作ったソースが間違いみたいだったです。
コンパイルにエラーがでたときの見方がわからなかったので
少し悔しいです(泣

>そんなことはない。
>用語に注意。抽象クラスはインスタンスを作れない。
>VehicleA は抽象クラスだが、CarA、PlaneA はそうではない。
了解しました。
お陰様で、心のもやもやが晴れました(感謝
難しいですけど、面白いですね\( ・ω・)/♪(java
>>984
あと、たまには教科書を疑ってみることも必要だよ。あなたのサンプルコード
見たけど、abstractの効果を説明するサンプルとしてはわかりにくい。
確かにサンプルの言わんとするところはわかるんだけど、実用になるコード
を書きたいのに「哺乳類クラスから継承して犬クラスと猫クラスを」なんて事
やってられないでしょ。

教科書はでかい本屋で片っ端からチェックして、できのいい一冊だけ選んで
買うほうがいいよ。
986デフォルトの名無しさん:03/01/27 08:13
-------------------------------------------
本日23:00時より祭りを開催いたします。
是非、参加下さいます様、お願いします。
携帯PHS
迷惑メールサイト一斉訪問お祭り開催
http://jbbs.shitaraba.com/news/bbs/read.cgi?BBS=853&KEY=1043335260
-------------------------------------------
いや、大抵の初心者向けの本には
動物クラスと犬猫とか、鳥クラスとカラス・インコだとか
そんなのでしか解説されてないと思う。
だからわかりづらいんだよな。こんなことして何になる?としか思えなくなる。
でも、実用的な例だとコードが長くなるからねえ。
一つの本で同じ題をその章で教える内容を盛り込んで大きくしていく
という書き方ならいいけど。
>>969
遅レスだけども,java.util.regex を使うと

Matcher m = Pattern.compile("<(\\/)?([A-Za-z]+)").matcher(s1);
StringBuffer s2 = new StringBuffer();
while (m.find()) {
  m.appendReplacement(s2, "<$1" + m.group(2).toLowerCase());
}
m.appendTail(s2);

とか書けるんですけれど,PerlTools でも似たような書き方が出来るんでない?
990デフォルトの名無しさん:03/01/27 14:22
JAVA初心者です。
質問なんですけど。
配列を使わずに変数をの一部の値を部分参照でとってくる
クラスってあるのでしょうか??
COBOLだったら
  変数名(2:3)
    見たいな感じの何ですけど。。。
>>990
java.util.List#subList() のことか?
COBOL知らんからとらえ間違えてるかもしれんが。

つか少なくとも助詞は正確に使ったほうが伝わりやすいと思うぞ
992デフォルトの名無しさん:03/01/27 14:39
ありがとうございます>991
あと、わかったらで良いんですがjavaプログラムで
excelファイルを読み込むことは可能でしょうか?
全角英数字を使う人には教えません。
994デフォルトの名無しさん:03/01/27 14:42
すいません。
わかったらで良いんですがJavaプログラムで
Excelファイルを読み込むことは可能でしょうか?
>>994
Excelのファイルが読めるサードパーティ製ライブラリがあったと…
POI だっけ?
POIで検索したらいっぱい出てきた

そうなんだよな
検索キーワードさえわかればあとはどうにでもなる世の中

検索キーワード教えろスレ とか建てたいな
絶対需要あるよな
997デフォルトの名無しさん:03/01/27 14:49
よくわからないんですけど、それってツールなんですか??
Jakarta POI
http://www.terra-intl.com/jakarta/poi/
Jakarta POIで日本語シート名を読む方法
http://taka-2.com/jclass/POI/JapaneseSheetName.html
Swing-JTable にコピペで貼り付ける
http://www.javaworld.com/javaworld/javatips/jw-javatip77.html
ODBC 経由 (たぶん obsolete)
http://www02.so-net.ne.jp/~kikuta/jikken/jreport40.html

Java Excel だけで検索できます。
999デフォルトの名無しさん:03/01/27 14:53
ありがとうございます>998
調べてみます
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。