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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
☆★☆こんなメッセージが出たら >>2 へ☆★☆
『'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッ ファイルとして認識されていません。』
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』

>>2-3 初心者によくある質問と回答・他のFAQサイトへのリンク
>>4  JDKの配布元とAPIドキュメントへのリンク
>>5-6 過去スレの一覧
>>7-10 関連スレ
>>11 2ちゃんねる外のJavaサイト・無料の開発環境の配布場所
(諸般の事情でずれた場合は >>2-20 )

Google で検索 ⇒ http://www.google.co.jp/
JavaFAQ で探す ⇒ http://www.gimlay.org/~javafaq/javafaq.html
ご要望によりじゃばこサイト ⇒ http://www.javaco.org/
■JavaScriptの質問■はWeb製作板 ⇒ http://pc3.2ch.net/hp/
  または「JavaScript デス」スレへ⇒
http://pc2.2ch.net/test/read.cgi/tech/1052273054/

パソコンの基本操作に関しては、PC初心者板へどうぞ ⇒ http://pc.2ch.net/pcqa/

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

基本的に sage 進行でおねがいします。また煽り厨は放置でお願いします。
※初心者なんでよろしくです。
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
3
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
【初心者・ネタ】Java質問・相談スレ【大歓迎】
01 http://pc.2ch.net/tech/kako/1021/10218/1021817147.html
02 http://pc.2ch.net/tech/kako/1023/10233/1023319551.html
03 http://pc.2ch.net/tech/kako/1024/10248/1024885660.html
04 http://pc3.2ch.net/tech/kako/1026/10266/1026601774.html
05 http://pc3.2ch.net/tech/kako/1028/10280/1028096225.html
06 http://pc3.2ch.net/tech/kako/1029/10297/1029774594.html
06+ http://pc3.2ch.net/tech/kako/1031/10313/1031397913.html
07 http://pc3.2ch.net/tech/kako/1032/10329/1032944182.html
08 http://pc3.2ch.net/tech/kako/1032/10329/1032944246.html
09 http://pc3.2ch.net/tech/kako/1034/10343/1034303501.html
10 http://pc3.2ch.net/tech/kako/1035/10355/1035570359.html
11 http://pc3.2ch.net/tech/kako/1036/10361/1036142056.html
12 http://pc3.2ch.net/tech/kako/1037/10374/1037407642.html
13 http://pc3.2ch.net/tech/kako/1038/10387/1038731106.html
14 http://pc3.2ch.net/tech/kako/1040/10401/1040150533.html
16 http://pc3.2ch.net/tech/kako/1042/10424/1042407622.html
16+ http://pc2.2ch.net/tech/kako/1043/10436/1043654161.html
18 http://pc2.2ch.net/tech/kako/1044/10449/1044983072.html
19 http://pc2.2ch.net/tech/kako/1046/10461/1046166884.html
20 http://pc2.2ch.net/tech/kako/1047/10475/1047544179.html
21 http://pc2.2ch.net/tech/kako/1048/10486/1048689029.html
22 http://pc2.2ch.net/test/read.cgi/tech/1049715659/l50
23 http://pc2.2ch.net/test/read.cgi/tech/1051284438/l50
24 http://pc2.2ch.net/test/read.cgi/tech/1052625006/l50
25 http://pc2.2ch.net/test/read.cgi/tech/1054041744/l50
■■■ Java関連スレいろいろ ■■■
【IDE 統合開発環境】
【Java/C/他】統合開発環境Eclipse RC6
http://pc2.2ch.net/test/read.cgi/tech/1051840417/
えっ?JBuilder8が発売?
http://pc2.2ch.net/test/read.cgi/tech/1038042372/l50
【Meadow】Java開発環境(・∀・)イイ【JDEE】
http://pc2.2ch.net/test/read.cgi/tech/1017214967/l50
【統合】Java開発環境スレ
http://pc2.2ch.net/test/read.cgi/tech/1038118138/l50
【Java】NetBeans vs Eclipse【IDE】
http://pc2.2ch.net/test/read.cgi/tech/1029407008/l50

