2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2006/07/25(火) 22:43:16
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals を使え。

前スレッド
【初心者】Java質問・相談スレッド87【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1151678944/


/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/

次スレは>>980あたりで。

2 :デフォルトの名無しさん:2006/07/25(火) 22:44:55
>>1
乙!

3 :デフォルトの名無しさん:2006/07/25(火) 22:49:54


グダグダ話まだ続けんの?

4 :デフォルトの名無しさん:2006/07/25(火) 23:06:34
当たり前やんけボケ!!


5 :デフォルトの名無しさん:2006/07/25(火) 23:09:52
>>1


>>4


6 :デフォルトの名無しさん:2006/07/25(火) 23:11:11
>>5
おう!!
ほら、はよはじめんかい。」

7 :デフォルトの名無しさん:2006/07/25(火) 23:12:59
あの馬鹿どもの喧騒の中でちゃんと次スレ立てて誘導した>>1
激しく乙。

8 :デフォルトの名無しさん:2006/07/25(火) 23:13:06
>>1


>>6
otu

9 :デフォルトの名無しさん:2006/07/25(火) 23:15:06
>>8
ou!!
ちゃんと見てるで!
はよせーやボケ!

10 :デフォルトの名無しさん:2006/07/25(火) 23:15:37
>>1


>>6
巣へ帰れ

11 :デフォルトの名無しさん:2006/07/25(火) 23:15:44
Javaの基礎が終わったのだけど、ここから先何をやっていいか分からなくなりました
Web関係に興味があるからStrutsを勉強しようと思って色々ググってみたのですが
JSP・サーブレットも勉強しないといけないのでしょうか?

StrutsはWebアプリを作成する上での外枠、セキュリティ等の部分を最初から考えなくて良いために
Struts(warファイル)を読み込んで、そこからプログラムを作成していくという風に捕らえました
認識の仕方として誤りがありませんか?

以上の二つを回答いただきたいです

12 :デフォルトの名無しさん:2006/07/25(火) 23:34:04
>>10
まあまあそういわんといてや

>>11
勉強できるんやったら全部やっとけ!!
あと自分に何が必要かまず考えたほうがいいんとちゃうか?

13 :デフォルトの名無しさん:2006/07/25(火) 23:38:53
>>12
とりあえずお前は3年ぐらいROMってろ。

14 :デフォルトの名無しさん:2006/07/25(火) 23:39:16
C#とjava、勉強するならどっち?
マジレス希望

15 :名無し募集中。。。:2006/07/25(火) 23:40:13
2択にする意味が分らない
両方覚えろ

16 :デフォルトの名無しさん:2006/07/25(火) 23:40:50
>>14
マジレス希望なら、最終目標を書け。


17 :デフォルトの名無しさん:2006/07/26(水) 00:05:50
>>14
もうJavaは終りだよ
これ以上は何も望まない方がいい
これは、誰も否定しないことだし、薄々感じているだろ?

おとなしくC#やってろ

18 :デフォルトの名無しさん:2006/07/26(水) 00:32:24
>>11
Strutsの前にServlet/JSPはやっておけ。
Strutsは廃れても基盤となるServlet/JSPは残るから。

19 :デフォルトの名無しさん:2006/07/26(水) 04:20:45
スンマソ、ヘタレJAVA使いです。

html+アプレットでスレッドの中でループさせているアプリなんですが、これってIEのページが切り替わると
スレッドが破棄されると今まで思っていました。

ところが、なにやらかのタイミングで全く別のhtmlをロードしてクラスが変わっても、前に読み込んだスレッドが
動き続けることが希に出てくる…MS_VMならこんなことはなかったが…
やっぱり、destroy()の中にスレッドを止める動作を仕込まなくてはいけないのでしょうかね?


20 :デフォルトの名無しさん:2006/07/26(水) 05:17:58
あたりまえだ。MSJVM でもそうだ。

21 :デフォルトの名無しさん:2006/07/26(水) 09:41:00
public static void main(String[] args){
double s=0;
for(int i=1;i<=10;i++){
s+=1/i;
System.out.println(i+":"+s);
}
}

s+=1/i;

s+=1/(double)i;
にしたらうまくいったのですが(double)にどういう意味があるのでしょうか?
iはintであって、sはdoubleなのだからわざわざ入れる必要ないと思うのです

22 :デフォルトの名無しさん:2006/07/26(水) 09:49:07
int/intの結果はintだ。
そのintの結果を代入時にdoubleにキャストしている

23 :デフォルトの名無しさん:2006/07/26(水) 10:02:48
>>21
ここで質問するなとまでは言わないが、その程度の話なら、s += 1/i; の前に
System.out.println("i: " + i + "1/i" + 1/i); とか挟み込むとかして、
ある程度自分でプログラムの動向を探る努力ぐらいはしろよ。

自分で原因を探す力も付けていかないと、後々痛い目みるのは自分だし。


24 :デフォルトの名無しさん:2006/07/26(水) 11:35:55
>>21
s+=1/i;
は、
s = s + 1 / i;
になるわけだけど、
1 / i の結果は、>>22の言うとおりint。
つまり、たとえば、1/2が行われたとき、結果は0.5だが、
intは小数点以下を確保出来ないため、0
s = s + 0;
となる。
s+=1/(double)i;
だと、i = 2のとき、
s = s + 1 / 2.0となる。
1 / 2.0の様に型の違うもの同士の演算は、
javaの仕様で、大きいほうにあわせられるため、int / doubleの結果はdouble。
つまり、s = s + 0.5;となり、
正常に動くと。

(double)はキャスト(型変換)を意味するが、それをしないと計算時に精度が落ちる。

25 :デフォルトの名無しさん:2006/07/26(水) 11:40:10
javaのwin上の開発について質問なんですが
エクリプスで作った場合
ビジュアルエディターで作るのが一般的なんでしょうか?
なんか取っ付きにくいし本もあまりないよな・・・
やっぱり皆さんはwide Studioとか使っているのでしょうか?


26 :デフォルトの名無しさん:2006/07/26(水) 12:39:03
めも帳とこまんどぷろんぷと

27 :デフォルトの名無しさん:2006/07/26(水) 13:02:14
手書きか、NetBeansでガワ作って手直し。
実際ゼロから書くのとあんまりかわらんけど。

28 :デフォルトの名無しさん:2006/07/26(水) 14:37:53
ところで
s = s + 1 / i;
のように半角スペース入れるのはなぜですか?

29 :デフォルトの名無しさん:2006/07/26(水) 14:45:01
その人の好み

30 :デフォルトの名無しさん:2006/07/26(水) 14:45:41
>>28
入れなくても文法上問題ない
演算子の前後に空白を入れるというコーディングスタイルをとっている人間が書くとそうなる
コーディングスタイルは個人の趣味だったりグループの趣味だったりその他いろいろなので
そのときがきたら悩め

31 :デフォルトの名無しさん:2006/07/26(水) 15:47:00
http://chinko.onigiri.name/31.html

32 :デフォルトの名無しさん:2006/07/26(水) 19:20:08
ちょっとコンパイルエラーで
  at java.util.SubList.addAll(Unknown Source)
っつーのが出てきたのだが、API見てもソース探ってもjava.util.SubList
なんてクラスがいないのだが、こいつってどちらさん?
どっかのInnerクラス?

33 :デフォルトの名無しさん:2006/07/26(水) 19:25:06
>>32
それコンパイルエラーじゃなくて実行時エラーじゃないの?

34 :デフォルトの名無しさん:2006/07/26(水) 19:34:23
>>33
すまぬ、実行時エラーだった。。。
ついでに、なんとか所在も判明した。
後でみる人のために書いておくと、AbstractListの中にいる、パッケージ
スコープのクラス。



35 :デフォルトの名無しさん:2006/07/26(水) 21:31:53
jarにテキストファイルをリソースとして入れた場合、そのテキストファイルを読み込むことは可能ですか?
可能ならば、やり方を教えてください。

36 :デフォルトの名無しさん:2006/07/26(水) 21:42:08
getClass().getClassLoader().getResource("ファイル名")

37 :35:2006/07/26(水) 21:46:09
>>36
getResource()した場合、URLが戻ってくるのでFileクラスでインスタンス化できません。
何か良い方法ありませんか?

38 :デフォルトの名無しさん:2006/07/26(水) 21:49:29
getClass().getResource("リソース名")
でいいんじゃね? Class#getResource(String)は
オブジェクトのクラスローダに委譲されることだし

39 :デフォルトの名無しさん:2006/07/26(水) 21:52:50
んじゃあJarFileで直接エントリにアクセス

40 :デフォルトの名無しさん:2006/07/26(水) 21:55:40
だいたいjarの中にあるリソースはファイルじゃないからFileを使おうってのが間違いな気がする
URLなら表せるけど

41 :35:2006/07/26(水) 22:00:58
さっきから、質問が変で申し訳ないです。
テキストのデータをファイルから読み出したいのですが、jarの中のテキストファイルからテキストデータを読み込むにはどうすればよいのですか?

42 :デフォルトの名無しさん:2006/07/26(水) 22:04:43
getClass().getClassLoader().getResource("ファイル名")
なり
getClass().getResource("リソース名")
なりでそのテキストへのURLをとって
URL#openStream()
でInputStreamを開いてInputStreamReaderで読むなりさらにBufferedReaderで囲むなりしてくれ


43 :デフォルトの名無しさん:2006/07/26(水) 22:05:43
それともFileに固執する理由でもあるん?

44 :35:2006/07/26(水) 22:05:49
>>42
それでやってみます。ありがとうございました。

45 :デフォルトの名無しさん:2006/07/26(水) 22:09:08
InputStream fs=HogeClass.class.getResourceAsStream("test.txt");
じゃだめ?

Fileオブジェクトで取り出すのは無理。
(Javaの標準ライブラリだと
アーカイブ内のエントリはファイルとは扱いがちがう)

46 :デフォルトの名無しさん:2006/07/26(水) 22:13:46
おお、そういえばあったね<getResourceAsStream
getClass().getResource("test.txt").openStream()
よりも
getClass().getResourceAsStream("test.txt")
の方がスマートだ

47 :デフォルトの名無しさん:2006/07/26(水) 22:22:27
JAVAのコンパイルするソフトDLしたいんですが、
ダウンロードできる場所おしえてください。よろしくお願い思案す。


48 :デフォルトの名無しさん:2006/07/26(水) 22:59:14
フローチャートと業務ロジックが別々に記述された設計書があるのですが、
フローチャートを上手くコードに落とす方法が思いつきません。
こんなデザインパターン使え、的なものってないですか?
ゴリゴリ書くと死ぬ・・・

49 :デフォルトの名無しさん:2006/07/26(水) 23:07:44
>>47
お前は>>1も読めないのか。半年ROMってろ。


50 :デフォルトの名無しさん:2006/07/26(水) 23:07:52
フローチャートは捨ててしまえ…… orz

51 :デフォルトの名無しさん:2006/07/26(水) 23:12:30
>>48
フローチャート(シーケンス図?)は直接コードに落とすものじゃないだろう。
その書き方じゃ、果たしてオブジェクト指向で設計してるのかどうかも
疑わしい。そうなるとデザインパターン以前の問題。
UMLを見直して、もう一度整理してから再質問汁



52 :デフォルトの名無しさん:2006/07/26(水) 23:22:47
1つのHTMLページ上に配置された別々のサーバの
JAR内のアプレット間で通信する方法ってどんな手が
ありますか?

一応JavaScriptを使った方法はあるのですが、他に
何かいい手はないでしょうか。

53 :デフォルトの名無しさん:2006/07/26(水) 23:24:40
すいません、見落としていました

ダウンロード Java 2 Platform Standard Edition 5.0 (J2SE)をDLすれって書いてありました。
ですが、http://java.sun.com/j2se/1.5.0/ja/download.html開かなかったです。
みなさんはなんのソフトつかってますか?


54 :デフォルトの名無しさん:2006/07/26(水) 23:29:34
>>53
原因は知らんが、とりあえず文字コードをUTF-8に汁


55 :デフォルトの名無しさん:2006/07/26(水) 23:34:16
すいません仕事でjavaはじめたばかりの新人です。
ご相談させてください。

今自分の現場で@のようなソースをいくつか見ます。
たまたま絶対にWHEREに足しこむ値は一つだけのようなのですが(ループで足したりは無いです)
すべてA(または違ったロジック)のように書き直したほうが良いのですか?
経験豊富な皆さん教えてください。(コンパイラは通してないので間違ってたらすいません)

前提として
引数でString型のvalueをもらいます。

@
String sql = "SELECT ....";
sql += "WHERE A = '" + value + "'";
executeQuery(sql);

A
StringBuffer sql = new StringBuffer("SELECT ....");
sql.append("WHERE A = '");
sql.append(value);
sql.append("'");
executeQuery(sql.toString());





56 :デフォルトの名無しさん:2006/07/26(水) 23:36:26
好きなほうを使うが良い。
秒間何万回と繰り返さない限り、違いなんぞわからんよ。

57 :デフォルトの名無しさん:2006/07/26(水) 23:39:24
54さん返事ありがとうございます
文字コードをUTF-8に汁ってどうゆうことですか?

58 :デフォルトの名無しさん:2006/07/26(水) 23:44:29
>>55
前者。

理由その1
 昨日の話にもあったが、最適化されてほとんど同じになる。

理由その2
 改めてソースを見直すときに、普通に読みにくい。 

理由その3
 同じようなコードを書く際、結局そのStringBufferインスタンスを
 生成するのだろうから、可読性を犠牲する上に立つメリットが見あたらない。



