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

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

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

1 :デフォルトの名無しさん:2008/06/13(金) 17:52:10
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド115【歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1210529127/
次スレは>>990あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

2 :デフォルトの名無しさん:2008/06/13(金) 17:52:47
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 7
ttp://pc11.2ch.net/test/read.cgi/tech/1204155623/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part16
ttp://pc11.2ch.net/test/read.cgi/tech/1207110104/l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 7
ttp://pc11.2ch.net/test/read.cgi/tech/1180010672/l50

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 64 ★★
ttp://pc11.2ch.net/test/read.cgi/tech/1196543694/l50

**** 開発環境が必要の場合は ****
■ J2SE 1.4.0
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/index.html
■ J2SE 5.0 (1.5.0)
ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
ttp://java.sun.com/javase/ja/6/

**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja/

3 :デフォルトの名無しさん:2008/06/13(金) 17:55:33
>>2
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 8
http://pc11.2ch.net/test/read.cgi/tech/1206017034/

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 65 ★★
http://pc11.2ch.net/test/read.cgi/tech/1212085079/

4 :デフォルトの名無しさん:2008/06/13(金) 18:12:41
すみませんが、質問です。

Java の各種の Set のうち、要素を追加した順番を覚えていて、イテレータで
取り出すとその順番どおりに要素の返ってくるものはないでしょうか?


5 :デフォルトの名無しさん:2008/06/13(金) 18:14:44
デバッグ中に、あるインスタンスの参照箇所リスト的なものを見たいのですが、
そんなこと可能でしょうか?

6 :デフォルトの名無しさん:2008/06/13(金) 18:31:30
普通のデバッガの機能だろ

7 :デフォルトの名無しさん:2008/06/13(金) 18:35:55
>>4
Setはものの集まりをあらわしているだけなので入力された順番なんか気にしていない。
順番を保障したいのであればjava.util.Listを実装しているクラスを使う方がよくね?

8 :デフォルトの名無しさん:2008/06/13(金) 18:43:03
>>4
http://java.sun.com/javase/ja/6/docs/ja/api/java/util/LinkedHashSet.html
>この順序は、要素がセットに挿入された順序です (挿入順) 。

なんかこんなんあったよ。ハッシュで順序保存で、というとこれなのかな。

↓ここをちょっと眺めたらあった
http://java.sun.com/javase/ja/6/docs/ja/api/java/util/package-tree.html

9 :デフォルトの名無しさん:2008/06/13(金) 18:43:28
>>4
LinkedHashSet

10 :デフォルトの名無しさん:2008/06/13(金) 19:04:23
>>6
> あるインスタンスの参照箇所 とあるので、その答えは勘違いでしょ
要はこのインスタンスの参照は
XXクラスのxxクラス変数


ってのを求めているのでは?

11 :デフォルトの名無しさん:2008/06/13(金) 19:15:01
>>2
■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part17
ttp://pc11.2ch.net/test/read.cgi/tech/1207110104/

12 :デフォルトの名無しさん:2008/06/13(金) 19:38:40
>>5
JDIにreferringObjectsたらいうメソッドがあるみたいよ。
はい、使ったこたぁありません。

13 :デフォルトの名無しさん:2008/06/13(金) 19:41:58
すみません、質問があるのですがスレ違いだったら誘導をお願いします。

HA-JDBCの調査で簡単なプロトタイプを作成する事になったのですが、
実際のコードの書き方がイマイチ分かりません・・・。
どこか良い解説の載っているサイトがありましたら教えて下さいませ。


14 :4:2008/06/13(金) 19:56:26
>>7->>9
LinkedHashSet ですね。ありがとうございました。

15 :デフォルトの名無しさん:2008/06/13(金) 21:37:49
getSource()の戻り値を元のオブジェクトに判別してキャストする方法はありますか?

16 :デフォルトの名無しさん:2008/06/13(金) 21:42:19
>>12
このjarってどこにあるのでしょうか?JDKに入っているんですかね?

17 :デフォルトの名無しさん:2008/06/13(金) 22:53:19
>>15
instanceof

18 :デフォルトの名無しさん:2008/06/13(金) 23:42:05
>>17
thx

19 :デフォルトの名無しさん:2008/06/13(金) 23:59:40
Lisp in JavaとかでググるとJavaで実装されたLisp処理系とか
あるけど、みんな使ったことある?

こんなのがある。これがいいんじゃない?と言うご意見お待ちしてます。

20 :デフォルトの名無しさん:2008/06/14(土) 00:16:53
>>16
よくしらないけど、「java jdi 使い方」でぐぐってみた
ttp://d.hatena.ne.jp/unageanu/20070530/1180511855
>JDK添付ですが、実装はtools.jar内にあります。

21 :デフォルトの名無しさん:2008/06/14(土) 00:42:36
String s = new String("abc");

と、

String s = "abc";

って、違うのか?同じなのか?

入門書を、何冊か見たが、同じと書いてあるのもあるし、
同じようで違う、と書いてあるのもあるし、
同じと思っていい、って書いてあるのもあって、
なんかハッキリしない・・・そう言うもんなのか?

22 :デフォルトの名無しさん:2008/06/14(土) 00:49:11
>>21
疑問に思うのならどうして自分で調べないの?
ちょっとチェックのコードでも書いてみればいいじゃない

23 :デフォルトの名無しさん:2008/06/14(土) 00:58:50
>>21
Java "new String"
でぐぐると、わりと詳しい説明がいくつか

24 :デフォルトの名無しさん:2008/06/14(土) 01:09:54
>>21
一言で言えば、違う。前者は無駄なのでまずやらない。


25 :デフォルトの名無しさん:2008/06/14(土) 01:16:50
http://pc11.2ch.net/test/read.cgi/tech/1210529127/932
> >有料だと高くて…
> Tomcatでいいんだろ?月500円でも高いのか?
> http://www.easytone.jp/
> 無料なのがないのはJavaだと自由度が高すぎてセキュリティに問題が起きる可能性が高いからだと思うけどな?

セキュリティの問題じゃない。メモリ容量とディスク容量の問題。

> それにJavaはphpなどに比べれば難しいから需要も少ないってこともあるだろうなあ?

それは個人の需要がだろ。
企業に需要があってもわざわざレンタルサーバを介することは稀だからな。
企業はJBossやGeronimoが載らないと嫌だとかいろいろ注文つけたがるだろうから。

26 :デフォルトの名無しさん:2008/06/14(土) 01:18:25
Cっぽくいうと、

前者は
char* s;
s = (char*)malloc(適切なサイズ);
strcpy(s, "abc");

後者は
char* s = "abc";

みたいな感じ。


27 :デフォルトの名無しさん:2008/06/14(土) 01:30:54
>>21
String a = "abc";
String b = "abc";
String c = new String("abc");
String d = new String("abc");
System.out.println(a == b);
System.out.println(a.equals(b));
System.out.println(c == d);
System.out.println(c.equals(d));
を実行してみろ。

28 :デフォルトの名無しさん:2008/06/14(土) 03:32:26
>>21
前者は始めパラメータコンストラクタが走って、その後コピーコンストラクタが走る。
後者はパラメータコンストラクタだけが走る。
普通は無駄なので後者だが、パラメータが2個以上有って、配列の場合は前者を使う。
C++の場合は。 何かの参考になれば。

29 :デフォルトの名無しさん:2008/06/14(土) 05:50:35
C++の話してどうすんだよっとつっこめばいいのか?
javaのStringは不変クラスなのでC++とはだいぶ様子が違うぞっと。
>>27の意味がわかればOKじゃね。

30 :デフォルトの名無しさん:2008/06/14(土) 08:09:31
>>24
可能です。
以上。
はい次の方。

31 :28:2008/06/14(土) 11:38:01
String a = "aa"; と String a = new String("aa"); が等しいかと聞いてる人には、
    ~~         ~~
String a = "aa"; と String b = "aa"; は等しい、
String a = new String("aa"); と String b = new String("aa"); は等しくない、ゆえに
String a = "aa"; と String b = new String("aa"); は等しくないは、演算子の説明?とか。
    ~~         ~~
>>23 でいいんじゃないかな。Google好きね

32 :デフォルトの名無しさん:2008/06/14(土) 17:54:54
すいません、質問です!
javaの式は値を持たないのでしょうか?

例えばC言語なら
if (a = b + c){
/* 変数aを使った処理 */
}

のように書けますが、
javaだと、

a = b + c;
if (a){
/* 変数aを使った処理 */
}

としなければならないのですか?

33 :デフォルトの名無しさん:2008/06/14(土) 18:03:20
すみませんが、質問させてください

1=1.5
2=2.0 という表示を出したいのですが

1.5
2.0  という表示しか出ません
何をつけ足せばいいでしょうか?

public class kari{
public static void main(String[] args){
int n=0;
double a[]=new double[100];
a[0]=1.5;
a[1]=2.0;
a[2]=3.0;
System.out.println("1.5");
System.out.println("2.0");
System.out.println("3.0");
for(n=3;n<=100;n++){
a[n]=(-1*a[n-1]) + a[n-2] + a[n-3];
System.out.println(a[n]);
}
}
}

アドバイスの程、よろしくお願いします

34 :デフォルトの名無しさん:2008/06/14(土) 18:04:45
>>32
持たない。

>>33
intでなくdoubleに汁

35 :デフォルトの名無しさん:2008/06/14(土) 18:04:50
>>32
そういう問題じゃない。
Javaの真偽はbooleanによってのみ判断される。
Cでwhile(1)とかが大丈夫なのは非0が真と見做されるから。
Javaではwhile(true)。


