【初心者】Java質問・相談スレッド116【歓迎】
すみませんが、質問です。 Java の各種の Set のうち、要素を追加した順番を覚えていて、イテレータで 取り出すとその順番どおりに要素の返ってくるものはないでしょうか?
デバッグ中に、あるインスタンスの参照箇所リスト的なものを見たいのですが、 そんなこと可能でしょうか?
普通のデバッガの機能だろ
>>4 Setはものの集まりをあらわしているだけなので入力された順番なんか気にしていない。
順番を保障したいのであればjava.util.Listを実装しているクラスを使う方がよくね?
>>6 > あるインスタンスの参照箇所 とあるので、その答えは勘違いでしょ
要はこのインスタンスの参照は
XXクラスのxxクラス変数
…
…
ってのを求めているのでは?
>>5 JDIにreferringObjectsたらいうメソッドがあるみたいよ。
はい、使ったこたぁありません。
すみません、質問があるのですがスレ違いだったら誘導をお願いします。 HA-JDBCの調査で簡単なプロトタイプを作成する事になったのですが、 実際のコードの書き方がイマイチ分かりません・・・。 どこか良い解説の載っているサイトがありましたら教えて下さいませ。
14 :
4 :2008/06/13(金) 19:56:26
>>7-
>>9 LinkedHashSet ですね。ありがとうございました。
getSource()の戻り値を元のオブジェクトに判別してキャストする方法はありますか?
>>12 このjarってどこにあるのでしょうか?JDKに入っているんですかね?
19 :
デフォルトの名無しさん :2008/06/13(金) 23:59:40
Lisp in JavaとかでググるとJavaで実装されたLisp処理系とか あるけど、みんな使ったことある? こんなのがある。これがいいんじゃない?と言うご意見お待ちしてます。
21 :
デフォルトの名無しさん :2008/06/14(土) 00:42:36
String s = new String("abc"); と、 String s = "abc"; って、違うのか?同じなのか? 入門書を、何冊か見たが、同じと書いてあるのもあるし、 同じようで違う、と書いてあるのもあるし、 同じと思っていい、って書いてあるのもあって、 なんかハッキリしない・・・そう言うもんなのか?
>>21 疑問に思うのならどうして自分で調べないの?
ちょっとチェックのコードでも書いてみればいいじゃない
>>21 Java "new String"
でぐぐると、わりと詳しい説明がいくつか
>>21 一言で言えば、違う。前者は無駄なのでまずやらない。
Cっぽくいうと、 前者は char* s; s = (char*)malloc(適切なサイズ); strcpy(s, "abc"); 後者は char* s = "abc"; みたいな感じ。
>>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));
を実行してみろ。
>>21 前者は始めパラメータコンストラクタが走って、その後コピーコンストラクタが走る。
後者はパラメータコンストラクタだけが走る。
普通は無駄なので後者だが、パラメータが2個以上有って、配列の場合は前者を使う。
C++の場合は。 何かの参考になれば。
C++の話してどうすんだよっとつっこめばいいのか?
javaのStringは不変クラスなのでC++とはだいぶ様子が違うぞっと。
>>27 の意味がわかればOKじゃね。
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好きね
すいません、質問です! javaの式は値を持たないのでしょうか? 例えばC言語なら if (a = b + c){ /* 変数aを使った処理 */ } のように書けますが、 javaだと、 a = b + c; if (a){ /* 変数aを使った処理 */ } としなければならないのですか?
すみませんが、質問させてください 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]); } } } アドバイスの程、よろしくお願いします
>>32 そういう問題じゃない。
Javaの真偽はbooleanによってのみ判断される。
Cでwhile(1)とかが大丈夫なのは非0が真と見做されるから。
Javaではwhile(true)。
>>32 if (0 != (a = b + c)){
と書けばおk。しかし、こう書くとよい場合というのは思いつかない。
それ以前に「式は値を持たない」という言い方はおかしいよ。
「代入演算子(の作る式)」とかでしょう。
>>32 >a = b + c;
>if (a){
これならできたの?
>>34 アドバイスありがとうございます
すぐにやってきます
>>34 の方へ
3行目ですよね?
変える部分は。
変えたらずっと”精度が落ちている”表示になってしまったのですが…
すみませんが
またアドバイスをくださいませ
>>32 if()の条件は論理値にすること。if(0!= )かif( !=0)
>>33 "a[" + 0 + "] = " + 1.5 あ、オセロ問題の人。
スルーしてたけど、
>>34 はデタラメのように見える
>>33 そのプログラムやその受け答えもデタラメのように見える
答えが欲しいだけならちょっとスレ違いかな
>>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に出てた言葉ですが こういう言い方はあまりしないのですか?
>>33 方法は少なくとも2通りある。
1. 1行を何度かに分けて表示する。System.out.print("1+1="); System.out.println(1 + 1);
2. データを文字列に連結してから表示する。System.out.println("1+1=" + (1 + 1));
どっちかは習ってるんじゃないの。
>>44 この場合はふさわしくない、という意味
1 + 1も式、
a /= 1 + 1も式でしょ
>>44 xがbooleanなら、そう書くこと自体に問題はない。
>>44 参考までに、どうしてそういう疑問が湧いたのか教えてくれれば幸い
49 :
32 :2008/06/14(土) 19:01:43
>>46 >>47 ありがとうございます。文法的には許されるんですね。すっきりしました!
>>48 自分はCとJavaをどっちも素人で同時に勉強してるのですが(たぶん効率最悪ですが)
Cの本にはよく、ifの後に代入式を書いても左辺の変数の値がその式の値になる
というような記述をよく見るんですがjavaの本では見たこと無かったので疑問に思いました。
>>45 二つとも習いましたが、応用できていませんでした(汗
繋がった式でしたので、「この方法はできないのかな」と
一人思いこんでいました
しかし分けたり連結したり表示するには
あの長い式を分解したりするのでしょうか?
それとも繋がったままでしょうか?
ちょっと頭が混乱してきました
すみません
51 :
デフォルトの名無しさん :2008/06/14(土) 19:04:15
どっちかだけの方がいいよ。見た目同じだけど、全然違うから。 Cのポインタの方が難しいから、先にそっちを攻略しとくとJavaのjava.lang.Objectの方も理解が深まるよ。
代入式は文じゃなくて式なんだよね。 「=」は+やーと同じ演算子に過ぎないから。 プログラムに明るくない人間が見れば文に見えるから少しややこしい。 rubyみたいに文が値を持つ言語が出てくるとさらにややこしい
>>49 既に前のレスで十分な返答をもらってるのに、
それを理解もせず自分で確かめもせず質問連発する奴は素人未満だ馬鹿。
わかりました アドバイスどうもです 一応連結してから表示のほうをやってみたのですが またも変な表示が…
55 :
40 :2008/06/14(土) 19:28:02
>またも変な表示が… n<100 五目並べ問題の人?
>49 どっちかをある程度習得するまでは片方にしろ 言語が違えばルールも違うし考え方すら異なる場合もある 効率が悪いって言うかどっちもモノに出来ないと思う
>>50 いえ、0〜99まで数列を表示する問題です。
増やすことはできたのですが、表示に問題がありまして
表示を出すにはどうすればいいかというのを考えてまして。
それで、ここの方々にアドバイスをいただいていたところです。
>「式が値を持つ」 言語によるよね
>>33 配列を使うなら先に数列を完成させてしまったほうが、
表示の反復が単純になるんじゃないかな。
「変な表示が」というものをただ「変」で済ませていたら進まないと思うけどw
式が値を持つ って初めて聞いたな 古い本か?
>>59 ふむふむ、先に数列を完成させると…。
アドバイスどうもです。
式の値というのはC言語で聞いた記憶があるよ。 話題になっているのは代入式が値をもつ言う話で a = b = 99 で b = 99の式が99という値をもっていて、それをさらに a に代入できる。 もっともif に論理式が必要なのを誤解した故の発言だったわけだが。 他にこういう時に使う。 b = 10 a = b++ の説明で右辺の式の値は10で aには10が代入される。 a = ++b の場合は右辺の式の値は10で aには11が代入される。
>>62 >a = ++b の場合は右辺の式の値は10で aには11が代入される。
a = ++b の場合は右辺の式の値は11で aには11が代入される。
訂正
式が値を持つって意味分からないし 最後に評価された値を見てるだけだし
珍解釈ktkr
67 :
デフォルトの名無しさん :2008/06/14(土) 22:07:21
まずはC++からやれ。
>>36 その表記は見苦しいし意味がないから嫌いだ。
((b op (c op d)) op a) より (a op (b op (c op d))) のほうが見やすいと思うんだ
1. if (a == 123) { 2. if (123 == a) { Cの場合はif (a = 123)が通ってしまうの2をすすめる人もいるけど、 その心配のないjavaでは1が自然だと思う。
異常なことをやっているところでは異常性の際だつ書き方をするクセがある
b c d op op a op 逆ポーランドが好きです
javaって0とか1とかnullとかどれも条件式の結果には使えない? trueとfalseのみ?
当然
そーなのかーありがとう。堅苦しい言語だね
それはCがずぶずぶ過ぎる。 C++でboolを追加するときにまともにしたかったのだが、 Cとの互換から手を付けられなかったらしい。 bool/int相互に暗黙の変換を許してしまってほとんどboolの存在価値はなくなった。
そのへんは機械語的な都合もあったんでしょ
ていうかコンパイラ的な都合かな
構造化アセンブラですから。
そもそもbooleanの価値が分からない俺は死んだ方がいい
じゃあ俺も死ぬ
なんというドラマ
いっぺん死んでみる?
今日で、めでたくく初心者を卒業したっぽいわけですが・・・ ひとつ質問していいですか? どうしてjavaは初心者にこうも厳しいんですか? 例えばダブルクリックの起動ファイルひとつ作るのでも、ネット上の情報はうそっぱちか役に立たない情報ばっかり。 VBと比べても必要な情報にたどりつくのに時間がかかりすぎ。 これだったら、M$社製品(C++、C#、VB2005等)の方が手っ取り早かった(と思う、たぶん)。 とくかく情報の出し惜しみはやめてほしいな。 なんで、java弄るひとって性格の悪い人がおおいんだろ。 java関係の本でもろくなのないし。
| | | | | | | | | | || | | | | | レ | | | | | J || | | | | | J | | | し || | | | レ | | レ| || J | J し | | || J | し J| J レ /V\ /◎;;;,;,,,,ヽ _ ム::::(l|l゚Д゚)| …うわぁ ヽツ.(ノ::::::::::.:::::.:..|) ヾソ:::::::::::::::::.:ノ ` ー U'"U'
>>86 遅くまでごくろうさまです。
いや釣りじゃなくて、真面目に抗議しているんですが・・・
2chに抗議とか言われても・・・w Sunに言えよ。
すんません。 そうですよね。 結局、タダほど高いものはないっていう(ry
ぜんぶ的外れ・・・・でもないがぜんぶ的を射てはいないという
そうなんですよ、それそれその感覚なんです。 VBだと魔界の仮面弁士さんとかMVPがいるからなぁ。 あ、やっぱM$から金でてますものねぇ〜。
ネット上の情報はどの分野でも基本的に話半分に聞くべき。 本もだけど。
おっしゃるとおりなんですが、 VBでは結構有用な目から鱗状態の情報が結構ごろごろしてたんですよ。 もうjavaの本とか最悪。ほとんど詐欺本ですな。
立ち読みして選べよ
いやー立ち読みでわかりやすいって思う本って、家帰ってほとんど読まなかったですね。 結城さんの本は鱗でしたが、全部そろえるとまあ高いのなんのって。 アマチュアレベルで気軽にかえるほんではなかったですね。TT
安物買いの銭失いって言うからな。
おっしゃるとおりです。 でも誰も結城さんの本なんか薦めないでしょ。 淋しいよな〜
いや、結城本は定番じゃないのか?w
あなたに最初に出会えてればよかった。 っていうか、初心者にいつも薦められてます? 学校とかで推薦になっているのではないでしょうか? 私は、完全に独学なもので・・・
結局独学ではしっかり調べでもしない限りは運に寄る所が大きい。
おっしゃるとおりですね。 いそばがなんとかですね。 まあでも今日で初心者卒業できたのは、私も運がよかったということですかね。 こんな時間まで起きている、先輩はかなりの方とお見受けしました。 生業としている方ですね、きっと。 そういえば、2chでの質問内容ってほとんど、学校の質問みたいなものがおおいですものね。 なんか、目的をもったプログラムにかんするものは少ないですね〜。 まあ、プロフェッショナルは2chできかないでしょうが。
では寝ますね。こんなじかんまでお付き合いいただき、誠にありがとうございました。 秋葉原の事件で、もう2chはいらないとおもいましたが、こんな古き良き時代によくあった チャットをできるとはおもいませんでした。 ではご健康にきをつけて。 失礼します。
>>98 >>99 そう言えば、「結城本は定番」というのは確かによく聞くような気がするが、どこで聞いたか思い出せねーなwww
このスレのテンプレにも無いようだし……。
いそばが
なにこの気持ち悪い流れ
JavaAppletについての質問です。 ブラウザの更新ボタンが押された時にアプレットの初期化又は変数の初期化を 行いたいのですが、どうすればいいですか? 教えて下さいお願いします。
ブラウザで更新されたらAppletは強制的に初期化だw
>>1 のwikiに昔は結城本の事も書いてあった気がするが
今はこうなってるのか
>2chで推薦されている入門書を挙げておきます。
>
>Head First Java―頭とからだで覚えるJavaの基本
>独習Java
>コアJava2 Vol.1 基礎編
>コアJava2 Vol.2 応用編
>Javaの格言―より良いオブジェクト設計のためのパターンと定石
>Javaの鉄則―エキスパートのプログラミングテクニック
>「やさしいJava」(高橋 麻奈 著)はプログラミング未経験者が読むには適していますが、Java入門書とは呼べません。
>Javaプログラミングとはこういうものなんだ、というのをつかんだら上記入門書をやるのをお勧めします。
VBからjavaって…なんか可哀想なPGだね Cから上に上がっていけば新たな言語でも何の苦労も無いのに
111 :
デフォルトの名無しさん :2008/06/15(日) 10:17:23
>VBでは結構有用な目から鱗状態の情報が結構ごろごろしてたんですよ。 人によると思うだけど、明け方に投稿するような君にとってそのゴロゴロ情報は例えば何?
なんつーかIDEって普段使わないんで
たまに使うことがあるとすげー気持ち悪いんだが
>>85 見て改めてIDEはイラネと思ったわ
訂正IDEがイラネ→IDEに頼ってる奴
キモイ奴は、話を聞いていてもやっぱり最後までキモイな。いいまわしとかも最悪。 君は、VBの方が性に合ってるんじゃないの?
115 :
デフォルトの名無しさん :2008/06/15(日) 10:33:18
そのVB宙の話は、なんか犯罪者がアレコレしゃべってるのを聞かされているようで怖かった
116 :
106 :2008/06/15(日) 10:34:08
すいません、分かりました。 start()で変数の初期化を行えばいいのですね。
118 :
デフォルトの名無しさん :2008/06/15(日) 12:29:43
今日の深夜までにやらなきゃいけない課題なんですが、なかなかうまくいきません。 助けてください。 自動販売機を表すVendingMachineクラスとそれを実行するmainメソッドを作成せよ ・機能 ・お金を投入する ・金額が十分投入してればジュースを買える。 ・お金の払い戻しができる 作成したVendingMachineに対しカプセル化を施し意図しない状態に変更されないようにせよ
>>85 つまり、Javaの勉強にVBでの経験が役に立たなかった、でFAか
>>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#が普通の流れなんですけどね…
Java 勉強したらある程度 C は読めるはずだが、 それだけだとポインタに関する知識が怪しいはずだと思う。
だれか、 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 個 といったエラーが出てくるんだがどうやったら治せる!?
ColorのコンストラクタでStringを引数に持つものが無いからだろ。 Integer#decode(String)あたりでも参照すべし。
128 :
デフォルトの名無しさん :2008/06/15(日) 17:03:04
配列に設定してるところを書かないと意味ねーじゃん move_color[0]="0xff0000"; なことしてるんじゃね
問診票 これまで大きな言語に罹られたことはありますか?
漢字が読めません
"Javaの文字列連結演算子は" + "である。"
>>129 かかられた、だ。
罹(すっぽこ)られた
では次の方
134 :
85 :2008/06/15(日) 19:31:18
>>123 アドバイスありがとうございます。
必要に迫られて消去法でjavaになりました。
C#も本でみましたが、あれも面白そうですね。
ただM$の都合で、変な改定されるのが怖いんです。(J++とかw)
setter/getterについては後々勉強します。
>>124 おっしゃるとおりですが、私はZ80の脳内アセンブリ世代なんで、いちおうPCに関する極原始的な知識はあります。
C++をパスしたのもその辺の管理が面倒というのがありました。
特段質問はないんでこれにて失礼します。
皆様今後とも、初心者にはやさしくしてくださるようよろしくお願いします。
javaのご加護を
それならperlの方がいいんじゃない?趣味なんだしw
136 :
85 :2008/06/15(日) 19:46:35
>>135 あれまだ私、話してていんですかね。
あんまし登場するとチラウラで申し訳ないです。
perlとかrubyとかActiveBasicとかも一応候補にいれたんですが。
特段perlに光るものはなかったと記憶しています。
ネット上のサンプルプログラムも少なすぎるし、なにより書店の売り場面積が、こっちくるな!って言っているようで・・・。w
よろしければ、perlの良い点を教えてください。
あ、スレチですね。
javaのキラーコンテンツはやはりマルチスレッドですかね。
スレッドフリーということばがjavaの世界にあるのには感動しました。
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ははっきりいって糞くらえですよ。(食事中のかたすんません)
人間というのは、ここまで気持ち悪くなれるものなのか… もしかして層か?
ときどきでいいからmonoのことも思い出してください
知識の歪みは背骨の歪み
146 :
85 :2008/06/15(日) 21:18:24
ふりだしに戻る・・・ ⇒なんで、java弄るひとって性格の悪い人がおおいんだろ。 自分なりの分析ですが java弄る人って、殆どが玄人(それで飯食っているひと)なわけですよ。 もしくは、いま勉強中で資格とって就職しようとしている人々。 したがって、ライバルは少ないほうがいい、もしくは自分の優位性をつねに保っていたい。 そんなエゴが見え隠れしている。 昨日の深夜に僕の相手をしてくれた方は違うとおもいますが、ほとんどの人が傲慢だ。 私もすごく気持ちが悪い。 そうじゃないでしょ、ってこと。 プログラミングはアマ・プロ区別なくみんなのものでしょってこと。 一般人、ど素人に丁寧に教えていかなければ未来はないですよ。 べつに2chにそういうことを期待しているわけではないですが、数々の方のブログを拝見して感じたことです。 以上。
147 :
デフォルトの名無しさん :2008/06/15(日) 21:21:40
いや、もういいや。死んでいいよ
>>146 あなたが疎外されているとしたら「素人だから」ではないと思われる。
大体そんな感じで。
149 :
85 :2008/06/15(日) 21:30:47
>>148 いやあなたの論理が破たんしてますがな。
私は疎外感など何も感じていない。
だいたいどうしたら、ネットサーフィンや読書で疎外感を感じなきゃ(ry
およそそんな感じで。
ようするに
>>145 が言いたいのはちゃんと教えてくれないのは
レスしてる奴が競争相手を減らしたいと考えてるって事でいいんだよな
なら残念ながらレスが帰ってこないのは単純にお前が気持ち悪いからだ
初心者は初心者でも、人間初心者なんですね。わかります
よくわからんけど、 どうしてJavaの世界は素人である私を容易に仲間にしてくれない(なかった)の? っていう話じゃなかったんだっけ。では次の方。
153 :
デフォルトの名無しさん :2008/06/15(日) 21:44:16
たまにはこういうキモイ雑魚も、創価学会のマンパワーみたいで楽しかった。
>>86
154 :
85 :2008/06/15(日) 21:46:07
>>152 最後のおまとめありがとうございます。
まあ端的にいえばそのとおりですね。
他の方は誤解されているようですが、私はこの板で質問したことは一度もないし、ネット上の掲示板にも質問したことはありません。
すべて独学です。
>>85 のコメントは形式は質問になってますが、
>>87 で補足したように抗議文です。
警鐘を鳴らしたかっただけです。
では、ここからはいつもの流れでどうぞ。
そんなにデタラメ情報ばかりだったかな、と思って、
>>85 が挙げてる例である「Java ダブルクリック 実行」でググってみた。
…マニフェストファイル書いてjar作る正しい手順が、それなりにヒットする。
>>85 が何を見て「でたらめだらけ」と結論づけたのか気になる。
ただ、VBと違って、標準の開発環境はこれ、というのがないから、初心者は困るんだろうな。
素のjdkが基本といえば基本だけど、
初心者には(特にVBのようなRADツールの経験があれば余計に)取っつきづらいだろう。
最近じゃ「Eclipseで始めるJava入門」みたいな本も出てるしね。
だから、コマンドプロンプトでの手順示されても
「じゃあウチのEclipse/NetBeans/JBuilderではどうすりゃいいの?」となるんじゃないかな。
その結果「これはつかえない!デタラメに違いない!」と結論づける、と。
そもそも、仮にjdkオンリーで覚えても、最終的にはIDEを使うようになると知ったら、
「あの苦労は何だったのか」と徒労感を覚えるかもしれない(それはそれで大事な経験なんだけど)。
そしたら余計に取っつき悪さを感じるかも。
そういうのが嫌な人は、どれか特定の便利なIDEべったりになるといいかもね。
そういう人にはNetBeansがお勧め。
Webから得られる情報が限られるけど、面倒なネタは避けられると思う。
>今日で、めでたくく初心者を卒業したっぽいわけですが・・・ >まあでも今日で初心者卒業できたのは、 いきなりそんなこと前提にされても、と何も言えなくて・・・夏
157 :
デフォルトの名無しさん :2008/06/15(日) 23:09:35
創価学会は思考盗聴とか集団ストーカーをやってるそうなんで、身の回りには注意しておいたほうがいいですよ。
すみませんが、教えてほしいことがあります。 「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]); } } }
>>158 追記
答えは出ましたが、表示を変えることができないです。
System.out.println("n=OO");
>>161 あの時の方で
いまだに解決していません(汗
()の中にいろいろといれても
うまく表示できなくて…
>>160 例えがものすごく悪かったようなので
もう一度書きます
a[1]=1.5
a[2]=2.0
a[3]=3.0 といった表示を連続で出したいのです
System.out.println("a[" + n + "]=" + a[n]);
>>164 教えてくださりありがとうございます
おかげさまで出ましたm(_ _)mペコリ
世の中は不思議に満ちている
168 :
166 :2008/06/15(日) 23:39:54
と思ったら まさかのa[0]〜a[2] の表示が出ない!!
枯れない桜が枯れたのだよ
>>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
ん?創価学会がなんだって?
すみませんが、教えてください。 「入力した数字が素数かどうかを調べる」というものなのですが、 下のところまでできたのですが、 肝心の「数字を入れてください」の部分ができません 「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."); } } 記述すべきことを教えてくださいませ よろしくお願いします
つBefferedReader
>>176 一応聞きたいのですが、
それ以外の方法はありますでしょうか?
教わったかどうかあやふやですので…
それ以外だとargsを使う方法かな
>>177 そっちのほうほうをお願いします
自分でもうまく当てはめようとしたのですが
どうにもうまくいかず。
教えの程、よろしくお願いします
すみません ほうが一つ多すぎましたorz 落ち着け私
あれっ? 自分で作っておいて気づいたのですが argsを使っていました… ここからどう変えるのか…
>>174 >「input>」と表示した後に数字を入れたいのですが
この「後に」というのは条件ではないの?
argsの内容は実行前のコマンドの段階で入力されてしまうんだけど、っていうあたりはわかってるのかな
多分分かってない
いや
>>174 よく読まず無責任にargs出した俺が悪いんだが
>>181 忘れていました(汗
「いつも最初に記述するように」と教わっていたので
最初の2行くらいはろくに考えておらず…
となると
>>175 の方の表記の方法でしかできませんかね?
>>182 の方…
やはり私の記述はわかりづらいのでしょうか?
BufferedReaderを習ってないとすると、 まだDataInputStreamのreadLine()で指導している先生だったりするとか、 そのくらいしか思い浮かばない
>>185 あれ…
その方法は学んだっかな…
何かもっとこうシンプルだったような…
あとは、例の「IO」みたいなユーティリティークラスを用意していて、 それを専ら使うように指導しているとか
スキャナーを利用したインプット表示でした とりあえず手元にあるパソコンでは スキャナー表示のものを動かすことができませんので 手を加えたものを後日別の場所で動かしてみます
1.5導入かw 素で使ったことなかったYO
jdkのバージョンを5.0以上にすれば良いだけじゃないの?
>>174 >System.out.println(n + " is a prime number.");
>System.out.println(n + " is not a prime number.");
## : prime ## : not prime ならおkかも
>>193 どのような記述をすればそうなるでしょうか?
あれっ? なんだかだんだんおかしな方向に… 表記はこうするように言われているのでこの通りにしております 問題は数字をJCpadのコマンド画面で直接打てないことで…
コマンドプロンプトから実行する方法は知らないってことね
>>197 そうです、はい
素数の式が絡んでくるともう…
>>198 それのことを言っていたんですかね?
確かに参考にしましたが、うまくできず
これじゃ学生が可哀想だ。 教師か教科書か教え方が悪い。
最近の大学生って頭悪いよね 情報学科卒業してきた子より 高卒で趣味でunixいじってたような子の方ができたりする
現在、ポーカーのプログラムを作っています TreeMapを使っているのに、ソートされないのは やはりソースに問題がありますよね?
最近の情報学科って大したこと教えてないからな。 その上こんなスレに来る奴なんてデフォで講義ろくに聞いてない&屑講師なんだから当たり前だろ。 そりゃ趣味でlinuxいじってた方が強いわ。
習うより何とかってことで纏め
創価大に情報科なんかあったか?
ルートディレクトリを与えるとそこからツリーを生成するプログラムを作ったのですが、 Linuxと違ってWinではルートが複数あり、また環境によって存在するドライブレターも違うので 全ルートを与えるためにはA~Zまで試してみるくらいしか方法が思いつきません。 今現在存在するルートディレクトリ(C:\,D:\…)を取得する方法ってあるでしょうか?
>>209 四苦八苦していたのにこんな便利なstaticメソッドがあったのですか…。
即レスありがとうございます!!
JNIで外部DLLを呼び出しているんですが そのDLLでEXCEPTION_ACCESS_VIOLATION (0xc0000005) を発生した場合、Java側ではtry catchをしても 落ちてしまいます。 なんとか例外としてキャッチできないものでしょうか?
C側で例外をキャッチする必要があるのでは でJavaの例外として投げ直す
>>212 ありがとうございます。
CでDLLのEXCEPTION_ACCESS_VIOLATION をキャッチできるか
聞いてきます。
ArrayListではなく、エクスプローラみたいなイメージのツリーの機能を実装したコレクションクラスや それに近いクラスはあるでしょうか。JDK1.6です。JDKでなくても、その他ライブラリであれば合わせて教えていただけないでしょうか。
文字列「C:\」を「C:」に変換したくて String path="C:\\"; path.replaceAll("\\",""); とやったのですが、java.util.regex.PatternSyntaxExceptionが出ました。 バックスラッシュを表したくてエスケープさせて指定したつもりが、 どこがおかしいのでしょうか?
>>216 ありがとうございます。
これってawt用ですが、できれば親と子を持つという概念だけのコレクションクラスはないですかね。
>>217 コレクションでツリーなんて良くあることなのに、高級言語の1.6にしてもないなんてね。そのくせ余計なクラスばかり多い
>>218 ありがとうございます。
しかし何故\\\\になるのでしょうか?
replaceを使うと普通に\\で大丈夫なのに。
>>223 ここから考えると、
\を表す文字列で表したい→\\
\を正規表現で表したい→\\\\
ってことですよね。
なんか考えているうちにこんがらがってきましたが、
コンパイル時のエスケープと正規表現のエスケープで二重にエスケープする
必要があるってことでしょうか??
225 :
224 :2008/06/16(月) 19:47:09
× \を表す文字列で ○ \を文字列で
JListでListCellRendererを使いアイコンをセットする際に、 システムで設定されているアイコン(htmlならIEやFxのアイコンのような)を表示したいのですが、 Javaではこういう情報を取得する方法はあるでしょうか?
知識不足によりはまっているのでご教授願えればと思います。 現在、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バイト文字になる。
>>227 JFileChooser で使ってるサイズしか取れないけど。
javax.swing.filechooser.FileSystemView#getSystemIcon(java.io.File)
>>230 こんなのあったのですか、ありがとうございます!
>>228 オレオレCAの証明書をJREのルート証明書群に追加すればいいんでない?
(jre/lib/security/cacerts)
Javaで開発する際に、プロジェクトの構成というか、ディレクトリの整理作法がわからないんだけど たとえばこんなのとかので trunk +-/build/build.xml #ビルドに関するもろもろ +-/src/net/2ch/pc11/Hoge.java #ソース +-/tests/net/2ch/pc11/HogeTest.java #テスト用 参考になるウェブサイトとか公開されているsvnで秀逸なのを教えてくんろ
apacheでは参考にならないと?
nextした数を保持するiteratorクラスってありますか?
それくらい作れよ
一般には
>>236 かな。反復回数の実績をカプセル化したいんでしょ。
239 :
デフォルトの名無しさん :2008/06/17(火) 19:06:42
Hibernateで、エンティティとして定義しているクラスに継承をしているものがあるとクエリ結果がダブってuniqueRequestでエラーになる、、 ビューを定義していたから楽しようとして落とし穴にはまった、、 継承せずにベタに書くと解決しました。 継承したままうまくクエリする方法ってないでしょうか。
音楽を鳴らしたいが、シンボルが見つかりませんというエラーがでるんだ。 何が必要なのかおしえてくれ〜〜〜 play("./burst.wav");//爆発音声
int x = 2345; int y = 1585; xの百の位の3とyの十の位の8を 抜き出して演算処理したいのですが どのようにしたらいいですか?心優しい方助言をば・・ 初心者でごめんですm(_ _)m
>>240 アプレットのplayメソッドに渡すのは文字列で表されたURLじゃなくて、
「URL」というクラスのオブジェクト。
play getCodeBase
でぐぐるとわかるよ。
>>123 わる10は、12あまり3
わかりそうで・・・わかりませんOrz
具体的にコードで操作するにはどうすれば int x = 2345; の
百の位の 3 抜き取れますか?
タイトルに・・初心者大歓迎って書いてあったから・・ごめんなさい
ComponentのcreateImageで戻ってきたImageをBufferedImageを変更したいのですが、 どうすればよいでしょうか?
247 :
デフォルトの名無しさん :2008/06/17(火) 20:53:40
Tomcat 6上で動くアプリを開発してます。 サーブレットのユニットテストを書こうと思っていて、 ちょっと調べた所HttpUnitとCactusってのが有名っぽいので どちらかを使おうと思ってます。、 それぞれの長所短所とか教えて下さい。
>>245-246 こういうのって良くあるTIPだと思うんですけど、そういうサイトとご存知ないですか?
>>245 x=String.valueOf(2345);
x.charAt(2);
>>248 すみません。いろいろ調べたのですが。InputStream見たいにデコレータ形式だと思ってjavadocも見たのですが、
コンストラクタにもなくて。
>>246 PixelGrabberでピクセル値とってきてBufferedImageに書き込むとかは?
252 :
245 :2008/06/17(火) 21:12:56
どこかこういうTIPが載っているサイトありましたら教えてください 初めてiアプリ自作してるのでわからないことだらけ・・ですOrz
>>245 整数の商、整数の剰余の出し方はさすがにわからないとおかしいと思ったんだけど。。
123 / 10 == 12
(123 / 10) % 2 == 2
123の十の位は2。
やべ、何だ % 2 ってw % 10 ね
256 :
デフォルトの名無しさん :2008/06/17(火) 21:27:47
初心者っつーか ちと、質問がある 誰か教えてくださいまし 俺はインターネットファイルを取り出して 自分のPCにディレクトリごとにフォルダを作ってコピーし オフライン時にこのように模擬サイトを作って見るんだが javaアプレットが入ったサイトだと、そのファイルを取り出せずに 仕方なくjavaなしのオフラインサイトを見ることになるんだが どうやったら、javaアプレットを動作させる模擬サイトを作れるか教えてくださいまし
258 :
245 :2008/06/17(火) 21:45:12
>>256 アプレットがどのファイルを使うか、というのは基本的にHTML上のリンクとして現れないから、
アプレットの中身を分析するとか、そういうツールを調達するとかしないとダメな場合が多いと思われ。
いや、JREのキャッシュから復元できたりするのか?やったことないけど
261 :
256 :2008/06/17(火) 21:57:17
>>259 >>260 どもども、すいませんです
プログラミングとしての質問でなくて肩身狭いっす><
java自体仕組みが分かってないので 専門の方にはバカっぽい質問でしょうが、
その、俺が復元したいサイトはjavaアプレットを使って中学数学を教えているサイトでして、
そのアプレットが動作しないと、文章や画像があってもサイトとしての意味がないものに
なってしまいます><
ソースを見るとどうやら、拡張子がclassのファイルがjavaアプレットだと思うのですが(それって当たってます?)
どうも、キャッシュにないです><
どうにか復元したいので、教えてください;;
Appletはオフラインよりオンライン(ネット上のアプリ)を想定してるので、素直につなげていた方がいいですよ。 出来なくも無いですけど、アレコレやるの面倒でしょ 何なら作者に連絡取るとか
>>261 >javaアプレットを使って中学数学を教えているサイト
ちょっと設定に無理がある
参照渡しの概念って厳密にはどんな定義なんですか? 今まで自分は配列を参照する変数やオブジェクトを参照変数を引数で渡すことが 参照渡しだと思ってたのに、Cの本なんかを読むとどうやら違うみたいなので。
厳密な定義などはないけど、C的にはメモリ上のアドレスの値を渡すこと
javaでいう参照渡しとC++でいう参照渡しは別モノ
267 :
デフォルトの名無しさん :2008/06/17(火) 23:05:41
>>258 オレの答えたcharAtじゃご不満なわけか
FORTRANの引数やC++の参照型の引数は純粋な参照渡し。 Cのはポインタ渡し。
用語は違うがあるけど? Cやったこと無いくせにに、適当なこと言う言うな
Cのはポインタの値渡し。 参照渡し使ってる言語をちゃんと知ってるなら ポインタ渡しが参照渡しなんて口が裂けても言えないはず。
272 :
デフォルトの名無しさん :2008/06/17(火) 23:16:28
>>267 たぶんこのjavaスレは呪われてんだろ
多重継承とか参照渡しとか何時まで釣れるんだよw
275 :
256 :2008/06/17(火) 23:18:54
>>262 ,263
やっぱりサイト主に連絡しないとですか…
復元してるなんて、、言って大丈夫なのか心配です、、
いい方法があったら、教えてください。
場違いを感じてきたので、ロムりながら勉強します。
アプレットは
作図の手順をクリックすると順番に線が現れるやつとか
比例反比例のグラフが点が多くなってゆき最後に線になる奴とか
なんかフラッシュでもできそうなやつです…
277 :
デフォルトの名無しさん :2008/06/17(火) 23:21:30
>>275 初めの質問のときとだいぶ態度が違うけど、何で?
>>272 仮引数の値をコピーして実引数に渡すのが値渡し。
仮引数に対する操作が(可能なら)実引数に及ぶのが参照渡し。
厳密に定義されています。
ポインタ渡しは単に値をコピーするだけなのであくまで値渡し。
参照渡しのエミュレートでしかありません。
残念でした。
279 :
256 :2008/06/17(火) 23:27:14
前スレ読まず、ただ教えてくれ〜の気持ちが強くて ちょっと強気に言ってました。。。 気に障ったらごめんなさい。。 すげぇ場違いだったと今反省してます;; オフラインで使用可能な方法がありましたら、よろしくです。 id表示ありませんがすべて自分ですのでよろしく。
>>279 十分教えてもらったのにまだ教えてもらいたいなどと考えてるし、
たぶん君が願っている事はもうかなわないと思う。
まあなんていうか、「厳密には参照渡しじゃねーよ」というものも、 「実質的にはそーじゃねーか」とか言われてるね、みたいな空気を感じるあたりで手を打たないかw
283 :
256 :2008/06/17(火) 23:38:02
279 あ、前スレじゃなく このスレを読まず いきなり質問してしまいましたが、 レス入れていただいた方ありがとうございます。 では、<(__)>
そうやって甘やかすから void foo(int *p) { p = malloc(sizeof(int)); } で int *p; foo(p); free(p); とかして、ポインタに代入して参照渡しにしたのに 何かエラーになりますとか言う奴が現れるんだろ・・・。
285 :
デフォルトの名無しさん :2008/06/17(火) 23:41:55
Cをちゃんと勉強してからジャヴァやるもんじゃないですか?普通は
Java の引数も値渡しだな。
288 :
デフォルトの名無しさん :2008/06/17(火) 23:45:20
>>283 個人的な意見で申し訳ないが、なんかアパマン・ショップの物件案内の社員(DQN)と似てるんだがw
やっぱりDQNはどの分野でもDQNであって、決してそのようなDQNに期待してはいけないのだろうかといつも悩んでいるんだけど、誰か教えてくれませんか?
289 :
264 :2008/06/17(火) 23:47:24
たくさんのレスありがとうございます。 まだモヤモヤしてるけど雰囲気は掴めました。 CもJavaも基本は値渡しだけどポインタとか使っちゃうと似た感じにできちゃうけど でもそれは厳密には参照渡しじゃないぜ って感じですね 面白そうだから純粋な参照渡しを仕様としてる言語を勉強してみます
何か質問者も回答者も頭おかしいのがちらほら増え始めたな
>>288 はそんな質問ここでして何がしたいんだ
毎度のことながら値渡し/参照渡しで揉める理由が分からん C, Javaには参照渡しはない。C++, C#にはある。 というだけの話しだろう
>>289 というか、あなたの理解は根本的に間違ってますね。
少しCをかじったことあるみたいですけど・・
295 :
256 :2008/06/17(火) 23:52:20
・・・すいません。失礼します。
296 :
デフォルトの名無しさん :2008/06/17(火) 23:55:05
C++でもint& b = a;を「参照」という言葉で表現するという罠があるし、 まあいいんじゃねそんな世界
値渡しor参照渡しってのは、呼び元に影響を与えるかどうかだ。 int[] data = new data[5]; この変数dataには実体ではなく配列データが保存されたメモリを指す だからf(data)と渡してf関数の中でdataをいじれば呼び元の配列に影響を及ぼす よって参照渡しである。 OK?
いや、それは参照で合ってるだろ。 b に対する操作が a に及ぶんだから。
>>298 data の参照先に影響を及ぼすが
data には影響を及ぼさない。
仮引数をいくらいじろうが、data の中身が急に int[10] に変わることは無い。
よって値渡し。
OK?
>>298 引数に指定した変数そのものを指すのが参照渡し
実体がどうとかじゃなくて,そういう風に見せる言語機能
>>300 例えば関数の中でdata[0] = 1 と代入したら
呼び元のdataに入ってる配列の値も変わるんですが。
意味分かってる?
303 :
デフォルトの名無しさん :2008/06/18(水) 00:00:50
>>256 みたいな人をここでバカにすると、今度は
>>256 みたいな人が他のところでjava技術者を馬鹿にするから、そういう事はやっちゃダメ!!
298 = 馬鹿 ってことぐらいしか分からない
盛り上がって参りました(棒読み)
>>299 あれは参照渡しに使えるけど、参照そのものではない
307 :
デフォルトの名無しさん :2008/06/18(水) 00:02:47
もうツマンネー自演はいいから
308 :
デフォルトの名無しさん :2008/06/18(水) 00:04:13
>>288 をこのスレの方々はどう考えてるのか教えていただけないでしょうか・・
void 参照渡し(ref int[] data) { data = new int[] { 4, 5 }; } int[] a = { 1, 2, 3 }; 参照渡し(ref a); 出力(a);//{4, 5}が出力される C#だとこんな感じ
ポインタの話と同様、 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
一応、ロムしてましたが、 アプレットはオフラインはできない という答えを受け取って消えます。 さようなら。
>>309 と
>>310 の差をきちんと理解し実感していれば
Java が参照渡しなんて口が裂けても言えなくなる。
「Java が参照渡し」 という言葉は初心者にいらぬ誤解を与える邪悪な言葉だ。
313 :
デフォルトの名無しさん :2008/06/18(水) 00:09:48
いつの時代でも、Cのポインタを理解するのは鬼門ってこと char*manko=&tinpo
>>310 それってdataはnew int[10]になるんじゃないの?
315 :
デフォルトの名無しさん :2008/06/18(水) 00:12:59
「オブジェクトの参照値渡し」とか?w
>>315 ポインタ渡しでいいよ。
ぬるぽとか言うくらいだし。
318 :
デフォルトの名無しさん :2008/06/18(水) 00:14:30
一応、ポインタを全快に理解してないと、GCを実装できないんだが・・
お前らが頭いいのは分かったが 何言ってんのかがさっぱり分からん!
321 :
デフォルトの名無しさん :2008/06/18(水) 00:15:54
>>316 あまり厳密に突っ込みを入れたくは無いだが、それは「インスタンスの」じゃないの?
>>314 みたいなのが出てくるから
Java は参照渡しとか言うのは邪悪としか言いようが無いんだよな。
323 :
デフォルトの名無しさん :2008/06/18(水) 00:19:12
Javaやる前にCを勉強してください。それも鬼門とか超難関といわれる「ポインタ」(と参照)についてしっかりやっておかないとついてこれなくなります。
Cに参照はないし 別にポインタは難関でもなんでもない。
326 :
デフォルトの名無しさん :2008/06/18(水) 00:23:45
アパマンの奴はDQNしかない。「とーちゃん。派遣面接受かったみたいだよー」のあの派遣会社のCMと同程度のDQNしかいない。
>>326 なにいってんだ?同じ人間だし、確かに変なやつだとしてもな、どこかにいいところがあるだろ。
そういうところを互いに評価しないといけないんじゃないのか?
いや、Java的にはね
>>328 たぶん君もアパマンのDQNと同等と思ったけどね、そう噛み付きなさんなw
「アパマン」「DQN」がマイブームの香具師がいるな
オレ的解釈だと、C的にはオブジェクトの」、Java的にはインスタンスの」かな。
オブジェクトの単語自体があいまだからなんともいえないけど。
>>328 の引用は単なる君が権威主義(英語とかSUNとか)が好きなだけじゃないのかな?
よくわからんw
>>328 は権威にあこがれるDQNってことじゃないの?
335 :
デフォルトの名無しさん :2008/06/18(水) 01:17:09
>>328 ,331,333
食わず嫌いはいけませんね。
そうなってしまったのは、あなたの人格が歪んでるからでしょうか?
権威も何も、Sunが作った言語なんだから、 Sunの見解を参照するのは当然でしょ。
337 :
デフォルトの名無しさん :2008/06/18(水) 02:26:01
英語の文脈で使われるobjectと日本語の文脈で使われるオブジェクトは違うでしょ javaを使うならJLSは当然第一に参考にすべき文書だけど日本語に訳する時に直訳はいかんよ
>>268 >Cに参照渡しはない
>>270 >用語は違うがあるけど?
Javaでいう参照渡しはC/C++でいうアドレス渡し
ところで、
>>270 >Cやったこと無いくせにに、適当なこと言う言うな
??
toStringで任意の型のオブジェクトを文字列に変換することができますが、 逆に、Type型の値と文字列からオブジェクトを作成するような枠組みは無いのでしょうか? よろしくお願いします。
>>339 意味がよく判らないんだけど、
"int", "1" => int で 1
"float", "1" => float で 1.0
みたいな感じ?
で、それは既存の組み込み型だけでいいの?
sprintf() の 逆なら atoi() static Integer Integer.valueOf(String s) <指定された String の値を保持する Integer オブジェクトを返します。> Type型と文字列から、じゃなくて? 表現は正確に。
Cのscanf()に相当する関数が欲しいって話かな。
スクリプト系言語のeval相当のものが欲しいようにも読める
そこで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のように、 既存の組み込み型や標準ライブラリで定義された型に対して使用でき、 さらに、自分で作成したクラスに対する動作も指定できるような枠組みがあればよいのですが このようなものはありませんでしょうか?
JDK6でrhinoでevalすればいいだろ
347 :
346 :2008/06/18(水) 13:53:03
348 :
デフォルトの名無しさん :2008/06/18(水) 13:57:57
Class.forName()
>>339 「toStringの逆」という変換が一般には無理だとわかった上で?
具体例をどうぞ
やべ遅れたw
リフレクションで出来そうじゃない?
よくわからんけど、インターフェースが統一されないとやなのか
353 :
デフォルトの名無しさん :2008/06/18(水) 15:20:13
いやいや、単なるC#宙でしょ
自分で作ればいいんじゃない 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); 以下略 }
toStringが返す文字列からオブジェクトを復元することは汎用的には無理
Object#toString()ってサブクラスの実装依存じゃなかったっけ?
うん。というか、 Object#toString()がオーバーライドされていないと、 クラス名とハッシュ値しか返ってこないから、 インスタンスの内部状態を知ることができない。
TypeConverterってそういうもんだよ 実装したらメタデータとして型やプロパティに指定しといてリフレクションで取ってくるの
これは邪道かな(あと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
だからそれならrhinioで出来るって
362 :
デフォルトの名無しさん :2008/06/18(水) 20:36:38
このスレでは、String.charAtやClass.forNameじゃ不満なのか? もう答えるつもりないし、どうでもいいけど
>>361 ぐぐったら前立腺マッサージャーが出たYO
>>362 Class.forNameは外していると思うけど、String.charAtはまあまあかな。桁数チェックにもなるし。
だれだ、おまえ?
366 :
デフォルトの名無しさん :2008/06/18(水) 22:50:54
>>364 ここではあなたの評価を気にしながら質問に答えなければいけないのですか?
>>366 どこからそういう疑問が湧いたのですか?
C言語でいう int data = 3; printf("%3d",data); のように右寄せするメソッドご存じないでしょうか?
>>368 System.out.print(String.format("%3d", data));
または System.out.format("%3d", data);
ごめん,かぶった.
System.out.printf(); 改行は ¥n ではなく %n を使う。
1.4系だったという落ちですね。わかります。
質問です 開発は 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 としました
log4jをクラスパスに通せ
うむ
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; } はどっちを書いてもいいの?
どこに
381 :
デフォルトの名無しさん :2008/06/19(木) 08:01:31
そのソースだけだと、どっちでもいいとしか言えんがなw
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()); } } }
TreeSetの値を出力すればいいのではなくて?
>>383 値の降順にソートするコンパレータを設定したTreeMapにmapをputAllして、
そのTreeMapから順番に取り出せばいいんじゃない?
あ、キーの値じゃなくて値か じゃあ385はダメだね
387 :
385 :2008/06/19(木) 12:08:03
Entryの値の方で降順にソートするコンパレータを設定したTreeSet<Map.Entry<String, Integer>>に map.entrySet()をaddAllして、そのTreeSetから順番に取り出せばいいのかな。
配列に全部突っ込んでからソートした方が速そう
おおまかにはこんな感じかな?
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 それもいいかも
どうもgenericsの記述量に負けてあまりシンプルって感じに見えないや。 流れは単にnew TreeSetしてaddAllだけなのに。
JavaSE6からjavax.tools.Compilerを使えばJREだけでJavaのコンパイルできるってこと?
>>391 JRE には tools.jar が無いから無理のはず。
JREにtools.jarは入っていないけれど、 tools.jarをJREといっしょに再配布するのは構わなかったはずなので、 あとはtools.jarにパスが通っていればおk
394 :
393 :2008/06/19(木) 18:23:07
自分の作成した動的コンパイル機能付きのプログラムを配布する場合、という意味ね 自分の環境だけでいいのなら素直にJDKをインストール
なるほど、tools.jarの再配布条件を調べてみます ありがd
質問です 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ですか?
>>396 その設定ファイルが正しく読めてない予感
399 :
396 :2008/06/19(木) 23:00:58
pointup9 という項目を追加して読もうとしてるので、そこがおかしいみたいです・・ね javaのmain定義部分をもう少し見直してみます
400 :
デフォルトの名無しさん :2008/06/19(木) 23:26:37
初心者です 歌詞検索みたいなのってJavaでつくることは可能ですか?
データがあればね
>>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());
}
> * -1; 初めて見た
そんな奴には 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ユーザって相当少ないのかな・・・
事例とか簡単入門とかもあんまり見当たらないよな・・・
だれか詳しい人、何か参考になる情報あれば、ぜひ
>>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でした。
私は今年javaを本格的に学び始めた者ですが質問です。 interface Frame { String Frame = "Alumi"; String getFrame(); } 上記の内容のinterfaceがあるとき実際にはどのような記述と同意であるか?というものです。 いろいろ調べてはみたのですが問題の定義もなんだかイマイチ曖昧で分かりません。 どなたか分かる方教えていただけませんか?
っinterface 暗黙 修飾子
DecimalFormat exFormat2 = new DecimalFormat("###,###,###,##0.##"); System.out.println("hoge=" + exFormat2.format(99.999)); 上記ソースで実行結果が99.99となるような切捨てにしたいのですが どうしたらよいでしょうか?
>>405 クラスパスを自力で辿って、すべてのクラスの名前を (ファイル名等から) 知る
Class#forName で、その名前のクラスをロードする
Class#getAnnotation で、ロードしたクラスのアノテーションを調べる
>>415 1.6以降なら exFormat2.setRoundingMode(RoundingMode.DOWN) とかすりゃ切捨てできるけど
すいません、ここでJSPの質問をしても大丈夫でしょうか?
>>417 さんくす。1.5なので100かけて100で割ることにしました。
420 :
デフォルトの名無しさん :2008/06/20(金) 14:58:24
BufferedImageに読み込んだ画像の背景を透明にしたいのですが どのような方法がいいでしょうか?
最初から背景が透明な画像 (透過GIFやアルファ付きPNG) を読み込むのが一番簡単だと思うよ それじゃだめな理由があるなら、説明よろしく
>>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に関する事でエラーを起こしてしまい
うまくいきません
これは画像の作り方が悪いのでしょうか?
>>423 少なくともエラーは晒せ
できればソースも
それともエスパーによる回答希望?
425 :
420 :2008/06/20(金) 16:41:26
本当にすいません 画像を作り直したら成功しました ありがとうございました
whileで永久ループしているプログラムに外から停止命令を 出したいのですが、こういう場合はソケット通信が適切でしょうか? ほかに良い方法がありましたら教えてください。
普通はThreadじゃないの?
っスレッド
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
なんだ、小出し野郎か。
staticなflagを作って外部から書き換える
canvas3D上にpaintでfillRectを用いて描画したいと思っているのですが、 最前面に表示されません。何かいい方法ご存知でしたら教えて下さい。 よろしくお願いします。
javaアプリケーションからjarファイル(他のjavaアプリ)を起動することはできるのでしょうか? 方法をご存知でしたら教えていただきたいです。よろしくお願いします。
>>433 クラスパスが通ってれば、String[] argsを用意して
com.example.app.FooApplication.main(args);
を呼ぶだけ。
・クラスパスが通ってない場合
・mainのクラス名がわからない場合
などなどあるけど、まあ基本は↑ので。
>>434 ありがとうございます。試してみたところ起動できました。
今は同一プロジェクト内のクラスのmainを複数起動してみたのですが、
クラスパスが通っていれば他プロジェクトのmainも起動できるのでしょうか。
一つ問題なのが、この方法だとおそらく複数のアプリが同一プロセスで
実行されている気がするのですが、別々のプロセスで実行することは可能でしょうか。
答えていただければ幸いです。
ProcessBuilderとかRuntime(1.4まで)とか Javaではサブプロセスと縁を切ることはできないんだっけ?
独習JAVAで勉強してるんですが スレッドの章でRunnableを実装したクラスで MyThread4(String str, long msec) { this.str = str; this.msec = msec; new Thread(this).start(); } と言う部分があり、その中の new Thread(this).start(); の部分が意味がいまいちわかりません。 質問があいまいですいませんが どなたか説明していただけないでしょうか。 お願いします。
// 自分自身をスレッドで実行されるコードとして、スレッドを作成する Thread t = new Thread(this); // スレッドを開始する t.start();
MouseMotionListenerをimplementsしないと ・mouseDragged(MouseEvent e) ・mouseMoved(MouseEvent e) が実装できないのはなぜでしょうか。 インターフェイスはあくまで、指定したメソッドの 実装を義務付けるみたいな感じで習ったので。
>>439 MouseMotionListenerをimplementせずに
・mouseDragged(MouseEvent e)
・mouseMoved(MouseEvent e)
を実装しても一向に構わないが、
MouseMotionListenerを実装したとは認識されない。ただそんだけ。
っダックタイピング
ダックタイピングか強い静的タイピングの違いだな。
ち、リロードしてなかったぜ
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やらないと結局機能しないんじゃないの?
ダックタイピングは持ってるメソッドで所属するクラス(オブジェクト)決めてるからそんな心配ナス
449 :
デフォルトの名無しさん :2008/06/21(土) 15:34:40
リスナーの呼び出し元はどうするの。 addMouseListener()とかしないでどうやってcallするの?
ホスト名(FQDN)が正当かどうか評価する方法はないでしょうか。 どうも . が付いても InetAddress#getByName 等では引けてしまうようで、 1. www.example.com : 当然 OK 2. www.example.com. : OK 3. www.example.com.. : これは NG といった状態になってしまいます。 或いは RFC 的に 2 も OK(1 と同じ場所を指す)と言う事なのでしょうか。 であると逆に、InetAddress#getByName で引ければ正当と判断して良い?
. つけてもブラウザで見れるね
>>449 addはもちろんするが型がなんであるかは関係ない。
普通はメソッドテーブルを検索して対応するメソッドがあれば呼ぶ。
この場合だとコールバック関数名が一致するオブジェクトをadd(これがcallee側になる)しといてcaller側が必要なコールバック関数を呼び出せるかどうか試してみる。
それに成功すればcallee側のコールバック関数を呼び出す。
ダックタイピング採用してるruby辺りをいじるのが早くて分かりやすい。
453 :
デフォルトの名無しさん :2008/06/21(土) 16:27:39
implements MouseListener じゃないと、型が違うからadd出来ないと思うが?
おまえはまずダックタイピングを理解しろ
このスレ的にはダックタイピングの議論を深めるのはスレ違いだし初心者を混乱させる元だ 今のjavaをやっている限りはダックタイピングについて理解しなくても構わない
いっそ、java.beans.EventHandlerについて語ろうぜ
いやここはJAXB2.0だろ
458 :
デフォルトの名無しさん :2008/06/21(土) 17:50:33
eclipsでtomcatを使用できるようにしようとしているんですが サーバービューで起動するとポートが使用されているか既に使われていて使えないと出てしまいます。 どうすれば使えるようになるのか教えてください。
eclipseスレに行け
そのポートを使用しているアプリケーションを終了するかポートを変更してください
461 :
デフォルトの名無しさん :2008/06/21(土) 18:46:17
JSFでFragmentを切り替えるにはどうしたらいいでしょうか
InputStreamのread()の返却値の型がintになっている理由がよく分からないのですが、 read()はストリームから次の1バイトを読み込み、それを返すというものと考えて良いのでしょうか? OutputStreamのwrite(int)ではintを引数にして上位24bitを無視することで1バイトの書き込みをするというのも不自然な気がして、 これもreadの仕様が素直にbyteなら良い気がするのですが。
255と-1(EOF)を区別するためだろうけど、Cへのオマージュではなかろうか。
>462 JavaDoc嫁 int read() 入力ストリームから次のバイトデータを読み込みます。 戻り値: データの次のバイト。ストリームの終わりに達した場合は -1 intな理由はint read(byte[] bytes)との兼ね合いかもね
むしろ、Byte read() だったならばOKなのか、ストリームの終わりの場合はnull(EOF)とできるから
466 :
461 :2008/06/21(土) 19:05:06
リンクにイベント発生させるようにすればいいのかしら
JavaAppletからJavaScriptを操作する方法を知りたいので、 検索して調べたところ、「netscape.javascript.*」を取り込まないといけないと書いてあり、 コンパイルのために、JDKに付属するライブラリをCLASSPATHに通す必要がある、 と書いてありました。 それでCLASSPATHを通すというのが分からないので教えて下さい。 開発環境は CPAD for JAVA2 SDK j2sdk1.4.2_15 です。お願いします。
環境変数設定しろ。あとはググレ。 あとcom.netscapeパッケージはNN系しか使えないからRhino組み込め。
469 :
461 :2008/06/21(土) 19:30:33
やっぱjavaコード側で何とかする話なんだよねえ
470 :
デフォルトの名無しさん :2008/06/21(土) 20:10:28
素直にページ作るよ
473 :
439 :2008/06/21(土) 21:04:07
ダックタイピングってもしかして私に対するレス!?
だとしたら、みなさんありがとうございます。
ダックタイピングも調べてみたのですが、やっぱり
>>453 さんの仰るように、
implements MouseListener
がないとエラーが出てしまいます。
Javaはダックタイピングができないのかな
それから、もうこの話はしない方が良いのでしょうか?
ダックタイピング知らないなら気にしなくて良いよ。
>>473 すくなくともJavaをふつうに使っている限りは関係がない。
>>473 implementsをつければ、クラスを作る側がそのインターフェースを実装する気だったことが早い段階で確認できるでしょう。
偶然メソッド名などが一致していて動作の辻褄も合うなら同類とみなす、というダックタイピング的考えとは対照的(だから参考になる)。
Javaの型の基本が身についていれば出てこない疑問かもしれない。
477 :
467 :2008/06/22(日) 08:25:07
>>468 com.netscapeの使い方が分かるようになりました。
ありがとうございます。
あと、Rhinoについて調べてrhino1_7R1というのをダウンロードして、
今度は使い方について調べたのですが、
コマンドラインからの利用法しか載っておらず、
JavaAppletなどからの利用法が見つかりませんでした。
よろしければ使い方を教えて頂けませんか?
もしくは使い方の載ってるサイトを教えて下さい。お願いします。
Listの中身をチェックしながら消したいんですけど for (ManagerImpl manager : managerList) { if (manager.cleanup()) { managerList.remove(manager); } } こういう書き方だとjava.util.ConcurrentModificationException が出ます。 どういうお作法がいいんでしょうか。
OKWaveに同じ質問がありました。 for (Iterator<ManagerImpl> i = managerList.iterator(); i.hasNext();) { if (i.next().cleanup()) { i.remove(); } } だそうです。
>>477 rhinoのページに組み込みかた載ってるしrhinoのサンプルにも組み込みサンプルがあるよく見てみ。
>>478 Listのremoveでなくイテレータのremoveを使わないと
for (Iterator<ManagerImpl> iter = list.iterator(); iter.hasNext(); ) {
ManagerImpl manager = iter.next();
if (manager.cleanup()) iter.remove();
}
2chでのマルチが減った代わりに 教えて君御用達Q&Aサイトとのマルチが増えたな
質問です。
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を配置する具体的な方法を
どなたかご存知でしたら教えてください
>>478 まあ for(member:list)構文の弱点の一つだな。
見栄えはいいんだけど、イテレタ展開しちゃうからね。
このパターンだけは、昔ながらの書式で、
for(int i=list.size()-1;i>=0;i--){
if(list.get(i).cleanup()){
list.remove(i);
}
}
と書くのが好み。
Iteratorの実装はなんどかやったことあるけど、
remove()は必要になるまで書かない(というか書きたくない)からさ、
使うのも自重してる。
javaアプレットでさ、動画と画像を描画するときに動画が手前にくるんだが、z軸を調整する関数はなんだっけ?
API何使ってんだよ?
488 :
デフォルトの名無しさん :2008/06/22(日) 17:07:02
489 :
467 :2008/06/22(日) 17:24:24
>>489 実行時にクラスパス通せばいい。
>あと、これを書けばJavaScriptの文法を使用可能になると言うことでしょうか?
そう
491 :
使用書無しさん :2008/06/22(日) 19:17:24
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
初心者から中級者ってどこで判断するんだ 開発経験年数?
>>491 すっげぇ!!!!
まじで感動したw
俺もがんばろっとー
498 :
使用書無しさん :2008/06/22(日) 19:51:23
javaなのになんでexeなの?
ただの自己解凍zipだよ。解凍したらclassファイルいっぱいでてくる。 けど・・・ほんとすごいわ。 経験が浅いからこんなでっかいプログラム見たこともなかった。 馬鹿にされそうw
501 :
使用書無しさん :2008/06/22(日) 20:09:14
jarパッケージでもよかったんだけど、jarだと中身丸見えだしアイコンも ダサいので、あえてExeにラップしました。
502 :
デフォルトの名無しさん :2008/06/22(日) 23:26:45
あの〜 色決めるときに { | | } こんな感じで区切ってbyteに代入するのはいったいどういう意味があるんですか? ほかにも | で区切る表現が偶に出てきて戸惑うんですけど・・・・・ 入門書にも載ってなくて 誰か教えてもらえませんか?
| は区切りではない ビットごとの論理和 (OR) の演算子 その入門書の演算子の一覧かなんか見てみろ、載ってるはず
504 :
デフォルトの名無しさん :2008/06/23(月) 01:26:41
趣味で為替のチャート表示のプログラミングをJAVAでしたいと思っているのですが、為替のリアルタイムでのデータをネットから取り込むことは出来るのでしょうか? 質問が漠然としていて申し訳ないのですがお願いします。
>>504 きみのPCのブラウザで表示できる情報はすべてJavaで取得できる手段が
存在すると考えていい。すごく難しい場合もあるけど。
506 :
デフォルトの名無しさん :2008/06/23(月) 01:48:37
>>505 ありがとうございます。
大学ではCとFortranを使ってたのですがどちらも制御系のプログラムばかりでこういった類の経験がありませんでした。
林晴比古の入門JAVAシニア編でもネットから情報を取り込むことに触れられないので不安に感じましたが、もっと勉強しようと思います。
その辺を詳しく解説してくれる書籍などはないでしょうか?
507 :
デフォルトの名無しさん :2008/06/23(月) 02:31:02
赤音れおん
>>508 ありがとうございます。その系列の本をあさってみようと思います
>>504 原則的には
>>505 が言ったとおりなんだけど
ファイナンス系サイトはデータを流用されないように工夫しているところもあるから注意
例えば数字に見えても画像だったりFlushで表示を制御してたり
プログラムのために準備されたものでないものからデータを拾う場合は それないりに工夫や苦労はつき物。 相手がレイアウトや内容を変えない保障はどこにもない。 うちの社内なんていくつかのシステムの寄せ集めで、 システム間のデータのやり取りの大半が、 印刷直前の帳票データから拾ってるから間違い多いしカオスすぎる・・・
特定のフォルダ内からフィルタを掛けて、条件に引っかかるファイルの内容を表示したいので、 finamefilterを使って実現したのですが、当然の如くフォルダ内のファイル数増加に伴って応答が遅くなります。 なにかいい解消手段はないでしょうか?
>>510 なるほど・・・たしかに証券会社のチャートやボードはフラッシュや動画の類いに見えます。
実際問題、個人でそういったデータを引っ張ってきて表示させるのはきつそうですね。
ありがとうございました
514 :
デフォルトの名無しさん :2008/06/23(月) 11:15:17
MT4辺りにDLLフックかけてJNI経由で取り込む
>>512 (十分な効果が出るか分からんけど)ファイル名をあらかじめメモリに展開するとか
よほど大量なら、全文検索エンジンに放り込んでおくという手もあるが
取り扱いが面倒になる
516 :
デフォルトの名無しさん :2008/06/23(月) 12:59:21
>>513 もうちょっと有力な回答があるとまってたんですけど・・・
確か個人ですけど、リアルタイム(1秒毎)は証券会社に加入するしかないです。
yahooのあれは20分遅れだったかな?
個人集団が作ってる有力な株ソフトがいくつかあるんで、それを参考にしたらどうですか。
やってることもhtmlのテキスト解析・分析・処理のようですけど。
517 :
デフォルトの名無しさん :2008/06/23(月) 13:20:03
eclipseでパッケージの中にパッケージをつくるにはどうやるんですか?
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
なに、御礼もないし嬉しくもないの? まあ、もう答えないからいいよ。
いじけちゃってかわいい♪
523 :
デフォルトの名無しさん :2008/06/23(月) 22:53:26
殺すぞ?
通報すっぞ?
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++; }
>>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; }}
>>526 配列の宣言と初期化について調べたほうが良いと思います。
項目数が不明な取り込みには ArrayList を使いましょう。
配列での保持が必要なら、後で変換しましょう。
531 :
526 :2008/06/23(月) 23:33:20
ありがとう。 ArrayListを使う場合の例をおしえていただけませんか?
532 :
使用書無しさん :2008/06/23(月) 23:35:55
>>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>();
最近、PGやSEが逮捕されること多くないですか? それもアキバのお宅イメージをセットにして報道してるように感じますが、警察は何か恨みでもあるんでしょうか。winney?
ButtonGroupでグループ化した3つのラジオボタン1,2,3に対して、 初期はすべてのボタンが選択されていない状態ですが、 いずれかのボタンが選択された状態から、グループを初期の状態に戻す方法を教えていただけませんでしょうか。 ちなみに、clearSelection()は使えない環境です。
536 :
526 :2008/06/24(火) 00:09:09
>>533 本当にありがとうございます。 素人なので、こうした情報が勇気づけられます。 java1.4の場合ですと、ArrayList<TokenData>のような表現は無理だそうです。。。 その場合は、どのような方法がありますでしょうか? DATACLASSをArrayListではあつかえないってことでしょうか? すみません。おしえてください。
>>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 と打っているんですがあっているでしょうか?
ぱっとソース見ただけだけど、selectionをnullにする必要があるのに、selectionのsetterがsetSelected(ButtonModel,boolean)しかないから、無理な気がする・・ せめてprotectedにしててくれたらなぁ。 大したプログラムじゃないし、自分で作ってみたら?
>>538 unix系のshellなら $は意味がある文字だから \$ とエスケープしてみたらどうでしょう。
543 :
デフォルトの名無しさん :2008/06/24(火) 00:45:53
JSFでも使うぞ$
544 :
デフォルトの名無しさん :2008/06/24(火) 03:04:20
クラスの設計を、 ・コードで直接行う場合のメリット、デメリット ・UMLを利用する場合のメリット、デメリット を教えてください 。
冗長、どちらか一つでいい。 ・コードで直接行う場合のメリット ・UMLを利用する場合のメリット
> クラスの設計を、 > ・コードで直接行う 設計になってねえ
クラスの設計を、コードで直接行う場合のメリット、デメリット を教えて下さい
クラスの設計を、コードで直接行う場合のメリット、デメリット を教えて下さい
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空間アクセス、物理メモリアクセス ってどのようにするんですか?
>>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な人でもこれぐらいは知っていますよね。
ここはクマーとかいうAAを貼るところだろうか?
557 :
デフォルトの名無しさん :2008/06/24(火) 17:27:05
アンダーフローやオーバーフローは構文エラーですか?論理エラーですか?
違います 低脳エラー(うぽぽんエラー)です
>>85-105 なんか爆笑した。
>>85 の言動にw
>>109 そこにJavaの格言とJavaの鉄則が入ってるのが理解できない。
あの本はJava5以前の本だぞ。Java5が出てから役に立たなくなったテクニックやTipsが
けっこうあるので今ではおすすめしがたいな。鉄則のほうはそこそこ役に立つが、
それだったらEffective Javaのほうが全然役に立つ。
そクマー
>>121 Java+謎、落とし穴を書いた前橋 和弥よりはましではないかと。
あれは酷かった。本に愚痴ばかりかいて、今となっては解決済みの問題が
あたかも解決されていないかのような書き方が、初心者に誤解を与えかねない本だな。
アンチがあれを読んで昔飛びついていた記憶がある。
>>134 > ただM$の都合で、変な改定されるのが怖いんです。(J++とかw)
そのくせ、こんなこと言ってるよな。VBにしておけよ電波。
> どうしてjavaは初心者にこうも厳しいんですか?
> 例えばダブルクリックの起動ファイルひとつ作るのでも、ネット上の情報はうそっぱちか役に立たない情報ばっかり。
> VBと比べても必要な情報にたどりつくのに時間がかかりすぎ。
> これだったら、M$社製品(C++、C#、VB2005等)の方が手っ取り早かった(と思う、たぶん)。
> とくかく情報の出し惜しみはやめてほしいな。
> なんで、java弄るひとって性格の悪い人がおおいんだろ。
> java関係の本でもろくなのないし。
>>141 > LinuxではC#動かないでしょう?
Monoで動く。
> .NETははっきりいって糞くらえですよ。(食事中のかたすんません)
VB忠なのに。
>>146 > ふりだしに戻る・・・
> ⇒なんで、java弄るひとって性格の悪い人がおおいんだろ。
>
> 自分なりの分析ですが
> java弄る人って、殆どが玄人(それで飯食っているひと)なわけですよ。
> もしくは、いま勉強中で資格とって就職しようとしている人々。
> したがって、ライバルは少ないほうがいい、もしくは自分の優位性をつねに保っていたい。
> そんなエゴが見え隠れしている。
一昔前のC言語厨やUNIX屋じゃあるまいし。
このスレ見ればわかると思うが、素人がよく質問しに来ているが。
>>154 たいした警鐘に感じないなあ。
Javaの情報は10年前に比べれば腐るほどあるし
ライブラリもたっぷりあるし書籍もネットも充実して情報には困らないんだよなあ
この使い方の意義が分からん漏れはヴァカですか? StringBuffer sb; sb.append("Hello, ").append("world!!");
>>567 意味じゃなくて意義となればワンライナーと呼ばれる人々が喜ぶ
>>549 validateを交換可能にしたいんでしょ?
まあ2のTemplateMethodパターンかなあ
570 :
デフォルトの名無しさん :2008/06/24(火) 19:09:11
java.awt.FileDialog上のキー操作、マウス操作をフックしたいのですが、 実装方法を教えてください。 フックしたい目的は、右上の×ボタンとESCキーによるキャンセル抑止です。 processEventメソッドをオーバーライドしたり、 リスナを追加してもどうもフックされていないようです・・。
>>567 それだったらStringBufferをStringBuilderに変えて
StringBuilder sb = new StringBuilder();
sb.append("Hello, world!!");
したkなる。
new忘れていたようなのでつけておいた。
"Hello, "と"world!!"が文字リテラルではなく変数や定数だったら
意義はある。
572 :
デフォルトの名無しさん :2008/06/24(火) 19:45:18
5万ぐらいの激安のノートパソコンで 勉強できる?
>>569 ありがとうございました。
その方向で設計してみます。
JMFを使ってキャプチャした画像→ JNIを通してOpenCVに送り顔認識→ 認識した顔の中心座標を返す といったプログラムを書こうとしていますが、そもそもこんなことは可能なのでしょうか。 別にJNIを使わなくても顔認識ができればいいのですが、 OpenCV程度の顔認識精度があるJAVA用ライブラリなどあれば教えて頂きたいです。
>>572 勉強するだけなら10年前のでもできるだろ
何を勉強するのかしらんけど
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
インデントきえたーーー 読みにくくてスイマセン…出典元を見ていただいたほうがいいかも知れません…
>>577 それは匿名内部クラス、あるいは単に匿名クラス、もしくは無名クラスなどという。
指定したクラスかインタフェイス(その場合はIntComparator)を継承・実装している名前のないクラスを定義してnewする。
定義したメソッドは、そこで生成するインスタンスだけのもの。
>>577 1回限りしか必要のないクラスの名前をわざわざ付けて名前空間を汚す代わりに
名無しのクラスからインスタンスを生成することができる。
書式的には、
new 親クラス(親クラスのコンストラクタの引数) { メソッド定義 }
みたいな感じ。
名前がないので、新しいメソッドを定義してもクラスを明示できないから呼べない。
大抵、親クラスのメソッドのオーバライドしないと意味がない。
クラスじゃなくてインターフェースでもおk
似たようなものに、配列の生成と初期化を同時に行う方法がある。
new int[] { 1, 2, 3, }
とか。
いちいち配列を入れる変数名を用意して名前空間を汚さずとも
そのままメソッドの実引数などに使える。
ただ、見づらいと言う人は多々居る。不毛な論争の種にどうぞ
582 :
577 :2008/06/24(火) 22:51:54
>>580 >>581 ありがとうございます。
読みながら想像してたのと大体合ってたようで一安心です。
クラスの中でインスタンスをいっぱい(50コとか)作るけど、そのうち1つだけメソッドの中身がちょっと違うときに使ったりするものなんですね。
もう少しこのソースがどんな動きをするのかを考えてみたいと思います。その過程で壁に当たったらまた質問に来るかもしれないので、そのときはよろしくお願いします。
クラスの設計を、コードで直接行う場合のメリット、デメリット を教えて下さい
サイズを固定しないJTableを作りたいのですが、 可変長の二次元配列ってどうやって表現すればよいのでしょうか? 一次元でも実現可能なのでしょうが、コードが冗長になりそうで・・・
>>584 配列じゃなくてコレクション使ったMODELで
>>585 引数がVectorのDefaultTableModelを使うという事でしょうか?
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} のメモリ領域が
>>589 言語仕様で決まってるのは{10, 9, 8, 7, 6}の配列がガベコレ可能な状態になるってところまで。
どのタイミングで回収されるかは実装依存。
あと、C言語だと、スタックに確保されるんじゃなかったか? それ。
指定した番号目の素数を出すにはどうしたらいいですか?
593 :
デフォルトの名無しさん :2008/06/25(水) 11:49:39
age
素数を降順でリストに突っ込んで取だしゃいいだろ。
>>594 すみません、素数を出すコードがわかりませんので。
エラトステネスのふるいでググレ
了解
数日前にチャート表示のプログラムを相談したものですが、 ttp//plaza.rakuten.co.jp/meime/diary/200603310002 を参考にしてみます。相談に乗っていただきありがとうございました。
そんなどうでもいいこと聞いてなんになるの?
普通は昇順(1,2,3,5,7....)で何番目の素数とか言うだろw 降順の素数番目ってどうすんだw
じゃあ昇順てことで
スレ違いかもしれませんが、DoJaのコンソールの Main :java.lang.NullPointerException Test java.lang.NullPointerException at MainCanvas.<init>(+40) at Test.start(+7) MainCanvas このエラー出力の(+40)や(+7)はどういう意味ですか?
バイトコードの位置 <init>メソッドの40バイトめとstartメソッドの7バイトめ
進むほど↑↑なのが昇順。 進むほど↓↓なのが降順。
606 :
デフォルトの名無しさん :2008/06/25(水) 21:47:03
自分で使えるAPIをもっと増やしたいと思っている者ですが、みなさんの方でおすすめの本などあるでしょうか? 仕様を見ているだけではなかなか使いこなせず、使用例を見て理解したいと思うんですが、ソースをどこから探せばいいかとよく迷います。 自分のレベルですがJava歴は1年3ケ月、JSP、JSTLのタグを経て、GoFのデザインパターンを現在勉強しています。 ご教授、よろしくお願いします。
new コンストラクタ(引数).メソッド(引数) という構文を見たのですが(左辺には何も無し)、これは staticでないメソッドを使いたい!でも他に使うものはないからインスタンスを作るまでも無い! というときにインスタンスを介さずに非staticメソッドを呼び出すものと考えていいのでしょうか?
>>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)の間違い。
>>577 なんでそんなものを作るのか。
java.lang.ComparableインタフェースとComparable#compareTo()メソッドがあるのに
>>589 AtomicIntegerとか使えばいい
>>607 インスタンスは必要だが参照として保持する必要がない場合に使う書き方
FileChanel channel = new FileInputStream(file).getChannel();
とかよく使うパターンかね
614 :
607 :2008/06/25(水) 22:47:43
>>609 >>613 ありがとうございます。
内部ではインスタンスは作られているけれど、参照が無いから後から同じインスタンスをいじったりはできないということですね。
いまさらこんなこと聞くのもアレなんですが、Javaで言うところの「参照」というのはCでのポインタみたいなものと考えていいんですよね?
…ちょっと自信がなくなってきた…
>>611 出典のページによるとcompareToではオブジェクト同士の比較だけで、int同士の比較ができないから作っちまえということのようです。
>>614 参照はポインタの一種と考えれば、まあ間違いはない。
ポインタで出来ることを全て参照でできないってくらい理解しておけばいいと俺は思う
616 :
609 :2008/06/26(木) 07:50:26
>>614 出典のページによるとcompareToではオブジェクト同士の比較だけで、int同士の比較ができないから作っちまえということのようです。
参考までに出典を教えて。説明を聞いてもIntegerクラスとのボクシング、アウトボクシングがある5.0以降なら、やはり611の言う通りと思えるので。
ボクシングの説明をただ省きたかっただけなのかもしれないけどね。
IntComparatorを日本語ページでぐぐったら2003年に書いたページが出てきたけど。 これ1.5より前に書かれてるんだろうから仕方ないんじゃね?
HtmlURLConnectionを用いてウェブページへのログインを実現させようとしています。 パケットキャプチャして、POSTの方はほぼ完全に一致させ、それに対するサーバーの応答も大丈夫だったのですが、その後こちらがGETするときにはPOSTの時に URLConnection#setRequestProperty(String,String)で設定していたプロパティが完全にクリアされてしまい、サーバーから403が返ってきます。 具体的には、User-Agentが問題なようです。 GETの時のプロパティを設定するにはどのようにすればよいのでしょうか?
JMFを使って動画の再生に成功。あとはタイムラインと文字を流すシステムをひっつければニコニコ動画の完成だ!
620 :
616 :2008/06/26(木) 13:21:43
>>617 おいおい、可能性高くてもWebで同じ名前のソース一つ見つけたからこれのこと言ってんだろってのは無謀だろ。
よしんばほんとにそうだとして、俺を納得させてどうするw
ここは614に「古いコードあてにしないで611の言うこと参考にしたほうがいい。」と言ってやるのが筋じゃないか。
>>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) { } }}
>>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); 等と状況を表示する文を入れて実行し、どんな値が読み込まれているのか確認してみてください。
またどうしてそうなるのか、”メモ帳の中のデータ”をファイルダンプツールで見てみると良いでしょう。
>>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 一行を文字列として読み込むというメソッドを持つクラスがあるので探してみてください。
>>622 繰り返しによって合計を取る方法(どう考えても基本です)をおさらいすることも重要かと。
ちなみに、mとかsというのは何かの略ですか?気になる。
633 :
624 :2008/06/26(木) 18:08:04
基本無理。その要素に、それを含む配列を持たせたらできるけどあほらしいし・・
質問なんですけど、夏にjavaプログラマのSJC-Pの試験を受けるため勉強してるんですが、 問題集しか購入してなく、用語の解説や流れなどのった教科書が欲しいところなのですが お勧めの本とかないですか?友達がもってるSCCの教本見たら微妙だったんですよね。 問題集のほう「徹底攻略 Java2プログラマPlatform1.4」の黒本使ってます。 お勧めなどありましたら教えてください。
メソッド名の書き方について質問です。 メソッド名が長くなるので略して書きたいのですが、その場合大文字小文字の区別はどうするべきでしょうか? 例として aaaaaBbbbbCcccccDdddd というメソッド名を短くしてABCDという名前に略すのですが、これだと規約から外れてしまいます。 そこで 1.aBCD 2.abcd 3.aaaaaBbbbbCcccccDdddd(略すべきではない) 4.その他 どれがいいのでしょうか?
aaaaaBCDとか
641 :
使用書無しさん :2008/06/26(木) 23:00:45
netBeansとかいまどきのIDE使ったら自動補完してくれるので、後々の読みやすさ 考えたら略さないほうがいいと思うけど。
>>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); } } こんなもんかな。
>>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ぐらい打てよ!というのは無しの方向で・・・。 より長いものが出てきた場合に参考にしておきたいので。
今どき補完できるエディタ使おうよ
649 :
使用書無しさん :2008/06/27(金) 00:19:47
>>647 それjavaの質問というよりセンスの問題じゃねえ?
昔cobolやってたころなんか母音略して子音だけで名づけてたな
sprRndTheClckなんてな..
>>647 その場合、RuleクラスのサブクラスとしてSuperRoundTheClockRuleを作成するのが定石だと思う。
なので、メソッド名は同じになりオーバーライドすることになる。
>>647 頭字語で補完してくれるよ、最近のIDEは。
Eclipseの場合だと、sRTC で補完すると superRoundTheClock() が出てくる。
重複するものがなきゃもっと短かくてもOK。
あと、Javaではメソッド名の先頭は小文字な。
652 :
639 :2008/06/27(金) 01:32:47
開発環境が固定されていないため(自宅と学校で学校の中でもいろんな場所でやってる)エディタ変更は厳しいです。
今は全マシンにインストールされてるエディタがあるのでそれを使っています。
今後は略さずに補完機能のあるエディタを使って開発する事がベストということですね。
>>650 上の例で突っ込まれそうな予感はしてましたが、突っ込まれてしまいました。
これはRuleクラスでメンバと抽象メソッドを作ればよいということでいいんでしょうか?
>>652 そのとおり。ストラテジーパターンで。
感覚は掴めていそうに見えるから、ググって実装例を見てみるといいと思う。
もっとも、ルールが2種類しかないとか言うなら、デザパタを適用するまでも無いけどね。
654 :
639 :2008/06/27(金) 02:09:48
>>653 ルールは追加する予定ではいますが、時間の都合上、最悪superRound・・・だけというのも有り得ます。
が、勉強のためにそれでやってみようと思います。
656 :
デフォルトの名無しさん :2008/06/27(金) 15:32:50
JSFでSSLは実現できますか
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)のデータ型を知りたい。 } ・・・ }
>>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 即レスでありがとうございます。
無事やりたいことができました。
勉強になりました。
少し前に為替レートの取得法を相談したものですが,URLConnectionをつかってそのサイトのデータ引き落としは上手く行きましたが、 やはりレートを秒単位でリアルタイム表示しているところはとる事が出来ず行き詰ってしまいました・・ 何かいい案はないでしょうか?
クラス図での表現を教えてください。 (属性と操作は省略していいそうです) そのクラス図がどのような現実世界の仕掛けを表現したものか も教えてください。 Course Person Professor ShedcleOfClasses Section Student Transcript TranscripEntry
663 :
661 :2008/06/27(金) 23:44:49
すいません。いろいろ試した結果為替レートの取得できるようになりました。 申し訳ありませんでした
'else'への'if'がありません ってどうすれば解決できるんでしょうか?
665 :
639 :2008/06/28(土) 00:41:43
問題になってるif文をここに貼り付ければ?
ifまわりの括弧がおかしいとかだろうな
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
のクラス図を教えてください
>>667 クラス図がどんなものか知ってて、ソースコードがあれば
他人に聞く必要のあることなんてこれっぽっちも無いと思うぞ。
描くのが面倒臭いのか?
もしそうなら、ソースからクラス図を吐き出すツールを作ればいいじゃない。
あとは、それくらいの発想なら世の優秀な兄者どもが
既に思いついてるんだろうな〜って感じで、ググっちゃいなヨ。
↓はJudeっていうツールだけど、ソースからクラス図作成もできるので便利よ
ttps://jude.change-vision.com/jude-web/index.html ちなみに ShedcleOfClasses じゃなくて ScheduleOfClasses ね
☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ毎日新聞社による日本人女性への誹謗中傷☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ
・母親は受験勉強をする息子の学力向上のためにフェラチオをする
・日本人女性の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
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したのですが これもまたメモリ不足になってしまいました。 大量データをソートする場合どのような手段をとればいいのでしょうか
マージソートの要領で、データ全体をメモリに入るサイズに分割して個別にソートし、最後にマージする
ゲームプログラミングで一般的にルールを破った場合というのは例外を投げ、それを対処すべきでしょうか? それとも、毎度ルールに沿っているかチェックして対処すべきでしょうか?
入力された数字が一桁なら先頭に0をつけたすプログラムを書きたいのですが、 どうすればいいでしょうか・・・。 たとえば 6→06 としたいのです。 初歩的な質問過ぎてすいません。
int num; ... String numtext = String.format("%02d",num);
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
のクラス図を教えてください
javaでブラウザを作ってみたいのですが SWTを使わずにGeckoエンジンを使った表示の方法はないでしょうか?
680 :
デフォルトの名無しさん :2008/06/28(土) 23:53:57
プロンプトでパラメータから年・月を受け取り、その「前月」「当月」「次月」の3ヶ月をコンソールに 出力するカレンダーにするにはどうしたらいいですか? (要するに、2008、5と入力したら、4月、5月、6月の3か月分を出力する) 条件として、 ・パラメータチェックメソッドを実装すること ただし、同メソッド内にtry/catch句を記述してはいけない。 (自前で数値チェックを実装する) ・mainメソッドはControllerとしてのみ使用すること。 (実際の作成/出力処理は別メソッドに実装すること) 助けてもらえたら幸いです、みなさんお願いします:;
>>679 Java Mozilla Html Parser
なんか最近勘違い君が多いけど、ここは宿題スレじゃないんだぜ >どうしたらいいですか? なんて曖昧な質問には、 プログラムしたらいいのでは? としか答えようがないでしょ? せめて、あたかも宿題じゃないかのようにぼかす配慮をした上で どういうコードを書いたらどういうエラーがでた、位は書こうぜ
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はなにやら無理なようなので他に方法はないでしょうか
>>673 100MB(合計だよね?)のデータを読み込めて、同程度の作業領域を確保出来るだけのメモリがあるんだから、
適当にin-placeなソートでもすればいいと思うよ
お勧めは、multikey quicksort, msd/lsd radix sort, bucket sortあたり
どのソートアルゴリズムを利用すべきかは、データ構造によるところが大きいので適宜選択のこと
689 :
デフォルトの名無しさん :2008/06/29(日) 00:57:03
>>682 話に加われるだけのレベルをつけてからおいで
>レベルをつけてから >レベルをつけてから >レベルをつけてから >レベルをつけてから >レベルをつけてから >レベルをつけてから
>>689 あんたは会話が成立するレベルの日本語を
操れるだけの能力を身につけてから出直しておいで。
692 :
デフォルトの名無しさん :2008/06/29(日) 01:48:08
>>691 偉そうに言いながら「ら」抜き日本語かよww
正しくは「操られる」だろ
おまえこそまともな日本語使えよなww
694 :
デフォルトの名無しさん :2008/06/29(日) 01:57:52
int型のポインタを関数の引数に渡して、引数に、なんか値を戻してやる、 ・・・って感じのこと、javaは、できないのか?
最近のJavaって終末感漂ってるよね 10年前の輝きは何だったんだろうね 新しい言語の説明ってどれもJavaの悪い部分との比較だったりするし Cみたいに恒常的に長生きする言語でもないし
>>695 他のツールが生き残らなかったから、javaと比較するしかないって?
それ程の勢力じゃないだろう。
>>673 ResultSet.TYPE_SCROLL_INSENSITIVE や ResultSet.TYPE_SCROLL_SENSITIVE を指定してないか?
それ、インメモリで処理するからメモリを馬鹿食いするはず。
ResultSet.TYPE_FORWARD_ONLY で解決しない?
>>686 よくわからんが、英語版の画面に切り替えれば、1.4.2_17 ならダウンロードできたぞ。
>>694 できない。どうしてもやりたいなら、クラスに包んで渡してやる必要がある
>>699 ありがとうございます。
目当てのバージョンをダウンロードできました。
>>694 void callee(int[] x) { x[0] = 100; }
void caller() { int[] x = new int[1]; callee(x); System.out.println(x[0]); }
滅多にこんなことしないけどなー。// 適切にクラス設計すればまず出番がない。全くないとは言わんが。
691 名前: デフォルトの名無しさん [sage] 投稿日: 2008/06/29(日) 01:22:41
>>689 あんたは会話が成立するレベルの日本語を
操れるだけの能力を身につけてから出直しておいで。
692 名前: デフォルトの名無しさん 投稿日: 2008/06/29(日) 01:48:08
>>691 偉そうに言いながら「ら」抜き日本語かよww
正しくは「操られる」だろ
おまえこそまともな日本語使えよなww
★「操れる」は「ら抜き言葉」じゃないだろ。
★「食べれる」なら「ら抜き言葉」だから間違ってるが、「操れる」は正しい日本語だよ
★「操れる」=操ることができる
★「操られる」=誰かが自分を操っている
しつけえ
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;
>>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はいらないんですが?
>>708 publicなクラスはファイルを分ける必要がある。
そうじゃない場合まとめて書いても良い。
publicにするかどうかは用途による。
710 :
r545 :2008/06/29(日) 16:04:35
そういう課題ってどこで出るの? 高校?専門?大学?
質問です。 次のような、タブペインに、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();メソッドでコンポーネントは取得できるようなのですが、 コンポーネントからそのメソッドを呼び出せるものなのでしょうか? タブの数は不定なので、あらかじめラベルを用意しておく事は出来そうにないです。
>>710 つかロダのリストのどれやねん(笑
見た感じ直訳するか意訳するかがポイントかね。
コレクション使って書き直すか、Cのロジックでやってる部分をそのまま使うか。
そのまま直訳するならポインタをどう扱うかがポイントで、
意訳するなら処理の内容を理解してないと辛いかな。ソースは短くなると思うけど。
>>712 取得したコンポーネントをLabelでキャストしたらいいんじゃね?
>>714 キャストで出来ました!即答ありがとうございます
716 :
r545 :2008/06/29(日) 16:51:55
713>> すいません!課題は大学で出ました。 ロダの306.txtと310.txtと311.txtです。 Cプログラムをただ単にJavaに書き直せと言うことだそうです。 オブジェクト指向の考えはしなくて良いので全てまとめて良いらしいですが。 Javaは勉強中でして、ちょっと出来る気がしないので見てもらえますか? よろしくお願いします
>>716 宿題スレじゃないからな、わからんとこだけワンポイントで質問しなされ
CとJava同時にやるとかおもしろいなぁ・・
つーかCをJavaのコードに直せとか 典型的なダメ教育だよな
逆にバリバリのオブジェクト指向で書いたjavaのコードをCに直させたら勉強になるかも
それJNI書くのと一緒じゃね
ナンダッテ?
723 :
r545 :2008/06/29(日) 21:32:09
717>> すいません。。 せめて、メイン関数だけJavaに直したのを教えてもらいたいんですが。。 少しづつやってるのですが不安で。残りはは、自分でやるので。
Cでオブジェクト指向みたいなことをやってるのって、 GKT+あたりかな。
>>723 そもそもどっちかの言語をある程度使える状況になってからやる課題。
おまえさんには多分無理ということであきらめた方がいい
>>716 Cは読めるのか?
読めるならばどの部分がJavaに変換できないのかを質問してくれ
728 :
r545 :2008/06/29(日) 22:24:22
727>> Cは読めます。Cのメインは自分で作ったので。 メインが分らないんですが。。少しずつやってるんですけど。
質問です。 今、フルスクリーンとウィンドウを切り替えるようなものを作ろうとしているのですが 描画にはBufferStrategyでgetDrawGrapicsしたものを使用しています。 フルスクリーンからウィンドウに切り替える場合、ウィンドウにはなるものの BufferStrategyがnullになってしまい描画処理が行えないという状況になりました。 少々強引ですが、runの頭でgetStrategyをし取得を試みたのですが上手くいきませんでした。 ウィンドウからフルスクリーンに切り替える場合setUndecoratedが実行できず setUndecoratedを実行しないで切り替えると上と恐らく同じ理由で描画処理が行えませんでした。 もちろん、setUndecoratedにtrueを渡してフルスクリーンにしたいので setUndecoratedを実行しないということはできればしたくありません。 よろしくお願いします。
731 :
デフォルトの名無しさん :2008/06/29(日) 22:40:30
聞いてると 分からない所が分からない人なんじゃないのかなこの人
732 :
名無し :2008/06/29(日) 23:03:44
javaの影響でyoutubeが見れなくなってしまったんですが、どうすれば見れるようになりますか? 教えてください(>_<)
>>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
合ってますか?
聞く前に試したら? と言わざるを得ない
まぁファイル読み込みぐらい調べればすぐできるしな・・ 次からが問題だなぁ
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 にマップできません。 のように出るのですが。。
>>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; にしてファイルを読み込みさせれば良いんですよね? これならエラーは取れました!
746 :
デフォルトの名無しさん :2008/06/30(月) 12:43:52
JSF&SSLの件有難うございました 何とかWeb.xmlをいじる方法で解決しました
最近JDK14→15になったのでGenericsで躓いています。 単体テストでフィールド変数の中身の確認が必要になり、
すみません途中で送ってしまいました。 単体対象クラスを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に持っていく方法が分かりません。 そのままキャストすると勿論叱られます。 よろしくお願いいたします。
750 :
デフォルトの名無しさん :2008/06/30(月) 16:59:53
Java
Type safety: Unchecked cast from Object to HashMap<String,ResultSetMetaData> ObjectからHashMapへの未検査キャストを叱られているのだと思います。 単体テスト用テストケースの中で、clear前はこのフィールドがcontainsKeyで 与えられたキーのオブジェクトを持っており、clear後は持っていないことを確認する つもりだったのですが。 どうしたらいいんだろう。
>>751 Object から総称型へのキャストは怒られる。
警告つきでもいいならコンパイルオプションで -Xlint:unchecked つければコンパイルは通る。
警告抑止したいならメソッドにアノテーション @SuppressWarnings("unchecked") つけろ。
>>751 HashMap<String,ResultSetMetaData>にキャストしようとするから警告が出ているのね。
使い方としておかしいんだろうけど、それでも動くし、
HashMapにキャストする分には警告も出ないのでは?
>>752 、
>>753 ありがとうございます。
やっぱりこの場合は警告無視するしかないんでしょうか。
例えばinstanceofとかでobjectがhashMapのインスタンスであることを確認するとか
なにかそういうような必要な手順があって、それをすれば叱られなくなるのかと思ってました。
ちなみにただのHashMapにキャストしようとすると警告が増えますw
HashMap は raw 型です。 総称型 HashMap<K,V> への参照は、パラメーター化する必要があります
とりあえず@SuppressWarnings付けて逃げました。
どうもありがとうございました。
もう少し頑張ってGenerics勉強します。
>>751 HashMap<?,?> にならキャストできるはず
756 :
デフォルトの名無しさん :2008/06/30(月) 17:52:02
もう終わったらしいよ
らしいね 無駄な労力になったが、まぁ暇潰しだし
>>755 うぉぉぉぉぉぉぉぉぉホントだー!ありがとうございます!!
なんでなんだろう奥が深すぎる_| ̄|〇
>>754 > HashMap は raw 型です。 総称型 HashMap<K,V> への参照は、パラメーター化する必要があります
それは、GenericじゃないHashMapに何かを詰めようとしているからでは?
クリアを確認したいと言う話だったような・・・?
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
エラーはとくにありませんでした
>>761 connect() をしていない所為か?
>>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; }
アプレットを使って定義した範囲での座標の取得の仕方は分かるんですが、アプレット以外の時はどうすればいいのでしょうか? 画面左上から(x,y)の地点にマウスカーソルがある。みたいなプログラムを作りたいです。 (簡単に言うとペイントの右下に表示されるようなのの全画面ver) このクラスを使えばできる。みたいな感じで良いので教えてください。
>>765 JavaとCは違うんだから無理なこと考えるな
何をするプログラムでそれを満たすような実装であることが重要なだけ
先にやさしいJavaでも読んでから出直せ
>>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でウィンドウつくってやってるのでアプレットではないです もしかしてそこらへんで通信できないのでしょうか
>>765 コードの意味を考えようよ。
pow(2,depth)個のDIRECTORYの場所を用意しているだけでしょ?
>>765 その宿題はJavaで明示的にメモリを管理させようとしてるの?
それとも結果が同じならOKなの?
コテハンつけてても一々過去のレスさかのぼって見ないんだから
宿題なら宿題である事と出題者の意図をださなきゃ答え様がないよ
イテレータとコレクションに関する質問です. クラス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です.
>>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という命名がすでに紛らわしい。
総称の連鎖は面倒みてるときりがないので、どっかでキャストで断ち切るのも大事。
>>774 アドバイスありがとうございます.
あと出しのような形になってしまい,大変申し訳ないです.
そのHogeCollectionやgetFoos()は外部の(オープンソース?というのかはわかりませんが)
jarファイルに入っていたAPIを使っていまして,私がソースを改変するのは避けたいです.
方法1,2,3もすべて外部jarのソースをいじる必要がありますよね?
>Collection<E>を実装しないなら、HogeCollectionという命名がすでに紛らわしい。
私もそう思います.iteratorを得るメソッドもiterator()になってないですし.
>>752 さんのレス見て
@SuppressWarnings("unchecked")で警告は消せますが,根本的な解決になっていなくて,
少し気持ち悪いですが,あきらめるしかないでしょうか.
そーゆー手が出せない(出したくない)状況で妥協するための方法だから、 @SuppressWarningsで回避しとくのだ妥当かと。
Iterator<?> it = h.getFoos()
778 :
デフォルトの名無しさん :2008/07/01(火) 20:49:41
皆さんにお聞きしたいのですが、さっき始めてJavaをダウンロードして環境変数を変えようと思ったら、環境変数の欄がありませんでした。 どうやって変えるか教えてください。 OSはXPでJavaはバージョン6です。
>>778 path?
コントロールパネル→システム→環境変数
あれば編集、なければ新規で作れば良いよ。
780 :
デフォルトの名無しさん :2008/07/01(火) 21:03:07
>>779 アリガトウございました。
解決しました。
>>781 とりあえず、
> private boolean isFullScreenMode=true;
と言うのは合ってるの?
>>782 最初をウィンドウにするかフルスクリーンにするかというところなので問題ないはずです。
切り替え自体ができたりできなかったりという状況なのでそれぞれの状態での動作は問題ない
はずなのですが・・・。
安定しないのは仕方ないような気もするな グラフィックボードに依存しちゃう処理だろうし 個人的には・・・ 起動時にパラメータでフルスクリーンかどうかで起動方法を変えるほうが良いと思う。 もしくは起動時に起動モードを選択するパネルだけ出して、その後メインフレームをどっちかのモードで起動かね。
安定させたいならJOGL+AWTが良い
JOGLって3Dで使うもんだーって聞いていたのでよくわからないのですが OpenGLの利用なんてまだ先な気がするので起動時のパラメーターで切り替えるようにしようかと思います。 切り替え自体はオマケみたいなもんだとわりきってみます・・・
>>783 キーイベントとrun()に
synchronized(bufferStrategy){
をかけてやると安定するだろうか?
BigDecimalでの値を、小数点以下を切り上げる方法って あるんでしょうか? Math.ceilメソッドに当たるメソッドってないですよね。 BigDecimal bd = new BigDecimal(10000.1) を 結果が10001.0になるようにしたいのですが・・・。 ご教示お願いいたします。
setScaleでモード指定して1で割れば?
>>788 bd.setScale(0, RoundingMode.CEILING)
791 :
デフォルトの名無しさん :2008/07/02(水) 11:09:06
ヒントありましたら教えてください。 Swing で JTable に RowSorter を設定してソートしてますが、 ソート対象の列のヘッダに「▲」「▼」というソート対象&方向を示す マークが付くのを止めたいのです。 列幅がぎりぎりなのでマークが付くとヘッダ文字列が省略されてしまって…。 どうやったら出来るものなのか(プロパティ設定するだけとか レンダラ作ってなにかメソッド無効化しろとか)情報ありましたら教えてください。
792 :
デフォルトの名無しさん :2008/07/02(水) 11:34:16
教えてください。 現在の日付の前日を求めたいのですがどうしたらよいでしょうか?
>>794 これくらいぐぐれるようにならないとだめだぜべいびー
javaアプレットを作ろうとeclipseをインスコしたんですが、参考にしているサイトに載っているgetImageメソッドが使えませんでした。 仕方がないのでNetBeanでも試してみましたが、こちらでも使えなくて困ってます。 swingのImageIConも使えないので何かアプレット用の設定が必要なのだろうとは思いますが、調べてもわからないのです。 一体どのような設定が必要なのでしょうか…
参考にしているサイトでわかるとおもうか? リンクぐらいつけれw
799 :
デフォルトの名無しさん :2008/07/02(水) 15:58:38
うわ、自己解決でけた! class宣言にextends Applet無かったです…
>>89 無理やり抜くの痛そう、くしゃみ出る
普通にはさみで切ればいいさ
なんかシェーバーみたいなので切るやつあるけどアフロ山田読んでしまったせいで怖くて手が出せないぜw
802 :
:デフォルトの名無しさん :2008/07/02(水) 23:43:45
お絵かきチャットをやろうとしたら「javaがインストールされていません。」とでて、出来ません。 最新のjavaはインストールしております。 インターネットオプションのセキュリティで「java アプレットのスクリプト」 「アクティブ スクリプト」「スクリプトの貼り付け処理による許可」を有効にしてます。 詳細設定でjavaの使用を設定してますが、 javaVM、MicrosoftVMというものはありませんでした。 インターネットセキュリティはNorton360を使っています。 ファイアウォールのプログラムルールでのjuschedは許可してます。 インターネットで色々調べたところ javaが無効で、javaスクリプトは有効でした。 javaを有効にするにはどうすればいいでしょうか。
すみません。スレ間違いました
もし知ってる人がいたら教えてください ActiveObjectsっていうORマッパなんですが 複合主キー使えるんでしょうか?
805 :
788 :2008/07/03(木) 00:35:34
>>789 >>790 ありがとうございます。
setScaleメソッドを使えばよかったんですね。
気付かなかった・・・不覚。
インターネット一時ファイルは通常のファイルとは異なる扱いですか。 一時ファイルに対して FILEのインスタンスを生成しようとしたらFile Not Foundとなってしまいました。 生成する方法はあるのでしょうか?
>>807 そこにあるのは見せかけ?だけで実体のファイルは別の所にある。
File#list()で一時ファイルのディレクトリ一覧を見ると実際の構造が分かると思う。
で、具体的に一時ファイルがあるのは直下のContent.IE5ってところだけど、
このディレクトリは一時ファイルのディレクトリに表示されない。
なので直接アドレスバーに\Temporary Internet Files\Content.IE5って続けて書いてアクセスする。プログラムから参照する場合も同様に。
例外クラスの大元であるExceptionクラスのサブクラスを作りたいときに あなたが定義したほうがよいものを記述せよ、という問があるのだが ぶっちゃけよくわからん 優しく教えて欲しいなり
その問は間違っている 例外クラスの大元は Throwable だ
その例外クラスを投げるクラスの目的によって違うだろ。
>>808 ありがとうございます。
無事目的の動作をさせることができました。
list()も使って確認してみました。
そういう構成になってたんですね。
>>809 問題があってそれに対する独自の例外クラスを作るとかじゃないのか・・
好きなの作れと言われても漠然としてるなぁ
>>814 809ですがその通りなんです。問題文がこれで全てのためあいまい過ぎて
途方にくれてる状態です
>815 理解できないときは、まず出題者に質問しましょう 問題文をそのまま捉えれば、 ・コンストラクタ(引数無し・文字列) ・有益な例外情報を得るためのコンストラクタとメソッド を定義する必要があると思う。
>>816 kuni[1] = new Kuni();
kuni[2] = new Kuni();
kuni[3] = new Kuni();
が必要
819 :
816 :2008/07/03(木) 20:13:03
回答ありがとうございます。できれば、このあたりのことを 日本語で解説しているwebサイトなどはないでしょうか?
サイトは知らないけど booleanの初期値はfalse、intやfloatの初期値は0、オブジェクトの初期値はnull ってことくらい、どこにでも載ってそうな気がする new したばかりの Kuni[17] には、初期値として 17 個の null が詰まってる インスタンスを new して代入しないと、ぬるぽは当然
821 :
816 :2008/07/03(木) 20:52:47
ありがとうございました。なんでもかんでもnewをすれば インスタンスがはいるものだと思ってました。 また質問しにくることがあると思いますがそのときは よろしくお願いします。
パッケージ名には、企業のドメイン名を逆順でつけるのが推奨されていますが、 うちのドメイン名にはハイフンがついているのでそのままではパッケージ名に出来ません。 こういう場合に推奨される命名規約ってあるのでしょうか?
sun-java→sunJavaとか
825 :
デフォルトの名無しさん :2008/07/04(金) 16:02:38
証券会社のトップとかに表示される為替レートをとりたいんですが、 ConnectURLだとやはりその部分が表示されません。 ああ言ったデータを読み取ることはJavaではできないでしょうか。
827 :
デフォルトの名無しさん :2008/07/04(金) 16:13:16
レスありがとうございます。 証券会社だとマネーパートナーとかのトップから落としたいのですが。
>>827 パケットキャプチャすればURLわかったよ。
そのURLでゲットすれば取れたよ。
なんと! 自分の未熟さがわかりました・・・ いまJava始めて2ヶ月ほどなのですが、パケットキャプチャという単語すら知らず。 自分も早く答えれる側になれるようがんばります。 ありがとうございました。
脆弱なインターフェイスなのに好きだね〜 そのサイトがデザインや仕組みを変えてこないとは限らないだろうに
元気な人が居るなw
>>831 確かに思うけど、個人ではそれが限界なのかも。まさか銀行に金払って送ってもらうほどでもないし。
>>829 いきなりパケットキャプチャ城ってのも酷だな
そんなことはどうでもいいんだけど、おすすめ2ちゃんなるに育児が入ってるのが地味におもしろい
833 :
319 :2008/07/04(金) 18:22:36
自己組織化(雪の結晶の成長とか貝殻の形成とか砂浜の造成など…)をグラフィカルに表示するような Java を書いてみたいのですが、そういったソースコードはどこかに落ちていませんでしょうか? もしくはそういったページをご存知でしたら教えていただけると嬉しいです。
834 :
319 :2008/07/04(金) 18:31:20
「自己組織化」について学問・理系板の「全般」「物理」「化学」「生物」「機械・工学」「ロボット技術」「情報システム」「情報学」「シミュレート」「未来技術」「地球科学」 あたりはタイトル一覧を全て探してみたのですが見付かりませんでした。 他の分野は何となく無さそうだったので調べていません。「化学」と「生物」で見付からなかったのは驚きでした。
836 :
319 :2008/07/04(金) 20:18:14
strutsのActionServletやActionFormを継承したクラスのクラス編集に直列化できないフィールドを追加すると、 シリアライズしたときにエラーになると思いますが、実際この辺をシリアライズするのは ウェブコンテナだと思いますが、コンテナがシリアライズ失敗したときにはシリアライズをあきらめるだけなので、 クラスタ構成をしていなければ問題無しと考えてよろしいでしょうか?
「'else'への'if'がありません。」と出たのですが、エラーを示されてる文には「else if」と入力されており、エラーの意味がわかりません。 どうすればいいですか?
>>838 if(〜){
〜
}else if(〜){
〜
}
の最初のifが無いんじゃね?
>>839 それはあります。
なんでできないのかいまだにわけがわかんないです。
該当部分のコードを貼るんだ このままだと誰にもエスパー回答しかできないと思うが
どうせ{}忘れだろな〜と
ソースの形を変えてみたら、少し改良の問題は残るものの一応コンパイルできました。 ただ、またこういうトラブルが起きたときに困りそうなので、とりあえず一通りソース貼ってみます。 (前略) 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以内であれば「惜しい」と表示されるプログラムです。
>>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って省略してもいいと思うけど。
質問です JavaBeansについて調べようと思ったのですが EJBとかの本はたくさん出てるのに、 デスクトップアプリで使いそうな単なるJavaBeansの入門書とかの情報 は随分と古い本しかみつからないんですが、 もう使われてない技術なんでしょうか?
>>846 最終行
上の方云々の前に、
N > num+2 ⇒ num != N
は自明だし、そもそも
num == N
num > N
num < N
で全部じゃないかというツッコミが…
>>843 は論理式の勉強をして、カルノー図くらい書けるようになるのが先決だな
>>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); } }
>>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もマッチするはず。」 と書きたかった。
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」 と表示されます。 どうか対処法をご教授くださいませ。
Ruby の File#truncate(バイト数) のように、 ファイルサイズを指定バイト数にするには、Java ではどうしたら良いのでしょうか。
>>856 RandomAccessFile raf = new RandomAccessFile(path, "rw");
raf.setLength(バイト数);
raf.close();
標準APIには、メソッド一発でできる様な便利メソッドはなかったような。
java初めて8年の初心者です。嘘です。あんまり初心者じゃない。 仕事で、金勘定とか在庫管理とか何だとか、いくつかのプロジェクトを周ってきたんだけど 「コード」「コード定数」とかいう言葉がよく使われますよね? 業界標準と考えていいのかな? (お前のプロジェクトだけだwwって事なら、後で解説します・・) んで、今まで周ってきた、どの会社のどのプロジェクトでも、このコードを 普通のクラスと普通の public static final String で定義する決まりになってるんですが enum を使いたくない理由って何なのでしょうか? DBに値を突っ込みにくいとか、あるいはDBからエンティティを復元しにくいとか? でも enum を使えば、麺種別コードを入れるべき所に間違えてダシ種別コードを入れてしまうような 事故がなくなるはずなのに。 この事故のせいで、数十人月は損してるんじゃないかな?特に今回のアソコは・・・
>>859 enumはjava5からだから昔からあるシステムのメンテや追加だとまだ使いたがらないことが多い。
うちのシステムではなぜか定数はinterface派だな。 public interface Foo { int AAA = 1; String MSG = "UGO UGO"; }
>>859 「よく解らないので(知らないものは)採用できない」と言われたことあるぜw
むしろ定数自体が邪悪
うちもインターフェイスかな・・ Static importとか使う?
>>864 import java.util.*; のような表記は全然OKだけど、static import は使わない。
個人のサンデープログラマは気ままに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()とかオーバーロードしてるのがまずいんですかねぇ。。
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 で使うことはできない んでしょうか?
それで足りないならば設計を疑えよ どっかに大きなボトルネックあるだろ、常考 おおかた全部配列とか馬鹿食いのオンメモリなんだろうが
875 :
873 :2008/07/06(日) 10:48:34
>>874 そうです。画像データは全部配列です。。。
int[] pixelData = new int[2000 * 2000];
みたいな画像データを20〜50くらいメモリに持ってます。
同時に表示することもあります。
表示するサイズは小さいサムネイルサイズなので、
それだけ残して、元データは HDD に保存してもいいんですけど、
VM が物理メモリを勝手に使ってくれるというのは
結局同じようなことなのかと思ったので質問しました。
VM が全部解決してくれたら、プログラマは楽だなぁと。。
画像のクラスを使わないであえて配列でしてるのか・・
877 :
873 :2008/07/06(日) 10:57:48
>>876 あえてというか、画像クラスの使い方がわかってません orz
32bit グレースケール
32bit x 3 の RGB 画像
これを保持できる画像クラスがあればそれで代用したいですが。
配列はなるべく連続した領域をメモリに確保しようとするから効率は最悪 そもそも、bmpみたいな形式でオンメモリに持っている時点でアウト 素直にImageクラスなり使え、不満になったら自作するか拡張しろ
むしろ画像を使おうとしてどうして配列を思いついたほうがすごいな ググってもImageとかBufferedImageとかしか出ないと思うんだが
880 :
873 :2008/07/06(日) 11:17:48
>>878 なるほど、効率が最悪なんですね。。。
ただ、高速化のために配列のデータを C++ で書いた DLL に渡して
ゴリゴリ画像処理もしたりしてるので、難しいかもしれません。。
まぁ、最初から明示的にメモリを解放できる C++ で作った
ほうがよかったかもしれませんね。。。
>>873 DLL使っているならば最初からC++で書けよ
なんでJava使うのか意味わからね
言語の選択方法から学んだほうがいいぞ
サムネイルを表示した後も、プログラム内でくわえ込んでいるようなこと書いてるから、 C++で書いても同じことでは?
883 :
デフォルトの名無しさん :2008/07/06(日) 12:26:10
>>873 OS が仮想化してようがなんだろうが、VM に最大 1GB だと言えばそれしか使えないだろ。
なんだったら 100GB でも 100TB でも要求してやれば?
結局やることをやらにゃならんことが分かるだろw
結論: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 の回収が間に合わないかもしれないしな。
それなら結局どこかでメモリ使用量を抑える(ファイルベースで動くとか)様にせにゃならん。
これでどうかな?
>>875 おまい、ちょっとは消費メモリ見積れ。
4(intのサイズ) * 2000 * 2000 = 約16MB、それが50個あったら800MB、
その配列以外にもいろいろリソース使ってるはず(サムネイル生成とか)
だから、そりゃ1GBじゃ足りなくなるだろう。
GCは、使ってない領域を解放するだけで、使ってる領域をどうにかして
くれるわけじゃないぞ。
888 :
873 :2008/07/06(日) 13:06:25
>>886 なるほど。わかりました。
>それなら結局どこかでメモリ使用量を抑える(ファイルベースで動くとか)様にせにゃならん。
これをJVMが勝手にやってくれると助かるなぁと思ったんですよね。
C/C++ に比べて Java はメモリスペースを意識しなくてプログラミングできるのが
利点だと思っていますので。。。(勘違いでしたらすいません。)
>>885 > 使わなくなった画像とかを gc がちゃんと回収してくれてないような気がして
お前が使わないつもりでも、「どこか」からたどれるルートがあれば、それは「使われてる」と見なされる。
例えば、
static int[] img = new int[2000 * 2000];
なんて書いてあったら、img に null を入れん限り永遠に解放されない。
>>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) だから、自分でしろ。
VMってマジで物理メモリでしかやりくりできないの? Windowsに乗ってるアプリとは思えない仕様だね
>>891 VM規定に反してなければOutOfMemoryError出す前にGCが未使用メモリを回収してるはず。
強参照しっぱなしなのに「解放してるはず」と思い込んでる事は、かなり頻繁にある。
JPAでOneToManyのMany側を絞り込み検索した状態で One側を得るようなJPQLはどのように書けばよいのでしょうか。 例えば従業員の作業日誌の直近5日分を 全ての従業員分取得するといったケースです。
897 :
896 :2008/07/06(日) 14:18:27
あ、ORMスレがあったのでそちらに移動します。 こちらはクローズでお願いします。
JToolBarのボタンにつくフォーカスの四角い枠の表示ってどうやったら操作出来るでしょうか?
しつこくすみません。
どなたか
>>618 を教えていただけないでしょうか?
900 :
898 :2008/07/06(日) 18:37:56
すいません自己解決しました。
>>901 いえ、設定し直すもなにも、methodをPOSTに設定しrequestPropertyを設定するまではいいのですがその後コンテンツを取得する際、
内部的にrequestMethodを初期化(あるいは再設定?)するらしく、設定できないのです。
1.POSTでログイン時の情報を送る。 2.サーバーからSet-Cookieなどの返答がある。 3.GETでページデータを取得。 POSTに設定後各種プロパティを設定し、getInputStream()をした時点で内部で上の1〜3を行うようで、 1の接続ではMessageHeaderに設定したプロパティがそのまま使われるので大丈夫なのですが、3で再び接続する際勝手に各プロパティを設定されてしまいます。 説明が分かりにくくて申し訳ありません。
1.リクエストプロパティの設定 2.サーバーからレスポンスを得る 3.InputStreamなどでデータを読む 一回の接続でこれを行うので、ほかにも処理をしたい場合は再度1〜3を繰り返す。 それともリダイレクトの事なのだろうか?
906 :
デフォルトの名無しさん :2008/07/06(日) 21:06:56
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時に自分で設定しないと 送られないのは分かっているか?
>>905 その通りでした。確かにリダイレクト時にリクエストプロパティが再設定されてしまうようですが、今回はそれが原因ではありませんでした。
クッキーについては、CookieManagerにCookiePolicyとしてとりあえずCookiePolicy.ACCEPT_ALLを設定し、一応その情報が送られていることをパケットキャプチャで確認しておりましたが、そのクッキーがいくつか欠けていたようです。
サーバーからSet-Cookieとして送られてきていて、全て受け入れるようにしているにも関わらず一部しかクッキーが設定されていないのが現在の疑問です。
まだしばらく検証してみます。
いろいろな方がわざわざ解決しようとしていただいたのに、お気持ちを踏みにじるようなことになってしまってすみません。
910 :
デフォルトの名無しさん :2008/07/06(日) 22:08:01
ava.util.Map.Entryってどういう意味があるの? どういうときに使うかを教えてください。
それはKeyとValueのペアを表すオブジェクト。 基本的にはMapの内部で使われるだけで、あんまり意識しなくていい。 意識する時はKeyとValue両方の値をイテレートする時くらいかな。 keySetのイテレートからgetで値を取り出す手法より速いからね。
912 :
デフォルトの名無しさん :2008/07/06(日) 23:37:02
テストの自動化とか、日次処理とか用途はいろいろ考えられるね。
914 :
デフォルトの名無しさん :2008/07/06(日) 23:46:32
すみません、質問です。 現在JavaからMS-DOSのバッチファイルを呼び出して処理したいと思っています。 Runtime.exec()を使用して呼び出し・処理自体は成功しているのですが バッチ内部からの返り値をJava側で取得する事はできないのでしょうか?
Process#exitValueじゃね?
917 :
デフォルトの名無しさん :2008/07/07(月) 00:32:32
>>916 Exitvalueで値は帰ってくるのですが、常に0となってしまいます。
バッチ内では明示的に1を返しているのですが・・・
何かやり方がまずいのでしょうか・・・。
>常に0となってしまいます。 バッチの呼び出しに成功してるから0なんじゃね? ここらへんwinとlinuxで実装違った気がする。 linuxで同じこと試せる?
バッチって cmd /c batch.bat って呼び出すんだっけ?
>>918 >linuxで同じこと試せる?
今のところLinuxの環境がないですね・・・
会社の方にあったかもしれないので探してみます。
>バッチの呼び出しに成功してるから0なんじゃね?
ExitValueとは、バッチでの処理で返した値というより
バッチを動かすプロセス自体の成否結果を取得する、というイメージでしょうか?
もしexitValueでの解決が難しいようなら、ステータス(に相当するモノ)を echoして、Processの出力を読むことで代替できるかもしれない。 敗北感ありまくりだけど。
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 って表示されるよ。
>>921 アドバイスありがとうございます。
解決が難しい場合はやってみたいと思います。
>>922 サンプルまでつけて頂きありがとうございます。
やはりExitValueでバッチの返り値自体を取得できるのですね・・・
当方もWindowsなのですが、なにか環境の問題なのかもしれませんねorz
もう一度全体的に問題がないか見直してみます。
>>904 Cookieを決めるのはSet-Cookieだけではなくて、javascriptにも命令文が有った筈。
>>912 特にこれといって今のところは使う予定はありません。
単純に便利なクラスだなぁ〜、といろいろ試してました。
>>926 他のブラウザで実行した場合の全てのクッキーがSet-Cookieで送られ、実際に設定されたクッキーもそれらであったため、それはないと思います。
Set-Cookieはサーバーサイドcookieでjsのはクライアントサイドcookieな。
そんなネタに釣られ熊
すみませんが質問、というか相談です。
アノテーションとその応用について、参考になるリンクや書籍をご紹介いただ
けないでしょうか?書籍は和書だとありがたいですが、なければ英語でも。
【コラム】ライトニングJava (26)
アノテーション(1) - Javaの大きな変貌、アノテーションの導入
http://journal.mycom.co.jp/column/java/026/ この連載を読んで興味を持ったのですが、どのような応用が考えられるのか、
あまり参考になる情報を見つけられませんでした。
すごいアホな質問で申し訳ありませんが、JUnitの3までは TestAAAA#testBBBをTestSuite に追加するには TestSuite suite = new TestSuite(); suite.addTest(new TestAAAA("testBBB")); とかって出来ましたよね? JUnit4はどう指定したらいいのでしょうか。
>>909 CookieManagerって期限判定がおかしくない?
933 :
デフォルトの名無しさん :2008/07/07(月) 15:31:35
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) コンストラクタが使えないのは判るのですが代替方法が判りません。
>>932 Locale.setDefault(Locale.ENGLISH);
とすると期限を判定してくれることが分かった。
日本語ロケールでは、日付が読めないらしい。
質問させていただきます。 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じゃ無くなってしまってますね。。
すいません鬱陶しかったら無視してくださって結構です。
こんばんわ。 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を使えばできそうですね。
ありがとうございました。すれ違いのようなので試行錯誤してみます。
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です。
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に変更を与えないようにするにはどのようにすればいいのでしょうか?
>>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に変更を与えないようにするにはどのようにすればいいのでしょうか?
>>947 プログラムは書いたようにしか動かない。
質問するなら、
まず、何のつもりか、したいことの方を詳しく述べた方が良い。
>>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する。
>>950 なるほど!
早速試してみようと思います
ありがとうございました
952 :
デフォルトの名無しさん :2008/07/08(火) 00:28:45
先生、もうどうしていいか分かりません。 open-ejbでEJB3.0の実装をしようと思ってます。 トランザクション管理をコンテナ管理からBEAN管理 に替えたいのですが、どうやって指定したらいいか 分かりません。 EJB2.0のように、デプロイメント記述子を書くしか ないのでしょうか。
>>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にアクセスしたい } } かなり端折って書いてます、初心者なもので記述のおかしいところとかあるかもしれませんが よろしくお願いします。
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にアクセスしたい } } クラスの書き方が変だから直した。
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ヶ月弱で色々なゲームができるようになりましたのでそろそろ同人ゲームを作りたいです。
>>958 ソースを配るのにソースを非公開にする?配るのはclassファイルとかjarとかじゃないの?
リストに入れたオブジェクトのフィールドを変えると リストの中のオブジェクトのフィールドもかわってしまいますか? 言い換えるとリストの中のオブジェクトは参照しているだけですか?
>>958 >>959 の言う通り、意味が判らないけど、
パスワード付きzipで固めるとか、そういう事でいいのかな。
Javaの問題ではない様な気がする。
フィールドでオブジェクトを初期化するのと(例えば A a=new A();) コンストラクタで初期化するのとは何が違うんですか?
963 :
958 :2008/07/08(火) 11:11:58
jarで配ったらソースがばれるんちゃうか?アプリ使用して中身を盗みみるとか。 パスワード付きzipで固めましたらjavaそのものが起動できなくなるのでは? 知障ですいません。 私がしたいのはダブルクリックしたらプログラムが動く状態にまで持ってきたいです(それかコマンドプロントでjavaプログラムを叩いたら起動。そこの説明はテキストで説明します)。 とりあえずソースを見られないようにしたいのです。
ソースの難読化してくれるツール使うくらいしかないだろうな けど逆コンパイラのjadは最新のソースには対応してないから、普通に逆コンパイルしてもきれいには復元できないし気にしなくていいと思うけどな。 どうしてもされたくないならJavaは使わないべき。
>>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(); } }
の違い?
強いて言えばタイミングが違うが、大して変わらない、でいいだろか。
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
gcjってjava5以降まともにコンパイルできたっけ?
できない。文法的には確か1.4止まりじゃなかったか? そもそも、ソース見せたくないからネイティブ化ってどうなんだろうな
>>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
ごめんなさい。自己解決致しました。
意味不明すぎワロタ
979 :
デフォルトの名無しさん :2008/07/08(火) 21:19:25
ひょっとして JSFやStrutsはすれ違い?
そんなことより埋めようか
次スレは?
982 :
デフォルトの名無しさん :2008/07/09(水) 01:47:39
純粋なプログラミングではないのですが、詳しい方教えて下さい。 他社が作った昔のJavaソースを貰って、評価して作り替えの新規 提案する必要があります。規模は数10Kstep その昔のJavaのソースを定量的/定性的に評価して レポートをする必要があるのですが、皆さんならどういうことを 考えますか? 定量的:JTestでどの程度規約に沿っているか 定性的:Judeでクラス図起こして、変なところを探す ぐらいしか思いつきません。 いいアイディアが有れば教えて下さい。
>>982 FindBugで潜在的なバグ要因となるコードを探すとか。
結構出るので、相手によるけどびっくりさせられていいかも。
>>983 アレだろ。
「このプログラムはこんなにヒドイ!
バグてんこ盛りで、規約もいい加減。メンテ無理!
ですから、既存コードの改修はあきらめて
当社に新規開発させてもらえませんか?
その方が安く付きます。」
って話のネタ。
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; } というプログラムです。アドベンチャーの一部のプログラムです。詳細は隠してありますが。 ご提示宜しくお願いします。
switchの中のどこで数値を引いてるって? >JHP = JHP -da; の部分か? 元の変数JHPを書き換えるのをやめればいいのでは?
988 :
デフォルトの名無しさん :2008/07/09(水) 12:00:47
>>987 それをやったら画像が表示されなくなりJHPも0になってしまいましたorz
プログラムはJHP=da; da=-10;でやってみました。
>>986 ,988
やりたいことをもっと詳しく書きましょう。
「〜の場合に変数xxxの数値を減らしたいけど、いまはどんな場合にも減っ
てしまう」とか。
画像ってなんだよ
>>986 のプログラムのどこにそんな画像があるの
書いてないことまではわからないよ
次スレ立てるよー
993 :
デフォルトの名無しさん :2008/07/09(水) 12:54:44
>>990 そこまで書いたら漏れの苦労が台無しになる。
>>989 pa=3の場合に変数aの数値10だけを減らしたいけど、いまは除々に減っていきます。
pa=3の場合に変数daの数値10だけを減らしたいけど、いまは除々に減っていきます。
pa≠3の場合は減った数値を元に戻したいということ?
997 :
デフォルトの名無しさん :2008/07/09(水) 13:08:18
>>995 分かりやすくしたい事を日本語で書きますと、
最大HPが100あります。
ある場面Aにいきました。
あるイベントが起きました。
ダメージが10減りました
HP、10減ってHPが90になりました。
的な事をやりたいです。
言わんとしている事は、こんなことだろ。 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); }
なんでswitchがいるんだ?
>>997 switchの外の
>JHP = JHP -da;
は消して、case 3 のところに
JHP -= 10;
と書けばいいんじゃない
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。