59 :デフォルトの名無しさん:2006/07/26(水) 23:44:46
executeQuery(String.format("SELECT ... WHERE A = \'%s\', value));

とか

60 :デフォルトの名無しさん:2006/07/26(水) 23:45:22
>>57
コンピュータ概論とか超基礎教科書から勉強し直せ。


61 :デフォルトの名無しさん:2006/07/26(水) 23:46:01
>>59
1行が80文字を超えない限りにおいて、激しく支持

62 :デフォルトの名無しさん:2006/07/27(木) 00:00:56
60
すいませんまだ学生なので
教えてください

63 :デフォルトの名無しさん:2006/07/27(木) 00:10:26
学生なので教えてって意味がわからない

64 :デフォルトの名無しさん:2006/07/27(木) 00:11:44
>>62
学生とか理由じゃないだろ。
お前は不可解なことがあれば、とりあえずググルなりして調べようという
発想にならないのか。DLページを探す件についてもそうだ。
そんな他力本願100%なやつにプログラミングなんか無理だ。

よかったな、環境を整える前に自分がプログラミングとかの自己努力が
大きく要求される分野に全く向いていないということが判明して。


65 :デフォルトの名無しさん:2006/07/27(木) 00:12:54
>>55
SQLのパラメータ指定するのなら、PreparedStatement使いましょう。
SQLインジェクションにもなってハッピーです。

66 :デフォルトの名無しさん:2006/07/27(木) 00:24:51
>>65
SQLインジェクションになったらHappyなのか?





と揚げ足取ってみた。

67 :デフォルトの名無しさん:2006/07/27(木) 00:56:17

>>55
WEBアプリでなくともパラメータつき使うのはデフォ
また、連結するのが決まっているなら前者のほうが早いし視認性もいい


68 :デフォルトの名無しさん:2006/07/27(木) 01:09:32
>>52ですが、何かいい手はないでしょうか。

69 :デフォルトの名無しさん:2006/07/27(木) 01:33:39
>>57
そのページ(ダウンロードページ)を開くのにIE6を使ってるなら、「表示」→「エンコード」のところで
「Unicode(UTF-8)」を選ぶ。

または他のブラウザで見る。Firefox、Operaなど。

70 :デフォルトの名無しさん:2006/07/27(木) 02:39:21
50個くらいあるjarファイルをclasspathに追加したいんですが、
set classpath=C:\なんとか\かんとか.jar;C:\なんとか\かんとか2.jar...
って塩梅でずらずら並べるしかないんでしょうか?


71 :デフォルトの名無しさん:2006/07/27(木) 03:47:25
>>70
その50のファイルを1つのフォルダにまとめれば?

72 :デフォルトの名無しさん:2006/07/27(木) 04:02:34
71は何言ってるの?

73 :デフォルトの名無しさん:2006/07/27(木) 07:24:18
>>70
基本的には、そのとおり。

74 :デフォルトの名無しさん:2006/07/27(木) 09:57:52
Deflaterクラスで圧縮した情報を格納したbyte[] inputを引数として受け取って
Inflaterクラスで解凍し、Stringとして返す関数を作っているのですが
Inflater.inflateメソッドで解凍された情報を確保する為のbyte配列(byte []result)は
あらかじめ適当なサイズで初期化して確保しておくしかないのでしょうか?
できれば動的にサイズを確保したいのですが・・・。
以下が現在のソースです。

final int maxBufSize = 100000;
public String decompressString(byte[] input)
{
 //Decompress the bytes
 Inflater inf = new Inflater();
 inf.setInput(input);
 byte[] result = new byte[maxBufSize];
 int resultLength;
 try{
  resultLength = inf.inflate(result);
 }catch(Exception e){
  return null; }
 inf.end();

 //Decode the bytes into a String
 String outputString;
 try{
  outputString = new String(result,0,resultLength,"UTF-8");
 }catch(Exception e){
  return null; }

 return outputString;
}

75 :デフォルトの名無しさん:2006/07/27(木) 10:17:17
>>74
ByteArrayOutputStreamを使うんだ

76 :74:2006/07/27(木) 11:50:11
>>75
回答ありがとうございます。
ByteArrayOutputStreamとByteArrayInputStream、InflaterInputStreamを
組み合わせる事で何とかうまく行きました。
ありがとうございました。

77 :デフォルトの名無しさん:2006/07/27(木) 13:12:29

アニメ BEST100
ttp://www.animedepot.biz/DVDlist/2005years_best.htm

1位
http://www.animedepot.biz/DVDlist/title/KVDVD0542.htm
2位
http://www.animedepot.biz/DVDlist/title/KVDVD0518.htm
3位
http://www.animedepot.biz/DVDlist/title/A18D2492.htm
4位
http://www.animedepot.biz/DVDlist/title/KVDVD0533.htm
5位
http://www.animedepot.biz/DVDlist/title/A18D2480.htm
6位
http://www.animedepot.biz/DVDlist/title/KVDVD0512.htm
7位
http://www.animedepot.biz/DVDlist/title/KVDVD0502.htm
8位
http://www.animedepot.biz/DVDlist/title/KVDVD0521.htm
9位
http://www.animedepot.biz/DVDlist/title/KVDVD0505.htm
10位
http://www.animedepot.biz/DVDlist/title/KVDVD0508.htm

78 :デフォルトの名無しさん:2006/07/27(木) 14:58:30
漏れが作ったアプレットを終了させるとこんなメッセージが。
困ったことに、終了させたら出るものでトレースも困難でつorz だれかココがアヤスィって判りませんでしょうか。



Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException: component argument pData
at sun.awt.windows.Win32SurfaceData.initOps(Native Method)
at sun.awt.windows.Win32SurfaceData.<init>(Unknown Source)
at sun.awt.windows.Win32SurfaceData.createData(Unknown Source)
at sun.awt.Win32GraphicsConfig.createSurfaceData(Unknown Source)
at sun.awt.windows.WComponentPeer.replaceSurfaceData(Unknown Source)
at sun.awt.windows.WComponentPeer.replaceSurfaceData(Unknown Source)
at sun.awt.windows.WComponentPeer$2.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)


79 :デフォルトの名無しさん:2006/07/27(木) 16:48:24
趣味グラマー+初心者です。少々詰まったので質問。
画像をjLabelに表示しているのですが、その画像データを直接byte[]に出力することが出来ないかと。

  ImageIcon img = new ImageIcon(thum); // byte[] thum (jpegデータを格納済み)
  jLabelThum.setIcon(img);      //jlabelに画像を表示
  ・・・・・(適当な処理)・・・・
  
この後、画像データを jLabel --> byte[] に入れてしまいたいのです。
現状では、FileOutputStreamで一度ファイルに落としてから、
再度読み込みで、byte[]に格納しているので、無駄を省きたく思っています。
どのクラスを使ったら良いかのヒントだけでも良いので、お願いします。

80 :デフォルトの名無しさん:2006/07/27(木) 18:06:32
>>79
FileOutputStreamで書き出せるのなら
かわりにByteArrayOutputStreamでバッファへ書き出して
toByteArray()でbyte配列へ吐き出せばいいと思うが

81 :デフォルトの名無しさん:2006/07/27(木) 18:16:08
あれ?
FileOutputStreamでファイルに落とせるってことは元々byte[]とかで持ってるってことじゃないのか?

82 :デフォルトの名無しさん:2006/07/27(木) 18:52:09
引数の文字コードにSJIS以外を使いたいのですが、どこで設定するのでしょうか?


83 :デフォルトの名無しさん:2006/07/27(木) 18:54:47
InputStreamReader(InputStream in, String charsetName)
OutputStreamWriter(OutputStream out, String charsetName)

84 :82:2006/07/27(木) 18:59:26
javaコマンドのオプション引数です。
System.out.println(args[0]);みたいなコードを
-Dfile.encoding=UTF-8で実行してるのですが、
UTF-8の文字列をSJISとして解釈したものを
UTF-8に変換してるみたいで化け化けです。


85 :デフォルトの名無しさん:2006/07/27(木) 19:08:08
-D を使わなければいいんでね?

86 :82:2006/07/27(木) 19:12:58
UTF-8の文字列をSJISとして解釈したものを出力するので化けます。

87 :デフォルトの名無しさん:2006/07/27(木) 19:42:01
javaアプレットで任意のファイルを読み書きする方法はありますか?

88 :デフォルトの名無しさん:2006/07/27(木) 19:44:37
つ署名

89 :デフォルトの名無しさん:2006/07/27(木) 21:08:16
>>86
-D を使うな

90 :82:2006/07/27(木) 21:10:39
-Dを使わなくても化けますが。

91 :デフォルトの名無しさん:2006/07/27(木) 21:14:32
Struts難しいね、何回やってもエラー500がでて俺ストレスで死にそう

92 :デフォルトの名無しさん:2006/07/27(木) 21:16:40
>>84
本当に引数の文字列はUTF-8なのか?
本当にShiftJISとして解釈しようとしてるのか?

93 :デフォルトの名無しさん:2006/07/27(木) 21:33:42
Webサーバに何らかのリクエストに対して何らかのレスポンスを返すServletがあるとして、
クライアントに画面表示させてるJSPから、そのServletに非同期通信で
リクエストを送ってレスポンスを待ちたいです
AjaxのXmlHttpRequestみたいな感じですね
ピュアJavaでは、どうやって実装するのがベターでしょうか?
調べてるんですが、JMSとやらを使えばできるのかなーって感じで
イマイチ把握できていません
よろしくお願いします

94 :デフォルトの名無しさん:2006/07/27(木) 21:48:24
>>84
SJIS じゃなくて euc-jp だったりしてー

95 :82:2006/07/27(木) 22:14:14
eucはうまくいくのですが、sjisとutfは全部????に化けます。
しかたないのでnkfでeucにしてから処理することにしました。

96 :デフォルトの名無しさん:2006/07/27(木) 22:25:56
>>95
いったい何をやってるのかまったくわからないのだが、答えは >>83 か?

97 :デフォルトの名無しさん:2006/07/27(木) 22:42:01
>>93
深く考えすぎ
URLクラスのAPIをまずはよーくみてみよう

98 :デフォルトの名無しさん:2006/07/27(木) 23:11:14
初心者向けのテキストや、入門サイトなどにあるコードには
import.awt.*;
の後に
import.awt.event.*;
と記述されていたりするんですが、下の方をぬいてみても別段かわりはありませんでした。
この1行を足す意味はあるんでしょうか。

99 :デフォルトの名無しさん:2006/07/27(木) 23:12:38
>>97
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/net/URL.html
ですよね?
同期非同期の話が見あたらないんですが…httpリクエストは同期だし

100 :デフォルトの名無しさん:2006/07/27(木) 23:21:38
>>99
AJAXがどういう意味で非同期かわかってないような


101 :デフォルトの名無しさん:2006/07/27(木) 23:27:58
>>98
ある。というか、変わりなかったというのがおかしい。
純粋に使われていなかっただけか、コンパイルエラーを見逃してるかの
どちらかだ。


102 :デフォルトの名無しさん:2006/07/27(木) 23:30:57
>>98

たまたまjava.awt.eventパッケージのクラスを使ってないなら無くてもかまわない。
GUI使うからとりあえず、という感覚で常に両方書く人はいる。

ただし、importはドット(.)による階層の包含関係という概念はないので、
import java.awt.*; は
import java.awt.event.*; を「含まない」ので、java.awt.eventパッケージ
のクラスを省略名で使いたいなら、後者も書く必要がある。前者だけでは
後者の働きを含まない。

103 :デフォルトの名無しさん:2006/07/27(木) 23:50:32
>>100
XmlHttpRequestクラスを用いてPOST/GETメソッドでサーバにリクエストを送信して
レスポンスが返ってきたらXmlHttpRequestオブジェクトの状態が変化して
そのときにイベントハンドラonreadystatechangeが呼び出されて
onreadystatechangeに関連づけられてるメソッドを呼び出し時に実行することで
画面の表示の状態を書き換える

レスポンスがあったかどうかはイベントハンドラが拾ってくれるので待ってる必要が無い
ので通信状態と画面の状態を同期させなくて良い
→ブラウザの制御が通信状態に影響を受けない

と解釈しています

104 :デフォルトの名無しさん:2006/07/28(金) 00:27:52
>>52ですが、何かいい手はないでしょうか?

105 :デフォルトの名無しさん:2006/07/28(金) 01:05:57
>>103
purejavaでやりたいということはクライアントはブラウザではないってことか?
なら自由にスレッド使えばよろしい


106 :デフォルトの名無しさん:2006/07/28(金) 01:11:06
>>105
クライアントはブラウザです
WebインターフェースをJSPで作った場合の話です
Javaは一応囓ってはいるのですが、ネットワーク関係には全く触れなかったので
おかしなこと言ってたら指摘してください


107 :デフォルトの名無しさん:2006/07/28(金) 01:46:30

質問です。

int i = Integer.parseInt(str); というのはよく使ってましたが、
String型の配列をint型の配列に型変換することはできるのでしょうか?


public static void main(String[] args){
  int[] i = Integer.parseInt(args);
}
というようなプログラムを作成してみたところ、コンパイルエラーでした。
メソッドparseIntというシンボルを見つけられないそうです。


Q.どうやればString型の配列をint型の配列に変えれますか。




108 :デフォルトの名無しさん:2006/07/28(金) 01:54:41
>>107
int[] i = new int[args.length];
for(int j=0; j<args.length; j++){
 i[j] = Integer.parseInt(args[j]);
}

配列はあくまでもオブジェクト・参照型であるということを心得るべし。
それがわかってれば Integer.parseInt(args) なんて試す前から
コンパイルエラーの叫びが聞こえてくるのがわかる。


109 :デフォルトの名無しさん:2006/07/28(金) 02:24:57
>>101-102
ありがとうございます
たまたまだったんですね・・肝に銘じておきます

110 :デフォルトの名無しさん:2006/07/28(金) 03:44:56
>>108
for分で回すんですね〜
勉強になりました
直接配列から配列にぶち込めるメソッドかなにかあればいいのになー

111 :デフォルトの名無しさん:2006/07/28(金) 03:45:57
質問させていただきます。
ローカルにあるファイルをサーバー上に保存させるアプレットを作成しようと考えています。
通信経路はHTTP,FTPです。

アップロード中、今Xバイト送信し終わった等の動的な取得はできるのでしょうか?

112 :デフォルトの名無しさん:2006/07/28(金) 03:56:13
質問です。
配列が多いので管理に困ってるのですが、
配列名にx0[],x1[],x2[],x3[]と名前をつけてあるとして、
for文を使用して
for(int i=0;i<=3;i++){
value[] = ("x" + i)[];
}
というような配列名のiの部分だけをインクリメントして
繰り返しをするような都合の良い方法はないでしょうか?
これだと有無を言わさずエラーが出るのは分かってるのですが。。。

113 :デフォルトの名無しさん:2006/07/28(金) 04:05:36
>>111
OutputStream で送信したバイト数を数えればいい。
>>112
どうしてもしたければ配列の配列にしろ。

114 :デフォルトの名無しさん:2006/07/28(金) 06:21:47
>>110
メソッドが無ければお菓子を作ればいいのよ
public class IntegerArray {
public static int[] parseInt(String[] s) {
int[] i = new int[s.length];
for (int j = 0; j < s.length; j++) {
i[j] = Integer.parseInt(s[j]);
}
return i;
}
public static int[] parseInt(String[] s, int radix) {
int[] i = new int[s.length];
for (int j = 0; j < s.length; j++) {
i[j] = Integer.parseInt(s[j], radix);
}
return i;
}
}


115 :デフォルトの名無しさん:2006/07/28(金) 06:40:00
すみません(><

複数のappletクラスがあって、IE上で表示している場合にawtか何かでボタンをクリックしたら、
今表示しているappletを切替える方法って何か良い命令ありませんか?


116 :デフォルトの名無しさん:2006/07/28(金) 06:41:48
>>115
JavaScript でヤレ

117 :デフォルトの名無しさん:2006/07/28(金) 06:42:28
>>116
ちょw

118 :93:2006/07/28(金) 07:08:24
どなたか、お願いします。

119 :デフォルトの名無しさん:2006/07/28(金) 07:19:38
>>115
根本的におかしい、切り替えるべきはAppletじゃなくてPaneだろ

>>93
XMLHttpRequestで非同期なのはブラウザなのであって
サーバからしてみれば同期通信しかしてないぞ
意味が分かるか?ようはスレッドだ

120 :デフォルトの名無しさん:2006/07/28(金) 07:19:38
JSP の中に Ajax 使って通信する JavaScript 書きゃ良いだろがこのひょっとこめ

121 :デフォルトの名無しさん:2006/07/28(金) 07:20:37
初心者相手に言葉遊びしてるのははたから見て間抜け

122 :デフォルトの名無しさん:2006/07/28(金) 07:21:11
ってクライアント側じゃなくてサーバの話か?
普通に作れってだけだな

123 :デフォルトの名無しさん:2006/07/28(金) 07:46:41
>>112
こんなのでどうよ?
HashMap<String,int[]> hm = new HashMap<String,int[]>();
int[] x0 = new int[10]; hm.put("x0", x0);
int[] x1 = new int[11]; hm.put("x1", x1);
int[] x2 = new int[12]; hm.put("x2", x2);
int[] x3 = new int[13]; hm.put("x3", x3);
for (int i = 0; i < 4; i++) {
int[] v = hm.get("x" + String.valueOf(i));
System.out.println(v.length);
}


124 :デフォルトの名無しさん:2006/07/28(金) 08:05:14
こっちの方がアホくさくていいか
HashMap<String,int[]> hm = new HashMap<String,int[]>();
for (int i = 0; i < 4; i++) {
int[] x = new int[10 + i]; hm.put("x" + String.valueOf(i), x);
}
for (int i = 0; i < 4; i++) {
int[] v = hm.get("x" + String.valueOf(i));
System.out.println(v.length);
}


125 :デフォルトの名無しさん:2006/07/28(金) 08:11:19
>>112
>>123
順序があるんだから、普通に配列かListで括ればいいだろ。


126 :デフォルトの名無しさん:2006/07/28(金) 09:26:00
>>112
こんなのどうよ

for(int i = 0; i <= 3; i++) {
    System.out.println("int[] v = x%d")
    System.out.println("System.out.println(v.length);");
}

これ実行して出てきたのをコンパイル

127 :デフォルトの名無しさん:2006/07/28(金) 09:26:41
ばかwwww orz

System.out.println("int[] v = x%d", i);

128 :デフォルトの名無しさん:2006/07/28(金) 09:27:50
あーちくしょう。ダメだ頭寝てるよ…… orz


素直に二度寝します …… orz

129 :デフォルトの名無しさん:2006/07/28(金) 10:40:40
Swingで「子ウィンドウ」を作ることはできないんでしょうか?
モーダルではなくて、常に親ウィンドウよりも手前に表示されていて、
MDIとは違って親ウィドウの外にも移動できるようにしたいのですが。


130 :デフォルトの名無しさん:2006/07/28(金) 12:48:52
>>129
java.awt.Window#setAlwaysOnTop(boolean)でいいのかな?
こんな感じで
JFrame f = new JFrame("parent");
JDialog d = new JDialog(f, "child");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
d.setAlwaysOnTop(true);
f.add(new JTextField());
d.add(new JTextField());
f.setSize(300, 300);
d.setBounds(50, 50, 100, 50);
f.setVisible(true);
d.setVisible(true);


131 :115:2006/07/28(金) 13:03:37
>>116
つまり、appletを表示するhtmlを沢山ズラズラ書いて、appletとJavaScriptと変数か何かで通信させて、
何かのトリガで.location=xxxx.htmで切り替えすよね。
その方法なら判るのですが、もっとスマートに逝かんもんかと思いまして(^^ゞ

>>119
教えて君でスンマソ。kwsk

132 :デフォルトの名無しさん:2006/07/28(金) 13:05:55
初心者ですが、宜しくお願いします。

FileWriter fw = new FileWriter(ファイルのパス);
fw.write(書き出す文字列);

このwrite()メソッドについて質問があります。
FileWriterは出力のキャラクターストリームであるため、
BufferedWriterのようにバッファリングをして書き込むのではなく
一文字ずつファイルにアクセスし書き込まれるのではないのですか?
にもかかわらず、fw.flush()などをつかってバッファをフラッシュしないとファイルに
書き込まれないのは、FileWriterもバッファリングして書き込んでるのでしょうか?
FileWriterはバッファリングをしないものだと教わったので良く分かりません。
ご教授お願いします。



133 :デフォルトの名無しさん:2006/07/28(金) 13:35:10
>>132
write() メソッドに渡される文字はバッファに入らないが、
このメソッドを呼び出すたびにエンコーディングコンバータが呼び出されて、
この結果がバッファに蓄積されてから出力ストリームに書き込まれる。
つまり、write()の度にコンバータを呼び出して処理するという意味でバッファリングしないということ。
だからwrite()呼び出しの頻度が高いならバッファリングするWriterでラップすべきだと思う。


134 :デフォルトの名無しさん:2006/07/28(金) 13:38:54
StringTokenizerを使用して文字を取り出しているんですが、
スペースで区切られた内容の[ふ ん こ ろ が し]
というデータを取り出す時に最後の「もち」だけを
くっつけて表示したい場合はどうすればいいんでしょうか?
教えてください。

135 :134:2006/07/28(金) 13:43:53
すいません。もちじゃなくて[がし]でしたorz

136 :デフォルトの名無しさん:2006/07/28(金) 13:46:29
[ふ ん こ ろ が し]の最後に「もち」はありませんが?
ところで文字列を[]で囲う表現をちらほら見掛けるけど出自はどこかね?

137 :デフォルトの名無しさん:2006/07/28(金) 13:48:22
>>134
StringTokenizerは使わないでString#split()を使う。

138 :134:2006/07/28(金) 13:52:06
>>137
StringTokenizerで他の文字だけを抜き出して
[がし]だけをString#split()でだせばいいのでしょうか??

139 :デフォルトの名無しさん:2006/07/28(金) 13:54:10
>>130
それだと、常に全てのウィンドウよりも前に
出てきてしますのですが、
やりたいのは「常に親ウィンドウよりも前に」
出すことです。


140 :デフォルトの名無しさん:2006/07/28(金) 13:54:50
>>138
split()を使えばStringTokenizerを使う必要はないだろう。

141 :デフォルトの名無しさん:2006/07/28(金) 13:55:17
>>135
StringTokenizer st = new StringTokenizer("ふ ん こ ろ が し");
ArrayList<String> list = new ArrayList<String>();
while (st.hasMoreTokens()) {
list.add(st.nextToken());
}
for (int i=0; i<list.size()-2; i++) {
System.out.println(list.get(i));
}
System.out.println(list.get(list.size()-2)+list.get(list.size()-1));


142 :デフォルトの名無しさん:2006/07/28(金) 13:57:10
split()はややこしいかな。
正規表現の指定がちょっと複雑化も。

そもそも、[ふ ん こ ろ が し]は、文字も、文字数も固定なのか?

前提が曖昧。



143 :デフォルトの名無しさん:2006/07/28(金) 13:58:09
>>138
String[] result = "ふ ん こ ろ が し".split(" ");
for (int i=0; i<result.length-2; i++) {
System.out.println(result[i]);
}
System.out.println(result[result.length-2]+result[result.length-1]);


144 :134:2006/07/28(金) 14:09:05
ふんころがしは可変でお願いします。
最初と最後に$マークが付いている文字列です。

145 :デフォルトの名無しさん:2006/07/28(金) 14:15:33
>>144
文字数も、文字も可変なら、
くっつけたいのは最後の2文字ってことでいいの?

146 :134:2006/07/28(金) 14:33:25
>>145

そうです。文字羅列の
$start ふ ん こ ろ が し $endという文章の
がしをくっつけたいのです。

147 :デフォルトの名無しさん:2006/07/28(金) 14:39:19
>>146
じゃあ、前にレスしてくれている人がいるように、
StringTokenizerでもsplit()でも使って分割した後に、
あらためて最後の2要素をくっつければいいだけじゃないの?

148 :134:2006/07/28(金) 14:51:39
こういう感じのソースなんですけど
ここからどう変更すればでるでしょうか・・・
if (str.startsWith("$start")) {
int counter = 0;
String temp = null;
String s = "";
StringTokenizer st = new StringTokenizer(str);
while (st.hasMoreTokens()) {
counter++;
String token = st.nextToken();
if (counter == 2) {
DataType.add(token);
}
if (counter == 3) {
DataType.add(token);
}
if (counter == 4) {
DataType.add(token);
}
while(token.equals("$end")){
s = st + " " + token;
DataType.add(s);
}}}

149 :134:2006/07/28(金) 14:59:29
すいません。できました。orz
ありがとうございました。

150 :デフォルトの名無しさん:2006/07/28(金) 16:39:21
>>139
うるさいうるさいうるさい!>>130でもちゃんと「常に親ウィンドウよりも前に」あるんだから!
日本語の不自由な平民を相手にするなんて、あんた、感謝しなさいよね。
複雑に考え過ぎるのはあまり頭によくないんだゾ!ずっきゅ〜ん

JFrame f = new JFrame("parent");
JDialog d = new JDialog(f, "child");
JDialog d2 = new JDialog(f, "child2");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new JTextField());
d.add(new JTextField());
d2.add(new JTextField());
f.setSize(300, 300);
d.setBounds(50, 50, 100, 50);
d2.setBounds(70, 70, 100, 50);
f.setVisible(true);
d.setVisible(true);
d2.setVisible(true);


151 :デフォルトの名無しさん:2006/07/28(金) 16:46:34
>>150
ずっきゅ〜んって…w
勢いにワラタw

152 :デフォルトの名無しさん:2006/07/28(金) 16:52:43
>>150
シャナなのかルイズなのかはっきりさせろよw

153 :デフォルトの名無しさん:2006/07/28(金) 16:58:29
てか、>>129はこれ嫁。
http://www.amazon.co.jp/gp/product/4873112788/503-7295059-4599152

6章を読み切れば、応用でその希望は実現できるだろうし、
他にもお前みたいなことを考えるやつにはヨダレが出るような
内容が満載だと思うぞ。特にファイルチューザハックとか。


154 :デフォルトの名無しさん:2006/07/28(金) 17:09:01
>>150
シャナ
ルイズ
りんご?

155 :デフォルトの名無しさん:2006/07/28(金) 17:10:23
てか、わざわざハックしなくても150でいいんじゃないのか
子が常に親の上だけど他のアプリに切り替えれば隠れる
130は余計なことしてるんだ

156 :デフォルトの名無しさん:2006/07/28(金) 17:22:31
>>150
これだと親ウィンドウをアクティブにしたら
子ウィンドウが隠れちゃいませんか?

最初これやってみてできなかった気がするんですが。
もう一回やってみます。

157 :デフォルトの名無しさん:2006/07/28(金) 17:23:35
I/0 について質問します。
FileWriter であるすでに存在する、かなり大きなファイルを上書きしている最中で、close命令の
前に何らかの原因でアプリケーションが落ちたり、コンピュータの電源が落ちた場合、ファイルの
中身は消えています。かなり初歩的な質問で申し訳ありませんが、回避するにはどうしたらよい
でしょうか?宜しくお願いします。

158 :デフォルトの名無しさん:2006/07/28(金) 17:26:23
>>150そもそも2つ作る意味は?

>>157 flushしたらいいんじゃね?
てか書き込み中に電源落ちたらやばくない?


159 :デフォルトの名無しさん:2006/07/28(金) 17:29:53
こっちで試したらうまくいった
環境はWinXP+SE1.5

160 :デフォルトの名無しさん:2006/07/28(金) 17:39:28
>>158
決してDialog同士の関係を見たかったわけではないっ!
そんなこと私が知るか!じゅ〜すぃ〜


161 :129:2006/07/28(金) 18:01:37
もう一回やったら動きました。
ありがとうございました。


162 :デフォルトの名無しさん:2006/07/28(金) 18:04:20
今週のJavaWorldにjavaのプログラム構造を視覚化するツール,Structureとかいうものの紹介文があったんですけどURLググレなくています・・・
知っている人いますか?

163 :デフォルトの名無しさん:2006/07/28(金) 19:40:32
jarsigner で 日本語クラス名を含むjarに署名しようとしてるんですが
何か、マニフェストのクラス名が化けちゃうんですが
誰かこんなのやった人いませんか??

164 :デフォルトの名無しさん:2006/07/28(金) 20:20:53
超初心者な質問なんだけどJavaってどんな事に使うんですか?

165 :デフォルトの名無しさん:2006/07/28(金) 20:28:09
あんなことやそんなことだな

166 :デフォルトの名無しさん:2006/07/28(金) 20:32:58
主にオナニーに使います

167 :デフォルトの名無しさん:2006/07/28(金) 20:33:35
>>165
いくら夏だからって可哀相だろ、お前も最初は何も知らなかったわけだろ

>>164
仕事

168 :デフォルトの名無しさん:2006/07/28(金) 20:42:12
>>164
そんな質問の仕方じゃまともな回答は得られないと思われ
あえてマジレスするなら、プロジェクトに関わってるチームはJavaを常に持ち歩いている
最近は暑くなってきたしJavaは営業に行くときも欠かせないよ

169 :デフォルトの名無しさん:2006/07/28(金) 21:02:07
なんだネタスレかよ、頼った俺が悪かったな

170 :デフォルトの名無しさん:2006/07/28(金) 21:04:19
>>162
URLとか全部載ってるじゃん
structure101でぐぐってみな

171 :デフォルトの名無しさん:2006/07/28(金) 21:11:54
>>164
じゃあ、マジレスを

プログラミング

172 :デフォルトの名無しさん:2006/07/28(金) 23:33:24
>>157
テンポラリファイルに書き出してリネームする。
あと「Rename atomic テンポラリ」でググれ。

173 :デフォルトの名無しさん:2006/07/29(土) 00:26:33
>>170
さんくすこ。手元に本ないのよ。
立ち読みして名前とかでグぐれるかと思ったらうまく引っかからなかったの。

174 :デフォルトの名無しさん:2006/07/29(土) 01:53:11
>>164
プログラミングなんて、目的があって勉強し始めたやつじゃないと
普通に挫折するから、深入りせんでいいよ。乙

175 :デフォルトの名無しさん:2006/07/29(土) 02:00:35
学生時代はやたら真面目に勉強してたが、趣味グラムには興味を持てなかった
社会人になってからはやたら趣味グラムが楽しい・・・
周囲のレベルに合わせなくて良いというのがこんなに快感だなんて

176 :デフォルトの名無しさん:2006/07/29(土) 03:27:48
自分はやさしいJavaが終わったところなのですが、基礎が出来ただけで応用力がないので
独習Javaで問題を解いていこうと思っているのですが、独習Java持っている方いますか?
どのような問題が出るのか知りたいです

177 :デフォルトの名無しさん:2006/07/29(土) 03:44:18
>>176
応用力とか言うなら、UML・デザインパターンを勉強してオブジェクト指向脳を
構築していく方がいいと思うぞ。
ぶっちゃけ、1冊通したぐらいじゃ、オブジェクト指向言語が他とどう違って、
どのように有効なのかわかってないだろ?
Javaでデザインパターンを解説してる本は多いし、それを読んでるうちに
勝手に文法力も強化されてくる。

これなんか読んでみれ。
http://www.amazon.co.jp/gp/product/4797327030/503-7295059-4599152

178 :176:2006/07/29(土) 04:12:42
>>177
なるほど着目する所がずれていました、経験者の方のアドバイスは本当に参考になります

179 :デフォルトの名無しさん:2006/07/29(土) 08:50:54
>>175
わかるな〜
漏れも仕事でjavaやっていたが、精神的に疲れたので、無関係な職種に転職した。
すると、自分のペースでするプログラミングが楽しくて楽しくてw
趣味グラマー最高!

180 :デフォルトの名無しさん:2006/07/29(土) 13:57:02
System.out.println(data[2]);

System.out.println(data[data[2]]);

System.out.println(data[data[data[2]]]);
のちがいってなんなんでしょうか?

181 :デフォルトの名無しさん:2006/07/29(土) 14:01:06
data[2]には2が入っているというわけではないということさ

182 :デフォルトの名無しさん:2006/07/29(土) 14:04:56
えーとじゃあたとえばint data[]={5,3,1,4,2};とすると、
System.out.println(data[2]);
では、3が表示されるんですよね?
となると、System.out.println(data[data[1]]);を実行したらなにが表示されるんでしょうか?



183 :名無し募集中。。。:2006/07/29(土) 14:13:33
>>182
それぐらい実行しろバカ

184 :デフォルトの名無しさん:2006/07/29(土) 14:14:44
試せよw 試さなくてもおかしいけどw

185 :デフォルトの名無しさん:2006/07/29(土) 14:17:03
すいません、かきかたが悪かったです。
dataを2,1,4,5,3でおくと1が表示され
5,3,1,4,2でおくと4が表示されてどういったものが表示されるのかがわからないんです

186 :デフォルトの名無しさん:2006/07/29(土) 14:21:40
日本語が不自由な人はさようなら

187 :デフォルトの名無しさん:2006/07/29(土) 14:22:11
コンピュータ業界では順番は0から数える。

188 :デフォルトの名無しさん:2006/07/29(土) 14:24:27
int data={5,3,1,4,2};で
System.out.println(data[data[1]]);で4と表示されるのがどうしてもわかりません。
なぜ3でなく4なんでしょうか

189 :デフォルトの名無しさん:2006/07/29(土) 14:31:38
>>188
>>187

190 :デフォルトの名無しさん:2006/07/29(土) 14:35:34
おまえらちゃんとおしえてやれよwいじわるさんだなwww

191 :デフォルトの名無しさん:2006/07/29(土) 14:41:08
data[0]は5,data[1]は3てのかわかるよな。
data[data[1]]はdata[1]が3だから置き換えると結局data[3]になるよな。
data[3]は4だ。だから4と表示される。
わかんねーなら0番から始まる下駄箱の絵を書いて考えろ。

0 1 2 3 4配列の添え字
5 3 1 4 2格納されてるデータ

192 :デフォルトの名無しさん:2006/07/29(土) 14:51:07
なんて丁寧な人なんだチクチョウ!

193 :デフォルトの名無しさん:2006/07/29(土) 15:06:51
最前面に表示されていないプログラムに対して、
画像を取得したりクリックしたりできませんか?

194 :デフォルトの名無しさん:2006/07/29(土) 15:15:24
なにをききたいのだかまったくわかりません

195 :デフォルトの名無しさん:2006/07/29(土) 16:30:30
プロセスメモリを閲覧したいのですがどうすればよろしいでしょうか

196 :デフォルトの名無しさん:2006/07/29(土) 17:09:03
Java5 の質問です。

1.4 では、マップの内容を一覧するような場合

Map map = new HashMap(); // キー、値ともに String

// map に何か入れる処理

Iterator ite = map.keySet().iterator();
while ( ite.hasNext() ) {
  String key = (String) ite.next();
  String value = (String) map.get( key );
  System.out.println( value );
}

のような記述になると思うのですが、これの宣言部分を、 Java5 で、

Map <String,String> map = new HashMap <String,String> (); // キー、値ともに String

のような宣言に変えた場合、後半の while文の内容はどう変わる(変えることができる)のでしょうか?
  String value = (String) map.get( key );
のキャストが要らなくなる、というのはわかるのですが、それ以外は変わりませんか?

197 :デフォルトの名無しさん:2006/07/29(土) 17:18:55
うん。

198 :デフォルトの名無しさん:2006/07/29(土) 17:21:50
気持ちはわかるがね。単にコンパイラがそれを裏でやってるって分かれば怖くない。

199 :デフォルトの名無しさん:2006/07/29(土) 17:22:37
// 1.5
for ( String key : map.keySet()) {
  String value = map.get( key );
  System.out.println( value );
}

そもそも値しかイテレートしないときは 1.4 でも map.values() 使う方が効率的。その場合は
// 1.5
for ( String value : map.values() ) {
  System.out.println( value );
}

200 :デフォルトの名無しさん:2006/07/29(土) 17:28:58
RandomAccess実装してたらiループに切り替えたりとかしてくれるのかねぇ

201 :デフォルトの名無しさん:2006/07/29(土) 17:45:37
>>199
なるほど、やはり便利になっていますね。
助かりました!ありがとうございます。


202 :デフォルトの名無しさん:2006/07/29(土) 19:20:39
JSPで、生成したクラスを持ちまわしたいのですが
うまくいきません、何が問題なのでしょうか・

下記が、コードです。

if(session.getAttribute("DBM")==null)
{
     DBC DBM=new DBC();//DBモジュールの生成
     DBM.open()//DBのオープン
      session.setAttribute("DBM",DBM);//session変数に格納
}
else
{
     DBC DBM = (DBC)session.getAttribute("DBM");//sesion変数より受け取り
}


これで、受取ったDBクラス使用しDBセッションを持ちまわしたいのですが
エラーが発生してしまいます。。
一度、生成を行ったクラスを持ちまわすのにsession変数を
用いようと考えましたが、このような場合には別の方法の方が良いのでしょうか?



203 :デフォルトの名無しさん:2006/07/29(土) 21:17:07
DBモジュールとやらはシリアライズ可能か?
でないならそういう設計は拙い

204 :デフォルトの名無しさん:2006/07/29(土) 21:41:14
>>203
レスありがとうございます。
先ほど自己解決できました。

構文の書き方に問題があったようです。
下記の様に改変した所問題なく動作いたしました。

DBC DBM = (DBC)session.getAttribute("DBM");//sesion変数より受け取り

if(DBM==null)
{
DBC DBM=new DBC();//DBモジュールの生成
DBM.open()//DBのオープン
session.setAttribute("DBM",DBM);//session変数に格納
}


ありがとうございました。

205 :デフォルトの名無しさん:2006/07/29(土) 22:31:59
すいません

暗号化してみたくて
ttp://d.hatena.ne.jp/trash717/20050625
このページのソースコピってやってみたのですが、

上の方で暗号鍵を指定しているようなのですが、

String key = "abc";

その下でもテキストがあるのですが、

byte[] ivbb = "testiv".getBytes();  ←ここってなんでしょうか?
IvParameterSpec ivspec = new IvParameterSpec(ivbb);
// Triple-DES encryption
Cipher cipher = Cipher.getInstance("DESede");
cipher.init(Cipher.ENCRYPT_MODE, myTripleDesKey,ivspec);
                                 ↑ここを なくしても暗号化出来るのですが、第2キーみたいなモノなのでしょうか??

206 :デフォルトの名無しさん:2006/07/30(日) 00:59:34
>>205
DES-EDEのための乱数列の初期化ベクトルを指定している
暗号鍵とは別物

207 :デフォルトの名無しさん:2006/07/30(日) 03:20:20
>>206
ありりです

java難しいです

208 :デフォルトの名無しさん:2006/07/30(日) 05:01:19
いやそれはjava難しいのと問題違う

209 :デフォルトの名無しさん:2006/07/30(日) 05:35:50
>>205
Cipher cipher = Cipher.getInstance("DESede");
この部分だけどCBCモードを使用するように変えたほうがいいよ。
Cipher cipher = Cipher.getInstance("DESede/CBC/PKCS5Padding");

理由はSunJCEプロバイダのデフォルトモードがECBモードのため。

210 :デフォルトの名無しさん:2006/07/30(日) 09:55:55
「Javaは難しい」的な発言をする == Javaを理解してませんと自白


211 :デフォルトの名無しさん:2006/07/30(日) 10:11:13
equalsならtrueだけどそれはfalseよ

212 :デフォルトの名無しさん:2006/07/30(日) 10:14:45
ArrayList<String>[] data = new ArrayList<String>[MAX];

ってやろうとしたら「汎用配列を作成します」とかってコンパイラに
怒られて、他にも色々試したものの、しっくりくる結果が得られなかった。
ArrayList<E> の配列ってどうやっても作成不可能なの?


213 :デフォルトの名無しさん:2006/07/30(日) 10:50:35
つttp://www-06.ibm.com/jp/developerworks/java/050218/j_j-jtp01255.html

214 :デフォルトの名無しさん:2006/07/30(日) 14:12:37
StringBuilderが扱える容量の限界を調べる方法ってある?

215 :デフォルトの名無しさん:2006/07/30(日) 14:18:01
インスタンスの生成の話?内部で設定されてるキャパの話?

216 :デフォルトの名無しさん:2006/07/30(日) 14:18:10
どういう限界を調べる気だ?

217 :デフォルトの名無しさん:2006/07/30(日) 14:25:00
先にOutOfMemoryErrorが起こりそうだw

218 :デフォルトの名無しさん:2006/07/30(日) 14:55:30
ここ聞くのはスレ違いかもしれませんが

X=A+(B+C)/(D+E**(F*G))を

Polish記法で表すと
=X+A/+BC+D*E**FG

逆Polish記法で表すと
XABC+DEFG***+/+=

でよろしいでしょうか?

もしスレ違いなら、お手数ですが誘導お願い致します

219 :デフォルトの名無しさん:2006/07/30(日) 14:58:13
死ね

220 :デフォルトの名無しさん:2006/07/30(日) 15:05:12
>>218
まあスレ違いではあるな。分かっていてやってるうんこは逝ってよし
ところで、
=X+A/+BC+D*E**FG

X=A+(B+C)/(D+E*(F**G))
の意味だと思うが。
逆に
XABC+DEFG***+/+=

X=A+(B+C)/(D+E*(F**G))
とも解釈できるので、こちらはambiguousじゃないのか?

221 :デフォルトの名無しさん:2006/07/30(日) 15:21:29
>>220
どうもレスありがとうございました

=X+A/+BC+D**E*FG
XABC+DEFG* **+/+=

と書くと正解なのでしょうか?


222 :デフォルトの名無しさん:2006/07/30(日) 15:31:53
だからスレ違いだと言ってるだろう
うんこは優しくするとすぐこうだ
がんばって板なりスレなり探せ


223 :デフォルトの名無しさん:2006/07/30(日) 15:34:41
>>222
うっとおしいならスルーするなりあぼんするなりしておけよチンカス君

>>221
それでおk

224 :デフォルトの名無しさん:2006/07/30(日) 15:39:11
>>223
マンカスくんに言われたくないな

>>221
逆Polish記法の処理系による
空白を無視するような処理系なら意味がない
**の代わりに^とかで表記すべきかも
FORTRANとかの文を処理するのなら仕方ないが

225 :デフォルトの名無しさん:2006/07/30(日) 16:32:12
>>215-217
遅レスすまん
StringBuilder に次々と追加していって OutOfMemoryError が起こる限界です

226 :デフォルトの名無しさん:2006/07/30(日) 16:39:22
Runtime.getRuntime().freeMemoryだったかな

227 :デフォルトの名無しさん:2006/07/30(日) 16:41:21
>>225
OutOfMemoryでいいのなら設定しだいで8KBくらいでだせるんじゃ

228 :デフォルトの名無しさん:2006/07/30(日) 18:17:53
>>223
前半は別に構わないが、後半の発言でお前も厨認定

229 :デフォルトの名無しさん:2006/07/30(日) 23:50:11
Javaって本当に安全な言語ですよね。
C++に転向するときに苦労しそうです。。。
特にオブジェクトの開放とか忘れそうです。Javaなら
使い終わったオブジェクトにnullを代入すればGCが
かき集めてくれるんですけどね。

230 :デフォルトの名無しさん:2006/07/30(日) 23:52:50
まあC++にはもっといいイディオムがあるからな

231 :デフォルトの名無しさん:2006/07/31(月) 00:04:31
>>229
>オブジェクトにnullを代入すれば
ここに間違いが2点ほど

>GCがかき集めてくれる
ここに落とし穴が1点ほど

232 :デフォルトの名無しさん:2006/07/31(月) 00:19:46
>>231
乙。俺もどう突っ込めばいいものやら途方に暮れていたところだ。

233 :デフォルトの名無しさん:2006/07/31(月) 00:36:09
>>231
説明プリーズ

234 :デフォルトの名無しさん:2006/07/31(月) 00:42:53
漏れも詳しいのキボンヌ

235 :デフォルトの名無しさん:2006/07/31(月) 00:46:00
>>231 ではないが・・・
「オブジェクトにnullを代入」→間違い。代入できるのは変数。
どこからも参照されなくなったオブジェクトがGCの対象となる、というだけ。
他の変数から同一オブジェクトを参照していればこの限りではない。
変数のスコープを抜ければnullを代入する必要なんて無い。
むしろ、「nullを代入したから大丈夫」という、変な安心感を与えてしまい
実は他所からの参照が保持され続けていた、という状態を引き起こしかねない。


236 :231:2006/07/31(月) 01:03:31
「GC がかき集めて〜」 のところの落とし穴ってのは、さんざん既出だけど
『どのタイミングで回収されるか分からない』 って点。

本当に GC に任せていいのなら、Input/OutputStream の close とか Frame の dispose は要らない。

237 :デフォルトの名無しさん:2006/07/31(月) 01:51:52
GCはJava Virtual Machineの外側にあるリソースは最初から
開放する事はできない仕様になってるよ。
だから231もちょいと違うかも。。。

238 :デフォルトの名無しさん:2006/07/31(月) 02:41:09
>>237
>>236とは、どう内容が違うのだ?

239 :132:2006/07/31(月) 09:50:32
遅れましたが133さん 回答ありがとうでした。


240 :デフォルトの名無しさん:2006/07/31(月) 13:00:31
EL式についての質問なのですが、
(tomcat5.5.17,JSTL1.1.2)

${sessionScope.ほげほげ} で自分でセッションに設定したプロパティについては、既に値が取れているにもかかわらず、
${sessionScope.maxInactiveInterval} では値が取れません。

HttpSessionにはgetMaxInactiveIntervalメソッドがあるので、bean規約にしたがえばプロパティ名maxInactiveIntervalで
取得できると思ったのですが、なぜ取れないのでしょうか。それともこれは仕様ではなく、なにか設定に問題があるのですか。



241 :デフォルトの名無しさん:2006/07/31(月) 15:02:26
ぐだぐだ〜。


242 :デフォルトの名無しさん:2006/07/31(月) 16:09:44
>>240
それはHttpSessionのインスタンスじゃないよ。
${pageContext.session.maxInactiveInterval}
で、できると思う。

243 :デフォルトの名無しさん:2006/07/31(月) 16:55:33
>>242
たしかにいけました。
EL式のsessionScopeとpageContext.sessonは、インスタンスとして同じものだと思ってました。
なんだか非常に根本的なところで知識が不足している気がしますので、
本かって勉強します。どうもありがとうございました。


244 :231:2006/07/31(月) 22:16:44
>>238
悪い。finalize から close 呼ばれてると思ったら呼ばれてなかった orz @FileWriter

245 :デフォルトの名無しさん:2006/07/31(月) 23:10:26
jspからjavaのメソッドを呼び出したいんだけど、javaをパッケージに入れなきゃ無理ですか?
<%page import = クラス名
で読んでいるんだけど、クラスを呼ぼうとするとjspの中を見に行ってしまう。

246 :デフォルトの名無しさん:2006/07/31(月) 23:19:10
>javaをパッケージに入れなきゃ無理ですか?
いろいろ突っ込みどころはあるのですが、おおむねそのとおりです。


247 :質問age:2006/07/31(月) 23:35:24
Cからの転職組なんですが、Cにおける
typedef struct{
charuseFlag;
charname[10];
intprice;
} typHoge;
という記述はクラス変数にしちゃえばいいと思うのですが、
typHoge hoge[3]={
{1,"cola",120},
{0,"fanta",110},
{1,"coffee",130}
};
のように初期値を一気に記述する方法が解りません。
hoge[0].useFlag=1;
のように一々書かなくてもいいスマートな記述方法をどなたかご教授ください。

248 :デフォルトの名無しさん:2006/07/31(月) 23:48:15
>>247
残念ながら無い


……それからクラス変数にする意味が分からない

249 :デフォルトの名無しさん:2006/07/31(月) 23:52:11
あー、いや、すまん。確かに C 並の簡潔さは無いけど

class Hoge {
    boolean useFlag;
    String name;
    int price;
    public Hoge(boolean useFlag, String name, int price) {
        this.useFlag = useFlag; this.name = name; this.price = price;
    }
}

にして

Hoge hoge = new Hoge[] {
    new Hoge(true, "cola", 120),
    new Hoge(false, "fanta", 110),
    new Hoge(true, "coffee", 130),
}

ならできる

250 :247:2006/08/01(火) 00:24:35
>>248-249
おぉ!ありがとうございます。
ぐーぐる先生に教えてもらった方法でもコンストラクタで書く方法(↓)はあったのですが、
ttp://www.crew.sfc.keio.ac.jp/lectures/2002s_oo_programming/kougi/kougi4/text04.pdf
配列、となるとどう書いたもんか試行錯誤してました。

> 確かに C 並の簡潔さは無いけど
コレは言語が違うので多くは望みません。大量のマトリックスをエクセルで編集して
簡単にプログラムに反映させたかったので、十分用は成します。ありがとうございました。

251 :176:2006/08/01(火) 03:31:43
>>177
デザインパターン入門買ってみました、凄い濃い内容ですね
まだDPの概念が理解しきれておらず、序盤のIteratorをやっていて気づいたのですが
DPというのはクラスを継承したりインターフェースを作って、それを元に様々なプログラムが利用でき
それが再利用性に繋がり、そのパターンを皆で共有すればお互いのソースが理解しやすい
という風に考えていいのですかね

とりあえず今はIteratorを理解するのに必死です、まだ一つめなのに苦労してます・・・

252 :デフォルトの名無しさん:2006/08/01(火) 03:40:56
>>251
Strategy から読み始めることを勧めてみる

253 :デフォルトの名無しさん:2006/08/01(火) 09:53:39
ありゃパターンに入ってることにびっくりする。

254 :デフォルトの名無しさん:2006/08/01(火) 10:01:01
Template Methodとファクトリ系のパターンを組み合わせると
デザパタで設計してる気分にかなり浸れるね。

255 :デフォルトの名無しさん:2006/08/01(火) 10:23:27
シリアライズしておいて実行時に読み込むじゃダメなの?

256 :デフォルトの名無しさん:2006/08/01(火) 11:02:44
taglibの質問もここでいいかな。
jspに自分で作ったカスタムタグが2つ書いてあって
最初に呼ばれるタグがSKIP_PAGEを返してるのに
2つめのタグも呼ばれてしまいます。
これって仕様???

257 :256:2006/08/01(火) 11:11:46
自己レス。
doEndTag()で返さないと行けないのね・・・
doStartTag()でSKIP_PAGE返してもだめなんだな。

258 :デフォルトの名無しさん:2006/08/01(火) 11:19:17
JavaScriptのスレが見つからないのでここに書くが、
alert(100*5.1);とかやると大変なことになるのね・・・

259 :デフォルトの名無しさん:2006/08/01(火) 11:24:05
>>1みろハゲ

260 :デフォルトの名無しさん:2006/08/01(火) 11:35:25
appletviewerの再読込みをするとapple(ryのウィンドウが消えるんだが。

261 :デフォルトの名無しさん:2006/08/01(火) 12:23:41
javascriptとjavaを混同している人って、いまだにいるんだよね。
なんだかなあ。
C言語とCシェル混同する人は見たこと無いのに(笑)


262 :デフォルトの名無しさん:2006/08/01(火) 12:41:16
>>261
混同してねーよ禿

263 :デフォルトの名無しさん:2006/08/01(火) 12:51:05
>>262
スレ違いどころか板違いなんだよ法経

264 :デフォルトの名無しさん:2006/08/01(火) 13:39:21
>>262
JavaがわかればJSもわかると思ってる時点で混同だよ、アホ

265 :デフォルトの名無しさん:2006/08/01(火) 16:49:09
一つ一つちゃんと理解して覚えて行くのと
とりあえずたくさんプログラム書いて徐々に覚えて行くの
ではどちらのほうがいいんでしょうか?

266 :デフォルトの名無しさん:2006/08/01(火) 16:52:20
どっちでもいいから

267 :デフォルトの名無しさん:2006/08/01(火) 17:10:53
個人的には後者をある程度やって、
途中から前者に切り替える。

268 :デフォルトの名無しさん:2006/08/01(火) 17:13:45
BufferedReaderでファイル読み込んで
ある1行で'b0101 aaa
次の行で 'b0001 aab
見たいな感じの文章のaaaとかaabだけを取り出す時に
if (str.startsWith("'")) {
String s1 = (str.substring(str.indexOf(" ")));
これでやると空白まで取れちゃうんですが、空白を抜いたaaaやらaab
いう値だけは取る方法ってないでしょうか。
空白は変わらないんですが、aaaとaabは可変するように考えてやりたいんですが
どうしたら実現できますか??

269 :デフォルトの名無しさん:2006/08/01(火) 17:14:10
>>265
人によって、学習方法にも向き不向きがあるからね。

270 :268:2006/08/01(火) 17:31:42
すいません。解決しました。
substringに+1すれば良いことだったんですねorz

271 :デフォルトの名無しさん:2006/08/01(火) 17:41:45
吸いません。じゃなくて
住みません。だろが

272 :デフォルトの名無しさん:2006/08/01(火) 17:52:30
>>271
ワロタ

273 :デフォルトの名無しさん:2006/08/01(火) 18:17:30
ネット上のサンプルを見てるとthis.***というコードをよく見るんだけど、このthisって何でしょうか?

274 :デフォルトの名無しさん:2006/08/01(火) 18:22:30
>>273 そのサンプルはどうやって探したの?

275 :デフォルトの名無しさん:2006/08/01(火) 18:31:13
>>273
そのオブジェクト自体

276 :デフォルトの名無しさん:2006/08/01(火) 18:50:05
質問させてくれ。

JavaAppletでファイルをDnDして、そのファイルをphpか何か介してうpしたいと思っている。
だが、DnDでファイル読むとか基地外な事をやろうとする時点で詰まってる。正直わからん。
なんかRad Upload Liteとかいうフリーウェアが同じことやってるらしいが解析不可能。
ぼすけて。

277 :デフォルトの名無しさん:2006/08/01(火) 18:53:38
>>276
日本語でおk

278 :デフォルトの名無しさん:2006/08/01(火) 18:56:01
>>277

質問させて下さい。

JavaAppletを用いて、ファイルをドラッグアンドドロップさせてそのファイルを読み取り、
phpやaspxに投げてファイルをアップロードしたいと考えています。
アップロードのロジックは出来ているのですが、JavaAplletでのファイル読み込みの方法がわかりません。

JavaAppletでのドラッグアンドドロップ、ファイル読み込みの方法について分かる方いらっしゃいましたらご教授願います。



279 :デフォルトの名無しさん:2006/08/01(火) 23:51:35
すみません。質問お願いします。
emという名前のパッケージにあるMaxGameというクラスを起動したいと思います。
emの上のディレクトリにいると
java em.MaxGame
で起動できました。たいていの本にもそんなことが書いてあります。
しかし、
java em/MaxGame
でも起動できてしまいます。これは私が見た範囲の本には書いてありません。
どっちでもいいと言えばそうなんでしょうが、他の環境(私の環境はWinXP、Java5です)でも
そうなのか不思議です。
あるいは、この辺の仕組みを書いたドキュメントを教えていただけないでしょうか。
よろしくお願い致します。

280 :デフォルトの名無しさん:2006/08/02(水) 00:00:53
>>279
java em.MaxGame ⇒ em.MaxGame が起動
java em/MaxGame ⇒ MaxGame が起動


281 :デフォルトの名無しさん:2006/08/02(水) 00:11:15
280は何言ってるの?

282 :デフォルトの名無しさん:2006/08/02(水) 00:14:37
>>279
前にソースを見たときはデフォルトのクラスローダは "." を "/" に置き換えて
クラスパスからクラスファイルを読み込んでた気がする。
ホントは置き換え前に "/" があったらエラーにすべきなんだろうけど
単純に "." の置き換えしかやってないみたいだからどっちでも通るんだろう。

283 :デフォルトの名無しさん:2006/08/02(水) 00:35:49
>>279
確かにそうだね。
たとえば、em.MaxGameを削除して実行すると、「em/MaxGameはありません」って出るよね?
ということは>>282が正解のような気がする。

284 :デフォルトの名無しさん:2006/08/02(水) 02:20:12
>>278
Aplletだからローカルへのファイルアクセスは出来ません。

もしそのようなことが出来たら、ディスク上のユーザの情報を抜き取るような
アプレットが作れてしまいます。

仮に苦労して出来たとしても、それはVMのセキュリティホールを突くような裏技的なものでしょう。
早晩パッチが出て動かなくなるのが関の山です。


285 :デフォルトの名無しさん:2006/08/02(水) 02:22:12
>>284
署名付きAppletって知ってる?

286 :デフォルトの名無しさん:2006/08/02(水) 02:39:36
まてまて、Applet じゃなくて Apllet の事らしいぞ。

287 :デフォルトの名無しさん:2006/08/02(水) 03:02:19
>>286
おお、俺には未知の領域だ・・・orz

288 :デフォルトの名無しさん:2006/08/02(水) 05:49:47
先日デザパタのIteratorで四苦八苦してると言った者です、依然苦労してます
自分がやっているIteratorパターンは本棚の中に本を入れ、その本の名前を順番に表示するものです。

Aggregate.java/Iterator.java/Book.java/BookShelf.java/BookShelfIterator.java/Main.java
以上の6つのクラスから成り立っているのですが、この6つの中身を追っていくのが難しいです
全てのソースを自分の中で把握出来ないというか、こういうクラス達をどう捉えていいか分かりません

やさしいJavaやデザパタ入門著者のJavaプログラミングレッスン上下をやって
忘れた、又は出てこなかった文があります。
例えばMain.javaのbookShelf.appendBook(new Book("Bible"));など自分が知らない形をしたものがでてきます
newをしているのでオブジェクトを生成してBookにappend(追加)としてると予想出来るのですが
基礎から今やってるものがどのように繋がってるか分からなくなります
オブジェクト生成の応用なのか、はたまた***.append***(new ***("***"))という形そのものが文として存在するのか
コンストラクタとメソッドも似ているではないですか、最初は同じ物だと思っていましたし

こういう分からない文は虱潰しにGoogleなどで一つ一つ調べてるのですが
たまに今自分がやってる事が正しいのか、無駄な事してるのか不安になるときがあります

…質問がずれてしまいました、俺には今なにが必要なのでしょうか( ;∀;) エスパーサンタスケテ

289 :デフォルトの名無しさん:2006/08/02(水) 06:11:46
質問です。
AudioClipってwaveも使えますか

290 :デフォルトの名無しさん:2006/08/02(水) 06:21:17
>>288
IteratorではなくVisitorから始めなさい。

291 :デフォルトの名無しさん:2006/08/02(水) 08:04:53
>>288
そのだらだらした書き込みを見ると、
デザインパターンを勉強しても
活かせない気がするのは俺だけ?
とりあえず、デザインパターンのスレにどうぞ。


292 :紹介したやつ:2006/08/02(水) 09:30:00
>>288
イチイチ質問してたらラチあかなさそうだし、紹介したなりに責任感じるし、
疑問点があったら話聞くわ。捨てアド作ったから連絡汁。
do_you_want_to_java @ yahoo.co.jp


293 :デフォルトの名無しさん:2006/08/02(水) 10:21:23
>>289
音楽やりたいならJavaSound使え
ネイティブと同じ程度まで自由につかえるぞ
ゲームならOggVorbis使うとか

294 :デフォルトの名無しさん:2006/08/02(水) 11:34:55
>>288
とりあえず、
・Iterate 対象のオブジェクト
・Iterator 本体
・Iterator を使ってごにょごにょする処理
の3つに分けて考えるんだ。

295 :デフォルトの名無しさん:2006/08/02(水) 12:15:47
初心者がJAVAの勉強するのに適してる本教えてください。

本屋でちらっと見てもよしわるしがわかりません。
あと、ゲームを作りながら覚えるみたいのがありましたが
その手本はまずいですか?

296 :デフォルトの名無しさん:2006/08/02(水) 12:20:43
ゲーム作るのが目標ならそれでよい

297 :288:2006/08/02(水) 12:46:02
>>292
変な気遣いをさせてしまって申し訳ないです、あの段階では右も左も分からなかったので
DPという物を知ったと言うだけでも大きな利益になりました、責任を感じるなんて滅相もない
>>291氏が指摘するように、DPを使うまでに至っていないからだと思います
メアドまで取ってもらったのに申し訳ないですが、基礎に戻ってもう一度頑張ってみます

>>290 >>294
参考にさせて頂きます。

298 :デフォルトの名無しさん:2006/08/02(水) 13:27:46
JavaとJavaScriptってどっちが難しい?

299 :デフォルトの名無しさん:2006/08/02(水) 13:35:56
JavaScript。

300 :デフォルトの名無しさん:2006/08/02(水) 13:40:22
間を取ってJScript

301 :デフォルトの名無しさん:2006/08/02(水) 13:52:26
JavaにScriptがついてるんだから、長さからいってもJavaScriptに決まってるだろアホか

302 :デフォルトの名無しさん:2006/08/02(水) 15:00:06
>>301
いや、その理屈はおかしい。
Script はお手軽なんだから、Java だろ。

303 :デフォルトの名無しさん:2006/08/02(水) 15:26:53
マジレスすると標準ライブラリの少なさでjavascript

304 :デフォルトの名無しさん:2006/08/02(水) 15:31:00
デバッグのしにくさ、DBアクセスやトランザクション制御、
マルチスレッドプログラムの作りにくさでJavaScript。

Javaでやるほうが断然簡単。


305 :デフォルトの名無しさん:2006/08/02(水) 16:13:18
よしわるし←何故か変換できる。

306 :デフォルトの名無しさん:2006/08/02(水) 17:22:04
VBAがちょっとできるだけの初心者です
 最近ホームページにjavaがついたのがありますが、これは解析できるんですか?
たとえば時計とか・・・
 世界の時刻ってありますよね、そのデータをリアルタイムで取得したいんですが
java勉強すればデータを取得できますか?
 ちなみにjavaはまったく勉強してません

307 :デフォルトの名無しさん:2006/08/02(水) 17:50:47
まったくわけが分かりません。

308 :デフォルトの名無しさん:2006/08/02(水) 18:13:36
ウィンドウクローズに関する質問です.

右上の×ボタンが押されたら,アプリケーションが終了する際に
windowClosing(WindowEvent e)
が呼ばれると思うのですが,この時に終了するか否かの確認ダイアログを表示し,
YESだった場合にのみ終了するようにしたいのです.
つまり,NOのときは終了を中断したいと思っています.

ウィンドウのクローズを中止するような手法が確かあったと記憶しているのですが,
探しても見付けることができませんでした.ご存知の方,どうかご教授くださいませ.

309 :デフォルトの名無しさん:2006/08/02(水) 18:16:40
何もしなければ終了しない。
終了のときはSystem.exit(0);

310 :デフォルトの名無しさん:2006/08/02(水) 18:20:25
>>308
「windowClosing」でぐぐったら7番目にそのもののサンプルが
あったyo!

setDefaultCloseOperation()

311 :デフォルトの名無しさん:2006/08/02(水) 18:26:06
>>309
うまくいかないですね...
断片的なのですが,下記のように記述しています.

//----コンストラクタ中
this.addWindowListener(new WindowAdapter(){ // コントロールのクローズボタンが押された場合
public void windowClosing(WindowEvent e){
programExit(); // プログラムの終了処理呼び出し
}
});
//----
public void programExit() { // プログラムの終了処理を行うメソッド.
int value = JOptionPane.showConfirmDialog(this , "終了しますか?","終了" , JOptionPane.OK_CANCEL_OPTION);
if (value == JOptionPane.YES_OPTION) { // 終了が選ばれたとき
System.exit(0); // プログラム終了
} else { // そのほかの場合
; // 何もしない
}
}

これで,NOを選んだ時にもウィンドウが閉じられてしまうのですが,
何かおかしいでしょうか?このprogramExit()は,
ボタンを押した時にも呼ばれるようにしているのですが,
このボタンから終了を選んだ時には正常に機能しています.
ですが×ボタンだとダメなようです...

312 :デフォルトの名無しさん:2006/08/02(水) 18:29:11
setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);した?

313 :デフォルトの名無しさん:2006/08/02(水) 18:30:48
超初心者です。
J2SE5.0をインストールしようとすると文字化けしてしまうのですが
どうすれば直るのか教えてください

314 :312:2006/08/02(水) 18:31:20
標準ではHIDE_ON_CLOSE(ウィンドウを隠す)になってるから注意
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/javax/swing/WindowConstants.html

315 :デフォルトの名無しさん:2006/08/02(水) 18:31:45
setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
でおk

316 :308:2006/08/02(水) 18:33:29
>>310,312
いや,お恥ずかしいです...
こんなところでミスってたとは....
setDefaultCloseOperation()
を設定していませんでした.;;

ということで設定したら,意図通りの動作をするようになりました.
ありがとうございました.

317 :デフォルトの名無しさん:2006/08/02(水) 18:35:18
>>313
どこが文字化け?
何にインストールしようとしてるの?
313は国語から勉強ね。(・∀・)

318 :デフォルトの名無しさん:2006/08/03(木) 00:14:57
swingなら俺に任せておけ

319 :デフォルトの名無しさん:2006/08/03(木) 00:28:27
任せた

320 :デフォルトの名無しさん:2006/08/03(木) 02:13:01
大歓迎とスレタイに書いておきながらとてつもなく不親切な初心者板。

321 :デフォルトの名無しさん:2006/08/03(木) 02:29:39
ここは搾取労働層の派遣社員が初心者相手にガス抜きするためのスレですが何か?

322 :デフォルトの名無しさん:2006/08/03(木) 02:39:21
>>321
これは失礼。

323 :デフォルトの名無しさん:2006/08/03(木) 02:42:09
新しいEffective Javaが近々出ると聞いたのですが本当でしょうか?

324 :デフォルトの名無しさん:2006/08/03(木) 03:04:03
>>320
初心者は初心者でも、自発性のカケラも見られないクズがやたらと多いからな。

325 :デフォルトの名無しさん:2006/08/03(木) 03:07:46
・ちょっとやってみればすぐにわかることを聞く
・ちょっと調べてみればすぐにわかることを聞く
・他力本願
・教えてもらって当然という態度&思い通りの答えがもらえないと逆ギレ
・日本語がまともに使えない
・Javaの初心者じゃなくて社会とのコミュニケーションの初心者

こういう奴は願い下げだね。


326 :デフォルトの名無しさん:2006/08/03(木) 03:19:44
お前が来るスレ間違ってるってw

327 :デフォルトの名無しさん:2006/08/03(木) 03:22:23
>>326
日本語でおk

328 :デフォルトの名無しさん:2006/08/03(木) 03:28:41
いつになっても厨房と自治厨は消えないのな。
fj にでも引っ込んでればいいのに。

329 :デフォルトの名無しさん:2006/08/03(木) 04:07:56
Integer[] から int[] に変換する方法って何がある?
全ての配列要素を intValue() するしかない?

330 :デフォルトの名無しさん:2006/08/03(木) 04:11:22
はい

331 :デフォルトの名無しさん:2006/08/03(木) 09:07:34
proguard(2.0, 3.6, 3.7b全部) で処理した後で
下記のプログラムの実行結果が
"aaa" しか通らないんだけど、なにか心当たりある方居ますか?


 public static void function() throws IOException {
  try{
   // 処理
   System.out.println("aaa");
  }catch( IOException e ){
   System.out.println("eee");
   if( _DEBUG )
    System.out.println( "function() : 失敗しました。" );
   throw e;
  }finally{
   System.out.println("bbb");
   try{
    // 後始末
   }catch( IOException e ){}
   System.out.println("ccc");
  }
  System.out.println("ddd");
 }

332 :デフォルトの名無しさん:2006/08/03(木) 10:42:16
初歩的な質問で申し訳ないのですが
jcpadでソース打ってエラーも出ず実行もするのですが
その際に出るコンソールがすぐに出て消えてしまいます・・・

本来ならずっと出ているはずなのに!
実行結果も確認できるのですが瞬間的にしか見れません
原因がわかりません


333 :デフォルトの名無しさん:2006/08/03(木) 11:15:59
ArrayListの中に数字を数個入れて、その中の最大値を得る方法って
どのようなものがあるのでしょうか?
お手数ですが、教えていただけないでしょうか。

334 :デフォルトの名無しさん:2006/08/03(木) 11:18:08
入れる前に紙に書いておく

335 :デフォルトの名無しさん:2006/08/03(木) 11:20:05
>>333
中身を全部取り出して比較

336 :デフォルトの名無しさん:2006/08/03(木) 11:34:38
>>335
比較の仕方ってどうするのでしょうか?
質問ばっかりですみません。

337 :デフォルトの名無しさん:2006/08/03(木) 11:49:48
>>333>>336
Collections.sort メソッドを使おう。

338 :デフォルトの名無しさん:2006/08/03(木) 12:38:23
>>337
最大値知るのにソートはいらないよ
Collections.max使おうぜ

339 :デフォルトの名無しさん:2006/08/03(木) 12:40:44
>>338
ごめん!

340 :デフォルトの名無しさん:2006/08/03(木) 12:45:30
JSPとサーブレットをつかったWEBアプリケーションをつくっています。
サーブレットからクライアントにあるexeファイルを実行させる命令をだしたいのですが
そういった事は可能でしょうか
よろしくお願いします。

341 :デフォルトの名無しさん:2006/08/03(木) 12:57:17
サーブレット/JSPはクライアント側から見れば、静的なHTMLとなにも違いはありません。
違うのはサーバ側だけです。まず、仕組みを理解しましょう。



342 :デフォルトの名無しさん:2006/08/03(木) 12:59:22
JSPとサーブレットを使わない方法なら可能

343 :333=336:2006/08/03(木) 16:08:03
>>335-339
こんな無知な質問に対して
「ググれカス」とも言わずに教えてくださってありがとう(´Д⊂グスン


344 :デフォルトの名無しさん:2006/08/03(木) 16:40:28
質問です
ArrayList<Image>にBufferedImageからgetScaledInstanceで取り出したImageをaddしたいのですが、NullPointエラーがでます。
何がいけないのでしょうか。ソースの該当部分は↓
public static int Unit_img_read(String path){
int i=0;
File f=new File(path);
Image img;
try {
BufferedImage bi = ImageIO.read(f);
global.nation.img.add(bi.getScaledInstance(global.chipsize,global.chipsize,Image.SCALE_SMOOTH));
i=global.nation.img.lastIndexOf(bi.getScaledInstance(global.chipsize,global.chipsize,Image.SCALE_SMOOTH));
}
return i;
}
}
どうかよろしくお願いします

345 :デフォルトの名無しさん:2006/08/03(木) 17:12:18
fillPolygonで色を塗ったピクセル数を知りたいんですが、調べても方法が見当たりません…
無いんでしょうか?
というかfillPolygonを実際に処理してるのはどの部分なんでしょうか?
Graphics.javaはabstractだったのでわかりませんでした
何卒宜しくお願いします。

346 :デフォルトの名無しさん:2006/08/03(木) 18:03:22
>>344
エラーメッセージも投稿汁


347 :デフォルトの名無しさん:2006/08/03(木) 18:06:40
>>345
真っさらなコンポーネントに描画して、色が違うところをカウントすりゃ
いいんじゃないか?


348 :344:2006/08/03(木) 18:41:39
すいません
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at file.imgread.Unit_img_read(imgread.java:34)

と出ました
それと、global.nation.imgはpublic ArrayList<Image> img=new ArrayList<Image>();です。

349 :デフォルトの名無しさん:2006/08/03(木) 19:07:59
>>348
bi が null になってしまっているかどうか調べてみて。
こういう場合、
どのオブジェクトが例外を発生させているのか
まず特定しないと。

350 :デフォルトの名無しさん:2006/08/03(木) 19:24:24
biはnullではありませんでした
これと同じ処理で、ArrayList<Image>ではなくて、Imageに代入しているものがあるのですが、そちらではエラーは出ず、Imageの中身もしっかりと存在します。
pathも確認しましたが大丈夫でした。
ArrayList<Image>の各要素が何か特別なのでしょうか…

351 :デフォルトの名無しさん:2006/08/03(木) 19:50:05
>>347
ゲームで使ってるんで同じ色の別のポリゴンがかぶってしまうんです。
そういう面積を求めるメソッドって無いですか?

352 :333:2006/08/03(木) 21:33:25
またまた質問ですみません。
Collections.maxのおかげで最大値は分かるのですが
これを比較に用いることはできないのでしょうか?

ArrayList count    = new ArrayList();
ArrayList<String> list =  new ArrayList<String>();
count.add(list.size());
int a = 0;
if(a < (Collections.max(count))) {
〜〜
}
という処理をしたいのですが、比較のところでエラーがバンバン出ますorz

説明が分かりにくくてすみませんが「もしかしたらこれじゃない?」と
言うのがありましたらご指摘お願い致します<(_ _)>

353 :デフォルトの名無しさん:2006/08/03(木) 21:41:07
>>352
エラーぐらい書けハゲ

354 :デフォルトの名無しさん:2006/08/03(木) 21:41:47
>>345
fillPolygonの引数から自前で計算するのではダメかな。

355 :デフォルトの名無しさん:2006/08/03(木) 22:08:15
>>352
ArrayList<Integer> count = new ArrayList<Integer>();
これでコンパイル時の型エラーが消えるはず。


356 :333:2006/08/03(木) 22:30:31
>>355
<Integer>でしたか。
<int>で試して無理だったので頭抱えてた自分は馬鹿ですね('A`)
感謝感謝です。

ところで皆さんに質問なのですが
参考書とかは何か使っていますか?
ArrayListが載っている本は少ない気がするのですが・・・・
「お前みたいな無知はこれでも読んでろ!」っていう本はありますか?

357 :デフォルトの名無しさん:2006/08/03(木) 22:44:56
>>356
一昔前の書籍だと Vector を使っているのが多いような希ガス。
最近のだと ArrayList が載っているんじゃかいかとは思うけど、実態まではさすがに……。


Java言語仕様 (ISBN: 4894713063)
Sun Certified Programmer for the Java2問題集 (ISBN: 4797324902)

とかはわりとおすすめ。初心者向けじゃないし、5.0 には対応してないけど。

358 :デフォルトの名無しさん:2006/08/03(木) 22:55:34
できるなら、ネット上の公式チュートリアルで学ぶのは良いと思う。
無料だし、造り主だし。

ArrayList というよりは、Collections というキーワードになるかな。
5.0 での追加機能関連は
外部の解説ページはあちこちにあると思う。

こういうのどう?
www.javainthebox.net/laboratory/J2SE1.5/LangSpec/Generics/Generics.html

359 :345:2006/08/03(木) 23:04:37
>>354
遅そうですが…スキャンラインの奴でやってみます

360 :デフォルトの名無しさん:2006/08/03(木) 23:34:17
>>356
本もそうですが、態度というか、心構えで。

エラーメッセージが出たら、具体的になんとでているか読み取る努力をして、わからなければメッセージの意味を
調べるような探究心が大切です。
あ、エラーだ、で流してしまうひとは、本を買っても進歩がいまいちでしょう。


361 :デフォルトの名無しさん:2006/08/03(木) 23:50:41
>>351
意味が伝わっていなかったみたいだな。
本来の描画対象とは別に計算用の描画対象コンポーネントを作っておいて、
その計算用に対して、

真っ白にする→描写する→描写された領域を計算する

ってやれば良いのではないかと。そうすればそれまでに描写されている
データは関係ないだろ? コンポーネントも、インスタンスを1つだけを
(次の計算までの間隔が短いなら、BufferStrategyと同じ要領で複数の
インスタンスを)使い回せば、それほどひどいコストは発生しないだろうし。


362 :デフォルトの名無しさん:2006/08/04(金) 00:00:39
>>356
この期に及んで、初級の本でVectorを基本にしてる書籍なんかないだろ。
お前は本を全て古本屋で、しかも300円以下のコーナーで探してるんじゃないか?

まともに勉強する気があるなら、ちゃんと最新書籍を買え。
少なくとも、Ver 1.2 以前のやつはやめろ。


363 :デフォルトの名無しさん:2006/08/04(金) 00:03:48
>>345
何を悩んでいるのか知らないが、ピクセル数を知りたいのか、面積を知りたいのか。
もしピクセル数を知りたいのなら境界上のピクセルはどう扱うのかはっきりしろ。
もし面積を知りたいのなら、fillPolygonはどうやって描いたんだ。
頂点の座標が分かってるなら多角形の面積の公式くらい中学校で習っただろうに。

364 :デフォルトの名無しさん:2006/08/04(金) 00:10:51
>>363
>>345はピクセル数って書いてるじゃん。
しかも境界上って、それはピクセル数か面積かの違いだろ。
ピクセル数前提になってないじゃん。
相手をバカにしすぎだろ。


365 :デフォルトの名無しさん:2006/08/04(金) 00:15:13
>>351では面積って言ってるよ
境界上のピクセルはピクセル数に含めるかどうかを聞いているだけなんだが

366 :デフォルトの名無しさん:2006/08/04(金) 00:21:03
俺質問者じゃないけど、調子に乗っている奴が少しいると空気が悪くなるな。

367 :345:2006/08/04(金) 00:23:20
すいません、なんかお騒がせしちゃって
ゲーム用なので境界とかは大雑把でよかったんです。
最初は公式でやってたんですが図形が@←こんな状態の時内側の面積も
足されてしまっていたので困ってたんです。
今ちょっと自前でスキャンラインを実装して、遅いけど何とか動いたんで自己解決です。
ありがとうございました。

368 :デフォルトの名無しさん:2006/08/04(金) 00:25:27
>>362
>>366


369 :356:2006/08/04(金) 02:11:45
>>357-358
アドバイス感謝です。
今度書店に行ったら探してみます。
ネットにも色々あるみたいなので、それも探してみたいと思います。

>>360
探究心ですか。
確かに調べる気が無いと駄目ですよね。
今後、意識して探求していきたいと思います。

皆さん、貴重なご意見ありがとうございました。
重ね重ねお礼申し上げます。

370 :デフォルトの名無しさん:2006/08/04(金) 02:18:34
QRコードBlog
http://www.qrcodeblog.com/
ここで紹介しているQRコードはどのように作成しているのでしょうか?

http://sourceforge.jp/projects/qrcode/
上のリンクのデコードソフトでまともに読めるQRコードがこのBlogで紹介しているQRコードだけなんです。

文字コード関係っぽいのですが、よくわかりません。。。

371 :デフォルトの名無しさん:2006/08/04(金) 02:19:02
>>369
がんばれよー

372 :157:2006/08/04(金) 06:46:21
>172
本当に随分レスおそくなりました。
ありがとうございました。

373 :344:2006/08/04(金) 11:56:57
どうやらglobal.nation.imgそのものがNullになっているようで、
global.nation.imgにアクセスするだけでNullPointErrorが出てしまいます。
Imageの初期値がNullだからかなと思ったりもするのですが、
どのようにすればこのエラーが出ないようになるでしょうか
いろいろ調べたりもしましたが、まったくわかりません
どうかよろしくお願いします

374 :デフォルトの名無しさん:2006/08/04(金) 12:19:10
http://java.sun.com/j2se/1.5.0/ja/download.html
が開かないのは俺だけ?
ソースを見てみるとちゃんとあるんだけど、
セキュリティーとかプライバシーとか最低にしても何も表示されない…。

375 :デフォルトの名無しさん:2006/08/04(金) 12:20:42
>>374
このまえからIEで見れない。

376 :375:2006/08/04(金) 12:22:41
こっちからもダウンロードできるよ。サイトは英語だけど、プログラムは日本語にも対応。
http://java.sun.com/javase/downloads/index.jsp

377 :デフォルトの名無しさん:2006/08/04(金) 12:23:36
jspを過去のファイルに戻したいのですが、
どのように戻して良いかわかりません。
過去のファイルを更新して更新日時を変えると出来るみたいなんですが、
更新せずに最新ファイルを過去ファイルに入れ換える方法を教えて下さい。
WebLogicを使用しています。

378 :デフォルトの名無しさん:2006/08/04(金) 12:24:06
うちは6月下旬あたりからずっと見られなかったが
なぜか今はIEでも見られる

379 :デフォルトの名無しさん:2006/08/04(金) 12:55:08
>>375
過去ログ嫁

380 :デフォルトの名無しさん:2006/08/04(金) 15:50:45
>>374-375
>>53-54,>>69

381 :デフォルトの名無しさん:2006/08/04(金) 18:14:47
javaのプログラムをWindows上で動くexeファイルにできるって聞いたんですが
JITコンパイラ?ってどこでダウンロードできるんですか?

382 :デフォルトの名無しさん:2006/08/04(金) 18:15:34
>>374
ブラウザをFirefoxにしたら閲覧する事ができたよ。


383 :デフォルトの名無しさん:2006/08/04(金) 18:22:51
この頃Firefoxとかのブラウザで見れてIEで見れないページって多くないかな?

384 :デフォルトの名無しさん:2006/08/04(金) 19:43:39
>>381
ベクターのJavaカテゴリを適当に漁れ。

>>383
ブラウザの問題じゃない場合も多い。
HTMLの書き方が不適切だったり、httpサーバーの設定が狂ってたり。
それに、css絡みでFirefoxではまともに閲覧できないサイトの方が多いだろ。


385 :デフォルトの名無しさん:2006/08/04(金) 19:58:15
なんだよこのスレ

Java ソフトウェアが
http://ex16.2ch.net/test/read.cgi/news4vip/1154687811/

386 :デフォルトの名無しさん:2006/08/04(金) 20:00:20
お前が立てたんだろ

387 :デフォルトの名無しさん:2006/08/04(金) 20:02:13
>>386
実はお前だろw

388 :デフォルトの名無しさん:2006/08/04(金) 20:09:07
VIPなんて臭い所見るワケナイダロw

389 :デフォルトの名無しさん:2006/08/04(金) 20:56:07
>>388
おいおい、突撃されるぞ。

390 :デフォルトの名無しさん:2006/08/05(土) 10:36:14
>>384
IEで思ったとおりに表示させようとして、一般的でない書き方をしたcss
がごろごろしてるからかな。
そういうのをテクニックとして紹介してるサイトもあるし。

391 :デフォルトの名無しさん:2006/08/05(土) 13:16:55
そしてIE7の登場でますます混乱する、と。
IE7でのCSS修正は比較的正しい方向への修正ぽいね。

392 :デフォルトの名無しさん:2006/08/05(土) 15:53:09
AudioSystem.getAudioStream(file);
が例外になるときってどんな時ですか?
Fileはnullじゃないです。API見てもわかりませんでした。
この文で例外を投げているのは間違いないのですが

393 :デフォルトの名無しさん:2006/08/05(土) 15:59:55
・ファイルが見つからないとき。IOException
・ファイル形式がサポートされてない形式のとき。UnsupportedAudioFileException

394 :デフォルトの名無しさん:2006/08/05(土) 17:20:19
そこで間違いないんなら、tryで囲って捕捉してスタックトレースを表示するなりなんなりしたらどうだい。

395 :デフォルトの名無しさん:2006/08/06(日) 00:55:46
当方初心者です。
クラス変数、クラスメソッドとインスタンス変数、
インスタンスメソッドの違いがいまいちわかりません。

あとオブジェクトとは厳密にはclassを指すものではないの?
俺の中では1つのclassをオブジェクトだと補完してるんだけど。
多分オブジェクトとclassを同義と捕らえてるからわからないんだと思う。

どうかご教授ください。

396 :デフォルトの名無しさん:2006/08/06(日) 01:04:01
オブジェクトってのはただのモノ。クラスってのはオブジェクトの属するモノ。
厳密に言わなくてもまったく違うものだ。

あと教えてもらうときは「教示」という。教えてあげるときは「教授」という。

397 :395:2006/08/06(日) 01:09:32
>>396
レスありがとう。
オブジェクト=モノの「モノ」って何ですか?
実際にあるものじゃなくあるものと想定した「モノ」なんですか?

あれれ?
クラスの中にオブジェクトがあるってこと?
どういうものがオブジェクトとか具体例とかって出せたらお願いします。

今まで教授だと思ってた教示なのねありがと。

398 :デフォルトの名無しさん:2006/08/06(日) 01:26:30
>>397
クラスはオブジェクトの設計図と思えばいい。

俺はよく車に例えるんだが、
車の設計図がクラスで、
その設計図をもとに作られた車がインスタンス

車の実体もオブジェクトだし、設計図自体もオブジェクト
んー、難しいな。

399 :デフォルトの名無しさん:2006/08/06(日) 01:26:50
>>395
まずインスタンス変数、インスタンスメソッドはnewしたオブジェクトにおいて使える。
「変数名」「ドット」「変数/メソッド名」で使用できる。
  str1 = new String("貪"); // インスタンスの生成
  str2 = new String("瞋"); // 生成したものについて使用できるのがインスタンス変数/メソッド
  str1.charAt(0); // 貪
  str2.charAt(0); // 瞋

たいして、クラス変数、クラスメソッドはnewしておらずとも使える。
「クラス名」「ドット」「変数/メソッド名」で使用できる。
  String.valueOf(1000); // valueOfメソッドはクラスメソッド

インスタンスメソッドは、「インスタンス」ありきで想定された処理であり、
つまり、「インスタンス+処理」がインスタンスメソッド。
クラスメソッドは「処理」のみ。

なんに使うかは考えてけれ。

400 :デフォルトの名無しさん:2006/08/06(日) 01:37:53
>>398
こういうのってJavaの絵本見たいのとかに載ってるよね!
一回読むべきかも…。
オブジェクトの定義がいまいち掴めない…。

>>399
凄く丁寧に説明してくれてるんだけどいまいちわからない…。
クラスメソッドの方が限定された場合に使うってことなのかな?

401 :デフォルトの名無しさん:2006/08/06(日) 01:51:10
>>395
「オブジェクト」 は 「クラス」 と 「インスタンス」 をまとめて指す言葉。
大抵は 「オブジェクト」 って言ったら 「インスタンス」 のほうを指すんだけど、
ドキュメントだと区別しない場合も多いからね。

「Point オブジェクトを返す」 って書いてあったら 「Point クラスのインスタンスを返す」
って意味だからねぇ。



ちなみに、クラスは Class クラスのインスタンス。

402 :デフォルトの名無しさん:2006/08/06(日) 01:56:23
>>401
わかりやすくありがとう。
なんとなくだけどわかりそうだよ。
ここのみんな優しいな。

やっぱ独学なら独習Javaとか買うべきなのかな?
今使ってるのが基本情報技術者試験Java完全合格教本
って奴。
もう一冊はじめてのJavaプログラミング改訂版基本編
って持ってるけどこっちはまだ手をつけてない感じ。
1冊終わってからのつもりだったけど平行してってのも必要かな?

目標はないけどとにかく頑張る!

403 :デフォルトの名無しさん:2006/08/06(日) 02:07:51
>>402
概念の学習は、あまり急がないほうが良いよ。
じっくりやるとよろし。

それから、『オブジェクト指向は1通りではない』 ってことは注意しなきゃいけないかと。
ケイのオブジェクト指向を先に覚えてから、ストラウストラップのオブジェクト指向を学ぶことを個人的にオススメするよ。
とりあえず前者を覚えると、「オブジェクト」 が何を指すのか理解できるとおもう。

404 :デフォルトの名無しさん:2006/08/06(日) 02:16:18
>>403
ケイとかストラウストラップ?とか種類があるんだね。
大変そうだ。

取り合えず基礎の文字列、配列、制御構文、メソッドあたりは大丈夫。
クラスは概念から何から不安次は何を学ぶべき?
MathクラスIntegerクラスとかも速めに覚えるべき?
継承とかかね。
軽く一通りは覚えたいんだよね。

405 :デフォルトの名無しさん:2006/08/06(日) 02:32:14
オブジェクトを 『外側から』 扱う方法を先ず学ぶべき。
例えばインタフェイスや多態を使うとどんな感じに何ができるのかとかを。

大体完了したら、次はそれを定義する方法を学ぶ。

406 :デフォルトの名無しさん:2006/08/06(日) 03:32:00
tableの横線を斜めにしたいんですけど、どうしたらいいでしょうか。

407 :デフォルトの名無しさん:2006/08/06(日) 03:33:57
第三者にもイメージできる表現でおながいします

408 :デフォルトの名無しさん:2006/08/06(日) 04:05:23
分かりにくくてすみません。
HPを作成しているのですが一つのページを斜めに区切りたい場合、
HTMLのTABLEタグ等で二段のテーブルを作った場合に
真ん中の罫線を斜めにする事はできませんか?

409 :デフォルトの名無しさん:2006/08/06(日) 04:23:00
>>408
なぜその質問をこのスレでする?

410 :デフォルトの名無しさん:2006/08/06(日) 04:29:27
できません

411 :デフォルトの名無しさん:2006/08/06(日) 06:18:26
>>404
ケイ
 →Alan Kay Smalltalkのひと

ストラウストラップ
 →Bjarne Stroustrup C++のひと

412 :デフォルトの名無しさん:2006/08/06(日) 06:28:46
ストラウストラップ
 →Bjarne Stroustrup 禿

413 :デフォルトの名無しさん:2006/08/06(日) 07:16:05
さっきからオブジェクト指向のことでゴチャゴチャ言ってる人は、
オブジェクト指向っつーよりは、UMLを勉強するべきなんじゃない?


414 :デフォルトの名無しさん:2006/08/06(日) 09:42:46
public class hogehoge extends Applet{
String name;
public void init(){
name = getParameter("imgName");
}
というぷろぐらむのString nameの所は、
String型の変数nameを宣言して、
name = getParameter("imgName")のところで
オブジェクトを作成して、その変数を使えるようにしていると考えて良いのでしょうか?

415 :デフォルトの名無しさん:2006/08/06(日) 10:12:28
>>414
30点。
それは新たにインスタンスを生成しているとは限らない。

Javaにはプリミティヴ型と参照型しか存在しない。
プリミティヴ型というのは、int とか double とか char とかの
基本的なデータ型のこと。
で、参照型っていうのは、メモリ上のどこにインスタンスがあるかという
情報を格納したもの。

例えば、

 SomeClass someClass = new SomeClass();

という文があったとして、new 演算子はメモリ上に新たなインスタンスを
生成する。で、変数 someClass にはそのインスタンスがどこにあるのか
という情報だけが格納される。
で、以降 someClass.someMethod(); という風に利用することで、
メモリ上のインスタンスを辿ってメソッドを実行できるという流れ。

で、String 型はあくまでも参照型であって、その getParameter(String)
メソッドで返されるのも、やっぱり参照型。
もしそのメソッドが

 return new String("xxx");

という風に、新たにインスタンスを生成してその参照型を返したなら
まだ良い。



416 :続き:2006/08/06(日) 10:13:32
しかし、例えば

public class SomeClass{
private String myName;
public String getName(){
return myName;
public void setName(String name){
myName = name;
}
}
}

というクラスのインスタンスがあったとして、getName() メソッドで
String 型の返値を得たとしよう。
しかし、その返値はあくまでも「この文字列情報は、SomeClass の
インスタンスの中にありますよ〜」って情報しか持ってないから
(具体的に文字列の内容が何なのかという情報を持っていない)、
もし setName(String) メソッドが使われて myName に何らかの
変更が加わった場合、それを参照している変数にも影響が及ぶ。

だから、返値は何でもかんでも新しく生成されて出てくるものと
思うのはやめるべし。




417 :デフォルトの名無しさん:2006/08/06(日) 10:23:45
>>414
まあ、そうだね。
String name; だけでは中身のないものを宣言しているだけ。

name = getParameter("imgName");の部分ではオブジェクトを作成しているかどうかはわからないが、
どこかで作成されたStringオブジェクトを、変数nameの中に入れて使用できるようにしていると考えていいね。

418 :414:2006/08/06(日) 11:53:28
うぉ、ちょっとの間にこんなに素晴らしいお返事が。
感動です。
実は、javaあんまり知らないのに人に教えることになって、
苦しんでたんです。
もしよければ、つくったレジュメ見てもらえませんか?
http://strawberry.web-sv.com/cgi/up/bib.html
のnm1070.zipという奴です。
なかみは、.doc形式です。

419 :デフォルトの名無しさん:2006/08/06(日) 12:53:00
ブラウザからテキストファイルをアップロードし、
そのテキストファイルから取得した情報を画面に表示するという処理を行おうと思っています。
しかしアップロードされるテキストファイルのエンコードに何が指定されるかがわからないため、
文字化けに苦労しています。
テキストファイルのエンコードを知る方法というものはあるのでしょうか?

420 :デフォルトの名無しさん:2006/08/06(日) 14:21:41
ArrayList<String>ではsplit()は使えないのでしょうか?

421 :デフォルトの名無しさん:2006/08/06(日) 14:33:49
>>420
ArrayList<String> list = new ArrayList<String>();
list.add("a,b,c");
list.add("de,fg,hi");
for(String s:list)
for(String t:s.split(","))
System.out.println(t);

422 :デフォルトの名無しさん:2006/08/06(日) 15:02:12
>>419
文字コードがJIS,SJIS,EUC-JPだけなら、
InputStreamReaderで与える文字セットにJISAutoDetectを指定すると一応自動判別してくれる。

423 :デフォルトの名無しさん:2006/08/06(日) 15:08:03
やばい、>>421見るまでforeach文で配列が使えること知らんかった。
iteratorインターフェース実装済みのオブジェクトのみと思ってた。。。

424 :420:2006/08/06(日) 15:11:51
>>421
即レス感謝感謝です。
早速試してきます。

425 :デフォルトの名無しさん:2006/08/06(日) 15:17:54
>>418
推敲はしたのか?
今読み始めたところだが、最初の数行で国語的に微妙だぞ。
内容も大事だが、文章が適切でないといくら頑張っても相手に伝わらんぞ。
他人が読んでるつもりで、もう一度全体を見直して、再うpしる。


426 :デフォルトの名無しさん:2006/08/06(日) 15:22:57
>>423
IteratorインターフェースでなくIterableインターフェースを実装しているクラス。
もしくは配列。
ttp://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.14.2

427 :420:2006/08/06(日) 15:50:08
>>421
おかげさまでプログラムはできたのですが
少々質問が。

for(String s:list)
この処理ですが「listをString型のsに入れる」ですよね?
for文は繰返処理のみと思っていたのですが。
お手数ですが、少しだけ解説してもらえないでしょうか。

428 :デフォルトの名無しさん:2006/08/06(日) 15:54:39
421ではないが。
for(String s:list) は list の各要素を順々に s に代入していくという意味だ。

429 :デフォルトの名無しさん:2006/08/06(日) 15:57:29
ぬるぽ

430 :デフォルトの名無しさん:2006/08/06(日) 15:57:37
>>427
listそのものではなく、listの要素を順番にsに代入して繰り返す処理。
for(Iterator i=list.iterator(); i.hasNext();){
String s = i.next();
:
:
}
のような処理を行っている。

431 :デフォルトの名無しさん:2006/08/06(日) 15:58:09
ガッ

432 :デフォルトの名無しさん:2006/08/06(日) 15:59:16
for(String s : list){
 ・・・
}



for(int i=0; i<list.size();i++){
 String s = list[i];
 ・・・
}

は同じって考えれ。

433 :432:2006/08/06(日) 16:00:00
前半の方だったか…orz

434 :デフォルトの名無しさん:2006/08/06(日) 16:00:11
>>422
それが指定される文字コードがまったくわからない状況なので・・・
ポルトガル語を含んだよくわからない文字コードのファイルやら、
ハングルが入ってるテキストファイルやら・・・

テキストファイルから「推測」はできても「判別」はムリそうですね。
ありがとうございました。

435 :430:2006/08/06(日) 16:02:28
>>430
for(Iterator i=list.iterator(); i.hasNext();){

for(Iterator<String> i=list.iterator(); i.hasNext();){

436 :デフォルトの名無しさん:2006/08/06(日) 16:08:42
>>434
それは国際色豊かな……
そこまでバリエイションがあるなら、
いっそのことUNICODEに変換してからアップしてほしいと
ユーザに頼んでおくとかの運用面での対処が現実的かもしれない。

437 :420:2006/08/06(日) 16:16:18
>>428>>430>>432
解説ありがとうございます。
続けて質問ですが、皆さんはどこで知識を得たのでしょうか?
私は「Javaの道」などのサイトを閲覧する程度ですが・・・。

438 :デフォルトの名無しさん:2006/08/06(日) 16:28:15
>>437
SUNのJavaサイトのドキュメント

439 :デフォルトの名無しさん:2006/08/06(日) 16:28:39
>>425
楽しそうなので俺も>>418を読んでみた。

まず、段落をしっかり分けたほうがいい。
読み手が、複数の事柄をひとつの長文でズルズルと、
読まされていく感じの構成になっているので非常に読みにくい。読み手が頭の整理がしにくいと思う。

もう少し、文章を事柄によって、区切りを付けて書いたほうがいい。
以下は例。こんな感じでなくてもいいけど。

□コメントとは
 なんたらかんたら

□インデントとは
 なんたらかんたら
 
□インポートとは
 なんたらかんたら


440 :デフォルトの名無しさん:2006/08/06(日) 16:44:28
>>437
とにかく色々なソースを読みまくる。
とにかく色々な書籍を読みまくる。
とにかく色々とEclipseに怒られまくる。


441 :デフォルトの名無しさん:2006/08/06(日) 18:30:28
>>437
javac と殴り合いながら親睦を深めていくのです。


あとは経験と慣れ。
文法とか単語覚えるのも重要だけど、実際に会話してみなきゃ話せるようにならないってことで。

442 :418 エコ:2006/08/06(日) 18:43:30
バイトから帰ってきました。
二名の方が読んで下さったようで嬉しいです。
プログラムの内容は釧路の地図を読み込んで、
それに○を付けて線を引くっていう単純なものなんですけれど、
教えるとなると・・・
一応レジュメとプログラムを印刷して、このプログラムの機能は
こういう意味だよってレジュメを添えて教えるつもりです。
しかし、相手がパソコンのパも知らない上に、
自分もJavaの勉強をはじめて2週間なので、このレジュメを書くために
死ぬほど本とインターネットでしらべました。嘘教えるわけにはいかないので。
ホントは、JavaっていうのはSun microsystemsが開発した言語で、
プラットフォームに依存しないとかも教えなきゃいけないんでしょうけど、
いかせん時間がなくて。
文章が支離滅裂なのは徹夜で書いたと言うことで勘弁して下さい。
では、頑張って教えてきます。

443 :デフォルトの名無しさん:2006/08/06(日) 19:08:14
今はコンパイルエラーも例外もちゃんと日本語で出るから良いじゃん

444 :デフォルトの名無しさん:2006/08/06(日) 22:29:51
>>442
「教える」のであれば、前もって大層な資料を作っても無駄だと思うけどな。
質問してくる内容に丁寧に回答すればよし。

うまい講師ほど、その人にあった内容を選択して話す。

445 :デフォルトの名無しさん:2006/08/06(日) 22:55:43
今の状態:
研修でちょこっとjavaやってブロック崩しもどきのようなものを作った程度
オブジェクト指向がよく理解できていない

javaでゲームを作ろうと思ってます。どういう点に気をつければいいでしょうか

446 :デフォルトの名無しさん:2006/08/06(日) 23:01:47
初めまして。JavaでHTMLでDOMを使いたいと考えてます。
最近、ShaniXMLParserというXMLパーサを見つけ、
これを使って整形式ではないHTMLをDOMで扱いたいと考えていますが、
Xercesパーサと違い情報が少なくてどのように使うのかがわかりません。

使い方ご存じの方ぜひ教えてください。

447 :デフォルトの名無しさん:2006/08/06(日) 23:06:58
>>442
もう少し状況を詳しく書いて欲しいな。
どういった事情で2週間の準備期間のみで教えるとかいう状況になって
しまったのかはよくわからんが、その教える相手がどこまで達成できれば
良いのかって目標もレジュメ作りの大事なところだからな。

単にそのアプレットの仕組みを理解できれば十分ってだけなら、
そのアプレットのソース中で難解と思われる部分だけ抑えれば良いし、
そのアプレットを基礎にJavaの何たるかを教えにゃならんのなら、
要点を虫食いにした穴埋めレジュメを作るなんてのも方向の一つとして
考えられる。

俺も独学バカだから知識面はある意味微妙だが、何かあったら
>>292にでも気軽にメールくれ。




448 :デフォルトの名無しさん:2006/08/06(日) 23:08:14
>>445
特に悩みもない場合は、教えるものも特にない。
プログラム組んでればどういう点に気をつければいいか、何が足りないか、おのずと見えてくる。
そのときに、何か質問したいことがあったらここで聞くといい。

449 :デフォルトの名無しさん:2006/08/06(日) 23:12:11
>>445
具体的にどういうゲームを作りたいのだ?
大規模であればあるほど、ある意味 Java の細かいことなんか一旦
忘却の彼方へぶっ飛ばして作らなければ、うまく行かない可能性もあるからな。


450 :デフォルトの名無しさん:2006/08/06(日) 23:38:29
import java.io.*;

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

これを実行しようとすると

Exception in thread "main" java.lang.NoClassDefFoundError: Test

というエラーが出ます。

何が間違っているのかわけがわかりません

451 :デフォルトの名無しさん:2006/08/06(日) 23:51:42
>>450
>>1

452 :404:2006/08/07(月) 00:00:26
>>413
UMLが何かよくわからないんですけど今日UMLの本買ってきました。
Java優先で時間あったら学んでみます。

453 :デフォルトの名無しさん:2006/08/07(月) 00:14:39
入門書を買ってこれから勉強!って思ってたんですけど、
JDKがダウンロードできなくて。

「J2SE5.0(日本語)」がないんですよね。
いろいろさまよって探しても、それらしきページは真っ白に・・・

最近はじめられた皆さん、ダウンロードはどうされましたか?


454 :446:2006/08/07(月) 00:18:00
自己解決した

455 :デフォルトの名無しさん:2006/08/07(月) 00:18:18
プログラミングをこれから始めようとしている初心者です。
JAVAで携帯のゲームを作ろうと思っています。
それで、新しくパソコンを買いたいのですが、
こういう機能があったほうがいいとかオススメのパソコンがあったら教えてください。

456 :デフォルトの名無しさん:2006/08/07(月) 00:20:55
PD1Ghz、メモリ768MBのノートがあれば十分だよ

457 :デフォルトの名無しさん:2006/08/07(月) 00:35:45
正直さ本読みながらプログラム打つのって大変じゃない?
パソコン周りゴチャゴチャしてて本なんて置くスペースないんだよね。

だからノーパでやってたんだけどノーパも打つのが安定しない。
いい方法無い?

458 :デフォルトの名無しさん:2006/08/07(月) 00:41:23
>>457
1.周りを整理して本を置くスペースを作る
2.専用のスタンドがあるのでそれを使う

459 :デフォルトの名無しさん:2006/08/07(月) 00:46:48
>>458
スピーカー、タワー型本体、モニター、スピーカー
って並んでるからこれ以上机の上は片付かないんだ。
専用のスタンドか…いちいち手放してセットするのもめんどそう。
やっぱ足の上しかないのかな…。

俺は机だけどパソコンラックだともっとスペースないよね?
みんな頑張ってるんだな。

460 :デフォルトの名無しさん:2006/08/07(月) 00:46:58
>>453
>>380 (>>69)

461 :デフォルトの名無しさん:2006/08/07(月) 00:52:20
>>459
タワー型なら机の下に置く
スピーカーはモニターと一体型の物にするか、ヘッドフォンにする

所謂パソコンデスクってのは使い勝手が悪いからプログラム打ちには向いてない


462 :デフォルトの名無しさん:2006/08/07(月) 00:54:32
J2SEって1.5でいいの?
1.42とどっちがいい?
やっぱ最新の1.5?
Eclipseのコンパイラは1.42にしてあるんだけど。

あとどうでもいいけどCDついてる本て読みにくいよね。
CD抜いてなくすのも嫌だしこれも悩む。

463 :デフォルトの名無しさん:2006/08/07(月) 00:56:44
>>461
だよね。
机の下は30Wの結構でかいギターアンプが置いてあって移動できないんだ。
スピーカーもコンポのスピーカーの上にPCのスピーカーでどうしようもない状態。

が、がんばるよ!

464 :デフォルトの名無しさん:2006/08/07(月) 01:00:26
>>463
俺的にはパソコンはちゃぶ台の上で使うのが一番だとおもう

465 :462:2006/08/07(月) 01:01:54
ああ、分かった

466 :デフォルトの名無しさん:2006/08/07(月) 01:13:55
用途によるって即返されそうなんだけど質問いいかな?
メソッドを使う時同じクラス内で使うのと他のクラスから
呼び出すのどっちで覚えた方がいい?

1冊目は他のクラスから呼ぶ
Method mt;
mt = new Method();
mt.Method1();
みたいな感じだったんだよね。

2冊目の本だと
public class Method {
〜main〜 {
printMessage1();

public static void Method1() {
System.out.println("これはメソッド1");
}
みたいな感じ。

別クラスからのだと void メソッド名() だったのに対して
同クラスからのだと public static void メソッド名() になってたから戸惑った。

とりあえずはどっちで覚える方が幸せになれる?

467 :466:2006/08/07(月) 01:23:45
凄くわかりにくかったかな?
publicとstaticの用途はなんとなく学んだ。

別クラスからだとvoid メソッド名()で大丈夫なのに
同じクラスからだとvoid メソッド名()でエラーでたのが意味わからなかった。
だから聴いたけどやっぱ用途によるよね。

468 :デフォルトの名無しさん:2006/08/07(月) 01:27:04
>>466
お前は自分の勉強法を見直せ。
public static void main(String[] args) 程度のフレーズを省略書きしてる
時点で、言語勉強に対する心意気が足りないのが目に見えてわかるぞ。
printMessage1() なんてメソッドも存在しないしな。

お前の書いてることは、どちらが better かという問題じゃない。
static 修飾子を理解していないから、どちらが necessary かというのを
判断できていないだけの話だ。

頭の中入れ替えて出直してこい。


469 :デフォルトの名無しさん:2006/08/07(月) 01:29:32
>>466-467
エラーが出る意味が分からないというのならば、public の意味が分かってない。
public で宣言する意味が分からないというのであれば、オブジェクト指向が分かってない。


あと static は、初心者はあまり使わんでいい。

470 :デフォルトの名無しさん:2006/08/07(月) 01:30:54
ごめん。「public と static の意味が分かってない」 「public や static で宣言する意味が」 に訂正。

471 :デフォルトの名無しさん:2006/08/07(月) 01:34:07
>>462
コンパイラは5.0を入れておけばいい。
1.3までは下位Versionもコンパイルできる。

ここの source オプションを参考にしる。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/tooldocs/solaris/javac.html


472 :デフォルトの名無しさん:2006/08/07(月) 01:38:56
プログラミングするなら、こたつ机が最強。
但し、このスタイルをとる場合は冬場は、気を付けろ!
息詰まると寝っ転がって、そのまま Fallin' asleep!
 by 長井 秀和


473 :466:2006/08/07(月) 01:40:18
>>468
省略したのはmainクラスの中ってわかれば良いと思ったから。
上の記述にはクラス出てこないから対照にするのは変になると思ったからだ。

あとprintMessage1();は元の文章だったスマン。
Method1();の間違い。
staticについてはオブジェクト指向云々で余り理解できていないのは事実だ。
初心者なんでスマン。

>>469
publicはクラス外部からアクセスが出来るってことでしょ?
1つ目はpublicをclassで宣言しているから書かなくていいって事?
でも逆に考えたら他のクラスなんだからpublicが必要な気がする。
逆に2個目は同じクラス内なのになんで宣言する必要があるのかがわからなかった。

オブジェクト指向があんまりわかってないのは事実だ。
概念は後でいいって言われた。
この後UML勉強するつもりだ。

474 :デフォルトの名無しさん:2006/08/07(月) 01:49:14
>>473
じゃあ今は悩まなくていいよ。
UMLを勉強してから、それでもわからなければ悩めばいい。

あと、後者に関しては幸せな方法を教えておいてやるよ。

public class NulPo{
public static void main(String[] args){
new NulPo();
}
public NulPo(){
this.someMethod();
}
public void someMethod(){
System.out.println("ぬるぽ");
}
}


475 :デフォルトの名無しさん:2006/08/07(月) 01:51:21
>>473
UML 勉強するよりも、オブジェクト指向の概念を先にやりなさいな
正確には、UML でも Java でも何でもいいからやってみて、オブジェクト指向の概念を体感しなさいな

class Foo {
    void Hoge() {
        Method mt; 
        mt = new Method(); 
        mt.method1(); 
    }
    void Fuga() {
        Method.method1();
    }
}
class Method {
    public static void main() {
        method1();
    }
    public static void method1() {
        System.out.println("これは Method1()");
    }
}

コンパイル通してないけど、これはエラーが起きないはず。

476 :デフォルトの名無しさん:2006/08/07(月) 01:55:05
んが。確かにエラーは起きないだろうが……


まあ良いや

477 :デフォルトの名無しさん:2006/08/07(月) 01:58:44
>>474
はい。

public NulPo(){
this.someMethod();
}

の部分はメソッドなの?
オブジェクトって奴?
なんとなくわかるんだけどまだ難しいようだ。
わざわざありがとう。

>>475
void Fuga() {

>>395

478 :473:2006/08/07(月) 02:00:34
書き途中だったのに書いちゃった。。

>>475

void Fuga() {
Method.method1() {
}
の部分もよくわからない。
mt.method1()にはならないの?

479 :デフォルトの名無しさん:2006/08/07(月) 02:00:45
>>477
>の部分はメソッドなの? 
コンストラクタ

480 :デフォルトの名無しさん:2006/08/07(月) 02:02:24
>>478
『 mt 』 って、Fuga の中にあると思いますか?
無さそうだと分かれば mt.method1(); がありえない事が想像できるはず。

キーワードは 『スコープ』

481 :473:2006/08/07(月) 02:03:35
>>479
把握。

やっぱまだ見ただけじゃわからないや。
なんとなく暗記みたいな感じになってるし。
やっぱいっぱい書いて読めるようにならなきゃだよね。


>>477の奴の>>395ってのは昨日の俺です。
それでオブジェクト指向わからないならUMLやればって言われたので。

482 :474:2006/08/07(月) 02:04:59
この流れ、俺は神認定か?


483 :デフォルトの名無しさん:2006/08/07(月) 02:05:50
>>474=482チャットまがいの駄スレにした責任を取ってください。

484 :デフォルトの名無しさん:2006/08/07(月) 02:06:23
やだ

485 :デフォルトの名無しさん:2006/08/07(月) 02:13:14
>>480
クラス名.メソッド名になってるって事でしょ?
それはわかるけどMethod.method1();になるのがいまいち。

これって結局mainたどって行くとmethod1();しかでてこ無いじゃん?
だからclass Fooっていらないじゃん?とはならないの?

逆にclass MethodからHoge()とFuga()を呼び出すなら
Foo fo;
foo = new Foo();

foo.Hoge();
foo.Fuga();

という考え方はあってる?

>>483
俺のせいだゴメンwwwww
もう少し読み解いて出直してくる。

486 :デフォルトの名無しさん:2006/08/07(月) 02:18:40
>>485
人に聞くのが必ずしもいいことではないけど、探究心があるのは喜ばしいことだろうね。
ただ企業でそれやるとウザがられるから注意だけど。


class Foo を作ったのは、class Method の外部からのアクセスを示したかったから。
別に外部クラスだったら Foo じゃなくても良いかと。

foo.Hoge() と foo.Fuga() は合ってる。
じゃ、Hoge() と Fuga() が static だったら、Foo.Hoge() と Foo.Fuga() は可能だとおもう?

また、public が省略されていたら、どこからアクセスしようとした際にエラーが出ると思う?

487 :デフォルトの名無しさん:2006/08/07(月) 02:24:54
>>486
だよな。
学生の今のうちに吸収しておきたくて。

staticの仕様がまだいまいち理解できてないからそれはわからない。
publicは書かなくてもpublicなの?
privateとかprotectedとか何かしら書かないといけないと思っている。
何も書かないとどのような状態なのかがわからない。

488 :デフォルトの名無しさん:2006/08/07(月) 02:27:39
>>487
メソッドとフィールドのアクセス宣言は
 1: public
 2: protected
 3: (省略)
 4: private
の4種類
http://www.y-adagio.com/public/standards/tr_javalang/6.doc.htm#62395

489 :デフォルトの名無しさん:2006/08/07(月) 02:28:14
>>487は純粋に勉強不足か本が悪いかのどちらか。
2冊通してるのに理解しなさすぎ。

490 :デフォルトの名無しさん:2006/08/07(月) 02:31:01
>>487
それからもう1つ。

public などのアクセス宣言を行う意味や static を用いる意味は、ちゃんと学んでおくべき。
「これにするとエラーが消えます」 しか理由が言えないのならば、そのプログラマは初心者。

491 :デフォルトの名無しさん:2006/08/07(月) 02:37:33
とりあえず、分からなければ public と private だけ覚えておけば良いよ。最も頻繁に使うし。
pritected とデフォルトアクセスは、パッケージについて学ぶときに一緒に学べば良いかと。

あと、static はあまり使わない。初心者は static を使わないようにクラス設計するのが吉。
ただ、こっちは覚えなくちゃいけない要素だけど。

492 :デフォルトの名無しさん:2006/08/07(月) 02:38:42
>>488
サンクス。

クラス又はインタフェース型を public 宣言していれば,それを宣言しているパッケージに
アクセス可能な任意のJavaコードによってアクセス可能とする。
クラス又はインタフェース型を public 宣言していなければ,
それを宣言しているパッケージ内からだけアクセス可能とする。

2個目の意味がわからない。
"public宣言していなければ、それを宣言している"って矛盾してない?
省略している部分って意味?

>>489
まだ2冊通したわけじゃない。
1冊目で詰まったから2冊目にワープしたところ。
記述が少ないのか記述の仕方が悪いのかわからないからね。
間違いなく勉強不足でしょう。
それか本がブックオフで中古の少し古い本だからか。
授業で使ってた「やさしいJava」買えばよかったなって思った。
教科書全く買ってないんだよね。

>>490
おうありがとう。
今の所は漠然と基本情報を取ろうと思って勉強している位なんだ。
漠然とした理由なのが悪いのは間違いない。
あと勉強の遅れを取り戻そうと一気にやっているのが悪いかな。

493 :デフォルトの名無しさん:2006/08/07(月) 02:39:08
また誤字った。ばかーーーーーーーー!!!!! orz
ちなみに protected はパッケージじゃなくて継承でした。すまんねちくしょう。・゚・(ノД`)・゚・。

494 :デフォルトの名無しさん:2006/08/07(月) 02:41:46
>>492
>それを宣言しているパッケージ内からだけアクセス可能とする
  ↑これは、宣言されたクラスを指してます。

ただ、これはクラスのアクセス指定についての話。
フィールドやメソッドの話は、『メンバ』 としてひとまとめに書かれているから注意ね。

495 :デフォルトの名無しさん:2006/08/07(月) 02:51:44
>>491,493
優しいし可愛いよwwww

publicとprivateはなんとなくわかる。
staticが敵。

>>494
なんとなくわかりそう。


とりあえずもう少し頑張って勉強してみる。
教科書悪いと思ったらやさしいか独習買うかな。
また迷惑掛けにくると思うからその時はまたよろしくだよ!
超初心者のバカな質問に付き合ってくれてありがとう。
お前ら愛してるぜ!
ノシ

496 :デフォルトの名無しさん:2006/08/07(月) 04:05:16
>>416
間違っちゃいないのかも試練が間違っているように見えるよ。



497 :418 エコ:2006/08/07(月) 05:01:47
最後に報告です。教えてきました。ちなみに大学は経済学部です。
先生に出された課題は、「釧路の地図に○と線を書くプログラムを二人で作る。」だったんですけど、
相方は本当にパソコン初心者だったんで、自分がプログラムを書いて、相方にそのプログラムの仕組み
とプログラミングの考え方を教えて出来たことにしよう!と考えたわけです。
たぶん先生も相方が出来ないのは承知で自分にプログラムを教えさせることで、自分の知識の固定化と
自分がどの程度理解しているか調べたかったんだと思います。
教えた方法は、まず「CPUの創りかた」という本を見せて、コンピューターが1と0しか分からないこと。
人間に1と0でプログラムを書くことは無理なので、アセンブラ、そしてプログラミング言語が
出てきたこと。その話題に絡めてコンパイラの説明。
Javaの紹介。
Javaの特徴の一つとしてプラットフォームに依存しないこと。
(MacとWinで課題のプログラムを実行してみせた。)
依存しない理由として、JavaVMという仕組み。
携帯電話でJavaが使われる理由。(iアプリでJavaのマークが出るところを見せた)
一息付けるためにJavaの利権問題。(SunとIBMのもめ事。eclipseを例に)
で課題のプログラムの説明。
最後に、javac hanamogera.javaと打ってもらって、
hanamogera.classが出来るところを確認。
終了という流れで行きました。
相方は頑張ってくれて、プログラムの概念と課題のプログラムを
なんとなくですが理解してくれたみたいです。
なんかこのスレの人たちはみんな親切で、本当に感動しました。
どうも有り難うございました。

498 :デフォルトの名無しさん:2006/08/07(月) 06:13:17
アニメから映画、ゲーム実況まで何でもある
みんなでvip実況スレを盛り上げよう

ニュー速VIP
ttp://ex16.2ch.net/news4vip/

FF4→5→6 リレー実況 ttp://ex16.2ch.net/test/read.cgi/news4vip/1154895492/
ゲームセンターCX ttp://ex16.2ch.net/test/read.cgi/news4vip/1154888213/
エロゲ実況 ttp://ex16.2ch.net/test/read.cgi/news4vip/1154839702/
おまいらが指定したゲーム実況 ttp://ex16.2ch.net/test/read.cgi/news4vip/1154896516/
RPG実況 ttp://ex16.2ch.net/test/read.cgi/news4vip/1154857556/
女神転生とかを実況  ttp://ex16.2ch.net/test/read.cgi/news4vip/1154776872/
実況!アニメ流すぜ!3本目 ttp://ex16.2ch.net/test/read.cgi/news4vip/1154877307/
【東方】弾幕実況 ttp://ex16.2ch.net/test/read.cgi/news4vip/1154852500/
ファミコンジャンプ実況スレ ttp://ex16.2ch.net/test/read.cgi/news4vip/1154878214/
エロゲ実況すればいいじゃねーか ttp://ex16.2ch.net/test/read.cgi/news4vip/1154885750/
大神実況してみる その4ttp://ex16.2ch.net/test/read.cgi/news4vip/1154880537/
ICO実況 ttp://ex16.2ch.net/test/read.cgi/news4vip/1154896258/
好きなゲームを実況するスレ ttp://ex16.2ch.net/test/read.cgi/news4vip/1154861584/
ToHeart2系実況ttp://ex16.2ch.net/test/read.cgi/news4vip/1154774247/
かまいたちの夜x3を実況してみるttp://ex16.2ch.net/test/read.cgi/news4vip/1154863755/
映画実況するのかも ttp://ex16.2ch.net/test/read.cgi/news4vip/1154895107/
FF4→5→6→7 リレー実況  ttp://ex16.2ch.net/test/read.cgi/news4vip/1154898127/

499 :デフォルトの名無しさん:2006/08/07(月) 10:28:49
Apache Shale使ったことある人いる?

500 :デフォルトの名無しさん:2006/08/07(月) 11:04:33
>>499
1年半ぐらい前からちょくちょくチェックして試してみてる。
実業務では無い。あたりまえだけど。


501 :デフォルトの名無しさん:2006/08/07(月) 12:22:30
>>500
StrutsやSpringと比べてどんな感じ?

502 :デフォルトの名無しさん:2006/08/07(月) 12:41:28
>>501
Strutsよりは間違いなく高機能・多機能。
ShaleはSpringと組み合わせて使うフレームワークなので比べる対象ではない。

高機能・多機能過ぎ。
煩雑・複雑。覚えることが多すぎる。

どう考えてもこのままでは現場に導入できるシロモノとは思えない。



503 :デフォルトの名無しさん:2006/08/07(月) 12:46:24
DoCoMoでの開発をしてる初心者ですが
文字列の読み込み、書き込みが上手くいかず、読み込みの際に

java.io.UTFDataFormatException

と出てしまいます。
APIを見ても「UTF-8形式に変換したデータに問題が発生したとき」と
記載がありますが、具体的にどういうことなのでしょうか?
書き込んじゃいけない文字列が存在するのでしょうか?

504 :デフォルトの名無しさん:2006/08/07(月) 13:06:43
>>503
読み込み、書き込みの具体的な処理をplz

505 :デフォルトの名無しさん:2006/08/07(月) 15:04:34
>>503
読み込もうとしているバイトストリームがUTF-8形式になっているかどうか1バイトごとに確認。
書き込もうとしているUTF-8と思っている文字列が正しい形式かどうか1文字ごとに確認。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/io/DataInput.html#modified-utf-8

506 :503:2006/08/07(月) 17:08:11
>>504
//グローバル
//■読み込み
DataInputStream dis = null;
dis = Connector.openDataInputStream(SP + 100);
sStr_0 = dis.readUTF();
sStr_1 = dis.readUTF();
dis.close;
//■書き込み
DataOutputStream dos = null;
dos = Connector.openDataOutputStream(SP + 100);
dos.writeUTF(sStr_0);
dos.writeUTF(sStr_1);
dos.close;

こんな感じなんですが…。どうでしょうか?ほんとに初心者なんでorz

>>505
UTF-8なのかどうなのか調べるにはどうしたら?すいません。

507 :デフォルトの名無しさん:2006/08/07(月) 22:50:23
配列の使い方が今一わかりません。これ、どこか間違ってますか? ]
「代入1」のところでコンパイルがこけてしまいます。 ]

public class foo { ]
 char[][] m = new char[3][3]; // クラス定義 ]
}

foo[] bar = new foo[2]; // 作ったクラスの配列を定義
a[0].m = {{"a","b","c"},{"d","e","f"},{"g","h","i"}};//代入1
a[1].m = {{"1","2","3"},{"4","5","6"},{"7","8","9"}};//代入2

508 :デフォルトの名無しさん:2006/08/07(月) 22:51:25
↑すみません、文末に ] が入ってるところがありますが無視してください。

509 :デフォルトの名無しさん:2006/08/07(月) 22:53:19
↑たびたびすみません。最後の2行は a[0|1].mじゃなくてbar[0|1].m です。


510 :デフォルトの名無しさん:2006/08/07(月) 23:01:55
>>507
コケた時にコンパイラーは何か言ってた?

511 :デフォルトの名無しさん:2006/08/07(月) 23:06:04
Stringの配列をcharの二次元配列にぶち込むなんて…無茶するぜ…。

512 :デフォルトの名無しさん:2006/08/08(火) 00:29:13
>>507
そこに出ている全ての二重引用符を引用符に変更して、
配列を初期化しているところの{{...の前にnew char[][]をつけてごらん。

513 :507:2006/08/08(火) 00:33:20
出来たよ、アリガト!(´▽`)

514 :デフォルトの名無しさん:2006/08/08(火) 05:43:01
>>507見て、「え、なんで自作クラスのオブジェクト変数に直接
代入できてるの!?」って思ってたら、インスタンス変数に
直でアクセスしてたのか。。。

カプセル化ぶち壊しだから、あまり良い書き方じゃないと思うがな。

515 :デフォルトの名無しさん:2006/08/08(火) 09:04:48
回答ありがとうございます。
自作クラス(ホントはもっと複雑なメンバ変数を持つ)のオブジェクトに、
ファイル等から読み込んだデータを一括して代入したかったんです。


516 :デフォルトの名無しさん:2006/08/08(火) 10:36:31
質問です。
SWTの中のTree機能を使用してTreeを表示させてるんですが
Treeの行間隔は変更とかはできないのでしょうか??

517 :デフォルトの名無しさん:2006/08/08(火) 11:28:53
『シンボルを見つけられません』とでます。
今、Benas関係をやっているのですが、
おなじBeansパッケージのクラスを使おうとすると上記エラーが出ます。
なぜなんでしょう。

package Beans;
public class Data{
private String Name;
private String Code;
--- メソッドその他 ----
}
-------- Data.java -----------------------

package Beans;
public class aaa
{
  public Data [] SearchData( String filter ){
    Data ret[] = new Data[2];
    return ret;
  }
}
------aaa.java--------------------------

エラー内容:
aaa.java: : シンボルを見つけられません。
シンボル: クラスData
場所   : Beans.aaa のクラス
      public Data[] SearchData( String filter )
           ^
aaaクラスから、Dataクラスを使用するにはどうしたらいいのでしょうか。
よろしくお願いいたします。

518 :デフォルトの名無しさん:2006/08/08(火) 12:08:48
>>517
import Beans.*;汁

519 :デフォルトの名無しさん:2006/08/08(火) 12:14:16
>518

importもやってみましたが同じでした。

ちなみに、Data.javaとaaa.javaは同じBeansのフォルダにあります。
デフォルトパッケージからはBeansパッケージは利用できたけど、
同じパッケージ内にあるクラスどうしは利用出来ない・・・はずはないですよね・・

何が悪いんだろう。
完全修飾でもやってみたけど同じだったし

520 :デフォルトの名無しさん:2006/08/08(火) 12:20:39
Dataのコンパイル通ってないんじゃない?
もしくは循環参照があるとか

521 :デフォルトの名無しさん:2006/08/08(火) 12:30:07
>>519
カレントディレクトリ直下にBeansディレクトリを作って、
javac Beans/aaa.java
なら問題なくコンパイルされる。

もし、カレントディレクトリ直下でなく、
例えば、srcディレクトリの下にBeansディレクトリがあるのなら、
javac -sourcepath src src/Beans/aaa.java
としないと、当然コンパイラはData.javaを見つけることはできない。

522 :デフォルトの名無しさん:2006/08/08(火) 12:34:47
>521
お察しの通りでした。
Beansフォルダに移動してコンパイルかけてましたorz

あぁ、ぜんぜん疑っても見なかった・・・
無事コンパイルが通り先に進むことが出来ます

>518 >520 >521
ありがとうございました。

523 :デフォルトの名無しさん:2006/08/08(火) 14:55:32
awtってなんて読むの?あわーと?

524 :523:2006/08/08(火) 14:58:41
ググったら一発だった
糞レスすまんかった

525 :デフォルトの名無しさん:2006/08/08(火) 15:01:47
いつも思うけど、
ググるよりも
ここに書き込む方が
操作が簡単なのかな?

526 :デフォルトの名無しさん:2006/08/08(火) 15:07:13
>>525
たぶんホームページがここなんだ

527 :デフォルトの名無しさん:2006/08/08(火) 16:11:22
awtの読み方なんて、気にも止めたことがなかった。
勝手にォアウトって読んでたが。


528 :523:2006/08/08(火) 16:48:36
>>524
お・・・お前はダレだw

別にどうしても知りたいって訳じゃなかったんだが
俺的には雑談レベルで書き込んでみた程度で。

529 :デフォルトの名無しさん:2006/08/08(火) 19:04:00
ここはおまいの日記帳じゃないw
ググれ。

530 :デフォルトの名無しさん:2006/08/08(火) 19:54:00
>>528
オートだよ。

531 :デフォルトの名無しさん:2006/08/08(火) 20:35:02
アウツ!

532 :デフォルトの名無しさん:2006/08/08(火) 20:45:12
>>529
志村!スレタイ!スレタイ!

>>530
スゲ

533 :デフォルトの名無しさん:2006/08/08(火) 21:32:03
パッケージ system は存在しません。
 system.out.println("HelloWorld");
    ↑
なんでかな?Linuxなんだけど。

534 :デフォルトの名無しさん:2006/08/08(火) 21:40:43
System

535 :デフォルトの名無しさん:2006/08/08(火) 21:40:46
Sか。

536 :デフォルトの名無しさん:2006/08/08(火) 21:48:25
正確には、System はパッケージじゃなくてクラスだけどなw
……気持ちは分かるんだけど、もう少しエラーメッセージ親切にならないかなぁ。

537 :デフォルトの名無しさん:2006/08/09(水) 10:05:36
それは難題だ

538 :デフォルトの名無しさん:2006/08/09(水) 10:33:06
>>536
Systemはクラスだけどsystemはクラスじゃないので無理

539 :デフォルトの名無しさん:2006/08/09(水) 10:44:16
課題というか質問です

SunJavaWebServerをサーバとすることになったんですが、
jspでの記述で、htmlタグ要素の、例えばlength内にスクリプトレットやタグライブラリで、
length="<bean:write name="hogeForm" property="hoge"/>"
とすると、ダブルクォーテーションが正常に認識できないって言われたんですが、調べてもそんな現象話題になってなくて困ってます;;
ちなみに上記の場合はlength='〜'とすることで一応解決します。
jspがjavaとしてのコードよりhtmlタグを優先して見るなんて聞いたことなくて…
どなたか教えて下さい!

540 :デフォルトの名無しさん:2006/08/09(水) 12:51:49
認識できる

541 :デフォルトの名無しさん:2006/08/09(水) 12:56:25
そもそもjsp自体の文法があるから、それに従ってないと処理できない
単純なパターンマッチングの文字列置き換えじゃなくて、invaildなXML以上になってないと処理できないと思ったほうが良い

542 :デフォルトの名無しさん:2006/08/09(水) 16:37:23
質問です。
Javaでアプリケーションを作った場合に、
アプリケーションの背景画像ってどうやって指定すればいいんでしょうか?

543 :デフォルトの名無しさん:2006/08/09(水) 16:46:13
自分で書く

544 :デフォルトの名無しさん:2006/08/09(水) 17:01:09
paintComponent(Graphics g) をオーバーライド

545 :539:2006/08/09(水) 17:23:33
出来た!ありがと

546 :デフォルトの名無しさん:2006/08/09(水) 17:55:59
>>542
コンテンツ区画のpaintComponent(Graphics)をオーバーライドすれば後腐れがない。
public class a extends javax.swing.JFrame {
public static void main(String[] args) { new a(); }
public a() {
setContentPane(new javax.swing.JPanel(){
private java.awt.Image image = new javax.swing.ImageIcon("back.jpg").getImage();
public void paintComponent(java.awt.Graphics g) {
super.paintComponent(g);
g.drawImage(image, 0, 0, getWidth(), getHeight(), null);
}
});
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(300, 300);
getContentPane().add(new javax.swing.JButton("button1"));
getContentPane().add(new javax.swing.JButton("button2"));
getContentPane().add(new javax.swing.JTextField(20));
setVisible(true);
}
}
デフォルトのコンテンツ区画みたいにBorderLayoutマネージャにしたければ、
JFrame#setLayout(LayoutManager)で変更する。

547 :デフォルトの名無しさん:2006/08/09(水) 18:09:49
背景用のJLayeredPaneを作って差し込むのもありだな。

548 :デフォルトの名無しさん:2006/08/09(水) 18:36:11
ようはご自由にってだけだな

549 :デフォルトの名無しさん:2006/08/09(水) 18:38:48
swingとは限らんしな

550 :デフォルトの名無しさん:2006/08/09(水) 21:44:44
isTitleCaseってなんですか?
説明をみてもわかりづらかったので詳しく教えてください


551 :デフォルトの名無しさん:2006/08/09(水) 21:59:37
タイトル(見出し)を単語の先頭大文字、あとは小文字という形式で書くときに使う
文字ってことだが、言語によっては、2文字に見えても実は特別に1文字で扱う組
み合わせってのがあって(たとえば、APIで例に出ているLj)、そういうのは、こう
いう場合にLJでもljでもなくLjと書く。それ専用の合字がUnicodeでは割り当て
られている。

組み合わせで書けるのに専用なんてずるいと思うかもしれないけど、日本語でも
「か」+「゛」の合字なんてのが割り当てられてるし、まぁいいんじゃないかね。

552 :デフォルトの名無しさん:2006/08/09(水) 22:02:13
>>550
Character.isTitleCase なら、文字が Unicode の TitleCase 文字ならば true を返すメソッド
ぶっちゃけ使いどころはあまりないはず

553 :デフォルトの名無しさん:2006/08/09(水) 22:09:15
なるほど

サンクス

554 :デフォルトの名無しさん:2006/08/09(水) 22:55:49
swing なら俺に任せておけ

555 :デフォルトの名無しさん:2006/08/09(水) 23:40:46
よし任せた。
はい次の質問。

556 :デフォルトの名無しさん:2006/08/10(木) 00:12:15
ブラウザで実行している Java Applet の標準出力を Windows の他のコマンドへ
リダイレクトしたいのですがどのようすればできますか?

557 :デフォルトの名無しさん:2006/08/10(木) 00:16:26
>>556
アプレットビューワー使えば?

558 :デフォルトの名無しさん:2006/08/10(木) 00:21:57
正規表現についてなんですが、\\で"\"ですよね?
"\\"と入れるにはどうしたら良いのでしょうか

559 :デフォルトの名無しさん:2006/08/10(木) 00:22:33
\\\\

560 :デフォルトの名無しさん:2006/08/10(木) 00:33:59
>>559
その方法でやってもうまくいかない…
ちなみにファイルから読み込んだString A = "\"を
A.replaceAll("\","\\")てな具合に"\"を"\\"に置き換えたいんですが
\\\\で置換して、置換後の文字列を見ても、\が一つしかない


561 :デフォルトの名無しさん:2006/08/10(木) 00:44:00
>>560
こうだよ?

String A = "\\";
String B = A.replaceAll("\\\\", "\\\\\\\\");
System.out.println(A + " : " + B);

\の数を間違えないようにね

562 :デフォルトの名無しさん:2006/08/10(木) 00:50:57
>>561
間違えてないか?

563 :デフォルトの名無しさん:2006/08/10(木) 00:55:25
>>562
replaceAllは正規表現だから、これでいいんジャマイカ。

564 :デフォルトの名無しさん:2006/08/10(木) 00:58:00
>>563
その通り
実際に実行して確かめてから誤りは指摘した方がクール

565 :デフォルトの名無しさん:2006/08/10(木) 01:01:24
根本的な話、ソースファイルに \ が大量に含まれていることが
そもそもの問題と思う。


566 :デフォルトの名無しさん:2006/08/10(木) 01:04:16
Perlの正規表現とJavaの文字列リテラルとの相性が悪かっただけの話。
プログラム自体には何も問題はないと思うが。

567 :デフォルトの名無しさん:2006/08/10(木) 01:54:01
C#みたいな@""の書き方があれば楽なのに

568 :デフォルトの名無しさん:2006/08/10(木) 01:58:50
そういやreplaceが実装されてからreplaceAllってあんまつかわなくなったな


569 :デフォルトの名無しさん:2006/08/10(木) 02:01:28
文字列リテラルのエスケープ文字を変更できるようなプリプロセッサを通すとか
あまり需要なさそうだけど

570 :デフォルトの名無しさん:2006/08/11(金) 09:32:26
ans.txtには
「"2006","08","19","提出"」
「" "," 期日","厳守","by田岡"」
の2行が入っているのですが、文字の前後にある""を取り払い、,ごとに
文字を区切り、
「2006    「08    「19    「課題
 (空白)」   期日」   厳守」   田岡」
↑の様に4つに分解してtxtに書き込みたいのですが、どうすれば良いのでしょうか?


Splitでは""の部分をうまく消せず、arrayListを用いてStringTokenizerを上手く使えず凹んでおります。
下のプログラムからあーでもないこーでもないを繰り返して早1週間。
申し訳ありませんが、お力を貸してくださいorz

ArrayList<String> readList = new ArrayList<String>();
BufferedReader fileReader = new BufferedReader(new FileReader("./ans.txt"));
String read;

while((read = fileReader.readLine()) != null) {

}

571 :デフォルトの名無しさん:2006/08/11(金) 10:16:58
>>570
まず split メソッドで分割してから、各 String インスタンスについて
indexOf メソッドでダブルクォーテーションの位置を検知、
そして substring メソッドで当該文字列を抜き出し。

書き込みは自分で書けるよな?

572 :デフォルトの名無しさん:2006/08/11(金) 12:03:07
それだと",","a"を処理できない

573 :デフォルトの名無しさん:2006/08/11(金) 12:09:45
eclipse3.2のJFaceでGUI作成してるんだが、解説サイトの通り

CompositeRuler ruler = new CompositeRuler();
ruler.addDecorator(0, new LineNumberRulerColumn());
SourceViewer viewer = new SourceViewer(parent, ruler, SWT.BORDER|SWT.V_SCROLL|SWT.H_SCROLL);

とすると一瞬GUI画面が出てviewerがNullPointerExceptionで落ちる
rulerの部分をnullにすると落ちない

どうすればCompositeRulerを使用してSourceViewerを扱えますか?

574 :デフォルトの名無しさん:2006/08/11(金) 12:20:22
Java1.5で質問です。
ボタンを縦に並べたいのでsetBoundsを使って座標指定してみたのですが、全く
無視されているようです。どこで間違えていますか?

import java.applet.Applet;
import java.awt.*;

public class t1 extends Applet{
int i;
Button[] lir;

public void init() {
lir = new Button[10];
for (i=1 ; i<10 ; i++) {
add(lir[i]=new Button());
lir[i].setBounds(20,10+30*i,330,22);
lir[i].setLabel("No." + i);
}
}

}


575 :デフォルトの名無しさん:2006/08/11(金) 12:25:59
>>574
レイアウトマネージャの設定

576 :デフォルトの名無しさん:2006/08/11(金) 12:40:11
>>575
そうだった。下敷きがいるのをすっかり忘れてた。
ありがとうございました。

577 :デフォルトの名無しさん:2006/08/11(金) 12:48:31
>>570
そんなあなたに正規表現

578 :デフォルトの名無しさん:2006/08/11(金) 12:52:57
>>572
意味がわからん。
それは純粋にサポート外の形式なんだから、2つ目のダブルクォーテーションを
捕捉できなかった時点で例外を投げるべきところ。
今回の話題からすれば的はずれな意見なわけだが。


579 :デフォルトの名無しさん:2006/08/11(金) 12:57:44
>>578
572 じゃないけど、俺は一目見て >>570 が csv のように思えたが。
少なくとも 「文字に , は含まれない」 とはどこにも書いてないけどな。


>>570 ちとまっててー

580 :デフォルトの名無しさん:2006/08/11(金) 13:14:17
>>574
レイアウトマネージャを null にせいや。

581 :デフォルトの名無しさん:2006/08/11(金) 13:30:07
>>570
汚いけど一応動く。あとはがんばって

ArrayList<String> result = new ArrayList<String>();
StringBuilder sb = new StringBuilder();
for(int i = 0; i < text.******(); i++) {
switch (text.******(i)) {
case '\"':
i++;
for(; i < text.******(); i++) {
char c = text.******(i);
if (c == '\"') {
if (text.******() <= i + 1 || text.******(i + 1) != '\"') break;
i++;
}
sb.******(c);
}
break;
case ',':
result.***(sb.********());
sb = new StringBuilder();
break;
}
}
if (0 < sb.******()) {
result.***(sb.********());
}

・ "" で囲まれていない文字は認識してない
・ "" の中の , は区切り文字に使ってない
・ "" の中では2連続の " を " に置き換えてる

582 :デフォルトの名無しさん:2006/08/11(金) 14:11:37
てす

583 :570:2006/08/11(金) 15:09:53
皆さんアリガト!(´▽`)(^▽^)
現在>>571さんのレスから

while((read = fileReader.readLine()) != null) {
String[] arrayRead = read.split("\\,");
for(int i = 0; i < 4; i++) {
StringTokenizer sToken = new StringTokenizer(arrayRead[i],"\"\"");
        〜〜
    }
}
  
↑の用な形にすることで、,で区切り尚且つ""を消すことができました。

>>581さん
StringBuilderというのは初めて見ました。
折角作ってくださったのに読めなくて申し訳ありません。

584 :デフォルトの名無しさん:2006/08/11(金) 16:07:07
StringBuilderはTigerで導入された、各メソッドにsynchronizedが
ついてないStringBuffer。

585 :デフォルトの名無しさん:2006/08/11(金) 16:55:58
個人的にはcsv形式扱うときはわくほくのCSVTokenizerをJava5対応に改変したものを使ってる。
CSVTokenizerでぐぐるといろいろ実装されているので探してみれ

586 :デフォルトの名無しさん:2006/08/11(金) 17:28:58
で、これはRFCなCSVに対応してる?

587 :デフォルトの名無しさん:2006/08/11(金) 17:45:01
RFCにCSVなんてあるのか!

588 :デフォルトの名無しさん:2006/08/11(金) 17:56:58
これ?
ttp://www.rfc-editor.org/rfc/rfc4180.txt
あったんだね。知らなかった。

589 :デフォルトの名無しさん:2006/08/11(金) 18:02:40
CSV Formatの第6項がまずいかもしれんね。
あと、行のセパレータはCRLFなんだね。さすがRFC

590 :デフォルトの名無しさん:2006/08/11(金) 18:54:38
内部クラスと外部クラスの利点・欠点は何?

591 :デフォルトの名無しさん:2006/08/11(金) 19:16:10
>>590
利点: スコープ関連。
欠点: 特になし。というか欠点があったら使わなきゃいいだけじゃね?

592 :デフォルトの名無しさん:2006/08/11(金) 20:21:45
外部に見えないのがそのまま欠点になってると思うぞ。

Arrays.asList メソッドが返すのは List となっているが、こいつは
内部で定義されている ArrayList (java.util.ArrayListとは別物)の
インスタンスを返していて、APIに実装が出ていないから詳細を知るには
わざわざソースを見に行かなければならない。
そこまで頭が行かないやつは、コンパイルエラーで「ArrayList」って
出てきて、なおさら混乱する。

内部クラスのインスタンスを返している仕様が問題なのかもしれんが
(というか、なぜそんなことをしているのかがイマイチよくわからん)。


593 :デフォルトの名無しさん:2006/08/11(金) 20:33:16
>>592
特定クラスの実装に依存しようという態度が問題かもね。

594 :デフォルトの名無しさん:2006/08/11(金) 21:12:44
>>593
それはどういうことだ?

595 :デフォルトの名無しさん:2006/08/11(金) 21:20:23
>>594
API の実装によっては
中身は ArrayList じゃないことも有り得る、という考え方。

抽象化プログラミングが何なのか解っていれば
この辺りのことは納得できると思う。

596 :デフォルトの名無しさん:2006/08/11(金) 21:47:32
>>595
俺は ArrayList に沿ってプログラミングしてるなんて一言も言ってないけど。
List インターフェースに沿ったプログラミングをして支障を来した
経験があるから言ってるわけだが。

597 :デフォルトの名無しさん:2006/08/11(金) 21:56:25
Eclipseでソース追えないようって言ってるわけ?ぶっちゃけ慣れだと思うよ。
インタフェースベース開発はベンダーに依存するからこそ威力を発揮する。
ServletとかXMLParserとかもその恩恵を受けてるしね。

598 :デフォルトの名無しさん:2006/08/11(金) 21:57:53
> APIに実装が出ていないから詳細を知るには
> わざわざソースを見に行かなければならない。

599 :デフォルトの名無しさん:2006/08/11(金) 22:00:35
となると、
>>592のコンパイルエラーがどういうものか知りたい。

600 :デフォルトの名無しさん:2006/08/11(金) 22:10:14
>>596
それは本当に List インタフェイスに沿ったプログラムというのかと小一時間

601 :デフォルトの名無しさん:2006/08/11(金) 22:14:58
asListなのにaddしようとしたとかいう落ちじゃないよね?

> 指定された配列を基にする固定サイズのリストを返します。
とも書いてあるし、当然そんなことするわけないよな。

602 :デフォルトの名無しさん:2006/08/11(金) 22:20:27
>>592 の書いたコードを見てみたい。なんか気になる。

603 :デフォルトの名無しさん:2006/08/12(土) 01:28:57
勘違いじゃない?
そもそも外部クラスと内部クラスの話でもないし。

604 :デフォルトの名無しさん:2006/08/12(土) 04:56:53
質問です。

1を入力した場合に正方形の、2を入力した場合は円の面積を求めるプログラムを作ります。
その場合は switch文 を使うのが望ましいと思うんですけど
if文 で作ることはできますか?

1、2以外の値が入力された場合の問題で。

if(i[0] ! (1 && 2))という文は使えないんですか?
switchならばdefalt;を使えば良いんだと思います。

まだ勉強中なので色々なパターンを知る方が良いと思いまして。
よろしければご教示お願いします。

605 :604:2006/08/12(土) 04:59:20
if(i[0] != (1 && 2))の間違いでした。
補足で自分で試したところではエラーが出ました。
よろしくお願いします。

606 :デフォルトの名無しさん:2006/08/12(土) 05:01:00
> if(i[0] ! (1 && 2))という文は使えないんですか?

いろいろなパターンを知る前にもっと基礎を勉強しましょう。

607 :デフォルトの名無しさん:2006/08/12(土) 05:22:44
フィールド
private String material;

コンストラクタ
public ToyFactoryBean() { material = null; productCount = 0; }

//materialプロパティ(Write Only)
public void setMaterial (String material) {
this.material = material;
}

このマテリアルのプロパティメソッドがよく理解できません、materialという文があちらこちらにあって混乱します
(String material)は引数としてどこのmaterialを受け取っているのですか?

608 :デフォルトの名無しさん:2006/08/12(土) 05:24:07
>>606
&& はboolean型にしか使えないんですか?
1と2以外の値ということを考えこういう結果に至りました。

ありがとうございました。
出直してきます。

609 :デフォルトの名無しさん:2006/08/12(土) 07:21:10
mainメソッドで
BufferedReader input =
new BufferedReader(new InputStreamReader(System.in));

610 :デフォルトの名無しさん:2006/08/12(土) 07:32:37
初歩的な質問ですがお願いします。
>>609はミスなんでスルーしてください。

java.io.*;
public class Abc {
public static void main(String[] args) throws IOException {

String str[] = new String[2];
int i[] = new int[2];
double d;

BufferedReader input =
new BufferedReader(new InputStreamReader(System.in));
}

としている場合に他のメソッドで標準入力を扱う場合はどうしたらいいですか?

public static void mathfoo {
str[0] = input.readLine();
i[0] = Integer.parseInt(str[0]);
switch(i[0]) {
case 1:〜
case 2:〜
}}

}
としたいのですが変数が使えない様なので
this.str[0] などにしてみても static で this は使えない様なので困っています。
特に input の扱いがいまいちわかりません。

解決策がわかりましたらどうかよろしくお願いします。

611 :デフォルトの名無しさん:2006/08/12(土) 07:34:12
その使いたいメソッドでもう一回BufferedReader作ったらいいんでね?

612 :610:2006/08/12(土) 07:44:45
>>611
即レスありがとうございました。

java.io.*;
public class Abc {
public static void main(String[] args) throws IOException {
mathfoo();
}

public static void mathfoo() throws IOException {

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

String str[] = new String[2];
int i[] = new int[2];
double d;

str[0] = input.readLine();
i[0] = Integer.parseInt(str[0]);
switch(i[0]) {
case 1:〜
case 2:〜
}}
}

としたら問題なく動きました。
この場合 main メソッドがとても無駄に思えるんですけどこんなもんですか?
繰り返し使いたいので main だけにはできませんでした。

613 :デフォルトの名無しさん:2006/08/12(土) 10:05:46
>>607
そんなの、わかるわけがないだろ。
どこかでそのクラスのインスタンスが生成され、そのメソッドが使われた
場合に material に文字列がセットされる。セットされる文字列を
知っているのは、そのメソッドを呼び出したやつ。それ以上でも
それ以下でもない。具体的に呼び出された文がなければ
どこの material を受け取ってるかなんて不明。

614 :デフォルトの名無しさん:2006/08/12(土) 10:16:19
>>612
BufferedReader をクラススコープで静的に宣言すればいい。
つまり、

  private static BufferedReader input;

という宣言をメソッドの外に書けば良い。
>>610 のままでは、メソッドスコープで宣言されてるから、外のメソッドから
変数 input を参照できないだけだ。

ただ、こう書くと初心者は「そうか、変数はメソッドの外で宣言すれば
便利なのか!」と勘違いしやすいから気を付けろ。
様々なメソッドが参照できるということは、その変数に関連したバグの
一つでも発生すれば、他のメソッドの動きにも支障を来す可能性だって
考えられる。
必要もないのに大きなスコープで変数宣言することをしてはいけない。
可能な限り最小にとどめるべき。

常日頃から変数宣言するときは、「なぜここで宣言するのか」って
哲学をしてれば、プログラミング上達の一助になる。


615 :デフォルトの名無しさん:2006/08/12(土) 10:34:48

web上でGUIで編集できてそのままURL張れば楽譜が表示される
ようなサーバーってどっかにないかなあ。


616 :デフォルトの名無しさん:2006/08/12(土) 11:04:32
>>615
あると良いな。作ろうぜ!


617 :ss:2006/08/12(土) 11:15:20
sos

今javaのtest中
だれかたすけてください。かってなこといってすみません

*金種計算の問題

1.金種計算はメソッド(Keisan)でおこなう
2.金種は配列、int[]kinsyu={10000,5000,1000,500,100};にある
3.100円未満は切り上げ

実行結果

名前をにゅうりょくしてください:青木
金額を入力してください:37865
青木さんは:10000円は3枚 5000円は1枚 1000円は・・・です。

むちゃくちゃいそいでます。おねがいします

618 :デフォルトの名無しさん:2006/08/12(土) 11:25:40
>>612 別クラスにするとかどうか
class Abc2{
String str[] = new String[2];
int i[] = new int[2];
double d;
BufferedReader input;

public Abc2(InputStream is){
input = new BufferedReader(new InputStreamReader(is));
}
public void mathfoo() throws IOException {
str[0] = input.readLine();
i[0] = Integer.parseInt(str[0]);
}
}

public class Abc{
public static void main(String[] args) throws IOException {
Abc2 abc2 = new Abc2(System.in);
abc2.mathfoo();
}
}

619 :デフォルトの名無しさん:2006/08/12(土) 11:28:41
>>617 宿題スレに似たようなのがあった気がする。

620 :612:2006/08/12(土) 12:43:51
>>614
レスありがとうございます。

public class Abc {
private static BufferedReader input;
public static void main(String[] args) torows IOException {

って事でいいんですか?
あと特別 private にした意味ってありますか?

以下は
input =
new BufferedReader(new InputStreamReader(System.in));
でいいのかな?
でもそうしたら二度手間?

>>618
最初は別クラスにしようとも考えました。
特に大げさなプログラムではなく switch が default の場合のみ繰り返す(再入力を求める)
という簡単な処理なのでクラスは一つにまとめた方がわかりやすいかと考えました。

もっと何度も使うようなメソッドであるならクラスは分けるべきですよね?

621 :デフォルトの名無しさん:2006/08/12(土) 12:47:50
10進数を2進数に変換するメソッドなんですけど
出力結果が

[I@19821f
[I@addbf1
[I@42e816

の様になってしまいます。
どこを改善したら良いでしょうか?

public class Foo {
public static void main(String[] args) {
System.out.prinln(bitValue(10, 10));
}

public static int[] bitValue(int dec, int length) {
int i, j;
int a[] = new int[length];

for (i = a.length - 1, j = 0; i >= 0; i--, j++) {
if (((dec >> i) & 1) != 0)
a[j] = 1;
else
a[j] = 0;
}
return a;
}

622 :デフォルトの名無しさん:2006/08/12(土) 13:04:57
>>621
[I@19821f
 [ は配列を表す接頭辞
 I は int
 @19821f は配列アドレス
…… つまり、表示されたのは 19821f 番地の int 型の配列

だから、

System.out.prinln(bitValue(10, 10));

を、「配列の中身を出力する」 ように変更する必要がある。

623 :621:2006/08/12(土) 13:11:58
>>622
詳しくわからないんですけど参照型みたいになっちゃってるって事ですか?
中身の出し方わかりません orz

624 :デフォルトの名無しさん:2006/08/12(土) 13:12:57
>>623
お兄さん、お兄さん、配列はオブジェクト。あんだすたん?

625 :デフォルトの名無しさん:2006/08/12(土) 13:28:09
>>623
正直なところ、配列の中身を一度に表示させる println メソッドはないんですわ。
1つ1つ取り出して、println で表示させなさい。


1つ1つの取り出し方は、もちろん知っているよね?
1つ1つの代入を使ってるんだから。

626 :621:2006/08/12(土) 13:41:30
>>624
あまりあんだすたんじゃないです><

>>625
for(j = 0; j <= a.length; j++) {
System.out.print(a[j]);
}

みたいな感じですか?

ランダムで発生させた数値を2進数化したいんですよね。
現実問題難しそうですね…。

int i = Integer.toBinaryString(String str);
だとStringからじゃないとダメなんですよね?
困りました…。

627 :デフォルトの名無しさん:2006/08/12(土) 13:46:13
まあ、正直なところ

System.out.println(Integer.toString(dec, 2));

でいいんだけどね。

628 :デフォルトの名無しさん:2006/08/12(土) 13:48:16
……いや、toBinaryString(int) でもいけるやん。
>>626 どこから String だと思ったよ。

629 :621:2006/08/12(土) 13:56:07
今試行錯誤中です。
みなさんすみません。

>>627
いまいちわかりません。
それだとreturn a;の値は関係なくなりませんか?

>>628
型の不一致 Stringからintには変換できませんって吐かれたんで…。
多分俺のやり方が悪いんだと思います。

630 :デフォルトの名無しさん:2006/08/12(土) 13:58:54
じっくりJavaDocでIntegerクラスを眺めればいいじゃないか。
これ以上のレスは効果なし。

631 :デフォルトの名無しさん:2006/08/12(土) 14:00:22
>>629
>それだとreturn a;の値は関係なくなりませんか? 
bitValue そのものが必要なくなっちゃったけどね。

>型の不一致 Stringからintには変換できませんって吐かれたんで…。 
それは、toBinaryString が String を返すのに、それを int 型の変数に代入しようとしているから。
エラーは引数じゃなくて代入のところで起こっていた罠。

632 :621:2006/08/12(土) 14:00:48
System.out.println(Integer.toString(50, 2));

System.out.println(Integer.toBinaryString(50));

どちらも2進数表示できました。
ご迷惑おかけしました。
ありがとうございます。

633 :デフォルトの名無しさん:2006/08/12(土) 14:22:47
>>625
String[] a = {"AA","BB","CC"};
System.out.println(java.util.Arrays.asList(a));

634 :デフォルトの名無しさん:2006/08/12(土) 14:51:56
>>633
List は配列じゃねぇw

635 :デフォルトの名無しさん:2006/08/12(土) 14:54:25
楽に実装することをよしとするのも技術だ。

636 :デフォルトの名無しさん:2006/08/12(土) 15:11:12
でも、toString で出力される文字列の書式が定まっていないオブジェクトも多いからなぁ
「文字列表現〜」 だけだと中身含まない恐れもあるし

637 :デフォルトの名無しさん:2006/08/12(土) 15:14:59
>>625,633
>正直なところ、配列の中身を一度に表示させる println メソッドはないんですわ。

Arrays.toString ってのはある。

638 :デフォルトの名無しさん:2006/08/12(土) 16:33:41
itext使って帳票を作成しています。
サンプルを見ながら作成しているのですが、実行時に以下のエラーが出てしまいます。

javax.faces.el.EvaluationException: ExceptionConverter: java.io.IOException: The document has no pages.
javax.faces.webapp.FacesServlet.service(FacesServlet.java:209)

Document の宣言は以下のように宣言しています。
Document doc = new Document(PageSize.A4, 50, 50, 50, 50);

何がいけないのでしょうか。

639 :デフォルトの名無しさん:2006/08/12(土) 16:45:28
>>620
>>private にした意味
大有り。アクセスレベルがデフォルト以上だと、外部のクラスから

  Abc.input

ってやられると input にダイレクトにアクセスされる可能性がある。
現実で言うなれば、その辺の通行人が自分の職場のパソコンを勝手に
触れてしまえるっていう、非常に奇異な世界ができてしまう。

変数宣言の位置を哲学しろって言ったばかりだけど、これも同じ事。
不用意に外部からのアクセスを許可するのは良くない。

>>new BufferedReader(new InputStreamReader(System.in)); の位置

とにかく、input の変数宣言がクラススコープでなされていれば、
あとはなんでも構わない。宣言文で直接初期化してやってもいいし、
main メソッド内で初期化しても良い。
あてずっぽうだけど、宣言文で直接初期化すれば少しパフォーマンスが
良くなるような気はする。が、1回ずつなのでたいした差はでないと
見積もれるので、結局どうでもいい。好きなようにどうぞ。


640 :続き:2006/08/12(土) 16:46:41
>>もっと何度も使うようなメソッドであるならクラスは分けるべきですよね?
そうとは限らない。というか、使用頻度を基準に分けようという考えが誤り。
言うなれば、使用頻度が高いからといって、パソコンの Enter ボタンだけ
キーボードから切り離すようなもの。でも、やっぱり Enter ボタンは
キーボードにくっついてるべきでしょ?
互いに結びつきが強いと思われるものに関しては、やはり1つの枠組みに
納めておくべき(専門チックに言えば、「凝集性を高める」)。

逆に、パソコンとプリンターみたいに、やるべき責任が異なるものは
きっちりと切り離すべき(専門チックに言えば、「結合性を疎にする」)。
一昔前にあった後ろにプリンターのくっついたワープロ専用機ってあるけど、
あれってプリンターもフロッピードライブも据え付けで、どれかが
故障すると無力化してたでしょ。
ああならないように、やっぱり責任の違う物は切り離しておく方が
保守性のためを考えると長期的には利点が多い。
(まあ現実世界では一緒に持ち歩く労力なんてのもコスト計算に入って
くるわけだが、そこは突っ込まないように。)

この辺の話も、やっぱり普段から哲学してないと感覚が身に付かない。
でも、自分で勝手に哲学すると悪いパターンを身に染みこませてしまうから
ちょっとエロい人と意見交換してみるとか、とにかく書籍を読み漁るとかの
努力を要する。
今はまだ早いだろうが、3ヶ月〜半年ぐらいしてから、「ソフトウェア設計」
をキーワードに本屋で書籍を探してみると幸せになれるかもしれん。


641 :デフォルトの名無しさん:2006/08/12(土) 17:10:07
自称中級者の典型だなw
いい大人ならオナニーはほどほどに

642 :デフォルトの名無しさん:2006/08/12(土) 17:31:34
>>260

643 :デフォルトの名無しさん:2006/08/12(土) 17:33:05
>>620

644 :デフォルトの名無しさん:2006/08/12(土) 17:34:35
>>620 1つにまとめるとすると↓みたいな感じ

public class Abc{
String str[] = new String[2];
int i[] = new int[2];
double d;
BufferedReader input;

public Abc(InputStream is){
input = new BufferedReader(new InputStreamReader(is));
}
public void mathfoo() throws IOException {
str[0] = input.readLine();
i[0] = Integer.parseInt(str[0]);
}
public static void main(String[] args) throws IOException {
Abc abc = new Abc(System.in);
abc.mathfoo();
}
}

645 :デフォルトの名無しさん:2006/08/12(土) 19:21:05
>>641
スルーできない時点で(ry

646 :デフォルトの名無しさん:2006/08/13(日) 00:01:02
ObjectをIntにできなくて泣いてます

647 :デフォルトの名無しさん:2006/08/13(日) 00:21:07
ObjectをIntにできたら泣きます

648 :デフォルトの名無しさん:2006/08/13(日) 00:41:13
>>646
標準APIにはIntというクラスは存在しません。
自作クラスであるなら、Objectで受けたそのインスタンスxがIntクラスか
そのサブクラスのインスタンスとして、(Int)xとキャストできます。
もしIntegerクラスのことなら、同様にxがIntegerクラスであるなら、
(integer)xとキャストできます。
もしintのことなら、xがIntegerクラスであるなら、
((Integer)x).intValue()でintとしての値を求めることができます。

649 :648:2006/08/13(日) 00:43:08
× (integer)xとキャストできます。
○ (Integer)xとキャストできます。


650 :デフォルトの名無しさん:2006/08/13(日) 04:46:37
テーブルの0列目のデータでコンボボックスを設定
しようとするとなぜかうまくいかない
2列目とかだと問題無いのに

651 :デフォルトの名無しさん:2006/08/13(日) 07:38:32
public class Hello {
public static void main(String[] args) {
System.out.println("Hello Java");
}
}

から、Hello.classをつくって、java Helloと実行すると、
Exception in thread "main" java.lang.NoClassDefFoundError: Hello
と出て、気絶するほどの衝撃を受け、30分ほど気を失っていました・・・

「javaやってみよう」的ページを写しただけなんです。
NoClass・・・を検索しても、俺の出会った衝撃の次の段階の説明っぽいです。

652 :デフォルトの名無しさん:2006/08/13(日) 07:41:45
>>651
ファイル名がHello.javaか確認するんだ

653 :デフォルトの名無しさん:2006/08/13(日) 07:42:31
ごめんなさい >>1のリンクを見直してきます

654 :デフォルトの名無しさん:2006/08/13(日) 10:10:53
>>651
クラスパスを指定してみた?

655 :デフォルトの名無しさん:2006/08/13(日) 12:41:04
Strutsを用いてファイルアップロード機能を実装しているのですが
テキストファイルだった場合、サーバに実体ファイルを作成せずに
文字コードを取得できますか?


656 :デフォルトの名無しさん:2006/08/13(日) 19:25:39
javaのswingでラジオボタンを位置を指定して表示したいんですが,プログラムを実行すると一度は表示されるんですが、マウスなどを動かすと表示が消えたり表示されたり不安定になってしまいます。
位置を指定するのにsetboundsで指定しているんですが、これがいけないんでしょうか?ちなみにawtでプログラムを実行すると正常に表示されます。
以下ソースの抜粋です。あとsetboundsで指定した位置にも表示されません。何処がいけないのでしょうか?

public class SelectionFrame extends JFrame implements ActionListener{

ButtonGroup grp1, grp2;
JRadioButton cbx1, cbx2, cbx3, cbx4, cbx5, cbx6, cbx7, cbx8;

public SelectionFrame(String title){
super (title);

ButtonGroup grp1 = new ButtonGroup();
//チェックボックスの追加

cbx1 = new JRadioButton("綴り", true);
add(cbx1);
cbx1.setBounds(100, 100,100,100);
grp1.add(cbx1);

cbx2 = new JRadioButton("意味", false);
add(cbx2);
cbx2.setBounds(100, 200,100,100);
grp1.add(cbx2);


・・・
}


657 :デフォルトの名無しさん:2006/08/13(日) 19:47:24
setLayout(null);をいれる

658 :デフォルトの名無しさん:2006/08/13(日) 21:18:54
絶対座標で位置指定するのはJavaでは(というかクロスプラットフォームなGUIでは)
禁じ手に近いので素直にレイアウトマネージャを使ってください。

659 :656:2006/08/13(日) 21:50:17
>>657,658
解決しました。ありがとうございました。

660 :デフォルトの名無しさん:2006/08/13(日) 21:51:13
インスタンスを作れってことはオブジェクトを生成する意味と同じ意味ですか?
書籍ではオブジェクトという言葉が多いのですが、ネットではインスタンスという言葉が頻繁に出てきて
混乱しているのですが

661 :デフォルトの名無しさん:2006/08/13(日) 21:52:02
同じだよー。

662 :デフォルトの名無しさん:2006/08/13(日) 22:05:16
>>661 ありがとうございます

663 :デフォルトの名無しさん:2006/08/13(日) 22:15:11
>>656
getContentPane().add()を使わなくていいんですかこれ?

664 :デフォルトの名無しさん:2006/08/13(日) 22:27:48
Tiger以降はOK。

665 :デフォルトの名無しさん:2006/08/13(日) 22:35:48
>>664
( ̄□ ̄;) そうでしたか、すいません

666 :デフォルトの名無しさん:2006/08/13(日) 22:53:51
活発なメーリングリストってない?


667 :デフォルトの名無しさん:2006/08/13(日) 22:54:28
何についての?

668 :デフォルトの名無しさん:2006/08/13(日) 22:58:12
JavaHouseはもうないの?

669 :デフォルトの名無しさん:2006/08/13(日) 23:00:01
public class Account {
int zandaka;

int deposit(int money) {
zandaka += money;
return zandaka;
}
}

他クラスからdepostに8000を与えるとします、そうするとその値はint型のmoneyになり
次の文でzandakaに8000が追加されます、そして次の文でreturnされるのですが
このreturnはzandakaに値を返しているのですが、このreturnはフィールドに対してのみ値を返すのでしょうか?

670 :デフォルトの名無しさん:2006/08/13(日) 23:10:47
取り敢えず判る範囲で・・・
X このreturnはzandakaに値を返している
O このreturnはzandakaの値を返している

671 :デフォルトの名無しさん:2006/08/13(日) 23:13:56
>>669
return文はこのメソッドdepositの呼び出し元にzandakaの値を返す。
zandakaへの操作はzandaka+=money;の代入文のみ。


672 :デフォルトの名無しさん:2006/08/13(日) 23:40:26
>>669
 :
 :
void deposit(int money) {
  zandaka += money;
}

こんなふうにするだけで、フィールドzandaka は書き変わるよ(・∀・)

673 :デフォルトの名無しさん:2006/08/13(日) 23:40:42
>>670-671
レスありがとうございます、なるほど参照元にzandakaの値を返しているのですね
筋が通って今スッキリしてます・・・、zandakaはどこにトンでいってるんだよ!という感じに悩んでました
上か!?上のフィールドにトンでったのか!?てな感じに

674 :669:2006/08/13(日) 23:51:21
>>672
おお!なるほど!今そのVoid分を考えて気づいたのですが
それを使ってフィールドを書き直すとそのプログラムにしか使えないから
なるべく書き方を抽象的?にして、他クラスで複数のオブジェクトからdepositを参照させると
複数の利用が出来る、これがオブジェクト指向?なのでしょうか

675 :デフォルトの名無しさん:2006/08/13(日) 23:54:33
>>570
昔、CSVを処理するために作ったもの
http://www.geocities.jp/retort_curry119/UML.htm

誰か、もっと今風に改良してくれ

676 :デフォルトの名無しさん:2006/08/14(月) 06:47:49
Javaのメールマガジンとかこれお勧め!ってやつないでしょうか

677 :デフォルトの名無しさん:2006/08/14(月) 10:04:13
Java のファイルIOで質問があります。FileWriterを使った場合、
同じファイル名のものは前のは完全に消えて上書きしますよね?
RandomAccessFileクラス以外にファイルのある特定場所だけを読み込む
のと書き換えるクラスとメソッドがあれば教えてください。よろしくです。

678 :デフォルトの名無しさん:2006/08/14(月) 10:31:55
http://www.hyuki.com/
この著者の結城浩という名前なんて読みますか?ケツシロヒロ・・・?
マジレスお願いしますorz

679 :デフォルトの名無しさん:2006/08/14(月) 11:12:53
>>678
そのurlのhを外して音読して見ろ。で、hは名前のイニシャルだ。

680 :デフォルトの名無しさん:2006/08/14(月) 11:35:36
ヒュウキですか?

681 :デフォルトの名無しさん:2006/08/14(月) 11:35:50
ケツシロは斬新だなw

682 :デフォルトの名無しさん:2006/08/14(月) 11:36:16
ヒュウキです

683 :デフォルトの名無しさん:2006/08/14(月) 11:39:21
Ajaxでサーブレットから受信する時の文字化けが直らず困っていたのですが、
試しにgetCharacterEncodingしてみると、set〜が機能していないらしいことに気付きました。

<サーブレットのコード>
response.setCharacterEncoding("UTF-8");
System.out.println("getCharacterEncoding:" + response.getCharacterEncoding());
response.setContentType("text/html;charset=UTF-8");
System.out.println("getContentType:" + response.getContentType());

<結果>
getCharacterEncoding:ISO-8859-1
getContentType:text/html;charset=ISO-8859-1

この現象の原因について何か分かる方いらっしゃったら教えて下さい。

684 :デフォルトの名無しさん:2006/08/14(月) 13:06:27
>>674
そういうのがオブジェクト指向かどうかなんともいえんが

// 口座に預金する
void deposit(int money) {
  zandaka += money;
}
// 残高を取得する
int getBalance() {
  return zandaka;
}
   ↑
たいていこんなかんじでメソッド群に役割配分するんじゃないの

685 :デフォルトの名無しさん:2006/08/14(月) 14:44:44
>>683
ttp://java.sun.com/javaee/5/docs/api/javax/servlet/ServletResponse.html#setCharacterEncoding(java.lang.String)
> This method has no effect if it is called after getWriter has been called
> or after the response has been committed.
です。

686 :683:2006/08/14(月) 15:13:18
>>685
ありがとうございます!
頂いたアドバイスできれいに解決してしまいました。

自分なりには調べてから質問したつもりでしたが、
APIに書いてあることを見落とすようじゃお話になりませんね。
今度から気をつけます。

687 :デフォルトの名無しさん:2006/08/14(月) 16:01:20
javaで配列データを、
x=0,1,2・・・
y=y[0],y[1],y[2]・・・

という形でXYグラフ上に描画したいのですが、いいクラスありませんでしょうか?

688 :デフォルトの名無しさん:2006/08/14(月) 17:06:04
Graphics

689 :デフォルトの名無しさん:2006/08/14(月) 17:08:31
>>687
その位自分でやれば

690 :687:2006/08/14(月) 17:11:42
自己解決した

691 :デフォルトの名無しさん:2006/08/14(月) 17:23:53
test

692 :デフォルトの名無しさん:2006/08/14(月) 17:25:07
>>687
どう解決したのか知らないけど、もし数値計算やってて、その解決法が
Point インスタンスによる情報保持だってのなら、それはやめた方がいいよ。
大規模計算に標準ライブラリを利用すると、無駄にメモリを食われ過ぎる
可能性が高い。自分で軽い Point クラスを作るのがいい。


693 :687:2006/08/14(月) 17:37:38
>>687で質問したものですが、>>690は自分ではありません
システムトレードの損益曲線を書きたいだけなので、
とりあえず、Graphicsクラスをいじってみることにします

694 :デフォルトの名無しさん:2006/08/14(月) 17:40:32
多次元配列を実装したコレクションフレームワークはありますか?

あと下のようなモデルはどのように実装するのがいいんでしょう?
一つのStringデータA_iに対して,複数のStringデータX_i、 Y_i、Z_iが対応しているとします.
そして、こうしたA_iがたくさんあるとします.(i=1,2,3,...)
ただし、A_iの個数はモデルを作る時点ではおおざっぱにしかわかりません.

1.全ての要素がStringの二次元配列をつくる.
2.とりあえずArrayListに登録して、あとから切り分ける.

上の1.2.を考えて,2が一番いいとは思うのですが他にいい方法はありませんか?
できればなるべく速い方法がよいのですが、プログラムのことはあまり詳しくないので
どれが速いかなどもよくわかりません.

695 :デフォルトの名無しさん:2006/08/14(月) 18:13:42
>>687 (693)
ここ、ID出ないからな…

質問的に、単にレポートにグラフをつけたいとか、それぐらいの
話なのかな? それなら、

PrintWriter pw = 〜;
for(int i=0; i<y.length; i++){
 pw.println(i + "\t" + y[i]);
}

って感じで情報をファイル出力して、gnuplot(グラフ描写用ソフト)で
散布図を描写するのが手軽で良いと思うよ。

詳細は "wgnuplot" でググレ。


696 :デフォルトの名無しさん:2006/08/14(月) 18:21:01
>>693
ttp://www.jfree.org/jfreechart/

697 :デフォルトの名無しさん:2006/08/14(月) 18:21:55
>>694
イマイチ全体像がよくわからんな。
情報同士の対応(一対一、一対多)を書いて欲しい。



698 :デフォルトの名無しさん:2006/08/14(月) 18:29:55
>>694
速い方法とは何が速い方法なんだ。
挿入、削除、検索、ソート、開発時間?

699 :デフォルトの名無しさん:2006/08/14(月) 18:32:41
説明が意味不明ですいません。

String文字列が、S_0,S_1,S_2,...とあったときに、
S_0をA[0][1] A[0][2] A[0][3] ,
S_1をA[1][1] A[1][2] A[1][3] ,
S_2をA[2][1] A[2][2] A[2][3] ,
と二次元配列にいれるか、あるいは

ArrayList<String> array = new ArrayList<String>();
array.add(S_0);
array.add(S_1);
array.add(S_2);
として、必要なときにgetして切り分けるかどちらがいいかということです.





700 :デフォルトの名無しさん:2006/08/14(月) 18:39:24
>>699
だから、なぜそこで二次元にする必要があるのかと問うているのだが。
A[i] で済むだろ。

701 :デフォルトの名無しさん:2006/08/14(月) 18:48:45
>>694
class Data {
    public String Name;
    public String X;
    public String Y;
    public String Z;
}
これ作って Data[] か ArrayList<Data> のどちらでも好きなほうを使え。

702 :デフォルトの名無しさん:2006/08/14(月) 18:49:50
>>700
すいません
S_0をA[0][1] A[0][2] A[0][3] →S_0を切り分けてA[0][1] A[0][2] A[0][3]
です。

>>698
うーん、自分でもよくわからず書いてしまいましたが、
とりあえず一番重要なのは追加です。ArrayListなら「追加して切り分け、追加して切り分け、」の繰り返しが速い方がいいです。

あと、A[][]の一番目の要素数=テキストファイルの行数です。
テキストファイルが大きいときに一回読み込んで行数を調べてからだとどうも時間がかかりそうなので、
テキストファイルの行数を速く知るほうほうがあるといいのですが

703 :デフォルトの名無しさん:2006/08/14(月) 18:53:25
>>701
どうも。
これが一番良さそうです。

704 :デフォルトの名無しさん:2006/08/14(月) 19:23:38
>>703
追加したあと、参照するんじゃないの?
例えば、Nameの値に関連付けられたX,Y,Zの値を使うとか
ArrayListだと検索がちょっとメンドウそう

HashMapとかが良いのかな?

705 :デフォルトの名無しさん:2006/08/14(月) 19:51:17
XMLパーサはXML/XHTMLをパースできますが、HTMLをパースできないようです。
HTMLもパースする方法はありますか?

706 :デフォルトの名無しさん:2006/08/14(月) 19:59:51
Swingなら勝手に解釈するよ。

707 :デフォルトの名無しさん:2006/08/14(月) 20:36:07
JDK1.4.2、struts1.2.9で作ったWebアプリは、
J2SE5.0ベースのAPサーバ(Weblogic9.0とか)で問題なく動くのでしょうか?
Sunの互換性に関する記述を読んでも良くわかりませんでした。

708 :デフォルトの名無しさん:2006/08/14(月) 20:40:39
>>705
JTidy
HTML Parser
とか。
最近出た奴だとShaniXmlParserあたりか?

709 :デフォルトの名無しさん:2006/08/14(月) 20:42:24
上位互換が前提だからな。
普通に動くとは思うが、動作テストは居る。

710 :デフォルトの名無しさん:2006/08/14(月) 20:58:34
>>707
バイナリ互換?無けりゃコトだと思う。
WebLogicのマニュアル読んで、JDK1.4やらServlet2.3やらが
サポート範囲に入ってればなんら問題ないと思うけど。
(ちうかサポートしてるに決まってると思うが)

711 :デフォルトの名無しさん:2006/08/14(月) 21:14:55
swing なら俺に任せろ

712 :デフォルトの名無しさん:2006/08/14(月) 21:17:38
よし任せた
では次

713 :デフォルトの名無しさん:2006/08/14(月) 21:53:44
Fortranなら俺に任せろ

714 :705:2006/08/14(月) 22:04:20
>>708
ShaniXmlParser? どうやって使うのかわかりません。

>>711
わからないことがあったらその時はお願いします。

715 :デフォルトの名無しさん:2006/08/14(月) 22:26:25
>>709,710
ありがとうございます。
安心しました。

716 :705:2006/08/14(月) 22:29:16
自己解決しますた

717 :デフォルトの名無しさん:2006/08/14(月) 22:43:21
>>713
本当にありがとうございました。

718 :デフォルトの名無しさん:2006/08/14(月) 23:34:05
HREF=http://www.url.com target=_blank
からurl部分を抜き出したいんですが、
うまくいきません。


Pattern p_url = Pattern.compile("HREF\\s*=\\s*(\\S*)\\s*");
String url = p_url.matcher("HREF=http://www.url.com target=_blank").group(1)

とやろうとしてます。
解決策教えてください。。。

719 :デフォルトの名無しさん:2006/08/15(火) 00:35:58
\sと\Sについて調べなおしてこい

720 :デフォルトの名無しさん:2006/08/15(火) 00:37:35
ああ、
groupメソッドのまえに
matchesメソッドを使わないとダメみたい。
うまくいきました。

721 :デフォルトの名無しさん:2006/08/15(火) 02:23:39
staticってどんな時使いますか?

722 :デフォルトの名無しさん:2006/08/15(火) 03:06:13
性的なとき

723 :デフォルトの名無しさん:2006/08/15(火) 03:08:46
質問というよりは相談なんですが、
自前の例外クラスを作る上で、abstractなクラスを継承させるって方法、
変でしょうかね?
なぜabstractなのかと言うと、それは「XX機能群の例外ですよ」って意味でしかなく、
実際に使われると困るからです。
マーカー的なインターフェース継承させるのでも良いけど、
例外クラスにおいては、なおさらやらない方法かなぁ?と思いまして。

724 :デフォルトの名無しさん:2006/08/15(火) 03:24:30
躊躇うことはない。意味もハッキリしてるしデザイン上別に変じゃない。
良くやるかっつーと知らんけど。

725 :デフォルトの名無しさん:2006/08/15(火) 03:34:20
そうっすね。悩むのやめました。

726 :デフォルトの名無しさん:2006/08/15(火) 08:17:53
>>721
クラスに1-1対応したものを扱うとき。世界で唯一無二のイメージ。
対立概念はインスタンスに対応したもの

定番は、シングルトンパターン


727 :デフォルトの名無しさん:2006/08/15(火) 10:52:24
定数より前にシングルトン出したお前を疑う

728 :デフォルトの名無しさん:2006/08/15(火) 11:01:03
というかまずはファクトリメソッドだろ(createXxx系)。

729 :デフォルトの名無しさん:2006/08/15(火) 11:19:07
いや、まずは円周率だろ

730 :デフォルトの名無しさん:2006/08/15(火) 11:36:03
円周率の定数定義といえば
http://hp.vector.co.jp/authors/VA000092/jokes/

731 :デフォルトの名無しさん:2006/08/15(火) 11:38:17
いやまずpublic static void mainだろ

732 :デフォルトの名無しさん:2006/08/15(火) 12:42:46
GUIを勉強したいのですが、AWTとSwingのどちらを勉強すべきですか?

733 :デフォルトの名無しさん:2006/08/15(火) 12:50:50
>>732
どちらでも可

734 :デフォルトの名無しさん:2006/08/15(火) 12:51:27
つーか Swing やるのに AWT は避けて通れない。

735 :デフォルトの名無しさん:2006/08/15(火) 13:49:41
>>732
あぷれっとを勉強すれば良いと思うぉ

736 :デフォルトの名無しさん:2006/08/15(火) 13:52:11
とりあえずAWT->Swingの順で勉強します
ところで、Swingは「スウィング」なのでしょうけど、
AWTはどう発音するのでしょうか
オウト?エーダブリュティー?

737 :デフォルトの名無しさん:2006/08/15(火) 15:04:35
JSFを使って、入力データを登録前に
登録しますか?OK:NGのダイアログを表示して確認を行いたいのですが、
うまくいきません。
教えてください。

738 :デフォルトの名無しさん:2006/08/15(火) 15:33:59
どう書いたらどううまくいかないのかぐらい書いてくれよ。

739 :デフォルトの名無しさん:2006/08/15(火) 16:01:31
オシムなら3時間は怒ってるな

740 :デフォルトの名無しさん:2006/08/15(火) 16:55:32
>>736
用語辞典とかではエーダブリュティーが多いね
Swingはかっこよくエス・ウィングだ

741 :デフォルトの名無しさん:2006/08/15(火) 16:57:27
外人はOLEをオーレと呼んだり、GUIをグーイーと呼んだりするから面食らう。

742 :デフォルトの名無しさん:2006/08/15(火) 17:03:11
PHP…ピフピ
OOP…オップ
CUR…カー
JSP…ジュスプ
ODBC…オドブク

743 :デフォルトの名無しさん:2006/08/15(火) 18:12:22
うわああ!PCつけたらEclipseのexeファイルとかが消えた!なんでだ
jarファイルとか他のフォルダは残ってるんだけど・・・何かしたかな

744 :デフォルトの名無しさん:2006/08/15(火) 18:15:59
ふーふっふっふっふ…。
それはですね、
本体のあp(ry

745 :デフォルトの名無しさん:2006/08/15(火) 18:39:20
教えてください(´・ω・`)

746 :デフォルトの名無しさん:2006/08/15(火) 21:23:51
例えば、[a, b, c, d, e, f, g]と並んでいる配列を
[d, b, f, g, a, e, c]等の任意の配列に並び返るには
どのようにソートするのが効率的なのでしょうか?

747 :デフォルトの名無しさん:2006/08/15(火) 21:30:31
任意といのはランダムという意味ではなく
プログラマの決めた「ある法則」が存在するんだよな?
Comparatorインタフェースを実装してArrays.sortに放り込めばOK
ただしプリミティブ型は使えないのが玉に瑕(Stringはok)

748 :746:2006/08/15(火) 21:49:01
>>747

早速ありがとうございます。「任意」の意味は仰るとおり、ランダムでは
ありませんが、任意の配列は毎回変わります。
もうちょっと具体的な例を書かせてもらいます。

社員オブジェクトの配列があって、それと社員番号の配列があります。
社員番号の配列は実行の度に毎回変わるようなものです。
この社員オブジェクト配列を指定された社員番号の配列の通りに
ソートしたいという要求です。

感じとしては、sort(Employee[] employees, int[] ids):Employee[]
というようなメソッドが欲しいです。
こういった場合だと、Comparatorをメソッドの中で生成するのも難しそうですが、
どうでしょうか。


749 :デフォルトの名無しさん:2006/08/15(火) 21:55:49
それはids[]を元に単純な並べ替え処理をしても
たいしたコストでは無いような気がするけど・・・。

750 :デフォルトの名無しさん:2006/08/15(火) 22:02:41
idsに漏れがないなら、イテレートして、対応するemployeeを順次詰めていけば
ソートするまでもないような。

Map<Integer, Employee> m = new HashMap<Integer, Employee>();
for (Employee e: employees) { m.put(e.id(), e); }

List<Employee> result = new ArrayList<Employee>(employees.length);
for (int id: ids) { result.add(m.get(id)); }
return result.toArray(new Employee[] {});

751 :デフォルトの名無しさん:2006/08/15(火) 22:17:52
整列じゃなくて、単にids[]の順番どおりにマップするだけっすな。
それで良いんじゃ。

752 :746:2006/08/15(火) 22:48:45
>>749-751

なるほど、750のように順番を詰め替えていくような感じでいいんですね。
もっと裏技(?)みたいなやり方があるのかと思って、質問させていただきました。
ありがとうございます。

753 :デフォルトの名無しさん:2006/08/15(火) 22:50:48
Swingでボタンやツリー等のアイコンをスキン対応させるにはどうするのがベターかな?

754 :デフォルトの名無しさん:2006/08/15(火) 22:55:00
lafを勝手に変えればいいだけの話だろ?

755 :デフォルトの名無しさん:2006/08/16(水) 02:08:34
>>754
致命的な馬鹿に見えるのは気のせい?

756 :デフォルトの名無しさん:2006/08/16(水) 09:19:26
>>755そういう気持ちはたとえ心に思っていても
言葉には出すな…………この世界ではな…

757 :デフォルトの名無しさん:2006/08/16(水) 09:41:28
OK、心に秘めてあの世まで持って行くことにするよ

758 :デフォルトの名無しさん:2006/08/16(水) 11:13:20
alertの出現位置を中央から変えることはできますでしょうか?

759 :デフォルトの名無しさん:2006/08/16(水) 11:16:42
JFaceのTextViewer等のテキストを編集したい場合
・TextViewer.getDocument()でDocumentを編集
・TextViewer.getDocument().get()でStringに入れて編集
のどっちがいい?

760 :デフォルトの名無しさん:2006/08/16(水) 13:42:39
>>759
Stringに入れてもStringは編集できない
素直にDocumentを編集

761 :デフォルトの名無しさん:2006/08/16(水) 14:11:13
>>758
setLocation で変えるのじゃダメなのか?

762 :デフォルトの名無しさん:2006/08/16(水) 14:27:28
何の注釈もなしにいきなりalertと言っているのならjavascriptのalertの可能性がある。
もしjavascriptの話題なら板違いなのでWeb製作板へどうぞ。

763 :デフォルトの名無しさん:2006/08/16(水) 14:46:53
VBみたいなビジュアルライクな環境でJAVAできると
ききました。いまはコマンドラインでやってるんですが
どんなもんなのでしょうか?またお勧めできますか?

764 :デフォルトの名無しさん:2006/08/16(水) 14:56:47
>>763
NetBeansだとこういうことができるらしい。
ttp://www.netbeans.org/files/documents/4/475/matisse.html
Eclipse厨なので使ったこと無いが。

Eclipseでするならjiglooかな。

765 :デフォルトの名無しさん:2006/08/16(水) 15:13:48
ありがとうございます。
ビーンズとEclipseとういのをざっと調べてみました。
いまいちよくわからないのですが
どちらがよいのでしょうか?

766 :デフォルトの名無しさん:2006/08/16(水) 15:32:38
>>765
両方使ってみて扱いやすい方にすればよい。
そして、両方の使い心地をレポートにして報告してほしい。
あとを行く者達の役に立つから。

767 :デフォルトの名無しさん:2006/08/16(水) 21:46:55
swing を作るなら NetBeans を使う方が便利だな。
それ以外を作るなら Eclipse だ。
ただ、NetBeans で GUI を作ってソースを自動生成させると
非常に汚いので俺は使わない。
使うなら、まずレイアウトマネージャを使わず setBounds で座標指定していき
その後で GridBagLayout に変換する事をおすすめする。

768 :デフォルトの名無しさん:2006/08/16(水) 22:00:29
元の質問は、「GUIアプリを作りたい」じゃなくて
「GUI環境で開発作業をしたい」じゃないのか?

769 :デフォルトの名無しさん:2006/08/16(水) 22:20:45
「JAVAする」じゃ何ともなぁ・・・

770 :デフォルトの名無しさん:2006/08/16(水) 23:29:53
どっちもGUI環境だけどな

771 :デフォルトの名無しさん:2006/08/17(木) 00:03:55
質問です。ここは吐かれた例外に対する質問もありですか?

java.net.MalformedURLException: unknown protocol: d

の" d " って何なんですか?ぐぐると他にもcやf何かが出てくるのですが
それぞれ意味があるのでしょうか?


772 :デフォルトの名無しさん:2006/08/17(木) 00:09:20
>>771
unknown protocol: d って言われてんだから protocol の部分が d だったんだろ。
例えば d://hoge.com/foo とかやってたとか。

773 :デフォルトの名無しさん:2006/08/17(木) 00:11:28
>>772
あっそうか!どうもありがとうございます。厨な質問でスレ汚し失礼しました。

774 :デフォルトの名無しさん:2006/08/17(木) 00:27:02
java servlet のはなしはどこでされてるんdすか?

775 :デフォルトの名無しさん:2006/08/17(木) 00:37:35
拡張forを使ってString配列の中身を
すべて表示する場合に
何番目の配列かを表示する方法って
以下の方法以外に何かありますか?

int i =0
for(String s : A){
System.out.println("A[" + i + "]" + s]);
i++;
}


776 :デフォルトの名無しさん:2006/08/17(木) 01:10:13
Rubyのeach_with_indexみたいなやつですな。残念ながら、標準にはない。

777 :デフォルトの名無しさん:2006/08/17(木) 01:18:12
質問というか、素朴な疑問。
ファイルを使う時などに、@みたいなパターンで書かれていることが多いですが、これをAみたいに書くと何か問題ありますか?
要は、closeが確実に呼べればよいのだと思うのですが、@だとエラー処理が2か所に分かれて気持ち悪いのです。
で、Aのように書いてみたのですが、世間のソースをみてみると@が圧倒的に多くて不安になったので。
@------------------------------------------------
FileReader fileReader = null;
try {
  fileReader = new FileReader( inputFilePath );
  fileReader.read(); // ※使う
} catch( IOException e ) {
  e.printStackTrace(); // ※エラー処理
} finally {
  try {
    if( fileReader != null ) {
      fileReader.close();
    }
  } catch( IOException e ) {
    e.printStackTrace(); // ※エラー処理
  }
}
A------------------------------------------------
try {
  FileReader fileReader = new FileReader( inputFilePath );;
  try {
    fileReader.read(); // ※使う
  } finally {
    fileReader.close();
  }
} catch( IOException e ) {
  e.printStackTrace(); // ※エラー処理

}

778 :776:2006/08/17(木) 01:26:09
いちおう、こんなクラスで包む方法もある。まわりくどいが。

class Indexed<T> implements Iterable<WithIndex<T>> {
Iterable<T> iterable;
public Indexed(Iterable<T> iterable) { this.iterable = iterable; }
public Iterator<WithIndex<T>> iterator() {
return new Iterator<WithIndex<T>>() {
private Iterator<T> iterator = iterable.iterator();
private int index = 0;
public boolean hasNext() { return iterator.hasNext(); }
public WithIndex<T> next() { return new WithIndex<T>(iterator.next(), index ++); }
public void remove() { throw new UnsupportedOperationException(); }
};
}
}

public class WithIndex<T> {
public final T data;
public final int index;
public WithIndex(T data, int index) { this.data = data; this.index = index; }
public static void main(String[] args) {
Indexed<String> indexed = new Indexed<String>(Arrays.asList(args));
for (WithIndex<String> e: indexed) { System.out.printf("args[%d]=%s%n", e.index, e.data); }
}
}

779 :776:2006/08/17(木) 01:46:26
表に出す必要のないクラスを無名化。

for (WithIndex<String> e: WithIndex.over(Arrays.asList(args))) {
System.out.printf("args[%d]=%s%n", e.index, e.data);
}

とやる。

public class WithIndex<T> {
public static <S> Iterable<WithIndex<S>> over(final Iterable<S> iterable) {
return new Iterable<WithIndex<S>>() {
public Iterator<WithIndex<S>> iterator() {
return new Iterator<WithIndex<S>>() {
private Iterator<S> iterator = iterable.iterator();
private int index = 0;
public boolean hasNext() { return iterator.hasNext(); }
public WithIndex<S> next() { return new WithIndex<S>(iterator.next(), index++); }
public void remove() { throw new UnsupportedOperationException(); }
};
}
};
}
public final T data;
public final int index;
public WithIndex(T data, int index) { this.data = data; this.index = index; }
}

780 :デフォルトの名無しさん:2006/08/17(木) 01:46:59
>>777
fileReader.read() で例外が発生したときに
e.printStackTrace() と fileReader.close() のどっちが先に発生するか
わかりづらいだろ。


781 :デフォルトの名無しさん:2006/08/17(木) 03:16:25
プログラムの追加と削除のなかで、
J2SE Runtime Environment 5.0
J2SE Runtime Environment 5.0 Update6
J2SE Runtime Environment 5.0 Update8
があるんですが上の二つはアンインストールしてもいいんでしょうか?
カスな質問とは思いますがだれか教えてくださいまし

782 :デフォルトの名無しさん:2006/08/17(木) 03:21:16
>>781
カスな質問だが、うどんに天カスは必要だと思うから答えてみよう。
消すが良い。

783 :デフォルトの名無しさん:2006/08/17(木) 03:38:41
役に立たないカスなど要らない。要するに update8 以外は消せ!

784 :デフォルトの名無しさん:2006/08/17(木) 03:42:28
そうやって私を捨てて行くのね (´・ω・`)

785 :デフォルトの名無しさん:2006/08/17(木) 06:42:52
>>784
ごめんな…でもお前のことは好きだぞ!

786 :デフォルトの名無しさん:2006/08/17(木) 06:57:17
public class Debug100 {
public static void main(String[] arg){
int i;
int sum;

sum = 0;
i = 1;
while(i <= 100) {
sum += i;
i = i + 1;
}
System.out.println(sum);
}
}

これがなんで5050になるのか教えてください。
マジでなんで???????


787 :デフォルトの名無しさん:2006/08/17(木) 07:14:11
むしろ期待してた結果は何だよ?

sum = 1 + 2 + ... + 100 = 琶(i=1:100) = {100×(100+1)}÷2 = 5050

↑琶 = n(n+1)/2 の公式って名前付いてたんだっけか?

788 :デフォルトの名無しさん:2006/08/17(木) 08:52:02
>>787
そんなの公式でも何でもないだろw
>>786
じゃあなんで1+1=2なのか説明してみろw

789 :デフォルトの名無しさん:2006/08/17(木) 09:55:35
ガウスの公式?

790 :デフォルトの名無しさん:2006/08/17(木) 10:17:26
子供時代のガウス少年のエピソードは有名だが、総和程度で公式扱いしないだろ……

791 :デフォルトの名無しさん:2006/08/17(木) 12:27:03
公式は定理を数式で表現したものだから>>787のも公式
底辺の長さと高さから三角形の面積を求める簡単な式も三角形の求積公式だよ
二次方程式の解を求める式も解の公式って言うだろ
複雑でなければ公式でないというのは数学の美学に反する判断基準だ

792 :デフォルトの名無しさん:2006/08/17(木) 13:24:25
公式の定義がイマイチよくわからん。
定理とどう違うんだ?

793 :デフォルトの名無しさん:2006/08/17(木) 13:28:40
ListViewer lv = new ListViewer();
lv.listRemoveAll();
とすると

メソッド listRemoveAll() は型 ListViewer で不可視です。

と出るんだが,どうすればlistRemoveAll()を使用できる?

794 :デフォルトの名無しさん:2006/08/17(木) 13:31:13
>>792
数式で出来てる定理を公式とよぶ
※定理は証明された命題

795 :デフォルトの名無しさん:2006/08/17(木) 13:46:29
>>786
何で5050になるかって?
そりゃ、おまいさんのプログラムにバグが無かったからだよ
おめでとう

796 :デフォルトの名無しさん:2006/08/17(木) 13:52:54
>>793
どうしてもしたければ、リフレクションでsetAccessible

というか、何で呼べないのかという理由を考えてみよう
使うと何か問題があるんじゃないのか?
他のメソッドとセットで使わないと内部整合性がとれなくなるから呼べなくしてるとか。
実現したい機能は別のメソッド使ったりとか。

ListViewerが自分で書いたクラスなら、被アクセスについて考えながらクラスの設計やり直し。

797 :デフォルトの名無しさん:2006/08/17(木) 14:00:16
>>794

簡単にいうと数学で命題とは「真」か「偽」が定められる文のこと。
もちろん命題にも証明が必要。
定理とは命題のなかでも特に重要なもののことをいう。
定理(theorem)、命題(Proposition)、補題(lemma)、系(cororally)はみな命題の一種。
これらは重要度や役割によって名前が違う。
たとえば、定理の証明に必要な命題は補題といったり、定理からわりと簡単に導かれる命題の
ことを系といったりする。
もちろん重要度や役割は著者によって多少異なるから、あるテキストでは定理のものが
別のテキストでは命題だったりする。「ツォルンの補題」という定理もある。

798 :デフォルトの名無しさん:2006/08/17(木) 14:03:48
cororallyはcorollaryの間違い

799 :デフォルトの名無しさん:2006/08/17(木) 14:08:39
エクリプスっていうの使ってみましたが
起動が遅くてストレス溜まります。
次はネットビーンズ使ってみようと思います。

800 :デフォルトの名無しさん:2006/08/17(木) 14:12:32
>>796
org.eclipse.jface.viewers.ListViewer のメソッドです

解説サイトもほとんど無いし,API Referenceは英語だし(日本語でもたぶん分からないけど),お手上げ状態…

801 :800:2006/08/17(木) 14:17:20
自己解決
英語のサイト読んだらコードがあった

802 :デフォルトの名無しさん:2006/08/17(木) 14:33:35
>>797
ようするに宗派によって呼び方の差があると言う訳だ

803 :デフォルトの名無しさん:2006/08/17(木) 15:40:27
>>802
まあそんな感じ。ただ宗派ほど大げさではなくて、本の書き方のスタイルというか。
あと時間が経ってからその価値がわかって名前が変わることもある。
ただこれは自分の理解なので違う意見もあるかもしれんが。

804 :デフォルトの名無しさん:2006/08/17(木) 16:35:39
JITコンパイラってjava実行環境を入れてないwindowsで動作するexeにできるの?
それはどこにあるの?

805 :デフォルトの名無しさん:2006/08/17(木) 16:43:08
ハローワールドからまったく進みません。
一体なにから手を突けたらいいのかもわかんないっす・・
誰かぼすけて

806 :デフォルトの名無しさん:2006/08/17(木) 17:01:11
>>804
Just in Time コンパイラだからなぁ……。語源的に不可能。

807 :デフォルトの名無しさん:2006/08/17(木) 17:02:57
>>805
あえてレスしてやろう、そんなところで躓いているようではこの先確実に挫折する
Javaの文法は序章に過ぎない、今からアンインストールして別の事やりなさい
あともう一つ、目標の無いヤツは何をやっても中途半端で終わる

808 :デフォルトの名無しさん:2006/08/17(木) 17:25:03
>>805
次は、数当てゲームだ
というか、こういうのは誰かに見てもらうってのがいいと思う
こんな事できないの?とか言われて改良の刺激になる
ハローワールドもスゴイハローワールドにできるかもしれんしな
全画面表示、Lupinスタイルのハローワールドもアリだ。
>>804
JITというかJITを持ったJVMは、Javaコードをネイティブコードに
落とす機能を持っているからその機能を応用してネイティブの
実行ファイルを作る機能を持っているものもある。
JIというキーワードにこだわらず
Java、ネイティブコンパイル  辺りのキーワードで検索してみましょう。
gcjとかが引っかかってくるはず。

809 :デフォルトの名無しさん:2006/08/17(木) 19:50:15
String#getBytes()で使われている
「プラットフォームのデフォルト文字エンコーディング」
というものは変更可能でしょうか?

810 :809:2006/08/17(木) 20:02:09
すみません。-Dfile.encodingオプションをjar指定より前に持っていったところ解決しました。

811 :デフォルトの名無しさん:2006/08/17(木) 21:23:03
swing なら俺に任せろな

812 :デフォルトの名無しさん:2006/08/17(木) 21:45:49
>>780
いや、そんな。
明らかに、fileReader.close()が先に発生しますよね。
わかりやすいかと言われればそうとも言い切れませんが、
これがわかりづらいのなら@だってわかりづらい。

というわけで、わかりやすさを理由としてAで書かない訳ではないと思うのですが。


813 :デフォルトの名無しさん:2006/08/17(木) 22:12:39
>>807-808
目から鱗が落ちた気がしました。
明日からがんばります(

814 :デフォルトの名無しさん:2006/08/17(木) 23:09:59
(;・∀・)

815 :デフォルトの名無しさん:2006/08/17(木) 23:45:22
JavaでC言語のmemsetにあたるようなものはありますか?


816 :デフォルトの名無しさん:2006/08/18(金) 00:33:48
>>815
つByteBuffer

817 :816:2006/08/18(金) 00:39:13
あ、memsetか
失礼、memcpyと勘違いした

818 :デフォルトの名無しさん:2006/08/18(金) 01:00:39
>>755=757
スキン対応な独自のlafを作って勝手に変えればいいだけの話だろ?
それともSwingはもとからあるlafしか使えないとでも思ってるのか。

819 :816:2006/08/18(金) 01:01:47
>>815
素直にArrays.fill()でいいような

820 :デフォルトの名無しさん:2006/08/18(金) 01:04:40
javaに環状バッファってありますか?

821 :デフォルトの名無しさん:2006/08/18(金) 01:05:04
抽象クラスと抽象メソッドの有用性がよくわかりません。
ひな形になるのはわかったんだけど継承しても結局小クラス
同じ名前でオーバーライドするなら意味あるの?って思う。
同じ名前で使えるってところがミソなの?

良かったらご教示ください。

822 :デフォルトの名無しさん:2006/08/18(金) 01:10:43
>>821
ん、インターフェースはわかるのか?

823 :デフォルトの名無しさん:2006/08/18(金) 01:17:42
>>820
あからさまなリングバッファはないような気がする。
でも、リングバッファでやりたいことってQueueを実装するクラスで大体やれないか?

824 :デフォルトの名無しさん:2006/08/18(金) 01:27:07
>>821
多態性をもっと勉強する

825 :デフォルトの名無しさん:2006/08/18(金) 01:36:14
>>821
型システムでも勉強してみればー?

826 :821:2006/08/18(金) 01:42:12
レスサンクスです。

>>822
継承は1つのクラスからしかできないから
他に機能を持たせるために使うんだよね?
他にも使い方とかあるんですか?

>>824
確か適所適材の様な意味だったとしか記憶してません。
すみません。

>>825
型システムって初めて聞きました。

827 :デフォルトの名無しさん:2006/08/18(金) 02:07:58
>>856
インターフェースに関してはwikiのFAQを読んでみよう

828 :デフォルトの名無しさん:2006/08/18(金) 02:10:30
今日からJAVAはじめようと思うんだけど
なんか注意点ある? ちなみにプログラミングはやったことない。

829 :デフォルトの名無しさん:2006/08/18(金) 02:11:21
質問させてくらはい。

IE+JRE1.5でアプレットを使ったソフトを作ったのですが、
そのソフトを数日動かすとIEがダウンするわWindowsXPがハングするわとクレームが出てきました。


アプレットごときでOSを倒すような猛烈なプログラミングって出来るものでしょうか?
CPU占有率100%な無限ループなプログラムでもXPを倒すのは不可能だとおもうですが。どうなんでしょう。
先方さんのPCがおかしいような気がするのですが。


830 :デフォルトの名無しさん:2006/08/18(金) 02:14:22
まて 俺が先だろうが

831 :デフォルトの名無しさん:2006/08/18(金) 02:25:20
>>777
Aだと read() で発生した例外が close() で発生した例外にかき消される。
こういう場合はどちらかというと後から発生した二次的な例外を捨てるのが普通の方法らしき

832 :デフォルトの名無しさん:2006/08/18(金) 02:28:38
>>829
メモリーリークでもしてるんじゃあないか

833 :デフォルトの名無しさん:2006/08/18(金) 02:33:52
>>828
とくに注意点はない。
良い教科書と良い師匠に出会えることを祈る。

834 :デフォルトの名無しさん:2006/08/18(金) 04:27:36
>>828
注意:目的を持て

835 :デフォルトの名無しさん:2006/08/18(金) 04:29:05
>>828
プログラム”言語”って名前がついている以上、『読み書き』 と 『会話』 は必須
外国語習っている感じにゆっくり憶えてきー

836 :デフォルトの名無しさん:2006/08/18(金) 04:33:56
俺はおまえらとは違う
プログラミングなど貴様等の仕事だ。
俺は貴様等を使いプログラミングを完成させる男となる
わかったらYESボスと言え

837 :デフォルトの名無しさん:2006/08/18(金) 04:35:13
YESボス!

838 :デフォルトの名無しさん:2006/08/18(金) 04:38:26
YESブス!

839 :デフォルトの名無しさん:2006/08/18(金) 04:39:11
>>836
エッヘヘ!( ´∀`)σ)Д`)

840 :デフォルトの名無しさん:2006/08/18(金) 07:29:15
YESカス!

841 :デフォルトの名無しさん:2006/08/18(金) 07:36:04
JavaBeansって存在意義が決まっているだけで内容はJavaと一緒?

842 :デフォルトの名無しさん:2006/08/18(金) 07:40:06
いや、Javaでしかないんだけど・・・(^_^;

843 :デフォルトの名無しさん:2006/08/18(金) 09:41:34
俺が寝てる間にすごい厨が湧いてたのですね。
本当にお疲れさまです。


844 :デフォルトの名無しさん:2006/08/18(金) 10:46:26
Exception(具体的にはSAXParseException)のgetMessage()で得られるエラー文書を日本語化するにはどうしたらいい?

845 :デフォルトの名無しさん:2006/08/18(金) 11:10:07
こんにちわ、ここ数日でJavaを学び始めた者です。

標準出力などを行う基本どころのアプリを作っているのですが、
検索してもいまいちわからないので質問させていただきます。

public static void main(String[] args) {

public static void main(String args[]) {

どちらで記述しても動くようですが、どちらの表記が標準なのでしょうか。

また、下の場合は何故変数名に配列を示す[]をつけても動くのでしょうか。

846 :デフォルトの名無しさん:2006/08/18(金) 11:14:05
Throwable#getLocalizedMessageてのがきっとそのために用意されてたんだろ
うけど、全くと言っていいほど使われてない。例外メッセージは開発者向けだか
らローカライズしなくていいや、ってことになっちゃってるのかも。

とはいえ、例外情報が例外型とメッセージしかない場合は、ユーザー向けエラーダイ
アログに入れるメッセージの作成に困るんだよな。

847 :デフォルトの名無しさん:2006/08/18(金) 11:18:51
>>845
String[] argsが標準
C/C++プログラマのためにString args[]も使えるようになっている。

848 :デフォルトの名無しさん:2006/08/18(金) 11:21:25
>>845
String[] argsが正式。

An array type is written as the name of an element type followed by
some number of empty pairs of square brackets [].
[JLS 10.1 Array Types]

String args[]は(C言語経験者がまごつかないように)
後ろにつけても同じ意味で解釈するように仕様で認めている。
The [] may appear as part of the type at the beginning of the declaration,
or as part of the declarator for a particular variable, or both, as in this
example: byte[] rowvector, colvector, matrix[];
[ditto]

上の例でmatrixの型は byte[] じゃなくて byte[][] なのに注意。
紛らわしくなるので、よほど思い入れがない限りはすべて型につけるのがおすすめ。

849 :デフォルトの名無しさん:2006/08/18(金) 14:26:23
Yes!タカスクリニック

850 :デフォルトの名無しさん:2006/08/18(金) 14:45:24
DefaultHandlerのstartElement()等で通知を受け取った時にそれがXML文書全体のどの位置かを知る方法はない?

851 :デフォルトの名無しさん:2006/08/18(金) 15:01:50
自己解決…setDocumentLocator()か

852 :デフォルトの名無しさん:2006/08/18(金) 15:07:48
char[]からStringへはどのようにすれば変換できますか?

853 :852:2006/08/18(金) 15:12:27
orz、ググったらすぐ出てきた
スレ汚しすみませんでした

854 :デフォルトの名無しさん:2006/08/18(金) 16:48:50
プログラミング初めてなんですが分からないことはよくjavaドキュメントを見ろと言われるんですが
例えば>>852みたいなことが知りたい場合どのように調べたらいいんですか?

855 :デフォルトの名無しさん:2006/08/18(金) 16:52:10
>>854
経験

856 :デフォルトの名無しさん:2006/08/18(金) 16:53:22
関係ありそうなクラスのjavadocを見る。
この場合はStringクラスのドキュメント見ればすぐわかる。
またはググる。

857 :デフォルトの名無しさん:2006/08/18(金) 16:56:30
javaドキュメントの見方が分からない・・・

858 :デフォルトの名無しさん:2006/08/18(金) 16:58:21
あStringクラスのメソッドが全部載ってるんですね。

859 :デフォルトの名無しさん:2006/08/18(金) 18:05:17
Javaのデフォルトエンコーディングを強制的に変更する方法って無い?
Converters.getDefaultEncodingName()で取得するエンコーディングを変えたいんだけど。

860 :デフォルトの名無しさん:2006/08/18(金) 18:07:10
JAVAとジャバザハットってなんか関係あるんですか?

861 :デフォルトの名無しさん:2006/08/18(金) 18:16:20
>>860
パクリ

862 :デフォルトの名無しさん:2006/08/18(金) 18:22:30
jabba the hutt

863 :デフォルトの名無しさん:2006/08/18(金) 20:16:20
>>859
java -Dfile.encoding=UTF-8

864 :デフォルトの名無しさん:2006/08/18(金) 20:54:11
ageるやつ多いな、最近。

865 :デフォルトの名無しさん:2006/08/18(金) 20:56:09
はぁ?なにいってんだデブ

866 :デフォルトの名無しさん:2006/08/18(金) 21:02:39
信じられないのかい?トム
でもこのスーパークリーナーJを使えばあっという間にピカピカさ

867 :デフォルトの名無しさん:2006/08/18(金) 21:03:32
SELECT * FROM M_HOGE WHERE AAA = ?

等といったSQLをPreparedStatementで発行する際、
SQL文をlog4jで簡単にログ出力できませんでしょうか。
但し、[?]をsetString()した値に置換するという条件つきです。

SQL文を1文字づつループして置換するゴリゴリ戦法の場合、
[?]が100個、200個あった死んでしまいます・・


868 :デフォルトの名無しさん:2006/08/18(金) 21:07:38
ループするなら 1 も 100 も関係ないだろ。
RDBMS によってはプレースホルダを DB 側で解釈するので、汎用的にそれをする手段はないよ。

869 :デフォルトの名無しさん:2006/08/18(金) 22:08:17
ドメスティックボール

870 :デフォルトの名無しさん:2006/08/18(金) 23:22:55
>>831
確かに、おっしゃるとおりですね。
そうすると、@の書き方のときでもcloseでの例外時の処理は気をつけて書かないといけないですね。
readでの例外をかき消さないように。
↓こんなになっちゃうのかなぁ。
ttp://java-house.jp/ml/archive/j-h-b/022436.html
closeでエラーとしないと(例外を握りつぶすと)、flashが正しく行われないまま処理を継続する可能性があるし。
ttp://72.14.235.104/search?q=cache:1PzZ0wIeH7oJ:bowez.exblog.jp/i4+close+try+ioexception+%E3%83%95%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5

なんかセオリーはないもんですかねぇ。
ともあれ、レスありがとうございました。

871 :デフォルトの名無しさん:2006/08/18(金) 23:59:35
丸の内とらという人の、新書を買った素人です。
HellowWorld.javaをコンパイルすると、JoinString.classという
ファイルが出来ました。そして、とらさんの本のように
javac 〜と実行してもできなくて、
あるサイトにあったので、java JoinString
としたら、Hellow World!
と出たので、とりあえず嬉しかったです。
どういうわけなんでしょうか?


872 :デフォルトの名無しさん:2006/08/19(土) 00:07:34
>>871
javac 〜
は〜をコンパイルすること。しかも〜はjavaという拡張子をもたないのでエラーになる。
JoinString.classを実行するには
java JoinString
としなければならない。
javacはコンパイルする、javaは実行する、と覚えておくこと。

873 :デフォルトの名無しさん:2006/08/19(土) 00:44:34
872のかた、ありがとうございます。
javac HellowWorld.java
とやったら、期せずして
JoinString.class
というファイルが出来ていたのです。

それでとらさんの本に、javac HellowWorld
というふうに”実行”すると記されているんですけどね。

それから、コマンドプロンプトにまず、EasyJavaを表示させてから
コンパイルするということが本に書かれてなくて、2日かかってしまいました。

874 :デフォルトの名無しさん:2006/08/19(土) 00:46:11
いますぐ本を燃やして
明日本屋にいけ

875 :デフォルトの名無しさん:2006/08/19(土) 00:55:36
古本屋には行くな。必ず大きな書店に行け。

876 :デフォルトの名無しさん:2006/08/19(土) 00:57:57
最近はjavaの文法覚えるよりeclipseの使い方覚えるのに大変な新人が多いみたいね。

877 :デフォルトの名無しさん:2006/08/19(土) 00:59:12
書店ではメガネの女店員がいい。
意外にJAVAに精通してるのがメガネ女店員なんだ

878 :デフォルトの名無しさん:2006/08/19(土) 01:01:23
下手な本よりネットの情報のほうが役に立ったりする

879 :デフォルトの名無しさん:2006/08/19(土) 01:21:55
>>871
Amazon で探してみたが、ひどく胡散臭そうなタイトルだな。
そういう本に限って役に立たなかったりするっつーのを念頭に置いておけよ。



880 :デフォルトの名無しさん:2006/08/19(土) 01:41:09
できれば sun 公式のチュートリアルをお勧めする(無料だし)。
作り主から聴くのは良いと思う。

881 :デフォルトの名無しさん:2006/08/19(土) 02:03:49
JAVAのe本 まじおすすめ

882 :デフォルトの名無しさん:2006/08/19(土) 04:13:17
>>876
確かに。J++から移行したときも大いに。馴れればある意味MS系の開発環境よか使いやすいな。

ソースがスプリット表示できればもっと良いのに(><


883 :デフォルトの名無しさん:2006/08/19(土) 04:19:22
j++??


884 :デフォルトの名無しさん:2006/08/19(土) 04:27:30
むかしはそういうものがあったのだよ

885 :デフォルトの名無しさん:2006/08/19(土) 09:41:02
T++

886 :デフォルトの名無しさん:2006/08/19(土) 12:13:53
EclipseがVS.NET並みに単純になればなぁ…

887 :デフォルトの名無しさん:2006/08/19(土) 12:15:36
やさしいJava → Java逆引き大全、 struts逆引き大全 → Javaで学ぶデザインパターン

俺はこの順だった。
大全系はリファレンス的に使う物だけど、こう言うのもあんのかぁって知っておいた
方が、後で忘れた時も引きやすいので、一度は全部に目を通しておく。
あとは、その都度ネットだな。
ほんとは本の方がいいけど、高いしはずれもあるから。

888 :デフォルトの名無しさん:2006/08/19(土) 12:40:34
やさしいJavaが終わったら、アプリでも何でも良いから作ってみる
その都度分からないことはネットで検索、ネットで全て何とかなる
後はデザインパターン入門でも買うと理解が深まる

889 :デフォルトの名無しさん:2006/08/19(土) 13:42:09
2冊目か3冊目に日経BP社「ずばりわかる!Java」がお勧め。
胡散臭いタイトルのくせに、ためになる話が適度に凝縮されている。

890 :デフォルトの名無しさん:2006/08/19(土) 14:17:18
やさしいJAVAっていくつかあるんだけど
どれのこと?

891 :デフォルトの名無しさん:2006/08/19(土) 16:07:19
やさしいJavaはスパルタだから気を付けろ

892 :デフォルトの名無しさん:2006/08/19(土) 17:18:46
プログラミングに関係無いことで悪いんだけど
Tomcatをインストールしようとすると途中で
Apache Tomcat Setup
Failed to install Tomcat5 service.
Check your settings and permissions
Ignore and continue anyway
(not recommended)?
という中止メッセージがでて
色々やってみたんですけど途方にくれています。
どなたか分かる方いませんか?

893 :デフォルトの名無しさん:2006/08/19(土) 17:43:44
892
自己解決しました。98じゃ難しいみたいだねorz

894 :デフォルトの名無しさん:2006/08/19(土) 18:25:11
5は全版98じゃむり。
4でも動いたり動かなかったり。

895 :デフォルトの名無しさん:2006/08/19(土) 19:11:07
int l=100000;
for(int i=0;i<l;i++){
hoge(i);
}

みたいに、forループである処理を何回も実行するときに
そのループ内の進行状況をバーか%で表示するのになんかいい方法ってありますか?

896 :デフォルトの名無しさん:2006/08/19(土) 19:22:47
やさしいJAVAはわかった気にさせる本


897 :デフォルトの名無しさん:2006/08/19(土) 19:30:45
>>895
JProgressBar

898 :デフォルトの名無しさん:2006/08/19(土) 20:08:33
じゃあどの本がおすすめなの?
プログラミング自体初

899 :デフォルトの名無しさん:2006/08/19(土) 20:10:19
>>897
なるほど、サンクス〜

900 :デフォルトの名無しさん:2006/08/19(土) 21:13:10
SWT使ってるんだが、
GridLayoutで
[A][B]
みたいに配置して
A.setVisible(false)とした後
[ B ]
みたいに[A]の見えなくなった領域まで[B]を拡張したいんだがどうすればいい?

また、A.setVisible(true)とした後は
[A][B]
に戻したい

901 :デフォルトの名無しさん:2006/08/20(日) 00:35:55
Pathについてなのですが
環境変数のPathに ;c:\Java\jdk1.5.0_06\bin を追加したのですが
javacが使えません。 何が間違ってるのかご指摘願います。

使用OS Windows2000
フォルダ Cドライブ→プログラムファイルズ→Java→jdk1.5.0_06とjre1.5.0_06の二つフォルダが
入ってます

902 :デフォルトの名無しさん:2006/08/20(日) 00:46:20
dir c:\Java\jdk1.5.0_06\bin

903 :デフォルトの名無しさん:2006/08/20(日) 01:30:55
HttpURLConnectionを使ってOPTIONSメソッドを発行したいのですが、
どうやればいいでしょうか?
もちろんsetRequestMethod("OPTIONS")を呼び出すことはわかりますが、
これを呼び出すためにURLクラスのインスタンスが必要になります。
これを
HttpURLConnection con = new URL("*").getConnection();
con.setRequestMethod("OPTIONS");
con.connect();
とすると、当たり前ですがMalformedURLExceptionが出て、実行時エラーとなります。

904 :デフォルトの名無しさん:2006/08/20(日) 01:33:56
URL url = new URL("http://www.yahoo.co.jp");
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.setRequestMethod("OPTIONS");
InputStream in = con.getInputStream();

905 :デフォルトの名無しさん:2006/08/20(日) 01:46:07
>>890
http://www.amazon.co.jp/gp/product/images/4797331828/ref=dp_image_text_0/503-5133814-9343950?ie=UTF8
これだよ。
そういやサーブレットとか swing が載ってる やさしいJava応用編みたいのもあったな。
あくまでもこの本はJavaの文法をおさえるためだけの本だ。
サーブレットとかはもっと専門書を買った方がいいだろう。

906 :デフォルトの名無しさん:2006/08/20(日) 01:56:02
あ、すまん OPTIONS は OPTIONS * HTTP/1.1 みたいなリクエストが出来るんだったな。
new URL("http", "www.yahoo.co.jp", 80, "*") でダメなら無理じゃね?

907 :デフォルトの名無しさん:2006/08/20(日) 02:01:08
>>904
ありがとうございます。
これでエラーはなくなりましたが、今度はOPTIONSの結果が見つかりません。
Map<String, List<String>> headers = con.getHeaderFields();
List<String> allows = headers.get("Allow"); // ここでnullが返ってくる

headersを全部表示してみましたが、Allowがないようです。
しかしステータスは200なので、OPTIONSメソッドが失敗しているわけではないようです。

908 :デフォルトの名無しさん:2006/08/20(日) 02:03:52
new URL("http", "www.yahoo.co.jp", 80, "*")
で出来ました。本当にありがとうございました。

909 :デフォルトの名無しさん:2006/08/20(日) 02:05:27
>>907
telnet で直接ポート 80 叩いて Allows 返してるか調べれ。

910 :デフォルトの名無しさん:2006/08/20(日) 02:07:30
一応OPTIONSのサンプル(の一部)です。
URL url = new URL("http", "www.yahoo.jp", 80, "*");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("OPTIONS");
Map<String, List<String>> headers = con.getHeaderFields();
List<String> allows = headers.get("Allow");

ちなみにgoogle.co.jpはHTTP1.0を使っているのか、
bad requestが返ってきました。

911 :デフォルトの名無しさん:2006/08/20(日) 02:46:22
>>900
Display display = new Display();
Shell shell = new Shell(display);
final Composite comp = new Composite(shell, SWT.NULL);
final Button button1 = new Button(comp, SWT.NULL);
final Button button2 = new Button(comp, SWT.NULL);
button1.setText("Button1");
button2.setText("Button2");
button1.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
GridData gridData = new GridData();
gridData.exclude = true;
button1.setLayoutData(gridData);
button1.setVisible(false);
button2.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
comp.layout();
}
});
button2.addSelectionListener(new SelectionAdapter() {
public void widgetSelected(SelectionEvent e) {
GridData gridData = new GridData();
gridData.exclude = false;
button1.setLayoutData(gridData);
button1.setVisible(true);
comp.layout();
}
});
shell.setLayout(new GridLayout());
comp.setLayout(new GridLayout(2, false));


912 :911:2006/08/20(日) 02:59:49
要点は、
(1) setVisible(false)で不可視にしただけではレイアウト上は存在している。
(2) レイアウト対象から除外するためにはGridData.excludeをtrueにする。
(3) 全体を覆わせるためのwidgetをGridData.FILL_HORIZONTALにしておく。
(4) 再レイアウトするにlayout()を呼ぶ。

913 :デフォルトの名無しさん:2006/08/20(日) 10:34:38
要点は

SWTスレあるんだからそちらへいきなさい

914 :デフォルトの名無しさん:2006/08/20(日) 10:48:45
いやです。

915 :デフォルトの名無しさん:2006/08/20(日) 11:33:01
>>1の「既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。」
って文言はコメントアウトされちゃってるからなあw
SWTスレの方がずっと回答率は高いと思うが

916 :デフォルトの名無しさん:2006/08/20(日) 11:49:42
あなたは間違ってる
SWTスレとか回答率とかそういうことじゃない
ぼくはこのスレが好きなんです。
だからぼくは質問をやめない

917 :デフォルトの名無しさん:2006/08/20(日) 12:01:14
釣られてあげよう
質問するなと言っているわけではないよ
回答できるのなら他に適切なスレがあっても回答することもある
もちろん他スレに誘導することもある
無視することさえ
質問者の好き嫌いは回答のあるなしには関係ないということだ

このスレが好きなのなら質問をするだけでなく他の人へ回答もしてあげてスレの質を高めていきましょう

918 :デフォルトの名無しさん:2006/08/20(日) 12:34:42
分からないなら黙っててよ

919 :デフォルトの名無しさん:2006/08/20(日) 12:41:14
まったくだ

920 :デフォルトの名無しさん:2006/08/20(日) 13:17:12
ここはひどいインターネッツですね。

921 :デフォルトの名無しさん:2006/08/20(日) 13:21:26
だまってろデブ

922 :デフォルトの名無しさん:2006/08/20(日) 14:18:10
デブは関係ないだろう?!!

923 :デフォルトの名無しさん:2006/08/20(日) 14:42:23
dev = developer

924 :デフォルトの名無しさん:2006/08/20(日) 15:45:21
dev = device

925 :デフォルトの名無しさん:2006/08/20(日) 16:31:57
dev=deviant

926 :デフォルトの名無しさん:2006/08/20(日) 17:39:04
dev=/dev/null

927 :129:2006/08/20(日) 20:43:40
System.outに相当するOutputStreamは何でしょうか?

928 :デフォルトの名無しさん:2006/08/20(日) 20:44:57
すみません、間違えました。
System.outに相当するOutputStreamは何でしょうか?

929 :デフォルトの名無しさん:2006/08/20(日) 20:45:20
>>927
気にしなくていいよ

930 :デフォルトの名無しさん:2006/08/20(日) 21:03:47
>>927-928
API doc に書かれてるよ。System クラスのところ。

931 :デフォルトの名無しさん:2006/08/20(日) 21:24:42
いや、探すのが面倒だから聞いてるんじゃないですか・・

932 :デフォルトの名無しさん:2006/08/20(日) 21:35:22
答えるのが面倒なのでスルー

933 :デフォルトの名無しさん:2006/08/20(日) 21:43:10
馬鹿野朗が。
どんな質問でも全力で答えるのが俺たちジャバラーだろうが
おまえみたいな奴はでていけ

934 :デフォルトの名無しさん:2006/08/20(日) 21:46:46
すいませんアニキ!
出直して来ます!

935 :デフォルトの名無しさん:2006/08/20(日) 21:47:03
すばらしい! 感動した!

他会社の半島連中がハングルで会話しててうるさいんですがどうしたら良いですか?

936 :928:2006/08/20(日) 21:58:12
SystemにあるのはPrintStream型のoutだけです。
私が欲しいのはOutputStream型のオブジェクトです。

937 :928:2006/08/20(日) 21:59:23
失礼。
PrintWriter型のoutだけです。

938 :928:2006/08/20(日) 22:01:49
失礼失礼。
PrintStreamで良いのでした。

939 :デフォルトの名無しさん:2006/08/20(日) 22:03:09
OutputStream myout = System.out;

940 :928:2006/08/20(日) 22:09:26
もうちょっと詳しくよろしく

941 :928:2006/08/20(日) 22:14:49
失礼。
できれば完全に動くソース付きで。

942 :デフォルトの名無しさん:2006/08/20(日) 22:16:27
>>941
君はもう、5レス越えちゃってるから、明日ね。ノシ

943 :928:2006/08/20(日) 22:19:42
PrintStream -> OutputStreamということでしたか。
馬鹿な質問をしました。すみません。

944 :928:2006/08/20(日) 22:21:47
失礼失礼。
キムチは最初に持ってきてください。

945 :デフォルトの名無しさん:2006/08/20(日) 22:54:04
>>928氏ね

946 :928:2006/08/20(日) 22:56:41
逝ってきます。

947 :928:2006/08/20(日) 23:13:59
ただいま戻りました

948 :デフォルトの名無しさん:2006/08/20(日) 23:15:00
>>928
誰も戻ってきていいとは言っていない

949 :デフォルトの名無しさん:2006/08/20(日) 23:44:29
http://www.h5.dion.ne.jp/~ueno9/appli/19740126/ww_white.htm

950 :928:2006/08/20(日) 23:45:01
もう一度逝ってきます。

951 :デフォルトの名無しさん:2006/08/21(月) 00:16:09
System.out.println()

でdoubleの数値を出力するときに、
小数点第2位までしか表示させないようにするにはどのようにすればいいのでしょうか?

952 :デフォルトの名無しさん:2006/08/21(月) 00:25:04
プログラミング初心者です。
staticを付けるのと付けないのでは、どう違ってくるんですか?

953 :デフォルトの名無しさん:2006/08/21(月) 00:27:59
属する対象が変わってきます

954 :928:2006/08/21(月) 00:34:29
そろそろいいですかね?

955 :デフォルトの名無しさん:2006/08/21(月) 01:30:18
>>951
printfを使う

// これであってるかどうかは知らん
double d = 0.12345;
System.out.printf("%1.2f%n", d);

956 :デフォルトの名無しさん:2006/08/21(月) 01:41:59
>>955
解決しましたー、ありがとうございました

957 :デフォルトの名無しさん:2006/08/21(月) 02:35:14
>>951.955
それでもいいけど
より汎用的にはNumberFormat

958 :デフォルトの名無しさん:2006/08/21(月) 05:18:09
>>955
s/%n/\n

959 :デフォルトの名無しさん:2006/08/21(月) 09:50:58
>>958
Javaのprintfでは%nを使う。

960 :デフォルトの名無しさん:2006/08/21(月) 10:22:28
>>863
それじゃConverters.getDefaultEncodingName()で取得するエンコーディングは変わらんのよ

961 :デフォルトの名無しさん:2006/08/21(月) 12:39:18
>>960
変わるよ。

System.setProperty("file.encoding", newEncoding) とかやっても反映されないと思うけど。

962 :デフォルトの名無しさん:2006/08/21(月) 12:40:30
蛇腹ってキモいよね。

963 :デフォルトの名無しさん:2006/08/21(月) 13:11:48
>>961
1.4.2_12だと変わらんわ。
1.5.0_08だと変わった。

むぅ、1.5にするわけにはいかんし、どうすればいいのやら・・・

964 :デフォルトの名無しさん:2006/08/21(月) 13:45:06
普通に encoding 指定するようにすれば良いだけでは?

965 :デフォルトの名無しさん:2006/08/21(月) 15:18:13
大文字・小文字を区別せず部分一致検索を行いたいんだが,
検索する文字列をtoLowerCase()またはtoUpperCase()で統一する以外の方法はある?

966 :デフォルトの名無しさん:2006/08/21(月) 15:27:00
正規表現

967 :デフォルトの名無しさん:2006/08/21(月) 15:50:19
ゴメン、間違えた・・

大文字・小文字を区別せず部分一致検索を行いたいんだが,
検索する文字列をtoLowerCase()またはtoUpperCase()で統一する以外の方法はある?

968 :デフォルトの名無しさん:2006/08/21(月) 16:34:38
String quoted = Pattern.quote(str); //正規表現として意味のある文字をエスケープ
String regexp = String.sprintf(".*%s.*", quoted); // 部分としてそれを含む正規表現
Pattern pat = Pattern.compile(regexp, Pattern.CASE_INSENSITIVE); // ケース無視

969 :デフォルトの名無しさん:2006/08/21(月) 18:46:51
>>968
String regexp = String.sprintf(".*%s.*", quoted); // 部分としてそれを含む正規表現
これって必要ある?
Matcher#find使えば良いんじゃないの?

970 :デフォルトの名無しさん:2006/08/21(月) 18:54:40
あるN行のCSVファイルの読み込みで
StreamTokenizerで1行ずつ読み込んだ値を、配列に代入しています。

しかし、通常の配列の場合だとNが事前にわかってないといけなくて、
わざわざ配列サイズを事前に指定するのは面倒です。

一応、素人考えで以下のような解決方法を考えたのですが、
どのように処理するのがスタンダードなのか教えていただけないでしょうか

(1)1度すべての行を読み込んでNを取得した後に、サイズNの配列を用意し、1行目から再読み込み
(2)wcなどの行数を取得するスクリプト、あるいは行数を取得する関数を持ったクラスがある?を事前に読み込んでNを取得
(3)Vector(?)などの可変長配列を用いる

971 :デフォルトの名無しさん:2006/08/21(月) 19:13:17
>>969
あー、findがあった。
最近matchesが全体マッチなのにハマったばかりなのに。

972 :デフォルトの名無しさん:2006/08/21(月) 19:59:22
>>970
(1)と(2)は自前のコードでやるかどうかの違いで2パスであるのは変わらない。
コレクション使った(3)をやれば1パスで済む。

973 :デフォルトの名無しさん:2006/08/21(月) 20:02:40
>>970
一番簡単なのは (3) だね。
仮にメソッドの引数とかで渡す時なんかに配列にする必要があっても
ArrayList でも Vector でも toArray 使えば配列にシャローコピーできるし。

974 :デフォルトの名無しさん:2006/08/21(月) 20:31:41
ttp://search.web-sun.com/sch_tool/sample0b.html
↑のをもとにして、自分用に簡単なメタサーチを作りたいんですが、
例えばgoogleだったら
「<form name="f_google" method="GET" action="http://www.google.com/search" Accept-charset="Shift_JIS">
<input type="hidden" name="q" value="">〜省略〜<input type="hidden" name="num" value="20">
</form>」
みたいな検索エンジンごとのソースはどうやって入手すればいいいんでしょうか。

975 :デフォルトの名無しさん:2006/08/21(月) 20:58:34
>>974
スレ違い

976 :デフォルトの名無しさん:2006/08/21(月) 23:18:36
>>972-973
レスありがとうございます
方向性は間違ってなかったようなので(3)で実装することにします

977 :デフォルトの名無しさん:2006/08/22(火) 00:29:58
実行したファイル名をプログラム内で知りたい場合はどうすればいいのですか?
java -jar exsample.jar
このときexsample.jarという文字列を所得したい。
環境 JDK1.4

978 :デフォルトの名無しさん:2006/08/22(火) 00:33:37
URL url = this.getClass().getClassLoader().getResource(this.getClass().replace('.', '/'));
System.out.println(url);

979 :デフォルトの名無しさん:2006/08/22(火) 01:06:23
>>978
ご教示ありがとうございます。
参考にして取得できました。

980 :デフォルトの名無しさん:2006/08/22(火) 01:40:19
JAVAのコンパイルするソフトDLしたいんですが、
ダウンロードできる場所おしえてください。よろしくお願い思案す。

981 :デフォルトの名無しさん:2006/08/22(火) 01:43:18
>>980
>>1

982 :デフォルトの名無しさん:2006/08/22(火) 04:09:13
public static void main(String[] args) {
の「args」について、諸君らはどのように呼んでいる?

983 :デフォルトの名無しさん:2006/08/22(火) 04:16:28
あーぎゅす

984 :デフォルトの名無しさん:2006/08/22(火) 04:21:12
フィールドにスタティックを使う理由はありますか?動作も理解しづらいのですが
例えばint ahya;とフィールド宣言すればそのフィールドは他のクラスから複数インスタンスを作って参照出来るけど
sitatic int ahya;と定義すれば複数参照出来ずahya自体が一つしか存在しないって事になるのですか?

985 :982:2006/08/22(火) 04:22:38
>>983
thx

986 :デフォルトの名無しさん:2006/08/22(火) 04:28:16
>>982
あーぐ

987 :デフォルトの名無しさん:2006/08/22(火) 06:50:21
class This {
private int a;
public void setX(int x) {
this.x = a;
}
public int getX() {
return a;
}
public void msg() {
System.out.println("This: " + a);
}}

class ThisDemo2 {
public static void main(String[] args) {
This obj = new This();
obj.setX(10);
int x = obj.getX();
obj.msg();
System.out.println("main: " + a);
}}

ThisDemo2.javaという一つのソースファイルに2つのクラスを上記の通り記述しコンパイルすると正常に動作するのですが
This.javaとThisDemo2.javaという2つのファイルに分けて記述するとThisDemo2クラスの最後の出力文のaがEclipse上で×になります。
どのように記述すれば正常にコンパイルできるのでしょうか?

988 :987:2006/08/22(火) 06:53:03
すみませんint x = obj.getX();を書き忘れていました。長々と書いたあげく凡ミスですみません・・・

989 :デフォルトの名無しさん:2006/08/22(火) 07:03:32
System.out.println("main: " + x);

990 :デフォルトの名無しさん:2006/08/22(火) 07:09:08
埋まりそうなんで立てといた

【初心者】Java質問・相談スレッド89【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1156198089/

991 :デフォルトの名無しさん:2006/08/22(火) 07:33:10
>>990
乙彼、2getしたかったけどもうかかれちゃってるよ・・・

992 :デフォルトの名無しさん:2006/08/22(火) 11:16:22
昨日からJavaを始めたんですが、
2つクラスを作ってクラスの継承を行わないで、
片方のクラスでもう片方のクラスの内容を表示するのって可能なんですか?
>>1のサイトも見てみたのですが私の欲しい答えが出てこないです・・・(;´Д`)

993 :デフォルトの名無しさん:2006/08/22(火) 11:32:33
>>992
ゲッターメソッド実装すればいいじゃない

994 :デフォルトの名無しさん:2006/08/22(火) 11:40:43
クラスの内容を表示するってどういう意味?

995 :デフォルトの名無しさん:2006/08/22(火) 11:40:52
>>992
コピーしたいメソッドのオブジェクトを作って参照させればいい

996 :デフォルトの名無しさん:2006/08/22(火) 11:47:28
入門サイトを見ながら色々設定してみたのですが、javac Hello.java
と入力しても、ナントカカントカが認識されていませんと出て
プログラムを動かすことができません。
どうすれば良いのですか?

997 :デフォルトの名無しさん:2006/08/22(火) 11:48:56
>>996
http://www.wikiroom.com/java/index.php?FAQ#content_1_1

998 :デフォルトの名無しさん:2006/08/22(火) 11:49:21
>>996
ハゲはあっち行ってろ

999 :デフォルトの名無しさん:2006/08/22(火) 11:51:37
>>993さん
>>995さん 有難う御座います!やってみます!!

>>994さん System.out・・・・みたいな感じで表示できないのかなー?と;;

1000 :デフォルトの名無しさん:2006/08/22(火) 11:52:13
999は992です(;´∀`)

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

267 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)