36 :デフォルトの名無しさん:2008/06/14(土) 18:10:08
>>32
if (0 != (a = b + c)){
と書けばおk。しかし、こう書くとよい場合というのは思いつかない。

それ以前に「式は値を持たない」という言い方はおかしいよ。
「代入演算子(の作る式)」とかでしょう。

37 :デフォルトの名無しさん:2008/06/14(土) 18:13:00
>>32
>a = b + c;
>if (a){
これならできたの?

38 :デフォルトの名無しさん:2008/06/14(土) 18:17:09
>>34
アドバイスありがとうございます
すぐにやってきます

39 :デフォルトの名無しさん:2008/06/14(土) 18:23:23
>>34の方へ

3行目ですよね?
変える部分は。

変えたらずっと”精度が落ちている”表示になってしまったのですが…

すみませんが
またアドバイスをくださいませ

40 :デフォルトの名無しさん:2008/06/14(土) 18:32:29
>>32 if()の条件は論理値にすること。if(0!= )かif( !=0)
>>33 "a[" + 0 + "] = " + 1.5 あ、オセロ問題の人。

41 :デフォルトの名無しさん:2008/06/14(土) 18:33:45
スルーしてたけど、>>34はデタラメのように見える

>>33
そのプログラムやその受け答えもデタラメのように見える
答えが欲しいだけならちょっとスレ違いかな

42 :デフォルトの名無しさん:2008/06/14(土) 18:38:28
>>33
例外出るだろ?

43 :デフォルトの名無しさん:2008/06/14(土) 18:40:56
>>40
いえ、ほかの方かと…(汗

>>41
デタラメに見えてしまいましたか(汗
受け答えもよくなかったようなので反省します…

プログラムは一応習ったのを応用して
書いてみたのですがうまく>>33の表現にならなかったので…

一から書き直したほうがいいでしょうか?

44 :32:2008/06/14(土) 18:51:59
すいません、質問の仕方が酷かったです。
例えば、x = f(x)という式があって、f(x)がtrueかfalseを返すとします。
そいう条件下であってもjavaでは

if (x = f(x)){
/* xを使った処理 */
}

という書き方は許されないのでしょうか?

ちなみに「式が値を持つ」という言い回しはCの本で有名なK&Rに出てた言葉ですが
こういう言い方はあまりしないのですか?

45 :デフォルトの名無しさん:2008/06/14(土) 18:52:35
>>33
方法は少なくとも2通りある。
1. 1行を何度かに分けて表示する。System.out.print("1+1="); System.out.println(1 + 1);
2. データを文字列に連結してから表示する。System.out.println("1+1=" + (1 + 1));
どっちかは習ってるんじゃないの。

46 :デフォルトの名無しさん:2008/06/14(土) 18:54:11
>>44
この場合はふさわしくない、という意味
1 + 1も式、
a /= 1 + 1も式でしょ

47 :デフォルトの名無しさん:2008/06/14(土) 18:57:24
>>44
xがbooleanなら、そう書くこと自体に問題はない。



48 :デフォルトの名無しさん:2008/06/14(土) 18:58:18
>>44
参考までに、どうしてそういう疑問が湧いたのか教えてくれれば幸い

49 :32:2008/06/14(土) 19:01:43
>>46
>>47
ありがとうございます。文法的には許されるんですね。すっきりしました!

>>48
自分はCとJavaをどっちも素人で同時に勉強してるのですが(たぶん効率最悪ですが)
Cの本にはよく、ifの後に代入式を書いても左辺の変数の値がその式の値になる
というような記述をよく見るんですがjavaの本では見たこと無かったので疑問に思いました。

50 :デフォルトの名無しさん:2008/06/14(土) 19:03:03
>>45
二つとも習いましたが、応用できていませんでした(汗
繋がった式でしたので、「この方法はできないのかな」と
一人思いこんでいました

しかし分けたり連結したり表示するには
あの長い式を分解したりするのでしょうか?
それとも繋がったままでしょうか?

ちょっと頭が混乱してきました
すみません

51 :デフォルトの名無しさん:2008/06/14(土) 19:04:15
どっちかだけの方がいいよ。見た目同じだけど、全然違うから。
Cのポインタの方が難しいから、先にそっちを攻略しとくとJavaのjava.lang.Objectの方も理解が深まるよ。

52 :デフォルトの名無しさん:2008/06/14(土) 19:11:31
代入式は文じゃなくて式なんだよね。
「=」は+やーと同じ演算子に過ぎないから。
プログラムに明るくない人間が見れば文に見えるから少しややこしい。
rubyみたいに文が値を持つ言語が出てくるとさらにややこしい

53 :デフォルトの名無しさん:2008/06/14(土) 19:14:14
>>49
既に前のレスで十分な返答をもらってるのに、
それを理解もせず自分で確かめもせず質問連発する奴は素人未満だ馬鹿。

54 :デフォルトの名無しさん:2008/06/14(土) 19:17:29
わかりました
アドバイスどうもです

一応連結してから表示のほうをやってみたのですが
またも変な表示が…

55 :40:2008/06/14(土) 19:28:02
>またも変な表示が…
n<100 五目並べ問題の人?

56 :デフォルトの名無しさん:2008/06/14(土) 19:53:09
>49
どっちかをある程度習得するまでは片方にしろ
言語が違えばルールも違うし考え方すら異なる場合もある
効率が悪いって言うかどっちもモノに出来ないと思う

57 :デフォルトの名無しさん:2008/06/14(土) 19:58:04
>>50
いえ、0〜99まで数列を表示する問題です。
増やすことはできたのですが、表示に問題がありまして
表示を出すにはどうすればいいかというのを考えてまして。

それで、ここの方々にアドバイスをいただいていたところです。

58 :デフォルトの名無しさん:2008/06/14(土) 19:59:47
>「式が値を持つ」
言語によるよね

59 :デフォルトの名無しさん:2008/06/14(土) 20:08:36
>>33
配列を使うなら先に数列を完成させてしまったほうが、
表示の反復が単純になるんじゃないかな。

「変な表示が」というものをただ「変」で済ませていたら進まないと思うけどw

60 :デフォルトの名無しさん:2008/06/14(土) 20:12:38
式が値を持つ
って初めて聞いたな
古い本か?

61 :デフォルトの名無しさん:2008/06/14(土) 20:13:08
>>59
ふむふむ、先に数列を完成させると…。
アドバイスどうもです。

62 :デフォルトの名無しさん:2008/06/14(土) 20:33:04
式の値というのはC言語で聞いた記憶があるよ。
話題になっているのは代入式が値をもつ言う話で
a = b = 99 で b = 99の式が99という値をもっていて、それをさらに a に代入できる。
もっともif に論理式が必要なのを誤解した故の発言だったわけだが。

他にこういう時に使う。
b = 10
a = b++ の説明で右辺の式の値は10で aには10が代入される。
a = ++b の場合は右辺の式の値は10で aには11が代入される。


63 :デフォルトの名無しさん:2008/06/14(土) 20:33:50
>>62
>a = ++b の場合は右辺の式の値は10で aには11が代入される。 
a = ++b の場合は右辺の式の値は11で aには11が代入される。 

訂正

64 :デフォルトの名無しさん:2008/06/14(土) 20:35:12
>>60
普通の本だと思うが。

65 :デフォルトの名無しさん:2008/06/14(土) 21:33:03
式が値を持つって意味分からないし
最後に評価された値を見てるだけだし

66 :デフォルトの名無しさん:2008/06/14(土) 21:45:02
珍解釈ktkr

67 :デフォルトの名無しさん:2008/06/14(土) 22:07:21
まずはC++からやれ。

68 :デフォルトの名無しさん:2008/06/14(土) 22:27:17
>>36
その表記は見苦しいし意味がないから嫌いだ。



69 :デフォルトの名無しさん:2008/06/14(土) 22:35:14
((b op (c op d)) op a)
より
(a op (b op (c op d)))
のほうが見やすいと思うんだ

70 :デフォルトの名無しさん:2008/06/14(土) 23:00:59
1. if (a == 123) {
2. if (123 == a) {
Cの場合はif (a = 123)が通ってしまうの2をすすめる人もいるけど、
その心配のないjavaでは1が自然だと思う。

71 :デフォルトの名無しさん:2008/06/14(土) 23:07:08
異常なことをやっているところでは異常性の際だつ書き方をするクセがある

72 :デフォルトの名無しさん:2008/06/14(土) 23:10:17
b c d op op a op
逆ポーランドが好きです

73 :デフォルトの名無しさん:2008/06/14(土) 23:17:24
javaって0とか1とかnullとかどれも条件式の結果には使えない?
trueとfalseのみ?

74 :デフォルトの名無しさん:2008/06/14(土) 23:18:42
当然

75 :デフォルトの名無しさん:2008/06/14(土) 23:30:02
そーなのかーありがとう。堅苦しい言語だね

76 :デフォルトの名無しさん:2008/06/14(土) 23:53:43
それはCがずぶずぶ過ぎる。
C++でboolを追加するときにまともにしたかったのだが、
Cとの互換から手を付けられなかったらしい。
bool/int相互に暗黙の変換を許してしまってほとんどboolの存在価値はなくなった。

77 :デフォルトの名無しさん:2008/06/14(土) 23:54:24
そのへんは機械語的な都合もあったんでしょ

78 :デフォルトの名無しさん:2008/06/14(土) 23:55:12
ていうかコンパイラ的な都合かな

79 :デフォルトの名無しさん:2008/06/15(日) 00:26:37
構造化アセンブラですから。


80 :デフォルトの名無しさん:2008/06/15(日) 00:39:39
そもそもbooleanの価値が分からない俺は死んだ方がいい

81 :デフォルトの名無しさん:2008/06/15(日) 00:50:36
じゃあ俺も死ぬ

82 :デフォルトの名無しさん:2008/06/15(日) 00:56:14
>>80
>>81
おまいら死なないで。

83 :デフォルトの名無しさん:2008/06/15(日) 00:58:57
なんというドラマ

84 :デフォルトの名無しさん:2008/06/15(日) 03:16:30
いっぺん死んでみる?

85 :デフォルトの名無しさん:2008/06/15(日) 03:43:55
今日で、めでたくく初心者を卒業したっぽいわけですが・・・
ひとつ質問していいですか?

どうしてjavaは初心者にこうも厳しいんですか?
例えばダブルクリックの起動ファイルひとつ作るのでも、ネット上の情報はうそっぱちか役に立たない情報ばっかり。
VBと比べても必要な情報にたどりつくのに時間がかかりすぎ。
これだったら、M$社製品(C++、C#、VB2005等)の方が手っ取り早かった(と思う、たぶん)。
とくかく情報の出し惜しみはやめてほしいな。
なんで、java弄るひとって性格の悪い人がおおいんだろ。
java関係の本でもろくなのないし。

86 :デフォルトの名無しさん:2008/06/15(日) 03:46:10
  |   |  | |   |    |  | |   |   |   || | |
  |   |  | レ  |    |  | |   |  J   || | |
  |   |  |     J    |  | |  し     || | |
  |   レ |      |  レ|       || J |
 J      し         |     |       ||   J
             |    し         J|
             J                レ
     /V\
    /◎;;;,;,,,,ヽ
 _ ム::::(l|l゚Д゚)| …うわぁ
ヽツ.(ノ::::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'

87 :デフォルトの名無しさん:2008/06/15(日) 03:49:39
>>86
遅くまでごくろうさまです。
いや釣りじゃなくて、真面目に抗議しているんですが・・・

88 :デフォルトの名無しさん:2008/06/15(日) 03:51:19
2chに抗議とか言われても・・・w
Sunに言えよ。

89 :デフォルトの名無しさん:2008/06/15(日) 03:52:40
すんません。
そうですよね。
結局、タダほど高いものはないっていう(ry

90 :デフォルトの名無しさん:2008/06/15(日) 03:55:33
ぜんぶ的外れ・・・・でもないがぜんぶ的を射てはいないという

91 :デフォルトの名無しさん:2008/06/15(日) 03:57:35
そうなんですよ、それそれその感覚なんです。
VBだと魔界の仮面弁士さんとかMVPがいるからなぁ。
あ、やっぱM$から金でてますものねぇ〜。

92 :デフォルトの名無しさん:2008/06/15(日) 03:58:23
ネット上の情報はどの分野でも基本的に話半分に聞くべき。
本もだけど。

93 :デフォルトの名無しさん:2008/06/15(日) 04:00:41
おっしゃるとおりなんですが、
VBでは結構有用な目から鱗状態の情報が結構ごろごろしてたんですよ。

もうjavaの本とか最悪。ほとんど詐欺本ですな。

94 :デフォルトの名無しさん:2008/06/15(日) 04:02:26
立ち読みして選べよ

95 :デフォルトの名無しさん:2008/06/15(日) 04:05:34
いやー立ち読みでわかりやすいって思う本って、家帰ってほとんど読まなかったですね。
結城さんの本は鱗でしたが、全部そろえるとまあ高いのなんのって。
アマチュアレベルで気軽にかえるほんではなかったですね。TT

96 :デフォルトの名無しさん:2008/06/15(日) 04:06:38
安物買いの銭失いって言うからな。

97 :デフォルトの名無しさん:2008/06/15(日) 04:08:27
おっしゃるとおりです。
でも誰も結城さんの本なんか薦めないでしょ。
淋しいよな〜

98 :デフォルトの名無しさん:2008/06/15(日) 04:09:11
いや、結城本は定番じゃないのか?w

99 :デフォルトの名無しさん:2008/06/15(日) 04:12:05
あなたに最初に出会えてればよかった。
っていうか、初心者にいつも薦められてます?
学校とかで推薦になっているのではないでしょうか?
私は、完全に独学なもので・・・

100 :デフォルトの名無しさん:2008/06/15(日) 04:14:29
結局独学ではしっかり調べでもしない限りは運に寄る所が大きい。

101 :デフォルトの名無しさん:2008/06/15(日) 04:18:48
おっしゃるとおりですね。
いそばがなんとかですね。
まあでも今日で初心者卒業できたのは、私も運がよかったということですかね。
こんな時間まで起きている、先輩はかなりの方とお見受けしました。
生業としている方ですね、きっと。

そういえば、2chでの質問内容ってほとんど、学校の質問みたいなものがおおいですものね。
なんか、目的をもったプログラムにかんするものは少ないですね〜。
まあ、プロフェッショナルは2chできかないでしょうが。

102 :デフォルトの名無しさん:2008/06/15(日) 04:22:57
では寝ますね。こんなじかんまでお付き合いいただき、誠にありがとうございました。
秋葉原の事件で、もう2chはいらないとおもいましたが、こんな古き良き時代によくあった
チャットをできるとはおもいませんでした。
ではご健康にきをつけて。
失礼します。

103 :デフォルトの名無しさん:2008/06/15(日) 04:41:51
>>98>>99
そう言えば、「結城本は定番」というのは確かによく聞くような気がするが、どこで聞いたか思い出せねーなwww
このスレのテンプレにも無いようだし……。

104 :デフォルトの名無しさん:2008/06/15(日) 07:35:37
いそばが

105 :デフォルトの名無しさん:2008/06/15(日) 08:08:20
なにこの気持ち悪い流れ

106 :デフォルトの名無しさん:2008/06/15(日) 08:18:10
JavaAppletについての質問です。
ブラウザの更新ボタンが押された時にアプレットの初期化又は変数の初期化を
行いたいのですが、どうすればいいですか?
教えて下さいお願いします。

107 :デフォルトの名無しさん:2008/06/15(日) 09:14:44
ブラウザで更新されたらAppletは強制的に初期化だw

108 :デフォルトの名無しさん:2008/06/15(日) 09:41:39
***Javaのオススメ入門書*** 『創るJava』 3.0
http://pc11.2ch.net/test/read.cgi/tech/1190032149/
↑のスレ自体より過去ログ見た方がいいかも

109 :デフォルトの名無しさん:2008/06/15(日) 09:50:14
>>1のwikiに昔は結城本の事も書いてあった気がするが
今はこうなってるのか

>2chで推薦されている入門書を挙げておきます。
>
>Head First Java―頭とからだで覚えるJavaの基本
>独習Java
>コアJava2 Vol.1 基礎編
>コアJava2 Vol.2 応用編
>Javaの格言―より良いオブジェクト設計のためのパターンと定石
>Javaの鉄則―エキスパートのプログラミングテクニック

>「やさしいJava」(高橋 麻奈 著)はプログラミング未経験者が読むには適していますが、Java入門書とは呼べません。
>Javaプログラミングとはこういうものなんだ、というのをつかんだら上記入門書をやるのをお勧めします。

110 :デフォルトの名無しさん:2008/06/15(日) 09:56:37
VBからjavaって…なんか可哀想なPGだね
Cから上に上がっていけば新たな言語でも何の苦労も無いのに

111 :デフォルトの名無しさん:2008/06/15(日) 10:17:23
>VBでは結構有用な目から鱗状態の情報が結構ごろごろしてたんですよ。 

人によると思うだけど、明け方に投稿するような君にとってそのゴロゴロ情報は例えば何?

112 :デフォルトの名無しさん:2008/06/15(日) 10:28:16
なんつーかIDEって普段使わないんで
たまに使うことがあるとすげー気持ち悪いんだが
>>85見て改めてIDEはイラネと思ったわ

113 :デフォルトの名無しさん:2008/06/15(日) 10:30:46
訂正IDEがイラネ→IDEに頼ってる奴

114 :デフォルトの名無しさん:2008/06/15(日) 10:31:50
キモイ奴は、話を聞いていてもやっぱり最後までキモイな。いいまわしとかも最悪。
君は、VBの方が性に合ってるんじゃないの?

115 :デフォルトの名無しさん:2008/06/15(日) 10:33:18
そのVB宙の話は、なんか犯罪者がアレコレしゃべってるのを聞かされているようで怖かった

116 :106:2008/06/15(日) 10:34:08
すいません、分かりました。
start()で変数の初期化を行えばいいのですね。

117 :デフォルトの名無しさん:2008/06/15(日) 12:25:58
>>116
分かってしまったなら仕方あるまい

118 :デフォルトの名無しさん:2008/06/15(日) 12:29:43
今日の深夜までにやらなきゃいけない課題なんですが、なかなかうまくいきません。
助けてください。

自動販売機を表すVendingMachineクラスとそれを実行するmainメソッドを作成せよ
・機能
 ・お金を投入する
 ・金額が十分投入してればジュースを買える。
 ・お金の払い戻しができる
作成したVendingMachineに対しカプセル化を施し意図しない状態に変更されないようにせよ



119 :デフォルトの名無しさん:2008/06/15(日) 12:42:47
>>85
つまり、Javaの勉強にVBでの経験が役に立たなかった、でFAか

120 :デフォルトの名無しさん:2008/06/15(日) 12:58:20
>>109
最近でた柴田本はどうなん?
Cの入門書はなかなかの良書だったんで、ちょっと期待してるんだが

121 :デフォルトの名無しさん:2008/06/15(日) 13:03:41
奴の本の良し悪しよりも、奴の人格が歪んでる

122 :85:2008/06/15(日) 13:55:33
>>110
C(無印)は当時かなり敷居がたかかったんですよ。
統合開発環境もなかったし、PCもちょうど98全盛のころでしたからね。
BACICからVBまでおよそ15年のブランクがありました。
プロフェッショナルじゃなくて、趣味でつくるプリグラミングなんてそんなレベルですよ。
決して自分が可哀そうとか思いません。w

でもおかげさまで、java勉強したおかげでCは読めます。
その点はjava様々ですが。

>>119
手続き型からオブジェクト指向へのつなぎとしての意味は大きかったです。
あと、マイクロソフトの考え方もちょっとわかった(気がする)。

123 :デフォルトの名無しさん:2008/06/15(日) 14:11:21
そんなあなたにはVBのままの方が遠回りもせず結局いいと思いますよ。
Javaは所々面倒くさいのが多いし、setter/getterとかも。
VB出身ならC#が普通の流れなんですけどね…

124 :デフォルトの名無しさん:2008/06/15(日) 14:37:58
Java 勉強したらある程度 C は読めるはずだが、
それだけだとポインタに関する知識が怪しいはずだと思う。

125 :デフォルトの名無しさん:2008/06/15(日) 16:19:47
だれか、

g.setColor(new Color(this.move_color[i]));//16進数色指定(配列より抽出する。0xff0000)

こうやって変数を使って色指定すると

C:\>javac nico_mouse.java
nico_mouse.java:124: シンボルを見つけられません。
シンボル: コンストラクタ Color(java.lang.String)
場所 : java.awt.Color の クラス
g.setColor(new Color(this.move_color[i]));//16進数色指定(配列より抽
出する。0xff0000)
^
エラー 1 個

といったエラーが出てくるんだがどうやったら治せる!?

126 :デフォルトの名無しさん:2008/06/15(日) 16:25:30
だれか、

g.setColor(new Color(this.move_color[i]));//16進数色指定(配列より抽出する。0xff0000)

こうやって変数を使って色指定すると

C:\>javac nico_mouse.java
nico_mouse.java:124: シンボルを見つけられません。
シンボル: コンストラクタ Color(java.lang.String)
場所 : java.awt.Color の クラス
g.setColor(new Color(this.move_color[i]));//16進数色指定(配列より抽
出する。0xff0000)
^
エラー 1 個

といったエラーが出てくるんだがどうやったら治せる!?

127 :デフォルトの名無しさん:2008/06/15(日) 16:33:14
ColorのコンストラクタでStringを引数に持つものが無いからだろ。
Integer#decode(String)あたりでも参照すべし。

128 :デフォルトの名無しさん:2008/06/15(日) 17:03:04
配列に設定してるところを書かないと意味ねーじゃん
move_color[0]="0xff0000";
なことしてるんじゃね

129 :デフォルトの名無しさん:2008/06/15(日) 17:25:17
問診票

これまで大きな言語に罹られたことはありますか?

130 :デフォルトの名無しさん:2008/06/15(日) 18:57:03
漢字が読めません

131 :デフォルトの名無しさん:2008/06/15(日) 19:13:05
"Javaの文字列連結演算子は" + "である。"
>>129 かかられた、だ。

132 :デフォルトの名無しさん:2008/06/15(日) 19:16:30
罹(すっぽこ)られた

133 :デフォルトの名無しさん:2008/06/15(日) 19:23:00
では次の方

134 :85:2008/06/15(日) 19:31:18
>>123
アドバイスありがとうございます。
必要に迫られて消去法でjavaになりました。
C#も本でみましたが、あれも面白そうですね。
ただM$の都合で、変な改定されるのが怖いんです。(J++とかw)
setter/getterについては後々勉強します。

>>124
おっしゃるとおりですが、私はZ80の脳内アセンブリ世代なんで、いちおうPCに関する極原始的な知識はあります。
C++をパスしたのもその辺の管理が面倒というのがありました。

特段質問はないんでこれにて失礼します。
皆様今後とも、初心者にはやさしくしてくださるようよろしくお願いします。
javaのご加護を

135 :デフォルトの名無しさん:2008/06/15(日) 19:35:39
それならperlの方がいいんじゃない?趣味なんだしw

136 :85:2008/06/15(日) 19:46:35
>>135
あれまだ私、話してていんですかね。
あんまし登場するとチラウラで申し訳ないです。

perlとかrubyとかActiveBasicとかも一応候補にいれたんですが。
特段perlに光るものはなかったと記憶しています。
ネット上のサンプルプログラムも少なすぎるし、なにより書店の売り場面積が、こっちくるな!って言っているようで・・・。w
よろしければ、perlの良い点を教えてください。
あ、スレチですね。
javaのキラーコンテンツはやはりマルチスレッドですかね。
スレッドフリーということばがjavaの世界にあるのには感動しました。

137 :デフォルトの名無しさん:2008/06/15(日) 19:47:55
perl のサンプル多過ぎるくらいだろw
探し方おかしいんじゃね。

138 :85:2008/06/15(日) 20:00:47
>>137
けっこうメジャーな言語なんですね。
ズラズラとでてきました。
ABと同列にしてごめんなさい。
スピードはどうなんですか?お、『各レイヤはC言語で実装できるため高速』なんですか。
オブジェクト指向言語としての位置づけも一抹の不安が。
こうしてみると悪くないですね。


139 :デフォルトの名無しさん:2008/06/15(日) 20:46:41
「アセンブラやってました」とかの釣りを相手にするのは、もういいだろ
あなただと、Javaだとそのうち不満が出る(例えば演算子おーばーろど云々)でしょうし、C#の方が向いてますよ。


140 :デフォルトの名無しさん:2008/06/15(日) 20:48:26
こういうキモイ奴の相手はしたくないな。VBの世界でこの世からは隔離されていてくださいな

141 :85:2008/06/15(日) 20:57:24
>>139
アドバイスありがとうございます。
しかし、そんなに高級なことをやりたいわけではないですので、VBより少々使い勝手がよければ全く文句ないです。
しかしそこまで執拗にC#を進める背景にはなんかあるのでしょうかね。
きたるべきマイクロソフトの崩壊に備え、M$からの脱却を図っているのでjavaにしたんですよ。
LinuxではC#動かないでしょう?
.NETははっきりいって糞くらえですよ。(食事中のかたすんません)

142 :デフォルトの名無しさん:2008/06/15(日) 20:58:46
人間というのは、ここまで気持ち悪くなれるものなのか…
もしかして層か?

143 :デフォルトの名無しさん:2008/06/15(日) 20:59:13
ときどきでいいからmonoのことも思い出してください

144 :デフォルトの名無しさん:2008/06/15(日) 21:01:23
>>139
あ、ばれちゃった(^ V^)

145 :デフォルトの名無しさん:2008/06/15(日) 21:16:15
知識の歪みは背骨の歪み

146 :85:2008/06/15(日) 21:18:24
ふりだしに戻る・・・
⇒なんで、java弄るひとって性格の悪い人がおおいんだろ。

自分なりの分析ですが
java弄る人って、殆どが玄人(それで飯食っているひと)なわけですよ。
もしくは、いま勉強中で資格とって就職しようとしている人々。
したがって、ライバルは少ないほうがいい、もしくは自分の優位性をつねに保っていたい。
そんなエゴが見え隠れしている。
昨日の深夜に僕の相手をしてくれた方は違うとおもいますが、ほとんどの人が傲慢だ。
私もすごく気持ちが悪い。

そうじゃないでしょ、ってこと。
プログラミングはアマ・プロ区別なくみんなのものでしょってこと。
一般人、ど素人に丁寧に教えていかなければ未来はないですよ。

べつに2chにそういうことを期待しているわけではないですが、数々の方のブログを拝見して感じたことです。
以上。

147 :デフォルトの名無しさん:2008/06/15(日) 21:21:40
いや、もういいや。死んでいいよ

148 :デフォルトの名無しさん:2008/06/15(日) 21:27:01
>>146
あなたが疎外されているとしたら「素人だから」ではないと思われる。
大体そんな感じで。

149 :85:2008/06/15(日) 21:30:47
>>148
いやあなたの論理が破たんしてますがな。
私は疎外感など何も感じていない。
だいたいどうしたら、ネットサーフィンや読書で疎外感を感じなきゃ(ry
およそそんな感じで。

150 :デフォルトの名無しさん:2008/06/15(日) 21:31:30
ようするに>>145が言いたいのはちゃんと教えてくれないのは
レスしてる奴が競争相手を減らしたいと考えてるって事でいいんだよな
なら残念ながらレスが帰ってこないのは単純にお前が気持ち悪いからだ

151 :デフォルトの名無しさん:2008/06/15(日) 21:35:08
初心者は初心者でも、人間初心者なんですね。わかります

152 :デフォルトの名無しさん:2008/06/15(日) 21:36:17
よくわからんけど、
どうしてJavaの世界は素人である私を容易に仲間にしてくれない(なかった)の?
っていう話じゃなかったんだっけ。では次の方。

153 :デフォルトの名無しさん:2008/06/15(日) 21:44:16
たまにはこういうキモイ雑魚も、創価学会のマンパワーみたいで楽しかった。

>>86

154 :85:2008/06/15(日) 21:46:07
>>152
最後のおまとめありがとうございます。
まあ端的にいえばそのとおりですね。

他の方は誤解されているようですが、私はこの板で質問したことは一度もないし、ネット上の掲示板にも質問したことはありません。
すべて独学です。
>>85のコメントは形式は質問になってますが、
>>87で補足したように抗議文です。
警鐘を鳴らしたかっただけです。

では、ここからはいつもの流れでどうぞ。

155 :デフォルトの名無しさん:2008/06/15(日) 22:47:50
そんなにデタラメ情報ばかりだったかな、と思って、
>>85が挙げてる例である「Java ダブルクリック 実行」でググってみた。
…マニフェストファイル書いてjar作る正しい手順が、それなりにヒットする。
>>85が何を見て「でたらめだらけ」と結論づけたのか気になる。

ただ、VBと違って、標準の開発環境はこれ、というのがないから、初心者は困るんだろうな。
素のjdkが基本といえば基本だけど、
初心者には(特にVBのようなRADツールの経験があれば余計に)取っつきづらいだろう。
最近じゃ「Eclipseで始めるJava入門」みたいな本も出てるしね。

だから、コマンドプロンプトでの手順示されても
「じゃあウチのEclipse/NetBeans/JBuilderではどうすりゃいいの?」となるんじゃないかな。
その結果「これはつかえない!デタラメに違いない!」と結論づける、と。

そもそも、仮にjdkオンリーで覚えても、最終的にはIDEを使うようになると知ったら、
「あの苦労は何だったのか」と徒労感を覚えるかもしれない(それはそれで大事な経験なんだけど)。
そしたら余計に取っつき悪さを感じるかも。

そういうのが嫌な人は、どれか特定の便利なIDEべったりになるといいかもね。
そういう人にはNetBeansがお勧め。
Webから得られる情報が限られるけど、面倒なネタは避けられると思う。

156 :デフォルトの名無しさん:2008/06/15(日) 23:05:06
>今日で、めでたくく初心者を卒業したっぽいわけですが・・・
>まあでも今日で初心者卒業できたのは、

いきなりそんなこと前提にされても、と何も言えなくて・・・夏

157 :デフォルトの名無しさん:2008/06/15(日) 23:09:35
創価学会は思考盗聴とか集団ストーカーをやってるそうなんで、身の回りには注意しておいたほうがいいですよ。

158 :デフォルトの名無しさん:2008/06/15(日) 23:09:47
すみませんが、教えてほしいことがあります。

「n=OO」という風に表示したいのですが、
表示をさせることができません。
表示をさせるための記述を教えてください。
よろしくお願いします。

public class karimasu{
public static void main(String[] args){
int n=0;
double a[]=new double[100];
a[0]=1.5;
a[1]=2.0;
a[2]=3.0;
System.out.println("1.5");
System.out.println("2.0");
System.out.println("3.0");
for(n=3;n<=100;n++){
a[n]=(-1*a[n-1]) + a[n-2] + a[n-3];
System.out.println(a[n]);
}
}
}


159 :デフォルトの名無しさん:2008/06/15(日) 23:10:36
>>158追記

答えは出ましたが、表示を変えることができないです。

160 :デフォルトの名無しさん:2008/06/15(日) 23:13:56
System.out.println("n=OO");

161 :デフォルトの名無しさん:2008/06/15(日) 23:16:36
>>45で解決しなかったのか

162 :デフォルトの名無しさん:2008/06/15(日) 23:25:41
>>161
あの時の方で
いまだに解決していません(汗

()の中にいろいろといれても
うまく表示できなくて…

163 :デフォルトの名無しさん:2008/06/15(日) 23:29:36
>>160
例えがものすごく悪かったようなので
もう一度書きます

a[1]=1.5
a[2]=2.0
a[3]=3.0 といった表示を連続で出したいのです

164 :デフォルトの名無しさん:2008/06/15(日) 23:31:56
System.out.println("a[" + n + "]=" + a[n]);

165 :デフォルトの名無しさん:2008/06/15(日) 23:35:08
>>158
なぜ>>42をスルーできたのか気になる

166 :デフォルトの名無しさん:2008/06/15(日) 23:37:13
>>164
教えてくださりありがとうございます
おかげさまで出ましたm(_ _)mペコリ

167 :デフォルトの名無しさん:2008/06/15(日) 23:39:00
世の中は不思議に満ちている

168 :166:2008/06/15(日) 23:39:54
と思ったら
まさかのa[0]〜a[2] の表示が出ない!!

169 :デフォルトの名無しさん:2008/06/15(日) 23:40:48
枯れない桜が枯れたのだよ

170 :デフォルトの名無しさん:2008/06/15(日) 23:42:40
>>168
そりゃ、ループが3からだもの
0, 1, 2 は固定なんだから、>>158
System.out.println("1.5");
System.out.println("2.0");
System.out.println("3.0");

System.out.println("a[0]=1.5");
System.out.println("a[1]=2.0");
System.out.println("a[2]=3.0");
に変えればいいと思うよ

171 :166:2008/06/15(日) 23:42:57
ちょっと冷静になって直してきました
無事にできました
ありがとうございます

とりあえず落ち着け俺

172 :166:2008/06/15(日) 23:43:52
>>170
すみません、おかげさまでできました

ちょっと混乱しやすい性質です
パニック映画でまず食われる役が最適なやつですから

173 :デフォルトの名無しさん:2008/06/15(日) 23:48:37
ん?創価学会がなんだって?

174 :デフォルトの名無しさん:2008/06/16(月) 00:02:42
すみませんが、教えてください。
「入力した数字が素数かどうかを調べる」というものなのですが、
下のところまでできたのですが、
肝心の「数字を入れてください」の部分ができません
「input>」と表示した後に数字を入れたいのですが
どうすればいいでしょうか

public class sosuu {
public static void main (String[] args) {
int n = ;

boolean isPrime = true;
for (int i = 2; i <= n - 1; i++)
if (n % i == 0) {
isPrime = false;
break;
}

if (isPrime)
System.out.println(n + " prime number.");
else
System.out.println(n + " not prime number.");
}
}

記述すべきことを教えてくださいませ
よろしくお願いします

175 :デフォルトの名無しさん:2008/06/16(月) 00:05:17
つBefferedReader

176 :デフォルトの名無しさん:2008/06/16(月) 00:08:20
>>176
一応聞きたいのですが、
それ以外の方法はありますでしょうか?
教わったかどうかあやふやですので…

177 :デフォルトの名無しさん:2008/06/16(月) 00:14:20
それ以外だとargsを使う方法かな

178 :デフォルトの名無しさん:2008/06/16(月) 00:16:33
>>177
そっちのほうほうをお願いします
自分でもうまく当てはめようとしたのですが
どうにもうまくいかず。

教えの程、よろしくお願いします

179 :デフォルトの名無しさん:2008/06/16(月) 00:17:16
すみません
ほうが一つ多すぎましたorz

落ち着け私


180 :デフォルトの名無しさん:2008/06/16(月) 00:19:06
あれっ?
自分で作っておいて気づいたのですが
argsを使っていました…

ここからどう変えるのか…

181 :デフォルトの名無しさん:2008/06/16(月) 00:26:52
>>174
>「input>」と表示した後に数字を入れたいのですが

この「後に」というのは条件ではないの?
argsの内容は実行前のコマンドの段階で入力されてしまうんだけど、っていうあたりはわかってるのかな

182 :デフォルトの名無しさん:2008/06/16(月) 00:28:46
多分分かってない
いや>>174よく読まず無責任にargs出した俺が悪いんだが

183 :デフォルトの名無しさん:2008/06/16(月) 00:31:15
>>181
忘れていました(汗
「いつも最初に記述するように」と教わっていたので
最初の2行くらいはろくに考えておらず…

となると>>175の方の表記の方法でしかできませんかね?

184 :デフォルトの名無しさん:2008/06/16(月) 00:32:13
>>182の方…

やはり私の記述はわかりづらいのでしょうか?

185 :デフォルトの名無しさん:2008/06/16(月) 00:33:32
BufferedReaderを習ってないとすると、
まだDataInputStreamのreadLine()で指導している先生だったりするとか、
そのくらいしか思い浮かばない

186 :デフォルトの名無しさん:2008/06/16(月) 00:36:56
>>185
あれ…
その方法は学んだっかな…

何かもっとこうシンプルだったような…

187 :デフォルトの名無しさん:2008/06/16(月) 00:39:26
あとは、例の「IO」みたいなユーティリティークラスを用意していて、
それを専ら使うように指導しているとか

188 :デフォルトの名無しさん:2008/06/16(月) 00:43:25
スキャナーを利用したインプット表示でした

とりあえず手元にあるパソコンでは
スキャナー表示のものを動かすことができませんので
手を加えたものを後日別の場所で動かしてみます

189 :デフォルトの名無しさん:2008/06/16(月) 00:50:34
1.5導入かw
素で使ったことなかったYO

190 :デフォルトの名無しさん:2008/06/16(月) 00:54:54
jdkのバージョンを5.0以上にすれば良いだけじゃないの?

191 :デフォルトの名無しさん:2008/06/16(月) 00:55:14
>>174
>System.out.println(n + " is a prime number.");
>System.out.println(n + " is not a prime number.");

192 :デフォルトの名無しさん:2008/06/16(月) 00:58:30
>>190
jcpadはそれで大丈夫なのかなと

>>191


193 :デフォルトの名無しさん:2008/06/16(月) 00:59:05
## : prime
## : not prime
ならおkかも

194 :デフォルトの名無しさん:2008/06/16(月) 01:05:14
>>193
どのような記述をすればそうなるでしょうか?

195 :デフォルトの名無しさん:2008/06/16(月) 01:06:52
いや、>>191は単に>>174の英語が変ってことでしょ
>>193は形容詞版

196 :デフォルトの名無しさん:2008/06/16(月) 01:13:35
あれっ?
なんだかだんだんおかしな方向に…

表記はこうするように言われているのでこの通りにしております
問題は数字をJCpadのコマンド画面で直接打てないことで…

197 :デフォルトの名無しさん:2008/06/16(月) 01:19:51
コマンドプロンプトから実行する方法は知らないってことね

198 :デフォルトの名無しさん:2008/06/16(月) 01:26:08
>>191
いや、わかった。すまん。
ttp://www.mlab.im.dendai.ac.jp/computer2/while/

199 :デフォルトの名無しさん:2008/06/16(月) 01:26:29
>>197
そうです、はい

素数の式が絡んでくるともう…

200 :デフォルトの名無しさん:2008/06/16(月) 01:28:06
>>198
それのことを言っていたんですかね?
確かに参考にしましたが、うまくできず

201 :デフォルトの名無しさん:2008/06/16(月) 02:30:09
これじゃ学生が可哀想だ。
教師か教科書か教え方が悪い。

202 :デフォルトの名無しさん:2008/06/16(月) 03:33:10
>>33 >>158
よく見たらこれと一緒だな
ttp://pc11.2ch.net/test/read.cgi/tech/1212085079/46

203 :デフォルトの名無しさん:2008/06/16(月) 09:09:44
最近の大学生って頭悪いよね
情報学科卒業してきた子より
高卒で趣味でunixいじってたような子の方ができたりする

204 :デフォルトの名無しさん:2008/06/16(月) 09:35:23
現在、ポーカーのプログラムを作っています
TreeMapを使っているのに、ソートされないのは
やはりソースに問題がありますよね?

205 :デフォルトの名無しさん:2008/06/16(月) 11:10:15
最近の情報学科って大したこと教えてないからな。
その上こんなスレに来る奴なんてデフォで講義ろくに聞いてない&屑講師なんだから当たり前だろ。
そりゃ趣味でlinuxいじってた方が強いわ。

206 :デフォルトの名無しさん:2008/06/16(月) 11:25:17
習うより何とかってことで纏め

207 :デフォルトの名無しさん:2008/06/16(月) 11:50:09
創価大に情報科なんかあったか?

208 :デフォルトの名無しさん:2008/06/16(月) 12:03:20
ルートディレクトリを与えるとそこからツリーを生成するプログラムを作ったのですが、
Linuxと違ってWinではルートが複数あり、また環境によって存在するドライブレターも違うので
全ルートを与えるためにはA~Zまで試してみるくらいしか方法が思いつきません。
今現在存在するルートディレクトリ(C:\,D:\…)を取得する方法ってあるでしょうか?


209 :デフォルトの名無しさん:2008/06/16(月) 12:13:54
>>208
File.listRoots()

210 :デフォルトの名無しさん:2008/06/16(月) 13:13:08
>>209
四苦八苦していたのにこんな便利なstaticメソッドがあったのですか…。
即レスありがとうございます!!

211 :デフォルトの名無しさん:2008/06/16(月) 14:50:40
JNIで外部DLLを呼び出しているんですが
そのDLLでEXCEPTION_ACCESS_VIOLATION (0xc0000005)
を発生した場合、Java側ではtry catchをしても
落ちてしまいます。
なんとか例外としてキャッチできないものでしょうか?


212 :デフォルトの名無しさん:2008/06/16(月) 15:04:19
C側で例外をキャッチする必要があるのでは
でJavaの例外として投げ直す

213 :デフォルトの名無しさん:2008/06/16(月) 17:21:26
>>212
ありがとうございます。
CでDLLのEXCEPTION_ACCESS_VIOLATION をキャッチできるか
聞いてきます。

214 :デフォルトの名無しさん:2008/06/16(月) 17:47:14
ArrayListではなく、エクスプローラみたいなイメージのツリーの機能を実装したコレクションクラスや
それに近いクラスはあるでしょうか。JDK1.6です。JDKでなくても、その他ライブラリであれば合わせて教えていただけないでしょうか。

215 :デフォルトの名無しさん:2008/06/16(月) 18:23:05
文字列「C:\」を「C:」に変換したくて
String path="C:\\";
path.replaceAll("\\","");
とやったのですが、java.util.regex.PatternSyntaxExceptionが出ました。
バックスラッシュを表したくてエスケープさせて指定したつもりが、
どこがおかしいのでしょうか?

216 :デフォルトの名無しさん:2008/06/16(月) 18:23:55
>>214
JTree

217 :デフォルトの名無しさん:2008/06/16(月) 18:33:24
>>216
ありがとうございます。
これってawt用ですが、できれば親と子を持つという概念だけのコレクションクラスはないですかね。

218 :デフォルトの名無しさん:2008/06/16(月) 18:40:02
>>215 [\\\\]->[\\]

219 :デフォルトの名無しさん:2008/06/16(月) 18:41:49
>>217
それくらい自分で作れ

220 :デフォルトの名無しさん:2008/06/16(月) 19:00:37
>>217
コレクションでツリーなんて良くあることなのに、高級言語の1.6にしてもないなんてね。そのくせ余計なクラスばかり多い

221 :デフォルトの名無しさん:2008/06/16(月) 19:21:52
>>218
ありがとうございます。
しかし何故\\\\になるのでしょうか?
replaceを使うと普通に\\で大丈夫なのに。

222 :デフォルトの名無しさん:2008/06/16(月) 19:25:16
>>217
ない。

http://bugs.sun.com/view_bug.do?bug_id=4094377
evaluationによれば、Doug Lea御大がC++で実装した経験から、
汎用かつ軽量でパフォーマンスに優れた実装を作るのが難しいからだってさ。

223 :デフォルトの名無しさん:2008/06/16(月) 19:26:34
>>221
ttp://java.sun.com/javase/ja/6/docs/ja/api/java/lang/String.html
> String replace(CharSequence target, CharSequence replacement)
> リテラルターゲットシーケンスに一致するこの文字列の部分文字列を、指定されたリテラル置換シーケンスに置き換えます。
> String replaceAll(String regex, String replacement)
> 指定された正規表現に一致する、この文字列の各部分文字列に対し、指定された置換を実行します。


224 :デフォルトの名無しさん:2008/06/16(月) 19:46:06
>>223
ここから考えると、
\を表す文字列で表したい→\\
\を正規表現で表したい→\\\\
ってことですよね。

なんか考えているうちにこんがらがってきましたが、
コンパイル時のエスケープと正規表現のエスケープで二重にエスケープする
必要があるってことでしょうか??


225 :224:2008/06/16(月) 19:47:09
× \を表す文字列で
○  \を文字列で

226 :デフォルトの名無しさん:2008/06/16(月) 19:57:44
>>224
ttp://java.sun.com/javase/ja/6/docs/ja/api/java/util/regex/Pattern.html
>たとえば、文字列リテラル "\b" は、正規表現と解釈されると、バックスペース 1 文字とマッチされます。 しかし、"\\b" は単語境界とマッチされます。

227 :デフォルトの名無しさん:2008/06/16(月) 20:29:46
JListでListCellRendererを使いアイコンをセットする際に、
システムで設定されているアイコン(htmlならIEやFxのアイコンのような)を表示したいのですが、
Javaではこういう情報を取得する方法はあるでしょうか?


228 :デフォルトの名無しさん:2008/06/16(月) 20:38:39
知識不足によりはまっているのでご教授願えればと思います。

現在、Apache + Tomcat の環境で、SSLによるWebアプリケーションを構築しています。
その中でAppletも併用しているのですが、このAppletに証明書を付けて配布したいと考えています(AppletからWebサービスを呼び出す)

Apacheにopensslで作成したキーを登録し、WebアプリケーションやAppletのダウンロードのSSL化はできました。
ところが、そこで作成した証明書をkeytool で登録し、AppletのJarに付与しようとするとエラーとなります(認証チェインがルート証明書に届いていない云々)

そこでkeytoolでキーと証明書を作ればと思ったのですが、keytoolでは証明書はエクスポートできるのですが、鍵は抽出できません。

本番環境では正式なCAを通した鍵と証明書があるのですが、開発環境でオレオレ認証でApacheと署名Jarを同時に行うにはどうすれば良いでしょうか?

229 :218:2008/06/16(月) 21:39:29
String r;
r = path.replaceAll("[\\\\]",""); // Compile -> "[\\]"
r = path.replaceAll("\\\\",""); // Compile -> "\\"
r = path.replace("\\",""); // Compile -> "\"
コンパイルすると、2つ重なる¥が1つの¥になるので、
逆に1つの¥を表すためには¥を2つ重ねる必要がある。(C/C++も同じ。)
その上で、正規表現の¥自身を表すときは¥を2つ重ねる必要がある。
正規表現で"\"や"[\]"はおかしい。
コンパイル後、String内の¥¥bは2バイト、一方¥bは1バイト文字になる。

230 :デフォルトの名無しさん:2008/06/16(月) 21:52:01
>>227
JFileChooser で使ってるサイズしか取れないけど。
javax.swing.filechooser.FileSystemView#getSystemIcon(java.io.File)

231 :デフォルトの名無しさん:2008/06/16(月) 22:06:06
>>230
こんなのあったのですか、ありがとうございます!

232 :デフォルトの名無しさん:2008/06/16(月) 23:29:30
>>228
オレオレCAの証明書をJREのルート証明書群に追加すればいいんでない?
(jre/lib/security/cacerts)


233 :デフォルトの名無しさん:2008/06/17(火) 14:06:02
Javaで開発する際に、プロジェクトの構成というか、ディレクトリの整理作法がわからないんだけど
たとえばこんなのとかので
trunk
 +-/build/build.xml              #ビルドに関するもろもろ
 +-/src/net/2ch/pc11/Hoge.java     #ソース
 +-/tests/net/2ch/pc11/HogeTest.java #テスト用
参考になるウェブサイトとか公開されているsvnで秀逸なのを教えてくんろ

234 :デフォルトの名無しさん:2008/06/17(火) 14:39:42
apacheでは参考にならないと?

235 :デフォルトの名無しさん:2008/06/17(火) 16:03:25
nextした数を保持するiteratorクラスってありますか?

236 :デフォルトの名無しさん:2008/06/17(火) 16:16:02
それくらい作れよ

237 :デフォルトの名無しさん:2008/06/17(火) 17:15:21
>>235
つListIterator

238 :デフォルトの名無しさん:2008/06/17(火) 17:50:28
一般には>>236かな。反復回数の実績をカプセル化したいんでしょ。

239 :デフォルトの名無しさん:2008/06/17(火) 19:06:42
Hibernateで、エンティティとして定義しているクラスに継承をしているものがあるとクエリ結果がダブってuniqueRequestでエラーになる、、
ビューを定義していたから楽しようとして落とし穴にはまった、、

継承せずにベタに書くと解決しました。

継承したままうまくクエリする方法ってないでしょうか。

240 :デフォルトの名無しさん:2008/06/17(火) 19:41:06
音楽を鳴らしたいが、シンボルが見つかりませんというエラーがでるんだ。
何が必要なのかおしえてくれ〜〜〜

play("./burst.wav");//爆発音声

241 :デフォルトの名無しさん:2008/06/17(火) 20:07:08
>>240
参考資料をよく読むんだッ

242 :デフォルトの名無しさん:2008/06/17(火) 20:10:43
int x = 2345;
int y = 1585;

xの百の位の3とyの十の位の8を
抜き出して演算処理したいのですが
どのようにしたらいいですか?心優しい方助言をば・・

初心者でごめんですm(_ _)m

243 :デフォルトの名無しさん:2008/06/17(火) 20:13:36
>>242
123わる10は、12あまり3

244 :デフォルトの名無しさん:2008/06/17(火) 20:36:27
>>240
アプレットのplayメソッドに渡すのは文字列で表されたURLじゃなくて、
「URL」というクラスのオブジェクト。

play getCodeBase
でぐぐるとわかるよ。

245 :デフォルトの名無しさん:2008/06/17(火) 20:45:16
>>123わる10は、12あまり3

わかりそうで・・・わかりませんOrz
具体的にコードで操作するにはどうすれば int x = 2345; の
百の位の 3 抜き取れますか?

タイトルに・・初心者大歓迎って書いてあったから・・ごめんなさい

246 :デフォルトの名無しさん:2008/06/17(火) 20:51:37
ComponentのcreateImageで戻ってきたImageをBufferedImageを変更したいのですが、
どうすればよいでしょうか?

247 :デフォルトの名無しさん:2008/06/17(火) 20:53:40
Tomcat 6上で動くアプリを開発してます。
サーブレットのユニットテストを書こうと思っていて、
ちょっと調べた所HttpUnitとCactusってのが有名っぽいので
どちらかを使おうと思ってます。、

それぞれの長所短所とか教えて下さい。

248 :デフォルトの名無しさん:2008/06/17(火) 20:55:14
>>245-246
こういうのって良くあるTIPだと思うんですけど、そういうサイトとご存知ないですか?

249 :デフォルトの名無しさん:2008/06/17(火) 20:56:46
>>245
x=String.valueOf(2345);
x.charAt(2);


250 :デフォルトの名無しさん:2008/06/17(火) 21:02:15
>>248
すみません。いろいろ調べたのですが。InputStream見たいにデコレータ形式だと思ってjavadocも見たのですが、
コンストラクタにもなくて。

251 :デフォルトの名無しさん:2008/06/17(火) 21:02:28
>>246
PixelGrabberでピクセル値とってきてBufferedImageに書き込むとかは?

252 :245:2008/06/17(火) 21:12:56
どこかこういうTIPが載っているサイトありましたら教えてください
初めてiアプリ自作してるのでわからないことだらけ・・ですOrz

253 :デフォルトの名無しさん:2008/06/17(火) 21:16:17
>>245
整数の商、整数の剰余の出し方はさすがにわからないとおかしいと思ったんだけど。。
123 / 10 == 12
(123 / 10) % 2 == 2
123の十の位は2。

254 :デフォルトの名無しさん:2008/06/17(火) 21:16:38
やべ、何だ % 2 ってw
% 10 ね

255 :デフォルトの名無しさん:2008/06/17(火) 21:19:51
>>245
いえ、大歓迎とまでは

256 :デフォルトの名無しさん:2008/06/17(火) 21:27:47
初心者っつーか
ちと、質問がある 誰か教えてくださいまし

俺はインターネットファイルを取り出して
自分のPCにディレクトリごとにフォルダを作ってコピーし
オフライン時にこのように模擬サイトを作って見るんだが

javaアプレットが入ったサイトだと、そのファイルを取り出せずに
仕方なくjavaなしのオフラインサイトを見ることになるんだが
どうやったら、javaアプレットを動作させる模擬サイトを作れるか教えてくださいまし


257 :デフォルトの名無しさん:2008/06/17(火) 21:36:30
>>233
Pragmatic Starter Kitのどれか(たぶんVersion ControlかAutomation)に載っ
てるのがひとつの参考にはなると思う。

訳は↓
達人プログラマー―ソフトウェア開発に不可欠な基礎知識 バージョン管理/ユニットテスト/自動化
http://www.amazon.jp/dp/475614599X

まぁ立ち読みしてみてくれい。


258 :245:2008/06/17(火) 21:45:12
>>253
ありがとぅ><

>>255
大歓迎・・は、してなかったですねOrz



259 :デフォルトの名無しさん:2008/06/17(火) 21:46:05
>>256
アプレットがどのファイルを使うか、というのは基本的にHTML上のリンクとして現れないから、
アプレットの中身を分析するとか、そういうツールを調達するとかしないとダメな場合が多いと思われ。

260 :デフォルトの名無しさん:2008/06/17(火) 21:48:43
いや、JREのキャッシュから復元できたりするのか?やったことないけど

261 :256:2008/06/17(火) 21:57:17
>>259>>260
どもども、すいませんです
プログラミングとしての質問でなくて肩身狭いっす><
java自体仕組みが分かってないので 専門の方にはバカっぽい質問でしょうが、

その、俺が復元したいサイトはjavaアプレットを使って中学数学を教えているサイトでして、
そのアプレットが動作しないと、文章や画像があってもサイトとしての意味がないものに
なってしまいます><

ソースを見るとどうやら、拡張子がclassのファイルがjavaアプレットだと思うのですが(それって当たってます?)
どうも、キャッシュにないです><

どうにか復元したいので、教えてください;;

262 :デフォルトの名無しさん:2008/06/17(火) 22:06:27
Appletはオフラインよりオンライン(ネット上のアプリ)を想定してるので、素直につなげていた方がいいですよ。
出来なくも無いですけど、アレコレやるの面倒でしょ
何なら作者に連絡取るとか

263 :デフォルトの名無しさん:2008/06/17(火) 22:07:49
>>261
>javaアプレットを使って中学数学を教えているサイト

ちょっと設定に無理がある

264 :デフォルトの名無しさん:2008/06/17(火) 22:12:01
参照渡しの概念って厳密にはどんな定義なんですか?
今まで自分は配列を参照する変数やオブジェクトを参照変数を引数で渡すことが
参照渡しだと思ってたのに、Cの本なんかを読むとどうやら違うみたいなので。

265 :デフォルトの名無しさん:2008/06/17(火) 22:56:08
厳密な定義などはないけど、C的にはメモリ上のアドレスの値を渡すこと

266 :デフォルトの名無しさん:2008/06/17(火) 23:00:31
javaでいう参照渡しとC++でいう参照渡しは別モノ

267 :デフォルトの名無しさん:2008/06/17(火) 23:05:41
>>258
オレの答えたcharAtじゃご不満なわけか

268 :デフォルトの名無しさん:2008/06/17(火) 23:11:32
>>265
Cに参照渡しはない

269 :デフォルトの名無しさん:2008/06/17(火) 23:12:58
FORTRANの引数やC++の参照型の引数は純粋な参照渡し。
Cのはポインタ渡し。

270 :デフォルトの名無しさん:2008/06/17(火) 23:13:14
用語は違うがあるけど?
Cやったこと無いくせにに、適当なこと言う言うな

271 :デフォルトの名無しさん:2008/06/17(火) 23:14:51
Cのはポインタの値渡し。
参照渡し使ってる言語をちゃんと知ってるなら
ポインタ渡しが参照渡しなんて口が裂けても言えないはず。

272 :デフォルトの名無しさん:2008/06/17(火) 23:16:28
>>265

273 :デフォルトの名無しさん:2008/06/17(火) 23:18:07
>>267
たぶんこのjavaスレは呪われてんだろ

274 :デフォルトの名無しさん:2008/06/17(火) 23:18:23
多重継承とか参照渡しとか何時まで釣れるんだよw

275 :256:2008/06/17(火) 23:18:54
>>262,263
やっぱりサイト主に連絡しないとですか…
復元してるなんて、、言って大丈夫なのか心配です、、

いい方法があったら、教えてください。 
場違いを感じてきたので、ロムりながら勉強します。


アプレットは
作図の手順をクリックすると順番に線が現れるやつとか
比例反比例のグラフが点が多くなってゆき最後に線になる奴とか

なんかフラッシュでもできそうなやつです…


276 :デフォルトの名無しさん:2008/06/17(火) 23:20:20
>>264
「変数」に関する参照渡し(参照呼出し)はできない、と言っていい。
http://javafaq.jp/S012.html#S012-21

Cの場合、「参照による変数渡し」のような文法的概念はないけど、
変数への参照を明示的に渡すことによってほぼ同等のことができるという感じか。

277 :デフォルトの名無しさん:2008/06/17(火) 23:21:30
>>275
初めの質問のときとだいぶ態度が違うけど、何で?

278 :デフォルトの名無しさん:2008/06/17(火) 23:22:54
>>272
仮引数の値をコピーして実引数に渡すのが値渡し。
仮引数に対する操作が(可能なら)実引数に及ぶのが参照渡し。
厳密に定義されています。

ポインタ渡しは単に値をコピーするだけなのであくまで値渡し。
参照渡しのエミュレートでしかありません。
残念でした。

279 :256:2008/06/17(火) 23:27:14
前スレ読まず、ただ教えてくれ〜の気持ちが強くて
ちょっと強気に言ってました。。。  気に障ったらごめんなさい。。

すげぇ場違いだったと今反省してます;;
オフラインで使用可能な方法がありましたら、よろしくです。
id表示ありませんがすべて自分ですのでよろしく。


280 :デフォルトの名無しさん:2008/06/17(火) 23:30:36
>>278
はぁ?

281 :デフォルトの名無しさん:2008/06/17(火) 23:33:42
>>279
十分教えてもらったのにまだ教えてもらいたいなどと考えてるし、
たぶん君が願っている事はもうかなわないと思う。

282 :デフォルトの名無しさん:2008/06/17(火) 23:34:08
まあなんていうか、「厳密には参照渡しじゃねーよ」というものも、
「実質的にはそーじゃねーか」とか言われてるね、みたいな空気を感じるあたりで手を打たないかw

283 :256:2008/06/17(火) 23:38:02
279
あ、前スレじゃなく このスレを読まず 
いきなり質問してしまいましたが、
レス入れていただいた方ありがとうございます。

では、<(__)> 

284 :デフォルトの名無しさん:2008/06/17(火) 23:38:06
そうやって甘やかすから
void foo(int *p) { p = malloc(sizeof(int)); }

int *p;
foo(p);
free(p);
とかして、ポインタに代入して参照渡しにしたのに
何かエラーになりますとか言う奴が現れるんだろ・・・。

285 :デフォルトの名無しさん:2008/06/17(火) 23:41:55
Cをちゃんと勉強してからジャヴァやるもんじゃないですか?普通は

286 :デフォルトの名無しさん:2008/06/17(火) 23:42:05
>>256
はいさようなら

287 :デフォルトの名無しさん:2008/06/17(火) 23:43:36
Java の引数も値渡しだな。

288 :デフォルトの名無しさん:2008/06/17(火) 23:45:20
>>283
個人的な意見で申し訳ないが、なんかアパマン・ショップの物件案内の社員(DQN)と似てるんだがw
やっぱりDQNはどの分野でもDQNであって、決してそのようなDQNに期待してはいけないのだろうかといつも悩んでいるんだけど、誰か教えてくれませんか?

289 :264:2008/06/17(火) 23:47:24
たくさんのレスありがとうございます。
まだモヤモヤしてるけど雰囲気は掴めました。
CもJavaも基本は値渡しだけどポインタとか使っちゃうと似た感じにできちゃうけど
でもそれは厳密には参照渡しじゃないぜ
って感じですね
面白そうだから純粋な参照渡しを仕様としてる言語を勉強してみます

290 :デフォルトの名無しさん:2008/06/17(火) 23:47:30
何か質問者も回答者も頭おかしいのがちらほら増え始めたな
>>288はそんな質問ここでして何がしたいんだ

291 :デフォルトの名無しさん:2008/06/17(火) 23:48:23
毎度のことながら値渡し/参照渡しで揉める理由が分からん

C, Javaには参照渡しはない。C++, C#にはある。

というだけの話しだろう

292 :デフォルトの名無しさん:2008/06/17(火) 23:48:40
>>289
正確に理解してくれて嬉しいぜ。

293 :デフォルトの名無しさん:2008/06/17(火) 23:49:50
>>289
というか、あなたの理解は根本的に間違ってますね。
少しCをかじったことあるみたいですけど・・

294 :デフォルトの名無しさん:2008/06/17(火) 23:50:52
>>293
^^;

295 :256:2008/06/17(火) 23:52:20
・・・すいません。失礼します。

296 :デフォルトの名無しさん:2008/06/17(火) 23:55:05
>>256
>>286
おいでくさいまし

297 :デフォルトの名無しさん:2008/06/17(火) 23:55:22
C++でもint& b = a;を「参照」という言葉で表現するという罠があるし、
まあいいんじゃねそんな世界

298 :デフォルトの名無しさん:2008/06/17(火) 23:57:04
値渡しor参照渡しってのは、呼び元に影響を与えるかどうかだ。
int[] data = new data[5];
この変数dataには実体ではなく配列データが保存されたメモリを指す
だからf(data)と渡してf関数の中でdataをいじれば呼び元の配列に影響を及ぼす
よって参照渡しである。
OK?

299 :デフォルトの名無しさん:2008/06/17(火) 23:57:09
いや、それは参照で合ってるだろ。
b に対する操作が a に及ぶんだから。

300 :デフォルトの名無しさん:2008/06/17(火) 23:58:20
>>298
data の参照先に影響を及ぼすが
data には影響を及ぼさない。
仮引数をいくらいじろうが、data の中身が急に int[10] に変わることは無い。
よって値渡し。
OK?

301 :デフォルトの名無しさん:2008/06/17(火) 23:59:32
>>298
引数に指定した変数そのものを指すのが参照渡し
実体がどうとかじゃなくて,そういう風に見せる言語機能

302 :デフォルトの名無しさん:2008/06/18(水) 00:00:39
>>300
例えば関数の中でdata[0] = 1 と代入したら
呼び元のdataに入ってる配列の値も変わるんですが。
意味分かってる?

303 :デフォルトの名無しさん:2008/06/18(水) 00:00:50
>>256みたいな人をここでバカにすると、今度は>>256みたいな人が他のところでjava技術者を馬鹿にするから、そういう事はやっちゃダメ!!

304 :デフォルトの名無しさん:2008/06/18(水) 00:01:40
298 = 馬鹿
ってことぐらいしか分からない

305 :デフォルトの名無しさん:2008/06/18(水) 00:01:46
>>302
分かってるに決まってるだろwww

306 :デフォルトの名無しさん:2008/06/18(水) 00:02:12
盛り上がって参りました(棒読み)

>>299
あれは参照渡しに使えるけど、参照そのものではない

307 :デフォルトの名無しさん:2008/06/18(水) 00:02:47
もうツマンネー自演はいいから

308 :デフォルトの名無しさん:2008/06/18(水) 00:04:13
>>288
をこのスレの方々はどう考えてるのか教えていただけないでしょうか・・

309 :デフォルトの名無しさん:2008/06/18(水) 00:05:04
void 参照渡し(ref int[] data) { data = new int[] { 4, 5 }; }

int[] a = { 1, 2, 3 };
参照渡し(ref a);
出力(a);//{4, 5}が出力される

C#だとこんな感じ

310 :デフォルトの名無しさん:2008/06/18(水) 00:05:33
ポインタの話と同様、
void foo(int[] hoge) { hoge = new int[10]; }

int[] data = new int[5];
foo(data);
とやっても data が参照してるのは new int[5] のままであって new int[10] ではない。
Java の引数が本当に参照渡しなら、data は new int[10] を指すようになる。

311 :256:2008/06/18(水) 00:08:05
一応、ロムしてましたが、

アプレットはオフラインはできない
という答えを受け取って消えます。

さようなら。

312 :デフォルトの名無しさん:2008/06/18(水) 00:08:13
>>309>>310 の差をきちんと理解し実感していれば
Java が参照渡しなんて口が裂けても言えなくなる。
「Java が参照渡し」 という言葉は初心者にいらぬ誤解を与える邪悪な言葉だ。

313 :デフォルトの名無しさん:2008/06/18(水) 00:09:48
いつの時代でも、Cのポインタを理解するのは鬼門ってこと
char*manko=&tinpo

314 :デフォルトの名無しさん:2008/06/18(水) 00:12:21
>>310
それってdataはnew int[10]になるんじゃないの?

315 :デフォルトの名無しさん:2008/06/18(水) 00:12:59
>>312
じゃ、何渡しがいいかな?

316 :デフォルトの名無しさん:2008/06/18(水) 00:13:34
「オブジェクトの参照値渡し」とか?w

317 :デフォルトの名無しさん:2008/06/18(水) 00:14:07
>>315
ポインタ渡しでいいよ。
ぬるぽとか言うくらいだし。

318 :デフォルトの名無しさん:2008/06/18(水) 00:14:30
一応、ポインタを全快に理解してないと、GCを実装できないんだが・・

319 :デフォルトの名無しさん:2008/06/18(水) 00:14:48
お前らが頭いいのは分かったが
何言ってんのかがさっぱり分からん!

320 :デフォルトの名無しさん:2008/06/18(水) 00:15:48
>>314
ならないよ

321 :デフォルトの名無しさん:2008/06/18(水) 00:15:54
>>316
あまり厳密に突っ込みを入れたくは無いだが、それは「インスタンスの」じゃないの?

322 :デフォルトの名無しさん:2008/06/18(水) 00:17:34
>>314 みたいなのが出てくるから
Java は参照渡しとか言うのは邪悪としか言いようが無いんだよな。

323 :デフォルトの名無しさん:2008/06/18(水) 00:19:12
Javaやる前にCを勉強してください。それも鬼門とか超難関といわれる「ポインタ」(と参照)についてしっかりやっておかないとついてこれなくなります。

324 :デフォルトの名無しさん:2008/06/18(水) 00:20:57
>>315
参照の値渡しでいいんじゃね?

325 :デフォルトの名無しさん:2008/06/18(水) 00:21:17
Cに参照はないし
別にポインタは難関でもなんでもない。

326 :デフォルトの名無しさん:2008/06/18(水) 00:23:45
アパマンの奴はDQNしかない。「とーちゃん。派遣面接受かったみたいだよー」のあの派遣会社のCMと同程度のDQNしかいない。

327 :デフォルトの名無しさん:2008/06/18(水) 00:33:46
>>326
なにいってんだ?同じ人間だし、確かに変なやつだとしてもな、どこかにいいところがあるだろ。
そういうところを互いに評価しないといけないんじゃないのか?

328 :デフォルトの名無しさん:2008/06/18(水) 00:38:13
>>321
http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#12028
> An object is a class instance or an array.

だから「オブジェクト」のほうが正確なんじゃないかな?

329 :デフォルトの名無しさん:2008/06/18(水) 00:44:08
いや、Java的にはね

330 :デフォルトの名無しさん:2008/06/18(水) 01:00:22
>>328
たぶん君もアパマンのDQNと同等と思ったけどね、そう噛み付きなさんなw

331 :デフォルトの名無しさん:2008/06/18(水) 01:03:15
「アパマン」「DQN」がマイブームの香具師がいるな

332 :デフォルトの名無しさん:2008/06/18(水) 01:03:53
オレ的解釈だと、C的にはオブジェクトの」、Java的にはインスタンスの」かな。
オブジェクトの単語自体があいまだからなんともいえないけど。>>328の引用は単なる君が権威主義(英語とかSUNとか)が好きなだけじゃないのかな?

333 :デフォルトの名無しさん:2008/06/18(水) 01:05:57
よくわからんw

334 :デフォルトの名無しさん:2008/06/18(水) 01:09:26
>>328は権威にあこがれるDQNってことじゃないの?

335 :デフォルトの名無しさん:2008/06/18(水) 01:17:09
>>328,331,333
食わず嫌いはいけませんね。
そうなってしまったのは、あなたの人格が歪んでるからでしょうか?

336 :デフォルトの名無しさん:2008/06/18(水) 01:55:47
権威も何も、Sunが作った言語なんだから、
Sunの見解を参照するのは当然でしょ。

337 :デフォルトの名無しさん:2008/06/18(水) 02:26:01
英語の文脈で使われるobjectと日本語の文脈で使われるオブジェクトは違うでしょ
javaを使うならJLSは当然第一に参考にすべき文書だけど日本語に訳する時に直訳はいかんよ

338 :デフォルトの名無しさん:2008/06/18(水) 06:28:49
>>268 >Cに参照渡しはない
>>270 >用語は違うがあるけど?
Javaでいう参照渡しはC/C++でいうアドレス渡し

ところで、
>>270 >Cやったこと無いくせにに、適当なこと言う言うな
??

339 :デフォルトの名無しさん:2008/06/18(水) 09:11:17
toStringで任意の型のオブジェクトを文字列に変換することができますが、
逆に、Type型の値と文字列からオブジェクトを作成するような枠組みは無いのでしょうか?

よろしくお願いします。

340 :デフォルトの名無しさん:2008/06/18(水) 10:00:02
>>339
意味がよく判らないんだけど、
 "int", "1" => int で 1
 "float", "1" => float で 1.0
みたいな感じ?
で、それは既存の組み込み型だけでいいの?

341 :デフォルトの名無しさん:2008/06/18(水) 10:32:46
sprintf() の 逆なら atoi()
static Integer Integer.valueOf(String s)
<指定された String の値を保持する Integer オブジェクトを返します。>
Type型と文字列から、じゃなくて? 表現は正確に。

342 :デフォルトの名無しさん:2008/06/18(水) 11:56:44
Cのscanf()に相当する関数が欲しいって話かな。

343 :デフォルトの名無しさん:2008/06/18(水) 12:15:23
スクリプト系言語のeval相当のものが欲しいようにも読める

344 :デフォルトの名無しさん:2008/06/18(水) 12:34:41
そこでJson-libですよ。

345 :339:2008/06/18(水) 13:50:08
説明がわかりにくくてすみません。

Object a = fromString(java.util.Date.class,"2008/1/1");
System.out.println(a.getClass()); // class java.util.Date
System.out.println(a); // Tue Jan 01 00:00:00 JST 2008

Object b = fromString(Integer.class,"10");
System.out.println(b.getClass()); // class java.lang.Integer
System.out.println(b); // 10

上のfromStringのように、文字列と変換後の型を指定すると、
文字列を指定した型のオブジェクトに変換できるような物が欲しいのです。

.NETのTypeConverterのように、
既存の組み込み型や標準ライブラリで定義された型に対して使用でき、
さらに、自分で作成したクラスに対する動作も指定できるような枠組みがあればよいのですが
このようなものはありませんでしょうか?

346 :デフォルトの名無しさん:2008/06/18(水) 13:51:30
JDK6でrhinoでevalすればいいだろ

347 :346:2008/06/18(水) 13:53:03
>>343-344あてね

348 :デフォルトの名無しさん:2008/06/18(水) 13:57:57
Class.forName()

349 :デフォルトの名無しさん:2008/06/18(水) 13:59:30
>>339
「toStringの逆」という変換が一般には無理だとわかった上で?
具体例をどうぞ

350 :デフォルトの名無しさん:2008/06/18(水) 13:59:51
やべ遅れたw

351 :デフォルトの名無しさん:2008/06/18(水) 14:32:23
リフレクションで出来そうじゃない?

352 :デフォルトの名無しさん:2008/06/18(水) 14:35:23
よくわからんけど、インターフェースが統一されないとやなのか

353 :デフォルトの名無しさん:2008/06/18(水) 15:20:13
いやいや、単なるC#宙でしょ

354 :デフォルトの名無しさん:2008/06/18(水) 16:00:56
自分で作ればいいんじゃない
Object fromString(Class c, String s) {
if (c == Date.class) return DateFormat.getInstance().parse(s);
if (c == Integer.class) return Integer.parseInt(s);
if (c == Float.class) return Float.parseFloat(s);
以下略
}

355 :デフォルトの名無しさん:2008/06/18(水) 16:52:10
toStringが返す文字列からオブジェクトを復元することは汎用的には無理

356 :デフォルトの名無しさん:2008/06/18(水) 17:42:53
Object#toString()ってサブクラスの実装依存じゃなかったっけ?

357 :デフォルトの名無しさん:2008/06/18(水) 18:41:28
うん。というか、
Object#toString()がオーバーライドされていないと、
クラス名とハッシュ値しか返ってこないから、
インスタンスの内部状態を知ることができない。

358 :デフォルトの名無しさん:2008/06/18(水) 18:58:04
ttp://msdn.microsoft.com/ja-jp/library/ayybcxe5(VS.80).aspx
Windows フォームのプログラミング
方法 : 型コンバータを実装する

ここなんかを見ると、GUI要素のプロパティをいじる時に文字列を経由したりするよねっていう感じの
用途がかいま見える

359 :デフォルトの名無しさん:2008/06/18(水) 19:02:03
TypeConverterってそういうもんだよ
実装したらメタデータとして型やプロパティに指定しといてリフレクションで取ってくるの

360 :デフォルトの名無しさん:2008/06/18(水) 19:39:10
これは邪道かな(あとPnutsですまん)
pe = class java.beans.PropertyEditorManager::findEditor(Integer.TYPE)

pe.setAsText("100")
println(pe.value - 1) // 99

pe.value = 200
println("200".equals(pe.getAsText())) // true

361 :デフォルトの名無しさん:2008/06/18(水) 20:27:12
だからそれならrhinioで出来るって

362 :デフォルトの名無しさん:2008/06/18(水) 20:36:38
このスレでは、String.charAtやClass.forNameじゃ不満なのか?
もう答えるつもりないし、どうでもいいけど

363 :デフォルトの名無しさん:2008/06/18(水) 20:45:44
>>361
ぐぐったら前立腺マッサージャーが出たYO

364 :デフォルトの名無しさん:2008/06/18(水) 21:44:13
>>362
Class.forNameは外していると思うけど、String.charAtはまあまあかな。桁数チェックにもなるし。

365 :デフォルトの名無しさん:2008/06/18(水) 22:09:43
だれだ、おまえ?

366 :デフォルトの名無しさん:2008/06/18(水) 22:50:54
>>364
ここではあなたの評価を気にしながら質問に答えなければいけないのですか?

367 :デフォルトの名無しさん:2008/06/18(水) 23:14:03
>>366
どこからそういう疑問が湧いたのですか?

368 :デフォルトの名無しさん:2008/06/19(木) 00:12:43
C言語でいう
int data = 3;
printf("%3d",data);
のように右寄せするメソッドご存じないでしょうか?

369 :デフォルトの名無しさん:2008/06/19(木) 00:17:55
>>368
System.out.print(String.format("%3d", data));


370 :デフォルトの名無しさん:2008/06/19(木) 00:18:33
>>368
System.out.printf

371 :デフォルトの名無しさん:2008/06/19(木) 00:18:54
または
System.out.format("%3d", data);


372 :デフォルトの名無しさん:2008/06/19(木) 00:19:10
ごめん,かぶった.

373 :デフォルトの名無しさん:2008/06/19(木) 00:19:32
System.out.printf();

改行は ¥n ではなく %n を使う。


374 :デフォルトの名無しさん:2008/06/19(木) 00:29:23
>>369-373
迅速にお答えいただきありがとうございました。

375 :デフォルトの名無しさん:2008/06/19(木) 01:13:23
1.4系だったという落ちですね。わかります。

376 :デフォルトの名無しさん:2008/06/19(木) 02:40:00
質問です
開発は windowsXP+Eclipseで行い、jarファイルを生成
実行は Solaris10 にて行いました
実行時にエラーとして
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Layout
at Cardget.<clinit>(Cardget.java:40)
と出てしまったのですが、ドコから調べればよいかヒントなど
ありませんでしょうか

実行方法は $ java -cp zgss_core.jar Cardget としました


377 :デフォルトの名無しさん:2008/06/19(木) 02:59:14
log4jをクラスパスに通せ

378 :デフォルトの名無しさん:2008/06/19(木) 04:00:33
うむ

379 :デフォルトの名無しさん:2008/06/19(木) 04:29:15
if(test[s]<test[t]){
int tmp=test[t];
test[t]=test[s];
test[s]=tmp;
}

if(test[s]<test[t]){
int tmp=test[s];
test[s]=test[t];
test[t]=tmp;
}
はどっちを書いてもいいの?


380 :デフォルトの名無しさん:2008/06/19(木) 04:35:39
どこに

381 :デフォルトの名無しさん:2008/06/19(木) 08:01:31
そのソースだけだと、どっちでもいいとしか言えんがなw

382 :デフォルトの名無しさん:2008/06/19(木) 09:17:15
TraverseEventってなに?
マウスイベントとか、キーイベントで、ででてくるんだけど、
イマイチ英和辞典の訳じゃ掴めない。

trav・erse ━━ vt. 横切る, 横断する; 通過する; あちこち動く;

383 :デフォルトの名無しさん:2008/06/19(木) 11:25:27
質問させてください。
Mapの値を降順に表示したいんです。現在下のような記述をしてるのですが、
どうも最善な気がしません。これよりマシな方法をごぞんじなら教えてください。
Mapのインスタンス名はmapです。

Set<Integer> ts = new TreeSet<Integer>();
ts.addAll(map.values());

List<Integer> order = new ArrayList<Integer>();
order.addAll(ts);

for(int i= order.size()-1; i>=0; i--){
int num = order.get(i);

for(Entry<String, Integer> en:map.entrySet()){
String key = en.getKey();
Integer value = en.getValue();
if(value == num){
StringBuilder sb = new StringBuilder("Products: ");
sb.append(key).append(": Number: ").append(value);
System.out.println(sb.toString());
}
}
}

384 :デフォルトの名無しさん:2008/06/19(木) 11:32:59
TreeSetの値を出力すればいいのではなくて?

385 :デフォルトの名無しさん:2008/06/19(木) 11:54:42
>>383
値の降順にソートするコンパレータを設定したTreeMapにmapをputAllして、
そのTreeMapから順番に取り出せばいいんじゃない?

386 :デフォルトの名無しさん:2008/06/19(木) 11:58:04
あ、キーの値じゃなくて値か
じゃあ385はダメだね

387 :385:2008/06/19(木) 12:08:03
Entryの値の方で降順にソートするコンパレータを設定したTreeSet<Map.Entry<String, Integer>>に
map.entrySet()をaddAllして、そのTreeSetから順番に取り出せばいいのかな。

388 :デフォルトの名無しさん:2008/06/19(木) 12:11:05
配列に全部突っ込んでからソートした方が速そう

389 :デフォルトの名無しさん:2008/06/19(木) 12:23:26
おおまかにはこんな感じかな?
Set<Map.Entry<String, Integer>> set = new TreeSet<Map.Entry<String, Integer>>(
new Comparator<Map.Entry<String, Integer>>() {
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o2.getValue().compareTo(o1.getValue());
}
});
set.addAll(map.entrySet());
for (Map.Entry<String, Integer> e : set) {
System.out.println("Products: " + e.getKey() + ": Number: " + e.getValue());
}

StringBuilderを使っているところはインスタンスをループの外で生成するのなら別だけど、
わざわざそう書かなくても+で結合する書き方でもコンパイラがそんな感じにしてくれる。

>>388
それもいいかも

390 :デフォルトの名無しさん:2008/06/19(木) 12:34:23
どうもgenericsの記述量に負けてあまりシンプルって感じに見えないや。
流れは単にnew TreeSetしてaddAllだけなのに。

391 :デフォルトの名無しさん:2008/06/19(木) 17:34:42
JavaSE6からjavax.tools.Compilerを使えばJREだけでJavaのコンパイルできるってこと?

392 :デフォルトの名無しさん:2008/06/19(木) 18:05:52
>>391
JRE には tools.jar が無いから無理のはず。

393 :デフォルトの名無しさん:2008/06/19(木) 18:18:21
JREにtools.jarは入っていないけれど、
tools.jarをJREといっしょに再配布するのは構わなかったはずなので、
あとはtools.jarにパスが通っていればおk

394 :393:2008/06/19(木) 18:23:07
自分の作成した動的コンパイル機能付きのプログラムを配布する場合、という意味ね
自分の環境だけでいいのなら素直にJDKをインストール

395 :デフォルトの名無しさん:2008/06/19(木) 18:24:52
なるほど、tools.jarの再配布条件を調べてみます
ありがd

396 :デフォルトの名無しさん:2008/06/19(木) 22:17:29
質問です
jarを実行したところエラーが出まして
Can't find resource for bundle java.util.PropertyResourceBundle, key table.section.pointup9
というエラーが出たのですが、ドコから調べていいのかわからず。
設定ファイルを読んで処理をするjarなのですが・・


397 :デフォルトの名無しさん:2008/06/19(木) 22:43:48
久しぶりにJavaのお仕事…
既存のWebシステムに一画面追加するだけのお仕事だったのですが、
SIとSLを作成し、ローカルでコンパイルし、
作ったクラスファイルをUNIXサーバにFTPで配置したのに404

WebOTXを何度落とし上げしても404・・・

ずっと悩んでしまったんだけど、
これってもしやasant deployを忘れてるってことでおkですか?

398 :デフォルトの名無しさん:2008/06/19(木) 22:52:14
>>396
その設定ファイルが正しく読めてない予感

399 :396:2008/06/19(木) 23:00:58
pointup9
という項目を追加して読もうとしてるので、そこがおかしいみたいです・・ね
javaのmain定義部分をもう少し見直してみます

400 :デフォルトの名無しさん:2008/06/19(木) 23:26:37
初心者です
歌詞検索みたいなのってJavaでつくることは可能ですか?

401 :デフォルトの名無しさん:2008/06/19(木) 23:34:30
データがあればね

402 :デフォルトの名無しさん:2008/06/20(金) 00:00:07
>>383
もっと素直に
ArrayList<Map.Entry<String, Integer>> list = new ArrayList<Map.Entry<String, Integer>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<String, Integer>>(){
public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) {
return o1.getValue().compareTo(o2.getValue()) * -1;
}
});

for (Map.Entry<String, Integer> entry : list) {
System.out.printf("Products: %s, Number: %s%n", entry.getKey(), entry.getValue());
}


403 :デフォルトの名無しさん:2008/06/20(金) 00:23:02
> * -1;

初めて見た

404 :デフォルトの名無しさん:2008/06/20(金) 01:26:42
そんな奴には Integer.MIN_VALUE を渡すことにしている。

405 :デフォルトの名無しさん:2008/06/20(金) 02:11:20
すいません、質問させて下さい。

classpath上に存在するクラスの中から、特定のアノテーションが付いているものだけを抽出する方法を調べています。

Javaで実行時のclasspath上に存在する全クラスを取得する方法ってないのでしょうか?
もしくは特定のpackage以下に存在する全クラスでも良いのですが・・・。

ClassLoaderを自作するサンプルとかにあるみたいに、ディレクトリ以下の.classを直接読みに行く他ないのでしょうか・・・。


406 :デフォルトの名無しさん:2008/06/20(金) 02:24:26
ええ本教えて

407 :デフォルトの名無しさん:2008/06/20(金) 03:29:59
>>397

JavaとWebOTXについて言うと
WebOTXを使ったWebアプリ開発についての書籍とかサイトって
なかなかないんだよな・・・

WebOTXユーザって相当少ないのかな・・・
事例とか簡単入門とかもあんまり見当たらないよな・・・

だれか詳しい人、何か参考になる情報あれば、ぜひ

408 :デフォルトの名無しさん:2008/06/20(金) 03:34:46
>>407
君が詳しい人になって本を書くかサイトを立ち上げてほしいな。

409 :デフォルトの名無しさん:2008/06/20(金) 03:40:18
3ヶ月間職業訓練校行った人
授業の内容どんなの?

410 :デフォルトの名無しさん:2008/06/20(金) 06:35:48
>>389
>>402
383です。おそくなりましたが、カキコをありがとうございます。
教えていただいたComperatorインタフェースの使い方、大変参考になりました!
まさに知りたい事だったように思います。

411 :デフォルトの名無しさん:2008/06/20(金) 06:44:01
スペル間違い、Comparatorでした。

412 :デフォルトの名無しさん:2008/06/20(金) 09:03:29
私は今年javaを本格的に学び始めた者ですが質問です。

interface Frame {
String Frame = "Alumi";
String getFrame();
}
上記の内容のinterfaceがあるとき実際にはどのような記述と同意であるか?というものです。

いろいろ調べてはみたのですが問題の定義もなんだかイマイチ曖昧で分かりません。
どなたか分かる方教えていただけませんか?

413 :デフォルトの名無しさん:2008/06/20(金) 09:21:18
っinterface 暗黙 修飾子


414 :デフォルトの名無しさん:2008/06/20(金) 09:29:50
>>413
abstract?

415 :デフォルトの名無しさん:2008/06/20(金) 11:49:00
DecimalFormat exFormat2 = new DecimalFormat("###,###,###,##0.##");
System.out.println("hoge=" + exFormat2.format(99.999));

上記ソースで実行結果が99.99となるような切捨てにしたいのですが
どうしたらよいでしょうか?


416 :デフォルトの名無しさん:2008/06/20(金) 11:51:54
>>405
クラスパスを自力で辿って、すべてのクラスの名前を (ファイル名等から) 知る
Class#forName で、その名前のクラスをロードする
Class#getAnnotation で、ロードしたクラスのアノテーションを調べる

417 :デフォルトの名無しさん:2008/06/20(金) 12:35:18
>>415
1.6以降なら exFormat2.setRoundingMode(RoundingMode.DOWN) とかすりゃ切捨てできるけど

418 :デフォルトの名無しさん:2008/06/20(金) 13:33:21
すいません、ここでJSPの質問をしても大丈夫でしょうか?

419 :デフォルトの名無しさん:2008/06/20(金) 13:34:09
>>417
さんくす。1.5なので100かけて100で割ることにしました。

420 :デフォルトの名無しさん:2008/06/20(金) 14:58:24
BufferedImageに読み込んだ画像の背景を透明にしたいのですが
どのような方法がいいでしょうか?


421 :デフォルトの名無しさん:2008/06/20(金) 15:11:56
最初から背景が透明な画像 (透過GIFやアルファ付きPNG) を読み込むのが一番簡単だと思うよ
それじゃだめな理由があるなら、説明よろしく

422 :デフォルトの名無しさん:2008/06/20(金) 15:53:16
>>420
何をもって背景にするかによって方法はいろいろあるけど、
一番お手軽で処理が速いのは>>421の言う通り最初から透明化したリソースを用意すること。
動的に透過色を変更したいとかの要求があるなら、イメージフィルタを通す方法がある。
例えば真っ白を背景色として透明にするなら、白のピクセルのアルファを0にするイメージフィルタを介してやる。
おおまかにはこんな感じで。
Image transimage = Toolkit.getDefaultToolkit().createImage(new FilteredImageSource(
sourceimage.getSource(),
new RGBImageFilter() {
public int filterRGB(int x, int y, int rgb) {
return (rgb & 0x00ffffff) == 0x00ffffff ? rgb & 0x00ffffff : rgb;
}
}
));
これは背景色が固定された処理だけど、
背景にしたい色を与えて動的に背景色を変更するようにフィルタを実装すればそれなりにいろいろと。

423 :420:2008/06/20(金) 16:14:09
>>421>>422
返信ありがとうございます

できれば最初から透過された物を使用するのがベストだと思うのですが
アプリケーションを実行する時にpngに関する事でエラーを起こしてしまい
うまくいきません

これは画像の作り方が悪いのでしょうか?

424 :デフォルトの名無しさん:2008/06/20(金) 16:16:54
>>423
少なくともエラーは晒せ
できればソースも
それともエスパーによる回答希望?

425 :420:2008/06/20(金) 16:41:26
本当にすいません
画像を作り直したら成功しました
ありがとうございました

426 :デフォルトの名無しさん:2008/06/20(金) 17:12:38
whileで永久ループしているプログラムに外から停止命令を
出したいのですが、こういう場合はソケット通信が適切でしょうか?
ほかに良い方法がありましたら教えてください。

427 :デフォルトの名無しさん:2008/06/20(金) 17:15:40
普通はThreadじゃないの?

428 :デフォルトの名無しさん:2008/06/20(金) 17:15:48
っスレッド

429 :426:2008/06/20(金) 17:23:55
>>427,428
ありがとうございます。

たとえば
>java hoge.class
で実行して
>java hogestop.class
を実行するとhoge.classのプログラムが終了するような感じにしたいです。

このような場合ですがスレッドはどのように使えますでしょうか?

430 :デフォルトの名無しさん:2008/06/20(金) 17:45:17
なんだ、小出し野郎か。

431 :デフォルトの名無しさん:2008/06/20(金) 18:11:37
staticなflagを作って外部から書き換える

432 :デフォルトの名無しさん:2008/06/20(金) 18:32:00
canvas3D上にpaintでfillRectを用いて描画したいと思っているのですが、
最前面に表示されません。何かいい方法ご存知でしたら教えて下さい。
よろしくお願いします。


433 :デフォルトの名無しさん:2008/06/21(土) 01:53:26
javaアプリケーションからjarファイル(他のjavaアプリ)を起動することはできるのでしょうか?
方法をご存知でしたら教えていただきたいです。よろしくお願いします。

434 :デフォルトの名無しさん:2008/06/21(土) 02:03:41
>>433
クラスパスが通ってれば、String[] argsを用意して
com.example.app.FooApplication.main(args);
を呼ぶだけ。

・クラスパスが通ってない場合
・mainのクラス名がわからない場合
などなどあるけど、まあ基本は↑ので。


435 :デフォルトの名無しさん:2008/06/21(土) 08:58:12
>>434
ありがとうございます。試してみたところ起動できました。
今は同一プロジェクト内のクラスのmainを複数起動してみたのですが、
クラスパスが通っていれば他プロジェクトのmainも起動できるのでしょうか。
一つ問題なのが、この方法だとおそらく複数のアプリが同一プロセスで
実行されている気がするのですが、別々のプロセスで実行することは可能でしょうか。
答えていただければ幸いです。

436 :デフォルトの名無しさん:2008/06/21(土) 09:21:18
ProcessBuilderとかRuntime(1.4まで)とか

Javaではサブプロセスと縁を切ることはできないんだっけ?


437 :デフォルトの名無しさん:2008/06/21(土) 10:45:23
独習JAVAで勉強してるんですが
スレッドの章でRunnableを実装したクラスで
MyThread4(String str, long msec) {
this.str = str;
this.msec = msec;
new Thread(this).start();
}
と言う部分があり、その中の
new Thread(this).start();
の部分が意味がいまいちわかりません。
質問があいまいですいませんが
どなたか説明していただけないでしょうか。
お願いします。

438 :デフォルトの名無しさん:2008/06/21(土) 10:51:36
// 自分自身をスレッドで実行されるコードとして、スレッドを作成する
Thread t = new Thread(this);
// スレッドを開始する
t.start();


439 :デフォルトの名無しさん:2008/06/21(土) 11:23:58
MouseMotionListenerをimplementsしないと
・mouseDragged(MouseEvent e)
・mouseMoved(MouseEvent e)
が実装できないのはなぜでしょうか。
インターフェイスはあくまで、指定したメソッドの
実装を義務付けるみたいな感じで習ったので。

440 :デフォルトの名無しさん:2008/06/21(土) 11:33:21
>>439
MouseMotionListenerをimplementせずに
・mouseDragged(MouseEvent e)
・mouseMoved(MouseEvent e)
を実装しても一向に構わないが、
MouseMotionListenerを実装したとは認識されない。ただそんだけ。

441 :デフォルトの名無しさん:2008/06/21(土) 11:52:57
っダックタイピング

442 :デフォルトの名無しさん:2008/06/21(土) 11:54:33
ダックタイピングか強い静的タイピングの違いだな。

443 :デフォルトの名無しさん:2008/06/21(土) 11:55:16
ち、リロードしてなかったぜ

444 :439:2008/06/21(土) 12:14:32
>>440
ありがとうございます。
addMouseMotionListner(this)によって渡すものが
MouseMotionListenerクラスのオブジェクトでないと
いけないのだと解釈しました。

445 :439:2008/06/21(土) 12:17:13
ああ、何かおかしい

クラスというよりは、MouseMotionListenerという型で
受け取れる形だから、継承または実装されたオブジェクト
でないと、うまいこといかないってことなのかなぁ

446 :439:2008/06/21(土) 12:19:27
MouseMotionListenerというインターフェイスを
実装してないとダメなわけですね!

447 :デフォルトの名無しさん:2008/06/21(土) 14:29:59
ダックタイピング だとしてもimplementsやらないと結局機能しないんじゃないの?

448 :デフォルトの名無しさん:2008/06/21(土) 14:57:52
ダックタイピングは持ってるメソッドで所属するクラス(オブジェクト)決めてるからそんな心配ナス

449 :デフォルトの名無しさん:2008/06/21(土) 15:34:40
リスナーの呼び出し元はどうするの。
addMouseListener()とかしないでどうやってcallするの?

450 : [―{}@{}@{}-] デフォルトの名無しさん:2008/06/21(土) 15:41:54
ホスト名(FQDN)が正当かどうか評価する方法はないでしょうか。
どうも . が付いても InetAddress#getByName 等では引けてしまうようで、

1. www.example.com  : 当然 OK
2. www.example.com. : OK
3. www.example.com.. : これは NG

といった状態になってしまいます。
或いは RFC 的に 2 も OK(1 と同じ場所を指す)と言う事なのでしょうか。
であると逆に、InetAddress#getByName で引ければ正当と判断して良い?

451 :デフォルトの名無しさん:2008/06/21(土) 15:52:46
. つけてもブラウザで見れるね

452 :デフォルトの名無しさん:2008/06/21(土) 16:25:32
>>449
addはもちろんするが型がなんであるかは関係ない。
普通はメソッドテーブルを検索して対応するメソッドがあれば呼ぶ。
この場合だとコールバック関数名が一致するオブジェクトをadd(これがcallee側になる)しといてcaller側が必要なコールバック関数を呼び出せるかどうか試してみる。
それに成功すればcallee側のコールバック関数を呼び出す。
ダックタイピング採用してるruby辺りをいじるのが早くて分かりやすい。

453 :デフォルトの名無しさん:2008/06/21(土) 16:27:39
implements MouseListener
じゃないと、型が違うからadd出来ないと思うが?

454 :デフォルトの名無しさん:2008/06/21(土) 16:37:11
おまえはまずダックタイピングを理解しろ

455 :デフォルトの名無しさん:2008/06/21(土) 16:50:24
このスレ的にはダックタイピングの議論を深めるのはスレ違いだし初心者を混乱させる元だ
今のjavaをやっている限りはダックタイピングについて理解しなくても構わない

456 :デフォルトの名無しさん:2008/06/21(土) 17:08:28
いっそ、java.beans.EventHandlerについて語ろうぜ

457 :デフォルトの名無しさん:2008/06/21(土) 17:09:57
いやここはJAXB2.0だろ

458 :デフォルトの名無しさん:2008/06/21(土) 17:50:33
eclipsでtomcatを使用できるようにしようとしているんですが
サーバービューで起動するとポートが使用されているか既に使われていて使えないと出てしまいます。


どうすれば使えるようになるのか教えてください。

459 :デフォルトの名無しさん:2008/06/21(土) 18:05:10
eclipseスレに行け

460 :デフォルトの名無しさん:2008/06/21(土) 18:31:27
そのポートを使用しているアプリケーションを終了するかポートを変更してください

461 :デフォルトの名無しさん:2008/06/21(土) 18:46:17
JSFでFragmentを切り替えるにはどうしたらいいでしょうか

462 :デフォルトの名無しさん:2008/06/21(土) 18:55:25
InputStreamのread()の返却値の型がintになっている理由がよく分からないのですが、
read()はストリームから次の1バイトを読み込み、それを返すというものと考えて良いのでしょうか?
OutputStreamのwrite(int)ではintを引数にして上位24bitを無視することで1バイトの書き込みをするというのも不自然な気がして、
これもreadの仕様が素直にbyteなら良い気がするのですが。

463 :デフォルトの名無しさん:2008/06/21(土) 18:58:28
255と-1(EOF)を区別するためだろうけど、Cへのオマージュではなかろうか。

464 :デフォルトの名無しさん:2008/06/21(土) 18:58:56
>462
JavaDoc嫁
int read()  入力ストリームから次のバイトデータを読み込みます。
戻り値:  データの次のバイト。ストリームの終わりに達した場合は -1

intな理由はint read(byte[] bytes)との兼ね合いかもね

465 :デフォルトの名無しさん:2008/06/21(土) 19:00:33
むしろ、Byte read() だったならばOKなのか、ストリームの終わりの場合はnull(EOF)とできるから

466 :461:2008/06/21(土) 19:05:06
リンクにイベント発生させるようにすればいいのかしら

467 :デフォルトの名無しさん:2008/06/21(土) 19:19:30
JavaAppletからJavaScriptを操作する方法を知りたいので、
検索して調べたところ、「netscape.javascript.*」を取り込まないといけないと書いてあり、
コンパイルのために、JDKに付属するライブラリをCLASSPATHに通す必要がある、
と書いてありました。
それでCLASSPATHを通すというのが分からないので教えて下さい。

開発環境は
CPAD for JAVA2 SDK
j2sdk1.4.2_15
です。お願いします。

468 :デフォルトの名無しさん:2008/06/21(土) 19:26:00
環境変数設定しろ。あとはググレ。
あとcom.netscapeパッケージはNN系しか使えないからRhino組み込め。

469 :461:2008/06/21(土) 19:30:33
やっぱjavaコード側で何とかする話なんだよねえ

470 :デフォルトの名無しさん:2008/06/21(土) 20:10:28
素直にページ作るよ

471 :デフォルトの名無しさん:2008/06/21(土) 20:38:15
>>468
IEでも動くがな

472 :デフォルトの名無しさん:2008/06/21(土) 20:47:15
>>471
一部だけな

473 :439:2008/06/21(土) 21:04:07
ダックタイピングってもしかして私に対するレス!?
だとしたら、みなさんありがとうございます。

ダックタイピングも調べてみたのですが、やっぱり
>>453さんの仰るように、
implements MouseListener
がないとエラーが出てしまいます。
Javaはダックタイピングができないのかな

それから、もうこの話はしない方が良いのでしょうか?

474 :デフォルトの名無しさん:2008/06/21(土) 21:10:15
ダックタイピング知らないなら気にしなくて良いよ。

475 :デフォルトの名無しさん:2008/06/21(土) 21:56:55
>>473
すくなくともJavaをふつうに使っている限りは関係がない。


476 :デフォルトの名無しさん:2008/06/22(日) 04:37:27
>>473
implementsをつければ、クラスを作る側がそのインターフェースを実装する気だったことが早い段階で確認できるでしょう。
偶然メソッド名などが一致していて動作の辻褄も合うなら同類とみなす、というダックタイピング的考えとは対照的(だから参考になる)。
Javaの型の基本が身についていれば出てこない疑問かもしれない。

477 :467:2008/06/22(日) 08:25:07
>>468
com.netscapeの使い方が分かるようになりました。
ありがとうございます。
あと、Rhinoについて調べてrhino1_7R1というのをダウンロードして、
今度は使い方について調べたのですが、
コマンドラインからの利用法しか載っておらず、
JavaAppletなどからの利用法が見つかりませんでした。
よろしければ使い方を教えて頂けませんか?
もしくは使い方の載ってるサイトを教えて下さい。お願いします。

478 :デフォルトの名無しさん:2008/06/22(日) 11:07:12
Listの中身をチェックしながら消したいんですけど

for (ManagerImpl manager : managerList) {
if (manager.cleanup()) {
managerList.remove(manager);
}
}

こういう書き方だとjava.util.ConcurrentModificationException
が出ます。

どういうお作法がいいんでしょうか。

479 :デフォルトの名無しさん:2008/06/22(日) 11:46:25
OKWaveに同じ質問がありました。

for (Iterator<ManagerImpl> i = managerList.iterator(); i.hasNext();) {
if (i.next().cleanup()) {
i.remove();
}
}

だそうです。

480 :デフォルトの名無しさん:2008/06/22(日) 11:51:29
ttp://java.sun.com/javase/ja/6/docs/ja/technotes/guides/language/foreach.html
> for-each ループでは反復子が隠されるため、remove メソッドを呼び出すことができません。
> そのため、for-each ループをフィルタリングに使用することはできません。

481 :デフォルトの名無しさん:2008/06/22(日) 11:56:09
>>477
rhinoのページに組み込みかた載ってるしrhinoのサンプルにも組み込みサンプルがあるよく見てみ。

482 :デフォルトの名無しさん:2008/06/22(日) 11:57:00
>>478
Listのremoveでなくイテレータのremoveを使わないと
for (Iterator<ManagerImpl> iter = list.iterator(); iter.hasNext(); ) {
ManagerImpl manager = iter.next();
if (manager.cleanup()) iter.remove();
}

483 :デフォルトの名無しさん:2008/06/22(日) 12:43:51
2chでのマルチが減った代わりに
教えて君御用達Q&Aサイトとのマルチが増えたな

484 :デフォルトの名無しさん:2008/06/22(日) 12:48:48
質問です。
JTableのセルにJbuttonを配置したいのですが、うまくいきません。

具体的には、JTableのセルにImageIconを配置するサンプルプログラム
ttp://www.javadrive.jp/tutorial/jtable/index14.html
のページの下にあるソースコードの、テーブルデータの配列中のImageIconを指定している部分
new ImageIcon("./img/***.gif") を
new JButton("a") のように置き換えてみましたが、javax.swing〜という文字列が表示されるだけです。

クラスが正しく扱われていないのではと思い、

public Class getColumnClass(int col){
return getValueAt(0, col).getClass();
}

上部分のソースコードのreturnを、
return JButton.class;
のように置き換えて直接指定してみたのですが、結果は同じでした

説明が拙くて恐縮ですが、JTableのセルにJbuttonを配置する具体的な方法を
どなたかご存知でしたら教えてください


485 :デフォルトの名無しさん:2008/06/22(日) 13:16:30
>>478
まあ for(member:list)構文の弱点の一つだな。
見栄えはいいんだけど、イテレタ展開しちゃうからね。

このパターンだけは、昔ながらの書式で、
for(int i=list.size()-1;i>=0;i--){
 if(list.get(i).cleanup()){
  list.remove(i);
 }
}
と書くのが好み。

Iteratorの実装はなんどかやったことあるけど、
remove()は必要になるまで書かない(というか書きたくない)からさ、
使うのも自重してる。

486 :デフォルトの名無しさん:2008/06/22(日) 14:20:57
javaアプレットでさ、動画と画像を描画するときに動画が手前にくるんだが、z軸を調整する関数はなんだっけ?

487 :デフォルトの名無しさん:2008/06/22(日) 14:30:55
API何使ってんだよ?

488 :デフォルトの名無しさん:2008/06/22(日) 17:07:02
>>486
動画?

489 :467:2008/06/22(日) 17:24:24
http://www.mozilla-japan.org/rhino/tutorial.html
このページ読んだのですが、使い方が分かりませんでした。
まずはimport org.mozilla.javascript.*;を使うにはまた環境変数をいじらないといけませんよね?
あと、これを書けばJavaScriptの文法を使用可能になると言うことでしょうか?

490 :デフォルトの名無しさん:2008/06/22(日) 18:03:23
>>489
実行時にクラスパス通せばいい。

>あと、これを書けばJavaScriptの文法を使用可能になると言うことでしょうか?
そう

491 :使用書無しさん:2008/06/22(日) 19:17:24
javaフリークの皆さん。100%PureJavaでドローソフト http://jdrafter.sakura.ne.jp/
を作ったので是非使ってね。javaの帳票設計にも使えるよ。

492 :デフォルトの名無しさん:2008/06/22(日) 19:25:37
java3D?



493 :使用書無しさん:2008/06/22(日) 19:27:13
2Dだよ


494 :デフォルトの名無しさん:2008/06/22(日) 19:28:39
おー
頑張った頑張った。だが…

495 :使用書無しさん:2008/06/22(日) 19:32:02
だが?

496 :デフォルトの名無しさん:2008/06/22(日) 19:32:03
初心者から中級者ってどこで判断するんだ
開発経験年数?

497 :デフォルトの名無しさん:2008/06/22(日) 19:36:47
>>491
すっげぇ!!!!
まじで感動したw
俺もがんばろっとー

498 :使用書無しさん:2008/06/22(日) 19:51:23
>>497よかったら使ってね。

499 :デフォルトの名無しさん:2008/06/22(日) 20:01:56
javaなのになんでexeなの?

500 :デフォルトの名無しさん:2008/06/22(日) 20:08:30
ただの自己解凍zipだよ。解凍したらclassファイルいっぱいでてくる。
けど・・・ほんとすごいわ。
経験が浅いからこんなでっかいプログラム見たこともなかった。

馬鹿にされそうw

501 :使用書無しさん:2008/06/22(日) 20:09:14
jarパッケージでもよかったんだけど、jarだと中身丸見えだしアイコンも
ダサいので、あえてExeにラップしました。

502 :デフォルトの名無しさん:2008/06/22(日) 23:26:45
あの〜
色決めるときに { | | } こんな感じで区切ってbyteに代入するのはいったいどういう意味があるんですか?
ほかにも | で区切る表現が偶に出てきて戸惑うんですけど・・・・・
入門書にも載ってなくて 誰か教えてもらえませんか?

503 :デフォルトの名無しさん:2008/06/22(日) 23:37:25
| は区切りではない
ビットごとの論理和 (OR) の演算子
その入門書の演算子の一覧かなんか見てみろ、載ってるはず

504 :デフォルトの名無しさん:2008/06/23(月) 01:26:41
趣味で為替のチャート表示のプログラミングをJAVAでしたいと思っているのですが、為替のリアルタイムでのデータをネットから取り込むことは出来るのでしょうか?
質問が漠然としていて申し訳ないのですがお願いします。

505 :デフォルトの名無しさん:2008/06/23(月) 01:32:42
>>504
きみのPCのブラウザで表示できる情報はすべてJavaで取得できる手段が
存在すると考えていい。すごく難しい場合もあるけど。


506 :デフォルトの名無しさん:2008/06/23(月) 01:48:37
>>505
ありがとうございます。
大学ではCとFortranを使ってたのですがどちらも制御系のプログラムばかりでこういった類の経験がありませんでした。
林晴比古の入門JAVAシニア編でもネットから情報を取り込むことに触れられないので不安に感じましたが、もっと勉強しようと思います。
その辺を詳しく解説してくれる書籍などはないでしょうか?

507 :デフォルトの名無しさん:2008/06/23(月) 02:31:02
赤音れおん

508 :デフォルトの名無しさん:2008/06/23(月) 03:33:11
>>504 >>506
よくわからないけど、java.netパッケージあたりが基本では
ttp://java.sun.com/javase/ja/6/docs/ja/technotes/guides/net/index.html

509 :デフォルトの名無しさん:2008/06/23(月) 07:31:09
>>508
ありがとうございます。その系列の本をあさってみようと思います

510 :デフォルトの名無しさん:2008/06/23(月) 09:42:26
>>504
原則的には>>505が言ったとおりなんだけど
ファイナンス系サイトはデータを流用されないように工夫しているところもあるから注意
例えば数字に見えても画像だったりFlushで表示を制御してたり

511 :デフォルトの名無しさん:2008/06/23(月) 10:02:41
プログラムのために準備されたものでないものからデータを拾う場合は
それないりに工夫や苦労はつき物。
相手がレイアウトや内容を変えない保障はどこにもない。
うちの社内なんていくつかのシステムの寄せ集めで、
システム間のデータのやり取りの大半が、
印刷直前の帳票データから拾ってるから間違い多いしカオスすぎる・・・

512 :デフォルトの名無しさん:2008/06/23(月) 10:32:44
特定のフォルダ内からフィルタを掛けて、条件に引っかかるファイルの内容を表示したいので、
finamefilterを使って実現したのですが、当然の如くフォルダ内のファイル数増加に伴って応答が遅くなります。
なにかいい解消手段はないでしょうか?

513 :デフォルトの名無しさん:2008/06/23(月) 10:42:39
>>510
なるほど・・・たしかに証券会社のチャートやボードはフラッシュや動画の類いに見えます。
実際問題、個人でそういったデータを引っ張ってきて表示させるのはきつそうですね。
ありがとうございました

514 :デフォルトの名無しさん:2008/06/23(月) 11:15:17
MT4辺りにDLLフックかけてJNI経由で取り込む

515 :デフォルトの名無しさん:2008/06/23(月) 12:27:35
>>512
(十分な効果が出るか分からんけど)ファイル名をあらかじめメモリに展開するとか
よほど大量なら、全文検索エンジンに放り込んでおくという手もあるが
取り扱いが面倒になる

516 :デフォルトの名無しさん:2008/06/23(月) 12:59:21
>>513
もうちょっと有力な回答があるとまってたんですけど・・・
確か個人ですけど、リアルタイム(1秒毎)は証券会社に加入するしかないです。

yahooのあれは20分遅れだったかな?
個人集団が作ってる有力な株ソフトがいくつかあるんで、それを参考にしたらどうですか。
やってることもhtmlのテキスト解析・分析・処理のようですけど。

517 :デフォルトの名無しさん:2008/06/23(月) 13:20:03
eclipseでパッケージの中にパッケージをつくるにはどうやるんですか?

518 :デフォルトの名無しさん:2008/06/23(月) 15:32:10
eclipseスレにいけ

519 :デフォルトの名無しさん:2008/06/23(月) 20:26:11
javaでstrutsでなにかしてみたいのですが
お勧めのHPあれば教えてください。

520 :デフォルトの名無しさん:2008/06/23(月) 20:46:11
為替と聞かれて証券教えるこの不思議

521 :デフォルトの名無しさん:2008/06/23(月) 22:14:40
なに、御礼もないし嬉しくもないの?
まあ、もう答えないからいいよ。

522 :デフォルトの名無しさん:2008/06/23(月) 22:25:39
いじけちゃってかわいい♪

523 :デフォルトの名無しさん:2008/06/23(月) 22:53:26
殺すぞ?

524 :デフォルトの名無しさん:2008/06/23(月) 22:57:50
通報すっぞ?

525 :デフォルトの名無しさん:2008/06/23(月) 22:58:46
ってかわいい♪

526 :デフォルトの名無しさん:2008/06/23(月) 23:06:04
以下のソースだと、
java.lang.NullPointerException
がtd[count].setWord(strAry[1]);のところで
出てしまいます。
かれこれ4時間やっているのですが、わからないので、
解決法をおしえてください。
また、できるだけ、影響が少ない方法(データモデルをあまり変えない)
だと助かります
よろしくお願いします。

int count = 0;

while ((line = br.readLine()) != null) {
String[] strAry = line.split(" ");

System.out.println(strAry[1]);
if (strAry.length==2) {
System.out.println("aaa");
}
else if (strAry.length==3){
System.out.println("gp" + strAry[1]);
td[count].setWord(strAry[1]);
td[count].setSpeech(strAry[2]);
} }
count++;
}

527 :デフォルトの名無しさん:2008/06/23(月) 23:08:47
>>526
td[] はどこでどうやって宣言してる?恐らくそれが間違っている。

528 :デフォルトの名無しさん:2008/06/23(月) 23:13:23
S!アプリ造りたいんですけどいいサイト知りませんか?

529 :526:2008/06/23(月) 23:26:25
>>527
ありがとう

public class Manager {
TokenData[] td;

という感じで,クラス宣言の後で,宣言しています.

また,TokenDataは,以下のクラスで宣言しています.
よろしくお願いします.
public class TokenData {
private String word = "";
private String basicWord = "";
private String speech = "";
public void Token() {}
public String getWord() {
return word; }
public void setWord(String word) {
this.word = word; }
public String getBasicWord() {
return basicWord; }
public void setBasicWord(String basicWord) {
this.basicWord = basicWord; }
public String getSpeech() {
return speech; }
public void setSpeech(String speech) {
this.speech = speech; }}

530 :デフォルトの名無しさん:2008/06/23(月) 23:29:35
>>526
配列の宣言と初期化について調べたほうが良いと思います。

項目数が不明な取り込みには ArrayList を使いましょう。
配列での保持が必要なら、後で変換しましょう。

531 :526:2008/06/23(月) 23:33:20
ありがとう。
ArrayListを使う場合の例をおしえていただけませんか?

532 :使用書無しさん:2008/06/23(月) 23:35:55
javaフリークの皆さん
100%purejavaのドローングソフト
http://jdrafter.sakura.ne.jp
登場
帳票設計や、アプレットのヴェクターアニメーションにも使えるよ
ダウンロードしてね

533 :デフォルトの名無しさん:2008/06/23(月) 23:43:58
>>531
[配列]
TokenData td[]=new TokenData[20];
for(int i=0;i<td.length;i++)
td[i]=new TokenData();

[ArrayList]
ArrayList<TokenData> td=new ArrayList<TokenData>();


534 :デフォルトの名無しさん:2008/06/24(火) 00:02:55
最近、PGやSEが逮捕されること多くないですか?
それもアキバのお宅イメージをセットにして報道してるように感じますが、警察は何か恨みでもあるんでしょうか。winney?

535 :デフォルトの名無しさん:2008/06/24(火) 00:08:26
ButtonGroupでグループ化した3つのラジオボタン1,2,3に対して、
初期はすべてのボタンが選択されていない状態ですが、
いずれかのボタンが選択された状態から、グループを初期の状態に戻す方法を教えていただけませんでしょうか。
ちなみに、clearSelection()は使えない環境です。

536 :526:2008/06/24(火) 00:09:09
>>533
本当にありがとうございます。
素人なので、こうした情報が勇気づけられます。

java1.4の場合ですと、ArrayList<TokenData>のような表現は無理だそうです。。。
その場合は、どのような方法がありますでしょうか?
DATACLASSをArrayListではあつかえないってことでしょうか?
すみません。おしえてください。

537 :デフォルトの名無しさん:2008/06/24(火) 00:16:31
>>536
ArrayList td=new ArrayList();
ただしこの場合は中身はObject型になるので利用する際キャストが必要。
td.add(new TokenData());
TockedData token1=(TokenData)td.get(0);

538 :デフォルトの名無しさん:2008/06/24(火) 00:16:34
a.javaをコンパイルしたらa.classとa$1.classてゆうのができました
この二つのclassをjarに圧縮したいのですがどうもうまくいきません
ちなみにプロンプトには jar cfm g.jar d.txt a.class a$1class
と打っているんですがあっているでしょうか?

539 :デフォルトの名無しさん:2008/06/24(火) 00:20:44
ぱっとソース見ただけだけど、selectionをnullにする必要があるのに、selectionのsetterがsetSelected(ButtonModel,boolean)しかないから、無理な気がする・・
せめてprotectedにしててくれたらなぁ。

大したプログラムじゃないし、自分で作ってみたら?

540 :デフォルトの名無しさん:2008/06/24(火) 00:22:32
>>538
unix系のshellなら $は意味がある文字だから \$ とエスケープしてみたらどうでしょう。

541 :デフォルトの名無しさん:2008/06/24(火) 00:26:28
しまった。>>539>>535へのレスね。

542 :デフォルトの名無しさん:2008/06/24(火) 00:45:01
>>538
>>540以前にコマンド自体あってないね
書き込み時のtypoかもしれんが

543 :デフォルトの名無しさん:2008/06/24(火) 00:45:53
JSFでも使うぞ$

544 :デフォルトの名無しさん:2008/06/24(火) 03:04:20
クラスの設計を、
・コードで直接行う場合のメリット、デメリット
・UMLを利用する場合のメリット、デメリット
を教えてください 。


545 :デフォルトの名無しさん:2008/06/24(火) 08:59:35
冗長、どちらか一つでいい。
・コードで直接行う場合のメリット
・UMLを利用する場合のメリット

546 :デフォルトの名無しさん:2008/06/24(火) 09:14:24
> クラスの設計を、
> ・コードで直接行う
設計になってねえ

547 :デフォルトの名無しさん:2008/06/24(火) 11:03:46
クラスの設計を、コードで直接行う場合のメリット、デメリット
を教えて下さい

548 :デフォルトの名無しさん:2008/06/24(火) 11:04:26
クラスの設計を、コードで直接行う場合のメリット、デメリット
を教えて下さい

549 :デフォルトの名無しさん:2008/06/24(火) 13:03:13
こんにちは。
学校の課題で作った掲示板システムの拡張をしています。
設計について質問させてください。

DB1テーブル1Entityで、各Entityが自身のvalidateメソッドを持つ形の設計をしています。
今回、一部のテーブルに対し、validateのみが異なる複数のEntityが必要な状況になりました。

いくつか方法を考えたのですが、このような場合どの方法がよいでしょうか。

(1) 関連のない別クラスとしてEntityを定義する。
(2) 共通の親Entityクラスを定義し、validateメソッドをoverrideする。
(3) validateを別クラスに切り出し、strategyに持ち込む。

よろしくお願いします。

550 :デフォルトの名無しさん:2008/06/24(火) 13:26:49
コーディングと設計の区別もつかないPGが混じってんのか

551 :デフォルトの名無しさん:2008/06/24(火) 14:52:17
こんにちは。JAVA初心者です。
eclipseでソースを打っているのですが、
コメントを打つと、たまに日本語が□に変わって
うまく表示されません。
なぜか、教えてください。

552 :デフォルトの名無しさん:2008/06/24(火) 15:25:52
すいません解決しました。
ありがとうございました

553 :デフォルトの名無しさん:2008/06/24(火) 16:01:27
javaの土初心者です。JavaでWindows PCの
I/O空間アクセス、物理メモリアクセス
ってどのようにするんですか?

554 :デフォルトの名無しさん:2008/06/24(火) 16:21:53
>>553
JNIとOSのディバイスドライバが必要だな。
そもそもWin32でそれをする方法を知ってるのか?

555 :デフォルトの名無しさん:2008/06/24(火) 17:13:06
>>554
デバイスドライバを作りたくないからJavaでやろうと考えたのですが...
今回はI/O空間アクセスが出来ればOKで、物理メモリアクセスはあればなんかの役に立つかな
ぐらいなんですが

Windowsならドライバで
IO空間アクセス:
READ_PORT_XXX、WRITE_PORT_XXX で行う
物理メモリアクセス:
MmMapIoSpaceしてREAD_REGISTER_BUFFER_XXX、WRITE_REGISTER_BUFFER_XXX で行う

で使うときにはDeviceIoControlで叩く

ってC/C++のWinプログラム初心者でも知っている知識ですよ。
初心者Javaな人でもこれぐらいは知っていますよね。

556 :デフォルトの名無しさん:2008/06/24(火) 17:22:57
ここはクマーとかいうAAを貼るところだろうか?

557 :デフォルトの名無しさん:2008/06/24(火) 17:27:05
アンダーフローやオーバーフローは構文エラーですか?論理エラーですか?

558 :デフォルトの名無しさん:2008/06/24(火) 17:38:27
違います
低脳エラー(うぽぽんエラー)です

559 :デフォルトの名無しさん:2008/06/24(火) 17:40:41
>>555
すっげー
俺もこんくらいの知識ほしい

560 :デフォルトの名無しさん:2008/06/24(火) 17:50:21
>>85-105

なんか爆笑した。>>85の言動にw

>>109
そこにJavaの格言とJavaの鉄則が入ってるのが理解できない。
あの本はJava5以前の本だぞ。Java5が出てから役に立たなくなったテクニックやTipsが
けっこうあるので今ではおすすめしがたいな。鉄則のほうはそこそこ役に立つが、
それだったらEffective Javaのほうが全然役に立つ。

561 :デフォルトの名無しさん:2008/06/24(火) 17:51:04
そクマー

562 :デフォルトの名無しさん:2008/06/24(火) 17:56:02
>>121
Java+謎、落とし穴を書いた前橋 和弥よりはましではないかと。
あれは酷かった。本に愚痴ばかりかいて、今となっては解決済みの問題が
あたかも解決されていないかのような書き方が、初心者に誤解を与えかねない本だな。
アンチがあれを読んで昔飛びついていた記憶がある。

563 :デフォルトの名無しさん:2008/06/24(火) 17:57:58
>>134
> ただM$の都合で、変な改定されるのが怖いんです。(J++とかw)

そのくせ、こんなこと言ってるよな。VBにしておけよ電波。

> どうしてjavaは初心者にこうも厳しいんですか?
> 例えばダブルクリックの起動ファイルひとつ作るのでも、ネット上の情報はうそっぱちか役に立たない情報ばっかり。
> VBと比べても必要な情報にたどりつくのに時間がかかりすぎ。
> これだったら、M$社製品(C++、C#、VB2005等)の方が手っ取り早かった(と思う、たぶん)。
> とくかく情報の出し惜しみはやめてほしいな。
> なんで、java弄るひとって性格の悪い人がおおいんだろ。
> java関係の本でもろくなのないし。


564 :デフォルトの名無しさん:2008/06/24(火) 18:00:22
>>141
> LinuxではC#動かないでしょう?
Monoで動く。

> .NETははっきりいって糞くらえですよ。(食事中のかたすんません)
VB忠なのに。

565 :デフォルトの名無しさん:2008/06/24(火) 18:01:37
>>146
> ふりだしに戻る・・・
> ⇒なんで、java弄るひとって性格の悪い人がおおいんだろ。
>
> 自分なりの分析ですが
> java弄る人って、殆どが玄人(それで飯食っているひと)なわけですよ。
> もしくは、いま勉強中で資格とって就職しようとしている人々。
> したがって、ライバルは少ないほうがいい、もしくは自分の優位性をつねに保っていたい。
> そんなエゴが見え隠れしている。

一昔前のC言語厨やUNIX屋じゃあるまいし。
このスレ見ればわかると思うが、素人がよく質問しに来ているが。

566 :デフォルトの名無しさん:2008/06/24(火) 18:04:05
>>154
たいした警鐘に感じないなあ。
Javaの情報は10年前に比べれば腐るほどあるし
ライブラリもたっぷりあるし書籍もネットも充実して情報には困らないんだよなあ


567 :デフォルトの名無しさん:2008/06/24(火) 18:05:19
この使い方の意義が分からん漏れはヴァカですか?
StringBuffer sb;
sb.append("Hello, ").append("world!!");


568 :デフォルトの名無しさん:2008/06/24(火) 18:15:01
>>567
意味じゃなくて意義となればワンライナーと呼ばれる人々が喜ぶ

569 :デフォルトの名無しさん:2008/06/24(火) 19:08:36
>>549
validateを交換可能にしたいんでしょ?
まあ2のTemplateMethodパターンかなあ

570 :デフォルトの名無しさん:2008/06/24(火) 19:09:11
java.awt.FileDialog上のキー操作、マウス操作をフックしたいのですが、
実装方法を教えてください。

フックしたい目的は、右上の×ボタンとESCキーによるキャンセル抑止です。
processEventメソッドをオーバーライドしたり、
リスナを追加してもどうもフックされていないようです・・。

571 :デフォルトの名無しさん:2008/06/24(火) 19:19:11
>>567
それだったらStringBufferをStringBuilderに変えて
StringBuilder sb = new StringBuilder();
sb.append("Hello, world!!");
したkなる。

new忘れていたようなのでつけておいた。



"Hello, "と"world!!"が文字リテラルではなく変数や定数だったら
意義はある。

572 :デフォルトの名無しさん:2008/06/24(火) 19:45:18
5万ぐらいの激安のノートパソコンで
勉強できる?

573 :デフォルトの名無しさん:2008/06/24(火) 20:05:32
>>569
ありがとうございました。
その方向で設計してみます。

574 :デフォルトの名無しさん:2008/06/24(火) 20:42:39
JMFを使ってキャプチャした画像→
 JNIを通してOpenCVに送り顔認識→
  認識した顔の中心座標を返す

といったプログラムを書こうとしていますが、そもそもこんなことは可能なのでしょうか。

別にJNIを使わなくても顔認識ができればいいのですが、
OpenCV程度の顔認識精度があるJAVA用ライブラリなどあれば教えて頂きたいです。

575 :デフォルトの名無しさん:2008/06/24(火) 20:56:56
>>572
何が?

576 :デフォルトの名無しさん:2008/06/24(火) 20:59:29
>>572
勉強するだけなら10年前のでもできるだろ
何を勉強するのかしらんけど

577 :デフォルトの名無しさん:2008/06/24(火) 21:00:01
4月からIT企業に入社したヒヨッコです。いろいろ勉強のために調べていたらどうしても理解できないソースを見つけたので質問に来ました。
インタフェースの中にある以下のようなソースなんですが

public interface IntComparator{
public static final IntComparator
NATURAL_COMPARATOR = new IntComparator(){
public int compare(int i1, int i2){
return
i1 < i2 ? -1 :
i1 > i2 ? 1 :
0 ;
}
};
}
出典:ttp://mitv2.net/algorithm/sort1.html#IntComparator

1.「new コンストラクタ{メソッド名(引数){メソッド定義}}」という書式はこの他にも見かけたのですが、
これはこれから生成するインスタンスに含まれるメソッドを定義する構文という理解で正しいのでしょうか?また、その場合このメソッド定義はどのインスタンスに対して有効なのでしょうか?
(クラス定義と同じでこれ以降同じクラスから生成するインスタンス全てに有効?それともここで生成するインスタンスのみに有効?)

2.メソッドを定義する構文であるとすれば、抽象メソッドしか持たないはずのインタフェース内でメソッドを定義していることになります。
Eclipsにコピペしてみてもコンパイルエラーは発生しないようですが、本当にこのようなことが許容されるのでしょうか?

長文になってしまいましたが、よろしくお願いします。

578 :577:2008/06/24(火) 21:01:02
インデントきえたーーー

読みにくくてスイマセン…出典元を見ていただいたほうがいいかも知れません…

579 :デフォルトの名無しさん:2008/06/24(火) 21:04:21
>>578
専ブラならポップアップで見てみ

580 :デフォルトの名無しさん:2008/06/24(火) 22:00:48
>>577
それは匿名内部クラス、あるいは単に匿名クラス、もしくは無名クラスなどという。
指定したクラスかインタフェイス(その場合はIntComparator)を継承・実装している名前のないクラスを定義してnewする。
定義したメソッドは、そこで生成するインスタンスだけのもの。

581 :デフォルトの名無しさん:2008/06/24(火) 22:09:13
>>577
1回限りしか必要のないクラスの名前をわざわざ付けて名前空間を汚す代わりに
名無しのクラスからインスタンスを生成することができる。

書式的には、
new 親クラス(親クラスのコンストラクタの引数) { メソッド定義 }
みたいな感じ。

名前がないので、新しいメソッドを定義してもクラスを明示できないから呼べない。
大抵、親クラスのメソッドのオーバライドしないと意味がない。
クラスじゃなくてインターフェースでもおk

似たようなものに、配列の生成と初期化を同時に行う方法がある。
new int[] { 1, 2, 3, }
とか。
いちいち配列を入れる変数名を用意して名前空間を汚さずとも
そのままメソッドの実引数などに使える。

ただ、見づらいと言う人は多々居る。不毛な論争の種にどうぞ

582 :577:2008/06/24(火) 22:51:54
>>580
>>581
ありがとうございます。
読みながら想像してたのと大体合ってたようで一安心です。

クラスの中でインスタンスをいっぱい(50コとか)作るけど、そのうち1つだけメソッドの中身がちょっと違うときに使ったりするものなんですね。

もう少しこのソースがどんな動きをするのかを考えてみたいと思います。その過程で壁に当たったらまた質問に来るかもしれないので、そのときはよろしくお願いします。

583 :デフォルトの名無しさん:2008/06/24(火) 23:28:01
クラスの設計を、コードで直接行う場合のメリット、デメリット
を教えて下さい

584 :デフォルトの名無しさん:2008/06/25(水) 00:22:10
サイズを固定しないJTableを作りたいのですが、
可変長の二次元配列ってどうやって表現すればよいのでしょうか?
一次元でも実現可能なのでしょうが、コードが冗長になりそうで・・・

585 :デフォルトの名無しさん:2008/06/25(水) 00:29:21
>>584
配列じゃなくてコレクション使ったMODELで

586 :デフォルトの名無しさん:2008/06/25(水) 00:52:08
>>585
引数がVectorのDefaultTableModelを使うという事でしょうか?

587 :デフォルトの名無しさん:2008/06/25(水) 00:53:39
javaで図形処理をさせる課題が出て難しく感じたので
これを機に参考書を買おうと思っています。

wiki乗っている「コアJava2 Vol.1 基礎編」が良さそうだと思ったのですが
図形処理関係では他にどういう参考書があるか知りたいので
教えてください。

588 :デフォルトの名無しさん:2008/06/25(水) 01:20:12
WebOTXでJavaを利用したアプリサーバを
構築してるんですが、なんというか情報が少なすぎる…
参考書があるか知りたいですが、探し方が悪いのか
丸善とかでは見つからなかった。

WebOTXでJavaをつかったアプリサーバ構築
みたいなテーマの本はないでしょうか・・・

589 :デフォルトの名無しさん:2008/06/25(水) 08:08:51
Javaはガベジコレクション等プログラマがメモリを意識しないでいい利点があると聞いたのですが・・・

int[] a = {10, 9, 8, 7, 6}
int[] b = {1, 2, 3}
a = b;

とした時にC言語だとfree?されてないのでメモリが無駄になるのですが、Javaだとどうなるんですか?

590 :デフォルトの名無しさん:2008/06/25(水) 08:09:37
↑{10, 9, 8, 7, 6} のメモリ領域が

591 :デフォルトの名無しさん:2008/06/25(水) 08:23:43
>>589
言語仕様で決まってるのは{10, 9, 8, 7, 6}の配列がガベコレ可能な状態になるってところまで。
どのタイミングで回収されるかは実装依存。

あと、C言語だと、スタックに確保されるんじゃなかったか? それ。

592 :デフォルトの名無しさん:2008/06/25(水) 11:47:12
指定した番号目の素数を出すにはどうしたらいいですか?

593 :デフォルトの名無しさん:2008/06/25(水) 11:49:39
age

594 :デフォルトの名無しさん:2008/06/25(水) 11:56:34
素数を降順でリストに突っ込んで取だしゃいいだろ。

595 :デフォルトの名無しさん:2008/06/25(水) 11:57:20
>>594
すみません、素数を出すコードがわかりませんので。

596 :デフォルトの名無しさん:2008/06/25(水) 12:03:16
エラトステネスのふるいでググレ

597 :デフォルトの名無しさん:2008/06/25(水) 12:06:59
了解

598 :デフォルトの名無しさん:2008/06/25(水) 12:41:32
数日前にチャート表示のプログラムを相談したものですが、
ttp//plaza.rakuten.co.jp/meime/diary/200603310002
を参考にしてみます。相談に乗っていただきありがとうございました。

599 :デフォルトの名無しさん:2008/06/25(水) 13:42:22
>>594
なんで降順?

600 :デフォルトの名無しさん:2008/06/25(水) 15:10:17
そんなどうでもいいこと聞いてなんになるの?

601 :デフォルトの名無しさん:2008/06/25(水) 15:22:59
普通は昇順(1,2,3,5,7....)で何番目の素数とか言うだろw
降順の素数番目ってどうすんだw

602 :デフォルトの名無しさん:2008/06/25(水) 17:11:11
じゃあ昇順てことで

603 :デフォルトの名無しさん:2008/06/25(水) 18:27:38
スレ違いかもしれませんが、DoJaのコンソールの

Main :java.lang.NullPointerException Test
java.lang.NullPointerException
at MainCanvas.<init>(+40)
at Test.start(+7)
MainCanvas

このエラー出力の(+40)や(+7)はどういう意味ですか?


604 :デフォルトの名無しさん:2008/06/25(水) 18:31:26
バイトコードの位置
<init>メソッドの40バイトめとstartメソッドの7バイトめ

605 :デフォルトの名無しさん:2008/06/25(水) 21:23:38
進むほど↑↑なのが昇順。
進むほど↓↓なのが降順。


606 :デフォルトの名無しさん:2008/06/25(水) 21:47:03
自分で使えるAPIをもっと増やしたいと思っている者ですが、みなさんの方でおすすめの本などあるでしょうか?
仕様を見ているだけではなかなか使いこなせず、使用例を見て理解したいと思うんですが、ソースをどこから探せばいいかとよく迷います。
自分のレベルですがJava歴は1年3ケ月、JSP、JSTLのタグを経て、GoFのデザインパターンを現在勉強しています。

ご教授、よろしくお願いします。

607 :デフォルトの名無しさん:2008/06/25(水) 21:48:08
new コンストラクタ(引数).メソッド(引数)

という構文を見たのですが(左辺には何も無し)、これは
staticでないメソッドを使いたい!でも他に使うものはないからインスタンスを作るまでも無い!
というときにインスタンスを介さずに非staticメソッドを呼び出すものと考えていいのでしょうか?

608 :デフォルトの名無しさん:2008/06/25(水) 21:48:30
>>605
時間軸で見た前方後方くらいにわかりづらいな

609 :デフォルトの名無しさん:2008/06/25(水) 21:59:50
>>607
いや、newでインスタンスを生成してからメソッドを呼んでる形だよ、それは。
つまり
Hoge hoge = new Hoge(param);
Hoge.method(param);
の2行を
new Hoge(param).method(param);
に省略。

610 :デフォルトの名無しさん:2008/06/25(水) 22:01:36
ああスマン、上のHoge
hoge.method(param)の間違い。

611 :デフォルトの名無しさん:2008/06/25(水) 22:12:41
>>577
なんでそんなものを作るのか。

java.lang.ComparableインタフェースとComparable#compareTo()メソッドがあるのに


612 :デフォルトの名無しさん:2008/06/25(水) 22:15:07
>>589
AtomicIntegerとか使えばいい

613 :デフォルトの名無しさん:2008/06/25(水) 22:16:18
>>607
インスタンスは必要だが参照として保持する必要がない場合に使う書き方
FileChanel channel = new FileInputStream(file).getChannel();
とかよく使うパターンかね

614 :607:2008/06/25(水) 22:47:43
>>609>>613
ありがとうございます。

内部ではインスタンスは作られているけれど、参照が無いから後から同じインスタンスをいじったりはできないということですね。
いまさらこんなこと聞くのもアレなんですが、Javaで言うところの「参照」というのはCでのポインタみたいなものと考えていいんですよね?
…ちょっと自信がなくなってきた…

>>611
出典のページによるとcompareToではオブジェクト同士の比較だけで、int同士の比較ができないから作っちまえということのようです。

615 :デフォルトの名無しさん:2008/06/25(水) 23:07:51
>>614
参照はポインタの一種と考えれば、まあ間違いはない。
ポインタで出来ることを全て参照でできないってくらい理解しておけばいいと俺は思う

616 :609:2008/06/26(木) 07:50:26
>>614
出典のページによるとcompareToではオブジェクト同士の比較だけで、int同士の比較ができないから作っちまえということのようです。

参考までに出典を教えて。説明を聞いてもIntegerクラスとのボクシング、アウトボクシングがある5.0以降なら、やはり611の言う通りと思えるので。
ボクシングの説明をただ省きたかっただけなのかもしれないけどね。

617 :デフォルトの名無しさん:2008/06/26(木) 08:02:11
IntComparatorを日本語ページでぐぐったら2003年に書いたページが出てきたけど。
これ1.5より前に書かれてるんだろうから仕方ないんじゃね?

618 :デフォルトの名無しさん:2008/06/26(木) 09:47:01
HtmlURLConnectionを用いてウェブページへのログインを実現させようとしています。
パケットキャプチャして、POSTの方はほぼ完全に一致させ、それに対するサーバーの応答も大丈夫だったのですが、その後こちらがGETするときにはPOSTの時に
URLConnection#setRequestProperty(String,String)で設定していたプロパティが完全にクリアされてしまい、サーバーから403が返ってきます。
具体的には、User-Agentが問題なようです。
GETの時のプロパティを設定するにはどのようにすればよいのでしょうか?

619 :デフォルトの名無しさん:2008/06/26(木) 12:54:34
JMFを使って動画の再生に成功。あとはタイムラインと文字を流すシステムをひっつければニコニコ動画の完成だ!


620 :616:2008/06/26(木) 13:21:43
>>617
おいおい、可能性高くてもWebで同じ名前のソース一つ見つけたからこれのこと言ってんだろってのは無謀だろ。
よしんばほんとにそうだとして、俺を納得させてどうするw
ここは614に「古いコードあてにしないで611の言うこと参考にしたほうがいい。」と言ってやるのが筋じゃないか。

621 :デフォルトの名無しさん:2008/06/26(木) 13:25:43
>>620
ってか、君こそ出典知ってどうするつもりだったん?

622 :デフォルトの名無しさん:2008/06/26(木) 14:59:17
メモ帳からデータを読み込むプログラミングを作りたいのですがうまくいきません
以下が私の作成したものです。NetBeansを用いました。
メモ帳の中のデータは
1
2
です。
package javaapplication2;
import java.io.*;
public class Load {
public static void main(String[] args) {
try { //(1)
//(2)Fileオブジェクトの生成
FileReader fr =new FileReader("test.txt");
//(3)Fileオブジェクトの生成
int i,m,s,kai=0;
//(7)読み込みデータがなくなるまで読み込み
while ((i = fr.read()) != -1) {
s=i; //(8)書き込むデータがなくなるまで書き込み
m=i;
kai = s + m;
}
fr.close();
System.out.print(kai);
//(9)読み込みストリームを閉じる
//(10)書き込みストリームを閉じる
catch(IOException e) {
} }}

623 :デフォルトの名無しさん:2008/06/26(木) 16:03:23
>>622
コメントが意味分からないんだが、どうして欲しいんだ?
ついでにそれはメモ帳からデータを読み込むプログラムとは言わないだろw

624 :デフォルトの名無しさん:2008/06/26(木) 16:07:41
>>622
どううまくいかないのか、期待したことと起きたことを明記してください。

625 :622:2008/06/26(木) 16:34:45
期待したことは、
1がsに入り2がmに入って、それらが足し算されkaiに3が入り
3が出力されるというものです。
起きた事は
100と出力されました。

626 :624:2008/06/26(木) 16:47:12
>>625
FileReader#read() は一文字(or一行?)を読むのではなく、1バイトを読み込みます。
”メモ帳の中のデータ”と言っている(おそらく)テキストファイルの先頭から1バイトづつです。
足す前に System.out.println("i="+i); 等と状況を表示する文を入れて実行し、どんな値が読み込まれているのか確認してみてください。
またどうしてそうなるのか、”メモ帳の中のデータ”をファイルダンプツールで見てみると良いでしょう。

627 :デフォルトの名無しさん:2008/06/26(木) 16:49:32
>>625
http://e-words.jp/p/r-ascii.html

sには最初'1'、つまり49が入る。
次に復帰改行で13、次に10が入る。
そして最後に'2'、つまり50が入る。

mも全く同じもの入れてるんだから、同じ。
つまり50+50=100が出力されてる。

628 :デフォルトの名無しさん:2008/06/26(木) 17:36:11
>>626
>FileReader#read() は一文字(or一行?)を読むのではなく、1バイトを読み込みます。

これは非常に語弊があると思うんだけど。。

629 :624:2008/06/26(木) 17:50:00
私の作成したのもがどのように振舞っているかは、良くわかりましたが、
どのように修正すれば良いかアウトラインが見えないので、
教えてください。

630 :626:2008/06/26(木) 17:51:23
>>FileReader#read() は一文字(or一行?)を読むのではなく、1バイトを読み込みます。
>これは非常に語弊があると思うんだけど。。

そうでした、FileReaderは文字読みでした。
なので一行でも1バイトでもなく、一文字が正解です。ごめんなさい。

631 :630:2008/06/26(木) 17:54:29
>>629
一行を文字列として読み込むというメソッドを持つクラスがあるので探してみてください。

632 :デフォルトの名無しさん:2008/06/26(木) 18:07:56
>>622
繰り返しによって合計を取る方法(どう考えても基本です)をおさらいすることも重要かと。

ちなみに、mとかsというのは何かの略ですか?気になる。

633 :624:2008/06/26(木) 18:08:04
>>631
ありがとう

634 :デフォルトの名無しさん:2008/06/26(木) 18:52:03
http://pc11.2ch.net/test/read.cgi/tech/1212085079/259
このスレでちょっと出てたのをみて興味がわいたのですが、Javaで配列の要素側から、その要素を含む配列を取得することって出来ますか?

635 :デフォルトの名無しさん:2008/06/26(木) 18:55:41
基本無理。その要素に、それを含む配列を持たせたらできるけどあほらしいし・・

636 :デフォルトの名無しさん:2008/06/26(木) 19:18:47
質問なんですけど、夏にjavaプログラマのSJC-Pの試験を受けるため勉強してるんですが、
問題集しか購入してなく、用語の解説や流れなどのった教科書が欲しいところなのですが
お勧めの本とかないですか?友達がもってるSCCの教本見たら微妙だったんですよね。
問題集のほう「徹底攻略 Java2プログラマPlatform1.4」の黒本使ってます。
お勧めなどありましたら教えてください。


637 :デフォルトの名無しさん:2008/06/26(木) 20:39:12
質問です。

Java システムアイコンを抽出 / Chat&Messenger
ttp://sattontanabe.blog86.fc2.com/blog-entry-64.html

のサイトで、ウィンドウにドラッグドロップしたファイルのアイコンを取得する
サンプルプログラムが公開されているのですが、このプログラムでは
16*16サイズのアイコンを取得することしか出来ません。

Fileから32*32もしくはそれ以上のサイズのアイコンを取得する方法はありますか?

638 :デフォルトの名無しさん:2008/06/26(木) 21:27:39
>>637
無理っす。

639 :デフォルトの名無しさん:2008/06/26(木) 22:47:09
メソッド名の書き方について質問です。

メソッド名が長くなるので略して書きたいのですが、その場合大文字小文字の区別はどうするべきでしょうか?

例として
aaaaaBbbbbCcccccDdddd
というメソッド名を短くしてABCDという名前に略すのですが、これだと規約から外れてしまいます。
そこで
1.aBCD
2.abcd
3.aaaaaBbbbbCcccccDdddd(略すべきではない)
4.その他

どれがいいのでしょうか?

640 :デフォルトの名無しさん:2008/06/26(木) 22:53:52
aaaaaBCDとか

641 :使用書無しさん:2008/06/26(木) 23:00:45
netBeansとかいまどきのIDE使ったら自動補完してくれるので、後々の読みやすさ
考えたら略さないほうがいいと思うけど。

642 :デフォルトの名無しさん:2008/06/26(木) 23:18:47
>>639
略し方すらわからなくて人に聞かなきゃいけないレベルなら略さない方が良いと思うぞ。

無意識のうちに>>639が望む回答するように情報隠してる可能性もあるし。
例えば、命名規約のルールだって全部出してるわけじゃないでしょ。

643 :使用書無しさん:2008/06/26(木) 23:22:59
634<< 配列よりVectorつかったらどうだ。
class A {
      public B parent=null;
      public void setParent(B parent){
           this.parent=parent;
      }
      public B getParent(){
            return parent;
      }
}

class B extends Vector<A>{
      @override
      public void add( A child){
             child.setParent(this);
             super.add(child);
      }
     public void add(int index,A child){
             child.setParent(this);
             super.add(index,child);
     }
}
こんなもんかな。

644 :デフォルトの名無しさん:2008/06/26(木) 23:43:35
>>639
長すぎるってのはクラスの設計が良くない兆候。
aaaaaBbbbbCcccccDdddd というメソッドが HogeManagerとかにあるんだろ、どうせ。
HogeAaaaBbbbクラスをつくり、ccccDdddってメソッドを作るような状況な筈

645 :デフォルトの名無しさん:2008/06/27(金) 00:05:06
>>624
ファイルからのデータの読み取りにはcsv形式が便利(基本)。(「1,2」とか書いてtest.csvを準備。)
以下はCSVテキスト上で同じ行にある数値の合計を順次算出して別ファイルに集計する例
package javaapplication2;
import java.io.*;
import java.util.*;

public class Load {
public static void main(String[] args) {
//データ格納用Listの準備
List<String[]> list = new ArrayList<String[]>();

try {

FileReader fr =new FileReader("test.csv");
BufferedReader bf = new BufferedReader(fr);

String st = null;
while ((st = bf.readLine()) != null) {
String[] line = st.split(",");
list.add(line);//ファイル上1行の各数値を文字列として格納
}
bf.close();



646 :デフォルトの名無しさん:2008/06/27(金) 00:05:38
//計算結果データ格納用Listの準備
List<Integer> result = new ArrayList<Integer>();
int sum = 0;
for(String[] values: list){
for(String value: values){
int num = Integer.parseInt(value);//文字列を数値型に変換
sum += num;//同じ配列内の値の合計値を求める
}
System.out.println(sum);
result.add(sum);//合計値を格納
sum = 0;
}

FileWriter fw = new FileWriter("result.csv");
PrintWriter pw = new PrintWriter(new BufferedWriter(fw));

for(Integer val: result){
pw.println(val);
}

pw.close();


}catch(IOException e) {
e.printStackTrace();
}
}
}

647 :639:2008/06/27(金) 00:11:41
レスどうもです。
今iアプリを作成してて複数単語を繋げて長くなったら打つのが面倒だから略して書けないか?
その場合どうするべきか?というのを軽く疑問に思っただけだったので、変な例を出してしまいましたが、
それがいけなかったようですので実際に作っているのを出してみます。

ダーツゲームを作成しているのですが、ゲームルールとしてスーパー・ラウンド・ザ・クロックというのがあります。
ルールクラスの中にスーパー・ラウンド・ザ・クロックメソッド(SuperRoundTheClock)を作るのですが、
この場合どうするべきか?というのが知りたかったのです。

ちなみに、SuperRoundTheClockぐらい打てよ!というのは無しの方向で・・・。
より長いものが出てきた場合に参考にしておきたいので。

648 :デフォルトの名無しさん:2008/06/27(金) 00:17:54
今どき補完できるエディタ使おうよ

649 :使用書無しさん:2008/06/27(金) 00:19:47
>>647それjavaの質問というよりセンスの問題じゃねえ?
昔cobolやってたころなんか母音略して子音だけで名づけてたな
sprRndTheClckなんてな..

650 :デフォルトの名無しさん:2008/06/27(金) 00:23:43
>>647
その場合、RuleクラスのサブクラスとしてSuperRoundTheClockRuleを作成するのが定石だと思う。
なので、メソッド名は同じになりオーバーライドすることになる。

651 :デフォルトの名無しさん:2008/06/27(金) 00:28:29
>>647
頭字語で補完してくれるよ、最近のIDEは。
Eclipseの場合だと、sRTC で補完すると superRoundTheClock() が出てくる。
重複するものがなきゃもっと短かくてもOK。
あと、Javaではメソッド名の先頭は小文字な。

652 :639:2008/06/27(金) 01:32:47
開発環境が固定されていないため(自宅と学校で学校の中でもいろんな場所でやってる)エディタ変更は厳しいです。
今は全マシンにインストールされてるエディタがあるのでそれを使っています。
今後は略さずに補完機能のあるエディタを使って開発する事がベストということですね。

>>650
上の例で突っ込まれそうな予感はしてましたが、突っ込まれてしまいました。
これはRuleクラスでメンバと抽象メソッドを作ればよいということでいいんでしょうか?




653 :デフォルトの名無しさん:2008/06/27(金) 01:51:06
>>652
そのとおり。ストラテジーパターンで。
感覚は掴めていそうに見えるから、ググって実装例を見てみるといいと思う。

もっとも、ルールが2種類しかないとか言うなら、デザパタを適用するまでも無いけどね。

654 :639:2008/06/27(金) 02:09:48
>>653
ルールは追加する予定ではいますが、時間の都合上、最悪superRound・・・だけというのも有り得ます。
が、勉強のためにそれでやってみようと思います。

655 :デフォルトの名無しさん:2008/06/27(金) 06:32:30
>>635
ありがとうございます

656 :デフォルトの名無しさん:2008/06/27(金) 15:32:50
JSFでSSLは実現できますか

657 :デフォルトの名無しさん:2008/06/27(金) 16:09:57
JDBCのresultsetのgetObjectで取得したデータの
型を取得する方法をご教示ください。

やりたいことは
resultsetのgetObjectによって
取得されたデータで作成された
ArrayList内データをcsvに出力する汎用的な
メソッドを作成しています。

そのArrayList内のデータで、文字型なら「"」で
くくりたいと考えています。

public void createCSV(List table) {
 //tableはgetObjectで取得したデータが渡される。
 for (int r = 0; r < table.size(); r++) {
  List rec = (ArrayList)table.get(r);
  for( int c = 0; c < rec.size(); c++ ) {
  //ここでrec.get(c)のデータ型を知りたい。
 }
・・・
}

658 :デフォルトの名無しさん:2008/06/27(金) 16:13:48
>>657
if (rec.get(c) instanceof String) {
...
} else {
...
}

659 :デフォルトの名無しさん:2008/06/27(金) 16:15:55
getClass().getName()
の方が早くね

660 :デフォルトの名無しさん:2008/06/27(金) 16:24:39
>>658-659
即レスでありがとうございます。
無事やりたいことができました。
勉強になりました。

661 :デフォルトの名無しさん:2008/06/27(金) 22:55:13
少し前に為替レートの取得法を相談したものですが,URLConnectionをつかってそのサイトのデータ引き落としは上手く行きましたが、
やはりレートを秒単位でリアルタイム表示しているところはとる事が出来ず行き詰ってしまいました・・
何かいい案はないでしょうか?

662 :デフォルトの名無しさん:2008/06/27(金) 23:17:54
クラス図での表現を教えてください。
(属性と操作は省略していいそうです)
そのクラス図がどのような現実世界の仕掛けを表現したものか
も教えてください。

Course Person Professor ShedcleOfClasses Section
Student Transcript TranscripEntry

663 :661:2008/06/27(金) 23:44:49
すいません。いろいろ試した結果為替レートの取得できるようになりました。
申し訳ありませんでした

664 :デフォルトの名無しさん:2008/06/28(土) 00:35:59
'else'への'if'がありません
ってどうすれば解決できるんでしょうか?

665 :639:2008/06/28(土) 00:41:43
問題になってるif文をここに貼り付ければ?

666 :デフォルトの名無しさん:2008/06/28(土) 00:42:51
ifまわりの括弧がおかしいとかだろうな

667 :デフォルトの名無しさん:2008/06/28(土) 01:10:59
http://www.objectstart.com/downloads.html
にある下から2番目のClick here to access a
Zip file containing the Java 1.5.x version
of source code for the second edition of BJO.
(This version of source code will not compile
with Java 1.4.x or earlier compilers.)
のファイルにあるCh14のCourse Person Professor
ShedcleOfClasses Section
Student Transcript TranscripEntry
のクラス図を教えてください


668 :デフォルトの名無しさん:2008/06/28(土) 09:45:47
>>667
クラス図がどんなものか知ってて、ソースコードがあれば
他人に聞く必要のあることなんてこれっぽっちも無いと思うぞ。

描くのが面倒臭いのか?
もしそうなら、ソースからクラス図を吐き出すツールを作ればいいじゃない。

あとは、それくらいの発想なら世の優秀な兄者どもが
既に思いついてるんだろうな〜って感じで、ググっちゃいなヨ。

↓はJudeっていうツールだけど、ソースからクラス図作成もできるので便利よ
ttps://jude.change-vision.com/jude-web/index.html

ちなみに ShedcleOfClasses じゃなくて ScheduleOfClasses ね

669 :デフォルトの名無しさん:2008/06/28(土) 13:56:52
☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ毎日新聞社による日本人女性への誹謗中傷☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ

・母親は受験勉強をする息子の学力向上のためにフェラチオをする
・日本人女性の55%は、出会ったその日に男と寝る
・ファストフードは女子高生たちを性的狂乱状態におとしいれる
・ティーンたちはバイアグラを使ってウサギのようにセックスをする
・女子高生は、刺激のためにノーブラ・ノーパンになる
・日本の最新の流行 : 70歳の売春婦
・老人の売春婦の人気にもかかわらず、日本では小学生の売春婦にも仕事がある
・日本の若い看護婦は売春婦に勝る
・24時間オルガズムが止まらない病気で苦しむ日本人女性の数が増えている
・15未満の子供を対象とした疑似ポルノが日本に蔓延している
・OLの72%が、セックスをより堪能するために何らかのトレーニングを受けている
・人妻は気分転換の目的で昔の恋人に抱かれに行く
・主婦は郊外のコイン・シャワーで売春をしている
・日本男子は柔道や空手の部活で男相手に童貞を捨てている
・ほとんどすべての漁師は海でマンタとSEXしている
・まだ10代の少年から退職した老人までみんな2980円の手コキを利用している
・六本木のあるレストランでは、食事の前にその材料となる動物と獣姦する

※同社が全年齢向けコーナーで七年以上にわたり世界に向けて配信していたものの一部です
※同社の行為は日本人への偏見や人種差別、婦女暴行、幼児虐待を助長するものです

◆毎日新聞の英語版サイトがひどすぎる まとめ@wiki
 http://www9.atwiki.jp/mainichiwaiwai/
◆毎日新聞問題の情報集積wiki
 http://www8.atwiki.jp/mainichi-matome/

つまり日本国民は
http://www.vipper.net/vip552788.jpg

670 :デフォルトの名無しさん:2008/06/28(土) 17:55:22
>>661
秒単位だとどうしてもソフトを間に挟むしかない
MT4などにDllフックするか優良サービスを得るか
http://www.dailyfx.com/charts/ChartStation.html
で動いてるアプレットからデータを取得するのが無難

671 :デフォルトの名無しさん:2008/06/28(土) 18:03:12
てか
前に答えてあったな

672 :デフォルトの名無しさん:2008/06/28(土) 18:13:48
670訂正
○有料
×優良
だね

673 :デフォルトの名無しさん:2008/06/28(土) 21:11:44
mysqlで100mbのデータをソートしたいのですが
ResultSetのインスタンスを所得した時点でメモリ不足になりました

また、ヒープのサイズを512MBに設定し、
100mbのCSVをCollectionsのsortメゾットでsortしたのですが
これもまたメモリ不足になってしまいました。

大量データをソートする場合どのような手段をとればいいのでしょうか



674 :デフォルトの名無しさん:2008/06/28(土) 22:36:31
マージソートの要領で、データ全体をメモリに入るサイズに分割して個別にソートし、最後にマージする

675 :デフォルトの名無しさん:2008/06/28(土) 22:38:31
ゲームプログラミングで一般的にルールを破った場合というのは例外を投げ、それを対処すべきでしょうか?
それとも、毎度ルールに沿っているかチェックして対処すべきでしょうか?

676 :デフォルトの名無しさん:2008/06/28(土) 22:39:45
入力された数字が一桁なら先頭に0をつけたすプログラムを書きたいのですが、
どうすればいいでしょうか・・・。
たとえば
6→06
としたいのです。
初歩的な質問過ぎてすいません。

677 :デフォルトの名無しさん:2008/06/28(土) 22:44:06
int num;
...
String numtext = String.format("%02d",num);

678 :デフォルトの名無しさん:2008/06/28(土) 23:27:15
http://www.objectstart.com/downloads.html
にある下から2番目のClick here to access a
Zip file containing the Java 1.5.x version
of source code for the second edition of BJO.
(This version of source code will not compile
with Java 1.4.x or earlier compilers.)
のファイルにあるCh14のCourse Person Professor
SchedcleOfClasses Section
Student Transcript TranscripEntry
のクラス図を教えてください

679 :デフォルトの名無しさん:2008/06/28(土) 23:53:53
javaでブラウザを作ってみたいのですが
SWTを使わずにGeckoエンジンを使った表示の方法はないでしょうか?

680 :デフォルトの名無しさん:2008/06/28(土) 23:53:57
プロンプトでパラメータから年・月を受け取り、その「前月」「当月」「次月」の3ヶ月をコンソールに
出力するカレンダーにするにはどうしたらいいですか?
(要するに、2008、5と入力したら、4月、5月、6月の3か月分を出力する)

条件として、
・パラメータチェックメソッドを実装すること
ただし、同メソッド内にtry/catch句を記述してはいけない。
 (自前で数値チェックを実装する)

・mainメソッドはControllerとしてのみ使用すること。
(実際の作成/出力処理は別メソッドに実装すること)

助けてもらえたら幸いです、みなさんお願いします:;

681 :デフォルトの名無しさん:2008/06/29(日) 00:02:03
>>679
Java Mozilla Html Parser

682 :デフォルトの名無しさん:2008/06/29(日) 00:03:09
なんか最近勘違い君が多いけど、ここは宿題スレじゃないんだぜ

>どうしたらいいですか?

なんて曖昧な質問には、

プログラムしたらいいのでは?

としか答えようがないでしょ?

せめて、あたかも宿題じゃないかのようにぼかす配慮をした上で
どういうコードを書いたらどういうエラーがでた、位は書こうぜ

683 :デフォルトの名無しさん:2008/06/29(日) 00:16:34
680です。
すいませんでした、ご指摘のとおり宿題スレに行きますね。

684 :デフォルトの名無しさん:2008/06/29(日) 00:20:27

if(arg[0].equals("2008") && arg[1].equals("5")){
    System.out.println("2008年4月、2008年5月、2008年6月");
}else{
    System.out.println("自分でカレンダー見て");
}


685 :679:2008/06/29(日) 00:24:20
>>681
解答ありがとうございます。
しかしパーサーじゃなくてレンダリングの方法をお願いしたかったのですが。。
XULRunnerやJavaXPCOMを見ていたのですが
SwingやAWTはなにやら無理なようなので他に方法はないでしょうか

686 :デフォルトの名無しさん:2008/06/29(日) 00:40:36
http://java.sun.com/j2se/1.4.2/ja/download.html
J2SE SDK のダウンロードができないんです
Archiveのリンクも開けません
何故でしょうか?

687 :デフォルトの名無しさん:2008/06/29(日) 00:52:04
>>679
これは?
http://jrex.mozdev.org/index.html

688 :デフォルトの名無しさん:2008/06/29(日) 00:53:30
>>673
100MB(合計だよね?)のデータを読み込めて、同程度の作業領域を確保出来るだけのメモリがあるんだから、
適当にin-placeなソートでもすればいいと思うよ

お勧めは、multikey quicksort, msd/lsd radix sort, bucket sortあたり
どのソートアルゴリズムを利用すべきかは、データ構造によるところが大きいので適宜選択のこと

689 :デフォルトの名無しさん:2008/06/29(日) 00:57:03
>>682
話に加われるだけのレベルをつけてからおいで

690 :デフォルトの名無しさん:2008/06/29(日) 01:15:20
>レベルをつけてから
>レベルをつけてから
>レベルをつけてから
>レベルをつけてから
>レベルをつけてから
>レベルをつけてから

691 :デフォルトの名無しさん:2008/06/29(日) 01:22:41
>>689
あんたは会話が成立するレベルの日本語を
操れるだけの能力を身につけてから出直しておいで。


692 :デフォルトの名無しさん:2008/06/29(日) 01:48:08
>>691
偉そうに言いながら「ら」抜き日本語かよww
正しくは「操られる」だろ
おまえこそまともな日本語使えよなww

693 :デフォルトの名無しさん:2008/06/29(日) 01:55:52
>>692
ねーよ

694 :デフォルトの名無しさん:2008/06/29(日) 01:57:52
int型のポインタを関数の引数に渡して、引数に、なんか値を戻してやる、
・・・って感じのこと、javaは、できないのか?

695 :デフォルトの名無しさん:2008/06/29(日) 02:00:44
最近のJavaって終末感漂ってるよね
10年前の輝きは何だったんだろうね
新しい言語の説明ってどれもJavaの悪い部分との比較だったりするし
Cみたいに恒常的に長生きする言語でもないし

696 :デフォルトの名無しさん:2008/06/29(日) 02:06:37
>>695
今、一番輝いてる言語ってなに?

697 :デフォルトの名無しさん:2008/06/29(日) 02:07:00
>>695
他のツールが生き残らなかったから、javaと比較するしかないって?
それ程の勢力じゃないだろう。

698 :デフォルトの名無しさん:2008/06/29(日) 02:07:52
>>673
ResultSet.TYPE_SCROLL_INSENSITIVE や ResultSet.TYPE_SCROLL_SENSITIVE を指定してないか?
それ、インメモリで処理するからメモリを馬鹿食いするはず。
ResultSet.TYPE_FORWARD_ONLY で解決しない?

699 :デフォルトの名無しさん:2008/06/29(日) 02:09:00
>>686
よくわからんが、英語版の画面に切り替えれば、1.4.2_17 ならダウンロードできたぞ。

700 :デフォルトの名無しさん:2008/06/29(日) 02:09:23
>>694
できない。どうしてもやりたいなら、クラスに包んで渡してやる必要がある

701 :デフォルトの名無しさん:2008/06/29(日) 02:12:38
>>699
ありがとうございます。
目当てのバージョンをダウンロードできました。


702 :デフォルトの名無しさん:2008/06/29(日) 02:16:18
>>694
void callee(int[] x) { x[0] = 100; }
void caller() { int[] x = new int[1]; callee(x); System.out.println(x[0]); }
滅多にこんなことしないけどなー。// 適切にクラス設計すればまず出番がない。全くないとは言わんが。

703 :デフォルトの名無しさん:2008/06/29(日) 08:56:56
691 名前: デフォルトの名無しさん [sage] 投稿日: 2008/06/29(日) 01:22:41
>>689
あんたは会話が成立するレベルの日本語を
操れるだけの能力を身につけてから出直しておいで。

692 名前: デフォルトの名無しさん 投稿日: 2008/06/29(日) 01:48:08
>>691
偉そうに言いながら「ら」抜き日本語かよww
正しくは「操られる」だろ
おまえこそまともな日本語使えよなww


★「操れる」は「ら抜き言葉」じゃないだろ。
★「食べれる」なら「ら抜き言葉」だから間違ってるが、「操れる」は正しい日本語だよ
★「操れる」=操ることができる
★「操られる」=誰かが自分を操っている


704 :デフォルトの名無しさん:2008/06/29(日) 09:13:07
しつけえ

705 :デフォルトの名無しさん:2008/06/29(日) 14:49:55
超初心者で申しあけございませんが、
画像を複数枚表示させたら画像がちらつきます。
repain();でもちらつきます。
どのワードを打ったら常にはり絵でいられるでしょうか?

マルチですけど応答がないのでこちらに質問します。

706 :r545:2008/06/29(日) 15:21:55
超初心者ですが、質問があります。

Cで言う構造体は、Javaではどのように定義すれば良いですか?以下のやつだと
どうなるか教えてください。

typedef struct cell { // セル構造体
char *key ; // 格納されたキー
int next ; // 次のセル(同族のキー)
} CELL;

 typedef struct bucket { // バケット構造体
int Bdepth ; // バケットのビット長
int nkeys ; // バケットに格納されているキーの個数
CELL cell[BSIZE] ; // キーを格納するハッシュテーブル
} BUCKET;

 typedef struct directory { // ディレクトリー構造体
BUCKET *ref ; // バケットへのポインタ
} DIRECTORY;



707 :デフォルトの名無しさん:2008/06/29(日) 15:31:52
>>706
class Cell {
 String key;
 int next;
}
class Bucket {
 int Bdepth;
 int nkeys;
 Cell[] cell = new Cell[BSIZE];
}
class Dictionary {
 Bucket bucket;
}

708 :r545:2008/06/29(日) 15:52:20
どうもありがとうございます。

3つのクラスファイルにした方が良いんですか?それとも、メインを含めて全部
まとめた方が良いですか?

あと、classの前にpublicはいらないんですが?

709 :デフォルトの名無しさん:2008/06/29(日) 15:55:36
>>708
publicなクラスはファイルを分ける必要がある。
そうじゃない場合まとめて書いても良い。
publicにするかどうかは用途による。

710 :r545:2008/06/29(日) 16:04:35
709>>

Cで書かれたプログラムをJavaで書き直せっていう課題が出てて、Cで構造体が使われて
いるんですよ。難しいです。。もし良かったら、
http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/main.htm
にのせてあるんで見てもらえますか?

711 :デフォルトの名無しさん:2008/06/29(日) 16:14:29
そういう課題ってどこで出るの?
高校?専門?大学?

712 :デフォルトの名無しさん:2008/06/29(日) 16:18:43
質問です。
次のような、タブペインに、newでインスタンスとして生成したラベルlabelをタブの数だけ配置するプログラムがあります。

public class TabbedPaneSample1 {
JLabel label;
public TabbedPaneSample1() {
JFrame frame = new JFrame("TabbedPane Sample");
JTabbedPane pane = new JTabbedPane();
for (int i = 0; i < 5; i++) {
label = new JLabel("Tab" + i);
pane.addTab("Tab " + i, label);
}
frame.add(pane);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 200);
frame.setVisible(true);
}

public static void main(String[] args) {
new TabbedPaneSample1();
}
}

ボタンを押すなどしたときに「現在表示中の」ラベルの内容を書き換えるにはどうしたらいいでしょうか?
label.settext("A");などでは一番最後に貼り付けたラベルにメソッドが働いてしまうようです。

タブペインのgetSelectedComponent();メソッドでコンポーネントは取得できるようなのですが、
コンポーネントからそのメソッドを呼び出せるものなのでしょうか?

タブの数は不定なので、あらかじめラベルを用意しておく事は出来そうにないです。

713 :デフォルトの名無しさん:2008/06/29(日) 16:21:36
>>710
つかロダのリストのどれやねん(笑

見た感じ直訳するか意訳するかがポイントかね。
コレクション使って書き直すか、Cのロジックでやってる部分をそのまま使うか。
そのまま直訳するならポインタをどう扱うかがポイントで、
意訳するなら処理の内容を理解してないと辛いかな。ソースは短くなると思うけど。

714 :デフォルトの名無しさん:2008/06/29(日) 16:28:56
>>712
取得したコンポーネントをLabelでキャストしたらいいんじゃね?

715 :デフォルトの名無しさん:2008/06/29(日) 16:40:16
>>714
キャストで出来ました!即答ありがとうございます

716 :r545:2008/06/29(日) 16:51:55
713>>
すいません!課題は大学で出ました。
ロダの306.txtと310.txtと311.txtです。
Cプログラムをただ単にJavaに書き直せと言うことだそうです。
オブジェクト指向の考えはしなくて良いので全てまとめて良いらしいですが。
Javaは勉強中でして、ちょっと出来る気がしないので見てもらえますか?
よろしくお願いします

717 :デフォルトの名無しさん:2008/06/29(日) 17:14:38
>>716
宿題スレじゃないからな、わからんとこだけワンポイントで質問しなされ

718 :デフォルトの名無しさん:2008/06/29(日) 17:21:36
CとJava同時にやるとかおもしろいなぁ・・

719 :デフォルトの名無しさん:2008/06/29(日) 19:46:05
つーかCをJavaのコードに直せとか
典型的なダメ教育だよな

720 :デフォルトの名無しさん:2008/06/29(日) 19:49:33
逆にバリバリのオブジェクト指向で書いたjavaのコードをCに直させたら勉強になるかも

721 :デフォルトの名無しさん:2008/06/29(日) 20:55:16
それJNI書くのと一緒じゃね

722 :デフォルトの名無しさん:2008/06/29(日) 21:28:42
ナンダッテ?

723 :r545:2008/06/29(日) 21:32:09
717>>

すいません。。

せめて、メイン関数だけJavaに直したのを教えてもらいたいんですが。。
少しづつやってるのですが不安で。残りはは、自分でやるので。

724 :デフォルトの名無しさん:2008/06/29(日) 21:45:50
>>719-720
変な癖が付きそうで怖い。

725 :デフォルトの名無しさん:2008/06/29(日) 21:58:55
Cでオブジェクト指向みたいなことをやってるのって、
GKT+あたりかな。

726 :デフォルトの名無しさん:2008/06/29(日) 21:59:08
>>723
そもそもどっちかの言語をある程度使える状況になってからやる課題。
おまえさんには多分無理ということであきらめた方がいい

727 :デフォルトの名無しさん:2008/06/29(日) 22:00:31
>>716
Cは読めるのか?
読めるならばどの部分がJavaに変換できないのかを質問してくれ

728 :r545:2008/06/29(日) 22:24:22
727>>

Cは読めます。Cのメインは自分で作ったので。
メインが分らないんですが。。少しずつやってるんですけど。



729 :デフォルトの名無しさん:2008/06/29(日) 22:32:25
質問です。
今、フルスクリーンとウィンドウを切り替えるようなものを作ろうとしているのですが
描画にはBufferStrategyでgetDrawGrapicsしたものを使用しています。

フルスクリーンからウィンドウに切り替える場合、ウィンドウにはなるものの
BufferStrategyがnullになってしまい描画処理が行えないという状況になりました。
少々強引ですが、runの頭でgetStrategyをし取得を試みたのですが上手くいきませんでした。

ウィンドウからフルスクリーンに切り替える場合setUndecoratedが実行できず
setUndecoratedを実行しないで切り替えると上と恐らく同じ理由で描画処理が行えませんでした。
もちろん、setUndecoratedにtrueを渡してフルスクリーンにしたいので
setUndecoratedを実行しないということはできればしたくありません。

よろしくお願いします。

730 :デフォルトの名無しさん:2008/06/29(日) 22:37:07
>>728
メインの何処が分からないのかと

731 :デフォルトの名無しさん:2008/06/29(日) 22:40:30
聞いてると
分からない所が分からない人なんじゃないのかなこの人

732 :名無し:2008/06/29(日) 23:03:44
javaの影響でyoutubeが見れなくなってしまったんですが、どうすれば見れるようになりますか?
教えてください(>_<)

733 :デフォルトの名無しさん:2008/06/29(日) 23:09:28
>>728
意地悪してるわけじゃないけど君の質問の仕方では答えのしようがないよ
きっと自分で何が分からないのかが分かってないんだと思うけど
そういう状態で人に物を聞くのは失礼というものですよ
社会に出る前にその癖を直したほうがいい

734 :r545:2008/06/29(日) 23:22:06
728 731 733

すいません。遅れました。。

メインの変数定義からファイルを読み込むまでです。
int main (void){
FILE *fp; //ファイルポインタ宣言
char *a[HSIZE]; //格納用配列
int i; //ループ変数
char inv[100]; //入力値
char infile[80]="wordE100KR.dat";
double sec;
clock_t start, end;
DIRECTORY *directory;
int depth = 2; //バケットの深さ

if((fp = fopen(infile,"r")) == 0){
printf("ファイルオープンできません。\n");
exit(0);
}
i = 0; //初期化ループ変数初期化
while(fscanf(fp, "%s\n", inv) != EOF){ //キーの読込み
a[i] = strdup(inv); //ポインタ配列にデータを格納する.
printf("%s\n",a[i]);
i++;
if(i >= HSIZE)
break;
}
fclose(fp);//ファイルクローズ




735 :r545:2008/06/29(日) 23:23:34
734をJavaにすると↓

public static void main(String args[]){

String a[]=new String[HSIZE];
String inv[]=new String[100];
int i;
double second;
clock_t start, end;
DIRECTORY[] directory;
int depth = 2;

i=0;

try{

BufferedReader f=
new BufferedReader(new FileReader("wordE100KR.dat"));
while((inv=f.readLine())!=null){
a[i] = inv;
System.out.println(a[i]);
i++;
if( i>= HSIZE)
break;
}
f.close();
}catch(FileNotFoundException e1){
System.out.println("NO File");
}catch(IOException e2){
System.out.println("Can not Open");
}


736 :r545:2008/06/29(日) 23:24:14
合ってますか?

737 :デフォルトの名無しさん:2008/06/29(日) 23:27:03
聞く前に試したら?
と言わざるを得ない

738 :デフォルトの名無しさん:2008/06/29(日) 23:38:32
まぁファイル読み込みぐらい調べればすぐできるしな・・
次からが問題だなぁ

739 :r545:2008/06/30(月) 00:44:08
737>>

動かしたんですが、警告は無視しても平気ですか。エラーは5個でたんですが。。
public class HashExtend {

static final int HM = 1048583; // 擬似キー生成時にハッシュ関数へ渡す素数
static final int BSIZE = 100; // バケットの容量
static final int BPOS_MAX = 100; // バケットの占有率上限での容量
static final int BPOS_MIN = 50; // バケットの占有率下限での容量
static final int BHM = 97; // セル格納時にハッシュ関数へ渡す
static final int BC = 29; //セル格納時に衝突した場合のハッシュの増分
static final int HSIZE = 100000;//配列のサイズ

上のコメント分が
警告: この文字は、エンコーディング MS932 にマップできません。

のように出るのですが。。

740 :デフォルトの名無しさん:2008/06/30(月) 00:49:05
>>739
そりゃエディタの文字コードの設定か何かがおかしいだけ。
Windowsのメモ帳でソースを開いてみて、おかしいところが何とかして直すんだ。


741 :r545:2008/06/30(月) 01:18:45
TeraPad でやってるんですが。

文字コードがSHFT-JISになっています。。分んないです。。



742 :r545:2008/06/30(月) 03:29:22
740>>

すいません。解決できました。
しかし、次の問題が。。

HashExtend.java:46: 互換性のない型
検出値 : java.lang.String
期待値 : java.lang.String[]
while((inv = f.readLine())!=null){
^
HashExtend.java:47: 互換性のない型
検出値 : java.lang.String[]
期待値 : java.lang.String
a[i] = inv;
このエラーって、何ですか?invがString型になってないってことですか?



743 :デフォルトの名無しさん:2008/06/30(月) 04:16:31
>>742
f.readLine() は String を戻すのであって String[] を戻すのではない。
BufferedReader を使ってファイルの読み込みをする場合、普通は

String line;
while ((line = f.readLine()) != null) {
System.out.println(line);
}

こんな感じ。

744 :r545:2008/06/30(月) 06:00:29
742>>

どうもありがとうございます!!!Cと違って代入する方は
配列にしなくても良いってことですか?

String inv[]=new String[100];は

String inv;

にしてファイルを読み込みさせれば良いんですよね?
これならエラーは取れました!





745 :デフォルトの名無しさん:2008/06/30(月) 06:30:31
>>744
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/io/BufferedReader.html#readLine()
C言語が最低限理解出来てるならこれ見れば分かるだろ。

746 :デフォルトの名無しさん:2008/06/30(月) 12:43:52
JSF&SSLの件有難うございました
何とかWeb.xmlをいじる方法で解決しました

747 :デフォルトの名無しさん:2008/06/30(月) 16:11:27
最近JDK14→15になったのでGenericsで躓いています。
単体テストでフィールド変数の中身の確認が必要になり、


748 :デフォルトの名無しさん:2008/06/30(月) 16:15:59
すみません途中で送ってしまいました。
単体対象クラスをTestというクラスだとすると

Class<? extends Test> cl = test.getClass();
Field fd = cl.getDeclaredField("fieldObjName");
Object obj = fd.get(test);

このfieldObjNameはtestの中にあるHashMap型の変数で、これが
Testクラスの持つclearメソッドでclearされていることを確認したいのですが、
ここからobjをHashMapに持っていく方法が分かりません。
そのままキャストすると勿論叱られます。
よろしくお願いいたします。

749 :デフォルトの名無しさん:2008/06/30(月) 16:35:45
>>748
なんて言って叱られるの?

750 :デフォルトの名無しさん:2008/06/30(月) 16:59:53
Java

751 :747-748:2008/06/30(月) 17:03:08
Type safety: Unchecked cast from Object to HashMap<String,ResultSetMetaData>

ObjectからHashMapへの未検査キャストを叱られているのだと思います。
単体テスト用テストケースの中で、clear前はこのフィールドがcontainsKeyで
与えられたキーのオブジェクトを持っており、clear後は持っていないことを確認する
つもりだったのですが。
どうしたらいいんだろう。

752 :デフォルトの名無しさん:2008/06/30(月) 17:10:19
>>751
Object から総称型へのキャストは怒られる。

警告つきでもいいならコンパイルオプションで -Xlint:unchecked つければコンパイルは通る。
警告抑止したいならメソッドにアノテーション @SuppressWarnings("unchecked") つけろ。

753 :デフォルトの名無しさん:2008/06/30(月) 17:18:03
>>751
HashMap<String,ResultSetMetaData>にキャストしようとするから警告が出ているのね。
使い方としておかしいんだろうけど、それでも動くし、
HashMapにキャストする分には警告も出ないのでは?

754 :747-748:2008/06/30(月) 17:47:25
>>752>>753
ありがとうございます。
やっぱりこの場合は警告無視するしかないんでしょうか。
例えばinstanceofとかでobjectがhashMapのインスタンスであることを確認するとか
なにかそういうような必要な手順があって、それをすれば叱られなくなるのかと思ってました。

ちなみにただのHashMapにキャストしようとすると警告が増えますw
HashMap は raw 型です。 総称型 HashMap<K,V> への参照は、パラメーター化する必要があります

とりあえず@SuppressWarnings付けて逃げました。
どうもありがとうございました。
もう少し頑張ってGenerics勉強します。

755 :デフォルトの名無しさん:2008/06/30(月) 17:47:33
>>751
HashMap<?,?> にならキャストできるはず

756 :デフォルトの名無しさん:2008/06/30(月) 17:52:02
もう終わったらしいよ

757 :デフォルトの名無しさん:2008/06/30(月) 17:57:13
らしいね
無駄な労力になったが、まぁ暇潰しだし

758 :747-748:2008/06/30(月) 18:00:52
>>755
うぉぉぉぉぉぉぉぉぉホントだー!ありがとうございます!!
なんでなんだろう奥が深すぎる_| ̄|〇

759 :デフォルトの名無しさん:2008/06/30(月) 18:19:58
>>754
> HashMap は raw 型です。 総称型 HashMap<K,V> への参照は、パラメーター化する必要があります
それは、GenericじゃないHashMapに何かを詰めようとしているからでは?
クリアを確認したいと言う話だったような・・・?

760 :747-748:2008/06/30(月) 19:27:31
fd.get(test)でアクセスしようとしているprivateフィールドfieldObjNameは、
HashMap<String,ResultSetMetaData>が本来の型なんですが。

1)
HashMap<String,ResultSetMetaData> hoge =
(HashMap<String,ResultSetMetaData>)fd.get(test);
→Type safety: Unchecked cast 〜と叱られる

2)
HashMap hoge = (HashMap)fd.get(test);
→HashMap は raw 型です。 総称型 HashMap<K,V> への〜と叱られる

3)
HashMap<?, ?> hoge = (HashMap<?, ?>)fd.get(test);
→おっけー!\(^o^)/


かくして3)の後、test.clearして、hoge.containsKeyがfalseになることを
確認できました。
いろいろ教えていただいて本当にありがとうございました。

761 :デフォルトの名無しさん:2008/06/30(月) 22:46:01
質問っす
javaからphpにデータを送ろうとしていて、うまくphpにデータを送信できずこまってます
環境 ローカル
php環境 Apach2
String data = "data=1";
URL cgiURL=null;
try {
//URLの生成
try{
cgiURL = new URL("http://localhost/test/get.php");
}catch(MalformedURLException e){
e.printStackTrace();
}
//設定
HttpURLConnection uc = (HttpURLConnection)cgiURL.openConnection();
uc.setRequestMethod("GET");
uc.setDoOutput(true);
uc.setUseCaches(false);
uc.setAllowUserInteraction(false);
// CGIへの書き込み用ストリームを開く
OutputStreamWriter pw = new OutputStreamWriter( uc.getOutputStream() );
// CGIにデータを送信する
pw.write(data);
// ストリームを閉じる
pw.flush();
pw.close();
}catch (MalformedURLException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
apacheのログデータをみてみると、アクセスログさえのこっていません.php単体では動作するのですがなぜかjavaからphpにはできませんでしたどういう問題点があるのでしょうかご教授ください

762 :>>761:2008/06/30(月) 22:47:08
エラーはとくにありませんでした

763 :デフォルトの名無しさん:2008/06/30(月) 23:10:00
>>761
connect() をしていない所為か?

764 :デフォルトの名無しさん:2008/06/30(月) 23:30:16
>>761
GETでDoOutputは有り得ない。


765 :r545:2008/06/30(月) 23:57:58
以下のCをJavaにすると、mallocの領域確保のところはどうやって
表すのですか??調べたらnewを使うってのが出たんですが、使い方が分らない
です。。

// 入力引数: depth : ディレクトリのビット長
// 戻り値 DIRECTORY : ディレクトリ
DIRECTORY *create_directory(int depth) {
DIRECTORY *directory ;
directory = (DIRECTORY *)malloc(sizeof(DIRECTORY) * (unsigned int)pow(2, depth)) ; // 2のべき乗倍の領域を確保
if (directory == NULL) {
fprintf(stderr, "領域確報に失敗しました\n\n") ;
exit(EXIT_FAILURE) ;
}
return directory;
}


766 :デフォルトの名無しさん:2008/07/01(火) 00:00:43
アプレットを使って定義した範囲での座標の取得の仕方は分かるんですが、アプレット以外の時はどうすればいいのでしょうか?

画面左上から(x,y)の地点にマウスカーソルがある。みたいなプログラムを作りたいです。
(簡単に言うとペイントの右下に表示されるようなのの全画面ver)

このクラスを使えばできる。みたいな感じで良いので教えてください。


767 :デフォルトの名無しさん:2008/07/01(火) 00:05:38
>>765
JavaとCは違うんだから無理なこと考えるな
何をするプログラムでそれを満たすような実装であることが重要なだけ
先にやさしいJavaでも読んでから出直せ

768 :デフォルトの名無しさん:2008/07/01(火) 00:15:37
>>765
Cのことは忘れて1からjava勉強しろ。考え方が違うから、それをJavaに1:1マッピングできたところで意味がない。

769 :>>761:2008/07/01(火) 00:30:32
>>764

すみません、POSTの間違いでした
POSTでも結果はかわりません

connect() 
は参考サイトもしてなかったのでしてないです
しても結果はかわりませんでした

770 :>>761:2008/07/01(火) 00:32:59
swingでウィンドウつくってやってるのでアプレットではないです
もしかしてそこらへんで通信できないのでしょうか

771 :デフォルトの名無しさん:2008/07/01(火) 01:15:46
>>765
コードの意味を考えようよ。
pow(2,depth)個のDIRECTORYの場所を用意しているだけでしょ?


772 :デフォルトの名無しさん:2008/07/01(火) 01:25:12
>>765
その宿題はJavaで明示的にメモリを管理させようとしてるの?
それとも結果が同じならOKなの?

コテハンつけてても一々過去のレスさかのぼって見ないんだから
宿題なら宿題である事と出題者の意図をださなきゃ答え様がないよ

773 :デフォルトの名無しさん:2008/07/01(火) 02:43:47
イテレータとコレクションに関する質問です.

クラスHogeCollectionはgetFoos()でiteratorを返すのですが,

HogeCollection h = new HogeCollection();
h.add( new Foo() );

for(Iterator<Foo> it = h.getFoos(); it.hasNext(); ){
 Foo f = it.next();
}

h.getFoo()の部分で
"型の安全性:型Iteratorの式は、未検査の型変換を使用して
Iterator<Foo>に準拠するようにする必要があります。"
という警告がでます.

かといって
HogeCollection<Foo> h = new HogeCollection<Foo>();
とすると
"型HogeCollectionは総称ではありません。引数<Foo>でパラメータ化できません。"
とエラーになります.

LinkedList<E>クラスのときはできました.

LinkedList<Integer> l = new LinkedList<Integer>();
l.add(1);
for (Iterator<Integer> it = l.iterator(); it.hasNext();)
 System.out.println(it.next());

HogeCollectionの場合,どうすれば正しい構文になるのでしょうか.
Eclipse, JavaSE6です.

774 :デフォルトの名無しさん:2008/07/01(火) 06:48:49
>>773

簡単な順に、

getFoos()の戻りがIterator<Foo>になるよう実装する。
中身ができてるなら、受け取った後でキャストするだけでもいい。


または、

HogeCollection implements Itarable<Foo> として、実装する。
この場合、イテレタの取得はiterator()で。


または、

HogeCollectionを総称化して、
HogeCollection<E> implementes Itarable<E> として実装する。
この場合、宣言と生成時は
HogeCollection<Foo> h= new HogeCollection<Foo>();
イテレタ取得は iterator();



Collection<E>を実装しないなら、HogeCollectionという命名がすでに紛らわしい。

総称の連鎖は面倒みてるときりがないので、どっかでキャストで断ち切るのも大事。

775 :デフォルトの名無しさん:2008/07/01(火) 08:42:59
>>774
アドバイスありがとうございます.
あと出しのような形になってしまい,大変申し訳ないです.

そのHogeCollectionやgetFoos()は外部の(オープンソース?というのかはわかりませんが)
jarファイルに入っていたAPIを使っていまして,私がソースを改変するのは避けたいです.

方法1,2,3もすべて外部jarのソースをいじる必要がありますよね?

>Collection<E>を実装しないなら、HogeCollectionという命名がすでに紛らわしい。

私もそう思います.iteratorを得るメソッドもiterator()になってないですし.

>>752さんのレス見て
@SuppressWarnings("unchecked")で警告は消せますが,根本的な解決になっていなくて,
少し気持ち悪いですが,あきらめるしかないでしょうか.


776 :デフォルトの名無しさん:2008/07/01(火) 08:52:40
そーゆー手が出せない(出したくない)状況で妥協するための方法だから、
@SuppressWarningsで回避しとくのだ妥当かと。


777 :デフォルトの名無しさん:2008/07/01(火) 11:20:50
Iterator<?> it = h.getFoos()

778 :デフォルトの名無しさん:2008/07/01(火) 20:49:41
皆さんにお聞きしたいのですが、さっき始めてJavaをダウンロードして環境変数を変えようと思ったら、環境変数の欄がありませんでした。
どうやって変えるか教えてください。
OSはXPでJavaはバージョン6です。

779 :デフォルトの名無しさん:2008/07/01(火) 20:56:22
>>778
path?
コントロールパネル→システム→環境変数
あれば編集、なければ新規で作れば良いよ。

780 :デフォルトの名無しさん:2008/07/01(火) 21:03:07
>>779
アリガトウございました。
解決しました。

781 :デフォルトの名無しさん:2008/07/01(火) 22:15:56
先日質問に来た者です。
フルスクリーンとウィンドウの切り替えはなんとなくできるようになったのですが
なんだかできたりできなかったりとイマイチ安定しません。
そこで助言をいただきたいと思いました。

ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/main.htm
325です。

よろしくお願いします。

782 :デフォルトの名無しさん:2008/07/01(火) 22:45:37
>>781
とりあえず、
> private boolean isFullScreenMode=true;
と言うのは合ってるの?

783 :デフォルトの名無しさん:2008/07/01(火) 23:17:18
>>782
最初をウィンドウにするかフルスクリーンにするかというところなので問題ないはずです。
切り替え自体ができたりできなかったりという状況なのでそれぞれの状態での動作は問題ない
はずなのですが・・・。

784 :デフォルトの名無しさん:2008/07/01(火) 23:25:43
安定しないのは仕方ないような気もするな
グラフィックボードに依存しちゃう処理だろうし

個人的には・・・
起動時にパラメータでフルスクリーンかどうかで起動方法を変えるほうが良いと思う。
もしくは起動時に起動モードを選択するパネルだけ出して、その後メインフレームをどっちかのモードで起動かね。

785 :デフォルトの名無しさん:2008/07/01(火) 23:30:29
安定させたいならJOGL+AWTが良い

786 :デフォルトの名無しさん:2008/07/01(火) 23:39:03
JOGLって3Dで使うもんだーって聞いていたのでよくわからないのですが
OpenGLの利用なんてまだ先な気がするので起動時のパラメーターで切り替えるようにしようかと思います。
切り替え自体はオマケみたいなもんだとわりきってみます・・・

787 :デフォルトの名無しさん:2008/07/01(火) 23:50:28
>>783
キーイベントとrun()に
synchronized(bufferStrategy){
をかけてやると安定するだろうか?


788 :デフォルトの名無しさん:2008/07/02(水) 07:01:33
BigDecimalでの値を、小数点以下を切り上げる方法って
あるんでしょうか?
Math.ceilメソッドに当たるメソッドってないですよね。
BigDecimal bd = new BigDecimal(10000.1)

結果が10001.0になるようにしたいのですが・・・。
ご教示お願いいたします。


789 :デフォルトの名無しさん:2008/07/02(水) 07:24:51
setScaleでモード指定して1で割れば?

790 :デフォルトの名無しさん:2008/07/02(水) 10:00:42
>>788
bd.setScale(0, RoundingMode.CEILING)

791 :デフォルトの名無しさん:2008/07/02(水) 11:09:06
ヒントありましたら教えてください。
Swing で JTable に RowSorter を設定してソートしてますが、
ソート対象の列のヘッダに「▲」「▼」というソート対象&方向を示す
マークが付くのを止めたいのです。
列幅がぎりぎりなのでマークが付くとヘッダ文字列が省略されてしまって…。
どうやったら出来るものなのか(プロパティ設定するだけとか
レンダラ作ってなにかメソッド無効化しろとか)情報ありましたら教えてください。

792 :デフォルトの名無しさん:2008/07/02(水) 11:34:16
教えてください。
現在の日付の前日を求めたいのですがどうしたらよいでしょうか?

793 :デフォルトの名無しさん:2008/07/02(水) 11:53:13
ほい
http://sasuke.main.jp/hikeisan.html

794 :デフォルトの名無しさん:2008/07/02(水) 12:36:55
>>793
ありがとうございます!

795 :デフォルトの名無しさん:2008/07/02(水) 15:15:16
>>794
これくらいぐぐれるようにならないとだめだぜべいびー

796 :デフォルトの名無しさん:2008/07/02(水) 15:36:13
javaアプレットを作ろうとeclipseをインスコしたんですが、参考にしているサイトに載っているgetImageメソッドが使えませんでした。
仕方がないのでNetBeanでも試してみましたが、こちらでも使えなくて困ってます。
swingのImageIConも使えないので何かアプレット用の設定が必要なのだろうとは思いますが、調べてもわからないのです。

一体どのような設定が必要なのでしょうか…

797 :デフォルトの名無しさん:2008/07/02(水) 15:38:36
参考にしているサイトでわかるとおもうか?
リンクぐらいつけれw

798 :デフォルトの名無しさん:2008/07/02(水) 15:44:31
一応、参考にしているサイトはここなんですが、eclipseの使い方に関してはノータッチなのです。
http://wisdom.sakura.ne.jp/system/java/awt/index.html
import java.applet.Applet すればいいと思ってたんですが、違うんでしょうか…

799 :デフォルトの名無しさん:2008/07/02(水) 15:58:38
>>798
どれよw

800 :デフォルトの名無しさん:2008/07/02(水) 16:09:51
うわ、自己解決でけた!
class宣言にextends Applet無かったです…

801 :デフォルトの名無しさん:2008/07/02(水) 17:10:12
>>89
無理やり抜くの痛そう、くしゃみ出る
普通にはさみで切ればいいさ
なんかシェーバーみたいなので切るやつあるけどアフロ山田読んでしまったせいで怖くて手が出せないぜw

802 ::デフォルトの名無しさん:2008/07/02(水) 23:43:45
お絵かきチャットをやろうとしたら「javaがインストールされていません。」とでて、出来ません。
最新のjavaはインストールしております。

インターネットオプションのセキュリティで「java アプレットのスクリプト」
「アクティブ スクリプト」「スクリプトの貼り付け処理による許可」を有効にしてます。

詳細設定でjavaの使用を設定してますが、
javaVM、MicrosoftVMというものはありませんでした。



インターネットセキュリティはNorton360を使っています。
ファイアウォールのプログラムルールでのjuschedは許可してます。

インターネットで色々調べたところ
javaが無効で、javaスクリプトは有効でした。


javaを有効にするにはどうすればいいでしょうか。


803 ::デフォルトの名無しさん:2008/07/02(水) 23:50:43
すみません。スレ間違いました

804 :デフォルトの名無しさん:2008/07/02(水) 23:54:24
もし知ってる人がいたら教えてください
ActiveObjectsっていうORマッパなんですが
複合主キー使えるんでしょうか?

805 :788:2008/07/03(木) 00:35:34
>>789
>>790
ありがとうございます。
setScaleメソッドを使えばよかったんですね。
気付かなかった・・・不覚。

806 :デフォルトの名無しさん:2008/07/03(木) 01:46:16
>>804
こっちで聞くが吉
http://pc11.2ch.net/test/read.cgi/tech/1134701684/

807 :デフォルトの名無しさん:2008/07/03(木) 13:01:25
インターネット一時ファイルは通常のファイルとは異なる扱いですか。

一時ファイルに対して
FILEのインスタンスを生成しようとしたらFile Not Foundとなってしまいました。

生成する方法はあるのでしょうか?

808 :デフォルトの名無しさん:2008/07/03(木) 15:01:13
>>807
そこにあるのは見せかけ?だけで実体のファイルは別の所にある。
File#list()で一時ファイルのディレクトリ一覧を見ると実際の構造が分かると思う。

で、具体的に一時ファイルがあるのは直下のContent.IE5ってところだけど、
このディレクトリは一時ファイルのディレクトリに表示されない。
なので直接アドレスバーに\Temporary Internet Files\Content.IE5って続けて書いてアクセスする。プログラムから参照する場合も同様に。

809 :デフォルトの名無しさん:2008/07/03(木) 15:55:35
例外クラスの大元であるExceptionクラスのサブクラスを作りたいときに
あなたが定義したほうがよいものを記述せよ、という問があるのだが
ぶっちゃけよくわからん
優しく教えて欲しいなり

810 :デフォルトの名無しさん:2008/07/03(木) 16:27:04
その問は間違っている
例外クラスの大元は Throwable だ

811 :デフォルトの名無しさん:2008/07/03(木) 17:55:06
その例外クラスを投げるクラスの目的によって違うだろ。

812 :デフォルトの名無しさん:2008/07/03(木) 18:06:37
>>808

ありがとうございます。
無事目的の動作をさせることができました。

list()も使って確認してみました。
そういう構成になってたんですね。

813 :デフォルトの名無しさん:2008/07/03(木) 18:56:03
>>809
問題の定義自体があいまい過ぎ

814 :デフォルトの名無しさん:2008/07/03(木) 18:58:21
>>809
問題があってそれに対する独自の例外クラスを作るとかじゃないのか・・
好きなの作れと言われても漠然としてるなぁ

815 :デフォルトの名無しさん:2008/07/03(木) 19:04:56
>>814
809ですがその通りなんです。問題文がこれで全てのためあいまい過ぎて
途方にくれてる状態です

816 :デフォルトの名無しさん:2008/07/03(木) 19:22:54
ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/main.htm

332番のコードですが、MainCanvas()のコメントをはずすと
ぬるぽになります。なぜでしょうか?

817 :デフォルトの名無しさん:2008/07/03(木) 19:27:51
>815
理解できないときは、まず出題者に質問しましょう

問題文をそのまま捉えれば、
・コンストラクタ(引数無し・文字列)
・有益な例外情報を得るためのコンストラクタとメソッド
を定義する必要があると思う。

818 :デフォルトの名無しさん:2008/07/03(木) 19:41:39
>>816
kuni[1] = new Kuni();
kuni[2] = new Kuni();
kuni[3] = new Kuni();
が必要

819 :816:2008/07/03(木) 20:13:03
回答ありがとうございます。できれば、このあたりのことを
日本語で解説しているwebサイトなどはないでしょうか?

820 :デフォルトの名無しさん:2008/07/03(木) 20:25:49
サイトは知らないけど
booleanの初期値はfalse、intやfloatの初期値は0、オブジェクトの初期値はnull
ってことくらい、どこにでも載ってそうな気がする
new したばかりの Kuni[17] には、初期値として 17 個の null が詰まってる
インスタンスを new して代入しないと、ぬるぽは当然

821 :816:2008/07/03(木) 20:52:47
ありがとうございました。なんでもかんでもnewをすれば
インスタンスがはいるものだと思ってました。

また質問しにくることがあると思いますがそのときは
よろしくお願いします。

822 :デフォルトの名無しさん:2008/07/04(金) 10:57:20
パッケージ名には、企業のドメイン名を逆順でつけるのが推奨されていますが、
うちのドメイン名にはハイフンがついているのでそのままではパッケージ名に出来ません。

こういう場合に推奨される命名規約ってあるのでしょうか?

823 :デフォルトの名無しさん:2008/07/04(金) 11:03:02
sun-java→sunJavaとか

824 :デフォルトの名無しさん:2008/07/04(金) 11:34:50
>>822
ある、アンダースコアにすべし。

http://java.sun.com/docs/books/jls/third_edition/html/packages.html#40169
>If the domain name contains a hyphen, or any other special character not allowed in an identifier (§3.8),
>convert it into an underscore.

825 :デフォルトの名無しさん:2008/07/04(金) 16:02:38
証券会社のトップとかに表示される為替レートをとりたいんですが、
ConnectURLだとやはりその部分が表示されません。
ああ言ったデータを読み取ることはJavaではできないでしょうか。

826 :デフォルトの名無しさん:2008/07/04(金) 16:04:20
>>825
たとえばどのページ?

827 :デフォルトの名無しさん:2008/07/04(金) 16:13:16
レスありがとうございます。
証券会社だとマネーパートナーとかのトップから落としたいのですが。

828 :デフォルトの名無しさん:2008/07/04(金) 16:22:12
>>827
パケットキャプチャすればURLわかったよ。
そのURLでゲットすれば取れたよ。


829 :デフォルトの名無しさん:2008/07/04(金) 16:37:05
なんと!
自分の未熟さがわかりました・・・
いまJava始めて2ヶ月ほどなのですが、パケットキャプチャという単語すら知らず。
自分も早く答えれる側になれるようがんばります。
ありがとうございました。

830 :デフォルトの名無しさん:2008/07/04(金) 16:54:22
>>829
うむ。精進しなされ

831 :デフォルトの名無しさん:2008/07/04(金) 16:55:05
脆弱なインターフェイスなのに好きだね〜
そのサイトがデザインや仕組みを変えてこないとは限らないだろうに

832 :デフォルトの名無しさん:2008/07/04(金) 17:29:11
元気な人が居るなw
>>831
確かに思うけど、個人ではそれが限界なのかも。まさか銀行に金払って送ってもらうほどでもないし。
>>829
いきなりパケットキャプチャ城ってのも酷だな

そんなことはどうでもいいんだけど、おすすめ2ちゃんなるに育児が入ってるのが地味におもしろい

833 :319:2008/07/04(金) 18:22:36
自己組織化(雪の結晶の成長とか貝殻の形成とか砂浜の造成など…)をグラフィカルに表示するような Java を書いてみたいのですが、そういったソースコードはどこかに落ちていませんでしょうか?
もしくはそういったページをご存知でしたら教えていただけると嬉しいです。

834 :319:2008/07/04(金) 18:31:20
「自己組織化」について学問・理系板の「全般」「物理」「化学」「生物」「機械・工学」「ロボット技術」「情報システム」「情報学」「シミュレート」「未来技術」「地球科学」 あたりはタイトル一覧を全て探してみたのですが見付かりませんでした。
他の分野は何となく無さそうだったので調べていません。「化学」と「生物」で見付からなかったのは驚きでした。



835 :デフォルトの名無しさん:2008/07/04(金) 18:40:13
>>833
http://homepage3.nifty.com/imura/06fractal/Koch-2/Koch2_main.htm

836 :319:2008/07/04(金) 20:18:14
>>835
ありがとうございます!

837 :デフォルトの名無しさん:2008/07/04(金) 20:19:53
strutsのActionServletやActionFormを継承したクラスのクラス編集に直列化できないフィールドを追加すると、
シリアライズしたときにエラーになると思いますが、実際この辺をシリアライズするのは
ウェブコンテナだと思いますが、コンテナがシリアライズ失敗したときにはシリアライズをあきらめるだけなので、
クラスタ構成をしていなければ問題無しと考えてよろしいでしょうか?

838 :デフォルトの名無しさん:2008/07/04(金) 23:46:45
「'else'への'if'がありません。」と出たのですが、エラーを示されてる文には「else if」と入力されており、エラーの意味がわかりません。
どうすればいいですか?

839 :デフォルトの名無しさん:2008/07/04(金) 23:53:47
>>838
if(〜){

}else if(〜){

}
の最初のifが無いんじゃね?

840 :デフォルトの名無しさん:2008/07/04(金) 23:55:42
>>839
それはあります。

なんでできないのかいまだにわけがわかんないです。

841 :デフォルトの名無しさん:2008/07/05(土) 00:01:14
該当部分のコードを貼るんだ
このままだと誰にもエスパー回答しかできないと思うが

842 :デフォルトの名無しさん:2008/07/05(土) 00:03:59
どうせ{}忘れだろな〜と

843 :デフォルトの名無しさん:2008/07/05(土) 00:04:46
ソースの形を変えてみたら、少し改良の問題は残るものの一応コンパイルできました。
ただ、またこういうトラブルが起きたときに困りそうなので、とりあえず一通りソース貼ってみます。

(前略)
int num = (int)(Math.random()*11);
int N;
do{
System.out.println("1〜10までの整数を入力してください。");
BufferedReader br =(以下略)
String str = br.read.line();
int num2 = Integer.parseInt(str);
if(num == N)
break;
else if(num > N)
System.out.println("もっと大きいです。");
else if(num < N)
System.out.println("もっと小さいです。");
else if((num != N && N > num+2)||(num != N && N < num-2))
System.out.println("もっと大きいです。");
System.out.println("惜しい");
else if((num != N && N < num+2)||(num != N && N < num-2))
System.out.println("もっと小さいです。");
System.out.println("惜しい");
}while(true);
System.out.println("あたりです。答えは"+num+"です。);
(以下略)

コンピュータがランダムで出した数字に対して、数字を入力し、正解していたらあたり、はずしていたら「もっと小さいです。」などを表示し、さらに誤差が±2以内であれば「惜しい」と表示されるプログラムです。

844 :デフォルトの名無しさん:2008/07/05(土) 00:08:06
>>842
あなたは何時もただしい。

845 :デフォルトの名無しさん:2008/07/05(土) 00:24:30
>>828
そのURLは
http://www.moneypartners.co.jp/rate/rate.js
ですか?いろいろ試したんですが・・・

846 :デフォルトの名無しさん:2008/07/05(土) 00:38:22
>>843
ifで{}が省略できるのは処理が1行のみのとき。

else if((num != N && N > num+2)||(num != N && N < num-2))
System.out.println("もっと大きいです。");
System.out.println("惜しい");
else if((num != N && N < num+2)||(num != N && N < num-2))
System.out.println("もっと小さいです。");
System.out.println("惜しい");

ここでelse if内にSystem.out・・・が2あるからダメかと。

あと、上のほうでnum == Nとしてるからnum != Nって省略してもいいと思うけど。


847 :デフォルトの名無しさん:2008/07/05(土) 00:49:57
質問です
JavaBeansについて調べようと思ったのですが
EJBとかの本はたくさん出てるのに、
デスクトップアプリで使いそうな単なるJavaBeansの入門書とかの情報
は随分と古い本しかみつからないんですが、
もう使われてない技術なんでしょうか?

848 :デフォルトの名無しさん:2008/07/05(土) 00:55:16
>>846最終行
上の方云々の前に、

N > num+2 ⇒ num != N

は自明だし、そもそも

num == N
num > N
num < N

で全部じゃないかというツッコミが…

>>843は論理式の勉強をして、カルノー図くらい書けるようになるのが先決だな

849 :デフォルトの名無しさん:2008/07/05(土) 01:04:42
>>833
ぐぐってみた。
ttp://www001.upp.so-net.ne.jp/suzudo/gallery.html
ttp://www2.ttcn.ne.jp/~yokohori/index2.htm
http://ja.wikipedia.org/wiki/%E3%82%BB%E3%83%AB%E3%83%BB%E3%82%AA%E3%83%BC%E3%83%88%E3%83%9E%E3%83%88%E3%83%B3

意外な所だけどこのスレがいいかも。

【ダンジョン】 自動生成 2 【地形】 @ゲーム制作板
http://pc11.2ch.net/test/read.cgi/gamedev/1182223295/

850 :デフォルトの名無しさん:2008/07/05(土) 01:44:13
>>847
ググレば充分
JavaBeansは別に難しい技術じゃなくて、こういうルールで作ろうぜっていう決まりみたいなもん
XMLのルールはあるがどのようにXMLを使うかは技術次第とかそんな類

851 :デフォルトの名無しさん:2008/07/05(土) 02:58:08
>>848
>int num2 = Integer.parseInt(str);
入力してるのは N じゃなく num2 だろというツッコミも…

852 :791:2008/07/05(土) 05:56:40
自己解決しました。
DefaultTableCellHeaderRenderer のソースをやっと見られまして、アイコンとして設定していることが分かりました。
以下のレンダラを JTableHeader に設定することで「▲」「▼」が付かなくなりました。

class TableCellHeaderRenderer extends DefaultTableCellHeaderRenderer {
private static final long serialVersionUID = 1L;
@Override
public void setIcon(Icon icon) {
if(icon == UIManager.getIcon("Table.ascendingSortIcon") ||
icon == UIManager.getIcon("Table.descendingSortIcon") ||
icon == UIManager.getIcon("Table.naturalSortIcon")) return;
super.setIcon(icon);
}
}

853 :デフォルトの名無しさん:2008/07/05(土) 06:08:13
>>843
なんという予想通りw。一応まとめ↓

//  前略。でも int N=Integer… ← int num2=Integer・・・ だよね
//  >843のif(N==num)のところから置き換え
if(N<=0 || 10<N) continue; // 入力が1〜10でなければループの先頭からやり直す
if(num==N){ // 正解の場合。ループを抜ける
 System.out.println("あたりです。答えは"+num+"です。"); //正解のときに表示するんだから普通ここに書くべき
 break;
}
if(num < N){
 System.out.println("もっと小さいです。");
}else{ // すでに==にはなり得ないのでelseで十分
 System.out.println("もっと大きいです。");
}
// ↓ここにelseをつけないのが重要。else ifは、それ以前のifがヒットした時に無視される
if(num-2 <= N && N <= num+2){ // num-2 <= N <= num+2 の意味。
 System.out.println("惜しい");
}
} while(true);

数直線にしてみるとわかると思うが、else if((num != N && N… あたりの不等号が明らかにおかしい。
if((num != N && N > num+2)||(num != N && N < num-2)) には、
あと、random()は0もとり得るので、ソコは
int num = (int)(Math.random()*10) + 1; とかのほうがマシかと。
いや、Javaはあんま知らんから違ってたら誰か直して。

854 :853:2008/07/05(土) 06:11:03
ミスった。Shift+Enterしてもたotz。
「あと、random・・・」の前の行は、
「if((num != N && N > num+2)||(num != N && N < num-2)) には、N=100もマッチするはず。」
と書きたかった。

855 :デフォルトの名無しさん:2008/07/05(土) 07:04:48
javaコントロールパネルが開きません。
コントロールパネルからjavaのアイコンをクリックすると
「C:\Program Files\Java\jre1.6.0_06\bin\javacpl.exe」
と表示されるので、「javacpl.exe」をクリックすると今度は
「C:\Program Files\Java\jre1.6.0_06\bin\javaw.exe -Xbootclasspath/a:"C:\Program Files\Java\jre1.6.0_06\bin\..\lib\deploy.jar" -Duser.home="C:\Documents&Settings\ユーザー名" com.sun.deploy.panel.ControlPanel」
と表示されます。
どうか対処法をご教授くださいませ。

856 :デフォルトの名無しさん:2008/07/05(土) 11:38:01
Ruby の File#truncate(バイト数) のように、
ファイルサイズを指定バイト数にするには、Java ではどうしたら良いのでしょうか。


857 :デフォルトの名無しさん:2008/07/05(土) 11:51:08
>>856
RandomAccessFile raf = new RandomAccessFile(path, "rw");
raf.setLength(バイト数);
raf.close();

標準APIには、メソッド一発でできる様な便利メソッドはなかったような。

858 :デフォルトの名無しさん:2008/07/05(土) 12:08:21
>>852
へえ、こんなんあるんだ

859 :デフォルトの名無しさん:2008/07/05(土) 19:51:07
java初めて8年の初心者です。嘘です。あんまり初心者じゃない。

仕事で、金勘定とか在庫管理とか何だとか、いくつかのプロジェクトを周ってきたんだけど
「コード」「コード定数」とかいう言葉がよく使われますよね?
業界標準と考えていいのかな?
(お前のプロジェクトだけだwwって事なら、後で解説します・・)

んで、今まで周ってきた、どの会社のどのプロジェクトでも、このコードを
普通のクラスと普通の public static final String で定義する決まりになってるんですが
enum を使いたくない理由って何なのでしょうか?
DBに値を突っ込みにくいとか、あるいはDBからエンティティを復元しにくいとか?

でも enum を使えば、麺種別コードを入れるべき所に間違えてダシ種別コードを入れてしまうような
事故がなくなるはずなのに。
この事故のせいで、数十人月は損してるんじゃないかな?特に今回のアソコは・・・

860 :デフォルトの名無しさん:2008/07/05(土) 20:12:08
>>859
enumはjava5からだから昔からあるシステムのメンテや追加だとまだ使いたがらないことが多い。

861 :デフォルトの名無しさん:2008/07/05(土) 20:24:00
うちのシステムではなぜか定数はinterface派だな。
public interface Foo {
  int AAA = 1;
  String MSG = "UGO UGO";
}


862 :デフォルトの名無しさん:2008/07/05(土) 20:36:42
>>859
「よく解らないので(知らないものは)採用できない」と言われたことあるぜw

863 :デフォルトの名無しさん:2008/07/05(土) 21:05:58
むしろ定数自体が邪悪

864 :デフォルトの名無しさん:2008/07/05(土) 21:31:43
うちもインターフェイスかな・・
Static importとか使う?

865 :デフォルトの名無しさん:2008/07/05(土) 21:36:35
>>864
import java.util.*; のような表記は全然OKだけど、static import は使わない。

866 :デフォルトの名無しさん:2008/07/05(土) 22:05:38
個人のサンデープログラマは気ままにEnumのみ

867 :デフォルトの名無しさん:2008/07/05(土) 22:35:05
質問です。
画像ビューワみたいなのを作ってます。
画像を JScrollPane の中央に表示させたいんですけど、
ウィンドウのサイズをいじると左上に移動してしまいます。
これをなくしたいのですが。。。以下ソースコード(1/2)
package test;
import java.awt.*; import java.awt.image.*; import javax.swing.*; import javax.swing.event.*;

public class JSTest extends JFrame implements ChangeListener{
private JScrollPane sp;
private MyCanvas mc;
public JSTest(){
mc = new MyCanvas();
sp = new JScrollPane(mc);
getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
getContentPane().add(sp);
JSlider js = new JSlider(20, 300, 100);
js.addChangeListener(this);
getContentPane().add(js);
pack(); setVisible(true);
}
public void stateChanged(ChangeEvent e){
int newScale = ((JSlider)e.getSource()).getValue();
mc.setScale(newScale);
// サイズに合わせて位置を調整
sp.getViewport().setViewPosition(new Point(newScale - 100, newScale - 100));
repaint();
}
public static void main(String[] args){ new JSTest();}

868 :デフォルトの名無しさん:2008/07/05(土) 22:37:33
class MyCanvas extends JComponent{
private int scale = 100;
private Image img;
private Dimension size;

public MyCanvas(){
int[] pixelData = new int[240 * 240];
for(int i = 0; i < pixelData.length; i++) pixelData[i] = (255 << 24) | (int)(Math.random()*256*256*256);
MemoryImageSource mis = new MemoryImageSource(240, 240, ColorModel.getRGBdefault(), pixelData, 0, 240);
img = createImage(mis);
size = new Dimension(240, 240);
}
public int getWidth(){ return size.width * scale / 100;}
public int getHeight(){ return size.height * scale / 100;}
public void setScale(int scale){
this.scale = scale;
}

public void paintComponent(Graphics g){
g.drawImage(img, 0, 0, getWidth(), getHeight(), null);
}
}
}
ソースコード終わり。getWidth()とかオーバーロードしてるのがまずいんですかねぇ。。

869 :デフォルトの名無しさん:2008/07/06(日) 03:16:22
>>867
スクロールペインで全体の一部を表示する為の機能なので、通常の使い方ではないのでは?

真ん中に表示だと、こんな感じ。
ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/333.java

870 :デフォルトの名無しさん:2008/07/06(日) 04:07:52
>>869
ごめんなさい
スクロールできてなかった。
ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/334.java

871 :デフォルトの名無しさん:2008/07/06(日) 08:28:52
JPanelにBufferedImageをadd出来た気がする

872 :867:2008/07/06(日) 09:50:38
>>869,870
うおお。なるほど!
paintComponent のほうで調節するんですね。。
これなら使えそうです。ありがとうございました。

873 :デフォルトの名無しさん:2008/07/06(日) 10:32:07
質問です。

今、Java で大量に同時に画像を読み込むプログラムを書いてるのですが、
-Xmx オプションで 1GB くらい確保しても、OutOfMemoryError がでてしまいます。

Windows には物理メモリが足りなくなったときに HDD をメモリに見立てた
仮想メモリというものがあると思いますが、これを Java で使うことはできない
んでしょうか?

874 :デフォルトの名無しさん:2008/07/06(日) 10:42:40
それで足りないならば設計を疑えよ
どっかに大きなボトルネックあるだろ、常考
おおかた全部配列とか馬鹿食いのオンメモリなんだろうが

875 :873:2008/07/06(日) 10:48:34
>>874
そうです。画像データは全部配列です。。。
int[] pixelData = new int[2000 * 2000];
みたいな画像データを20〜50くらいメモリに持ってます。
同時に表示することもあります。

表示するサイズは小さいサムネイルサイズなので、
それだけ残して、元データは HDD に保存してもいいんですけど、
VM が物理メモリを勝手に使ってくれるというのは
結局同じようなことなのかと思ったので質問しました。

VM が全部解決してくれたら、プログラマは楽だなぁと。。

876 :デフォルトの名無しさん:2008/07/06(日) 10:55:28
画像のクラスを使わないであえて配列でしてるのか・・

877 :873:2008/07/06(日) 10:57:48
>>876
あえてというか、画像クラスの使い方がわかってません orz
32bit グレースケール
32bit x 3 の RGB 画像
これを保持できる画像クラスがあればそれで代用したいですが。

878 :デフォルトの名無しさん:2008/07/06(日) 11:12:03
配列はなるべく連続した領域をメモリに確保しようとするから効率は最悪
そもそも、bmpみたいな形式でオンメモリに持っている時点でアウト
素直にImageクラスなり使え、不満になったら自作するか拡張しろ

879 :デフォルトの名無しさん:2008/07/06(日) 11:15:04
むしろ画像を使おうとしてどうして配列を思いついたほうがすごいな
ググってもImageとかBufferedImageとかしか出ないと思うんだが

880 :873:2008/07/06(日) 11:17:48
>>878
なるほど、効率が最悪なんですね。。。

ただ、高速化のために配列のデータを C++ で書いた DLL に渡して
ゴリゴリ画像処理もしたりしてるので、難しいかもしれません。。

まぁ、最初から明示的にメモリを解放できる C++ で作った
ほうがよかったかもしれませんね。。。

881 :デフォルトの名無しさん:2008/07/06(日) 12:14:41
>>873
DLL使っているならば最初からC++で書けよ
なんでJava使うのか意味わからね
言語の選択方法から学んだほうがいいぞ

882 :デフォルトの名無しさん:2008/07/06(日) 12:18:58
サムネイルを表示した後も、プログラム内でくわえ込んでいるようなこと書いてるから、
C++で書いても同じことでは?

883 :デフォルトの名無しさん:2008/07/06(日) 12:26:10
>>873
OS が仮想化してようがなんだろうが、VM に最大 1GB だと言えばそれしか使えないだろ。
なんだったら 100GB でも 100TB でも要求してやれば?
結局やることをやらにゃならんことが分かるだろw

884 :デフォルトの名無しさん:2008/07/06(日) 12:35:22
結論:Javaは糞

885 :873:2008/07/06(日) 12:38:19
周囲にプログラマーが居ないので勉強になります。助かります。m(_ _)m

>>881
もっともな意見です。ただ、
・Java での画像処理関連の資産を使いたかった
・開発当初は高速化の必要性がなかった
・開発当初は VC++ を持ってなかった(笑
という感じで、こうなってます。
あとやっぱり開発環境は Eclipse が好きなので、、

>>882
そうなんですけど、使わなくなった画像とかを gc がちゃんと
回収してくれてないような気がして。。
しっかり解放してないからかもしれませんが。。

>>883
-Xmx で 5000M とか指定すると VM が起動しないのですが。。
それとも何かやりかたがあるのでしょうか

886 :デフォルトの名無しさん:2008/07/06(日) 12:54:38
>>885
>-Xmx で 5000M とか指定すると VM が起動しないのですが。。
すまん、回りくどかったか。
「仮想化さえされてれば*無限に*メモリがつかえる」と勘違いしてるように見えたので
「無限に取って見れ」と言いたかったのだ。
5000M 指定で VM が起動できない理由は自分で調査してもらうとして、仮にそれで動いても
「大量に同時に画像を読み込むプログラム」に足りてるかどうか分からない。
結局いつかは Out of Memory になる可能性があるだろう。
gc の回収が間に合わないかもしれないしな。
それなら結局どこかでメモリ使用量を抑える(ファイルベースで動くとか)様にせにゃならん。
これでどうかな?

887 :デフォルトの名無しさん:2008/07/06(日) 13:01:08
>>875
おまい、ちょっとは消費メモリ見積れ。
4(intのサイズ) * 2000 * 2000 = 約16MB、それが50個あったら800MB、
その配列以外にもいろいろリソース使ってるはず(サムネイル生成とか)
だから、そりゃ1GBじゃ足りなくなるだろう。
GCは、使ってない領域を解放するだけで、使ってる領域をどうにかして
くれるわけじゃないぞ。

888 :873:2008/07/06(日) 13:06:25
>>886
なるほど。わかりました。

>それなら結局どこかでメモリ使用量を抑える(ファイルベースで動くとか)様にせにゃならん。
これをJVMが勝手にやってくれると助かるなぁと思ったんですよね。

C/C++ に比べて Java はメモリスペースを意識しなくてプログラミングできるのが
利点だと思っていますので。。。(勘違いでしたらすいません。)

889 :デフォルトの名無しさん:2008/07/06(日) 13:11:20
>>885
> 使わなくなった画像とかを gc がちゃんと回収してくれてないような気がして
お前が使わないつもりでも、「どこか」からたどれるルートがあれば、それは「使われてる」と見なされる。
例えば、
static int[] img = new int[2000 * 2000];
なんて書いてあったら、img に null を入れん限り永遠に解放されない。

890 :デフォルトの名無しさん:2008/07/06(日) 13:13:48
>>888
勘違い。free/deleteを自動的にやってくれるだけ。

891 :873:2008/07/06(日) 13:27:17
うーん、なるほど。

Javaでは、ポインタが無かったり、GCがあったり、明示的に解放できなかったり
するんで、JVMが「メモリのことは忘れてくれ」って言ってくれてるんだと拡大解釈していました。

ソフトの設計のほうを見直すことにします。

ただ、画像をファイルに保存して、配列を解放するようにしても
gc が追いつかずにOutOfMemoryが出ることはありそうですが。。。

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

892 :デフォルトの名無しさん:2008/07/06(日) 13:29:24
言い切ってしまえば、VM にメモリ仮想化は無い。
(世の中全部の VM を知ってるわけじゃないから「ある」と言われたらそれまでだがw)
だから、自分でしろ。

893 :デフォルトの名無しさん:2008/07/06(日) 13:40:01
VMってマジで物理メモリでしかやりくりできないの?
Windowsに乗ってるアプリとは思えない仕様だね

894 :デフォルトの名無しさん:2008/07/06(日) 13:41:49
>>891
VM規定に反してなければOutOfMemoryError出す前にGCが未使用メモリを回収してるはず。
強参照しっぱなしなのに「解放してるはず」と思い込んでる事は、かなり頻繁にある。

895 :デフォルトの名無しさん:2008/07/06(日) 13:57:58
>>893
それはおまえの読み違いだ。

896 :デフォルトの名無しさん:2008/07/06(日) 14:07:10
JPAでOneToManyのMany側を絞り込み検索した状態で
One側を得るようなJPQLはどのように書けばよいのでしょうか。
例えば従業員の作業日誌の直近5日分を
全ての従業員分取得するといったケースです。

897 :896:2008/07/06(日) 14:18:27
あ、ORMスレがあったのでそちらに移動します。
こちらはクローズでお願いします。

898 :デフォルトの名無しさん:2008/07/06(日) 18:07:40
JToolBarのボタンにつくフォーカスの四角い枠の表示ってどうやったら操作出来るでしょうか?

899 :デフォルトの名無しさん:2008/07/06(日) 18:37:24
しつこくすみません。
どなたか>>618を教えていただけないでしょうか?

900 :898:2008/07/06(日) 18:37:56
すいません自己解決しました。

901 :デフォルトの名無しさん:2008/07/06(日) 19:01:14
>>899
設定しなおせば?

902 :デフォルトの名無しさん:2008/07/06(日) 19:18:10
>>901
いえ、設定し直すもなにも、methodをPOSTに設定しrequestPropertyを設定するまではいいのですがその後コンテンツを取得する際、
内部的にrequestMethodを初期化(あるいは再設定?)するらしく、設定できないのです。

903 :デフォルトの名無しさん:2008/07/06(日) 20:00:52
>>902
「その後」と言うが良く分からない。
こんな風なGETやPOSTじゃないの?
ttp://www.hpc.cs.ehime-u.ac.jp/~aman/java/http/

904 :デフォルトの名無しさん:2008/07/06(日) 20:35:29
1.POSTでログイン時の情報を送る。
2.サーバーからSet-Cookieなどの返答がある。
3.GETでページデータを取得。

POSTに設定後各種プロパティを設定し、getInputStream()をした時点で内部で上の1〜3を行うようで、
1の接続ではMessageHeaderに設定したプロパティがそのまま使われるので大丈夫なのですが、3で再び接続する際勝手に各プロパティを設定されてしまいます。
説明が分かりにくくて申し訳ありません。

905 :デフォルトの名無しさん:2008/07/06(日) 20:52:43
1.リクエストプロパティの設定
2.サーバーからレスポンスを得る
3.InputStreamなどでデータを読む

一回の接続でこれを行うので、ほかにも処理をしたい場合は再度1〜3を繰り返す。
それともリダイレクトの事なのだろうか?

906 :デフォルトの名無しさん:2008/07/06(日) 21:06:56
>>899
そのコードをアプしてくれ。

907 :デフォルトの名無しさん:2008/07/06(日) 21:20:46
>>904
1 → 2 と 3 は別だろ。
1 の POST に関する処理は 2 で終わってる。
1 のために作った HttpURLConnection に対しての getInputStream と、
3 の GET と勘違いしてないか?

908 :デフォルトの名無しさん:2008/07/06(日) 21:32:57
ちなみにPOSTで送られてくるクッキーはGET時に自分で設定しないと
送られないのは分かっているか?

909 :デフォルトの名無しさん:2008/07/06(日) 21:45:37
>>905
その通りでした。確かにリダイレクト時にリクエストプロパティが再設定されてしまうようですが、今回はそれが原因ではありませんでした。

クッキーについては、CookieManagerにCookiePolicyとしてとりあえずCookiePolicy.ACCEPT_ALLを設定し、一応その情報が送られていることをパケットキャプチャで確認しておりましたが、そのクッキーがいくつか欠けていたようです。
サーバーからSet-Cookieとして送られてきていて、全て受け入れるようにしているにも関わらず一部しかクッキーが設定されていないのが現在の疑問です。
まだしばらく検証してみます。

いろいろな方がわざわざ解決しようとしていただいたのに、お気持ちを踏みにじるようなことになってしまってすみません。

910 :デフォルトの名無しさん:2008/07/06(日) 22:08:01
ava.util.Map.Entryってどういう意味があるの?
どういうときに使うかを教えてください。

911 :デフォルトの名無しさん:2008/07/06(日) 22:15:57
それはKeyとValueのペアを表すオブジェクト。
基本的にはMapの内部で使われるだけで、あんまり意識しなくていい。

意識する時はKeyとValue両方の値をイテレートする時くらいかな。
keySetのイテレートからgetで値を取り出す手法より速いからね。

912 :デフォルトの名無しさん:2008/07/06(日) 23:37:02
>>899
これ、何に使うのかが気になる。

913 :デフォルトの名無しさん:2008/07/06(日) 23:46:04
テストの自動化とか、日次処理とか用途はいろいろ考えられるね。

914 :デフォルトの名無しさん:2008/07/06(日) 23:46:32
すみません、質問です。

現在JavaからMS-DOSのバッチファイルを呼び出して処理したいと思っています。
Runtime.exec()を使用して呼び出し・処理自体は成功しているのですが
バッチ内部からの返り値をJava側で取得する事はできないのでしょうか?

915 :デフォルトの名無しさん:2008/07/06(日) 23:46:56
>>912
fx取引でもするつもりなんじゃね

916 :デフォルトの名無しさん:2008/07/07(月) 00:01:37
Process#exitValueじゃね?


917 :デフォルトの名無しさん:2008/07/07(月) 00:32:32
>>916
Exitvalueで値は帰ってくるのですが、常に0となってしまいます。
バッチ内では明示的に1を返しているのですが・・・
何かやり方がまずいのでしょうか・・・。

918 :デフォルトの名無しさん:2008/07/07(月) 00:39:47
>常に0となってしまいます。
バッチの呼び出しに成功してるから0なんじゃね?
ここらへんwinとlinuxで実装違った気がする。
linuxで同じこと試せる?

919 :デフォルトの名無しさん:2008/07/07(月) 00:52:14
バッチって
cmd /c batch.bat
って呼び出すんだっけ?


920 :デフォルトの名無しさん:2008/07/07(月) 00:52:20
>>918
>linuxで同じこと試せる?
今のところLinuxの環境がないですね・・・
会社の方にあったかもしれないので探してみます。

>バッチの呼び出しに成功してるから0なんじゃね?
ExitValueとは、バッチでの処理で返した値というより
バッチを動かすプロセス自体の成否結果を取得する、というイメージでしょうか?

921 :デフォルトの名無しさん:2008/07/07(月) 00:55:53
もしexitValueでの解決が難しいようなら、ステータス(に相当するモノ)を
echoして、Processの出力を読むことで代替できるかもしれない。
敗北感ありまくりだけど。


922 :デフォルトの名無しさん:2008/07/07(月) 00:56:56
public static void main(String[] args) {
// TODO Auto-generated method stub
Runtime rt = Runtime.getRuntime();
try{
Process p = rt.exec("hoge.bat");
p.waitFor();
System.out.println(p.exitValue());
}catch(Exception ex){
ex.printStackTrace();
}

}


hoge.bat中身は、
exit 1
のみ。

当方の環境は、windows
これで 1 って表示されるよ。

923 :デフォルトの名無しさん:2008/07/07(月) 01:10:51
>>921
アドバイスありがとうございます。
解決が難しい場合はやってみたいと思います。

>>922
サンプルまでつけて頂きありがとうございます。
やはりExitValueでバッチの返り値自体を取得できるのですね・・・
当方もWindowsなのですが、なにか環境の問題なのかもしれませんねorz
もう一度全体的に問題がないか見直してみます。

924 :デフォルトの名無しさん:2008/07/07(月) 01:21:42
http://www.velocityreviews.com/forums/t132971-exit-code-of-a-batch-using-exit-b.html

自分のとこでやったら0だったけど、Windows 2003 (Server?)では期待通りに
動いたとかいう古い投稿記事。


925 :デフォルトの名無しさん:2008/07/07(月) 01:25:18
>>923
batの内容とソースうp

926 :デフォルトの名無しさん:2008/07/07(月) 06:18:24
>>904
Cookieを決めるのはSet-Cookieだけではなくて、javascriptにも命令文が有った筈。

927 :デフォルトの名無しさん:2008/07/07(月) 09:14:22
>>912
特にこれといって今のところは使う予定はありません。
単純に便利なクラスだなぁ〜、といろいろ試してました。
>>926
他のブラウザで実行した場合の全てのクッキーがSet-Cookieで送られ、実際に設定されたクッキーもそれらであったため、それはないと思います。

928 :デフォルトの名無しさん:2008/07/07(月) 11:44:51
Set-Cookieはサーバーサイドcookieでjsのはクライアントサイドcookieな。

929 :デフォルトの名無しさん:2008/07/07(月) 12:14:20
そんなネタに釣られ熊

930 :デフォルトの名無しさん:2008/07/07(月) 13:33:31
すみませんが質問、というか相談です。

アノテーションとその応用について、参考になるリンクや書籍をご紹介いただ
けないでしょうか?書籍は和書だとありがたいですが、なければ英語でも。

【コラム】ライトニングJava (26)
アノテーション(1) - Javaの大きな変貌、アノテーションの導入
http://journal.mycom.co.jp/column/java/026/

この連載を読んで興味を持ったのですが、どのような応用が考えられるのか、
あまり参考になる情報を見つけられませんでした。


931 :デフォルトの名無しさん:2008/07/07(月) 15:06:00
すごいアホな質問で申し訳ありませんが、JUnitの3までは
TestAAAA#testBBBをTestSuite に追加するには

TestSuite suite = new TestSuite();
suite.addTest(new TestAAAA("testBBB"));

とかって出来ましたよね?
JUnit4はどう指定したらいいのでしょうか。

932 :デフォルトの名無しさん:2008/07/07(月) 15:14:31
>>909
CookieManagerって期限判定がおかしくない?

933 :デフォルトの名無しさん:2008/07/07(月) 15:31:35
>>931
http://www.google.co.jp/search?num=30&hl=ja&q=junit4+testsuite&btnG=%E6%A4%9C%E7%B4%A2&lr=lang_ja

934 :931:2008/07/07(月) 16:51:55
いろいろ見てみたんですけど、基本的に
TestSuite suite = new TestSuite();
suite.addTest(new TestSuite(TestAAAA.class));

というやり方しか見つからない気がするのです。
これだと#testBBB()だけでなく、TestAAAAに記述された全テストメソッドが
実行されますよね?
4からはTestAAAAがtestCaseを継承していない以上、3までのTestCase(String name)
コンストラクタが使えないのは判るのですが代替方法が判りません。

935 :デフォルトの名無しさん:2008/07/07(月) 18:03:20
>>932
Locale.setDefault(Locale.ENGLISH);
とすると期限を判定してくれることが分かった。

日本語ロケールでは、日付が読めないらしい。

936 :デフォルトの名無しさん:2008/07/07(月) 20:09:24
質問させていただきます。
JavaとMysqlをつかって200万ほどのデータを扱っているのですが、そのデータは一週間ごとに毎回不特定の数が増えて
txt形式で送られてきます。これをデータベースに入れるときに、増えた行だけを新たに更新という形でMysqlを操作したいのですが、
たとえばデータが
2,600,000行→2,600,100行になったときに100行だけ追加したいのです。
プログラミングは初心者で、現在はテーブルのデータ全消し→一からファイル読み込み
という流れで30秒ほどかかります。
他にスムーズに行く方法があるのでしょうか?
質問が良くわからなかったら申し訳ありません。

937 :デフォルトの名無しさん:2008/07/07(月) 20:19:01
>>936
Javaに関係する前の段階な気がするが。
その増えた分を既存分と区別することができるフィールドがあれば、
それを見て例えの100件を取り出してテーブルに入れればいいわけだ。
そしてその区別することが出来るフィールドが在るのか無いのかは
936しか分からんだろ。

938 :デフォルトの名無しさん:2008/07/07(月) 20:19:09
すみません、フリーでお薦めJava開発ツールを教えてください

939 :404:2008/07/07(月) 20:21:09
フリーなんだから使ってみりゃいいだろにw

940 :936:2008/07/07(月) 20:29:16
>>937
確かにそうでした・・・Javaとは直接関係ないですね;
フィールドは日付と、あとは売り上げなどの数値だけです。
table(day date,data1 double,data2 double);
といった感じです。ファイルの日付が(08-97-07のような感じです)○日〜読み取るということが出来るのでしょうか?
あぁ・・Javaじゃ無くなってしまってますね。。
すいません鬱陶しかったら無視してくださって結構です。

941 :デフォルトの名無しさん:2008/07/07(月) 20:57:02
こんばんわ。

JAVA言語とは直接関係のない話になるのですが、
レンタルサーバでJAVAが使えるところって、どこも結構値が張りますよね。

お仕事とか教育機関で使ってる方は別にして、趣味のレベルでJAVAを使ってる人は、どこで活用してるんでしょうか。

自宅サーバとか、単独アプリケーションあたりは思い付いたのですが、
何か人とは違う面白い使い方してますっていうのがあったら紹介してもらえますか?

よろしくお願いします。

942 :937:2008/07/07(月) 21:09:44
>>936
前回受け取ったデータから増えた分というのが売上日で判断付く
(「今MySqlに入っている売上日より後のものが追加分」等)のなら、
取り込み時に SELECT MAX(売上日) FROM 売上 とかやって、
その送られてきたtxtから一件ずつ読んでその条件に当たる分だけ追加。
200何十万件分をチェックするのにどれくらいかかるかはやってみるのが一番か。
一番いいのは、追加分だけtxtで送ってもらうことかw

943 :936:2008/07/07(月) 21:30:28
>>937
なるほど!
つまりそのSELECT MAX(day) from データベースで最終更新の日時をもらって
その日時以降の日付があればデータベースに入れるということですね。
Javaだとwhileとif,scannerを使えばできそうですね。
ありがとうございました。すれ違いのようなので試行錯誤してみます。

944 :デフォルトの名無しさん:2008/07/07(月) 22:42:47
Strutsで質問なんですが、
ValidatorFormを直接継承したフォームだとvalidateできるのですが、
ValidatorFormの孫?になると、動作しなくなってしまいました。
(間の親は、ValidatorFormを継承しただけの抽象クラスです)

http://d.hatena.ne.jp/uronim1/20060218/1140246457
↑これと多分現象は同じですが、attribute属性は指定してないです。
勿論、form-beanの名前もconfigに書いたものと一致しています。

ソースを追っていったら、FormSetオブジェクトがnullで、
Validatorがうまく生成されていないようでした。

ちなみに、JDKは1.5.0_13、APサーバはweblogic9.2です。
原因や疑わしい箇所の検討がつく方、よろしくお願いしますm(_ _)m

945 :944:2008/07/07(月) 22:43:35
すいません、追記です。
Strutsは1.2.8です。

946 :デフォルトの名無しさん:2008/07/07(月) 22:48:05
LinkedList <String>a = new LinkedList<String>();
a.add("abc");
LinkedList <LinkedList<String>>b = new LinkedList<LinkedList<String>>();
b=a;
a.add("def");

System.out.println(b);
これでabcと出力したいのですが、abc defと出力されてしまいます。
これをb=a;の後にaに編集を与えたとしても、bに変更を与えないようにするにはどのようにすればいいのでしょうか?

947 :デフォルトの名無しさん:2008/07/07(月) 22:49:32
>>946間違えました

LinkedList <String>a = new LinkedList<String>();
a.add("abc");
LinkedList <LinkedList<String>>b = new LinkedList<LinkedList<String>>();
b.add(a);
a.add("def");

System.out.println(b);
これでabcと出力したいのですが、abc defと出力されてしまいます。
これをb.add(a);の後にaに編集を与えたとしても、bに変更を与えないようにするにはどのようにすればいいのでしょうか?




948 :デフォルトの名無しさん:2008/07/07(月) 22:59:56
>>947
プログラムは書いたようにしか動かない。

質問するなら、
まず、何のつもりか、したいことの方を詳しく述べた方が良い。


949 :デフォルトの名無しさん:2008/07/07(月) 23:22:47
>>948
すいません説明が足りませんでした
bのリストにはaが編集される度にその状態を保存しておきたいと思っています。
それで状況によってアンドゥのような処理でbのリストに保存してある状態をaに戻したいということです。

その1
a = {abc,edf,123}
b.add(a);

その2では456をaddしてaは以下のような状態になる
a={abc,edf,123,456}
b.add(a);

その3ではaをソートして以下のような状態になる
a={123,456,abc,edf}
b.add(a);

その2に戻したくなったのでbのリストに保存されているその2の状態をaに持ってくる
a = b.getLast();
b.removeLast();

a={abc,edf,123,456}

その1に戻したくなったのでbのリストに保存されているその1の状態をaに持ってくる
a = b.getLast();
b.removeLast();

a = {abc,edf,123}

ということを実現したいと思っています。

950 :デフォルトの名無しさん:2008/07/07(月) 23:29:45
>>949
b.add(a)の時にaのコピーを作ってbにaddする。

951 :デフォルトの名無しさん:2008/07/07(月) 23:36:53
>>950
なるほど!
早速試してみようと思います
ありがとうございました

952 :デフォルトの名無しさん:2008/07/08(火) 00:28:45
先生、もうどうしていいか分かりません。
open-ejbでEJB3.0の実装をしようと思ってます。
トランザクション管理をコンテナ管理からBEAN管理
に替えたいのですが、どうやって指定したらいいか
分かりません。
EJB2.0のように、デプロイメント記述子を書くしか
ないのでしょうか。

953 :デフォルトの名無しさん:2008/07/08(火) 01:28:58
>>949
効率を考えると操作履歴を残す方が良くないか?

e.g.
1. Aを追加
2. インデックスnを削除
    :

954 :デフォルトの名無しさん:2008/07/08(火) 07:25:47
質問です。
あるクラスで他のクラスのインスタンスを生成した時に、そのインスタンスの中で生成元クラスの
フィールドやメソッドにアクセスしたい場合はどうすればよいのでしょうか?
具体的には、以下のように、
描画パネルのクラスでGUIを記述したクラスのボタンやテキストエリアにアクセスしたいのです。

public class Window() extends JFrame{
private MyPanel p = new Panel();
private JButton b = new JButton("button");

Container container = this.getContentPane();
container.add( p, BorderLayout.CENTER );
}

public class MyPanel() extends JPanel{
public void paintComponent(Graphics g){
(描画処理)
}

public void method1(){
b.setText("change text"); //ここでボタンbにアクセスしたい
}
}

かなり端折って書いてます、初心者なもので記述のおかしいところとかあるかもしれませんが
よろしくお願いします。


955 :デフォルトの名無しさん:2008/07/08(火) 07:54:38
class Hogehoge {
  static MyPanel myPanel_p = null;
  static JButton b = null;
  public class Window extends JFrame{
    Window () {} // コンストラクタ
    myPanel_p = new Panel();
    b = new JButton("button");
    Container container = this.getContentPane();
    container.add( p, BorderLayout.CENTER );
  }
  public class MyPanel extends JPanel{
    MyPanel () {} // コンストラクタ
    public void paintComponent(Graphics g){
      (描画処理)
    }
  }
  public void method1(){
    b.setText("change text"); //ここでボタンbにアクセスしたい
  }
}

クラスの書き方が変だから直した。

956 :デフォルトの名無しさん:2008/07/08(火) 07:56:02
PanelのほうにButtonのインスタンスを持たせておいてそれ使ってアクセス

957 :デフォルトの名無しさん:2008/07/08(火) 09:55:03
CDでJAVA(JDK1.5.0)のソースを配るのですが、非公開にしたい場合はどうしたらよろしいのでしょうか?
JAVAを初めて1ヶ月弱色々なゲームができるようになりましたのでそろそろ同人ゲームを作りたいです。

958 :957訂正:2008/07/08(火) 09:56:39
CDでJAVA(JDK1.5.0)のソースを配るのですが、ソースを非公開にしたい場合はどうしたらよろしいのでしょうか?(CDでプログラムを起動だけしたい)
JAVAを初めて1ヶ月弱で色々なゲームができるようになりましたのでそろそろ同人ゲームを作りたいです。


959 :デフォルトの名無しさん:2008/07/08(火) 09:58:25
>>958
ソースを配るのにソースを非公開にする?配るのはclassファイルとかjarとかじゃないの?

960 :デフォルトの名無しさん:2008/07/08(火) 10:12:22
リストに入れたオブジェクトのフィールドを変えると
リストの中のオブジェクトのフィールドもかわってしまいますか?
言い換えるとリストの中のオブジェクトは参照しているだけですか?

961 :デフォルトの名無しさん:2008/07/08(火) 10:21:31
>>958
>>959の言う通り、意味が判らないけど、
パスワード付きzipで固めるとか、そういう事でいいのかな。
Javaの問題ではない様な気がする。

962 :デフォルトの名無しさん:2008/07/08(火) 10:21:45
フィールドでオブジェクトを初期化するのと(例えば A a=new A();)
コンストラクタで初期化するのとは何が違うんですか?

963 :958:2008/07/08(火) 11:11:58
jarで配ったらソースがばれるんちゃうか?アプリ使用して中身を盗みみるとか。
パスワード付きzipで固めましたらjavaそのものが起動できなくなるのでは?
知障ですいません。
私がしたいのはダブルクリックしたらプログラムが動く状態にまで持ってきたいです(それかコマンドプロントでjavaプログラムを叩いたら起動。そこの説明はテキストで説明します)。
とりあえずソースを見られないようにしたいのです。

964 :デフォルトの名無しさん:2008/07/08(火) 11:24:50
ソースの難読化してくれるツール使うくらいしかないだろうな けど逆コンパイラのjadは最新のソースには対応してないから、普通に逆コンパイルしてもきれいには復元できないし気にしなくていいと思うけどな。 どうしてもされたくないならJavaは使わないべき。

965 :デフォルトの名無しさん:2008/07/08(火) 11:30:32
>>960
かわってしまいます
だけです

966 :デフォルトの名無しさん:2008/07/08(火) 11:34:28
>>962
そもそもフィールドを外から触れるという設計が良くない
特段の理由がなければフィールドはすべてprivateにするべき

967 :デフォルトの名無しさん:2008/07/08(火) 11:38:12
>>962
class Foo { A a = new A(); Foo() {} }

class Foo { A a; Foo() { a = new A(); } }
の違い?
強いて言えばタイミングが違うが、大して変わらない、でいいだろか。

968 :デフォルトの名無しさん:2008/07/08(火) 11:40:50
>>963
gcjとか・・・・・

969 :966:2008/07/08(火) 11:46:04
そーゆー意味か・・・966は無視してくださいorz

970 :958:2008/07/08(火) 11:57:14
>>968
この中で見た限りgciが有効なので解決致しました。
968さん、協力してくださった皆様方ありがとうございました。

971 :958:2008/07/08(火) 11:57:54
gcjね。orz

972 :デフォルトの名無しさん:2008/07/08(火) 13:03:42
gcjってjava5以降まともにコンパイルできたっけ?

973 :デフォルトの名無しさん:2008/07/08(火) 13:10:34
できない。文法的には確か1.4止まりじゃなかったか? そもそも、ソース見せたくないからネイティブ化ってどうなんだろうな

974 :デフォルトの名無しさん:2008/07/08(火) 13:48:59
>>964
>使わないべき
使わないべき? 使うべきでない?
どっちもアリなのかな。

975 :デフォルトの名無しさん:2008/07/08(火) 14:24:10
画面遷移有りでクラス関係無しにデータ(値)を受け渡すのはどうやるんでしょうか?
{}でもとの数値に戻ってしまいますorz

976 :975:2008/07/08(火) 15:57:36
画面遷移無しでアドベンチャーが作れるようになったので返答いりません。
画像を一瞬で表示するプログラムはありますでしょうか?
どうしても途中、途中で、読み込みが発生いたします。
トップ画面時に画像すべて読み込みのプログラムでも構いません。


977 :976:2008/07/08(火) 16:13:21
ごめんなさい。自己解決致しました。

978 :デフォルトの名無しさん:2008/07/08(火) 17:11:50
意味不明すぎワロタ

979 :デフォルトの名無しさん:2008/07/08(火) 21:19:25
ひょっとして
JSFやStrutsはすれ違い?

980 :デフォルトの名無しさん:2008/07/08(火) 22:47:23
そんなことより埋めようか

981 :デフォルトの名無しさん:2008/07/08(火) 23:13:43
次スレは?

982 :デフォルトの名無しさん:2008/07/09(水) 01:47:39
純粋なプログラミングではないのですが、詳しい方教えて下さい。

他社が作った昔のJavaソースを貰って、評価して作り替えの新規
提案する必要があります。規模は数10Kstep

その昔のJavaのソースを定量的/定性的に評価して
レポートをする必要があるのですが、皆さんならどういうことを
考えますか?

定量的:JTestでどの程度規約に沿っているか
定性的:Judeでクラス図起こして、変なところを探す

ぐらいしか思いつきません。

いいアイディアが有れば教えて下さい。

983 :デフォルトの名無しさん:2008/07/09(水) 02:21:04
>>982
何を目的に作り替えるの。

984 :デフォルトの名無しさん:2008/07/09(水) 09:48:37
>>982
FindBugで潜在的なバグ要因となるコードを探すとか。
結構出るので、相手によるけどびっくりさせられていいかも。

>>983
アレだろ。
「このプログラムはこんなにヒドイ!
バグてんこ盛りで、規約もいい加減。メンテ無理!
ですから、既存コードの改修はあきらめて
当社に新規開発させてもらえませんか?
その方が安く付きます。」
って話のネタ。

985 :デフォルトの名無しさん:2008/07/09(水) 10:59:33
EclipseとTomcatでMysqlのデータを操作するプログラムを作りたいのですが、
動的webプロジェクトを作成し、サーブレットにHttpServletを継承しようとするとHttpServletが解決できないというエラーが出てしまいます。
Tomcatプラグインをいれ、Tomcatプロジェクトだと継承はできるのですが、動的webプロジェクトだと継承できない原因が分かりません。
Javaを再インストールしたり最新版のものにしても継承できませんでした。
どうか原因が分かる方ご教示ください。

986 :デフォルトの名無しさん:2008/07/09(水) 11:42:47
switchの中で数値を引きたいのですがどうしても除々に引かれていきます。
一度だけ引くにはどういう記述を入れたらよろしいのでしょうか?
JHP = JHP -da;
switch (pa) {
case 1:
gv.drawString(""10, 325);
da=10;
break;
case 2:
gv.drawString(""10, 325);
break;
case 3:
gv.drawString("10, 325);
break;
case 4:
gv.drawString("10, 325);
break;
case 5:
gv.drawString("", 10, 325);
break;
case 6:
gv.setFont(new Font("Arial", Font.PLAIN, 20));
gv.drawString("", 70, 150);
break;

}

というプログラムです。アドベンチャーの一部のプログラムです。詳細は隠してありますが。
ご提示宜しくお願いします。

987 :デフォルトの名無しさん:2008/07/09(水) 11:46:45
switchの中のどこで数値を引いてるって?

>JHP = JHP -da;

の部分か?
元の変数JHPを書き換えるのをやめればいいのでは?

988 :デフォルトの名無しさん:2008/07/09(水) 12:00:47
>>987
それをやったら画像が表示されなくなりJHPも0になってしまいましたorz
プログラムはJHP=da; da=-10;でやってみました。

989 :デフォルトの名無しさん:2008/07/09(水) 12:15:24
>>986,988
やりたいことをもっと詳しく書きましょう。
「〜の場合に変数xxxの数値を減らしたいけど、いまはどんな場合にも減っ
てしまう」とか。


990 :デフォルトの名無しさん:2008/07/09(水) 12:19:31
画像ってなんだよ
>>986 のプログラムのどこにそんな画像があるの
書いてないことまではわからないよ

991 :デフォルトの名無しさん:2008/07/09(水) 12:28:26
次スレ立てるよー

992 :デフォルトの名無しさん:2008/07/09(水) 12:33:27
あとはよしなに

【初心者】Java質問・相談スレッド117【歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1215574326/

993 :デフォルトの名無しさん:2008/07/09(水) 12:54:44
>>990
そこまで書いたら漏れの苦労が台無しになる。

>>989
pa=3の場合に変数aの数値10だけを減らしたいけど、いまは除々に減っていきます。

994 :993訂正orz:2008/07/09(水) 12:55:39
pa=3の場合に変数daの数値10だけを減らしたいけど、いまは除々に減っていきます。

995 :デフォルトの名無しさん:2008/07/09(水) 12:58:37
pa≠3の場合は減った数値を元に戻したいということ?

996 :デフォルトの名無しさん:2008/07/09(水) 13:00:31
なに作ってんのか知らないけど、NScripterがあれば不必要なものじゃないの?
http://ja.wikipedia.org/wiki/NScripter

997 :デフォルトの名無しさん:2008/07/09(水) 13:08:18
>>995
分かりやすくしたい事を日本語で書きますと、
最大HPが100あります。
ある場面Aにいきました。
あるイベントが起きました。
ダメージが10減りました
HP、10減ってHPが90になりました。
的な事をやりたいです。


998 :デフォルトの名無しさん:2008/07/09(水) 13:16:17
言わんとしている事は、こんなことだろ。

java.util.Scanner s = new java.util.Scanner(System.in);
int JHP=100;
int da =0;
while(true){
int pa = s.nextInt();
JHP = JHP -da;
switch (pa) {
case 1:
da=10;
break;
case 2:
break;
}
System.err.println(JHP);
}

999 :デフォルトの名無しさん:2008/07/09(水) 13:18:09
なんでswitchがいるんだ?

1000 :デフォルトの名無しさん:2008/07/09(水) 13:27:51
>>997
switchの外の
>JHP = JHP -da;
は消して、case 3 のところに
JHP -= 10;
と書けばいいんじゃない

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

272 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)