【携帯・モバイル】
携帯JAVAのスレッド
http://pc2.2ch.net/test/read.cgi/tech/1011977260/l50
iモード携帯電話用Java(iアプリ) Part 3
http://pc2.2ch.net/test/read.cgi/tech/1040898596/l50
iアプリでゲーム (ゲーム製作技術板)
http://pc2.2ch.net/test/read.cgi/gamedev/1005042631/l50
京セラJAVA搭載PDauPocketCosmo」 (モバイル板)
http://pc3.2ch.net/test/read.cgi/mobile/1021979970/l50
【サーバサイドゃ;ンタープライズ】
EJB(初心メ鰹+})
http://pc2.2ch.net/test/read.cgi/tech/1017240849/l50
= ?Servlet/JSP(EJB萱洫 ソ貰々レ = ?(WebProg泊ァ
http://pc2.2ch.net/test/read.cgi/php/1023501812/l50
《The Jakarta Project》
http://pc2.2ch.net/test/read.cgi/tech/1019996589/l50
TOMCAT
http://pc2.2ch.net/test/read.cgi/tech/998525941/l50
Servlet/JSPv》レームワークり雁"Xレ
http://pc2.2ch.net/test/read.cgi/tech/1001950590/l50
EJBw.Iら!!逐?
http://pc2.2ch.net/test/read.cgi/tech/1036481443/l50
JavaサーブレットQ& LV2
http://pc.2ch.net/tech/kako/1012/10127/1012728608.html
サーバーサイドJAVAり梳 [ゆ雁"Xレ
http://pc.2ch.net/tech/kako/1004/10049/1004972840.html
【サーバサイドやエンタープライズ】
EJB(初心者歓迎)
http://pc2.2ch.net/test/read.cgi/tech/1017240849/l50
■■ Servlet/JSP(EJB含む) 質問スレ ■■ (WebProg板)
http://pc2.2ch.net/test/read.cgi/php/1023501812/l50
《The Jakarta Project》
http://pc2.2ch.net/test/read.cgi/tech/1019996589/l50
TOMCAT
http://pc2.2ch.net/test/read.cgi/tech/998525941/l50
Servlet/JSPのフレームワークを語るスレ
http://pc2.2ch.net/test/read.cgi/tech/1001950590/l50
EJBは終わってる
http://pc2.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/tech/kako/1002/10021/1002160815.html
クライアントサイドJavaどうよ? part2
http://pc2.2ch.net/tech/kako/1032/10326/1032665721.html
クライアントサイドJavaどうよ? part3
http://pc2.2ch.net/test/read.cgi/tech/1045891783/l50
ム板のみんなでRobocode (・∀・)ヤロ−ウヨ!1台目
http://pc3.2ch.net/tech/kako/1020/10201/1020161792.html
Java 高速GUI SWT
http://pc2.2ch.net/test/read.cgi/tech/1032448424/l50
【徹底討論】Java3Dの可能性について考える
http://pc2.2ch.net/test/read.cgi/tech/1033703640/l50
★お前らJavaはJNIで組もうぜ★
http://pc2.2ch.net/test/read.cgi/tech/1033795664/l50
Javaアプレットのゲームの限界は! (ゲーム製作技術板)
http://pc2.2ch.net/test/read.cgi/gamedev/1005230153/l50
【Java編】 学校の宿題は俺にやらせろ 【Java編】
http://pc2.2ch.net/test/read.cgi/tech/1040552821/l50
祝 JAVA Developer創刊
http://pc2.2ch.net/test/read.cgi/tech/1024967343/l50
■■■ 他板の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
C#とJava、どっちをおぼえればいいの?
http://pc2.2ch.net/test/read.cgi/tech/1006715468/l50
Java撲滅委員会
http://pc.2ch.net/tech/kako/996/996848309.html
Java撲滅委員会
http://pc3.2ch.net/test/read.cgi/tech/996848309/l50
●●JAVAって死滅しちゃうの????●●
1 http://pc.2ch.net/tech/kako/1005/10051/1005159122.html
2 http://pc.2ch.net/tech/kako/1006/10060/1006053686.html
3 http://pc.2ch.net/tech/kako/1008/10081/1008162230.html
4 http://pc2.2ch.net/tech/kako/1042/10422/1042268758.html
5 http://pc2.2ch.net/tech/kako/1046/10465/1046539052.html
6 http://pc2.2ch.net/test/read.cgi/tech/1047748598/
■■■ 民間サイト ■■■
巨大な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ではないので暴れないように。
テンプレ以上。
未更新な上に失敗した。ごめんよ。
15名無し:03/06/15 00:03
おそかったな
16デフォルトの名無しさん:03/06/15 00:05
>>14
乙カレー。

>>15
偉そうだな。
どうしてJAVAは演算子のオーバーライドができない仕様なんですか?
18デフォルトの名無しさん:03/06/15 00:09
>>17
簡単に言うと、作者の独断。
19デフォルトの名無しさん:03/06/15 00:38
ttp://www.dcl.info.waseda.ac.jp/prog/
このページの第7回講義の中の宿題(1)の日本語の意味を
教えてください。(3)のプログラムっていう意味が不明です。
結果を出力するオブジェクト ←この表現おかしくないですか?
メソッドなら、通じますが...
よろしくお願いします。
20デフォルトの名無しさん:03/06/15 00:48
>>19
オイオイ、ページみてないけど、課題の質問は教授にしろよ。
21デフォルトの名無しさん:03/06/15 00:51
>>20
しばらく休んでいたもので、聞きづらくて....。
22デフォルトの名無しさん:03/06/15 00:52
>>21
コッチは授業料払ってる客。なにを遠慮する必要があるんだ?
つうか、こういう話題はいた違いっぽ。
2317:03/06/15 01:01
>>18
えっ・・マジ!?
>>17
メソッドのオーバーライドができれば十分。
書く量が多すぎて面倒くさいといっている奴はXMLも書くな。
面倒くさがり屋はHTMLタグで終了タグを省略する。

演算子のオーバライドは怠け者のためにある。
25デフォルトの名無しさん:03/06/15 01:33
メニューアイテムにDeleteキーだけのアクセラレータを追加したいのですができません。

menuitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE));
↑これで動けば文句ないのですが、getKeyStrokeメソッドが
「SHIFT_MASK」「CTRL_MASK」「ALT_MASK」などの第二引数を要求してきます。

これらのキーとの組み合わせでないとアクセラレータキーは使えないのでしょうか?
2725:03/06/15 02:02
適当に0でやったらできちゃいました。
なんで NOMASK=0 とかを定義しておかないんですかねぇ。
どうもありがとうございました。
28デフォルトの名無しさん:03/06/15 02:18
>>27
ビットフラグALL OFF=0ってのは自然では?
NO_MASKがクラス定数定義されていないとすれば、カタワということかもな。
29デフォルトの名無しさん:03/06/15 03:04
初心者スレにこんなこと書くのもなんだが
先日、EclipseのJBossプラグイン使ってみたんだけど
自動生成されるコードに以下のものがあった
public int hashCode() {
int result = 17;

result = 37 * result + ((this.date != null) ? this.date.hashCode() : 0);

result = 37 * result + ((this.name != null) ? this.name.hashCode() : 0);

return result;
}
いわゆる、ハッシュコードを返すわけだけど
この「17」「37」っていうのは、どこからきたものかと言うことを聞きたいのです
ハッシュの意味を考えるとやってることはなんとなくわかるのだが
この数字って他の素数なら何でもいいのか?
それとも、「17」と「37」じゃなきゃいけないのかな?
いまいち理解に苦しむので質問させてもらいます
俺よりデキルやつの意見が聞きたい
30デフォルトの名無しさん:03/06/15 03:22
>>29
コアJava2にこんな例が書いてあった
public int hashCode() {

return 13*d.hashCode()+17*p;
}
private String d;
private p;

ま、いろんなアルゴリズム(ってほどじゃねーか)があるな
ただ、「素数」をつかうっていうのは正解だな
31デフォルトの名無しさん:03/06/15 04:43
>>29
hashCodeは、HashMapやHashSet使うときのハッシュ値生成ですから、
極論すれば、「なに返しても」いいんでしょ。
値がぶつかりやすいとハッシュ検索が遅くなるってだけの話で。

String#hashCode()のソースにも、謎の数字がハードコーディング
されてますな。
まさにマジックナンバーってやつだな。
3329:03/06/15 04:57
>>30-32
レスサンクス

ちょっと疑問に思って質問させていただきました
いやね、こういうプログラムの中で
何やってるのかわからん部分は明確にしときたいと思ってさ
この先、equalをオーバーライドするプログラム書く上で
参考にしますわ
34デフォルトの名無しさん:03/06/15 04:58
>>32
でも残念ながらIDではない。

このあいだあるシステムで、hashCodeの戻り値をインスタンスのIDとして
使用するという、とんでもない実装をみて腰を抜かしました。多分にオイオイと。
35デフォルトの名無しさん:03/06/15 05:00
ちなみに、Stringは文字が同じだと返す値同じだが
StringBufferは違う
今日は久々に良スレだな
こういう話題をもっと議論したいな
3629:03/06/15 05:03
なんだよ、みんな結構わかってんじゃん
初心者スレに居座ってないで
もっと他のトコでいろいろ話したいよな
37デフォルトの名無しさん:03/06/15 05:09
普段はJakartaのdev-MLの住人ですが。
>29
実際素数でなくても何でもいい。が、素数のほうがいいハッシュ値を生成する。
そして37あたりがだいたいいい感じだから使っているだけ。
もっといい式があればそれに変えればいいだけ。

「Effective Java」「Javaの鉄則」あたりに載ってる話だな。
39デフォルトの名無しさん:03/06/15 11:27
>34

衝突起こす可能性があるし、JVMによってhashCodeは一定しないわな。
すごいな。
40デフォルトの名無しさん:03/06/15 14:11
JTableの項目にフォーカスがあればメニューやツールバーの項目を使用可能にし、
フォーカスがなければその項目を使用不可になるようにしたいのです。

FocusListener fcsListener = new FocusListener(){
 public void focusGained(FocusEvent e){
  menuitem.setEnabled(true);
  button.setEnabled(true);
 }
 public void focusLost(FocusEvent e){
  menuitem.setEnabled(false);
  button.setEnabled(false);
 }
};

上記のようにJTableにFocusListenerを追加してそれを実現しようとしたのですが、
JMenuBar上のJMenuや、JToolBar上のJButtonを押した瞬間にJTableのフォーカスが消えるため、
それらの項目が使えないのです。

どうしたら良いのでしょうか?
インクリメント演算子とデクリメント演算子の前置演算と後置演算について

y=++x;
はインクリメント後の値をyにコピーする。
xの値を他で使い、そこで変化する可能性があるが、もう一個xの結果が必要なときに使う?

y=x++;
はインクリメント前にyに値を退避させたいときに使う。
同時にインクリメントまでの処理を一文ですませられて便利
と考えていい?

x=x++;
はx++;と同じだが、可読性の為だけに使う?xの初期値が5だと、
最初に5になりあとでインクリメントされて6になるので無意味?

x=++x;
は++x;と同じだけど、これもわざわざこう書いておく必要は無し?コンパイル後の
結果も変わらないし。

x++;や++x;とだけ書く場合はどちらのほうが望ましい?x++;のほうがいいのかな・・

ハッキリ断言してるサイトや本がなくて・・
やさしいJava → 説明だけ。どういうときに使うか分からない
独習Java → 前置後置のことがどこにあるのか・・
int x = 5;
x = x++;
//この時点では x == 5
x = ++x;
//この時点では x == 6
4341:03/06/15 15:44
>>42
あ、そっか、考え違い。サンクス。
44デフォルトの名無しさん:03/06/15 16:42
普通にプログラミングしていれば
x++;
ぐらいだな良く使うのは・・・
逆にいえば、そんなの使いこなすよりもっと他のもの使いこなした方がいいんじゃ
4540:03/06/15 16:49
で、私のはなんとかなりませんか?
sageますので教えてください。
よろしくおねがいします。
46デフォルトの名無しさん:03/06/15 17:00
>>45

やりたいことが、完璧に実現されているように読めますが・・・?

47デフォルトの名無しさん:03/06/15 17:00
>>45
俺昔、テストプログラムで
ボタン押すと他のコンポネにフォーカス移動するやつ
つくったことあったんだが
多分やり方は、ボタンのイベントとして
あるコンポネにフォーカス移動するようにすればいいのではないかと思う
たしか、setFocus()とか言うメソッド無かったけ?
requestFocus()だったかな?
しかも、なんかちょっと他にもやらなきゃいけないことがあったような気がする
いや、たいしたことじゃないんだがそのフォーカスセットするメソッド呼ぶ
タイミングとか場所とかちゃんとしてないと、動作しなかったような気がする
とりあえず、全てのメニューツールバーボタンのイベントに
テーブルにフォーカス行くようにすればいいんでないの
>>45
何がしたいのか良くわからん。
仕様がバグっている事は別にすれば、
>>40 のプログラムは仕様を満たしてると思うけど。
4946:03/06/15 17:17

JTable からフォーカスが外れた瞬間に、
メニューやツールバーの項目(以下、ターゲットと呼ぶ)を
仕様不可にしてしまう、という仕様がまずいってことでしょうね。

じゃあどうすればいいか、

「JTable からフォーカスが外れたこと」を契機にターゲットを仕様不可にするのではなく、
「JTable 以外のオブジェクトがフォーカスを得たこと」を契機にして、ターゲットを仕様不可にすればよい。

こんなので回答になりましたでしょうか。
5046:03/06/15 17:20
漢字の間違いを訂正。
-------------------

JTable からフォーカスが外れた瞬間に、
メニューやツールバーの項目(以下、ターゲットと呼ぶ)を
使用不可にしてしまう、という仕様がまずいってことでしょうね。

じゃあどうすればいいか、

「JTable からフォーカスが外れたこと」を契機にターゲットを使用不可にするのではなく、
「JTable 以外のオブジェクトがフォーカスを得たこと」を契機にして、ターゲットを使用不可にすればよい。

今度こそ回答になりましたでしょうか。
51デフォルトの名無しさん:03/06/15 18:09
"100 23 34 500"
こういう感じのテキストファイルをintに読み込むのに、
StringTokenizerで分割して、Integer.parseIntで変換してます。
もうすこし簡単な方法はないでしょうか?

Cのfscanf("%d %d %d %d", &a,&b,&c,&d)みたいな感じで
一行で書けたらスッキリするんですけど。
5240:03/06/15 18:53
ムズー(゜д゜)
>Cのfscanf("%d %d %d %d", &a,&b,&c,&d)みたいな感じで

お前恐ろしいことするな・・・・・・・
54デフォルトの名無しさん:03/06/15 18:55
>>51
java.text.MessageFormat
>>54
どーやって??
56デフォルトの名無しさん:03/06/15 19:07
MessageFormat format = new MessageFormat("{0,number} {1,number} {2,number} {3,number}");
Object[] parsed = format.parse("10 20 30 40");
Number num1 =(Number)parsed[0];
int val1 = num1.intValue();
>>56
コード書く手間って意味では StringTokenizer 使うのと大して変わらんと思われ。
>>40
フォーカスがあるかどうかではなくテーブルのセルが選択されているかどうかで判断する方向でいってみてはどうだ?


59デフォルトの名無しさん:03/06/15 19:17
>>57
この程度のコード書くのを手間だという連中にとっては、そうかもな。
6046:03/06/15 19:32
>>58

なるほど。
そのほうがずっといい。
(反省)
61デフォルトの名無氏:03/06/15 19:56
本当に今からプログラムに入門したいと思います。
というわけでこのスレにきました。
まず何から始めればいいでしょうか?(即質問・・)
皆さんはなにをすることから始めたのでしょうか?
62デフォルトの名無しさん:03/06/15 20:01
>>61
まずはプログラムを書いて、コンパイルして、実行する環境を整えよう
63デフォルトの名無しさん:03/06/15 20:06
他にもJavaの質問スレがあったと思うのですが、URLを教えていただけないでしょうか。
'Java'で検索しても見つからないのです。今朝はあったんですが。
>>61
まずはここへいくといい。
http://www.gimlay.org/~javafaq/javafaq.html
66デフォルトの名無氏:03/06/15 20:18
皆さんありがとうございます。
早速実行に移りたいと思います。
67デフォルトの名無氏:03/06/15 20:26
>>65
お気に入りにいれときました。
68デフォルトの名無しさん:03/06/15 21:14
Appletって一時期はやったけど今、ほとんどFlashplayerにとって変わられた
感じなんですけど・・・
今javaで熱いのはサーブレットだけかな・・・
マイコンの組み込みにする計画はどうなったのsun?
単体のアプリなんてほとんどないし最近勢いがないような・・・
別にjavaを批判するつもりで書いたのではありませんので(*^_^*)
>マイコンの組み込みにする計画はどうなったのsun?

出てますよ。

後、最近の携帯Javaも組み込み系ではないにしろ、おもしろい使われ方をしている。
>>68
いや、クライアントのマシンパワーが飛躍的に向上した今こそ
Appletの出番だ!!
71デフォルトの名無氏:03/06/15 21:40
いや〜じっくりプログラミング入門のサイトを見てきたんですが、
入力ソフトが無いことに気付きました。
いや、入力ソフトってなんだろう??
??
>>71
テキストエディタでいいじゃないか。別に。
sunとかが一応GUI開発アプリもフリーで提供してるけどさ。

というか、むしろ最初はテキストエディタ使った方がいいような気がする。
テキストエディタが欲しいなら、窓の杜やvectorでさがしてこーい。
>>最近勢いがないような・・・
立場上、転職応募者の履歴書を見る機会が多いのですが、ここ2〜3年の経歴は
みなさんJava関連の仕事ばかりなので、「勢いがない」というのはピンとこないのですが?
Appletも社内システム等では結構使われていますよ。Webコンテンツ上でリアルタイムに
通信と同期ができたりする方法は限定されますので。
最近はAppletよりJavaWebStartに力を入れているみたいね。
76デフォルトの名無しさん:03/06/16 00:45
>>75
まあ、JWSは、Appletのような、「ブラウザに挙動が依存しちゃったりしてイヤンな
ことになりうる」方式を、より洗練された方式にリプレースしただけなんだけどね。

ゼンゼンチガウ技術だと思い込んでる奴は、勘違いだから改めろー。
Webブラウザ上の割り当てられたビュー上にしか描画できないなんて、JWSアプリか
ら見たら不便なだけ。

77デフォルトの名無しさん:03/06/16 02:14
emacs+Java最強。
>>77
最凶?最狂?最兇?
79デフォルトの名無しさん:03/06/16 02:52
>Webコンテンツ上でリアルタイムに
>通信と同期ができたりする方法は限定されますので。

技術がわからないやつが知ったかで言いそうな言葉だな。
>技術がわからないやつが知ったかで言いそうな言葉だな。

技術がわか(略
81デフォルトの名無しさん:03/06/16 08:35
画面(jsp)の入力項目から全角スペースが渡されたとき、
java側で全角スペースが渡されたという判断ロジック(ifの条件)
を書くのにつまっています。

String a = "";
if (a.equals(" ")){

}
って書いたら怒られるし・・・
どう判断させたらよいのでしょうか?

皆様の知識をお借りしたいです。。。
82デフォルトの名無しさん:03/06/16 08:48
ソースをnative2asciiしてから、コンパイルすればだめか?

全部変換されるのがいやなら、
コード中では、全角スペースだけユニコードの表記すれ。
>>81
一体そのコードの何が不満なのか
>>81
> 画面(jsp)の入力項目から全角スペースが渡されたとき、
じゃなくて
画面(jsp)の入力項目から全角スペースを含む文字列が渡されたとき、
だった場合は if(0 <= a.indexOf(" ")) とかすればいいのかも。
でなければ >>81 ので良いはず。
85JGreener:03/06/16 13:58
Zip圧縮をしようと思っています。
WEBで情報をあつめたところ、ファイル単位での圧縮ほうほうはわかったのですが、
ディレクトリを指定して、それ以下のファイル・ディレクトリを全て圧縮する方法はないでしょうか。
サンプル等ありましたら教えてください。
よろしくお願いします。
>>85
再帰と File#list
87J:03/06/16 15:25
Java Web Startというものは、自分で書きこんだプログラムを絵として
表せられますか? また、どうやるんですか?おしえてくださいまし。
88JGreener:03/06/16 16:30
レスありがとう。
うう、もうちょっと詳しい情報ないですか(汗
お願いしますm(_ _)m
TextAreaに書かれている文字列を一発で全消去する方法ないでしょうか?
>>89
textarea.setText(""); とかじゃいかんのか?
>>88
再帰は基礎だよ。めんどくさいからヒントだけ

{
 ZipOutputStream zos = new ZipOutputStream([zipファイル]);
 File dir = new File([目的のディレクトリ]);
 zip(zos, "", dir);
}

private void zip(ZipOutputStream zos, String path, File file) {
 if (file.isDirectory()) {
  File dir = file;
  String[] files = dir.list();
  for (int i=0; i<files.length; i++) {
   zip(zos, path + dir.getName() + "/", new File(dir, files[i]));
  }
 } else {
  ZipEntry entry = new ZipEntry(path + file.getName());
  zos_.putNextEntry(entry);
 }
}

こんな感じだ。
必要なら files[i].endsWith(拡張子) でフィルタかけるなり好きにおやり。
9281です。:03/06/16 17:50
レスを下さった皆様方、どうもありがとうございます。

結局、CharacterクラスのisSpaceCharメソッドを
使用して判定しました。
※おかげでソースが見づらくなってしまいましたが・・・

ところで、javaのソース中に全角スペース" "を記述、
エラーとなってしまうと思っているのですが・・・

>全角スペースだけユニコードの表記すれ
もう少し勉強します・・・
>92
んなことは(普通は)ない

ちゃんと聞きたいなら
「おこられる」「エラーとなる」ではなく、
どんなエラーが出ているか詳しく書く
>>92
LANG がちゃんと設定されて無いとか。
95U ◆CZtFsGiu0c :03/06/16 21:29
>>92
javac -encodingで明示的にエンコーディングを指定すればよいのでは?
96デフォルトの名無しさん:03/06/16 21:42
RoboCodeって、最近はやっているんですか?
やたら本屋で、CD付きの本をみかけるんですが。
Robocodeってタンク一台=スレッドな割には思ってたより処理が軽いなぁ
98デフォルトの名無しさん:03/06/16 23:10
JMenuItemの「コピー」にCTRL+Cキーの割り当てをしたいのですが、うまくいきません。

>> item.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK));

これがActionEvent.ALT_MASKだとALT+Cでちゃんとメニューが反応するようになります。
対象にしてるコンポーネントはJTreeです。
CTRL+Cはアクセラレータキーに指定できないんでしょうか?
99デフォルトの名無しさん:03/06/17 01:08
JavaFAQ見ても???って人はどこへ逝ったらいいですか?
PC初心者逝けと言われでばそれまでなんですが、形だけでもJavaを使えるようになりたいのです。
お勧めの本やサイトがありましたら教えてください。
>>99
学校いったら。
101デフォルトの名無しさん:03/06/17 01:33
>>99
最初は何でも手探りだよ
本なんて本屋行けばあるだろ?
「はじめての・・・」とか「いまからはじめる・・・」
とか、タイトルで選べよ
そのくらい頭つかえよ
>>99
>形だけでもJavaを使えるようになりたいのです
就職か? Hah!
10399:03/06/17 03:01
どうやら少し甘えすぎてたみたいですね。
自分の文章を見ていまさらながら
少し反省してます。
実はとあるサイトで見つけたJavaアプレットに使われている画像を保存したいという
無茶苦茶不純な動機でしたがソース見てパニックになってました。
簡単に考えていたのですが、一から勉強しないと無理みたいですね。
スレ汚しすいませんでした。地道に勉強してきます。
初心者スレなので気持ちお手柔らかにどうぞ。
>>103
Alt + PrtSc でコピった方がかしこいぞ
106デフォルトの名無しさん:03/06/17 12:35
>>105
ノートパソコンなのか?おまえは?
107Remote:03/06/17 13:51
質問 Remoteについて
Remoteにはどういう役目があるんですか?

>>106
ノートじゃなくても普通にあるっつーの
PrtSc = ノート用キーボードっぽい
PrintScreen = 普通のキーボードっぽい

って感じですか。
110デフォルトの名無しさん:03/06/17 16:16
>>108
いやそうじゃなくって
「Alt」押さないかんいうことは
ノートかなと・・・
111デフォルトの名無しさん:03/06/17 16:26
>>110
Altはアクティブなウィンドウだけキャプチャするんでっせ
スレ違い気味だけど…

・Alt+PrtSc アクティブなウィンドウをクリップボードにキャプチャ
・PrtSc デスクトップ全体をクリップボードにキャプチャ

ノート云々はFnキーだと思われ
113デフォルトの名無しさん:03/06/17 16:27
あ、そうなんですか?
じゃあ、RealPlayerの画像なんかも?
>>113
動画は大抵の場合だめ。俺は疎いので嘘度の高いことを書き散らすけど、
オフスクリーンではなく直接デバイスに描かれているから。

スレ違いだなぁ・・・無理やりスレに沿ったことも書くとすれば、JMF もだめ。
アクティブなウインドウってそういう意味ね

116デフォルトの名無しさん:03/06/17 19:20
1.クラスフィールド?(static)に配列を宣言したいのですが、その時それを動的に宣言する方法を教えてください
(動的とは違うかもしれんがここでは、宣言時には個数がわからないけど、他の処理をしてからその結果をもとに個数を決めるということです。

2.Vectorクラスを用いてオブジェクトを格納した時
(例)Aclassクラス メソッド aa
Bclassクラス メソッド bb
(aa,bbメソッドを持つAclass,Bclassというクラスがあるという意味(public))

それでCクラスのあるメソッドで
void cc(){
Vector vec = new Vector();
Aclass aObject = new Aclass();
Bclass bObject = new Bclass();

vec.addElement(aObject);
vec.addElement(bObject);

Object Temp = new Object();
Temp = vec.get(2);

Temp.bb
}
ということはできますか?(最後の行)
以上2問JAVAの勉強して日が浅い為、根本的に違うかもしれませんが是非助けてやってください。
>あちこち
アクティブウィンドウってのは、最前面にある画面のこと

>116
(1)
[]の中に要素数を書かないだけ、という話かな?

(2)
できない。キャストすればできる。
…が、そもそも型の違うものを同じコレクションに入れる
時点で終わりは近い。
>>116
1. final 宣言していなければ幾らでも入れ替えられる。
2. キャストしろ。
>>116
1.出来る
2.Temp.bb();
とやる前に、
Bclass bclass=(Bclass)Temp;
とやってから、
bclass.bb();
うまくいけば成功するが
うまく行かんかったら上の行のところで実行時エラー

ちなみに、なんとなくやりたいことがわかったから答えたが
>>116で書いてるソースは間違いだらけだからな
Javaの資格試験対策用の本買った。

…こんな書き方しねーよ、的な引っ掛け問題が
多くて欝だ。試験は試験か。実用とはまた別…

>>120
たとえばどんなとこが?
122116:03/06/17 19:58
早速のお答え感謝です。

1.は配列の大きさの話なのですが、それでもfinal宣言してなければ後で大きさを宣言できるのでしょうか?宣言部で[]の中を書かないだけでOKなの??

2.は私の作っているのは、抽象クラスの勉強ということでAclassとBclassは実はAABBclassという抽象クラスを継承しているクラスなんです。それでaメソッド,bメソッドってのは継承した奴なんで同じAABBクラスのメソッドです。
  それでAclassとBclassのオブジェクトをCclassでたくさん生成し、配列に格納していたのですが、サイズを可変にしろと言われて・・・
  Vectorの中にはAclass、Bclassのどっちのオブジェクトがどの順番でどのくらい入っているかはわかりません。つまりVectorの2番がBclassってわかればキャスト?というのを使えばよさそうですがわかりません。
 
  こんな時はどうやって管理すれば良いのでしょう?たとえばVectorの3番目のオブジェクトはAclassオブジェクトだよ!ってのがわかるような方法はあるんですか?
>121
引っかけというのとはちと違うかもしれないが、
帰りの電車で読んでいて解読する気が失せてくる
模擬が。

class なんとか {
 int i,j;
 for(i=0,j=0; i+j < 20; ++i, j+=i--) {
  System.out.println(i+j);
 }
}

どんな結果になるか。
□値5を出力する
□値8を出力する
□値13を出力する
□コンパイルできない

(□は複数選択可能な答)

……えーと、本番のテストはパソコン画面に向かって
回答するのだよな? 紙と鉛筆は使えるのか?

とりあえず、普通は前置と後置を混ぜないだろうし
for文のあの中をコンマで区切って複数書くと言うのも
あまりやらないし。
複雑な処理は単純に分割する癖が付いているので、
こういった込み入ったものを見るとうっとおしくて
かなわない…(弱)
>>122
1. 意味不明。
2. instanceof でも使え。
>>122
1. ClassA[] は、特定のクラス "ClassA" の配列を表すクラス(というか、型) で、
 それに代入されるのものは new ClassA[length]; されたインスタンス。
 動的にサイズが変わっていうわけじゃないからな。
 new 時にサイズを決めたものを、static なフィールド ClassA[] array に好きなときに代入できるんだ。
 しかし array が final 宣言されていれば、宣言時に final ClassA[] array = new ClassA[100]; と代入してそれで終わり。
 (「代入」ってのもアレだがわかりやすく書いておる)

126125:03/06/17 20:28
こんな説明でわかるのかな・・・親切に教えてあげよう。
ClassA[] array は、棚の置き場。棚は何段になるかわからないが、とにかく縦一列の棚が置かれる。
array = new ClassA[100]; で、100段の空の棚が置かれる。
(※もしあとで 200段くらいにしたければ array = new ClassA[200]; で、棚は置かれるけど、
元の 100段の棚の中身はどっかにいっちゃう。その前に移し変えをすること)
127116:03/06/17 20:31
ありがとうございます
>>11
形の違うものって・・・?
Object一緒じゃないんすか?
>>123
コンパイルできないだろ。
>>128
コンパイルできるよ。
>>122は初心者だからしかたないが
他のやつらはほんとにJavaやってるのか?と問いたい
 インターフェース使え
AclassもBclassもそれをimplementsしろ
インターフェースにはメソッド定義
A,Bそれぞれに同じ名前で違う処理書けばいい
あとはVectorから取り出したObjectをインターフェースにキャストすれ
そして定義したメソッド呼べばいい
>128
ごめん、確かにコンパイルできんわ。

設問は
class なんとか {
  public static void main([String[] args) {
  int i,j;
    for(i=0,j=0; i+j < 20; ++i, j+=i--) {
        System.out.println(i+j);
    }
  }
}

ですた。
>>127
Object ではひと括りにしないな普通は。
どちらも AABB のサブクラスのようだからいいけど。
AABB aabb = (AABB)obj;
if (aabb instanceof Aclass) {
 aabb.a();
} else { // 暗黙でいいなら Bclass
 aabb.b();
}
こうなるな。しかしこうするくらいなら、
AABB の同じメソッド c を、Aclass, Bclass でオーバーライドして、
ポリモーフィズムさせるのがいい。
あう、ゴミが…
class なんとか{
  public static void main(String[] args) {
  int i,j;
    for(i=0,j=0; i+j < 20; ++i, j+=i--) {
        System.out.println(i+j);
    }
  }
}

death。
>>130
それをいうなよ。>>122 が条件小出しにするんだもの。
>>134
だったらお前らをテストしてみようかな?
偶然にもJava資格試験のレスかいてあるやついるから
お前らも参加しろ

int[][] a[],b,c[];

それぞれ、どんな配列になるか言ってみろ
>>133
なるほど。, が入れられるなんて知らなかったな。絶対やりたくないが。
前置と後置も吐き気がしてくる。

設問には
 □無限ループに陥る
もあるとなおいいかもな。
>b

配列?
>>135
a :: int[][][]
b :: int[][]
c :: int[][][]
>>135
インスタンスつくらなきゃ"配列"にはならん。
というのはさておいて、そもそも a と c はどう違うんだ。
3, 2, 3 次元
偉そうな態度で出したわりに大した問題じゃなかったね…
public void start(){
boolean d=true;

swich(d){
case true:
System.out.println("OK");
case false:
System.out.println("BAT");
}
}

さて、どうなる?
> swich(d){
コンパイルエラー
143デフォルトの名無しさん:03/06/17 21:01
Forteをインストールして、JSPを勉強しようと思っているのですが、
デフォルトで入っているTomcatが動いてくれません。コンパイルは通るのですが、実行すると「プロセス
を作成できません、有効な外部ブラウザが設定されていない」と出てしまいます。何かWebブラウザの設定とか必要なのでしょうか?
環境はJDK1.4、Forteの3.0CEなんですが・・・。設定に関してはどのページにも、このような例はなく、
困っています。もし、よろしければ伝授お願いします。
じゃぁこれはどうなる?
int []a,b[],c;
int d[][],e[];
>>144
a: int[]
b: int[][]
c: int[]
d: int[][]
e: int[]
146デフォルトの名無しさん:03/06/17 21:04
>>141
クラスがない・・・。
public void start(){
byte d=100;

swich(d){
case 10:
System.out.println("SO");
case 100:
System.out.println("OK");
case 1000:
System.out.println("BAT");
}
}

じゃこれ、何行目でコンパイルエラ〜?
>>147
>swich(d){
いーかげん、スペルミスに気づけよ。
>>144
1,2,0
2,1
次元配列
以下の書き方は正しい?

String s[]={new String()};
case 1000:
>>150
コンパイルエラーは出んね。
char c;
上のようにメンバ変数として宣言されたcの値を答えなさい

値がはいってれば初期値を答えなさい
なければ無いと
>>153
65536
>>153
0
BADのスペルもわかってないやつが、つまらん問題出してるな…。
ここの Programming Puzzlers でもやってろ。
http://www.sfbayacm.org/events/2002-06-19.html
double s=1.0;
int x=10;
double a=x/(s+1);
System.out.println(a);

表示は?
>>153
'\u0000'
int x=3;
int k;

if(x>0){
k=1;
}
else{
x++;
}
System.out.println(k+x);

どうなる?
>>157
ふつーは 5.0
>>159
>System.out.println(k+x);
コンパイルエラー (ifは特別扱いされる)
>>159
コンパイルエラ〜
「kは初期化されていないかも」みたいなかんじ??
>>162
Syntax Errorだと思われ。
importも無ければclassもない。
>>163
認定試験はこんな問題の出し方
キニシナイ
String s="S";
String d="S";
StringBuffer a=new StringBuffer();
StringBuffer b=new StringBuffer();
a.append("A");
b.append("A");

さて、s.equal(d);
a.equal(b);

それぞれ
どうなる?
>>165
コンパイルエラー。
>>165
> s.equal(d);
> a.equal(b);
またスペルミスかよ。

s.equals(d); :: true
a.equals(b); :: false
Collection c=new ArrayList();
c.add("w");
System.out.println((String)c.get(0));
どうなる?
>>168
>System.out.println((String)c.get(0));
コンパイルエラー (Collection に get は無い)
予期せぬ例外のクラスをひとつ上げなさい
>>170
???
172デフォルトの名無しさん:03/06/17 21:57
質問です。
アプレットをHTMLに貼ったんですが、友人が見れたり見れなかったりします。

タグは
<applet codebase="java" code="Ball.java" width=60% height=100%>
</applet>
で、javaフォルダにBall.javaが入ってます。
ブラウザのアプレットはONにしてるんですが、見られないらしいです。
(僕は見られます)
どなたか助言お願いします。
>>172
とりあえず見れない奴のコンソール
そのアプレットを貼ってあるページ開いてから見てみろ
Ball.class
175デフォルトの名無しさん:03/06/17 22:37
>>172
つうか、僕が見られるのが不思議。
JDKのバージョンごときでぎゃあぎゃあ言わんでくれ・・・。
177103:03/06/17 22:49
>>105-115

でもって俺っちの問いには答えて頂けないんでしょうか・・・・
なんかクイズやってるので、おいらも一題。

public class Test{

 static{
map.put("test1","テスト1");
  put("test1","テスト2");
 }

 static public Map map = new HashMap();

static public put(String key,String val){
  map.put(key,val);
 }

 static public void main(String args[]){
  System.out.println(map.get("test1"));
 }

}

どうなると思う?
>>178
>static public put(String key,String val){
コンパイルエラー (戻り値無しでコンストラクタでもない)
>>179
すまぬ。ボケだ。voidつけてくれ。
問題出す方のアホさが露見する罠
げ、こんなのも可能なんだな・・。

public class A {
public static void main(String[] args) {
for (int i=0, j=0; i<10 && j<10; i++, j++, System.out.println("i=" + i + "/j=" + j)) {

}
}
}
>>178
static public put(String key,String val){
が、もし
static public void put(String key,String val) {
になっていたとしても、静的初期化子でコンパイルエラーになるんじゃないかな?
静的初期化子の前に
static public Map map = new HashMap();
があれば多分コンパイル通るはず。
重複OKだったっけ?
185デフォルトの名無しさん:03/06/17 23:50
>>178
static初期化節がmapをnewする前に記述されているので
「NullPointerExceptionになるのでは?」と予想したが
答えはコンパイルエラーだった。
Javaって読みやすく、分かりやすく書くのがモットー?だから
この手の問題は結構ムズカシイな
187178:03/06/18 00:07
タマタマこれに似たコード書いて、初めて見るコンパイルエラー
メッセージに驚いたもんでした。そんなルールあったのね、と。
なに?
結局書く順番が問題だったんですか?
実際問題で
public2回書いてある問題あって
多分違うファイルなんだろなとおもって
答え見たら、やっぱり同じファイルにはにpublic付きのクラスは一個です
だったよ。
ま、受かればいいんだけどさ
アプレットビューアーを使いたいんですが
コマンドでファイル名をいれてもなんかExceptioninthread”main”
ってでるんですけど。
ファイル名をどうやって入力すればいいんでしょうか
190デフォルトの名無しさん:03/06/18 23:52
ここで答えている香具師らをジャバ様と呼ばせてもらってもいいでつか?
>>189
どういうコマンド打ち込んだのか書いてね
>>190
だまれボバフェット
193デフォルトの名無しさん:03/06/19 11:45
ローカル変数の宣言で
List list=new ArrayList();
とか、
Context con=new InitialContext();
とか、書いてる理由がわかりません

他から呼び出される関数を
public void setXXX(ArrayList list){}
じゃなくて
public void setXXX(List list){}
とやるのはわかるけど・・・
>>193
以降に続く処理で ArrayList である理由がこれっぽっちもない場合は、
List ないし Collection にする。
万一、ローカルにこんすとらくとするのではなく引数でとるように仕様を変更するとき、
果たして ArrayList でなければいけないんだっけか?
などとソースを見直す必要はない

俺は、そんなぐらいの意味合いでやってるが
>>193
まぁ、大した意味無いな。漏れは素直に同じ型でやってる。
196デフォルトの名無しさん:03/06/19 13:32
あるメソッド内で
そのメソッドの名前を文字列で取得する方法ありますか?
>>196
いったい何の意味があるんだ?
自分でメソッド書いたんだから自分で文字列を与えればよい
>>196
Exception 発生させて StackTraceElement からゲット。

ま、たしかに無意味っぽいけど。
>>197-198
くそぅ
おまいらより、すっごいプログラマにまってやる
>>199
まってください
201デフォルトの名無しさん:03/06/19 17:00
Servletで、StringBufferクラスの長い文字列をPrintWriterクラスのprintlnで書き出すとブラウザ上で改行
されずに表示されてしまいます。
普通にテキストを表示させたときのようにブラウザの横幅で自然に改行されるように
したいの
ですが、何かいい方法はありませんか?
202デフォルトの名無しさん:03/06/19 17:03
>>201
<br>
ほんとに Servlet だのなんだのとやってる野郎どもはあほばかりだな!!!!!
204デフォルトの名無しさん:03/06/19 18:00
>>201 HTMLでないと自動改行(word wrap)してくれない。 ちゃんとtext/htmlで、HTMLの一部として出力してる?
お前ら、javascript と勘違いする奴はともかく、
HTML が完全にスレ違いだと気づかない奴は放置しる
>>203は最近EJBおぼえたので鼻高々なんです
かわいいいね
207203:03/06/19 18:57
僕のスキルは

・perl がぼちぼち

おしまい
>>203
まあ、たしかに現状では
個人のプロバイダでは
PerlのCGIしかつかえないサーバばかりだもんな
Servletやっても仕事じゃない限りつかえる場所ないよな

おちまい
数は結構増えてきた。

JSP、Servletが動くレンタルサーバ
http://pc2.2ch.net/test/read.cgi/hosting/1016218662/

個人で借りてます。
210201:03/06/19 20:17
とても失礼な発言をしてしまったみたいで、すみませんでした…
仕事で今Servletをやり始めたところなのですが、考えてもいい案が浮かばなかったので。。

>>204
因みに、text/htmlで出力していますが、pw.println("text"+StringBuffer+"text");
のような形です。
仕方がないので今のところはStringBufferに文字列を足していくときに
一定の間隔で改行コードを挟むようなプログラムにしています。


気を悪くさせてしまってごめんなさい。。
Javaで連結リストはどうやって表現するんでしょうか?
ポインタの役目を果たすものは何でしょうか?
>>212
>ポインタの役目を果たすものは何でしょうか?
ポインタ
もっとバカな初心者連れて来い!!!ゴルァ!!!
 ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄
         ∧,,∧____
     ∬ /,ミ゚Д゚,,彡,,  /|
     □⊂へ ::::⊂,,,ミ //
       (_ミ ゛,, ノ~~//
       (_丿|_|"" し'
215デフォルトの名無しさん:03/06/19 21:51
                  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ∬   ∧,,∧      |  今日はさみしいなぁ〜
     ~━っミ ゚Д゚彡,,    <  雑談や質問を、しながら
    ∀._(,,,~  ,,,~⊃_   | マターリくつろごうや
━┳┷ |. ,(~ヽ,,,ミ.       \_________
  ┃...| ̄ ̄し'J.  ̄ ̄ ̄
  ┻ ヽ ̄ ̄
>>214-215
スレ間違い?
218デフォルトの名無しさん:03/06/19 21:55
     ∧_∧
ピュ.ー ミ ゚Д゚彡,,    <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎      
219デフォルトの名無しさん:03/06/19 21:55
テキストファイルを1行ずつ読み込み、
目的の行に達した時に、
その行の内容だけを変更したり、
その行を削除して、1行詰める(空白行をなくす)事をしたいのですが、
やり方がわかりません。
どうしたらできますか?
>>219
頑張る。
>>219
一旦全データを読み込んで修正した後、
同じファイルを上書きする。
222デフォルトの名無しさん:03/06/19 22:02
>>219
半角英数字とかだけだったら
ByteArrayInputStreamとかでもできる
(*´д`*)アハァ… Java初心者質問スレ 
> テキストファイルを1行ずつ読み込み、

BufferedReader の readLine() 使えば?
>>224
問題は書き込み名分けだ。
226デフォルトの名無しさん:03/06/19 22:08
>目的の行に達した時に
startWith() を使えば?
盛り上がってまいりました!!!ゴルァ!!!
 ̄ ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄
         ∧,,∧____
     ∬ /,ミ゚Д゚,,彡,,  /|
     □⊂へ ::::⊂,,,ミ //
       (_ミ ゛,, ノ~~//
       (_丿|_|"" し'
>>225
単純に Writer に突っ込めばよいのでは?

あ、readLine() で読んだ場合は改行記号が消えるので
System.getProperty("line.separator") あたりをくっつけて。
229デフォルトの名無しさん :03/06/19 22:15
サーバーの一時ディレクトリにアップした画像(jpg)をWebページで一覧表示し、
正式にアップするかどうかをユーザーに決めてもらい、正式ディレクトリに移動する
プログラムを作っています。

選択されたファイルを一時ディレクトリから正式ディレクトリに移動させる処理は
簡単に出来たのですが、アップされたデータがjpgかどうかを判定するプログラムの
作り方がわかりません。Webなどで資料を調べてみたのですがそのことに関する記述が見つかりません。
何かいい方法があったら教えてください。
230_:03/06/19 22:16
>>229
その心は・・・?
単にわけわからんサイズの大きな
得体の知れないファイル送りつけられるのがいやなら
ファイルサイズでければ問題なし
あとは、.jpegファイルの先頭部分を
読み込んでみるとJPEG共通のバイト入ってないかな・・?
>>229
ImageI/O とか使えば?
233デフォルトの名無しさん :03/06/19 22:21
>>231
システムを使われるお客様がパソコンがまったくダメなので
jpg以外のファイルをアップしてもリストに出てこないようにしたいだけです。
(ビットマップファイルの拡張子を.jpgに変更とかしてアップしそうなので)
なるほどjpegのヘッダを見ればいいんですね。ありがとうございました。
やってみます。
boolean java.io.image.JPEG#isJPEGFile()や、
boolean java.io.image.JPEG#isURAJPEG()が参考になる
>>233
ちょっとまて、俺が言った「ヘッダ」は
なんの根拠もない、勘だ、勘で言ったんだ許してくれぃ
236デフォルトの名無しさん:03/06/19 22:32
>>234
一瞬、そんなメソッドあるのかと期待したが
よくよく考えると
そんなメソッド存在したところで
裏画像にありつけるわけでもない・・・
ちょっとまてよ・・・
ネットで無造作検索して
「true」の文字が返ってきた日にゃ〜・・・
おい、こうしちゃいられね〜な
237デフォルトの名無しさん:03/06/19 23:21
とてつもなく初心者的な質問よろしいでしょうか?

Swingでボタンなどのレイアウトについてなのですが
BorderLayoutとGridLayoutを組み合わせたいのです。
感じとしてはのNORTHのなかにひとつテキストフィールドをいれて
CENTERのなかに4*6列のボタンを配置したいのですがどうやれば
うまくいきますでしょうか。
CENTERにJPanelを入れて
そのJPanelにGridLayoutを設定せよ
239名無しさん@Monalipse:03/06/19 23:47
>>237
GridLayoutを指定したJPanelにボタンを並べて、
そのJPanelをCENTERに配置する。
で、いける?
240239:03/06/19 23:52
かぶった…
ところでスレ汚しついでに質問なんだが、
javax.servletパッケージのクラスのソースコードってどこかにない?
それがあると、Eclipse上でjavax.servlet以下の
クラスのメソッドをオーバライドするのが便利になるんだが。
j2sdkee-1.3.1にはありませんでした。tomcatのソースにも。
241sage:03/06/20 00:15
>>239
>>238
うう、ばかですんません。

そのJPanelにGridLayoutを設定せよってのがうまくできなくて・・・
JPanelはbって名前なんですがどう書くのでしょうか。
そのあとにこれでいいんですよね?

getContentPane().add(b,BorderLayout.CENTER);
242237:03/06/20 00:16
ああ、名前にsageってかいちゃったし・・・
もう最悪ですな
b.setLayout(new GridLayout(4,6));
b.add(button1);
b.add(button2);
....
244237:03/06/20 00:43
>>243
おお、できました。
どうもありがとうございました!!

本かって勉強しないと・・・・
基本情報処理試験以外にJAVA初級プログラマー向けの資格てなにかありますか?
最近モチベーションがやや墜ちているのですが資格の勉強ならやる気になるかなぁと・・。
>>246
Sun Certified Programmer for the Java 2 Platformというのがある。
http://suned.sun.co.jp/JPN/certification/progdetails.html
24840:03/06/20 11:24
JTable項目(SINGLE_SELECTION)の選択/非選択によって、
JMenuItemや、JToolBar上のJButtonをON/OFFしようとした>>40です。

JMenuItemに関しましては、JMenuをクリックした際のMenuListenerで、
JTable項目の選択/非選択を検知してsetEnabled(true/false)をすることにより可能となりました。

しかし、JToolBar上のJButtonに関しては、当然MenuListenerはありません。
JButtonがJTable項目の選択/非選択を知るためには、
1.JButtonがMenuListenerに相当するリスナを持つ
2.JTableがJTable項目のON/OFFを検知するリスナを持ち、そこでJButtonのON/OFFを切り替える
のどちらかだと思います。

しかし、そのようなリスナはありますでしょうか?
また、よりよい方法がありましたらご教授ください。おねがいします。
>>248
javax.swing.table.TableColumnModelと
そのメソッドaddColumnModelListener(TableColumnModelListener x)、
javax.swing.event.TableColumnModelListenerと
そのメソッドcolumnSelectionChanged(ListSelectionEvent e)
あたりが使えるのでは?
やったこと無いので責任は取れないが。
それにこの方法だと列の選択の変化しかわからないようなので、
やりたいことによっては使えないかも。自信ないのでsage
>>248
2.
javax.swing.table.TableColumnModelListener の
columnSelectionChanged(ListSelectionEvent) とか。
251239:03/06/20 12:40
>>245 Thanx !
252デフォルトの名無しさん:03/06/20 12:41
以下のようにエラーが出るのですが、原因はどんなことが考えられるでしょうか?

Exception in thread "main" java.lang.NoSuchMethodError: main
あれ?252が見えない、、、
NGワードか??
>>252
>>2 でも見ろ。
255デフォルトの名無しさん:03/06/20 13:53
JavaBeans化したクラスから同一パッケージである別のBeans化したクラスを
使おうとすると”シンボルを解決できません”と
エラーがでてくるのですがどうしたらいいのでしょうか?
25640:03/06/20 14:44
>>249-250
二人も同じ事を言ってくだされば心強いです!
寝てお風呂入ったあとにやってみます!
普通「1ソースコード」といったら、「1ファイルにつき」というのと同じ意味ですか?
258デフォルトの名無しさん:03/06/20 23:34
>>255
使うってどういうこと?
Bean b=new Bean();
でも、言われるんなら
コンストラクタがprivateになってる可能性大
259情報モトム(つ-`):03/06/21 00:56
jarをダブルクリックして実行させてるけどProgram Filesとか
Documents and Settingsだと空白が混じってるせいか実行できん〜
他のJREを1.4.1にしてそうなった様な気がする....情報モトム(つ-`)
人の作ったアプリもウゴカンし..
>>259
コンソールからjava -jar Hoge.jar
のコマンドで起動して、エラーをミロ。それで解決する可能性大。
261情報モトム(つ-`):03/06/21 01:05
>>260
それがコンソールから実行するとちゃんと起動するんよ〜
エクスプローラーからダブルクリックすると起動せんのよ〜
スペース混じってないフォルダだったら(もちろんフルパス)
問題ないんだけど...(TT)
>>261
じゃあ、javaw -jar Hoge.jar。
あと、JARを右クリック→プロパティ開く→なにに関連付けられている?
263デフォルトの名無しさん:03/06/21 01:14
ArrayList配列からString型の配列データを得るにはどうしたら良いんですか?
ArrayList配列にはString型オブジェクトが入ってます.

264情報モトム(つ-`):03/06/21 01:16
javaw -jar Hoge.jar ってやると
javaw could not initialize the java virtual machine program will exit
って表示された.......これは一体..
スペースなしフォルダでも同じエラーがでる..
jarプロパティに関連付けられているのはjavawでした (-.-;
265情報モトム(つ-`):03/06/21 01:19
>>263
List list = new ArrayList(); ってやってListに格納して
Iteratorで取り出すといいかも(^-^
>>264
レジストリと現実が整合性取れてないかもな。
メンドイので、JRE全部アンインストールしてからJRE
1.4.1だけ再インストール。王道ですね。
>>265
うんこは氏んでくださいよ ホント
>>263
ArrayList#toArray() で我慢すれば楽
String[]じゃなくてObject[]で返ってくるけど。
どうしてもString[]にしたかったらループで一つずつ格納
>>263
かなり意味不明。ArrayList<String>[]ってことか?
>>265
本気で意味不明。
>>268
オイオイ。
String[] arr=(String[])ArrayList.toArray(new String[0]);
>>265
うんこは氏んでくださいよ ホント
>>270
それ無理
>>272
引数があるからOK(無いとClassCastExceptionになるが)

>>265
うんこは氏んでくださいよ ホント
>>272
オイオイ…マジボケですか…
275デフォルトの名無しさん:03/06/21 01:46
あのー、すげー基本的なことだと思うんですが、
自分ではどーにもならんかったので、質問させて下さい。

Integerの値をStringにしたいんですが、Integer.toStringだと
上位の桁が0だと省略されてしまうんです。
で、例えば2桁固定で上位には0を詰めるようなメソッドって
ないんでしょうか?

今は、しょうがないんで、下みたいにやってます。

 String out = Int2String(hour,10,2)+":"+Int2String(min,10,2)+":"+Int2String(sec,10,2);

 /* Int2String */
 public String Int2String(int i,int s,int l) {
   String str = null;
   str = Integer.toString(i,s);
   for(int ip=0;str.length()<l;ip++){
     if (str.length()<l){
       str = "0" + str;
     }
  }
   return( str );
 }

教えてプリーズ!!
>>275
java.text.MessageFormat

つうかこの手の質問多すぎ。
import java.util.*;
class Test {
  public static void main(String args[]) {
    ArrayList al = new ArrayList();
    al.add("abc");
    al.add("def");
    al.add("ghi");
    String[] strArr;
    strArr = (String [])al.toArray(new String[0]);
    for (int i=0; i<strArr.length; i++) {
      System.out.println(strArr[i]);
    }
  }
}
全角空白は許してね。
Format
279情報モトム(つ-`):03/06/21 01:51
>>266
 やってみます^^;;
>>271
 やっぱキターww
 これって重鎮から聞いたんですが...ww
>>279
そんな重鎮は投げ捨てろ。ゴミだ。
俺はこーやってた

ArrayList al = new ArrayList();
al.add("abc");
al.add("def");
al.add("ghi");
String[] strArr = new String[al.size()];
al.toArray(strArr);
for (int i=0; i<strArr.length; i++) {
  System.out.println(strArr[i]);
}
>>279
仮にイテレータ使うにしても何でいちいちListに入れ直す必要があるんだ
わけわか
283277:03/06/21 01:57
>>281

その例なら、 new String[3] が妥当かと。w
>>283
うんこは氏んでくださいよ ホント
285デフォルトの名無しさん:03/06/21 01:59
>>276,278
JAVADOC見てみました。
説明がながーいので、今からしばらく読んで来ます
多謝!

まじで馬鹿ばっかりだ…シャレニナラン。
>>277>>281はどっちが一般的なんだろう?
&突き詰めていくとどっちが速く動くのかな。
>>281の方がString[]のインスタンスが一つ少ないからいいのかな(実際は差なんかほとんど無いとしても)
前にも書かれてたけど、
質問するような立場の人間がトンチンカンな回答してることが多くない?
たとえば>>265>>272みたいな回答を
初心者が真に受けたらどうすんだ、と。
>>287
最大公約数的に一般的なのは、
Hoge[] array = list.toArray(new Hoge[list.size()]);
だろうな。
290289:03/06/21 02:05
キャスト忘れた…馬鹿の一員です(鬱
291277:03/06/21 02:07
>>287

めんどくせー。(笑)
>>289
一番無駄じゃん
やってみりゃ直ぐ分かるようなことで、いちいちWebに質問あげてくるよう
なアフォ(初心者かどうかはこの際関係なし)がどんな末路を歩もうと、正直
どうでもいい。
>>291の成長はここでストップです
>>292
なんでだよ馬鹿。ArrayListのソース嫁。
296277:03/06/21 02:11
あ、誤爆したよ。
めんどくせーのは>>289 だった。

new String[0] っていうサイズゼロな配列を渡しているのをみて、
「あ、型を指定しているのね」ってのを感じとれるかどうか、
ってことだろ。イディオムっつうか。。
このスレは定期的にこんな惨状になるな。なんでだ?
他の言語の初心者スレはもっとまともなんだが
>>297
Javaは、最近のブームに乗って馬鹿が大量流入してるから。
底辺はVB厨以下。
>>292
>>296
めんどくさくねー。
list.toArray(new Hoge[list.size()]) の new Hoge[list.size()] の参照値が
Hoge[] array に渡ってる。
つまり>>281
String[] strArr = new String[al.size()];
al.toArray(strArr);
の処理を一行にまとめたのと変わらない。

ちなみに>>277には無駄がある(String[]のインスタンス2つ作ってる)。
>>297
> このスレは定期的にこんな惨状になるな。なんでだ?

他のスレも似たり寄ったり
まあ、ArrayList#toArray(Object[])メソッドの挙動が、
経験が少ない人間にはわかりづらいのが本質的な問題なの
かな?

引数自身を変更して戻り値にも同じ参照を返す可能性があ
るなんて、普通の処理ならキモイよな。
つーかintやcharなんかは参照値扱えなくてオブジェクトは参照値しか扱えないような
言語仕様なのはなぜなんだ?よくわからん。コンセプトというか。
これのせいで初心者が混乱するわけだ。
あとString型なんかも、初心者に説明するのがかなりややこしい(初心者は基本データ型と混同しがち)。
303277:03/06/21 02:24
import java.util.*;
class Test {
  public static void main(String args[]) {
    ArrayList al = new ArrayList();
    al.add("abc");
    al.add("def");
    al.add("ghi");
    String[] strArr = new String[] { "0", "1", "2", "3", "4", "5", "6"};
    strArr = (String [])al.toArray(strArr);
    for (int i=0; i<strArr.length; i++) {
      System.out.println(strArr[i]);
    }
  }
}
もっとキモイ一面。
長さ0の配列はimmutableだから、
---
private static final String[] NULL_STRING_ARRAY = new String[0];

public String[] hoge(List list) {
return (String[])list.toArray(NULL_STRING_ARRAY);
}
---
とすることで、無駄なインスタンスが生成されるのを極力減らすことができる


……が、やっぱり俺は>>289のやりかたが一番好きだ。
277は何がやりたいの?
悔しいの?
>>302
性能とOOPのバランス。純粋OOPならプリミティブな変数は必要ない。
でもそれじゃ「常に性能がでない」。開発者に選択権があるのは
シゴク真っ当だと思われ。
307277:03/06/21 02:29
いや、別に悔しくは無いです。
楽しいです。w

わたし的には、あんまりインスタンスの生成数にこだわるより、
見た目すっきりなほうが好き、ってだけです。

そもそも、そんなに効率重視したいなら初めから toArray() とか使わないほうがいいかも、
とか思ったり・・・。
>>303
> String[] strArr = new String[] { "0", "1", "2", "3", "4", "5", "6"};

なんかまどろっこしい書き方だな。
String[] strArr ={"0", "1", "2", "3", "4", "5", "6"};
でいいだろ。
>>304
そんなのわざわざ定数で宣言してある方がよっぽどキモイけどな。
それならまだ>>277の方がマシだろう。

ま、漏れもやるなら>>289がいいと思うが、そもそもそんな処理したことない。
Listの中身をArrays使ってソートしたいときにObject[]で戻すことがあるくらいか。
>>304
せめて EMPTY_STRING_ARRAY にしとけ。
>>308
あまり突っ込まないでやってくれ。荒れるから。
312デフォルトの名無しさん:03/06/21 02:31
DefaultTableModel dtm = new DefaultTableModel(列名[], 行数);
JTable table = new JTable(dtm); でJTableを構築した場合、
dtm.addRow(データ[]); で行が追加できて表示されるのですが、

DefaultTableModel dtm = new DefaultTableModel(列名[], 行数);
DefaultTableColumnModel dcm = new DefaultTableColumnModel();
JTable table = new JTable(dtm, dcm); でJTableを構築した場合は
dtm.addRow(データ[]); をしてもJTableにデータが追加されません。

JDKのドキュメントを見ると、new JTable(dtm) で構築した場合は、
デフォルトでDefaultTableColumnModelを使うみたいですが、
明示的にnew JTable(dtm, dcm)と入れると動きません。

何が悪いのでしょうか。
>>307
当たりですな。ArrayList#get(int)コールでも、コストは大して
変わらん。(アセンブラ invokeVirtual1コール分)
配列に置換する必要がある場合なんて、普通はないな。

生のコレクションだの配列だのをAPIの入出力インターフェイスに
したいというヤツラ(個人的には、そんな定義を書く奴には殺意を
覚えるが)は、TigerでGenericsつかいませう。
>>309
いちいち配列オブジェクトを作って一時的に入れ替えるのもったい
ないので、java.util.Collecitons#sort()使いなはれ。
>>312
ためしにJTable#setAutoCreateColumnsFromModel(true)してみてくれ。
>>312
table.setAutoCreateColumnsFromModel(true) とかするか、

dcm.addColumn(new TableColumn()) を必要なだけやってから
new JTable(dtm, dcm) するか。
317312:03/06/21 02:47
>>315
きたーーーーーーーーーーーーーーーーーーーーーーーーーー!!!
師匠と呼ばせてください。
318312:03/06/21 02:48
>>316
どうもどうも、ありがとうございます。ぺこぺこ。
>>317
よばんでいい。JTableのコンストラクタのソースコード、さっき
読んだだけ。おまいもやってみそ。悩み減るぞ。
320デフォルトの名無しさん:03/06/21 02:54
クラスの中で static の HashTable を宣言し
コンストラクタで new してます。
Aのセッションでnewし、Bのセッションでnewした場合、
同一のオブジェクトになりますか?
また、別のオブジェクトとした場合、
同一セッションで別のbeanからコールしたいときは
どうすれば良いですか?
>>320
勉強する
言ってる事がよくわからないけれど、シングルトンしたいのかしら?
>Aのセッションでnewし、Bのセッションでnewした場合、
>同一のオブジェクトになりますか?

なにとなにが同一なのかよくわからん。
newするたびに新しいオブジェクトなのは当たり前。

>また、別のオブジェクトとした場合、
>同一セッションで別のbeanからコールしたいときは
>どうすれば良いですか?

セッションに格納しときゃいいやん。セッション単位で
シングルトンチックにすればよし。
synchronized(session){
 HashMap map = (HashMap)session.getAttribute("map");
 if(map == null){
  map = new HashMap();
  session.setAttribute(map);
 }
}
HttpServletの話しだよな?J2SE使いは"セッション"を
知らんぞ。質問の仕方考えたほうがいいな、お前ら。
ローカル用語と公用語の区別くらいつけれ。
324320:03/06/21 03:29
質問の仕方がまずくて済みません。
static変数の使い方をお聞きしたかったのです。
Webアプリなんですが、別々のクライアントから接続した場合
別々にクラスをインスタンス化し、別々のHashTableが作成されるとの認識だったのですが
そのHashTableをクリアした時に、他のHashTableもクリアされる
(つまり同一化している)と言われ、それがstatic宣言しているせいだと。

なんとなく、??でしたので、質問させていただきました。

>>323
場違いでいたか。済みません。
現状は、その方法でクラス本体をセッションに乗っけてます。
別々になってほしいんならstaticじゃいかんだろ。

ついでに、staticな変数を初期化するときはStatic Initializerでやろうな。
bmp なんかの画像の一部分だけを切り取って表示するにはどうしたらいいんでしょうか?
何を見たらいいかのヒントだけでもいいので教えてくらはい。
327264:03/06/21 07:14
どうも、質問者の264です。

Java初心者でどうも基本的なことが良く解らないんです。
Javaでは、newキーワードを使わないとオブジェクトにならないというのですが、
じゃあ、最初に何で配列に値が入れられるのかな?とか思うのですよ。
値というのはオブジェクトじゃないのかな?と。

あ。値すらもスケルトンなのかな。
でも、そうすると、値の一時的に入ってるメモリは何なのかな?
とか思ったりするわけで、ここら辺は無視すべきですか?
newはSmalltalkだか、shimuraからあるらしいですが、オブジェクト指向言語と
手続きが他言語だと、メモリの概念の基本部分で混乱しますね。
newする以前に値が出現しているのに、newしないとオブジェクトにならないし。

ああ。newはポインタということですか?
それで全て参照渡しな訳ですかね?
328264:03/06/21 07:27
String[] arr=(String[])ArrayList.toArray(new String[0]);
この方法でうまくいきました。

String[] arr=(String[])ArrayList.toArray(new String[ArrayList.size()]);
しなくて良いのかな?とか思いますけど。
配列0で初期化してるのにそれ以上に大量のデータを入れてオーバーフローとか
しないんですか?
>>328
足りない場合はtoArray()の内部で new String[0] した配列を捨てて
new String[ArrayList.size()] と同じ処理を
(それより遅いかもしれない)リフレクションを使って行う。
>>326
java 一般では bmp は読めないものと思え。
jpg, gif, 古いものでなければ png 可、ぐらいに覚えておけ。

で画像の表示だが、
Toolkit から Image にとりこんで、
Component の paint で Graphics に drawImage するとき、
「指定矩形のみ」のメソッドで描画すればいい
331264:03/06/21 11:02
>>329
ああ。そうなんですか。

念のため聞いておきたいんですが、これってJavaの仕様ですか?
それとも実装なのかな?
>>327
仕様書読め。
http://www.y-adagio.com/public/standards/tr_javalang/

byte short int long char float double boolean はプリミティブ型でありオブジェクトではない。
これらのリテラルは即値であってオブジェクトではない。

String はオブジェクト型。
文字列リテラルは String インスタンスへの参照となる。
コンパイラがそういう仕事をする。
333255:03/06/21 11:29
>>258
書いてくれた様な感じです。
また、そのクラス内のメソッドを記述しても
同様のエラーがでてしまうのです。
JSPからは正常に使えるんですがBeansだと駄目なんです。
コンストラクタはprivateにはしていないと思うんですが。。
334264:03/06/21 11:30
>>332
定義は聞いてない。

実装と動作と仕様を聞いてるだけだよ。
>>334
だから仕様書読めと。
336264:03/06/21 11:39
>>335
ああ?
日本語解るか?
337332=335:03/06/21 11:43
あー配列オブジェクトが何かわからんのか。
JVM の仕様書読んでくれ。
>>336
お前の日本語が不自由なだけだと思うが。
それとも釣りが趣味でいらっしゃる?
>>264
JavaAPIの仕様は、すべて公開されている。下を読んで自分で判断しろ。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/util/ArrayList.html#toArray
何だ、 264 じゃなくて 263 じゃないか
>>327
いろんな基礎知識を、間違って理解している。
配列という言葉を知ってるのに、配列とは何なのかが分かっていない。
なのに "Java だと" どうこう、という話にすり替わってしまって混乱している。
java 初心者というより生半可なプログラミング初心者だということを自覚した方がいい。
専門2年目。

JABA言語は、入門書を一通り読み終えて、理解。

エクセリプスで、適当にメモ書きで設計して、
簡単なJSP/JEE2システム作れる程度です。
Apache/アヴァロンとか、PHP4とか。

COBOLは基本情報のときに勉強した。あれは簡単で自由度が低かったけど好きだった。
来年度からCOBOL.NETで仕事です。

俺もそんな出来る方じゃないけど、PG志願の学生の平均は超えてるかなぁ、と。(UNIXマスターだし)
しかし、無知で入ってそれなりにこなす大学生もかなりいるから、
やっぱり全ては「センス」じゃないのかね?現時点のレベルはあんまし気にしない。
(ただ、学生時にHTML入門を挫折してしまうヤツはちょっと難しいと思うけど)
とりあえず今は女よりJDK1.5のことで頭がいっぱいです (class Age{ void PG(){int 24;}} )
>>342はネタ
コピペか。
345デフォルトの名無しさん:03/06/21 15:17
  new のこーいう使い方ってあるんですか?
  TGForEachNode tgforeachnode = ad. new TGForEachNode() {
   public void forEachNode(Node node)
   {
    //
   }
  };
>>45
ある。あるからこそ、お前が例として出せる。
が、なんだ? その ad. っていうのは。汚いな。
javax.xml.parsers.DocumentBuilder
ってデザインパターンのBuilderパターンが適用されているんでしょうか?

JBuilderやC++Builder
ってデザインパターンのBuilderパターンが適用されているんでしょうか?
>>347>>348 で満足しろよ
350デフォルトの名無しさん:03/06/21 15:31
Body Builder
ってデザインパターンのBuilderパターンが適用されているんでしょうか?
35140=248:03/06/21 15:33
>>248-249
おっしゃる通り、同じ列を選択した場合、ツールバーのボタンは反応しません。
うーん、初心者がやってはいけない領域なのだろうか・・・
なんでTableColumnModelがあって、TableRowModelがないのでしょうね?
Excelみたいな表計算ソフトを作るのも楽になりそうなのに。。。
352345:03/06/21 15:33
これを普通の書き方にしたいのですが、、、
  ActionListener actionlistener = jpanel2. new ActionListener() {
   public void actionPerformed(ActionEvent actionevent)
   {
   }
  };

35340=248:03/06/21 15:43
>>352
http://park.ruru.ne.jp/ando/work/who/html/swkoma.html#doc1_0
ここに9個あるので好きなのを使ってください。
>>352
それもかなり普通な書き方だぞ。
jpanel2. はきちゃないけど。
355345:03/06/21 15:50
こんなのもあったりして悩んでいます。そのほかdouble型もあります

boolean b = false ;
  ActionListener actionlistener = b. new ActionListener() {
   public void actionPerformed(ActionEvent actionevent)
   {
   }
  };
356345:03/06/21 15:57
エラーはこうでます、、
ActionListenerはbooleanクラス内のネストしたクラス、またはインターフェイスではありません。
限定クラスインスタンス生成式、で、かつ、匿名、ってやつか?
358354:03/06/21 16:17
>>355
さすがにそれは間違いだ。
それに、>>354 はおかしかった。見落としてた。反省。

仮に ClassAD という手作りクラスがあって、さらに内部クラスに TGForEachNode というのがあった場合、
そしてさらに TGForEachNode を継承して名前を付けない(それを匿名という)クラスを作り、
さらには同時にインスタンスも作りたいとき、
>>345 のような書き方ができる。正しくは new ClassAD.TGForEachNode() { ... } と書く。
ClassAD のインスタンス ad があった場合は new ad.TGForEachNode() でも ad.new TGForEachNode() でもいいが、
どっちも汚い書き方。

ActionListener は API の標準クラスで、何かの内部クラスではないから、
普通に new ActionListener() { ... } して匿名の継承クラスを作るか、
implements した名前付きクラスを作るのが正しい。
359354:03/06/21 16:20
>ActionListener は API の標準クラスで、何かの内部クラスではないから、
クラスじゃねーやインタフェースだ。まぁいいか。

早い話が、>>355 は b. が余計なだけだが、
いったいそのソースが何故そんな書き方をしているのか理解に苦しむ。
ヒト脳の奥深さに圧倒されそうな気がするんで詳しく知りたくは無いけど。
360345:03/06/21 16:21

ありがとうございました。
もう少しがんばってもう一踏ん張りしてみようと思います
>>358

>ClassAD のインスタンス ad があった場合は new ad.TGForEachNode() でも ad.new TGForEachNode() でもいいが、

ほんと?
前者でやってみたらエラーになるよ。
362354:03/06/21 16:28
あれ? 俺、何かと間違ってるか?
ごめん。死ぬわ。
363デフォルトの名無しさん:03/06/21 16:35
ストリームから一文字読み込むのにReaderのreadを使えますが、
一文字読み戻すことはできないんでしょうか?
Cのungetcみたいな。
>>363
PushbackReader 使えば unread 出来ます。
mark, reset ってのもありまっせ
366デフォルトの名無しさん:03/06/21 16:54
>>364, 365
すばやい回答どうもありがとうございます。
ずっとCをやっていて、最近Javaをはじめましたが、
入出力にかかわるクラスがいっぱいあって混乱してます。
>>351
> おっしゃる通り、同じ列を選択した場合、ツールバーのボタンは反応しません。

「同じ列を選択」したときって、イベント来てる?
イベントが来てるなら大本の JTree から選択範囲貰って判断すれば良いだけだと思うんだけど。
368教えて下さい:03/06/21 17:12
最近Javaを勉強している初心者です。
Javaサーブレットで、AccessのDBを使用したいのですが、
sun.jdbc.odbcドライバというのはどこでダウンロード出来るのでしょうか?
>最近Javaを勉強している初心者です。

そういう方はサーブレットに手を出すより先に憶えることがあると思うんですが。
手順を飛ばしすぎですよ。
Access + JDBCで検索すると、
一番最初に、以下のページがヒットするわけだが。

http://www.nihon-eng.co.jp/c-break/TechNote/tomcat/TCAT41_DB.htm#accs_jdbc
371368:03/06/21 19:33
>>370さん、出来ました!ありがとう御座います。
JDBC + ODBC + Jet で検索してたんでそのページが発見出来ませんでした。

・・・逝って来ます
372デフォルトの名無しさん:03/06/21 21:01
javaはいろいろな国の言葉を使うためにUnicodeを使いますが
http://www.unicode.org/の日本語版って知りませんか
Fontを使うときMS明朝体しか知らないと不便すぎるので誰かおしえて・・・
373264:03/06/21 21:13
うおっ。
正直スマンカッタ>>all

じゃ。
37440=248:03/06/21 21:30
>>367
イベント来ていませんねー・・・

関係ない話ですが、このイベントは一度に二回呼ばれるんですね。
>>332
あー、Javaやるやつはこれ読んでおいたほうがいいね。
なかなか判りやすいし。
>>372
おいおい、フォントと文字コードは関係無いじょ。
377347:03/06/21 23:06
>>349
名前なんてその程度のものであって、クラス名からパターンを判断するなってことですね。
満足しときます。
378デフォルトの名無しさん:03/06/21 23:18
>>376
Fontクラスのコンストラクタの第二引数に文字の種類を指定できます。
37940=248:03/06/21 23:33
JTable項目の選択/非選択によりツールバーのボタンのON/OFFですが、
超卑怯くさいですができました!!!

ツールバーのボタンを押した際に、
table.clearSelection(); を行うことで選択を解除することでできました。

しかし、この方法では、ツールバーのボタンを押して
連続で行を削除することなどができません。
急場しのぎですね。
380デフォルトの名無しさん:03/06/21 23:37
class と public class の違いって何?
classだけだとクラス名とファイル名が違っても大丈夫だけど
public classだとコンパイルできないから
ただの省略可能ってやつではないみたいだ。
でも、クラスになった後はどっちも同じように
使えてるような気がする。
381デフォルトの名無しさん:03/06/21 23:41
public class ではなくてpublic と classです。publicはどこからでも
アクセス可能な修飾子でパッケージ外からアクセスできます。classだけたと
デフォルトになって同じパッケージからしかアクセスできません。
382デフォルトの名無しさん:03/06/21 23:43
あとpublicは同じソース内に1つしかつけられません。
>>379

ListSelectionListener l = new ListSelectionListener(){
 public void valueChanged(ListSelectionEvent e){
   //選択変更検出。
 }
};
table.getSelectionModel().addListSelectionListener(l);
table.getColumnModel().getSelectionModel().addListSelectionListener(l);
38440=248:03/06/22 00:14
>>383
神降臨きたーーーーーーーーーーーーーーーーーーーーーーーーーー!!!

前にvalueChangedを見かけたとき、
セルの値を変更したら反応するのだと勝手に思ってしまいました。

やったーーーーーーーーきたーーーーーーーーーーうわーーーーーーーーのわーーーーーーーーーーーー
教えてください・・。
JRadioButtonを拡張したクラスを作るとき、選択項目が変更されたときに呼び出される
リスナーをimplementsさせたいのですが、何をimplementsさせればいいのでしょうか。。
ItemListener+itemStateChanged()じゃダメなのでしょうか。
だれか・・。
386デフォルトの名無しさん:03/06/22 00:44
>>382
ソースファイル名と同じにしないといけないから、1つしか作れん罠
387デフォルトの名無しさん:03/06/22 01:28
public interface A {
 public static class A1 { }
 public static class A2 { }
 public static class A3 { }
}
>>385
Button だったら ActionListener じゃないかな。
389デフォルトの名無しさん:03/06/22 02:40
っていうかよ、
おまえら少しは本買って勉強スレよ
金なきゃ図書館イケ
390デフォルトの名無しさん:03/06/22 03:35
今、ホームページでjavaを使って、0,1秒ごとにスクエアのウィンドウを大きくしたいんですけど
どうすればいいんですか??
教えてください。。。
391デフォルトの名無しさん:03/06/22 03:55
マジレス
スクエアってなに?
ブラウザの部品か?
なんかJavaScriptのにほいがプンプンするのですが・・・
392デフォルトの名無しさん:03/06/22 06:21
XEmacsでJava書いてこそJavaプログラマと呼ぶに相応しい。
>>392
まさか。
394デフォルトの名無しさん:03/06/22 09:33
>>391
そうです。
スクエアは四角です。
ホームページを起動したときに別窓で四角を表示して大きくしていきたいんですけど、、、
javaとjavascriptはちがうものなんですか??
初心者ですみません、、、、
395_:03/06/22 09:38
396385:03/06/22 09:44
ActionListener,ChangeListenerなど試しましたがダメなのです・・。
JCheckBoxならItemListenerをimplementsでイケるので同じやり方でいけると
思ったのですが。
397385:03/06/22 10:24
と思ったのですが、やっぱりItemListenerでイケました。
凡ミスでした。。
失礼しました。
>394
JavaとJavaScriptは全然違う
ブラウザの別窓云々はJavaScriptなので、
WebProg板あたりで質問してくれると答えが返ってくるかと思う

でもスクエアとか四角じゃ誰もわからないような気もするが
ブラウザの別ウィンドウのことなのか、HTML内のOBJECTかAppletなのか、SVGなのか・・・
399デフォルトの名無しさん:03/06/22 14:42
マ板・Linux板に入れないのは漏れだけでつか?
400デフォルトの名無しさん:03/06/22 14:50
>>399
Mac版と同じサーバーだね。
新G5Macの祭りでサーバー落ちたらしい
なんでも最速PCより速いMacintosh発表とか
401デフォルトの名無しさん:03/06/22 15:14
javaでヘッダーのuser_agent を指定したHttpリクエストを送るクライアントプログラム作りたいんですけど、
socketクラスとHttpURLConnectionクラスどちらを使えばいいですか?
お好きなほうで
403デフォルトの名無しさん:03/06/22 15:29
明日sunのjava programmer認定試験を受けるため、しょうえい社の
参考書についてたiStudyで勉強中ですが。この問題と解説がわかり
ません。だれかおしえてください。

【問題】
次のうち、Javaのクラス宣言として正しくないものはどれですか
(当てはまるものをすべて選んでください)。

【選択肢】
a. class FastClass extends Thread
b. public synchronized class FastClass extends Thread
c. public abstract class FastClass
d. private protected class FastClass

【正解の確認】
whileステートメント、do-whileステートメントとも、条件判断の結果は
booleanにならなければなりません。
「public synchronized class FastClass extends Thread」は変数tが
boolean型ではないのでコンパイルできません。
「private protected class FastClass」もコンパイルできません。
変数xの宣言は、条件判断を行う直前までに行わなければなりません。
たとえば、次のようにします。

int x;
while(x > 0) {
x = 1;
x--;
}

>>403
答えはcとdだ。以上。
>>404
おいおい…
>>403
解説が意味不明なだけで答えはわかるんでしょ?
synchronizedなclassってどんなん?
>>403
誤植だろ。時間があったら翔泳社にメールで教えてあげるといいよ。
>>407
複数のインスタンスからのメソッド呼び出しとか変数書き換えがなぜか排他的に行われるのだろう。
410デフォルトの名無しさん:03/06/22 15:52
>>409
いや、それを言うなら
そのクラスのインスタンス参照がどこかにある限り
そのクラスは他から使えないとか・・・

411デフォルトの名無しさん:03/06/22 15:53
403はいまだによくわかりませんが。
これもわかりません。

【問題】
次のプログラムを実行したときargs1とargs2の値はどうなりますか?

1. String args1 = "String";
2. String args2 = "copy";
3. System.arraycopy(args1, 0, args2, 4, 6);

【選択肢】
a. args1:Stringcopy
args2:copy
a. args1:String
args2:copyString
b. args1:copy String
args2:copy
c. args1:String
args2:Stringcopy
d. args1:
args2:

堂々と著作権違法を犯す阿呆がいるスレはここですか?
413デフォルトの名無しさん:03/06/22 15:55
え、誤植ですか。。。5分くらい悩んだのに
>>411
d
415デフォルトの名無しさん:03/06/22 15:56
>>413
どう考えても、題意と答えがバラバラじゃんかよ
そのぐらい分かれよ
416411:03/06/22 16:01
>>414
答えはbです。
>>411
System.arraycopy に String 突っ込んだら
ArrayStoreException 食らうはずなんだけど…
>>412
まあ、これなら議論のための引用の範囲かと。

args1:String
args2:copy
オマケ:ArrayStoreException
>>419
だよね。変だ変だとは思ってたんだ。
421411:03/06/22 16:21
>> 408
謝礼くれるならメールするんだけど。
こういうのってもらえるのか?
糞本掴まされた愚痴はよそでやれ
ウィンドウの右上の×ボタンを押した際、終了確認を行いたいです。
WindowsListenerのwindowClosing(WindowEvent evt)で下記のようにしましたが、
NOを選択するとプロセスは終了しないでウィンドウは消えないです。

//ソース
int nRetValue = new JOptionPane().showConfirmDialog(null, "終了しちゃうよ?", "終了確認", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE);

if(nRetValue==JOptionPane.OK_OPTION){
 frame.this.setVisible(false);
 frame.this.dispose();
 System.exit(0);
}
else{
 //なにすればいいんだろう・・・
}

elseのところで、show()やSetVisible(true)をやったのですが、だめでした。
どのようにすればいいでしょうか?
>NOを選択するとプロセスは終了しないでウィンドウは消えないです。
「ConfirmDialogでNOを選択すると、プロセスは終了せず、ウィンドウは消えます。」
の間違いです。よろしくおねがいします。

>>424
JFrame#setDefaultCloseOperation(int)
426424:03/06/22 17:05
>>425
なるほど、
setDefaultCloseOperationはWindowListenerを作らなくても終了できるようにするだけでなく、
終了させない効果もあったんですね。素早い返信どうもありがとうございました。
427319:03/06/22 17:35
>320
知らんかった、恥っ
でも非Javaではそんなに遅く感じないな
428427:03/06/22 17:36
誤爆スマン
スレ違いの上に遅レスなのに敢えて書かせてもらうが
翔泳社のSJC-Pの本は糞。誤植が多い上に記述不足。マジで最悪。
ま、こんな本買っても受かる奴は受かるがな。
430デフォルトの名無しさん:03/06/22 23:54
JLSのほかに何が必要?<本
>>429
まじで同意
スレ違いの上に遅レスなのに敢えて書きたい気持ちも分かる。

最初に買ったSJC-P本がそれだったんだけど、金捨てたようなもんだった。
432-:03/06/23 00:48
スミマセン教えて下さい。
数値を0001と出力させたいのですが、1しか出力できません。
書式があるのでしょうか
>>432
java.text.DecimalFormat
かな?
435-:03/06/23 00:56
))433
ありがとうございます。しらべます。
JAVAMAILでBCやBCCは使えるのですか?
もしできるのならやり方を教えていただけるとうれしいです。
>>436
message.addRecipient(Message.RecipientType.TO, toAddress);
message.addRecipient(Message.RecipientType.CC, ccAddress);
message.addRecipient(Message.RecipientType.BCC, bccAddress);

好きなように追加すれ。
438デフォルトの名無しさん:03/06/23 17:03
>>429
そうなんですか。早速買いなおさなければ・・・。

ところで、質問があります。
最近いくつかSwingアプリをつくって何人かに見てもらったんですが、
setLayout(null)はあんまり勧めないって言われました。
サイズ変更が難しいし、他に問題点あるといわれました。
(サイズ変更が難しいこと以外は正直よく分からないですが。)
最近は90%くらいの確率でnullレイアウトを使ってるんですが。(まずいのかな?)
可能な限りレイアウトマネージャを使った方がいいんですか?
正直困ってます。
439デフォルトの名無しさん:03/06/23 18:52
>>438
人に聞かないと何も出来ないの?
人に言われたことしか出来ないの?
440デフォルトの名無しさん:03/06/23 18:55
perlのjoinのような連結メソッドってありますか?
String[] を「,」で結合したいのですが
>>440
作れば?
俺の会社ではListにjoinメソッド追加したようなクラス作って使ってるよ。
>>440
標準 API では提供されて無いので自作してくらさい。
443440:03/06/23 19:04
>>441
>>442

やっぱないですか
ちょうど今作ってるところでした
私は最近JAVAプログラミングの勉強をはじめたのですが
JAVAについていろいろ調べているとJAVAにも
JAVAアプレット、JAVAアプリケーション、JAVAサーブレット、iアプリ用のJAVA
などなどいろいろあるようなことを知りました。

いったい何から勉強したらいいのでしょうか?サーブレットが人気があるとか
なんとか…。それから勉強したほうがいいのかな。
ちなみに私はプログラム初心者です。
>>444
プログラムの勉強を止めることをオススメする。
>>444
アプリケーションからやれい。
アプレットも iアプリもそのあと。
サーブレットはずっとあと。ただし目標にはすえてよい。
プログラムの初心者ならアルゴリズムをまず先に。

447440:03/06/23 19:28
できたヽ(´ー`)ノ


public class JoinString {
  private static StringBuffer sb;

  public static String joinString(String[] sa, String sj){
   sb = new StringBuffer();
   for(int i = 0; i < sa.length; i++){
     sb.append(sa[i] + (i == (sa.length - 1) ? "":sj));
   }
   return sb.toString();
  }
}
>>446
アドバイスありがとうございます。
がんばって勉強してみます。
とりあえず目標は脱初心者かな。
showConfirmDialogのデフォルトボタンを変更するにはどうすればいいでしょうか?
もう引数が足りなくて・・・
>>447
センスねぇな
451デフォルトの名無しさん:03/06/23 21:55
JavaのSQLで,COUNT * や MAX(列名) をやっているのですが,
実行した後に生成される列名が分かりません.

String sql;
Statement stmt;
ResultSet rs;

String sql = "SELECT COUNT * FROM 表名";
rs = stmt.executeQuery(sql);

rs.next();
rs.getInt(/*生成される列名がわかりません*/);

よろしくおねがいします.
>>451
列番でとれ。< Java 側からのアプローチ
でなきゃ as で自分で列名つけろ。<SQL 側からのアプローチ
>>449
まず JOptionPane の API をよく読んで、
それで分からなかったらやりたいことの例をきちんとあげろ。
454デフォルトの名無しさん:03/06/23 22:09
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class Clock extends Frame {
public Clock() {
setSize(400,300);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
public void paint(Graphics g) {
int hour,minute,second,milli;

GregorianCalendar t=new GregorianCalendar();

hour = t.get(Calendar.HOUR);
minute = t.get(Calendar.MINUTE);
second = t.get(Calendar.SECOND);
milli = t.get(Calendar.MILLISECOND);

g.drawString(""+hour+"時"+minute+"分"+second+"秒"+milli,20,40);
}
public static void main(String[] args) {
Frame w=new Clock();
w.show();
}
}
こいつをリアルタイムで動くようにするにはどうしたらいいですか?
show(); のあとにこんなん足す。

new Thread(new Runnable() {
 public void run() {
  while (true) {
   try { Thread.sleep(1000); } catch (InterruptedException ex) {}
   repaint();
  }
 }
|).start();

があんまり好もしくないなぁ。
やることは他にもある。
456455:03/06/23 22:16
まちがった。すまん。
コンストラクタの最後だな。
あと最後の行は
}).start();
457デフォルトの名無しさん:03/06/23 22:38
>>439
あんたのような批判にすらならないけなししかできない馬鹿たちに
聞いた僕が馬鹿だったよ。
いいよGridBagLayout使えるようにいくつかプログラム作って
その後はなれたnullで作ることにする。
もう二度とここでは聞かない。
>>457
一緒にしないでくれ。放置した俺が悪かったから。
俺が答えてやるよ



好きにやれ
良い判断だ。
二度とくるなよ。
460451:03/06/23 23:05
>>452
"SELECT COUNT (*) FROM 表名";
rs.getInt(0);
だと、「記述子のインデックスが無効です」と出て、

"SELECT COUNT (*) AS '新列名' FROM 表名";
rs.getInt("新列名");
だと、「Column Not Found」と出ます。

何が悪いでしょうか?
461デフォルトの名無しさん:03/06/23 23:08
上級者向けの質問だと思うんですが。

ArrayList や Vector に格納されたオブジェクトに順にアクセスしていく
方法で一番速いのは。

Object[] objs = list.toArray();
for(int i=0; i<objs.length; i++){
 Object o = objs[i];
}

これでOK?
>>461
>上級者向けの質問だと思うんですが。
初心者レベルの質問だよ…

質問する前に 10000 * 10000 回ループとかで自分で計測しろ。
複数のJVMで計測すれば傾向はわかるだろ。
463デフォルトの名無しさん:03/06/23 23:17
>>454,455
GraphicsはちらつくのでImageをバッファーで使用したほうがいいかと。
>>460
SQLの勉強し直せ
スレ違い
465デフォルトの名無しさん:03/06/23 23:27
>>462
HashMapはマップのサイズと無関係に取得時間は一定である。
らしいのでTreeMapでキーを管理する。TreeMapはキーを常に並べ替えた順に
保つらしい。Mapクラスを実装する適役としてTreeMapを使う。
とある。俺にはわからん!!!
上級者には簡単だろ!
>>465
計算量は同じだけれど、問題は係数な訳だ。
467デフォルトの名無しさん:03/06/23 23:45
>>466
おなじか?
ArrayList や Vector はポインタを順にたどっていくけど
TreeMapはlog(n)の時間コストを保証するをAPIにあいてあるぞ!!!
468デフォルトの名無しさん:03/06/23 23:48
JDK1.5必須

for(int i = 0; i < 10000; ++ i) { list.add(i); }
for(int x = 0; x < 10000; ++ x) {
for(int y = 0; y < 10000; ++ y) {
Object[] objs = list.toArray();
System.out.println(objs[y]);
}
}
>>461
> Object[] objs = list.toArray();
そもそも、ここで配列コピーが発生しているわけだが。

>>466
計算量は同じじゃないでしょ。
HashMapの計算量は、ハッシュ値が適当にばらけていると仮定すればO(1)、
対するTreeMapはO(log n)だ。
470デフォルトの名無しさん:03/06/24 00:03
>>457
かわいそうに…ヨチヨチ
知っている話だと、Look and Feelを変更すると
コンポーネントのサイズががらりと変わって
レイアウトがぐちゃぐちゃになる、っていうのを聞いたことがある。
javax.swing.UIManager.setLookAndFeel(String)を実行すると
わかるんじゃないかな。引数は、Windowsなら
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel"
を指定してみて。
あと、GridBagLayoutよりはBoxLayoutでTcl/tkっぽく
並べた方がやりやすいと思うよ。
471デフォルトの名無しさん:03/06/24 01:53
実際に仕事してるプログラマーって仕事中、本やウェブ参考にしながらコーディングしてるの?
詰まったりしたら1日数行しか進まないこともあるの?
ぶっちゃけ、あるよ。
473デフォルトの名無しさん:03/06/24 02:31
キャストに関して質問があります。
objというオブジェクトがあるとき、そのクラス名が『obj.getClass().getName()』で
String型として呼び出せるのですが、このオブジェクトを『obj.getClass().getName()』型に
キャストするどうすればよいのでしょうか?
また、そのようなメソッドが用意されているのでしょうか?

(クラス名)objと手動でキャストするのではなくて、ということです。

どうか教えていただけないでしょうか、お願いします。
474デフォルトの名無しさん:03/06/24 02:39
質問です。
jtext.getText().length()で文字列の長さを読み取ると、
全角文字も半角文字も長さが1になってしまいますが、
これを全角文字=2、半角文字=1と判定するにはどうしたらいいでしょうか。
UNICODE関連だということはわかるのですが・・・
>>473
> このオブジェクトを『obj.getClass().getName()』型に
> キャストするどうすればよいのでしょうか?

聞いたこと無い型だなぁ…
476473:03/06/24 03:17
>475
日本語が不自然ですいませんでした。
objオブジェクトがあったときに、obj.getClass().getName()でオブジェクトの
クラス名が分かるのですが(String型として)、そのクラスにキャストするにはどう
すればよろしいですか?
という意味でした。
477デフォルトの名無しさん:03/06/24 03:34
>>476
そのクラスって最初からわかってれば

(クラス名)obj
でOKだけど
質問の意味を考えると
何がはいってるかわからないのか?
instanceof使うとか?
478_:03/06/24 03:36
479デフォルトの名無しさん:03/06/24 06:18
よくWindowsの設定の画面では、
OKボタンだけ太枠になっていて、どこでもエンターキーを押せばOKを押したことになりますが、
Javaではそれをどうやって実現するのでしょうか?

JButtonのメソッドで、名前がsetで始まるもので、引数がbooleanのものはすべて試したのですがだめでした。
もしかして、あらゆるところに(JTextBoxとか)キーボードのリスナーを付けなければいけないのでしょうか?
480_:03/06/24 06:20
>HashMapはマップのサイズと無関係に取得時間は一定である。
>TreeMapはlog(n)の時間コストを保証するをAPIにあいてあるぞ!!!

それ、n(アイテム数)が増加すると比例して遅くなるってことじゃん。一定ではなし。
あなたの開いたAPIヘルプ、かっこいいよ。
482デフォルトの名無しさん:03/06/24 07:39
requestFocus
public void requestFocus()
クラス Component の記述:
このコンポーネントに入力フォーカス取得を要求し、
またこのコンポーネントが属する階層の最上位のコンポーネントを
フォーカス設定ウィンドウとします。
許可対象の要求に対してこのコンポーネントが表示可能であり、
可視であり、フォーカス設定可能でなければなりません。
この要求を実行するために必要なすべての処理が行われますが、
場合によっては不可能なこともあります。
開発者側では、このコンポーネントが FOCUS_GAINED イベントを受け取るまで
フォーカス所有者ではないことに注意する必要があります。
このコンポーネントのトップレベルウィンドウにフォーカスが設定できないために
要求が処理されなかった場合、
この要求は記録され、後でユーザがウィンドウにフォーカスを設定する時に許可されます。
このメソッドはフォーカス所有者にコンポーネントを設定するためには使用できません。
この目的では KeyboardFocusManager.clearGlobalFocusOwner()を使用します。

このメソッドのフォーカス動作はプラットフォームによって異なるため、開発者側ではできるだけ requestFocusInWindow を使用することを強くお勧めします。


オーバーライド:
クラス Component 内の requestFocus
関連項目:
Component.requestFocusInWindow(),
FocusEvent,
Component.addFocusListener(java.awt.event.FocusListener),
Component.isFocusable(),
Component.isDisplayable(),
KeyboardFocusManager.clearGlobalFocusOwner()
483デフォルトの名無しさん:03/06/24 07:54
>>469

やはり、toArray してから回すのが最速ですた。(メソッド呼び出しのコストの方が高いらしい)
>>476
そうじゃなくて君のやりたいことが不自然なんだよ。
キャストしてそのあとどうするんだ?
考え付くこととしては・・・こんなようなことしたいのか?
public void func(Object obj) {
 func2((調べたクラスでキャスト)obj);
}

public void func2(String str) { ... }
public void func2(Double double) { ... }
public void func2(Point pnt) { ... }
public void func2(Rectangle rect) { ... }

無理だ。
485デフォルトの名無しさん:03/06/24 11:28
>>479
JRootPane#setDefaultButton()
>>474
過去スレで
String#getBytes()でbyte配列を取ってきてその長さを得る、
という方法が紹介されていたような。
これだと何かまずい点があったと思うが忘れた。
完璧を目指すならjava.lang.Character.UnicodeBlock#of()でも使って
地道に調べるのかねぇ。
>>483
List#get(int)は試した?
ループ内でキャストが必要になるけど、これが最速だったはず。
toArrayは>>469の意見同様、配列コピーしなくちゃならないので、
それなりに負荷が高いはず。
>>486
どんな時にまずいんだろ?
結合文字とかその辺?
EUC-JPだと3バイトの文字もあるとか?
JISだとESCが入ったり、エンコーディング次第でバイト列違ってくるから?


……いろいろありそうだな。
>>485
できました。助かりました。ありがとうございました。
490デフォルトの名無しさん:03/06/24 14:00
Javaで日本語って相当不便じゃありません?
IOとかいろんなところで文字化けだらけ。
>>490
他の言語使ってもエンコーディングとか文字集合とかの勉強して無いと化けるけどね。
>>487
プログラム内容によって使い分けるべきところ。
基本的に配列アクセスの方が速いはず。

>>490
そんなことはないと思うけど。
箱庭環境でしか開発したことないのなら、そう思うかも。
>>492
toArray もかなりのロス食らうけどね。

ハッキリ言って、そんなに速度が気になるなら
ArrayList を使うのを止めるべきかと。
494デフォルトの名無しさん:03/06/24 17:19
Shift-JIS ⇔ UNICODE のテキスト変換どうすればいいですか?
基本的にはInputStreamReaderとOutputStreamReaderでやるの?
>>494
きみはそれでずばりと答えてもらえるとでも思ってるのかね。
どこに ShiftJIS の何 (ネットワークリソース? ファイル? プログラム内で生成した byte列?)があって、
unicode の何をどこにどうしたいのだ。
496デフォルトの名無しさん:03/06/24 17:51
UNICODEってワードサイズなのにbyte列とか出てきて・・・、
もう訳わかりません。
基本的にはファイル→FileReader
ネットワーク→Socket→InputStream→InputStreamReader
で同じことなんじゃ?
unicodeテキストファイルにできればいいと思います。
>>496
さらに訳わからなくしてあげよう。
サロゲートの考慮もしておいた方がいいと思うぞ。
JSP のサーブレットに変換されたソースを見るにはどうすれば良かったですか?
Tomcat です。
>>498
%TOMCAT_HOME%work
の下にあると思うが。
>>496
こんぴうたはみんな、 byte が一般的な最小単位だぞ。
UNICODE も ワードサイズ(2bytes のことか?) とは限らないし
http://homepage1.nifty.com/nomenclator/unicode/ucs_utf.htm

それはそれとして、
読み込みは Win ならそれでいいかもしれんが、
マルチプラットフォームなプログラミングなら SJIS であると明示的に指定するべき。
しかし FileReader にそんなコンストラクタは無い。API 読んで考えること。

書き込むときには Writer 。これも考え方は同じ。ただし SJIS でなくて Unicode にすること。
そっからあとはケースバイケース。上にあげたリンクと >>497 の点が要勉強だな
で、SJISであれれ?とかいうことになって、Windows-31Jに変更したり、
変換ユーティリティクラスを作るわけだ。

たしかに、最初はこの辺でハマってわけわかんねぇ、とかなるんだが、
一度分かってしまえば別にたいしたことはない。


#それにしても「Windows-31J」が正式名称ってのはなぁ(;´Д`)
>>501
何か数年前に売ってたOSみたいだな・・・。
503デフォルトの名無しさん:03/06/24 21:07
認定試験で

以下のソースコードを見て下さい
Point point = new Point(2,4);
Rectangle rectangle = new Rectangle(point,20,20);
point = null;

PointオブジェクトとRectangleオブジェクトが1つづつ生成さえています。このコードの実行後、
ガベージコレクションの対象となるオブジェクトを選択してください。
1、PointオブジェクトとRectangleオブジェクトの両方
2、Pointオブジェクトのみ
3、Rectangleオブジェクトのみ
4、どちらでもない

で答えは4なんですが、、対象となるで実行するとはいっていません。
私は2だと思うのですが誰かわかりますか?
>>503
いい加減にしろよ・・・
505デフォルトの名無しさん:03/06/24 21:10
普通に考えて4だけど
Rectangle のコンストラクタに
Point,int,int が突っ込めないのでコンパイルエラーって事じゃなくて?
507デフォルトの名無しさん:03/06/24 21:33
showConfirmDialog()での第二ボタンにフォーカスを当てたいのですがどうやればいいでしょうか。
JOptoinPane型のオブジェクトを宣言していろいろじってみたのですが、
「はい」「いいえ」のボタンの取得方法すらわかりません。
何か簡単な設定方法はあるのでしょうか?
なんでこんないい加減な問題ばかりなのかね。
>>507
show 〜使わずインスタンスをいちいち造るなら、
setOptions(Object[] newOptions) があるようだがこれでどうか。
>>473
実行時の型でキャストする方法はない。
あらかじめありえる型を列挙して instanceof で場合わけして
それぞれの型にキャストするしかない。
いつから、Java初心者相手じゃなくてネイティブ馬鹿相手のスレになったんですか?
>>483
> やはり、toArray してから回すのが最速ですた。
ちゃんとClient VMとServer VMの両方で試してみた?

気になったんで、俺も自分で試してみた。
テストコードは以下の通り。
---
import java.util.*;
public class AAA {
 public int testloop1(List list) {
  int sum = 0;
  for (int i = 0, n = list.size(); i < n; i++)
   sum += ((Integer)list.get(i)).intValue();
  return sum;
 }
 public int testloop2(List list) {
  int sum = 0;
  for (Iterator i = list.iterator(); i.hasNext(); )
   sum += ((Integer)i.next()).intValue();
  return sum;
 }
 public int testloop3(List list) {
  int sum = 0;
  Object[] array = list.toArray();
  for (int i = 0, n = array.length; i < n; i++)
   sum += ((Integer)array[i]).intValue();
  return sum;
 }
513512:03/06/24 23:56
 public int testloop4(List list) {
  int sum = 0;
  Integer[] array = (Integer[])list.toArray(new Integer[list.size()]);
  for (int i = 0, n = array.length; i < n; i++)
   sum += array[i].intValue();
  return sum;
 }
 public static void main(String[] args) throws Exception {
  List list = new ArrayList(Collections.nCopies(1000, new Integer(5)));
  AAA a = new AAA();
  for (int i = 0; i < 20; i++) {
   long start = System.currentTimeMillis();
   for (int j = 0; j < 100000; j++)
    a.testloop1(list);
   System.out.println((System.currentTimeMillis() - start) / 1000.0);
  }
 }
}
---
で、Sun JDK1.4.1上での結果は
・HotSpot Client VMでの平均実行時間
testloop1 10.1秒
testloop2 22.2秒
testloop3 5.3秒
testloop4 6.0秒
・HotSpot Server VMでの実行時間
testloop1 1.6秒
testloop2 5.4秒
testloop3 2.7秒
testloop4 3.9秒
ですた。Server VM マンセー!!
# しかし、testloop4 より testloop3 の方が速いってのは、かなり意外だった。
>>506 それ正解
515デフォルトの名無しさん:03/06/25 00:25
っていうか、Javaの入門書って馬鹿なの多いよな
あんなのでよく本出せると思うよな
516デフォルトの名無しさん:03/06/25 01:19
>>515
初心者にウソ教えるのはよくないよね。
分かりやすいように一部を誤魔化すのは、場合によっては
かまわないと思うけど。
まぁCのも多いけどな
VB初心者サイトなんぞ目も当てられんけどな。
519デフォルトの名無しさん:03/06/25 10:51
っていうかさー
っていうかさー
っていうかさー
俺の部屋の本棚は
よく見ると
「技術評論社」
の書籍や雑誌ばかりなんですが
あと、翔泳社数冊です

オライリーは「Javaセキュリティー」しかもってません。
大丈夫でしょうか?
520デフォルトの名無しさん:03/06/25 11:00
2つ(以上)の jpeg 画像ファイルを入力とし、
横に連結した1つの jpeg 画像ファイルを出力するプログラムを書け。
また、指定した位置に連結できるようにもせよ。
なお、perl で書いてもよい。
521520:03/06/25 11:07
板間違えました。
質問があります。

class Foo {
 public static void main(String[] args) {
  new Bar().doSomething();
 }
}

class Bar {
 static {
  System.loadLibrary("hoge"); // hoge.dll
 }
 public native void doSomething();
}

とかある時に、このクラスBarが使用するDLLがシステムプロパティ"java.library.path"上に見つからないとします。
この時、以下のようなコードを追加しても、VMに探してもらえません。何故でしょうか。

class Foo {
 final static String JAVA_LIB_PATH = "java.library.path";
 final static String SEP = System.getProperty("path.separator");
 static {
  // DLLのあるパスを追加
  System.setProperty(
   JAVA_LIB_PATH,
   System.getProperty(JAVA_LIB_PATH) + SEP + "C:\\pathA\\pathB"
  );
 }

 〜 以下略 〜

}
JPanel で自分自身のサイズを取得するのってどうやるんでしょう?
this.getSize() とやってもサイズが出てこないです(;´Д⊂
>523
そのthisは本当にJPanelなのか?

そのJPanelのPeerは作られてるか?
pack()とかsetVisible(true)とかしてからgetSize()してみ。
>>522
System.setProperty() ってちゃんとしたポリシー無いみたいだから
値設定しても反映されるかは key によるみたい。

LOAD_LIBRARY_PATH とかだと JVM 起動時にキャッシュされてる可能性もあるし。
>>522
詳しくないが、経験から >>525 に激しく同調。
JNI 使うのはいいとしても、中にパス書くのはよろしくない設計だよ。
何らかの方法でできたとしても、"もうけもん" じゃないだろうか?
527522:03/06/25 21:57
>>525-526
レスありがとうございます。
そうですよね、普通に考えればやっぱり起動時にキャッシュしますよね。ふぅ。

...ちなみになんであんな事(起動後に動的にパス追加)しようと思ったかと言えば、
要はJavaで簡単なツールを作成していまして...その際にユーザの指定(UI経由)によって、
動的にいくつかのコンポーネント(尚、この言い回しはすごくアバウトにしています)を追加できる
ようにしている為です。
... やっぱ別の手段でいくか。ありがとうございました。
     \     毛       /
  腿  \_  |   _/
          彡彡彡
          ミミミミ クリトリス
         ミミミミ / ̄ ̄ ̄ ̄
         ノ σ ヽ 尿道
       / / ゚ヽ ̄ ̄ ̄ ̄
大陰唇 / //\\ \ 
 ̄ ̄ ̄ ̄  ( ( 膣 ) ←<<<<<<<<<<挿入
      \ \\// /
         `   \/  '
\         *──アナル      
  \_____   \_____/
        /       ⌒\
   __    /  _|     |   |
   ヽヽ   /  /  \    |   |           ,,,,,,,iiiiillllll!!!!!!!lllllliiiii,,,,,,,
    \\|  |____|   .|   |           .,llll゙゙゙゙゙        ゙゙゙゙゙lllll,
     \/  \       |   |           .|!!!!,,,,,,,,       ,,,,,,,,,!!!!|
     | ヽ_「\      |   |、         |  ゙゙゙゙!!!!llllliiiiiiiiiilllll!!!!゙゙゙゙ .|
     |    \ \――、. |   | ヽ         .|     .゙゙゙゙゙゙゙゙゙゙     |
     |   / \ "-、,  `|  |  ヽ       |               |  ヅガッ!!!
  _/   /    "-, "' (_  ヽ  ヽ      .|               |
/    __ノ      "'m__`\ヽ_,,,, ヽ      |               |
`ー― ̄          ヽ、__`/ー_,,,, ゙゙゙゙!!!!!!!lllllllliii|               |
                    \゙゙゙゙゙゙゙!!!!!lllllllliiiii|               |
                      \   ヽ   |               |
                       ヽ   \  |               | ←>>491
 
>>527
java.net.URLClassLoader
クラス変数を継承したクラスで別々の値を持つことは不可能なのでしょうか?
class A {static int a;}
class B extends A {static int a = 10;}
class C extends A {static int a = 20;}
みたいなことをやりたいのです。
もちろんclassAのint aを消せば可能なのですが、
classBのオブジェクトかclassCのオブジェクトかを意識せずに
変数aにアクセスしたいのです。
クラス内からアクセスするならそのクラスの a が使われるし
クラス外からアクセスするなら結局 A.a とか B.a とか C.a としないといかんだろ?
何がやりたいのかよくわからんぞ。
>>530
コンパイルは通るでしょ?覆い隠しが発生するけど。
すなわち A.a == 0, B.a == 10, C.a == 20,

やりたいことって
interface A{ int getA(); }
class B implements A{ public int getA(){ return 10; } }
class C implements A{ public int getA(){ return 20; } }
みたいな事じゃなくて?
>>531
すみません、書き方がおかしかったです。
class Bのオブジェクト全体でひとつの変数、
class Cのオブジェクト全体でひとつの変数を持たせて
それをclass Aのメソッドで扱いたいのです。
同じメソッドなのですが、class Bのオブジェクトと
class Cのオブジェクトでは変数aの内容が違うという…
どうでしょうか
swingとawtの違いってなんですか?
awt: GUI 部品は OS のモノを利用
swing : GUI 部品は Java 製
536デフォルトの名無しさん:03/06/26 01:32
http://www.xlsoft.com/jp/products/jet/jetpro.html
これってJREとか入れなくても単体で動作するの?
>>533
abstract class A { int getA();}
class B {private static int a; int getA(){ return a; }}
class C {private static int a; int getA(){ return a; }}

100%設計が間違ってるので考え直すことをお勧めする。
>>533
アブストラクトな class A で定義したメソッドに、継承クラスごとの違いを反映させたいんだろ?
「継承」を用いるからには、それはコアとなるメソッドのオーバーライドで実現すべきでなかろうか。

むしろ public な abstract メソッドを造って、B, C ではその内部で A の protected メソッドを呼ぶことで代替できる

abstract class A { public abstract void func(); protected void func(int a); }
class B { private static int a; public void func() { func(a); } }
class C { private static int a; public void func() { func(a); } }

こう置換したほうがましだが、もっというと A の中に処理は持たず、
A〜C の外にあった方がずっとよいんではなかろうか。それなら >>537 でよい。
>>537
ありがとうございます。これでできそうです。

>100%設計が間違ってるので考え直すことをお勧めする。
そうなんですか…実はシューティングゲームを作ろうと思っていて
キャラクタクラスをスーパークラス
自機、敵、弾などをサブクラスにしています。
それぞれのキャラのImageオブジェクトをstatic変数に保持して
プログラム起動時に一度だけ画像を読み込みます。
そしてスーパークラスの描画メソッドでキャラクタを描画するのですが、
Imageオブジェクト変数をサブクラス毎に持たせられれば
自動的に適切なキャラクタを描画してくれて便利かなーと思った次第なのです。

もっと上手い方法があったらぜひ教えていただけませんか。
540デフォルトの名無しさん:03/06/26 02:03
質問なんですが
おねがいします
java.lang.Integerの値を
増やしたいときに
Integer a=new Integer(3);
int b=((Integer)a.intValue())+2;
a=new Integer(b);
というように、キャストしないといけないと思うんですが
Integer型のまま、値を増やすことは出来ますでしょうか?
たとえば、うえの「a」に2を足すとしたら
a.plus(2);
とか、できないもんですかね?
自分でクラス書くしかないですか?
最悪だ
>>540
1. そこのキャストはしちゃいかん。
 質問スレで、やってみずに「思うんですが」は無しだ。まずやってみれ。
2. クラス書いてもいいが、Integer は final なので、継承できない。
 万一 Integer の必要な API があってそれに使いたいんだったら役に立たん。
 お手軽に int[1] でも使えば?
>>540
できねーです。Integerは不変オブジェクトです。
Integer a = new Integer(3);
a = a.add(2);
ってとこか。
※これだって new Integer(array[0]) せなならんが。
>>538
ありがとうございます。イケそうです。
クラスの外に出すのはなんかちょっと気持ち悪くて…
>>545
わかるけどな。

ちなみに、ちょっと気合入れたシューティングなら、
敵キャラはいろんな絵や大きさ、自弾もダライアス風ならいろんなのがあるから、
クラス毎に static に持つのは変でねーの。それとも i アプリ?
>>546
敵クラスを作って、さらにそれを継承して敵の種類分サブクラスを
作ろうかなーと思ってました。
移動メソッドをオーバーライドしてそれぞれの敵で独自の動きを出したりとか。
くだらない質問なのですが
なぜプロバイダーは、サーブレットを
使えるようにしてくれないのですか?
対応させるのは技術的に難しいのですか?
>>547
やりたいことの方向性はいいが static の使い方がどうかと思う
>>548
使えるようなところもあるぞ。
負荷があるから&使う奴など CGI に比べりゃごく僅かだから対応しないだけ。
>>550
つまり腐った技術なんですね
間違っても素人向けじゃないわな
553デフォルトの名無しさん:03/06/26 03:28
ハイパーリンクの機能を使えるjavaのapiクラスって
JEditorPaneとその子クラスであるJTextPaneだけですか?
>548

自分でtomcatを使用した経験があるなら、難しいことがわかるだろ。

webコンテナを複数たてるわけにはいかないから、基本的には1つたてるにしても、
各ユーザーごとにwarを用意するのか?
どうやって、コンテキストルートを各ユーザーごとに用意すればよいのか、
まずは君がアイデアをだしなさい。
555デフォルトの名無しさん:03/06/26 04:55
>>554
>webコンテナを複数たてるわけにはいかないから

実際の業務で使ってるところは
Apachの裏でTomcatが2〜3立ち上がってるのあるよな
どうやってるのかしらんけど
556553:03/06/26 04:56
誰か答えてください。
>>539
俺なら画像管理クラス作ってそこの該当画像へのポインタなりインデックスなりを持たせる。
558553:03/06/26 09:45
いいからてめえら早く教えろよ!!!
複数の JToolBar を左右に並べることは無理ですか?
MS Office のように。

FlowLayout に add していくと可能なんですが、
これだとそのコンテナ(たとえば BordeerLayout の NORTH)にしか配置できないので、
左右や下に移動できないのです。欲張りすぎ?
>>493

そんなこと気になるようなら元々Javaを選んでないぞ。

toArray がお得かなと思った。スレッドセーフの必要性が
後から出てくること多くて、toArray 使っておけば、後から
スレッドセーフじゃないとアカンなってことになっても修正
せずに済む。
>>560
toArray() やってる間に add やら remove 呼ばれたらダメそうだけど。
俺、たった今気づいた。
2ch でまともな答えを期待する方が間違ってる。
なぜならまともなプログラマならこんなとこきてる暇ないから。

俺?まともじゃないよ
563デフォルトの名無しさん:03/06/26 12:33
>>562
気づくの遅いな
BufferStrategyクラスを使っていて描画バッファが消失した(contentsLost()の返り値がtrue)のとき、
描画バッファを明示的に回復させる方法はないものでしょうか?
>>555
ポート別に複数立てて、それぞれのポートにコネクトしてるだけじゃないの?
>>529
URLClassLoader って findLibrary 無いみたいだけど。
>>564
VolatileImageの中身がVRAM上に確保されてるかどうかは
ユーザーからはわからないんじゃなかったっけ。
当然その辺の指示も出来ないかと。

中身の画像のことだったら自分で
createGraphics()して書き直すしか。

的外れなこと言ってたらごめん。
568デフォルトの名無しさん:03/06/26 20:14
"2003/01/20"をDateに変換するにはどうすればいいですか?
DateFormat.getDateInstance().parse("2003/01/20");
とすると
java.text.ParseException: invalid Date syntax
になってしまいます。
>567
フルスクリーンとウインドウモードを任意に切り替えられるプログラムを作ってみたのですが、
ウインドウモードに切り替えたときに描画バッファが消失して
そのままずっとcontentsLost()がtrueを返し続け……
という状態になったもので。

ウインドウのサイズを切り替えたりすると直るんですが、
ではプログラム的に確実に直すにはどうしたらいいものかと悩んだ次第で。
>>568
前々スレで既出

807 名前:デフォルトの名無しさん[sage] 投稿日:03/05/08 14:59
794です。
説明不足ですみません。

String sDate = "2004/12/21 10:56:30";
DateFormat sdtFormat = DateFormat.getDateInstance();
java.util.Date sdate = dtFormat.parse(stDate);
SimpleDateFormat formatter = new SimpleDateFormat ("MMM dd yyyy hh:mm", Locale.US);
sDate = formatter.format(sdate);
System.out.println(stDate);

こういう感じでStringでとったものをdate型に変換して実行してみたのですが、
これでは時間が正常に表示されないので困っています。

808 名前:797[sage] 投稿日:03/05/08 15:15
>>806
>>794が月を出力したい形式が
MMMでフォーマットしたものをtoUpperCase()で大文字にしたものでよければ
それでいけるなあと思ってたらそれでOKっぽいですね。

>>794
DateFormat sdtFormat = DateFormat.getDateInstance();

DateFormat sdtFormat = new SimpleDateFormat( "yyyy/MM/dd hh:mm:ss" );
これでいけます。
>>569
contentsLost()がtrueになった後で
if(volatileImage.validate(graphicsConfiguration) == VolatileImage.IMAGE_INCOMPATIBLE) {
/*volatileImage作り直し*/
}
みたいな処理は、やってる?
BufferStrategyのことはぜんぜん知らないんで
なんか間違ってたらごめんちょ。
このスレ見て思った事。

16 進 数 が 全 く 出 て こ な い。

APIが供給する機能以外は何もできない言語だけの事はありますね。(w
573デフォルトの名無しさん:03/06/26 21:40
>>572
その通り
しかし、生産性はアセンブラより断然大きいのだ!
574デフォルトの名無しさん:03/06/26 21:56
http://www.horb.org/horb-j/
HORBて何か簡単に説明して。
お願い。

>>572
イミディエイトで 16進なんて何に使うんだ?
文字コード変換ぐらいのもんだろう
!(>>572 ^ >>572)
16進数て。何の関係があるんだ?
ハード叩きたいのかい?よちよち
>>577
煽るのは勝手だが使えないと一応は恥ずかしいぞ。
>>578>>572 くらいだろ。使えないのは。
最近覚えたばっかりで、嬉しくて仕方ないとか?
>>579 & 0x00
581デフォルトの名無しさん:03/06/26 22:54
おいおい、俺なんか16進数バリバリ使ってるよ

例↓

bgcolor="#ff5656"

見ただけでどんな色になるかは
16進を極めていない君たちにとっては難しいか?w
582デフォルトの名無しさん:03/06/26 22:56

>>580
 _, ._
(゜∀゜)
>>581
うすい(ややしろっぽい)赤だろ
必須技能だヴォケ
584デフォルトの名無しさん:03/06/26 23:01
>>583
確認したの?
 _, ._
(゜∀゜)
>>584
確認する必要あるかっツーの
第一 >>581 Java じゃないし
586デフォルトの名無しさん:03/06/26 23:50
そうでなくて>>581はネタだろ
なぜ答えちゃうかな?
#ffd700
さて何色でしょう
>>587
フロッピーディスクドライブの700番
572は一級の馬鹿または一級の釣師のいずれか
大漁だなw。
591デフォルトの名無しさん:03/06/27 02:19
JTreeのノードをドラッグ&ドロップさせたいのですが
JDK1.4で追加されたドラッグ&ドロップ機能を使って簡単にできないものか?と考えています。

> tree.setTransferHandler(new TransferHandler("transferTreePath"));
> tree.setDragEnabled(true);

こんな感じで設定するとドロップ時に

> public void setTransferTreePath(Object t);
> public Object getTransferTreePath();

が呼び出されるようになります。
これらは両方ともドロップ時に呼び出され、そのときの選択ノード(tree.getSelectionPath())はドロップ位置にあります。
ドラッグ時の選択ノードはどのようにして知る事ができるのでしょうか?
1.getTransferTreePath()で、ドラッグ時のノードを返す方法
2.getTransferTreePath()を、ドラッグ時に呼び出す方法
のどちらかが判れば解決すると思うのですが・・・
ご存知の方みえましたら教えてください。
592デフォルトの名無しさん:03/06/27 03:02
ちんちん出すのはやめろ

それよりも
intの配列なんですが
*pの場合と
p[0]の場合、どっちがいんですかね?
ArrayListでよく使うんですが
(java.util.)ArrayList[] list=new ArrayList[length];
の場合、*listでやればかなりいいのですが
逆にlist[0]だと、データ入ってないときに
起こられるんですよね
list[0]!=nullで確認しようとも
その確認時点で起こられるのでどうしていいか困ってます
でも、*は極端に遅くなるし・・

>>592
Java には *p (単項前置* 識別子) などという構文はありません。
別の言語の話題なら別の場所でやってくれ。
>>591
DragGestureEvent から getDragOrigin でドラッグ開始点を得てから
JTree の getPathForLocation とかで引っ張ってくれば良いのでは?

getTransferTreePath() とか言われても
そっちの自作したメソッドなんて全然知らんので。
メソッドの説明は殆どないし、ソースも出さないし。
595デフォルトの名無しさん:03/06/27 07:57
0x0A 0x0D
596デフォルトの名無しさん:03/06/27 08:00
>>592
お前も同じ悩みか・・・

Javaで
int hoge=~20;
とやったときに
System.out.println(hoge);
としたとき、何が表示されるか
知らない奴がこのスレに大勢いるってことだ

>>593
お前は何も知らない
他の言語だと?
マジボケじゃないよな野郎
まじで、知らないようだな
まずは上のやつやってみろ
何が表示される?
597596:03/06/27 08:01
int f=200*(~1000);
これはどうだ?
int p;
int k;

[*]p~k
int i=9;
i+=i+=i;
おい、Delphスレに対抗して次スレからは
キャラクターにDukeをつかおうぜ

O
601Java初心者:03/06/27 11:34
今Javaを勉強しているんですが、
indexOf(int ch)、lastIndexOf(int ch)の
intの意味がわかりません。
どの本を呼んでもこう書いてあるのですが、
実際に使う時は文字"char"型、もしくは
文字列"String"型しか受け付けてくれません。
使い方はわかるんですが、
いまいち納得がいかないので、
もしうまく説明できる方がいたら教えてください。
単発スレの削除依頼は出したか?
603デフォルトの名無しさん:03/06/27 11:54
>>601

糞スレ立てた人には教えません。
http://1ch.tv/category.php?ca=1&ar=4
こちらで質問してください
>>596
で、*や~はどういう意味なのでしょうか
ググってもわかんないし。
教えてママン!
>>605
http://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#5017
> 単項 ~ 式のオペランドの型は,プリミティブの整数的な型でなければならない。
> そうでなければ,コンパイル時エラーが発生する。単項数値昇格(5.6.1)は,
> そのオペランドに対して実行される。単項のビット単位の補数式の型は,
> そのオペランドの昇格された型とする。

> 実行時に,単項のビット単位の補数式の値は,
> そのオペランドの昇格された値のビット単位の補数となる。
> すべての場合において,~x は (-x)-1 に等しいことに注意すること。
607605:03/06/27 16:33
>>606
サンクス!
*は?演算子じゃないような?
記号のググーリは難しいのう
>>605
596はネタかアフォか勘違い。忘れていいよ。
609デフォルトの名無しさん:03/06/27 18:10
今の環境ではみなさんの作った優秀なjavaプログラムが全く動きません。
javaのランタイムってどこでどれをダウンロードすればいいんですか?
できれば直リンでお願いします。
610デフォルトの名無しさん:03/06/27 18:14
>>609
こんなとこでサボってるやつの作ったプログラムなんてたいしたことないよ!
といいつつ俺もか。
>>609
OS教えんから、ここから先は教えようがない。

http://java.sun.com/j2se/1.4/ja/download.html
612デフォルトの名無しさん:03/06/27 19:23
http://www.javadeveloper.jp/JavaOne/NewsEntry.html?rensai=10&issue=5

AWTの新版(?)としてAWTXが搭載されるという。
ってあるんですけど、AWTXってなんでしょうか?
SWTみたいなやつなんでしょうか?
>>611
ありがとうございます。
Download Java(TM) 2 Runtime Environment, Standard Edition 1.4.0_03が、
それっぽいのでこれをインストールしてみます
ArrayList<Integer> List = new ArrayList<Integer>();
list.add(0,42);
int total=list.get(0);

これこそ、待ち望んでいた機能です
>>613
50:50で答えを間違えた回答者ってこんな漢字なんだろうな。
616デフォルトの名無しさん:03/06/27 22:23
すみません
JAVAアプレット(スレッド使用)で簡単なゲームを作ったんですけど、JAVAがインストールされていない
パソコンでは読み込めません
ホームページにアップロードして、JAVAの開発環境のない人たちもJAVAができるよう
にするにはどうすればいいんでしょうか。
>>616
JRE をインストールしてもらえ。
http://java.sun.com/getjava/ja/
618デフォルトの名無しさん:03/06/27 23:27
Javaのバージョンってどんどんあがっていくけど
JVMの実装って簡単なのでしょうか?
万が一新たなOSが普及し始めたとき、無償で提供してくれるようなところが
なかったらどうするんでしょう。
Sunが必死こいて頑張るだろ
>>618
杞憂。
そもそも、新しく届いたパイをみすみす見過ごすほど
SunやIBMは阿呆ではない。
ま、マイナーな環境だと多少不便するようだが。
MacとかFreeBSDとか。
JVM自体はポータブルな実装もあるだろうから大丈夫だと思う
むしろ周りのライブラリを用意するのが大変・・・
>>614
おお!いつの間にこんな仕様が!!!
全然知らなかった
623デフォルトの名無しさん:03/06/28 00:08
複数のJAVAアプリケーションをHTTPサーブレットから
同時に実行するにはどうしたらよいでしょうか?
並列処理をしたいのですがわかりません。
>>622
いつの間っていうか、来年の夏ね。J2SE-1.5から。
>>623
サーブレットの実行環境ではすでに並行処理が行われているんだが。
>>623
JAVAアプリケーションって、Servletのことじゃなくて?
例えばデータベースとかか?
626623:03/06/28 00:40
>>624
>>625
ありがとうございます。
JAVAアプリケーションとしてJAVA2D(印刷)を利用してPostscript文書を
作ってみました(3つ)
この3つをサーブレットからコールさせたいのです。
>>623
PS文書生成クラスを作って、そのメソッドをサーブレットから呼べばよろし。
コンソールやウィンドウに結果を出力なんてことをしなければそれでいける。
628デフォルトの名無しさん:03/06/28 00:49
>>618
新たなOSって言っても、APIはWinかNTに収束しつつある。

汎用機、UNIX、LinuxからMacOSXまでは、POSIX互換。
独自オフコンやミニコンは消滅しつつある。
携帯や家電やゲーム機まで、Win系やLinuxが増えとる。
629623:03/06/28 00:53
PS文書作成クラスにして、同時に(3つ並行して)動作させるには
スレッドを使うことになるのでしょうか?
>>623
だから〜、サーブレットの実行環境では
個々のリクエストが別のスレッドで処理されてるの!
思わず語気を強めてしまったが、こういうことって入門書じゃふれないのかな?
631630:03/06/28 00:58
>>623
スマン、1回のリクエストで3つのスレッドを動かしたいということね。
それなら明示的にスレッドを作る必要があります。
勘違いしてスマソ...
でも、なんでそんなことを?
>>630
いや、>>629が言いたいのは
そのPS(ryが行なう処理をThreadで同時に行ないたいってことでしょ?
633コレッテカオモジニミエナイ?:03/06/28 01:00
if

('A'<=c)

マンドクセ
635632:03/06/28 01:01
>>631
すまそん
(俺って書き込むの遅いんだ)
636623:03/06/28 01:11
1コのリクエストから→HTTPサーブレット→文書作成クラスを3個同時に。
としたいのですが、
やはり言われていることを理解していないでしょうか?
すみませんでした。
勉強に励みます。
637630:03/06/28 01:14
文書作成クラスを3個同時に動かすのはいいが、
それでできた文書をどうするつもり?
状況によっちゃスレッドを作らずに逐次実行でも良さそうな気がするんだが。
638623:03/06/28 01:20
>>631
>>632
はい。質問がわかりにくくて申し訳ないです。

出来あがった文書は、3種類(共通の番号がついている)のPS文書がそろったところで印刷しようと考えています。
3文書で1セットの出力をプリンターへ送りたいと思っているところです。

639630:03/06/28 01:26
何スレか前で出てきた質問に似てるな…ひょっとして同(ry
敢えてつっこまないで答えるが、スレッド使わずに逐次実行でいいじゃん。
一個一個PS文書作って、3つ目ができたら全部印刷。
>>636
のようにしたいなら
その文章作成クラスとやらにRunnableイン(ryを実装させて、
ServletがRequest受け取った時にそれらをstart()で動作開始させる
これじゃダメ?
641623:03/06/28 01:35
>何スレか前で出てきた質問に似てるな…ひょっとして同(ry
いえ、同じではありません。

PS文書作成クラスは複数の番号のPS文書を一気に作り終え終了させています。

前のスレをもう一度確かめてみます。
642623:03/06/28 01:41
>>640
スレッドのプログラミング経験がないのですが、
スレッドというのはそれぞれが非同期でも使ってよいのでしょうか?
参考書には並行、同期についてばかりのっていたので、
こういう方法は間違いなのだと思っていました。

643630:03/06/28 01:45
ちがってたのならすまん。
Javaアプリとして作ったPS(PDFだったかも)生成プログラムを
サーブレットから呼びたいっていうのが似てただけ。
いまいちわからないのはね、互いに関連のある複数の番号のPS文書を
別々のスレッドで分けて作る必要があるのかってこと。
必ず3つ同時に作り始めて3つ同時に終わる必要があるとか、
ある文書の生成過程のデータが別の文書を作る際に必要になるとか
でなければ順序実行してもいいと思うんだけどね。

ま、どうしても平行実行する必要があるのならそれでどうぞ。
技術的に難しいということは(きっと)たいしてない。
>>642
やりたいことはよく分かりますよ
多分I/Oブロッキングを防ぎたいんでしょうね?

非同期とか言われてもどういう場面のことを言いたいのかわからないけど
別に間違ってはいないと思います
645623:03/06/28 01:56
>>643
1リクエストに対して100枚近くを印刷するつもりでいます。
なので、1セット(3文書つくり終えた時)揃った時点で即プリンターへ送信したら
処理の時間が早いのではないかと思ったのです。

>>644
ありがとうございます。
間違っているのか、間違っていないのか自信がなかったので
とても安心しました。
勉強に励みます。
646デフォルトの名無しさん:03/06/28 02:26
この時間、、人いるかな。。。
質問がありまする。

Apache,Tomcatインスコ後Tomcatを仮想サーバーとして連携させるところでトラブってます。
WebAppDeploy examples /examples/
の行で、Invalid vartual host name が出ます。
647デフォルトの名無しさん:03/06/28 02:27
>>646 訂正。
WebAppConnection conn warp localhost:8080
WebAppDeploy examples conn /examples/
この通りです。
おやしみぃ
649646:03/06/28 02:30
>>648
(ノ_<)あぅ〜ヒントだけでもくださぃ〜
650648:03/06/28 02:32
>>649
すまん、ひとりごとだ。
一番上に上がっていたんでつい・・・
651646:03/06/28 02:35
>>650
りょーかぃでつ。
明日まで待ってみまつ。
ひとつだけ>>623に言っとくが
>1セット(3文書つくり終えた時)揃った時点で即プリンターへ送信したら
処理の時間が早いのではないかと思ったのです。

スレッド使えば処理が早いっていうのは間違いです
ちなみに、J2EE関連では独自のスレッドを作って動かすことは
あまり推奨されていません
654646:03/06/28 04:30
thx!!
>APIはWinかNTに

NTだってWindowsだろう・・・
656デフォルトの名無しさん:03/06/28 08:25
>>617
どうもありがと
参考にします
657623:03/06/28 11:31
>>653
レスありがとうございます。

処理の時間と書いたのは適切ではありませんでした。
結果として逐次実行よりも並列であるほうが
PS文書の印刷を早く開始することが出来るのでは?と考えました。
658デフォルトの名無しさん:03/06/28 12:05
J2EEのservletだろうがEJBコンテナだろうが
プリンタ用のスレッド作るくらい問題ないんじゃない?
>>658
リモートで印刷して何が楽しいってのはあるけどな。
>>657
トータルの時間はそんなに変わらないか逐次実行の方が速いんじゃない?
だって使うCPUの数は一緒でしょ?
複数のマシンで並列処理させるとかだったら違うでしょうけど。
>>657
>PS文書の印刷を早く開始することが出来るのでは?と考えました。

印刷を先に開始できるのは逐次実行の方。
全文書印刷完了までのトータルの時間も逐次実行の方が速いはず。
(CPUの利用時間はどちらも大して変わらない)
プリンタは普通CPUとは独立して動く。

頭で考えてわからなかったらServlet云々言う前に簡単なアプリケーション作って試してみな

Servletから利用する場合は、Response返すためにMessage-Driven Bean(MDB)使うとか
PS文書作成&印刷処理スレッドを「一つだけ」立ち上げるとかは必要.。
ファイルコピーするには、やはり自前で

public static File copy(File from, File to){
if( !from.isFile() ){
throw new RuntimeException("specify copy target file path is not file: " + from);
}
try {
if( to.isDirectory() ){
to = new File(to, from.getName());
}
FileReader in = new FileReader(from);
FileWriter out = new FileWriter(to);
for(int c; (c = in.read()) != -1;) {
out.write(c);
}
in.close();
out.close();

return to;
}
catch (IOException e) {
throw new RuntimeException(e);
}
}

を定義しなけりゃならんのですか。
何か使えるメソッドは無いですか。
>>662
単なるコピーにFileReader, FileWriterなんか使うな。
Stream系を使え。
jdk1.4以降ならFileChannel#transferToを使うとなおよし。
664hiro:03/06/28 17:25
コンパイルを実行するとclassが生成されるのですが、
いざプログラミングを実行すると下記のようなメッセージが表示されます。
なぜ?
Exception in thread "main" java.lang.NoClassDefFoundError: tryjava02
665デフォルトの名無しさん:03/06/28 17:43
>>664
tryjava2.classのあるフォルダをクラスパスに追加したか?
すでにそのディレクトリにいたとしても、"."を含めないと探してはくれんぞ。

666hiro:03/06/28 17:59
ご回答ありがとうございます。
windows2000を使用しておりシステム環境変数で
;c:\jdk1.3.1\binとしております。
現在、クラスパスもソースと同じ領域に作成されております。
667デフォルトの名無しさん:03/06/28 18:34
>>666
とりあえず、
.;c:\jdk1.3.1\bin
にしろ。このピリオドが無いとソースの隣のclassファイルは
永遠に実行されないからな。
>>664-667
ぐだぐだ言ってねーで>>1-2を見ろ
>>665 偉そうな感じだがjava.exeのデフォルトクラスパスを理解してないのがわらた。
正解は環境変数CLASSPATHは設定しないことだろ?
標準ライブラリはどうせブートクラスバスに含まれるし。
670669:03/06/28 19:00
#途中で送っちゃった。
さらにカレントディレクトリこそユーザクラスパスのデフォルト
設定なわけだし。
>>664-667
>>1-2を読んだ後で、
クラスの検索方法
http://java.sun.com/j2se/1.3/ja/docs/ja/tooldocs/findingclasses.html
クラスパスの設定
http://java.sun.com/j2se/1.3/ja/docs/ja/tooldocs/win32/classpath.html
も読みましょう。次は>>2に入れてもいいかも。
ちなみにSunの推奨はCLASSPATH環境変数ではなく、コマンド行で -classpath
オプションを使用することです。
672hiro:03/06/28 20:27
素人ですいません。 皆さんご意見いただきありがとうございます。
クラスパス指定しているのですがうまくいきません。
C:\java_home>set CLASSPATH=java_home;

C:\java_home>java Tryjava02
Exception in thread "main" java.lang.NoClassDefFoundError: Tryjava02 (wrong name
: TryJava02)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)

C:\java_home>
ってなります。
windows2000の環境だからでしょうか?
673デフォルトの名無しさん:03/06/28 20:56
>>672
>>1-2を読んだのかと小一時間(略
とくに>>2を嫁

     ∧∧Λ     最初に「tryjava02」と書いといて置きながら
ピュ.ー ( ゜∇゜ )つ <つぎは「Tryjava02」とか書きやがる
  =〔~∪ ̄ ̄〕   おまけにエラーの文字は「TryJava02」
  = ◎――◎   もうわけわかんねーな  (゜∇゜)/ 「ウンマンコ」

     ∧∧Λ      
ピュ.ー ( ゜∇゜ )つ <「これかのぅ〜」って俺に聞かれても困るんだよ(゜∇゜)/
  =〔~∪ ̄ ̄〕   
  = ◎――◎                                「ウンマンコ」
678デフォルトの名無しさん:03/06/28 23:01
質問。
char型に''を入れようとすると、コンパイルエラーになるんですが、回避できませんかね?
679デフォルトの名無しさん:03/06/28 23:03
>>678
それってエスケープ文字を使うじゃない?
680デフォルトの名無しさん:03/06/28 23:08
>>679
あ、そういうことじゃなくて、空文字を入れるとってことです。
空文字は文字にあらず
682デフォルトの名無しさん:03/06/28 23:14
>>681
だからそれが出来る方法キボンヌ。
684デフォルトの名無しさん:03/06/28 23:17
>>683
thx。見てきます!

     ∧∧Λ      
ピュ.ー ( ゜∇゜ )つ <>>683は親切じゃのぅ〜
  =〔~∪ ̄ ̄〕    他にもためになる情報教えてくれまし(゜∇゜)/
  = ◎――◎                       「ウンマンコ」         
686デフォルトの名無しさん:03/06/28 23:32
>>685
調子に乗るな。
スッコンデロ。
>>686
お前がな。
char型について聞いたものでつ。

HTTPプロトコルを使ってデータを取得するプログラムを書いてます。
その中でボディの前の<CR><LF>まで繰り返す処理をしてるんだけど、上手くいかない…。
// code
while(!(in.readLine()).equals("\r\n"));
while((line=in.readLine()) != null) {
data = data + line;
}

助けてくだせぇ。

説明が下手だけど…。
>>688
\nで送ってくるサーバも少なからずある。どうせ\r\nなHTTPヘッダに\nは単独で出てこないんだから\nで判定しる。
って言うかreadlineって改行文字残るんでしたっけ?
     ∧∧Λ
ピュ.ー ( ゜∇゜ )つ < いえ、改行文字は破棄されると記憶してます
  =〔~∪ ̄ ̄〕      「ウンマンコ」
  = ◎――◎  
>>690
じゃあ、空行の判定方法が明らかに違うわけだ。

って言うかデバッガとかSystem.out,printlnで変数の中身位確認しろって感じだな。

     ∧∧Λ
ピュ.ー ( ゜∇゜ )つ <>>688 ちょっとまって(゜∇゜)/
  =〔~∪ ̄ ̄〕    while((line=in.readLine()) != null)
  = ◎――◎  のところを
            while((line=in.readLine()) != null&&(line=in.readLine()).length>0)
            じゃだめかな?確かじゃないけど「ウンマンコ」
     ∧∧Λ
ピュ.ー ( ゜∇゜ )つ < length()な「誤 length」(゜∇゜)/
  =〔~∪ ̄ ̄〕            「ウンマンコ」
  = ◎――◎  
>>688
最初のwhileでnullチェックやってないから、不正な状態
があったとき危ないよ。
ま、全部書き直しなわけだが。
ラベル低いよ。。。
     / ̄ ̄ ̄ ̄ヽ
    ノ /二二○ヽヽ
    ヽ|ノ// 川 ソ
     川 ゚ヮ゚ノl| <ドレミファじゃばこで フォーリンラブ
     ⊂)亞つ
      L__」
      し'ノ  
>>689-695
thxです。
もうちょい頑張ってみます。
チン子
700  :03/06/29 16:08
こんにちわ。
例えば、下記のようなコードがあったとします。

FileOutputStream a = new FileOutputStream("テスト.txt");
OutputStreamWriter b = new OutputStreamWriter(a);
BufferedWriter c= new BufferedWriter(c);

この場合最後にはやはり
a.close();
b.close();
c.close();
と3つ全てに対してcloseしなくてはいけないですか?
701 :03/06/29 16:10
すみません。3行目は
BufferedWriter c= new BufferedWriter(b);

の間違いです。
702あぼーん:03/06/29 16:10
 
二つのPanelを同じ行で、右端と左端に表示させるにはどうしたらいいでしょうか?
>>700 src.zip展開してそれぞれclose()のソース見てごらん。
質問です。
C言語では未使用変数に対してコンパイラが警告を出してくれますが、
Javaで同等な機能を実現したフリーなツールなどありますか?
Java Houseで検索したところ、下記URLのJ.Tasterが見つかったのですが、
どうも有償ソフトのようでした。 ttp://www.toyo.co.jp/ss/jtaster/
>>705
Eclipse使えば?
>C言語では未使用変数に対してコンパイラが警告を出してくれますが、

うちのccはなんにも言ってくれないけれど。
>>706
レス感謝です。Eclipseは少ししか試していないのですが、その時は警告が
出なかったような記憶があります。機能を見逃していないか、もう1度試して
みたいと思います。ただ、普段の開発はAppleのWebObjectsなので、
気軽に使うのは難しそうです。

>>707
微妙に揚げ足取りをされてるようで悲しいのですが、確かにC言語だから
ではなく、たまたま多くのC/C++コンパイラが実装しているだけですね。
lintコマンドか、ccに-Wallオプションを使ってみるとどうですか?

引き続き、他にもレスいただければ嬉しいです。
709デフォルトの名無しさん:03/06/29 17:38
何故コンパイルできないのでしょうか?

public class hello{
public static void main(String[] args,int i){
for(i=0,i=3,i++){
System.out.println("3回でる");
}
}
}

コンパイラより。
C:\j2sdk1.4.1_03\bin\javac.exe hello.java
hello.java:4: ';' がありません。 <<ど、どこに!?
for(i=0,i=3,i++){
^
hello.java:7: 式の開始が不正です。
}
^
hello.java:6: ';' がありません。
} << {の後に";"???
^
エラー 3 個
Compile End !!
for(i=0 ; i=3 ; i++){
>>708
Eclipseはデフォルト設定では警告は出ない。
警告やエラーは設定次第でかなり詳細に設定出来るよ。
>for(i=0,i=3,i++){
>>708
質問者に煽られた・・・(・Д・)
714705:03/06/29 18:13
>>711
早速設定を見直してみました。[Java]-[Compiler]にそれらしい項目を
発見しまして、変更しましたら無事警告が出ました。
Eclipseは本当に便利ですね。それに比べてWebObjectsといったら…。
レス有り難う御座いました。Eclipseをうまく使えないか、考えてみたいと思います。

>>708 自己レス
708を書いた直後、「lint java」でググってないのを思い出してググってみました。
下記にJlintというのを見つけまして、調査してみたいと思っています。
どなたか使用されたことある人いらっしゃいますか?
ttp://artho.com/jlint/

>>713
煽ったつもりはなく…いえ、少しはあったかもしれません。すみませんでした。
715705:03/06/29 18:27
>>713
つーか氏ね。
>>688
Reader系を使うのはやめてInputStream系を使え。
717709です。:03/06/29 19:05
ありがとうございます。コンパイルは通ったのですが、、、
実行すると下記のように怒られてしまいました。
hello だけなら、ちゃんと実行できたのでpathは問題ないと思うのですが…

何故なのでしょうか??

> C:\j2sdk1.4.1_03\bin\javac.exe hello.java
Compile End !!
> java hello
java.lang.NoSuchMethodError: main
Exception in thread "main"
>>713
あんたが悪い
719709です。:03/06/29 19:08
すみません、またageちゃいましたm(_ _ m
>>717
> public static void main(String[] args,int i){
int i の宣言がここにあるのが原因。
721709です。:03/06/29 19:16
レスありがとうございます。
下記のようにしてみたのですが、
実行結果に何も表示されません。

for(int i=0;i>3;i++)

iが3を超えるまで… の予定だったのですが、どのへんが
まずかったのでしょうか??

public class hello{
public static void main(String[] args){
for(int i=0;i>3;i++){
System.out.println("3回でる");
}
}
}
>>721
ぐだぐだ質問する前に他のソース見て勉強せい
703を誰か・・・
724デフォルトの名無しさん:03/06/29 19:30
>>723
ぷぷぷぷぷぷぷぷぷぷぷぷぷぷぷぷぷぷぷぷぷぷぷぷぷぷぷ
726725 ミススマン:03/06/29 19:32
>>703
GridLayoutとか試してみた?
>>726
みてないから書き込んでんだろ

     ∧∧Λ
ピュ.ー ( ゜∇゜ )つ < >>721 for(int i=3;i>0;i--) ←これが正解(゜∇゜)/
  =〔~∪ ̄ ̄〕                      「ウンマンコ」
  = ◎――◎
レイアウトマネージャを使っているときにJTextAreaの大きさを変えないように
するにはどうしたらいいのでしょうか?

つーかJScrollPaneつかってるのにいちいちリサイズしてくれたらスクロールバー意味ねぇ・・
>>729

もちょっと詳しく。

両方とも使ったことのあるオブジェクトなので、
お力になれれば。
>>721
頭悪いな。

for (int i = 0; i < 3; i++)
で3回でる。

つーか、たしかにここは初心者スレだけど、こんなレベルでいいのか?
>>730
簡単に書くとグラフィックなど表示してあるメインウインドウの下(NORTH)に
ちっこい3行分くらいのJTextAreaがあるわけです。

そのちっこいJTextAreaに文字を書く訳ですが、その画面から少しでも行がはみ出した後
(JScrollPaneに入れ子して縦スクロールバーが出ます)画面が再表示されると
TextAreaがスクロールバーを丁度表示されない大きさに大きくなって
NORTH部分がでかくなり、当然画面全体も滅茶苦茶に・・・
というわけです。


     ∧∧Λ
ピュ.ー ( ゜∇゜ )つ <  for (int i = 3; i > 0; i--,System.out.println("3回でる"));
  =〔~∪ ̄ ̄〕     中身一行ならこれでいいじゃない      「ウンマンコ」
  = ◎――◎
あるウィンドウAでボタンをおして、別ウィンドウBを開いたときに、
ウィンドウBで処理をしないと、Aがアクティブにならないようにするにはどうすればいいんでつか?
>>734
B を "モーダルダイアログ" にするのがごくごく一般的
736734:03/06/30 13:14
>>735
すばやいレスサンクス。
737デフォルトの名無しさん:03/06/30 22:23
javaのclientプログラムでcookieってどうやって保存するんですか?
後、送信するんですか?
誰か教えてちょ。
httpの勉強しろ
739737:03/06/30 22:43
してるんですけどね。
いまいちわからんのです。
740デフォルトの名無しさん:03/06/30 23:05
Javaやろうと思って
http://www.java.com/en/download/manual.jspで
j2re-1_4_1_03-windows-i586-i.exeをDLしたんですけど
これがあればjavaで開発できますよね?
でかい、何行もあるテキストファイルの途中に一行とか挿入したいとき
いちばん効率いいのは?
pipeかなぁ?
742デフォルトの名無しさん:03/06/30 23:12
☆頑張ってまーす!!☆女の子が作ったサイトです☆
http://endou.kir.jp/betu/linkvp2/linkvp.html
>>732
setPreferredSizeでどうだろ
>>740
j2sdkの方を落とせ
アプレットの事で困ってます、誰か助言をください。
簡単なアプレットを作って、まずappletviewerで動作を確認しました。
次にブラウザ上で見てみようとしてhtmlファイルを書いたんですが、
何故かブラウザではアプレットは実行されずに灰色のまま。
htmlファイルには
<applet code="MyApplet.class" width=100 height=100>
</applet>
と、ちゃんと書いているし、MyApplet.classはこのhtmlファイルと同じディレクトリに置いてるんですが。
ちなみにアプレットを公開しているサイトのアプレットはちゃんと見ることは出来ます。
一体何が原因なのかさっぱり解りません。誰か助言を・・
>>745
・クラス名の大文字小文字の間違い
・なんかセキュリティ例外に引っかかってる。
・JavaVMのバージョンの問題。たとえばMSVMは最近増えたAPIは使えない。

まずJavaのコンソールを出してメッセージを確認してみようじゃないか。
>>743
できますたさんくすこ
748デフォルトの名無しさん:03/07/01 00:58
jspで質問です。
思いっきり、サンプルリストからぶっこ抜いたソースなんですが、このソースで、/hoge以下のファイル一覧が出るのですが、
1つ1つのファイルの一行目を読み込んで、

hoge.txt hogeの一行目
hoge2.txt hoge2の一行目
みたいな感じで一覧出したいんですが、どのようにしたら良いでしょうか?

< %
//ディレクトリ名
String dName = "/hoge";

//Fileオブジェクトを作成する
File fl = new File(dName);

//ディレクトリ内のファイルとディレクトリを取得する
File[] ar = fl.listFiles();

//ファイルとディレクトリを一覧表示する

for(int i = 0; i < ar.length; i++){
out.print("< br >" + ar[i]); //一行表示
}
% >
</body>
</html>
>>748
それぞれのファイルの1行目を読み込んでそれを表示
750745:03/07/01 01:49
>>746  レスどうもm(__)m
>・クラス名の大文字小文字の間違い
これは無いです、もう10回以上どこかにスペルミスが無いか確認しました。
>・なんかセキュリティ例外に引っかかってる。
どのアプレット入門的な事を簡単に解説してるサイトや書籍でもセキュリティの事には全く触れてなかったので、考えてもなかったのですが、J2SEドキュメントの「セキュリティと署名付きアプレット」を読んでみます。
>・JavaVMのバージョンの問題。たとえばMSVMは最近増えたAPIは使えない。
ただpaintメソッドで文字を書くだけのアプレットなので、最近増えたAPIは使って無いとおもうのですが。

Javaのコンソール・・こんなの有るとは知りませんでした。で、早速見てみた所、
Error loading class:MyApplet
java.lang.NoClassDefFoundError
java.lang.ClassNotFoundException:MyApplet
と、大まかなエラーと例外がこの二つでした。クラスが見つからないっていうのは一体どういう事なんだろう・・・。
後、NoClassDefFoundErrorについても調べてみます。
どちらにしてもこの問題の解決について進展することが出来ました。また書き込んでみます
JPanelに実行時操作で、さらにJPanelを追加したり削除したりするような
プログラムを作ってるんだけど、
いったんremoveAllで全部消してから、もっかい全部addしてやってるわけね。
したらremoveAll後に上手く表示されなくってコマッチング!
つД`) タスケレ !!
752デフォルトの名無しさん:03/07/01 02:14
>>751
#invalidate()と#validate()で何とかならへんか?
>>752
サンクスコ。
馬鹿でわからんから、もうちょっちだけ詳しくキボン。
あとはぐぐるから。
754デフォルトの名無しさん:03/07/01 02:28
java.awt.Component#validate(),#invalidate()
755デフォルトの名無しさん:03/07/01 02:36
>>749
出来ました。

あと、取得したファイルの拡張子ってのを抜き出すには、ピリオドから先の文字を抜き出すってルーチンを用意しなきゃいけないんでしょうか?
yes.
そもそも拡張子なんて概念はWindows固有だ。
757_:03/07/01 02:48
759_:03/07/01 04:17
760デフォルトの名無しさん:03/07/01 04:18
>>756 >>758
どうもです。正規表現というのを使って、拾い出したい拡張子設定するやり方で取り出せそうです。

ファイルの中身を一行表示するコードなんですが、readLine() を使って一行表示した時、英数字は問題ないのですが、日本語が化けてしまいます。
ファイルの中身はSJISだと思うんですが、どこを確認したら良いでしょうか?
761デフォルトの名無しさん:03/07/01 08:52
CORBAを使ってみたいんだけど、どうにも要領がつかめないので、
すごい簡単なサンプル見せてもらいたいです。
なるべくスタンドアロンで何も立ち上げずにやりたいですが、
LAN、Apache、TOMCATは一応準備できます。おねがいします。
>>760
わざわざ正規表現使わなくても出来る。こんな感じで。
s.substring(s.lastIndexOf('.') + 1, s.length())

ストリーム作成時にエンコーディングを指定する。
InputStreamReader reader = new InputStreamReader(new FileInputStream("theFile", "Windows-31J"));
バッファリングしたけりゃお好きに。
763デフォルトの名無しさん:03/07/01 09:23
>>761
http://www.google.co.jp/search?hl=ja&inlang=ja&ie=Shift_JIS&q=Java+CORBA&btnG=Google+%8C%9F%8D%F5&lr=lang_ja
あと10回くらいクリックすれば見つかるんじゃないか?
1.4.2がリリースされてるのZDNetの記事で今頃気づいた
>764
窓の杜にも出てたな。
766デフォルトの名無しさん:03/07/01 12:27
Java 卒論のために勉強し始めて、ウィンドウアプリで
ウィンドウ内にアニメーションさせるアプリ(時計とか)を作ろうと
参考書を買ってきたんですが、アニメーションさせる方法が
JavaAppletのやり方しか書いてなかった(´・ω・`)

そこで質問なんですが ウィンドウアプリの場合アニメーションさせる命令って何でしょうか?
命令さえ分かればググって参考サイト見つけれると思うんですが…
よろしくお願いします(´・ω・`)
>>750
> ただpaintメソッドで文字を書くだけのアプレットなので、最近増えたAPIは使って無いとおもうのですが。

そういう問題ではなくて、対象のVMとクラスファイルが合ってないんだと。
javacに-target 1.1って指定してみたら?
MSJAVAだと1.1互換にしないと動かなかったと思うよ。

javacのドキュメント見ておくことをお勧めするよ。
>>766
ウィンドウアプリもAppletも、アニメーションさせる方法は同じなので、
その本で学んでも悪くないかも。
あとは、Javaでウィンドウアプリを作る方法さえわかれば
お望みのことが出来るよ。
java.awt.Frameかjavax.swing.JFrameの使い方を覚えればすぐ。
awtやSwingは、本読んだほうがいいけど、ただで済ませたいなら
APIか、%JAVA_HOME%\demo\jfc以下のサンプルを見てみて。
769745:03/07/01 13:53
>>767
>javacに-target 1.1って指定してみたら?
うわっ出来ましたー。ちょっと感動した!一体何時間ぐぐったり本見たりサイト回った事か・・。
まじありがとう。
javacのドキュメントも読んでみます。



staticなフィールドはstaticなメソッド内からじゃないと参照できないぽだけど、
コンストラクタはstaticではないよね?

JFrameにEXIT_ON_CLSEを設定するのは、mainからやるべきでつか?
>>770
static initializer
>770
前半と後半のつながりがいまいちわからんが、
setDefaultCloseOperation()を使うとか、processWindowEvent()をオーバライドするとか。
773770:03/07/01 14:31
んと、詳しく書くと、JPanelを継承したクラスAがあって、
そのAのコンストラクタでフレームにAを追加してるんだけど、

frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
ってやると、EXIT_ON_CLOSE使ったらダメよってでまつ。
shouldだから警告だと思うんだが、今mainで同じ処理やっても
同じ警告出た。
なんでやああ!!
Eclipseです。
774771:03/07/01 14:34
……漏れはバカかw
staticなフィールドも非staticなメソッドから参照できるだろうが。

で、条件反射でレスしちまったが、
JFrame#setDefaultCloseOperation()でないの?
>>773
static なフィールドをインスタンスから参照しようとしてるから警告が出ただけでしょ。
よーするに frame.EXIT_ON_CLOSE -> JFrame.EXIT_ON_CLOSE に直せって怒られてるわけ。
776770:03/07/01 14:40
>>774 775
すいませんですた。
知らなかったです。インスタンスからやってるからダメなのでつね・・・。
出直してきまつ。
777デフォルトの名無しさん:03/07/01 14:53
ここのサイト見てるとjava初心者ってプログラム初心者がほとんどだな!!!
そんなやつらはただWindowsでFrameを出してるだけでうれしいみたいだが、
ウインドウやフレームを出す前にプログラムの基本を仕組みアルゴリズムを学んだほうが
いいと俺は思うぞ。
778_:03/07/01 14:53
ボタンを押したときにラベルが出るようなプログラムを作ってるんですが、
出てきません!
でもウィンドウのサイズを変えると出てくるんです。
panel.repaint()とか、やりましたが無理ですた・・・。
どうしましょう?
780デフォルトの名無しさん:03/07/01 15:45
これからC++を勉強します
Cをある程度理解しているのですが、
そういう人におすすめの本を教えてください.
>>777
ちょっぴり視点がずれている。
初心者はプログラミング=GUI の表示ぐらいにしか思っていず、
もはやプログラムとはプラモデルを組み立てるがごとく、
GUIの組み合わせで動くと勘違いしている向きさえある。
だからGUI表示できればひゃっほうもう少しだと思ってしまう。のではなかろうか。
アルゴリズムなんて、解説してるサイトもそうそうないしね。

java初心者がイマイチ君だというより、
イマイチ君は「いかにも組み立てやすいプラモデルに見える java」 を選びやすい。
バカどもにはちょうどいい目くらましだ。
783780:03/07/01 16:02
誤爆スマソ
今日からその馬鹿どもをGUI厨と呼ぼう
オブジェクトを組み合わせればプログラムができると思ってるやつは
オブジェクト厨だな。
786777:03/07/01 16:07
>>779
なにわけわからん事言ってんだ?
ラベルを出すのにpanel.repaint()の使っても出るわけないだろ!
ラベルクラスのsetVisibleを使うんだよ!!!
こういう人は本を読んでも最初の肝心なとこ勉強してないんだよね!
クラスとか継承、実装、コンストラクタ、オブジェクト、オーバーロード、
なにいってんだかわかんないだろ!!!
だいたい、イベント処理なんてインナークラスや匿名クラス、オーバーライド
を知らないとできないのに本読んでで簡単にできると思い込みをしてるやつが
たくさんいるよなまったく・・・
787デフォルトの名無しさん:03/07/01 16:12
アプレットでゲームつくろうと思うんだけど
日本語はどのブラウザでも使えるのかな。
788デフォルトの名無しさん:03/07/01 16:22
質問質問質問
タグライブラリでインナークラスは利用できないんですか?
会社からプロキシ経由で「messenger.hotmail.com」ってとこの1863ポートに繋ぎたいのですが、
Socketの生成でつまずいてます。(UnknownHostException)

System.setProperty("http.proxyHost", "○.○.○.○");
System.setProperty("http.proxyPort", "○");
これ↑って意味ないんですか?
790デフォルトの名無しさん:03/07/01 16:48
>>789
意味ないってどういう意味???
791_:03/07/01 16:48
proxyHost, proxyPort だけでなく proxySet を設定せよ

しかし会社からメッセンジャーにつないでサボる気かね
793779:03/07/01 17:02
>>786
でもねでもね。
ウィンドウのサイズを変えたら出るんだよ?
実行時にVectorにJLabelを登録して、
再描画する前に、一旦panel.removeAllで全部けして
それから全部表示させてるんだけども。
出てこないのさ。
ウィンドウリサイズはupdate()が呼び出されてるんでないの?
>>779
コンポーネントを追加した後にpanel.validate()を呼ぶ。
これでできるけど正しい方法なんかね?
自分で調べろ。
>>793
update() なんてメソッドは無い
update(Graphics) ならあるが、これは描画しなおし。
Image や drawLine などのグラフィックス描画をやるのであって、
GUI の表示とは無縁と考えよ
797779:03/07/01 17:09
>>794
できた!マジさんくす!!
vaidateは何をするんだ!?検証するっていったい・・・。
798779:03/07/01 17:11
>>796
そうですか。じゃあpaintComponentだね!
799789:03/07/01 17:17
>>790
名前をIPに解決できてないっぽい(外に出れていない)
>>792
proxySetの使い方がわかりません。
今特に作業かかえてないので、題材決めて勉強しようと思って。
どうせやるならおもしろくやりたいので。
ものすごいバカな質問だけど、
ActionListenerを実装したクラスを継承したサブクラスでも
implements ACiton..ってやんないとダメなんでつか?
>>800
サブクラスではもうやんなくて大丈夫
複雑に階層化されたGUIコンポーネント間で連携させるときのコツ、
というかセオリーを解説してあるサイトはないでしょうか。
すこし油断するとすぐ
「ローカル変数controllerは内部クラスからアクセスされます。
final で宣言される必要があります。」
がでます・・
>802
相手に理解してもらえる日本語になっているか、書き込む前に確認しよう。
まず、落ち着いて事情を説明するべし。
前半と後半では、話がかみ合わないように読めるよ。
>>802
デザインパターンを眺めるといい考えが思い浮かぶかも。
メ、メディエーターパターンかのう?・・・
806デフォルトの名無しさん:03/07/01 23:18
>>802
コンポーネントを普通のクラスから作らない。
コンポ−ネントのクラスを作る。
全部メンバ変数にする。
807デフォルトの名無しさん:03/07/01 23:56
質問させてください。
アパッチだとか、iisだとか立ち上げてる(社内の)端末にアクセスすると
記録されるIPの値を任意の値で渡したいのですが
javaでそういうプログラムはかけますか?
つまり、自分の端末が持っているIPとは別のIPを渡したいのです。
自分の会社でのPCはIPは自動取得なんで、任意のIPを渡したいなー
って今日、ふと思ってしまったので質問させてもらいました。


808デフォルトの名無しさん:03/07/01 23:58
>>807
Cracking program書く人は放置、が不文律。
809デフォルトの名無しさん:03/07/02 00:31
スーパークラスハンターの私にとって不可能な処理はありませんが何か?
>>809
1.あなた自身が復号できない符号化プログラムを作ってください。
2.そのプログラムで符号化したデータを復号してください。
>>809
「不可能な処理」を作成してください。
>>810-811
藻前らそれは確かに不可能だけどな!
本当の答えはこうだ。


コンピュータが爆発するクラスを作ってください。
女子が全員裸のクラスを・・・
>>810-813
 >>813の勝ち
>>812
CRTをバグらせて発火させるウイルスは有り得るらしいけど。
>>813
男子校ならできるな。女子は全員裸(ただし女子比率0%)
817J:03/07/02 10:17
import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.*;

public class SwtApplication {
Display disp;
shell sh;
Button btn;

public SwtApplication(){
disp = new Display ();
sh = new Shell(disp);
sh.setText("記念すべき第二アプリケーション");
sh.setSize(300,150);
sh.setLayout(new Fillayout());

btn = new Button(sh, SWT.NULL);
btn.setText("Click here.");
btn.addSelectionListener(new SelectionAdapter(){
public void widgetSelected(SelectionEvent ev) {
MessageBox msg = new MessageBox(sh, SWT.OK);
msg.setText("メッセージ");
msg.setMessage("congraturations again !");
msg.open();
}
});

javaでファイル出力を行うときに、指定ファイルがなければIOexceptionを投げますが
そのさいにファイルを作成するようにするにはどうしたらいいでようか?
819J:03/07/02 10:22
↑てEclipse上で書いたんですが、
インポート org.eclipse.swt は決して使用されません。MyJava2.javaMyJava2line 14
とか
public 型 SwtApplication は自身のファイルにおいて定義されなくてはいけません。MyJava2.javaMyJava2line 19
と出ます。 どうしてでしょうか? おながいします、おしえてくれ
>>818
catchしてやり直せば委員でないの?
>>817
ファイル名とクラス名は同じにすべし。Eclipseでやれば勝手に同じになるはずだが。
Eclipseなんだし、赤い波線が出たら電球マークをクリックして勝手に直してもらえば
何とかなるだろ。もちろん、その波線がでた理由とどう変更して波線が消えたのか
考えるのを忘れずに。
>>820
すいません、出来ました。
もう一つだけききたいんですが、ファイルに\tで区切ったデータがあって、
それをファイルから読み込む場合、FileReader.read()で、\tが来たら
データの格納先を変えるっていう処理でいいんですか?
なんだか上手くいかなく・・・
823J:03/07/02 10:48
ありがとう なんとか自分で出来ました
>>822
それでできるはずだが?
825デフォルトの名無しさん:03/07/02 11:19
プリント「イン」ではなくて、プリント「エルエヌ」なんですね?
かなり困惑したんですが・・・
なぜIではなくてLなんでしょうか?
Line だから
827822:03/07/02 11:26
>>824
タブ文字は上手く区切れてるみたいなんですが、データの変換が上手くいきません・・。
int i = FileReader.read()でiをcharにキャストして入れていきますよね?
その時に、charの配列に、
charArray[index++]= (char)i;
と一旦データを別部分に格納してから、iが'\t'だったら
String str = new String(charArray);
とやってるんです。そいで改行が来たら
Integer.parseInt(str)でint型に直して、本来の変数へと格納してるんですが、
ここで、Exception : java.lang.NumberFormatException: For input string: "2002
こんなエラーが出てしまいます。
最後のダブルクオが気になりますが、閉じてないってことなのでしょうか?
javaも最後\0で閉じないとダメですか?
あのさぁ、なんでソース見せないの?
システム.アウチ.プリンプリン("-_-");
830デフォルトの名無しさん:03/07/02 11:41
>>826
ラインなのに、LNと略すとは・・・
831822:03/07/02 11:52
ちょっと長いですが・・・。

private void loadFromFile() {
try {
FileReader fr = new FileReader("data.txt");
int tabCounter = 0;
int c;
char[] tempData = new char[256];
String[] data = new String[5];
boolean flag = true; // 提出済みデータならtrue
boolean change = false; // 格納先変更直後のみtrue

for(int i = 0 ; (c = fr.read()) != -1 ; i++) {
if(c == '\t') {
tempData[i] = '\0';
data[tabCounter++] = new String(tempData);
i = -1;
tempData = new char[256];
} else if(c == '\n'){
if(!change) {
int year = Integer.parseInt(data[2]);
int month = Integer.parseInt(data[3]);
int day = Integer.parseInt(data[4]);
Report r = new Report(data[0], data[1], year, month, day);
832822:03/07/02 11:52
if(flag) {
reportTrueVector.add(r);
} else {
reportFalseVector.add(r);
}
} else {
change = false;
}
} else if(c == '@'){
change = true;
flag = true;
} else {
tempData[i] = (char)c;
}
}

} catch(Exception e) {
System.err.println("Exception : " + e);
}
}
833デフォルトの名無しさん:03/07/02 12:15
>>561

スレッドセーフなコレクションを使えばよい :-)
やっぱ文字列処理はJavaショボいねぇ
>822
StringTokenizerじゃ駄目なの?
>> 822 int year = Integer.parseInt(data[2]);
読み込むテキストに 数字以外の文字入ってたら
たいてい、NumberFormatException出るようになってる
コンマンウ2002って「年」を読み込む部分だろうけど
頭に「"」がついてるんじゃない?
「"」も区切り対象にすればいい
>836
コンマンウ
>頭に「"」がついてるんじゃない?
頭に「コンマンウ」がついてるんじゃない?
>831-832
すげーソースだなぁ。わざと複雑に書いたの?これ。

BufferedReaderを使ってreadLine()で一行ずつStringに取り込んで、
各行で項目数が決まっているならString#split()、
不定ならStringTokenizerで一個ずつ取り出せ。
【もう】なきそうになりながら、仕様書を読み返すスレ【だめぽ】
     ∧∧Λ
ピュ.ー ( ゜∇゜ )つ < >>822 boolean flag = true; boolean change = false;
  =〔~∪ ̄ ̄〕      こういうフラグなるべく使わないようにしよう (゜∇゜)/「ウンマンコ」
  = ◎――◎  
【宿題】一夜漬けアプリの杜質問箱【テスト】
843デフォルトの名無しさん:03/07/02 16:39
【ドキドキ】さて、次はどのAPIで遊ぼうかな?Java編【ワクワク】
844デフォルトの名無しさん:03/07/02 16:58
============================= ◎――◎  


845_:03/07/02 17:06
846デフォルトの名無しさん:03/07/02 18:33
会社で働いている方に質問なんですけど
Sunのjsp-pの資格を2年前(高校のとき)にとったのですが、ロゴ試用期間が2年で消えますよね、
専門2年なんですが、取り直したほうが就職では有利なんですか?
デベロッパーは無理というか取る気持ちになれません。
847_:03/07/02 18:38
J2SE 1.3.1版どこかでダウンロードできないのかな?
サンマイクロのHPでは1.4.1しかダウンロード
できないみたいなんだけど・・・。
>>849 どーもです。
最後のexeアンカーをクリックすると
必ずエラーになってダウンロードできないんですけど
なんかご存知ですか?
851849:03/07/02 19:27
>>850
最後まで試してなかった。失礼。
1.3.1_07の時は落とせたんだけど…
sunのページからJVMを落としたんですが、
アプレットを実行しようとすると、Java仮想マシンをインストールする必要があります。と出ます。
これはマイクロソフトのVMを入れるように言ってるのかと思いますが、
すでにプラグインされているJavaVMを使うように設定するにはどうすればいいんでしょうか?
853デフォルトの名無しさん:03/07/02 20:03
>これはマイクロソフトのVMを入れるように言ってるのかと思いますが、
>すでにプラグインされているJavaVMを使うように設定するにはどうすればいいんでしょうか?
逆じゃないのか?

普通はインストールしたJREが使われるはずだが?
まあ、設定はWindowsなら、コントロールパネルのなかに
JavaPluginあるのでいじってみれば何とかなるかな

まあ、適当な答えだ勘弁してくれ
854852:03/07/02 20:04
>>853
ありがとうございます。やってみます。
補足ですが、ダウンロードを促される画面で
インストールオンデマンドと出ています。
何のことかちょっとわからないですが・・・。
>>854
要求毎にダウンロード
856852:03/07/02 20:11
>>853
できました!ありがとうございます。
ブラウザ変更に失敗しましたと出て、変更権利があるか確認してくださいと出たのが
気になりますが、なんとか出来ました。
857_:03/07/02 20:12
858デフォルトの名無しさん:03/07/02 20:39
>>762
文字化けせずにファイルの中を表示できるようになりました。

あと、もう1つ問題出てきてしまったのですが、
パス+ファイル名で取得してきた、ファイル名そのものが文字化けして正しくファイルを参照できないの物が出てきてしまいました(文字化けしないものは開けます)
ソースは以下のような感じなんですが、
FileReaderで作った、パス名+ファイル名 をOSの文字コードで指定するにはどうすれば良いでしょうか?

OSはLinuxで、開きたい対象のファイルはSJISだと思います。

//Fileオブジェクトを作成する
File fl = new File(dName);
String[] ar = fl.list();
String fnm;
FileReader fno
for(int i = 0; i < ar.length; i++){
       fnm = ar[i];
       fno = new FileReader(dName + fnm);

>>858
BufferedReader
860デフォルトの名無しさん:03/07/02 21:00
>>859
こんな感じで指定してみましたが、エラーが出てしまいます。

開きたいファイルは、B・LUE.PDXなんですが、エラーでは、B?LUE.PDX (No such file or directory)) is not available. こんな感じで蹴られてしまいます。


BufferedReader はこんな感じで使って見ました。
BufferedReader bno = new BufferedReader(new InputStreamReader(new FileInputStream(dName+fnm),"MS932"));
>>858
ファイル名が化けるのかファイルの中身が化けるのかどっちだよ
>B・LUE.PDX
まずこのファイルをどうにかするのが先だろ
>>858
new String(string.getBytes("8859_1"), エンコード名)
864デフォルトの名無しさん:03/07/02 21:06
>>858
ファイル名が化けます。


B・LUE.PDX
どう考えてもこの「・」が原因だろ。なんだよこれ
866デフォルトの名無しさん:03/07/02 21:25
>>865

ls で表示してみると
B?BLUE.PDX

ls -ls | less で表示すると(多分SJISで表示されるので)
B・BLUE.PDX

こう表示されます。

このファイルは,X68から持ってきたPCMセットファイルなんですが、とくにLinux上で、聞く分には問題ありません。
ただ、表示させようとする段階で、今のようなエラーがでます。

>>866
取りあえずcat | nkfの結果。SJISじゃないに3JDK
>>866
まずそれをEUCとして正しいファイル名に直せ。

OSのファイル名設定がEUC-JPなら、
EUC-JPとして認識できないファイル名をまともに扱うことは不可能。

これはJavaに限らずUnicodeを利用して国際化されているソフトウェア全般に言える
869デフォルトの名無しさん:03/07/02 21:49
B・LUE.PDX
どう考えてもこの「・」が原因だろ。なんだよこれ

及川奈央の鼻の横についてるクソみたいに邪魔だな
フォルダ名に空白も厄介だ
結婚して退社したアナウンサーが芸能界復帰するぐらい厄介だ
>フォルダ名に空白も厄介だ

通常シェルのお仕事。
871デフォルトの名無しさん:03/07/02 21:52
>>869
なんで、NHKで将棋番組やってるんですか?
>>869はアナウンサーに片思いをしていて
どこの馬の骨かわからんやつに取られて、
寿退社をきに、忘れようとしていたら、
芸能界に復帰されて、忘れようとしても
忘れられず、テレビで見るたびに泣いている奴。
873デフォルトの名無しさん:03/07/02 21:55
大橋
874デフォルトの名無しさん:03/07/02 22:00
>>871
いやなんでも、女房役やってる旦那がえらく将棋強いんだと
だからなんで、そいつの女房が将棋番組に出るのかは不明
875デフォルトの名無しさん:03/07/02 22:01
>>867 >>868 >>869 >>870
特殊記号を使ってるので、それが原因で、とても厄介なのはわかりました。

しかし、凶悪02.PDX このファイル名も同じように弾かれます。

ls *.PDX| nkf -S できちんと、表示もされます。
#007.PDX
ASSAULTV.PDX
DYWM99.PDX
GRA100.PDX
HA2500.PDX
SPD002.PDX
UGO002.PDX
UGO028.PDX
凶悪02.PDX


jsp側のエラー画面は、先ほどと同じようです。
エラー画面は、??02.PDX (No such file or directory)) is not available. こんな感じです。
>>874
別に誰が何をやろうとかってじゃん。
877デフォルトの名無しさん:03/07/02 22:04
>>875
変えるわけにはいかんのか?フォルダ名
(今日は楽しくなりそうだな)
878デフォルトの名無しさん:03/07/02 22:06
>>876は大木ぼんど
>>875 ローカルエンコーディングと違うファイル名なんだから
しょうがないだろ。シェルから
for file in *.PDX; do mv $file `echo $file |nkf -S -e`; done
とでもやって変換しとけば?
880デフォルトの名無しさん:03/07/02 22:07
>>877
MDXという、音楽ファイルがあるんですが、それが、PDX(PCMセットファイル)を読み込んで、再生するので、PDXを変えると、PCMの部分が無くなりドラムとかの音が消えると思うんです。
MDXのファイル名は変えれるけど、PDXのファイル名は変えれないと思うんです。
MDXがPDXファイルを読み込みって感じで、MDXのなかにバイナリ形式で、PDXのファイル名が埋め込まれています。
MDXをweb経由で垂れ流すのか・・・
たしかに今なら普通にできるなー
多分無理だと思うけど、
File d = new File(親ディレクトリ);
File[] files = d.listFiles();
して、ファイル名を経由せずにFileオブジェクトを取得したらどうなる?

これで無理なら何やっても無理。>>879の通りファイル名をEUCに変えてしまうしかない
>>882
結局ファイル名でアクセスするから無理ぽ。
質問です。
Stringに入ってる文章の中からURLの抽出ができるクラスってなんでしょうか?
885デフォルトの名無しさん:03/07/02 23:31
対象ファイルが、少ないので、68側で、普通の名前で読めるように変えて対処することにします。
大変お騒がせしました。
>>884
java.util.regex.Pattern
5年ほどまえバーで飲んでたら、そのバーの直ぐ外に大木ぼんどが来ていた。
その頃ガキだった俺は話の種にと思い、紙切れ一枚持ってぼんどにサインを貰いに行った。
そしてサインを貰って直ぐにその紙切れを破り捨てた。なぜ破り捨てたのかは解らん。
俺も酔っていたからな。
>>886
サンクス〜
889nasi:03/07/03 02:02
こんにちは。
初心者というより門外漢です。
質問お願いいたします。
RedHat Linux上のJavaで正規表現を多用して
日本語処理を行います。
入力する漢字コードがEUCかJISの場合
どちらがよいでしょうか?どちらでもよいでしょうか?
トンチンカンでしたらすみません。
どういう情報が足りないかご教示いただければ幸いです。
よろしくお願いします。
sprintf("%02X",num); や
sprintf("%2d",num)
の様に16進右桁揃えで整形するスマートな方法はありますか?
891822:03/07/03 02:32
>>836
すげー!まさにそのとおりです!
指摘のとおりやったらできました!ありがとうございます。

>>839
一応本見ながら書いたんで・・・。
readLine()について勉強してきます!
>>890
10進でも16進でも右詰処理は自作するしかないと思われ。

Tiger まで待てば printf() が付くらしいけど。
893デフォルトの名無しさん:03/07/03 03:03
Antの質問ってここでしていいのか わかりませんが教えてください

DOSコマンドをパラメータ付きで実行します。
<exec dir="." executable="test.exe">
 <arg value="*.txt">
</exec>
を実行すると
>test.exe *.txt

が実行されます。
そうではなくて、例えば、a.txt b.txt c.txtの3つがあるとすると

>test.exe a.txt
>test.exe b.txt
>test.exe c.txt

と順に実行させたいのですが、Antのワイルドカードみたいな機能で
うまく出来ないでしょうか?
894890:03/07/03 04:04
>>892
やっぱ自分で作るしかないんですね.
何か便利なクラスがあればと思い質問したので期待はしてなかったのですが.
難しい仕事じゃないんで良いんですけどね.
ありがとうございました.
>>889
どちらでも同じです。javaは内部では文字列はすべてUnicodeとして変換し扱います。
896ウンマンコ:03/07/03 07:00
>>890
以前俺がつくったユーティリティークラスの一部
sprintfはしらないが、こういうことか?↓
(ちなみに最初の部分は四捨五入処理なので無視してくれ)
 ∧∧∧
( ゜∇゜ )つ

public static String averageFormat(double average) {
int aveH = (int) (average * 1000.0);
int aveT = (int) (average * 10000.0);
if (aveT - aveH * 10 > 4) {
aveH = aveH + 1;
}

DecimalFormat dformat = new DecimalFormat("#.000");←java.text.DecimalFormat
return dformat.format((double) aveH / 1000.0);
}


java.text.*あたり使うぐらいしか思いつかん(基定クラスはNumberFormat)
897デフォルトの名無しさん:03/07/03 08:55
>>892
printfなんて自分で実装しても30分かからないだろう。

問題は最近のNetにprintfの仕様に関係する資料がごみみたいのしか無い事だ。
898デフォルトの名無しさん:03/07/03 11:10
>>897
すげー・・・
899デフォルトの名無しさん:03/07/03 11:55
スレッドが、自分自身(Threadクラス)の参照を入手するには
どうすれば良いのでしょうか?
>>889
正規表現を多用するなら
素直に perl, ruby, python あたりの方が楽なんじゃ。。。
>>899
現在実行中のスレッドオブジェクトの参照が欲しい、という意味なら
java.lang.Thread#currentThread()
902899:03/07/03 12:23
>901
ありがとうございます。
ご指摘のやり方について、よく調べてみます。
>>890
どっかにprintf()系のJavaクラスがあったような気がする。

って、なんか記憶と違うけど、ぐぐったら出てきた。

ttp://www.braju.com/
ttp://developer.java.sun.com/developer/technicalArticles/Programming/sprintf/
904デフォルトの名無しさん:03/07/03 14:15
Javaで新しくディレクトリを作るには、どうすればいいですか?
905デフォルトの名無しさん:03/07/03 14:25
File.mkdir()
File.mkdirs()
906904:03/07/03 14:29
ありがとう
907849:03/07/03 15:13
>>850
今だとDLできます。
サイトの問題だったんでしょうか…
http://www.fxstreet.com/nou/fxtrek/senseframescharts.asp

これは通貨のチャートなんだけど、アプレットで、設定とか保存できない。
セキュリティ等の理由でアプレットをアプリケーションに変換するのは無理だということは理解してるんだけど、
いつも、ブラウザでサイトにアクセスし、アプレットを読み込み、同じ設定をし直すというのを歯がゆく感じている。

やっぱ絶対無理なの?
>>907
たぶんサイトの問題
他のバージョンも落とせなかったから
javaのスレがイパーイありすぎてわからないのですが
antとかJunitととかはどこで語ればいいのでしょうか?
911デフォルトの名無しさん:03/07/03 16:28
版違いですいません。
どこで聞けばいいのかわからないんですが
携帯で送られてきたときと五人に送ったときでは
絵が変わる、っていうチェンメの
しくみを教えて欲しいんですが
912デフォルトの名無しさん:03/07/03 16:33
>>908

設定の保存とかはできる
そういう風にプログラムされていれば・・・
だから、どっちにしてもそのサイト運営者がやんなきゃダメだ
こっち側からではどうしようもない
設計者の親切さが足りないな
せめてクッキーでも使ってくれればよかったのにな
まあ、しょうがないアプレットなんだし・・・
913デフォルトの名無しさん:03/07/03 16:37
>>911
メールにはメールの内容の他に
いろんな情報が入っている部分があるんだよ
そのなかに、CCでメール送った人のアドレスがずらっと並んでる
だからそれを調べて5人だったら○○しなさいって言う具合だ
ってボケェコラ 板が違うんじゃ とりあえず絶対あやまれよコラァ 
914911:03/07/03 16:40
すいませんでした。
よくわかりました
ありがとうございました
東京都 主婦 56
915デフォルトの名無しさん:03/07/03 16:47
同packageのクラスを読み込ませたいのですが
シンボルを解決できませんと表示されてしまいます。
パスとかの問題なんでしょうか?
どのようにしたらいいのかよろしくお願いします。
>>915
>1に書いてるFAQを読め。
http://www.gimlay.org/~javafaq/S017.html#S017-06
917デフォルトの名無しさん:03/07/03 16:59
>>915
クラスは読めても
プライベートなところ
つついてるんじゃないの?
918915:03/07/03 17:28
FAQは先に読んでいたのですが
FAQの記述だと同Package内のクラスは何もせずに
インポートできると書いているんですよね・・う〜ん

package A;
public class test {
public static void test(){
System.out.println("test");
}
}

package A;
public class test2 {
public static void main(String args[]){
test Test=new test();
test.test();
}
}
>918
とりあえず、そのコンストラクタかどうかよくわからんメソッド名をヤメレ。
920デフォルトの名無しさん:03/07/03 17:43
>>918
あんたね〜
staticにしてるんだったらnewする必要ないわさ
しかも>>919も行ってるとおり、コンストラクタと同じ名前のメソッド
でもってクラス名は小文字で始まり
インスタンス名は大文字で始まってる
いや別にいいんだけどさ
さっぱりわかってないみたいね
921915:03/07/03 17:44
すいません、ではこれで・・

package A;
  public class test {
    public static void Method(){
    System.out.println("Hello World");
  }
}

package A;
public class test2 {
public static void main(String args[]){
test Test=new test();
test.Method();
}
}
922デフォルトの名無しさん:03/07/03 17:49
しかしすごいな・・・
このソースどうなりますか?
と聞かれたら、迷うな
コンパイルエラー?警告?「test」と表示?
動かしてみないとわからんかった
俺の答えはコンストラクタの返り血があるのでコンパイルエラー
だと思ったが、正解は「test」と表示
お前のおかげで、俺は今まで何やってきたんだ?と再認識させられた
ありがとう>>918
923デフォルトの名無しさん:03/07/03 17:51
だからさぁ
なんでnewするのさ
test Test=new test(); ←コレ無くても動くんじゃないの?
っていうか、あんたのソースstaticばっかりかい?
924デフォルトの名無しさん:03/07/03 17:54
ひとつ聞くが
「A」っていうフォルダを自分で作って
その中に、そのクラス入れてますか?
925915:03/07/03 18:01
>>923
そうですね、ごめんなさい。

>>924
それは当然入れているんですが駄目なんです。
926デフォルトの名無しさん:03/07/03 18:03
なんでだろう
俺の環境では>>918>>921も動くぞ
いったいどんなエラーが出るのか教えてください
確認のために一応聞くが、
・ソースを置いているディレクトリ
・javacを実行しているディレクトリ
・実行するjavacコマンド、引数付き
を書いてくれ。例えばこんな感じ。
・ソースを置いているディレクトリ:C:\some\project\source\A
・javacを実行しているディレクトリ:C:\some\project\source\A
・javacコマンド:javac -d .. Test.java
928915:03/07/03 18:29
>>926
ええ、いけるんですか。。何が悪いんだろう;;
エラーは シンボルを解決できません。
シンボル:クラス test test Test=new test(); です。

>>927
ソースをおいているディレクトリ: C:\java\bin\A
Javacを実行しているディレクトリ: C:\java:bin:A
javacコマンド: javac test2.java
javac -d .. test2.javaでも駄目でした・・
929デフォルトの名無しさん:03/07/03 18:30
☆頑張ってまーす!!☆見て見て↓↓↓↓↓↓↓↓↓
http://endou.kir.jp/betu/linkvp2/linkvp.html
930915:03/07/03 18:31
訂正 
Javacを実行しているディレクトリ: C:\java\bin\A でした。
>>928
java\bin ディレクトリって sdk のインストールでわ?
何かもうわけ分からんな
つか、クラス名に大文字使わないような段階のお人は、
まだパッケージに手を出しちゃだめなり

正解は
C:\java\bin で
javac .\A\test2.java

本当の正解例は
C:\MyDocument\java で、PATH を通しておきつつ
javac .\a\Test2.java
さらにいえば *.classファイルは(ry
932916:03/07/03 19:01
>>915
貴様!やっぱりFAQ読んでなかったな!文盲め!
これを読めと言っただろうが!
http://www.gimlay.org/~javafaq/S017.html#S017-06
こう書いてあるんだよ。
>(2) パッケージと同じ名前のディレクトリを作成し、ソースファイルを
>パッケージ名のディレクトリに移動します。ここで次のように
> コマンドを実行するとパッケージ名のディレクトリにクラスファイルが
> 生成されます。
>
>例) javac foobar/Bar.java
>>921 >>928 がネタにしか見えないんだけど。
名前付けでことごとく逆やってたり、
質問者の意識として斜め上行ったり、
ありがちな横着タコやってたり。
>>912
やっぱこっちからはどうしようもないか。。
まあ、トレイで開きっぱなしって事もできなくはないけどね。
一回閉じたら終わりってのがなんだかなあ。
とにかくサンクス。
935デフォルトの名無しさん:03/07/03 19:46
入力について質問があります。
下のコードのようにユーザーに入力させて入力文字毎に条件分岐をする
プログラムを書いているのですが、どういうわけか、入力文字を正しく
認識しません。
例えばaと入力したのに、条件分岐で正しくaの場合に進まないのです。
どうすればいいのでしょうか?
(String st=a;みたいにすれば正しく認識されるので入力の問題みたいです。)
どなたかよろしく御願いします。m(_ _)m

BufferedReader myReader = new BufferedReader(new InputStreamReader(System.in));

st=myReader.readLine();

if( st =="a"){・・・}
if( st =="b"){・・・}
>>935
equals
>935
String#equals()
938936:03/07/03 20:07
>>936-938
どうもありがとうございます。
本当に助かりました。
>>935

そして、この問題を本当にしっかりと理解しておきたい誰かへ。
「Java言語規定 第2版」の「3.10.5 文字列リテラル」
http://www.y-adagio.com/public/standards/tr_javalang2/lexical.doc.html#101083
941915:03/07/03 20:31
みなさんどうもありがとうございました。
コンパイルはいけました、、
で、、そのー起動させるとエラーになるんですが
これもやり方があるんでしょうか?
942915:03/07/03 20:33
すいません、いけました。
ご迷惑をおかけしました。
943935:03/07/03 20:43
>>940
ありがとうございます。
しっかり読んでおきます。
944nasi:03/07/03 22:34
>>895
そうでなのですか。
ありがとうございます。

>>900
基本的な処理系が既にJavaであるもので。
ありがとうございます。
Win2000+Tomcatでjsp内で定義したjs外部ファイルが
読み込めないのはなんで?
server.xmlかweb.xmlに記述が必要?
947デフォルトの名無しさん:03/07/03 23:38
double値をStringに変換するにはどうしたらいいのでしょうか?
948デフォルトの名無しさん:03/07/03 23:46
String#valueOf(double)

つうか、いくらなんでもそのくらいはAPIドキュメント嫁。
java.lang.Stringのメソッドだぞ…
double d = 1.23;
String s1 = String.valueOf(d);
String s2 = "" + d;
950947:03/07/03 23:51
最低の質問をすいません。
逝ってきまつ・・・
それでも答えてくれた>>948に多謝です。
>>950
責任として次スレ頼んだ
952951:03/07/04 00:36
責任って何の責任だ?ておもた。
俺もついでに逝ってきまつ
>>952
責任として次スレ頼んだ
>>948
確かに、StringのAPI読めば解決する質問多いね。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/String.html
テンプレに含めるか。(w
BufferedWriterクラスにある、
flushメソッドってどういう時に使うんですか?
ドキュメントには「ストリームをフラッシュします」と説明があるのですが
意味がわかりません。
教えて下さい。
956955:03/07/04 11:14
訂正です。
どういうときにというか、何の役割をしているのかが分かりません。
前半部は省略してますが、この中にでてくるflushメソッドです。
ーー(省略)ーー
public void writeData() {
try {
FileDialog fd = new FileDialog (this,"Input File name.", FileDialog.SAVE);
fd.setVisible(true);
String fname = fd.getDirectory() + fd.getFile();
FileWriter fw = new FileWriter(fname);
BufferedWriter bw = new BufferedWriter(fw);
bw.write(ta1.getText());
bw.flush();
} catch (Exception e) {
System.out.println(e);
}
}

お願いします。
>>956
bw.close() がどこにも無いね。ちょっとアレなコードかも。

FileWriter ってのは OS のファイル書き込みAPI呼ぶんだけど、
これは OS 内部でバッファリングしてる可能性があって write しても即座にディスクには書き込まれる保証は無い。
BufferedWriter はそれ自体がバッファリングしてて
write してもバッファが満タンになるまでは FileWriter に対して write しない。

flush すると BufferedWriter はバッファが満タンになってなくても自分のバッファ内のデータを全部
FileWriter に write して、FileWriter の flush() を連鎖的に呼び出す。
FileWriter の flush() は先に書いたように OS 内部でバッファリングしてても
バッファの中身をディスクに書き出すように指示する。
簡単にいうと flush() が無いとファイルの内容が尻切れトンボになる可能性があるわけよ。
ちなみに水洗トイレの水を流すことを"flush"という。

そして>>955よ、
この場合流されるのはウンコなわけだ。
このことを常に心に留めていて欲しい。
960955:03/07/04 12:20
>>957.958
ありがとうございます。
>>959
ある意味ありがとうござます、かな?

flush()があるこで、バッファリングされているものを直ちに書きはじめて、
かつ、全てを完全に吐きだしてくれる。

みたいなことをしてくれるって解釈でいいですか?
でも、flush()がないとなんで完全に吐き出してくれないのかが疑問なのですが。。。
>>960
flush() 無しで即座にディスクに書きに行くと
例えば for(int i = 0; i < 256; i++) out.write(i);
みたいな処理があると、そのたんびにディスクまで書きに行くことになる。
ディスクに書くってのは物理ディスクへのアクセスの遅さもさることながら
ファイルサイズとかファイルの更新日時の更新とかもせにゃいかんわけで。
結構シャレにならないわけですよ。

たぶん HDD とかの寿命も短くなるんじゃないかと。
そもそもclose()がないわけだが
>>961
いままで flush() を使ったことがなかった、、、
今度から気をつけよう。
964955:03/07/04 13:45
>>961
なるほど。
ありがとうございました。

>>957>>962
すみません。
bw.flush();
bw.close();
でした。
close()について語ってください。
public class Aclass extends Applet{
Dat dat1[];  //配列になってます。数はdatnum個
int datnum;
string filename;
Bclass data_in;

(ファイル名入力フォーム => filename)
data_in.B_decode(filename,datnum,dat1[])
}

class Bclass{
public B_decode(string filename,int num,Dat[],X[){
(filenameのファイルからdata数を読み込み(=>num)、Dat[num]を割り当てる。)
}
}


class Dat(){
int a;
int b;
public Dat(int a,int b){
this a = a;
this b = b;
}
}

上記のようなことをやりたいのですが、このときdatnumをBclassで読むため、
C言語的に言うならBclassでmalloc(メモリ割り当て)しないといけないと思います。
そのときAclassからBclassへどうやってdat1[]を渡せばよいのでしょうか?
ぶっちゃけDatがBclassからも見えれば問題ないのですが、どうもうまくいきません。
どうか よろしくおながいします。
( ゚д゚) ポカーン
( ゚д゚) ポカーン
>>966

ファイルを読んだりする前に、「配列変数」 と 「配列オブジェクト」の違いを
明確に理解されることが必要と感じました。

>へどうやってdat1[]を渡せばよいのでしょうか?

と書かれていますが、dat1[] ってなんのことだかわかりません。

メソッドの引数として配列変数を渡すことは出来ません。
渡すことができるのは、配列オブジェクトです。

970966:03/07/04 15:22
>>969
ううむ、どうも見当違いのことをやっているみたいですね。レスサンクスです。

もっかい参考書とにらめっこしてきますです。。。
新スレの季節!!
>>963-964
ソース読めば分かるが、
close()呼ぶと、flush()も内部で呼ばれるよ。
973デフォルトの名無しさん:03/07/04 18:31
>>972
まあ、明示的に書くのが基本でありマナーでもある
「イク」時は「イクッ」っていうのがマナー それと同じだよ
>>963,964
実は使い終わったらきちんとclose()するようにすれば
そのなかでflushは呼ばれるので
ファイルについてはあんまり気にする必要がない場合も多い。

気にする必要があるのは標準出力にリダイレクトしたり
ネットワークに書いたりするとき。

flush()しないとバッファがいっぱいになるまで
ちっとも表示されなかったり
相手に届かなかったりする。


975デフォルトの名無しさん:03/07/04 18:53
呼ばれないOS Unix系
976デフォルトの名無しさん:03/07/04 19:21
サーブレットかJSPでセッションが終了した時に
”セッションが終了しました”みたいなメッセージをhtmlで
表示させたいんですができるのでしょうか?
HttpSessionBindingEventとかを使うのでしょうか?
977デフォルトの名無しさん:03/07/04 19:37
>>976
HttpSessionListenerを実装して
sessionDestroyed()で後処理ができる
ただ、ユーザに対してそれを通知するようにできるのかはわからん
だって、このメソッド呼ばれるときにはセッション切れているはずなので
どのユーザに対しておくりゃいいの?って感じ
アプリ側で切るのなら大丈夫だが・・・
BindListenerに関しても
ま、一回試してみるしかないんじゃない?
978デフォルトの名無しさん:03/07/04 21:27
J2SE 1.4でXMLを,つまりDOMやSAXを勉強したいんですが,
世間ではXercesを使っている例が多いようです.

しかし,デフォルトでJAXP 1.1というのが入っていて,
DOMなんかが使えるようですが,一体どちらを勉強したら良いのでしょうか?

もしかして,XercesはJAXPに対して何かメリットがあるんで,
一般的に使われてるのですか?
979デフォルトの名無しさん:03/07/04 21:57
一般で販売されているjavaでつくったソフトってどうやって逆コンパイルを防いでいるんですか?
もしくは何もやってないんですか?
逆アセンブルを防ぐのは無理なんじゃないかな
981デフォルトの名無しさん:03/07/04 22:04
>>978
もうそろそろ、JAXPに移行し始めてる

>>979
何もやってない
単文字にするぐらいだろやるといっても・・・
だいたい、Javaで出回るソフトなんて
自社のために作ってくれたものだから
そんなもの逆コンパイルしたところで
意味ない
おら、なんか質問すれよ
983デフォルトの名無しさん:03/07/04 23:04
JAVAのしようしょてなに?どんなこと書いてあるの?UMLなの??
あとJAVAプログラマーってコーディングする前ってなにするの?
CALSSの抽出とかもやるの?
984デフォルトの名無しさん:03/07/04 23:11
>>983
全部正解だよ
Javaの仕様書ってJVMのことか?
それとも、APIか?
よくわからんがどっちにしてもJavaについてかかれている
コーディングする前にClass抽出(設計)とタバコ
985デフォルトの名無しさん:03/07/04 23:13
☆頑張ってまーす!!☆見て見て↓↓↓↓↓↓↓↓↓
http://endou.kir.jp/betu/linkvp2/linkvp.html
98614歳:03/07/04 23:17
>>984
ありがと。
JVMって邪場のバーチャルマシンでしょ?
APIって標準ライブラリでしょ?
自分が言ってる仕様書ってSEさんが書いてPGにつくって言ってわたす紙のこと
987デフォルトの名無しさん:03/07/04 23:23
>>986
いや、Javaの仕様書って書くからさ・・
それを言うならプログラム、アプリの仕様書だろ?
UMLは一部の図しか使わない(ユースケースとか)
要件とかが大半を閉める
98814歳:03/07/04 23:25
>>987
親切にありがとう
あと詳細設計てどのくらい詳細なの?
98914歳:03/07/04 23:27
要件とは文の事?
990デフォルトの名無しさん:03/07/04 23:31
書いてるSEにもよる(詳細さは)
要件はたとえば、大まかに言うと
「こういうプログラムを作ります」
細かく言うと
「このダイアログボックスはこういうデザインで・・・・
ここの値はユーザーが変更できるようにします」とか
動作からデザインまで細かく書かれた請求書みたいなものだ
99114歳:03/07/04 23:34
>>990
ありがとうわかりやすいでつ
今サーブレットやってんだけど、フツーのJAVAの開発も
クラスさえ覚えればなんとかなる?
>>992
コーダーと呼ばれる立場なら、それでオケ。

設計に関わりたいなら、それだけじゃ全然ダメ。
>>993
今時コーダーなんているの?どんなプログラマでも詳細はやるだろ?
>>994
だから、実質全然ダメということ。
996デフォルトの名無しさん:03/07/05 00:45
Java、質問、をぐぐってこちらに辿り着きました。
どうしても分からなかったので、教えて頂いて宜しいでしょうか?
Javaを同じページに二つ以上使ってしまうと、片一方が動かなくなります。
両方動かすには、どうしたらいいんでしょうか?
色んなページを検索したのですが、初歩的過ぎるのか何処にも書いていなくて…。
場違いでしたら、お許し下さい。
>>996
もしかして、JavaScriptの話かな。
ここは違うよ。
>997
Appletじゃねーのかな?
999:03/07/05 01:12
999でつ♪
1000とり合戦はしませんでつ

立てた人がリンクしてないので、ついででつ
【初心者】 Java質問・相談スレ27 【大歓迎】
http://pc2.2ch.net/test/read.cgi/tech/1057249423/l50
2
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。