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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。

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

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

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

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
2デフォルトの名無しさん:2008/12/14(日) 20:59:33
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 8
ttp://pc11.2ch.net/test/read.cgi/tech/1227234261/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50

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

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

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

**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja/
3デフォルトの名無しさん:2008/12/14(日) 23:31:05
>>1さん乙です。

早速質問、申し訳ありません。
前スレでも質問したのですが、サーバ、クライアント間での要素の受け渡しについて
質問があります。
中身はVector型なのですが、できればそのまま送受信を行いたいのですができますか。
クライアント側である事柄をできるようにしてまして、別のクライアントが行った処理を
他のクライアント側でも再現したいのです。
4デフォルトの名無しさん:2008/12/14(日) 23:42:42
自分で考えろ
5デフォルトの名無しさん:2008/12/14(日) 23:53:07
XMLにしろ
6デフォルトの名無しさん:2008/12/15(月) 00:03:47
>>5
有難うございます、なんだか解決しそうです。
7デフォルトの名無しさん:2008/12/15(月) 10:50:34
>>6
4、5の回答だけで解決できそうなんて、死ぬほど優秀なプログラマだな。
これだけの指示で作ってくれるなら、SEは、死ぬほど楽できるぜよ
8デフォルトの名無しさん:2008/12/15(月) 13:00:26
糞スレ終了
9デフォルトの名無しさん:2008/12/15(月) 14:08:18
>>8
あらら〜
脳味噌が鼻の穴ッぽこから垂れてきちゃったんですか?w
10デフォルトの名無しさん:2008/12/15(月) 18:35:58
画像に対してgetRGBで得た値をR,G.Bそれぞれの値に変換するにはどうしたらいいのでしょうか?
そのままint表示させても負の値が1つ出てしまいます。
11デフォルトの名無しさん:2008/12/15(月) 19:09:49
>>7
4、5の回答だけで解決できないなんて、死ぬほど馬鹿なプログラマだな。
これだけの指示で作れないなら、SEは、死ぬほど苦労するぜよ
12デフォルトの名無しさん:2008/12/15(月) 19:26:05
>>10
そのint値を8ビットずつ区切って4つに分けると A, R, G, B になる
ビット操作がよくわからないなら、Colorクラスに放り込んでgetRedとか使えばいいんでないかい
13デフォルトの名無しさん:2008/12/15(月) 21:43:10
Javaでint型の関数を作るには
どの様に記述すれば良いですか?
14デフォルトの名無しさん:2008/12/15(月) 21:52:03
>>13
protected int retInt() {
return 1;
}
15デフォルトの名無しさん:2008/12/15(月) 22:30:31
>>14
有難う!
16デフォルトの名無しさん:2008/12/16(火) 02:26:38
なんでわざわざ protected なのか
17デフォルトの名無しさん:2008/12/16(火) 02:40:44
18デフォルトの名無しさん:2008/12/16(火) 02:45:18
そういや、昔、JavaDeveloperっていう雑誌もあったな・・ あれも結構いい雑誌だったんだけど。
19デフォルトの名無しさん:2008/12/16(火) 10:05:25
>>16
ちょびっと捻ってみた
20デフォルトの名無しさん:2008/12/16(火) 15:42:52
>>10さん レスありがとうございます。
その方法を試した結果でまた質問させていただきたいのですが、
bmp形式画像をBufferedImage im に読み込み、
int ww = im.getRGB(x,y);
Color c = new Color(ww);
int R = c.getRed(); int G = c.getGreen(); int B = c.getBlue();
としてRGBを求めてるのですが、このRGB値を16進数に変換しsetRGBを用いてbmp画像として出力するとなぜか読み込んだ画像と全く違ってしまいます。
なにか考えられる原因はありますか?
21デフォルトの名無しさん:2008/12/16(火) 15:50:58
RGB値を16進数に変換するところがバグってるんだと思いますよ
22デフォルトの名無しさん:2008/12/16(火) 15:56:39
>>21さん レスありがとうございます
今のところこのようにやっています。
String rr = Integer.toString(R, 16); これをG、Bにも行い、
if(rr.length()<2) rr = "0" + rr; これで値が小さいときに0を追加しています。
rgb = rr + gg + bb; それを3つあわせて1つの文字列にして
int color = Integer.parseInt(rgb, 16);
としてこの値をsetRGB()で書き込んでいます。
どこが間違っているかわかりますか?
23デフォルトの名無しさん:2008/12/16(火) 16:04:47
特に間違ってるようには見えない・・・が・・・
getRGBの値をそのままsetRGBで書き込んではいかんのか?
24デフォルトの名無しさん:2008/12/16(火) 16:09:43
なんで、わざわざ文字列に変換してるの?
そのまま、intで扱う方が簡単なのに。
25デフォルトの名無しさん:2008/12/16(火) 16:11:57
>>23 >>24
画像を読み込んでから書き込む前にちょっとRGB値の並び替えをしてるんです。
それでうまくいかないのでその部分をコメント化してやってるんですがうまくいかなかったもので・・・
26デフォルトの名無しさん:2008/12/16(火) 16:22:02
どうせ Color を使うんなら、
Color c = new Color(r, g, b);
im.setRGB(x, y, color.getRGB());
すれば?

im.setRGB(x, y, (r << 16) | (g << 8) | b);
のほうが簡単だけど。
27デフォルトの名無しさん:2008/12/16(火) 16:28:38
>>26さん ありがとうございます。
とりあえずいまやりたい処理なんですが、
例えば2つのピクセルのRGB値を読み込んで、1つ目と2つ目のRの値を入れ替えて画像として出力する。
といったことがしたいんです。そうするとgetRGB()で得た値をそのままsetRGB()はできないんじゃないかと考えて一度文字列に変換しました。
28デフォルトの名無しさん:2008/12/16(火) 16:41:03
>im.setRGB(x, y, color.getRGB());
これより↓のほうが見たまんまだと思うのは錯覚だな、きっと
>im.setRGB(x, y, (r << 16) | (g << 8) | b);
29デフォルトの名無しさん:2008/12/16(火) 18:53:05
>>20 >>22 ですが解決しました。
レス下さったみなさんありがとうございました。
30デフォルトの名無しさん:2008/12/16(火) 19:03:19
ワイルドカードとジェネリックメソッドの違いについて悩んでいます。

void func(List<?> a)
<T> void func(List<T> a)

上の二つのメソッドは、呼び出す側から見ればほぼ同じだと思うのですが、
この二つはどういうふうに使い分けるべきなのでしょうか?
31デフォルトの名無しさん:2008/12/16(火) 20:31:33
>>30
funcの中でパラメタ型Tを使うか使わないか。
32デフォルトの名無しさん:2008/12/16(火) 20:40:15
恐らく初歩的な話だとは思うのですが…
FileReader(BufferedReader)にてテキストファイルを読み込んでいるんですが
mark(),reset()が今一うまく使えません。mark,reset自体は使えるけど
mark(int limit)のlimit値にファイルのサイズを与えると
60MBほどを超えた値を指定した直後にExceptionが発生してしまいます…

そもそもlimitの捕らえ方が間違っているのでしょうか?ご教授下さいorz
33デフォルトの名無しさん:2008/12/16(火) 21:23:53
>>30
実装の詳細が漏れてるだけ
<T> void func(List<T> a)
の方がお下品
34デフォルトの名無しさん:2008/12/16(火) 21:32:26
http://www.ibm.com/developerworks/jp/java/library/j-jtp04298.html

>ある型パラメーターがメソッド・シグニチャーの中で 1 度しか現れないのであれば、
>その型パラメーターはおそらく、名前付きの型パラメーターではなくワイルドカードであるべき

らしいです。
「キャプチャー・ヘルパー」イディオムを使って型パラメータを消せとエロイ人は言っているようです。
35デフォルトの名無しさん:2008/12/16(火) 21:55:12
>>32
OutOfMemoryError じゃないか?
36デフォルトの名無しさん:2008/12/16(火) 22:15:10
>>35
その通りでしたorz
となると、巨大なファイルを読み込む際はストリームの現在位置をマークする方法は無いのでしょうか…?
37デフォルトの名無しさん:2008/12/16(火) 22:41:27
BufferedReaderってオンメモリでやろうとするんじゃね?ストレージ上でやれば良いと思う。
38デフォルトの名無しさん:2008/12/16(火) 23:28:11
大学の講義で、TCPを使ったメッセージのやりとりを行ったのですが、サンプルで使用したプログラムが納得がいきません。
以下にプログラムの内容を簡単に説明します。

Server側はServerSocketを使用、Client側はSocketを使用。
クライアントは単純にString#getBytes()で取得したデータをそのままストリームに書き出し、サーバー側はそれをバッファリングして受信します。
その読み込みの終了条件が、「例外が起きれば終了」というものでした。
つまり、クライアント側の送信が終了すれば、クライアント側プログラムが終了し、接続相手を失ったサーバーが次にストリームを読み込もうとした際に、例外が発生し終了するというものなのです。

このような処理をネットワークプログラミングでは普通に行うのでしょうか?
39デフォルトの名無しさん:2008/12/16(火) 23:29:30
ローカルなファイルであれば
RandomAccessFile を使うとか。
40デフォルトの名無しさん:2008/12/16(火) 23:30:51
>>39>>36 へのレスね
41デフォルトの名無しさん:2008/12/17(水) 01:25:52
>>38
ソースを見ないと確かなことは言えんけど。

「例外が起きても終了」が正しいんじゃない?
通常は読み取るデータがなくなったら、
終了してしまえばよいわけで。

42デフォルトの名無しさん:2008/12/17(水) 10:42:49
>>38
クライアントの異常終了に備えて例外をキャッチする必要があるのはもちろん、
普通にストリームがEOFに達した場合も終了とするべきだが、
読み込み方 (使うメソッド) によっては戻り値チェックでなくEOFExceptionを捕まえることになるかもしれない
43デフォルトの名無しさん:2008/12/17(水) 11:01:30
>>38
普通はこんな馬鹿なやり方はしないでしょ。
たとえばこんな風に実装する。
実際にデータを送信する前に、
データのサイズを知らせるようにする。

クライアント側:
byte[] data = text.getBytes();
outputStream.writeInt(data.length);
outputStream.write(data);
outputStream.close();

サーバ側:
int size = inputStream.readInt();
byte[] data = new byte[size];
inputStream.readFully(data);
inputStream.close();

44デフォルトの名無しさん:2008/12/17(水) 11:56:39
LinuxにTomcatを入れてJavaEE環境を作っているのですが、
JRE_HOMEという名前の環境変数でJREのパスを指定しないと動かないようです。
この設定は何の意味があるのでしょうか?
Tomcatが内部でJRE_HOMEという参照を固定的に持ってるのですか?
WindowsでTomcatを動かした時は設定した覚えはないのですが。
45デフォルトの名無しさん:2008/12/17(水) 12:52:02
>>44
Linux にはいろいろな種類があって、実行ファイルとかを置く場所が種類によって異なったりするんだよ。
46デフォルトの名無しさん:2008/12/17(水) 13:27:55
>>44
Tomcatを起動するスクリプトで使用している。
このスクリプトはWindowsとLinuxで違う。
詳しくはTomcatのbin以下のテキストファイルを参照。
特に、setclasspath.batかsetclasspath.sh。

Windowsでexe形式のインストーラを使用した場合は、
インストーラがレジストリ見てJAVA_HOMEに相当するパスを
自分で見つけてくれる。だから設定しなくても動く。

詳しくはここ参照。
ttp://tomcat.apache.org/tomcat-6.0-doc/setup.html
47デフォルトの名無しさん:2008/12/17(水) 14:06:28
Linuxは何かと面倒です。Windowsマンセーです。
48デフォルトの名無しさん:2008/12/17(水) 14:49:45
javaの基礎知識だけで作れるオススメプログラム何かないですか?
学校の課題では在庫管理プログラムを作るよう言われて作りましたが今一面白みがないので…
49デフォルトの名無しさん:2008/12/17(水) 15:02:39
>>48
メモ帳とか
50デフォルトの名無しさん:2008/12/17(水) 15:25:25
Swing使えればwebブラウザも作れるな
51デフォルトの名無しさん:2008/12/17(水) 16:19:36
得ろ画像ビューワだろ(´・ω・`)
52デフォルトの名無しさん:2008/12/17(水) 16:36:05
エロ画像かどうかは画像解析技術が必要だ。
なにモザイクがあるかどうか判別すればいい。
53デフォルトの名無しさん:2008/12/17(水) 16:45:17
お前はモザイクがあるエロ画像しかみたことないのか
54デフォルトの名無しさん:2008/12/17(水) 16:58:12
そんな餌で釣られるクマーry
55デフォルトの名無しさん:2008/12/17(水) 18:24:33
この時期になると思い出すんだが、俺が子供のころ、
タンスの中をあさってたらなぜか俺が欲しかったおもちゃを箱付き新品で発見したんだよ。
おかしいなと思いつつ、親に聞いたら驚いたような顔をして「親戚の子にあげるつもりだった物だから」と
何度も言ってた。そのおもちゃがどういう意味を持つのか、俺が気づいたのは成長してからだったんだ。
ちゃんと隠しておいてくれよ、と思う。
56デフォルトの名無しさん:2008/12/17(水) 20:39:50
Pleiades All in Oneつうのを落としたんですけど
「Eclipse 本体と便利なプラグインのセットです。」と書いてるんですが本体が入って無いんですけど
そういうものなんでしょうか?
5744:2008/12/17(水) 20:49:38
>>45
>>46
お礼遅くなりましたがありがとうございました。
奥深いなぁ。windowsが内部でそんなことしてるとは知りませんでした。
というかそんな知識どうやって得るんでしょうかね。。ネットでも見ないし。
ど素人からこの業界に入った高卒の自分には限界があるんですかね。
58デフォルトの名無しさん:2008/12/17(水) 21:07:30
低学歴でも出来る人はいるけど
心の中では見下してるかなやっぱり
中卒とか高卒は問題外で
正直言えば同じ立場で仕事するのも抵抗がある
59デフォルトの名無しさん:2008/12/17(水) 21:42:10
と無能がほざいてますw
60デフォルトの名無しさん:2008/12/17(水) 21:43:16
>>37
>>39
RandamAccessFileを利用して無事動作させることが出来ました。
ありがとうございます!
61デフォルトの名無しさん:2008/12/17(水) 22:12:41
>>57
さすがにjava以前にOSから勉強した方が良い
62デフォルトの名無しさん:2008/12/17(水) 22:28:49
このM野郎
ほんとにいいソフト作ったな
63デフォルトの名無しさん:2008/12/17(水) 22:31:29
>>57
PCさわりはじめて半年でカーネルハッカーになった高校生なんてのもいるんだ。学歴は関係ない。
知っていることが重要なんじゃなくて、どうやったら目的の情報にたどり着けるかが重要。
付属のやオフィシャルサイトのドキュメントは情報の宝庫だ。せめて目次くらいは一通り眺めろ。
設定ファイルにも「こういうときはこう設定する」という情報がコメントアウトで記載されてることがよくあるから参考にしろ。
ぐぐるときも、通りいっぺんのキーワードじゃなくて、付属ドキュメントに書いてあるキーワードを使えば目的の情報にたどり着ける可能性が上がる。
最後の手段はソースコードだ。Javaなら、クラス名を眺めるだけでも何処で何やってるのかなんとなくわかることもある。
健闘を祈る。
64デフォルトの名無しさん:2008/12/17(水) 23:05:08
すいません、1週間悩んで解決しないので助言をお願いします。

現在JFreeChartを用いて、時系列グラフを作成しています。
X軸の表示方式をMM/dd形式にして出力しようとしています。
表示範囲を10/10〜12/10とした場合、
X軸の項目として10/10,11/10,12/10と出力してほしいのですが、
現在11/1,12/1と表示されています。

DateTickUnitクラスを利用して、間隔を制御できるという記事を見かけたので
間隔を31日に設定してみましたが、表示内容は変わらずじまいでした。

JFreeChartではこのような表現は不可能なのでしょうか。
ご教授いただけましたら幸いです。

//-- 以下ソースより抜粋
DateAxis dateaxis = new DateAxis();
dateaxis.setRange(startYmd, endYmd);
dateaxis.setDateFormatOverride(new SimpleDateFormt("MM/dd"));
dateaxis.setAutoRange(false);

int range = 31;
int DayRange = DateTickUnit.DAY;
DateTickUnit unit = new DateTickUnit(DayRange, range);

dateaxis.setTickUnit(unit);
65デフォルトの名無しさん:2008/12/18(木) 00:07:08
すみません、質問です。
ProcessBuilderで子プロセス(Notepadなどのエディタ)を起動して
そのエディタが非アクティブになった時に、親プロセスから操作して
アクティブに戻すことはできるのでしょうか?
66デフォルトの名無しさん:2008/12/18(木) 00:10:09
java.awt.Robot使うとか?
67デフォルトの名無しさん:2008/12/18(木) 00:23:47
>>66
Robotを使う方法では
Alt + Tabを自動で押すと言う方法しか思い浮かばず、
親プロセスと子プロセスの間にアクティブなウインドウが入ってしまうと
そちらに切り替わってしまうんです。
子プロセスのエディタが最小化されてても、それを指定してアクティブにすると言う方法は
ないでしょうか?
68デフォルトの名無しさん:2008/12/18(木) 08:24:35
低学歴だから低能、とは思わないが、
>>46が情報ソースとしてURL示しているのに
「ネットでも見ない」とほざく>>44は低能に違いない。
69デフォルトの名無しさん:2008/12/18(木) 08:43:44
高卒なのにすごいやつ知ってる
それは俺
70デフォルトの名無しさん:2008/12/18(木) 09:03:44
なら大学も入れたはずじゃね?w
71デフォルトの名無しさん:2008/12/18(木) 10:49:09
質問ー

urlのリストをデータベース(mysql)に入れて、status=0に全セット

a)urlでstatus=0のものを読み込む
b)urlのstatus=2にする
c)urlにgetでアクセスして内容を取ってくる
d)c)の結果をデータベースに保存
e)urlのstatus=1にする

というjavaコマンドラインのプログラムを作ってみて、
複数窓を立ち上げて同時に動かしたら
見事に全部が同じurlにアクセスして、
しかも読み込みタイミングが全く同時なんだけど
どうして?

なにか思いつく人教えてー
100%staticではないんだけど、、、

ロックもどきが動作していないのか
どっかでデータが共有されて同じ内容を実行してしまっているのか・・・

ソースはでかすぎてのせるの大変だけど
ソースレベルでみないと分からない漢字でしょうか
72デフォルトの名無しさん:2008/12/18(木) 11:24:33
URL取得するときにselect for updateでロックかけたらいいんじゃね?
73デフォルトの名無しさん:2008/12/18(木) 11:26:47
かなりの初心者ですがお願いします。

最近サクサクみていた動画共有サイトがあるのですが
突然先週末くらいから「インターネットサイト○○は開けません。操作は中断されました」
というエラーが出るようになり見れなくなりました。
使ってるブラウザはIE6なのですが、firefoxをインストールしたら、それでは見れました。
(でも重いので削除してIE6に戻したのですが・・)
いろいろ調べて試行錯誤してみると、javascriptをオフにすると見れるようになったんです。
でも先週まではオフにしなくても見れたのに何故でしょうか。
また、ダウンロードの時間も長くなりました。原因は何ですか?
74デフォルトの名無しさん:2008/12/18(木) 11:30:34
スレ違い、WEB板いけ
75デフォルトの名無しさん:2008/12/18(木) 11:52:51
>>73
その動画共有サイトはFirefoxでしかテストしてないのです。
Firefoxを使いましょう。
76デフォルトの名無しさん:2008/12/18(木) 11:53:33
Fileクラスについて質問させてください。

Eclipseでプロジェクト作成してその中のsrcディレクトリに
javaファイルを作成してソースを書いています。

File file = new File("data.txt");
として同じsrcディレクトリにあるdata.txtファイルを
読み込んでfileを扱いたいのですが、
java.io.FileNotFoundException: data.txt (指定されたファイルが見つかりません。)
とエラーが出てしまいます。
System.out.println(file.exists());を実行するとfalseになるので
ファイルが見つかっていないようです。

しかしEclipseのworkspaceのパスを完全パスで指定すると上手くいきます。
Eclipseで相対パスを指定すると何か問題があるのでしょうか?
ちなみにJavaSE環境です。

よろしくお願いします。
77デフォルトの名無しさん:2008/12/18(木) 12:13:19
>>76
File file = new File("src", "data.txt");
78デフォルトの名無しさん:2008/12/18(木) 12:50:06
System.out.println(System.getProperty("user.dir"));
79デフォルトの名無しさん:2008/12/18(木) 12:57:55
System.out.println(file.getAbsoluteFile());
80デフォルトの名無しさん:2008/12/18(木) 13:07:45
File file = new File("./data.txt");
8176:2008/12/18(木) 13:22:29
たくさんのレスありがとうございます。

File file = new File("src, "data.txt");
で出来ました。

System.out.println(System.getProperty("user.dir"));
とすると
workspace/ブロジェクト名
が出力されますね。
つまりuser.dirというのが相対パスの起点?になってるのかな。

File file = new File("src/data.txt");
としてもOKでした。
しかし、
File file = new File("./data.txt");
とすると
.をカレントディレクトリと認識できずにパス名の中に「.」という文字のまま
セットされて駄目でした。

勉強になりました。ありがとうございました。
8264:2008/12/18(木) 15:06:58
すいません、どなたか助言を頂けないでしょうか・・・
できない仕様ならば早急に対処しないと、無駄な工数がかかってしまいます。
厚かましいとは思いますが、よろしくお願いします。
83デフォルトの名無しさん:2008/12/18(木) 15:59:40
うちの下流工程でなけりゃ無駄な工数大いに結構、だそうですw
84デフォルトの名無しさん:2008/12/18(木) 17:48:15
Max/MSPでVST作成
85デフォルトの名無しさん:2008/12/18(木) 17:49:43
近所のおばさんが、色目を使ってきます。困っています。僕は23で、相手は40くらいです。
86デフォルトの名無しさん:2008/12/18(木) 18:08:41
AppletのgetImage()で質問です。
JDK/JRE1.6では問題なかったのですが、1.4.2にすると
4bitカラーのPNGの色が化けてしまいます。
この組み合わせで正しく描画出来た方いらっしゃいますか?
1bitや8bitでは問題無いみたいです。
87デフォルトの名無しさん:2008/12/18(木) 21:46:35
標準出力で
$>java hoge
............Loaded ○○%
みたいなメッセージ出してる時の
○○の部分だけ増加させるのってどうやったらいいですか?
System.out.println()だと無駄に行数が増える。
88デフォルトの名無しさん:2008/12/18(木) 21:53:10
>>87
"\r" とか使う。

System.out.print("foo");
Thread.sleep(1000);
System.out.print("\rbar");

を試してみな。
89デフォルトの名無しさん:2008/12/18(木) 21:58:44
>>86
よくあることだよ。
新しいバージョンのJREでバグが直ったと思ったら
今度は別の形式の画像ロードにバグが入ってたり。
ImageIO と Toolkit を使い分けるといい。
90デフォルトの名無しさん:2008/12/18(木) 22:04:47
>>88
即レスさんきう。
できました。
91デフォルトの名無しさん:2008/12/18(木) 22:08:28
JPanel上で、drawString()を用いて文字を描く際に縦書きは出来ますか?また、フォントの大きさを変えることはできますか?
92デフォルトの名無しさん:2008/12/18(木) 23:34:05
>>91
できるよ。
java.awt.Graphics,Graphics2Dのjavadoc読め。
あとJava2Dも調べればよし。
93デフォルトの名無しさん:2008/12/18(木) 23:54:08
実際会社とかでソフトウェアの開発するならJavaとCどっちが多用されますか?
94デフォルトの名無しさん:2008/12/18(木) 23:59:26
その会社がどういうものを作ってるかによるな。
その前にJavaスレでその質問をすることが適当かどうか考えような。
95デフォルトの名無しさん:2008/12/19(金) 00:07:47
>>89
ありがとうございます。ImageIOで解決しました。
しかし、画像の一部を90度回転させるのにAffineTransform.rotate()
を使っていたのですが、JRE1.4.2だとオフセットがずれてる…泣きそう。
quadrantRotateは1.6からのメソッドだし…
旧バージョンのJavaにも対応って、そもそも無理なんでしょうか?
96デフォルトの名無しさん:2008/12/19(金) 01:23:01
PG暦4年だけどC言語使う仕事なんて未だに1度も出会ったこと無いなー
メインはJavaとPHPとRubyぐらいかな
まぁ24歳で初心者から中途入社した下っ端PGですがね
97デフォルトの名無しさん:2008/12/19(金) 01:42:55
>>82
>JFreeChartではこのような表現は不可能なのでしょうか。

半年前にいじった時は可能だった
やり方詳細はもう忘れたので自分で調べてちょ
9891:2008/12/19(金) 01:55:10
>>92
回答有難うございます。

フォントサイズの方は、
fontSize = this.getFont().getSize2D();
this.setFont(this.getFont().deriveFont((float)(fontSize * 1.5)));
の様にして変えることが出来ました。
ただ、目的の文字列を描画した後
this.setFont(this.getFont().deriveFont(fontSize));
としてもフォントサイズが戻りません。何故なのでしょうか。

縦書きの方はさっぱり分かりません。
affine2 = affine = this.getFont().getTransform();
affine2.rotate(-AffineTransform.TYPE_QUADRANT_ROTATION);
this.setFont(this.getFont().deriveFont(affine2));
g2.drawString();
this.setFont(this.getFont().deriveFont(affine));
ってしたら・・・文字がクルクル回りだしましたorz
9991:2008/12/19(金) 02:02:12
シャローコピーじゃ駄目ですよね。
affine = this.getFont().getTransform();
affine2 = (AffineTransform)affine.clone();
としてみましたが、回らなくなっただけで縦にはならず・・・。
100デフォルトの名無しさん:2008/12/19(金) 07:14:43
縦書きならSwing Hacksに載ってるな。
101デフォルトの名無しさん:2008/12/19(金) 12:31:42
>>91
縦書きって、日本語のような縦書き?
それとも、横書きを90または-90度回転するって意味?
98,99でやってることからは、後者のように見えるけど。
FontにAffineTransformを適用してもいいけど、
Graphics2DにAffineTransformを適用した方が簡単だと思う。

試行錯誤も大事だけど、Java2Dの資料を一通り読んでから試行錯誤したほうが効率いいと思うよ。
102デフォルトの名無しさん:2008/12/19(金) 21:22:33
3つしか番号を登録していないさびしい携帯に、登録している番号からかけてくるか
否かをコマンドライン引数で判断するプログラムですが、うまくデバッグできません。
ご教授頂ければ幸いです。

ソースは下記です。

class keitai {
public static void main ( char args[] ) {
char[] num = new char [ 3 ];

num[0] = "09012345678";
num[1] = "09023456789";
num[2] = "08012345678";

for (char i = 1; i <= 3; i++)
num[i] = args[i];
}
}
103102:2008/12/19(金) 21:23:45
エラーは下記です。

C:\java>javac keitai.java
keitai.java:5: 互換性のない型
検出値 : java.lang.String
期待値 : char
num[0] = "09012345678";
^
keitai.java:6: 互換性のない型
検出値 : java.lang.String
期待値 : char
num[1] = "09023456789";
^
keitai.java:7: 互換性のない型
検出値 : java.lang.String
期待値 : char
num[2] = "08012345678"
104デフォルトの名無しさん:2008/12/19(金) 21:34:36
つっこみどころが多すぎるw
とりあえず、argsんとこはString[]に変えて、Setでも使ったほうがいいんじゃない?
Set<String> set = new HashSet<String>();
set.add("09012345678");
set.add("09023456789");
set.add("08012345678");
if(set.contains(args[0]){
System.out.println("登録されてます。");
}else{
System.out.println("登録されてません。><");
}
105デフォルトの名無しさん:2008/12/19(金) 23:52:08
vista64の環境でtomcatを使ったwebアプリの開発したいのですが
64bit対応のtomcatのインストーラが見つかりません。
アドバイスいただけると助かります。
106デフォルトの名無しさん:2008/12/20(土) 00:50:15
>>105
zipを好きなところに展開すればいいやん。
Tomcat自体はJavaアプリだから、32bitも64bitも関係ない。
107デフォルトの名無しさん:2008/12/20(土) 00:59:35
javaで小さめのWEB開発をしてるのですが、
お客さんに改竄対応はどうしてるの?と、聞かれて、
実はたいして何もやってないのですが、
どんな対応を入れるのが良いのでしょうか?

XSSだのSQLインジェクションはフレームワークで何とかなると思ってて、
更新系の処理の場合はトランザクションのトークンチェックを入れてます。
(更新画面→更新完了画面以外は、ブラウザ戻るボタンとか自由)

改竄って意味が、例えば表示したJSPというかHTMLを、
クライアントが保存して値を書き換えてpostされても大丈夫?
みたいなことだと思っています。

今のところ、クライアント上(HTMLやJS)で制御している処理については、
ちゃんとサーバーでも確認させる。
例えば無効化(disabled)にしてるから押せないから処理が動かないではなく、
無効化させる判定をサーバー側でも再度確認してから処理を実行。
ってなのぐらいしか浮かんでないのですが、アドバイスが欲しいです。
10891:2008/12/20(土) 01:18:55
>>101
後者です。縦書きではないですね、スミマセン。
出来ました。有難うございます。
109デフォルトの名無しさん:2008/12/20(土) 01:48:29
>>107
よくニュースなどに出てくるウェブページ改竄クラックは、SQLインジェ
クションが多いみたいだね。SQLインジェクションがフレームワークを使
うだけで防げるかどうかはフレームワークしだい。

たぶんJavaに依存しない話で、板違いだと思われる。
110デフォルトの名無しさん:2008/12/20(土) 02:38:42
>>107
XSSとSQLインジェクションが無効であることをきっちり確認して、
>今のところ、クライアント上(HTMLやJS)で制御している処理については、
>ちゃんとサーバーでも確認させる。
>例えば無効化(disabled)にしてるから押せないから処理が動かないではなく、
>無効化させる判定をサーバー側でも再度確認してから処理を実行。
がきちんとできてれば問題ないんじゃない?

で、お客さんにこういう対応しています。
大丈夫です。って資料作って言えばいいと思うよ。




111108:2008/12/20(土) 08:28:45
>>109
フレームワークと書いたけど、それだけじゃ無理かな。
プロ(?)の攻撃と同じような確認はできないですけど、
シングルコーテーション入れたりしながらチェックしてみます。
そして板についても考えたのですが、
あまりよいのが見つからなくてjavaにしちゃいました。すいません。

>>110
どうもありがとうございます。
上でも書いたのですが、もう少しチェックをちゃんとやってみます。
お客さんに聞かれたときにすんなり答えていれば、
余計な資料作成とかで時間取られないで済んでいたのになと、
後悔しています。



あまりjavaのWEB開発の経験がないのですが、セキュリティ対策って難しいですね。
散々言われてるだろうけど、ダブルポストやらブラウザの戻る制御や、
URL直打ち(予定外の遷移)やら、XSSにSQLインジェクションやら、
考えることばかりでびっくりしました。
112109:2008/12/20(土) 08:29:36
>>111
名前を間違えたorz
113デフォルトの名無しさん:2008/12/20(土) 09:28:43
>>111
お金はかかるけど専門の会社に頼んだほうがいいよ
イントラならどうでもいいけど
114デフォルトの名無しさん:2008/12/20(土) 18:57:19
わてが、Javaやってたとき(あれから5,6年になるかな・・・)
あんなときはJSPやServeltが動けばいいって時代で一生懸命Web+DBPressとかJavaWorldとか
本買いあさって開発してたなあ。Webアプリのセキュリティなんてなんもいわれんかった時代じゃ。

あの頃開発したのは、どうなっとるんじゃろ?
115102:2008/12/20(土) 20:52:42
>>104
即レス有難うございます。
見慣れない言葉の連発なので、自分でできる限り調べてから、またレスさせてください。
116デフォルトの名無しさん:2008/12/20(土) 21:40:12
素数のプログラムを高速化をしたいのですがヒントを教えてください。
import java.io.*;
public class Sample12
{
public static void main(String []args)throws IOException
{
System.out.println("2以上の整数を入力してください。");

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

String str = br.readLine();
int num = Integer.parseInt(str);

for(int i=2; i<=num; i++){
if(i == num){
System.out.println(num +"は素数です。");
}
else if(num % i==0){
System.out.println(num+"は素数ではありません。");
break;
}
}
}

}
117デフォルトの名無しさん:2008/12/20(土) 21:46:20
>>116
とりあえず、numまで調べず、√numまででいい。
118デフォルトの名無しさん:2008/12/20(土) 21:55:46
ファイル入出力に関して質問させてください。
テキストファイルに文字を書き込みたいのですが、
例えば
『あいうえおさしすせそたちつてと』
というテキストファイルの文章があるとして、「お」の後の位置に「かきくけこ」を加えて
『あいうえおかきくけこさしすせそたちつてと』
としたいのです。
しかし、RandomAccessFileのwriteメソッドを使うと
『あいうえおかきくけこたちつてと』
となり、元からあった「さしすせそ」が潰れてしまいます。
元々の文字を潰さずに文字を追加する方法は何か無いのでしょうか。
119デフォルトの名無しさん:2008/12/20(土) 21:56:14
>>117
と言うと問題はこれですね、
for(int i=2; i<=num; i++){
if(i == num){
System.out.println(num +"は素数です。");
}
else if(num % i==0){
System.out.println(num+"は素数ではありません。");
break;
}
}
}

}
for文を使わないで書く事も考えたんですけど
流石に厳しかったです(汗
120デフォルトの名無しさん:2008/12/20(土) 22:04:20
>>116
if(num % 2 == 0){
System.out.println(num+"は素数ではありません。");
}
boolean isComp = false;
for(int i = 3; i <= (int)Math.sqrt(num); i += 2){
if(num % i == 0){
ifComp = true;
break;
}
}
if(isComp){
System.out.println(num+"は素数ではありません。");
}else{
System.out.println(num +"は素数です。");
}
121デフォルトの名無しさん:2008/12/20(土) 22:07:38
>>120
有難う御座います、
120さんのコードを参考にまた他のも考えてみます。
素数の高速化って本当に奥が深いですね…
122デフォルトの名無しさん:2008/12/20(土) 22:22:34
トリップ生成器を作ろうと思うんですが
Javaにcrypt(3)相当のAPIはありますか?
123デフォルトの名無しさん:2008/12/20(土) 22:26:09
>>122
javax.crypto は?
124122:2008/12/20(土) 22:45:48
>>123
それっぽいAPIが見当たらないです。。
125デフォルトの名無しさん:2008/12/20(土) 23:07:42
>>118
単純な方法はないと思う。
「さしすせそ」以降のデータを全て後にずらしてから
「かきくけこ」を書き込むとか、
地道なことをやる必要がある。
126デフォルトの名無しさん:2008/12/21(日) 00:04:40
質問です。
下記のプログラムを実行したのですが、a = 5 b = 4と返されます
if(b == 2){
break;
ここの部分で b = 2 の時処理が止まらないのはなぜですか?
よく処理がわからないので解説お願いします。


class Sample {
public static void main(String arge[]){
int a = 0;
int b = 0;
for( ; a < 5; a++) {
if(a < 2){
continue;
}
b++;
while(b < 3){
b++;
if(b == 2){
break;
}
}
}
System.out.println("a = " + a + " b = " + b);
}
}

127デフォルトの名無しさん:2008/12/21(日) 00:11:21
>126
一つ上の繰り返し構造を抜けるだけなので。

Label使う? それとも、キチンとメソッドに分ける?
128hello worldすら・・・:2008/12/21(日) 00:17:41
「Hello world」の段階で悩んでるので教えてください。

public class sample1 {
public static void main(String[] args) {
System.out.println("hello world");
}
}

↑をコンパイルしたらclassファイルは出来たのですが
実行できませんでした。何がダメなのかよろしくお願いします。
下記がコマンドプロンプトの結果です。バージョンは
jdk1.6.0_11です。


C:\sample>javac sample1.java

C:\sample>java sample1
Exception in thread "main" java.lang.NoClassDefFoundError: sample1
Caused by: java.lang.ClassNotFoundException: sample1
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: sample1. Program will exit.
129デフォルトの名無しさん:2008/12/21(日) 00:20:31
>>127
即レスありがとうございます。
試験勉強で入れ子の構造を理解しようとしてます。
まだアルゴリズムが完全に理解してないのでまず処理の見方とか
ご教授していただければありがたいです
130128:2008/12/21(日) 00:36:36
hello world すらできないって質問した者です。
半分解決しました。
java -classpath . sample1
これでhello worldが表示されたのですが
これのクラスパス変数設定を変える方法がわからないので、おしえてください
131デフォルトの名無しさん:2008/12/21(日) 01:08:05
>>129
甘えたりしないで教科書でちゃんと勉強してからにしてくれ。
132デフォルトの名無しさん:2008/12/21(日) 05:57:08
ポリモフィズムを理解するための課題が出てAppletのpaintをオーバーライド
して線を引くプログラムを書こうとしたのですがうまくいきません。まず
import java.applet.Applet;
import java.awt.Graphics;

public class AppLine extends Applet{
public void paint(Graphics g) {
g.drawLine(10, 10, 100, 100);
}
}
と書いてAppletを継承したAppLineクラスを作成して、(これはコンパイルできました)
import java.applet.Applet;
import java.awt.Graphics;

public class AppletMain{
public static void main(String[] args){
Applet applet1;
applet1 = new AppLine();
applet1.paint();
}
}
と書いてコンパイルするとシンボルを見つけられません。と
メソッドpaint()がおかしいという趣旨のエラーがでます。
よろしくお願いします。
133デフォルトの名無しさん:2008/12/21(日) 06:20:02
どこにつっこめばいいんだ?
134デフォルトの名無しさん:2008/12/21(日) 10:21:47
>>118
ファイルの途中にデータを挿入する方法は無い。
挿入したい場所以降を全部読み出して、挿入した結果で上書きしないといけない。
135デフォルトの名無しさん:2008/12/21(日) 10:22:59
>>130
インストール時に環境変数CLASSPATHを設定したりしてないか?
136デフォルトの名無しさん:2008/12/21(日) 11:17:07
ポリモフィズムは難しいからね。まずはエラーどおりpaint1()を疑ってみれば?
137118:2008/12/21(日) 12:00:46
>>125
>>134
回答ありがとうございました!
javaって意外と不便なんですね…。
138デフォルトの名無しさん:2008/12/21(日) 12:04:43
javaの問題じゃないだろ
139デフォルトの名無しさん:2008/12/21(日) 12:12:55
直列化についての質問なんですが

作成したクラスに Serializableを実装することで
作成したインスタンスをObjectOutoutStreamなどで保存、読み込みできるのは理解したのですが
同じ型のクラスの配列を作成し、その配列にインスタンスを複数代入した場合
この配列をどのようにしたら保存、読み込みできるのでしょうか
140デフォルトの名無しさん:2008/12/21(日) 12:37:58
>>137
javaの問題じゃない。一般的なOS(WindowsとかLinux等のUNIX系OSとか)で使われるファイルシステムの原理的な制約だから、プログラミング言語を問わず同じこと。
メインフレーム系OSのファイルシステムならそういうことはできるかもしれんけど、個人で使う機会はまずない。
141デフォルトの名無しさん:2008/12/21(日) 12:54:12
ファイルへのデータの挿入やそれに対するRandomAccessFileの使用は散々釣り餌に使われてきた
最後にやっぱりjavaは不便ですねで締めるのも一緒
142デフォルトの名無しさん:2008/12/21(日) 12:59:52
>>136
132です
そうなんですよ。でもpaint()だけじゃなくて適当な変数をAppLine
クラスに加えて、インスタンスを介して利用しようとしてもエラーが
出るので...
java上級者の方が上のソースを見ておかしな所って無いんでしょうか?
てか論外なやり方をしてるから誰も答えてくれないんでしょうか??
143デフォルトの名無しさん:2008/12/21(日) 13:17:01
ポリモフィズムは難しいしこれからJavaについていくにはデザインパターンも勉強しなくちゃいけない。
144デフォルトの名無しさん:2008/12/21(日) 13:44:12
今読んでいる本で
List<TShohin> shohins = q.getRssultList();
というコードがあるのですが、単語を<>で囲むとどういう意味があるんですか。
145デフォルトの名無しさん:2008/12/21(日) 13:47:38
とりあえず目立つという効果がある
146デフォルトの名無しさん:2008/12/21(日) 13:49:01
>>142
Appletを継承したんならmainなんて要らんだろ
エントリはinitだったか?
想像で勝手に試行錯誤するんじゃなくて、まず
Applet+作成+入門とかでググったら?
147デフォルトの名無しさん:2008/12/21(日) 13:56:35
>>144
マジレスしてあげると最近のjavaで入った記法

Tshohinのリストになる、Objectじゃなく
148デフォルトの名無しさん:2008/12/21(日) 14:00:58
>>147
ありがとうございます
149デフォルトの名無しさん:2008/12/21(日) 14:21:14
ここで聞いていいのか分からないんですが・・・

eclipseを使ったiアプリですが、パッケージの使い方を
教えてください。

asciiの本に掲載されていたScratchPad上に簡易ファイルシステムを
構築するためのパッケージがあって、本にはソールフォルダの中に
パッケージのフォルダ(spfs)を置くだけって記述があるんですが、
eclipseで使う場合、何らかの登録が必要だと思うんです。

どうやればいいんでしょうか?
150デフォルトの名無しさん:2008/12/21(日) 14:42:32
>>146
Appletを継承したAppLineクラスを他のクラスで実行するにはどうしたら
いいでしょうか?
AppLine単独で実行すれば直線が引けることは解っています。
ググって調べても単独のクラスで実行するやり方しか載っていません
151デフォルトの名無しさん:2008/12/21(日) 14:57:49
2,3日待ってれば答えてくれる人があわられるかもしれない。そう焦るな。
152デフォルトの名無しさん:2008/12/21(日) 14:59:25
>>150
アプレットを継承したクラスを他のアプレットから継承したクラスから使うと
アプレットを2つも定義する事になるので、PCがバグルからそんなことはできない。

普通は、アプレットクラス(もしくはアプレットの継承クラス)から使うくらすは
単なるクラスで作成して、アプレットクラスを継承しない。
153デフォルトの名無しさん:2008/12/21(日) 15:03:16
あーこの人か↓ ちょっと待ってる。解答書いてやる。
ポリモフィズムを理解するための課題が出てAppletのpaintをオーバーライド
して線を引くプログラムを書こうとしたのですがうまくいきません。まず
import java.applet.Applet;
import java.awt.Graphics;

public class AppLine extends Applet{
public void paint(Graphics g) {
g.drawLine(10, 10, 100, 100);
}
}
と書いてAppletを継承したAppLineクラスを作成して、(これはコンパイルできました)
import java.applet.Applet;
import java.awt.Graphics;

public class AppletMain{
public static void main(String[] args){
Applet applet1;
applet1 = new AppLine();
applet1.paint();
}
}
と書いてコンパイルするとシンボルを見つけられません。と
メソッドpaint()がおかしいという趣旨のエラーがでます。
よろしくお願いします。
154デフォルトの名無しさん:2008/12/21(日) 15:06:42
うんこうんこー
155デフォルトの名無しさん:2008/12/21(日) 15:11:39
>>132 >>135
まず普通のコンソールアプリやGUIアプリはエントリポイント(アプリケーションの開始ポイント)が
メインメソッドって言う事になってて、そこで色々なメソッド呼び出して処理をする。Applet(サーブレットも)みたいな特殊な環境で動くプログラムは
メインメソッドでなくそのクラス特有のメソッドから始まる事になってる。正確に言うと動き出すのはその動作環境上で初期化したらあるメソッドが呼ばれることに
なっている。appletだとinitメソッドになってる。で、再描画が必要なときには
paintが呼び出されて、終わるときはdestroyが呼び出されるようになってる。だから、Appletを継承したクラスは
そこに指示をかけばいい。で、Appletを継承したクラスからAppletを継承したクラスを呼び出すと
これらの必須メソッドがダブることになるから、うまくいかない。Appletを継承したクラスはひとつでいいんだ。

で、君のやりたい事をやろうとするソースは次レスにのせる。
156デフォルトの名無しさん:2008/12/21(日) 15:17:06
Macbookを買ったんですけど、
コンパイラ(JDKとか)はどの様に入れれば良いですか?
157155:2008/12/21(日) 15:29:17
まず簡単なほうのソースのせるね

import java.awt.Graphics;

public class AppLine {

public static void drawLine(Graphics g) {
g.drawLine(10, 10, 100, 100);
}
}

import java.applet.Applet;
import java.awt.Graphics;

public class AppletMain extends Applet {

public void paint(Graphics g) {
AppLine.drawLine(g);
}
}

staticっていうのが付くメソッドはインスタンス化しなくても呼び出せるからメモリの節約になるから
普通はこうやってかく。
158155:2008/12/21(日) 15:32:48
で、君(>>132)がやりたいというか初心者にわかりやすいのは、こっち↓。

import java.applet.Applet;
import java.awt.Graphics;

public class AppletMain extends Applet {

public void paint(Graphics g) {
AppLine appLine = new AppLine();
appLine.drawLine(g);
}
}

import java.awt.Graphics;

public class AppLine {

public void drawLine(Graphics g) {
g.drawLine(10, 10, 100, 100);
}
}

ふ〜、Appletは久しぶりぶりだから、つかれちゃったよ★
159デフォルトの名無しさん:2008/12/21(日) 15:36:32
>>156
http://java.com/ja/download/manual.jsp
とか
http://www.apple.com/jp/ftp-info/reference/javaformacosx105update1.html
とか?

http://www.stackasterisk.jp/tech/java/macDk01_01.jspにはMacOSXではこれらが標準でインストールされているので、なにもしなくても既にJavaアプリケーションの実行・開発環境が備わっています。思い立ったらすぐ!Java!が可能です。
ってかいてあるよ。おれはMACは良く知らん。
160デフォルトの名無しさん:2008/12/21(日) 15:54:44
>>158
なんだおまえ?
161デフォルトの名無しさん:2008/12/21(日) 16:18:18
AppletMain が Applet を継承してるなんて質問者は書いてないと思うんだが。
アプレットをアプリとしても実行できるようにする程度のことだろ。
162デフォルトの名無しさん:2008/12/21(日) 16:26:07
教科書読んでない奴はなにやっても無能
163デフォルトの名無しさん:2008/12/21(日) 16:44:22
そもそも読んでないなら無能以前の問題じゃね?
164デフォルトの名無しさん:2008/12/21(日) 17:19:01
Appletをメインから実行するのは無理だろ。。

System.runだったけか?あれでappletviewerで動かすならいいけど。
165デフォルトの名無しさん:2008/12/21(日) 17:27:05
>>158
158さん丁寧にありがとうございます。
AppLine以外にAppRectを用意した時にポリモフィズムを利用して
効率的に実行用のmainクラスでAppLineとAppRectを実行したいんですが..
paintメソッドをオーバーライドしたいです
(見た目は同じpaintだけど中身は違うぜみたいな)
そろそろ怒られそうですね(^^;)
ド素人ですみませんm(__)m
166デフォルトの名無しさん:2008/12/21(日) 17:43:59
AppletからJavaをはじめるのはいいことだ。Javaが普及したのはAppletでJavaの機能を世に知らしめたからだし、後続のflashとかもアプレットの猿まねっ子に過ぎない。
167デフォルトの名無しさん:2008/12/21(日) 17:45:52
なあポリモーフィズムはそもそも詰まる所、動的バインディングの事で
サブクラス化してオーバーライドするのは直接的にはポリモーフィズム関係ないと思うんだが?

C++だと動的バインディングないから仮想関数で、
javaなら動的バインディングあるからオーバーライドすればいいだけってだけでさ。
概念とそれを実現する言語仕様は違うぞ。

概念はすでに習っててやってるんだよな?

概念理解してないならお勉強し直せってところまで戻るぞ。
168デフォルトの名無しさん:2008/12/21(日) 18:57:51
オーバーライドは直接ポリモーフィズム関係ないんじゃなくて、大いに関係ある。
オブジェクトにメッセージを送信する側から見れば、同じメッセージでも各オブジェクトによって挙動が違うだろ。
Cのvtableとかも分からないでもないが、おまえの方こそ勉強しなおしなんじゃないか?
オブジェクト指向の教科書読んでもどうせちんちんぷいぷいなんだろw
169デフォルトの名無しさん:2008/12/21(日) 19:00:28
>>167
ちんちんぷいぷい概念乙
170デフォルトの名無しさん:2008/12/21(日) 19:01:01
この流れはC++ vs smalltalkになるな。
171デフォルトの名無しさん:2008/12/21(日) 19:18:28
同じメッセージでも各オブジェクトによって挙動が違うならば
それは、オーバーライドなのです。
172デフォルトの名無しさん:2008/12/21(日) 19:26:10
そうなんです。お勉強し直しに戻るべきなんです。
173デフォルトの名無しさん:2008/12/21(日) 19:54:26
mainメソッドは普通のアプリケーション用。
アプレットは普通のアプリケーションでない。

だから、mainメソッドをもったアプレットというのはかけない。

アプレットで色々実装したいなら、>>158のクラスでこういう風に宣言すればいい。
import java.awt.Graphics;

public class AppLine {

public void drawLine(Graphics g) {
g.drawLine(10, 10, 100, 100);
}

public void drawRect(Graphics g) {
g.drawRect(10, 10, 100, 100);
}

public void drawLineRect(Graphics g) {
g.drawLine(10, 10, 100, 100);
g.drawRect(10, 10, 100, 100);
}
174デフォルトの名無しさん:2008/12/21(日) 20:03:02
なんでもいいけど、Javaってなんでインスコしたときに環境変数の設定やってくれないんだろう。
まあ、あとあと考えると環境変数の勉強になったわっておもうけど。

Perlとかだとかってに設定してくれるよね。
175デフォルトの名無しさん:2008/12/21(日) 20:25:34
perl死ね
176デフォルトの名無しさん:2008/12/21(日) 20:36:42
>>174
Javaの環境変数は勝手にやってくれるOSもあるんじゃまいか?
おいらは、環境変数の設定はした覚えがない
177デフォルトの名無しさん:2008/12/21(日) 20:40:35
int型の負の表現でjavaでは32ビット目をサインビットとするとは仕様には書いてないって聞いたんですが本当なんですか?
178デフォルトの名無しさん:2008/12/21(日) 21:07:47
>>177
何処で聞いたの、そんなこと。
179デフォルトの名無しさん:2008/12/21(日) 21:30:11
>>173
これではメソッドを自分で選択しているにすぎないんじゃないかな。
ポリモーフィズムができてないかもね
180デフォルトの名無しさん:2008/12/21(日) 21:30:34
int でサインビットとな
181デフォルトの名無しさん:2008/12/21(日) 21:37:49
Appletの paint をオーバライドして、ポリモーフィズムを説明しろ
って、難しいな。
プログラムを示すだけではなく、どうしてそうなるかを
言葉で補足説明しないと完全にならないな。
182デフォルトの名無しさん:2008/12/21(日) 22:00:46
intは32ビットのサイズがあって、その負数は32ビット目で管理することってのはJava言語仕様だよ。
183デフォルトの名無しさん:2008/12/21(日) 22:13:25
>>182
ビット位置って一般的に0オリジンなんじゃ?
184デフォルトの名無しさん:2008/12/21(日) 22:18:01
あの C 言語ですら、負数の場合最上位ビットが立ってる必要があるからな。
185デフォルトの名無しさん:2008/12/21(日) 22:32:08
>>184
逆じゃないの?
Cはどんなマシンで動いてもいいから、負数の表現はマシン依存。
JavaはJavaVMの仕様だから、一般的な2の補数表現で統一できる。
186デフォルトの名無しさん:2008/12/21(日) 22:56:06
携帯から失礼します

今ウィンドウ型アプリケーションを作ってます
で、@ボタン1を押すと指定した数だけ画面にランダムに点を描画
Aボタン2を押すとその点を昇順に並べ替えて描画

って感じなんですが、
ボタン2をおすと@で描いた点がいったん消えて
更地に描画されていってしまうんです

@の点を残しつつAの点を描画する事は出来ますかね?

教えてください
187デフォルトの名無しさん:2008/12/21(日) 23:05:37
super.paint(g)とか呼び出してるんじゃない?
それだけだとなんともいえねー
188デフォルトの名無しさん:2008/12/21(日) 23:28:43
>>185
C言語では、
負数が2の補数表現でなくても良いが、
負数の最上位ビットは1でなくてはいけない。
189デフォルトの名無しさん:2008/12/21(日) 23:56:18
初めまして。1つ質問させていただけrたらと思います。

【質問】
DBアクセス用クラスを作成しようと思いまして、

private static final String DATA_SOURCE_KEY = Globals.DATA_SOURCE_KEY;

とコーディングし、import org.apache.struts.Globals;とインポートしたところ、
Globals.DATA_SOURCE_KEY を解決できません
とエラーが発生してしまいました。
この、解決方法、または代替方法をご教授願えればと思います。

【開発環境】
Eclipse3.4
JDK1.6.0_11
Struts 1.3.10
Struts 2.0.14

【DATA_SOURCE_KEYの使用方法】
後に、setAttributeかgetAttributeで用いようと思っております。

以上です。よろしくお願いいたします。
190デフォルトの名無しさん:2008/12/22(月) 00:06:41
>>188
それで肝心のJavaではどうなってるんですか?
191デフォルトの名無しさん:2008/12/22(月) 00:08:10
>>177
そういう表現はしてないから、間違ってるとは言えない
192デフォルトの名無しさん:2008/12/22(月) 00:43:47
なあ、みんな。俺いいこと考えたんだ。

JavaのGUI関係をフレームワークみたいに作って、VB6そっくりのGUI構築にしてやろうとおもうんだ。
売れるかな?
193デフォルトの名無しさん:2008/12/22(月) 01:02:19
>>192
まかせた!
194デフォルトの名無しさん:2008/12/22(月) 01:03:17
>>192
よほどの完成度じゃなきゃ売れないだろ
当たり前だが
195デフォルトの名無しさん:2008/12/22(月) 01:11:39
>>192
なぜVB6?
2008では駄目なのか?
196デフォルトの名無しさん:2008/12/22(月) 01:31:49
VB6からいまだに脱却できないようなやつはまだいるのか。
197デフォルトの名無しさん:2008/12/22(月) 01:53:38
それってNetBeansのことじゃないか?
ところで、VB6そっくりのGUI構築ってなんのこと
198デフォルトの名無しさん:2008/12/22(月) 02:19:31
>>191
するとよく見かける val>>>31 でサインビットを確認するのは環境依存でJavaとしては将来的にヤバイんじゃないでしょうか?
199デフォルトの名無しさん:2008/12/22(月) 02:50:48
そうです。Javaの仕様書には、
Javaを使い続けても核戦争は起きないとは書かれていません。
大変危険なので、今すぐ辞めましょう。
200デフォルトの名無しさん:2008/12/22(月) 07:43:17
>>198
「間違いとは言えない」ってのは屁理屈レベルでの話だろ。
int は 32ビットで2の補数表現使う、って書いてあるから val>>31 で符号みても大丈夫。

http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.2.1
> The integral types are byte, short, int, and long, whose values are 8-bit, 16-bit,
> 32-bit and 64-bit signed two's-complement integers, respectively, and char,
> whose values are 16-bit unsigned integers representing UTF-16 code units (§3.1).
201デフォルトの名無しさん:2008/12/22(月) 10:20:51
>>200
なんだ。これのことだったんですね。ありがとうございます。
202デフォルトの名無しさん:2008/12/22(月) 17:11:46
雪を降らせるアプレット
>http://rd.vector.co.jp/soft/other/java/se033524.html
このreadmeに次のような文章が書いてあります。
http://wtar00.ld.infoseek.co.jp/applet/alctitle/readme.txt
>・基本的に商用利用はできません。
>(JDKを使用して開発しているためです。)
JDKを使用して作ったプログラムは商用利用できないのでしょうか。
ZIPブラウザー
>http://rd.vector.co.jp/soft/other/java/se111965.html
例えば、上記のソフトの場合はシェアウェアなので、
商用利用はしてもいいと思っているのですが。
ただ改めて思うとJDKの著作権はSUN社にあると思うので、心配になりました。
203デフォルトの名無しさん:2008/12/22(月) 17:27:26
sunのライセンスに従えば出来る
204デフォルトの名無しさん:2008/12/22(月) 18:09:18
さっぱり初心者なんだけどtable[i]とかってなに??
JTable = new JTable();
だけじゃ使えないの??
205デフォルトの名無しさん:2008/12/22(月) 18:11:05
これはひどい。
>>204
入門書の、配列の解説を熟読。
206デフォルトの名無しさん:2008/12/22(月) 18:22:19
らじゃー!
いってきまーす!
207デフォルトの名無しさん:2008/12/22(月) 18:25:29
Javaで作られた商用ソフトは探せば腐るほど出てくるよ
208デフォルトの名無しさん:2008/12/22(月) 18:51:12
GPLか何かと勘違いをしてるのかね。
209デフォルトの名無しさん:2008/12/22(月) 19:18:16
>>204
[i]
[]←は配列を表す
配列とは値のリスト化である
すなわち・・・
[3]としたとき
あ、配列数は0から数えるので
[0][1][2]と3つの変数格納場所が生成されるんだよ

んで、まぁファックユー
あとは自分で調べようぜ
210デフォルトの名無しさん:2008/12/22(月) 19:19:37
つまり[i]こうきたら
i=1;ならiには1が入る
つまり配列には[0]と[1]があるという意味になる

実用的にすると・・・
ループ処理のときとかだ
for[i]
211デフォルトの名無しさん:2008/12/22(月) 19:22:32
>>204
あとJTable = new JTable();って、変数名がないな
変数名が無いとオブジェクトが生成されないので
正しくは JTable aaaa = new JTable();とか書くよ
          (↑オブジェクト名を書く)
212202:2008/12/22(月) 19:25:16
>>203>>207
レス、ありがとうございます。
今までCの標準で付いているstdio.hのような感覚で、
Javaも標準で付いているjava.mathなどを、当たり前のようにインポートしたり、
ライセンスに関して特に気にしていませんでしたが、
ですが、最近「JDKを使用して作ったプログラムは商用利用できない」
という記述を見つけたので、ライセンスのことが気になっていました。
Cの場合は最初から付いているstdioやmathなどならインクルードして
コンパイルして作ったソフトとか、自由なライセンスで配布できるのですが。
JavaではVMというちょっと特殊な形をとっているので、
ライセンスを考える前に、SUNのライセンスに従わないといけないんですね。
213デフォルトの名無しさん:2008/12/22(月) 19:26:23
>>192
VB感覚でコンポーネントくっつけるのは面白いが
はっきり言って大したプログラムでもないな
擬似コードは俺がつくってやる
実装はおまえだ

//コンポーネントアイコンをクリックするとコンポーネント作成モードになる
if ボタン ここからここまでの大きさでボタンつくるよ
if テキスト ここからここまでテキスト(ry

ほら、できた
214デフォルトの名無しさん:2008/12/22(月) 19:26:48
ゲームプログラマになるにはjavaとCどっちをやればいいですか。
215デフォルトの名無しさん:2008/12/22(月) 19:30:58
>>214
Javaはゲーム作成用のライブラリがこれといってないよ
CはDirectXとかあるんでオススメだよ
とりあえずCやりましょう
216デフォルトの名無しさん:2008/12/22(月) 19:31:25
だからここはjavaスレだと何度(ry
217202:2008/12/22(月) 19:38:20
追記。
あれから、JavaのライセンスはSCSLということが分かりました。
http://e-words.jp/w/SCSL.html
>自社製品にJava 2(またはその派生物)を組み込んで販売し、
>利益をあげるような場合には、利益に応じたライセンス料を支払う必要がある
という感じなので、JARとかを配布する時にシェアウェアにするという形なら
特にライセンス料払わなくていいことが分かりました。ありがとうござました。m(_ _)m
218デフォルトの名無しさん:2008/12/22(月) 19:42:09
>>214
ゲームプログラマになるならまずここ
http://dixq.net/index.html
219デフォルトの名無しさん:2008/12/22(月) 20:23:57
>>217
JDKのディレクトリ内にライセンス書が転がってるから探せ
220デフォルトの名無しさん:2008/12/22(月) 20:35:05
>>217
それは「ビルドするとJDK作れるソースコード」を再配布する際のライセンス。
221デフォルトの名無しさん:2008/12/22(月) 21:34:49
222202:2008/12/22(月) 21:56:10
JDKのLICENSEを適当に機械翻訳で読んでました。
多分JDKのLICENSEの方には、Javaのソースコードと、
Javaのコンパイラなどのバイナリファイルについてのライセンスは書いてあり、
それをインポートした時はどうなるか等は見つかりませんでした。

>ttp://www.sun.com/software/opensource/java/faq.jsp#g
こっちの方に色々とそれっぽいことが書いてありました。
多分Javaの標準ライブラリにクラスパスをおくのみなら
GNU/Classpath Project(see http://www.gnu.org/software/classpath/license.html)
についてのライセンスになるらしく。
GNU/Classpathをさらに読んでみると、
クラスパスにあるライブラリを修正しなければ、
作ったファイルはGPLの適用範囲外になるとも書いてありました。

まとめると、importなどでJavaの元々のライブラリを利用するのは
ソースコードを改造したわけでもないし、関係ない。
JARで配布の際もライブラリは含まれないと思うので、(動的リンクなので?)
特に制限はない。ということが分かりました。
ライブラリのソースコードをいじらないなど、普通に使う分には、
特にライセンスについては考えなくてよさそうですね。
ありがとうございました。
223デフォルトの名無しさん:2008/12/22(月) 22:17:07
>>209-211
うお、丁寧なレスすいません;
頑張って勉強致します!
224デフォルトの名無しさん:2008/12/22(月) 22:36:36
なんか間違ってる気がするが今の公式ビルドはOpenJDKからビルドされてるから間違えって訳でもないか。
225デフォルトの名無しさん:2008/12/22(月) 22:55:42
OpenJDKと公式ビルドは別モノだよ
226デフォルトの名無しさん:2008/12/22(月) 23:03:39
JDK6のいつかからOpenJDKベースだ
227デフォルトの名無しさん:2008/12/22(月) 23:20:55
それはいつ?

あとなんでJDK6update11のライセンスがBCLのまんま?
228デフォルトの名無しさん:2008/12/22(月) 23:58:24
まず、
int[] a = new int[10]
として、a[0]〜a[9]に数値を代入する

そのあと、配列aにデータが何も入ってない状態にするには
どうすればいい?

for文で回してデータを代入するしかないのかな?

誰か教えてくださひ
229デフォルトの名無しさん:2008/12/23(火) 00:01:09
>>228
データが入ってない状態って参照したときにアドレスが表示される状態ってこと?
それ宣言しなおすしかないんでね?
230デフォルトの名無しさん:2008/12/23(火) 00:32:52
>>229
やっぱりそれしかないのかな

どうもありがとう
231デフォルトの名無しさん:2008/12/23(火) 00:36:55
>>228
memsetつかえば一気に0とかにできるけどそういうこと?
232デフォルトの名無しさん:2008/12/23(火) 00:53:53
eclipse3.2のエディターのタブ?のところを複数行に表示することはできますか?
233デフォルトの名無しさん:2008/12/23(火) 01:04:26
eclipseスレ言ったほうがいんじゃね?
234デフォルトの名無しさん:2008/12/23(火) 01:50:19
>>228
何も入ってないって、0 も入ってないってこと?
a=null;
それとも今までの配列を破棄するってこと?
a = new int[10];
235デフォルトの名無しさん:2008/12/23(火) 02:11:11
> for文で回してデータを代入するしかないのかな
とか言ってるしArrays.fillですむ話だったりして
236デフォルトの名無しさん:2008/12/23(火) 08:51:02
スレッドの仕組みがよくわかりません 
以下のように書くと何回も処理が繰り返されると思っていたのですが無理なようです
どこが悪いのでしょうか?
class kk{
public static void main(String args[]){
MyThread mt = new MyThread();
Thread th = new Thread(mt);
th.start();
}
}

class MyThread implements Runnable{
int kk = 0;
public MyThread(){}
public void run(){
System.out.println("kk is" + this.kk);
try{
Thread.sleep(25);
}catch (Exception e){}
}
}
237デフォルトの名無しさん:2008/12/23(火) 09:35:01
スレッドはプロセスより軽量に処理を分けるだけ。

public void run(){
while(true){
System.out.println("kk is" + this.kk);
try{
Thread.sleep(25);
}catch (Exception e){}
}
}
238228:2008/12/23(火) 11:42:31
配列について質問したヤツだけど、解決した
a = null; を a[] = null;にしちゃってたわorz

色々意見を出してくれた皆さん、本当にありがとう

それではノシ
239デフォルトの名無しさん:2008/12/23(火) 11:51:18
>>237
そういうことだったんですか どうもありがとうございます
240デフォルトの名無しさん:2008/12/23(火) 13:06:40
>>231
なんでCで答えてんだよw
241デフォルトの名無しさん:2008/12/23(火) 13:09:21
他言語での例えじゃない?
242デフォルトの名無しさん:2008/12/23(火) 13:15:16
ちょいと前に自分でも訳のわからん質問をしたものですが
もう一回質問させてもらいます
case 1:
A = new int[10];
g.setColor(Color.black);
for (int i = 0; i < 10; i++) {
A[i] = (int)(Math.random());
g.fillArc(x, y, 5, 5, 0, 360);
}
break;
case 2:
g.setColor(Color.black);
for (int i = 0; i < 10; i++) {
int k = i;
int temp = A[k];
for (int j = i + 1; j < 10; j++) {
if (A[j] < temp) {
k = j;
temp = A[j];
}
}
A[k] = A[i];
A[i] = temp;
g.fillArc(x, y, 4, 4, 0, 360);
}
という感じで、case1でランダムに点を描画→case2でソート描画するんですけど、ソートすると一旦描画した点が消えてから、点が描画されちゃいます
何か解決策ないですかね?
243デフォルトの名無しさん:2008/12/23(火) 13:46:59
前も確か答えたけど、どこでそれをやったんだよ
244デフォルトの名無しさん:2008/12/23(火) 14:41:33
>>243
class MyFrame extends Frame implements ActionListener の中の
public void paint(Graphics g)の中です
245デフォルトの名無しさん:2008/12/23(火) 15:45:50
paint() の機会が違うんじゃないかな。
だから別々に描かれる。
246デフォルトの名無しさん:2008/12/23(火) 15:49:06
Hashtableに{a=1,b=2,c=3,d=4,e=5}、
Vectorに[d,a,b]と入っているとします。
Vectorの中身を出力する際に、Hashtableのvalueの値の順に出力(この場合a,b,dの順)したいのですが、
どのようにしたらいいでしょうか?
どなたか宜しくお願いします
247デフォルトの名無しさん:2008/12/23(火) 17:32:50
インスタンスを生成する時には↓の構文を使いますが、
クラス名 変数名 = new クラス名();
なぜ、変数名の前にクラス名を書かなくてはならないのですか?

くだらなすぎて、すいません 教えてエロい人!!
248デフォルトの名無しさん:2008/12/23(火) 17:45:29
不要といえば不要だよ
C#ではvarとだけ書けばよくなったしC++でもautoでおkになるらしい
良い悪いは別にして,最近の流れではある
249デフォルトの名無しさん:2008/12/23(火) 17:51:00
>>247
クラスってのは要するに型。intとかと同じ
変数を宣言する際には、Javaでは型を指定しなければならない
この場合は、変数の型を「クラス名」と宣言したということ

まあ今回のように、
そんなものわざわざ宣言しなくても、代入から自明だというケースも多い
最近だと、その辺を推論してくれる言語も増えてきている
250デフォルトの名無しさん:2008/12/23(火) 17:58:27
>>249
データ型だと思えばいいのか
ありがとうございます
251デフォルトの名無しさん:2008/12/23(火) 18:02:23
>>247
スーパークラス名 変数名 = new クラス名();

とか

インターフェイス名 変数名 = new クラス名();

とか。左辺と右辺で型が一致しないことはあるよね。
もちろんコンパイラによる型推論を用いることで次第に省略可能にも
なるだろうけれども、常に省略可能、とはまだまだならないと思う。
252デフォルトの名無しさん:2008/12/23(火) 18:04:10
>>246
Collections.sort(vector, new Comparator(){
 public int compare(Object obj1, Object obj2){
  return ((Number)hashtable.get(obj1)).intValue() - ((Number)hashtable.get(obj2)).intValue();
 }
});
253デフォルトの名無しさん:2008/12/23(火) 18:54:31
コマンドラインで引数に c:\*.txt を指定すると args[0] には c:\abc.txt のように入ってきます。
この大本に指定された c:\*.txt を取り出すにはどうしたらいいのでしょうか?(""でくくるのは無しの方向で)
254デフォルトの名無しさん:2008/12/23(火) 19:00:23
>>253
スレ違い
実際に使用しているコマンドプロンプト等のコマンドインタプリタ環境のスレに聞け
255デフォルトの名無しさん:2008/12/23(火) 19:01:46
Oracle:10g
JAVA :J2SE1.6

Oracleのストアドファンクションを呼び出す際に、
名前付きパラメータって使用できますか?

例えば"p1"という名前のINOUTパラメータを持つストアドプロシージャなら
次の呼び出し方で名前付きパラメータを使用できるのですが、
------
public void callTestP(Connection conn) throws SQLException {
CallableStatement cstmt = conn.prepareCall("{call test.TestP(?)}");
cstmt.setObject("p1", "para" , java.sql.Types.VARCHAR);
cstmt.registerOutParameter("p1", java.sql.Types.VARCHAR);
cstmt.execute();
System.out.println("実行結果:" + cstmt.getObject("p1"));
}
-----
ストアドファンクションを呼び出す時は、
"{? = call test.TestF(?)}"というように
返り値が発生します。
この返り値を名前付きパラメータで指定するにはどうすればいいのか悩んでいます。
(ちなみにindexでの指定はできます)
256デフォルトの名無しさん:2008/12/23(火) 19:21:50
>>254
えーと 言葉足りなかったかもしれません
コマンドプロンプトで java を実行したときのお話です

それともこの悪さをしているのはjavaじゃなくて、環境依存ってことですか?
257デフォルトの名無しさん:2008/12/23(火) 19:45:03
以下を取得できるツールってありますでしょうか。どれか一つでもかまいません。
・メソッドが呼ばれた順番を時系列で取得できる
・メソッド内の処理時間が取得できる。
・メソッドで割り当てられた最大のメモリの量
258デフォルトの名無しさん:2008/12/23(火) 19:45:43
そうです。
259デフォルトの名無しさん:2008/12/23(火) 19:58:58
>>256
UNIX系OSだとシェルが展開してからプログラムに引数をわたすので、そもそも展開前のワイルドカードを取得する方法はない。
Windowsだとmainメソッドを呼び出す前のスタートアップで展開してるはずなので、JNIか何かでプロセスの内部構造を叩けば取り出せるかもしれん。
260デフォルトの名無しさん:2008/12/23(火) 20:03:36
>>259
UNIX系ならシングルクォーテーションで囲めば
*を受け取れる
261デフォルトの名無しさん:2008/12/23(火) 20:09:43
>>260
おおもとの>>253で、クォートは無しって言ってる。(もとレスではダブルクォートだけど)
262デフォルトの名無しさん:2008/12/23(火) 20:28:28
>>259-261
ありがとうございます。
実のところ、コマンドプロンプトで実行時にダブルクォートでくくるのは
別段そんな困りはしないんですが、eclipse では引数でクォートでくくっても
無視されてしまい debugが面倒なので、大本の質問になりました。

WindowsだとCとかで書いた場合、パスは展開されないので java が環境依存を吸収
するためにワザとやってんですかねぇ。。。ヨクワカンネ
ubuntu 上で試してみましたが、 c java ともに同じ結果でした。

263デフォルトの名無しさん:2008/12/23(火) 21:24:45
>>245
何か対処法ありますか?
264デフォルトの名無しさん:2008/12/23(火) 21:41:18
つまりシングルはOKと言うことだ
265デフォルトの名無しさん:2008/12/23(火) 21:47:08
>>263
一緒に描けばいいじゃん。
制御してるのは君なんだから。
そのswitch文、case毎にpaint()から抜けてる?
266デフォルトの名無しさん:2008/12/23(火) 21:49:31
>>263
追伸。
悪い事は言わないから、GUI物に手を出す前に、
コマンドライン物で基礎を勉強した方がいい。
覚える事が多いとオーバーフローを起こすぞ。
267デフォルトの名無しさん:2008/12/23(火) 22:44:25
java1.6、Meです。
コンソール(CUI)で、Cのgetchみたいな、
Enterを押さなくても入力されたキーを得られる
関数みたいなのがありましたら教えてください。
268デフォルトの名無しさん:2008/12/23(火) 23:07:37
>>263
まぁある意味では >>266 に賛同するかな。何をやっているのか理解しないと。
すべて paint に放り込んでるのでは。>>265 さんが書いているように他の
ところで何を描くかを決めて一発に描けば良い。
269デフォルトの名無しさん:2008/12/24(水) 00:15:10
質問させて下さい。

配列に格納されている特定の数字を探してその値を変化させるにはどうすれば良いのでしょうか?

例えば配列に80,50,65,80,35という値が入っていて
その中から80の値を探して70に変えるといった感じです。
但し80が見つかったらその時点で終了して
それ以降に80という値が入っていてもそれは変化させないようにしたいんです。

for文を使うと全ての値が変わってしまい上手く行きませんでした。

どなたかわかる方がいらっしゃったら教えて下さい。

よろしくお願いします。
270デフォルトの名無しさん:2008/12/24(水) 00:17:57
if (array[i] == 80) break;
271デフォルトの名無しさん:2008/12/24(水) 00:20:36
JSPでFizzBizz解くプログラムを組みました
我が家のテスト環境であるイクリプス+Tomcat上では動くのですが
いざ借りているホームページにアップロードしても動作しません。
どうしたら動きますか?cgiは動くのですが
272デフォルトの名無しさん:2008/12/24(水) 00:21:37
for文の中でif文を使う
273デフォルトの名無しさん:2008/12/24(水) 01:21:33
>>269
>>270 じゃないけど、条件文の中で == じゃなく = としちゃったとか。
274デフォルトの名無しさん:2008/12/24(水) 01:43:06
>>273
>>269の配列は数値の配列だし、条件式の値は真偽値でないとコンパイルエラーになるからそれはない。
具体的にトラブってるソースを>>269が出せばすぐ解決しそうだ。
275デフォルトの名無しさん:2008/12/24(水) 02:20:18
>>271
そのサービスがJSPに対応してないなら動かない。
276デフォルトの名無しさん:2008/12/24(水) 08:39:27
どなたか>>246お願いします
277デフォルトの名無しさん:2008/12/24(水) 08:41:56
>>252で出てるだろ
278276:2008/12/24(水) 09:07:45
すみません、見落としていました…
>>252さんありがとうございます
279デフォルトの名無しさん:2008/12/24(水) 09:09:05
>>269
while(a[i]==80){
a[i]=70;
a[1]++
Destroy;
}
280278:2008/12/24(水) 10:20:45
度々質問すみません
>>252はプログラムのどこに入れればいいのかわかりません
同じメソッド内ですか?
281デフォルトの名無しさん:2008/12/24(水) 10:27:51
未知のプログラムのどこに入れればいいかなんてエスパーでなきゃわからん
282280:2008/12/24(水) 10:46:02
>>281さん、すみません
public class A{
static B b;
public static void main(String args[]) {
b = new B();
b.C();
}
}
class B{
Vector v;
Hashtable ht;
B(){
v = new Vector();
ht = new Hashtable();
ht.put("a",1);
ht.put("b",2);
ht.put("c",3);
ht.put("d",4);
ht.put("e",5);
}
public void C(){
v.add("d");
v.add("a");
v.add("b");
for(int i=0; i<v.size(); i++){
System.out.println(v.get(i));
}
}
}
283デフォルトの名無しさん:2008/12/24(水) 11:02:56
public void C(){
v.add("d");
v.add("a");
v.add("b");
Collections.sort(v, new Comparator(){
public int compare(Object obj1, Object obj2){
return ((Number)ht.get(obj1)).intValue() - ((Integer)ht.get(obj2)).intValue();
}
});
for(int i=0; i<v.size(); i++){
System.out.println(v.get(i));
}
}
284282:2008/12/24(水) 11:08:13
>>283さん
何度もありがとうございます
285デフォルトの名無しさん:2008/12/24(水) 12:58:49
>>265
>>268
実際、大した説明もないまま
課題だされちゃって・・

GUI特有のメソッドとか良くわかってないんですよね

自分で努力してみますわ
286デフォルトの名無しさん:2008/12/24(水) 13:20:03
宿題スレというのがあってだな
287デフォルトの名無しさん:2008/12/24(水) 16:00:40
>>269です。
>>279さんので出来ました!
レスして下さった方々ありがとうございました。
288デフォルトの名無しさん:2008/12/25(木) 00:27:22
Java3Dで質問があります。以下の動作サンプルのように、起動したら自動的にCG動作が始まり、
視点を映画のようにどんどん変更していくようにするにはどうすれば良いのでしょうか?

ttp://www.hm5.aitai.ne.jp/~minemura/CG/view/Work1/birds2/birds2.html
289デフォルトの名無しさん:2008/12/25(木) 01:21:10
初JAVAです。
開発環境を整えようとSUNのHPを見たのですが…沢山ありますよね。
・IDEは、VS系で使っています。
・テキストエディターは、VZの頃から使っています。

IDE/コンソールどちらにしようかと迷っています。
JAVA使いの方、ご教示願います。
290デフォルトの名無しさん:2008/12/25(木) 02:22:10
そんなもん自分の好きにしろ
291デフォルトの名無しさん:2008/12/25(木) 02:32:31
>>290
誰にでも噛み付けばいいと思って…餓鬼か?w
冬休みの宿題でもしてろww
292デフォルトの名無しさん:2008/12/25(木) 02:52:07
>>289
無難にeclipse使っとけばいいと思うけど

JavaはIDEのサポートがかなり強力になることだし
少なくともテキストエディタよりはIDEがおすすめ
293デフォルトの名無しさん:2008/12/25(木) 06:42:44
いや自分もVZユーザだったけど、DOS時代からの経験があってIDEも使った
事があるにしてはウブな質問でちょっと驚いた。

自分も>>292同様、Eclipse使っておけばよいと思う。
JavaでWebアプリを作るにしても単体アプリを作るにしても、今はJavaという
言語だけではなかなか完結せず、色々なライブラリやサーバーソフトと連携
する必要がある。その辺りの環境整備の手間暇に費やす時間の大半を省いて
くれるだけでも今のIDEにはとても利用価値があると思う。
294デフォルトの名無しさん:2008/12/25(木) 08:14:31
>DOS時代からの経験があってIDEも使った事があるにしては
>ウブな質問でちょっと驚いた。

つまり、古株でこういった質問が来るのは無能でFA?
295デフォルトの名無しさん:2008/12/25(木) 08:49:48
>>294
おまいみたいな奴をクビにする立場なんだよw
296デフォルトの名無しさん:2008/12/25(木) 09:00:10
>>291
ガキはおまえだ。
あまつさえVZすら使えてIDEも経験あるなら開発環境なんて人に聞くレベルじゃない。
ggrksでも上等。
ググル→自分で選ぶも出来んのかと。
IDE勧めたところでjavaのIDEなんて宗教。
297デフォルトの名無しさん:2008/12/25(木) 09:13:34
うは、まだわかんねーのかよwクビw最優先でよろw
298デフォルトの名無しさん:2008/12/25(木) 09:28:04
無能な奴は即クビの方向で・・・
299デフォルトの名無しさん:2008/12/25(木) 09:29:38
そうか冬休みか
300デフォルトの名無しさん:2008/12/25(木) 10:10:24
>>295
どうせ10人以下の下流だろw
師走は何かと忙しいからVZ野郎は早くクビにしといたほうがいいぞ。
どうせPGなんて5年ももたいなし派遣で固めちゃうのがいいんじゃねーのw
301デフォルトの名無しさん:2008/12/25(木) 10:14:34
IDE入って無いけどxxエディタ使ってるよって言うから
じゃあそれでちょっとソース見てって言ったらどうやるの?って
聞いてきた年配上司。
いったい何に使ってたんだとw
302デフォルトの名無しさん:2008/12/25(木) 10:27:14
>>300
なぁ・・・・お前がどれだけ上流か知らんが中途半端なエリート志向のテクも知識もないSEの遠吠えにしかみえんぞ

下流を馬鹿にするやつにろくな設計なんて出来やしねぇよ
303デフォルトの名無しさん:2008/12/25(木) 10:37:34
下流の愚痴をここでぶちまけられてもなぁ・・・
ここはおまえの糞溜めでもないしなぁ・・・・
304デフォルトの名無しさん:2008/12/25(木) 10:43:05
どっちが釣られてるのか良くわからん
305デフォルトの名無しさん:2008/12/25(木) 10:53:53
片方が遊んでるでもう片方が遊ばれてるに決まってるだろ。
306デフォルトの名無しさん:2008/12/25(木) 11:07:21
ここまで自演でした
307デフォルトの名無しさん:2008/12/25(木) 11:27:40
VZとかEMACSでウェブアプリ作る糞野郎も「絶対にいない」とは言い切れないよなぁ
308デフォルトの名無しさん:2008/12/25(木) 11:56:47
>>305
片方が遊んでるつもりで片方が遊ばれ返してるつもりでということもある
つまり、両方ともが相手を釣っているつもりで両方ともが無駄なことをしている、と

両方が1人の自演ということもよくある
309デフォルトの名無しさん:2008/12/25(木) 12:04:15
もうやめろよ!!!!

みんな仲間だろ???
310デフォルトの名無しさん:2008/12/25(木) 12:43:57
断る
311デフォルトの名無しさん:2008/12/25(木) 12:44:40
ごみょんみょん
312デフォルトの名無しさん:2008/12/25(木) 12:47:50
CDCのXletをEDLINで作って遊んだがラインエディタで全ソース書くもんじゃないな。
313デフォルトの名無しさん:2008/12/25(木) 13:20:40
LinuxでAntのビルドファイルを作成しているのですが、
build.xmlの中でただのLinuxコマンドを記述することは可能でしょうか?

具体的には、
build.xmlの中でsubversionのupdateコマンドを叩きたいのですが
svnantというライブラリを入れるほどのことでもないので
svn update
と、ちょろっとコマンドで書きたいのです。

よろしくお願いします。
314デフォルトの名無しさん:2008/12/25(木) 13:50:52
>>313
execタスク
315デフォルトの名無しさん:2008/12/25(木) 14:00:57
edlinでvi作ってviでemacsつくってemacsでideつくるんだろ。もっと頭使えよw
316デフォルトの名無しさん:2008/12/25(木) 14:51:38
Exception in thread "main" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at mat.main(home.java:28)

これってどういう意味なのでしょうか?
そしてどうすればなおるのでしょうか?
よろしくお願いします。
317デフォルトの名無しさん:2008/12/25(木) 14:52:23
>>316
home.javaをまるごと挙げてくれたらおしえてあげるよ
318デフォルトの名無しさん:2008/12/25(木) 15:08:06
home.java:28)
home.javaの28行目にエラーがある。というか、Javaインタープリタが
実行中に28行目でエラーになった。
319デフォルトの名無しさん:2008/12/25(木) 15:27:31
前に配列の事を聞いた初心者です。
配列じゃなくてfor文とかでオブジェクトを複数作ってる場合、
配列指定しなきゃいけないものを使うときは
どうすればいいんでしょうか?
320デフォルトの名無しさん:2008/12/25(木) 15:29:03
>>319
質問の意味が不明。object の配列を作りたいってこと?
321デフォルトの名無しさん:2008/12/25(木) 15:42:28
>>316
Integer.parseIntに空文字列を渡したんじゃね
空文字列は数値にできないからエラー
322デフォルトの名無しさん:2008/12/25(木) 15:42:35
>>316
#意訳
「Integer.parseIntメソッドで文字列をintの数値に変換しようとしたが
 ""なんて文字列から数値を読みこめなんて無茶な話だろ?
 空文字列から数値を読み込めなんて俺はエスパーか何かか?」

#改善策
parseIntに渡す文字列周りの処理を再チェック。
323デフォルトの名無しさん:2008/12/25(木) 15:43:49
>>320
for(int i = 1 ; i<= 5 ; i++){
DefaultTableModel tableModel
= new DefaultTableModel(columnNames, 50);

JTable table = new JTable(tableModel);
JScrollPane sp = new JScrollPane(table);
sp.setPreferredSize(new Dimension(200, 600));
}

でテーブル作ってて、
最初の一行を編集不可にしたいのだけど、

JTextField tf = new JTextField("0");
tf.setEditable(false);
DefaultCellEditor dce = new DefaultCellEditor(tf);
table[i].getColumnModel().getColumn(i).setCellEditor(dce)
     ↑
     この部分ってどうしたらいいんだろうと思って。
     てかtableはtableModelだからtableModelの配列指定かな?
324デフォルトの名無しさん:2008/12/25(木) 15:50:06
>>314
ありがとうございます。
無事出来ました。
325デフォルトの名無しさん:2008/12/25(木) 15:58:43
>>323
AbstractTableModelを継承して自作TableModelを定義するか、
DefaultTableModel#isCellEditable(int,int)をオーバライドしろ。
DefaultTableModel tableModel = new DefaultTableModel(columnNames, 50){
 public boolean isCellEditable(int row, int column){
  return row != 1;
 }
};
AbstractTableModel継承の方が、いろいろ便利ではあるが。
326デフォルトの名無しさん:2008/12/25(木) 16:04:46
327デフォルトの名無しさん:2008/12/25(木) 16:59:53
>>316 です。
質問しておきながら遅くなって申し訳ありません。

キーボード入力をString型で受け付けて(一文字)からその文字が
アルファベットかどうか確かめるためにCharacter.isLetter()を
使いたいと思い、まずString型をint型に変換してそれをさらに
int型からchar型にしたらエラーが出てしまいました。
328デフォルトの名無しさん:2008/12/25(木) 18:59:54
>>327
だから home.java を見せろ。
329デフォルトの名無しさん:2008/12/25(木) 19:01:49
すいません
それはできないです
330デフォルトの名無しさん:2008/12/25(木) 19:10:58
String なら char 直接取り出せるだろ。API見ろ。
で、それ以前に String の中身が入ってねーんだよ。
331デフォルトの名無しさん:2008/12/26(金) 00:10:56
話ぶったぎるけどOpenJDKのコードがマージされるようになってからwinのddrawやd3d周りのバグがやたら増えてない?
sunのBTS見てて思ったんだが。
332デフォルトの名無しさん:2008/12/26(金) 00:53:35
マルチスレッドのプログラムをマルチコアで実行したら、自動的に処理を振り分けてくれますか?
333デフォルトの名無しさん:2008/12/26(金) 01:08:36
>>332
くれる。複数スレッド起こしてぶん回す簡単なプログラムを
動かしながらCPUモニタを見ればわかる。

public class ThreadTest implements Runnable {
    public void run() {
        int i = 0;
        while (true) {
            System.out.println(Thread.currentThread().getId() + ":" + i++);
        }
    }
    public static void main(String[] args) {
        Thread t1 = new Thread(new ThreadTest());
        Thread t2 = new Thread(new ThreadTest());
        t1.start();
        t2.start();
    }
}
334デフォルトの名無しさん:2008/12/26(金) 01:44:22
JAVAをc:ではなくd:にインストールしてしまって
あわててd:をフォーマットしたんだけど
そしたら新たにインストールできなくなってしまった
何故かプログラムの追加と削除にはJAVAが残ってる
それでアンインストールしようと試みるも
致命的な問題が発生しましたと出る
335デフォルトの名無しさん:2008/12/26(金) 01:45:33
気にせずインストールしろ
336デフォルトの名無しさん:2008/12/26(金) 01:46:14
お前日本語読めないの?馬鹿なの?死ぬの?
337デフォルトの名無しさん:2008/12/26(金) 01:49:49
アプレットでJFreeChart使おうと思ってるんだけど
そのアプレットを公開するとなるとライセンス的に何か問題ありますか?

GNUライセンス調べてみても全く意味がわからないです
338デフォルトの名無しさん:2008/12/26(金) 02:47:11
>>337
GPLの使ってソフトを公開する場合、ソースも公開する。
339デフォルトの名無しさん:2008/12/26(金) 02:50:33
アプレットとして公開ってことは自分のwebページで、チャートが見られるようにするって意味だろ?
それならソース公開は必要ないだろ?
AGPLじゃないんだから
340デフォルトの名無しさん:2008/12/26(金) 03:37:19
JFreeChartは"L"GPLだから。
341デフォルトの名無しさん:2008/12/26(金) 03:45:26
342デフォルトの名無しさん:2008/12/26(金) 04:10:54
で、結局どうすればいいのん?
343デフォルトの名無しさん:2008/12/26(金) 12:11:39
まず嫁よ
344デフォルトの名無しさん:2008/12/26(金) 14:16:27
>>341
javaの場合どうなるんだろうとずっと思っていたが解決した。
345デフォルトの名無しさん:2008/12/26(金) 15:20:38
普通は1つの*.javaファイルに、いくつのクラスを詰め込むのですか?
OSSのソースを少しだけ見たら、*.javaに1つしかクラスがなかったのですが....
346デフォルトの名無しさん:2008/12/26(金) 15:23:26
内部クラス除けば、publicクラスが複数ない限り大丈夫
347デフォルトの名無しさん:2008/12/26(金) 15:42:07
>>345
そういう思想。
1ファイル1クラス。
実際、.javaに複数のクラスは書けるけど、.classでは1ファイル1クラスになるし。

.javaだけの話なら、思想なんか無視しても良いんじゃない?
348デフォルトの名無しさん:2008/12/26(金) 17:48:24
質問です。

メソッドを起動中に com.sun.jdi.InvocationException が発生しました。
とえらーがでるのですが,これはどういったときに出るエラーなのでしょうか?

ご教示願いします。
よろしくお願いします。
349デフォルトの名無しさん:2008/12/26(金) 19:53:35
キーボードの打ちすぎで右手の小指が痛いです
これどうしたら痛くならない?
350デフォルトの名無しさん:2008/12/26(金) 20:00:47
つめろ
351デフォルトの名無しさん:2008/12/26(金) 22:51:18
 
352デフォルトの名無しさん:2008/12/26(金) 22:55:23
次のレスに示すようなプログラムを作りました。

で、三角形描画ボタンを押して三角形を描画し、
四角形描画ボタンをおすと、三角形が一旦消えてから四角形が描画されます。

三角形を残したまま描画するにはどうすればいいですか?
repaint()を上手に使えればいいのか?と思ったんですが、上手くいきません。

どなたかご教授願います。
353352@:2008/12/26(金) 22:57:14
import java.awt.*;
import java.awt.event.*;

class Sample_Frame extends Frame implements ActionListener {
Button btn1;
Button btn2;
int buttonSelect = 0;

public Sample_Frame(String title) {
setTitle(title);
setLayout(null);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});

setBackground(SystemColor.control);

btn1 = new Button("三角形描画");
btn1.addActionListener(this);
add(btn1);
btn1.setBounds(10, 75, 70, 25);

btn2 = new Button("四角形描画");
btn2.addActionListener(this);
add(btn2);
btn2.setBounds(90, 75, 70, 25);
}
354352A:2008/12/26(金) 22:58:33
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btn1) {
buttonSelect = 1;
} else {
buttonSelect = 2;
}
repaint();
}
public void paint(Graphics g) {
g.setColor(Color.white);
g.fillRect(20, 140, 160, 120);
g.setColor(Color.gray);
g.drawRect(20, 140, 160, 120);
switch (buttonSelect) {
case 1:
g.drawLine(100, 160, 60, 240);
g.drawLine(60, 240, 140, 240);
g.drawLine(140, 240, 100, 160);
break;
case 2:
g.drawRect(60, 160, 80, 80);
break;
}
}
}
public class Sample {
public static void main(String[] args) {
Sample_Frame frm = new Sample_Frame("描画");
frm.setSize(200, 280);
frm.setVisible(true);
}
}
355デフォルトの名無しさん:2008/12/26(金) 23:20:17
switch文でどちらを描くか選択するのではなく
それぞれの図形について描くか描かないかのフラグを用意して
それに応じて描くようにする
フラグのオンオフはボタンのアクションリスナで
356デフォルトの名無しさん:2008/12/27(土) 00:03:48
>>333
有難うございます。
残念ながら、自分はマルチコアなパソコンが無いので検証は出来ないのです・・・。
357352:2008/12/27(土) 00:19:23
>>355

フラグに応じて複数のpaintメソッドを定義するって事ですか?
それと、アクショんリスナをどう使ってオンオフを決めるんですか?

ググっても良くわからなくて・・・
もう少しヒント等くださいm(__)m
358デフォルトの名無しさん:2008/12/27(土) 01:35:38
>>352
ifを使う。
switchとif〜elseは使わない。
359デフォルトの名無しさん:2008/12/27(土) 01:43:35
後、buttonSelectをis三角形Selectとis四角形Selectにわける。
360デフォルトの名無しさん:2008/12/27(土) 01:47:03
リスナ
1) ボタン1が押されたらボタン1押されたフラグをTrueに
2) ボタン2が押されたらボタン2押されたフラグをTrueに

paintメソッド
1) ボタン1押されたフラグTrueなら三角を描画
2) ボタン2押されたフラグTrueなら四角を描画
361デフォルトの名無しさん:2008/12/27(土) 08:40:36
for (Shape shape : shapes) shape.Draw();
みたいにできたら綺麗だけどね
362デフォルトの名無しさん:2008/12/27(土) 10:12:15
paint で一度書いたからといって、二度目の時にそれが保存されているわけじゃない。
一度目の上に二度目のを書きたいのなら、一度目に書いたのをもう一度二度目の時も書け。
つまり、その時表示されていて欲しいものを毎回全部書け。
363646:2008/12/27(土) 20:28:48
電車の中に大声で喋っててやかましい不良外人がいたので
「ファッキンジャップ!」
と叫んでビンタしてやった。
364デフォルトの名無しさん:2008/12/27(土) 20:34:27
どこの誤爆か言ってごらんの有様だよ!
365デフォルトの名無しさん:2008/12/27(土) 20:35:38
>>361
そのoperatorの使い方が初心者にとっては毒なんですよ
ちょっとググればわかることなのですがプログラミング体力の無いものにとっては猛毒・・・
ならば、分かりやすく書いてやるのがいいかと思う
366デフォルトの名無しさん:2008/12/27(土) 20:36:53
フレームアプリケーションでの質問です。
終了ボタンを押すと、ある画像を表示して終わるようにしたいのですが、
終了ボタン押しに対応したactionPerfoemedの中でSystem.exit()や
this.dispose()が存在すると前にthis.repaint()があっても処理しないまま
終わってしまいます。waitや他のフレームを作成するようにしても
だめです。
どうすればよいでしょうか?
367デフォルトの名無しさん:2008/12/27(土) 21:09:44
メインフレームのスレッドが終了しなければアプリケーションは終了しない。
368デフォルトの名無しさん:2008/12/27(土) 21:11:52
>>367

なるほど!盲点でした。
メインフレームもほかのフレームも同義に考えていたので
あっさり捨てていました。
どうも有難うございました。
369368:2008/12/27(土) 21:30:38
>>367

、、、と思ったのですが、メインフレームを残しても
閉じたいフレームに画像を表示させることは出来ませんでした。
370デフォルトの名無しさん:2008/12/27(土) 22:44:17
テトリスで下押しっぱなしでブロックを下に落とした後
次のブロックでは押しっぱなしをやめさしたいのですがどうしたら良いのでしょうか
KeyListenerのKeyPressedで処理を受け取っているのですが……
371デフォルトの名無しさん:2008/12/27(土) 22:46:22
それ用のフラグでも追加しちゃえば?
372デフォルトの名無しさん:2008/12/27(土) 23:23:45
>>370
一回下キーを離すまで下キーを無効にするフラグ追加
373デフォルトの名無しさん:2008/12/28(日) 01:18:32
>>366
どうせ閉じるんだから画像表示したって目に止まらない速さで閉じると思うんだが。
374デフォルトの名無しさん:2008/12/28(日) 01:42:33
設計ミスってオチだろうな
375デフォルトの名無しさん:2008/12/28(日) 03:48:39
javax.imageio.stream.ImageInputStreamってどうしてClosableインタフェースを実装してないんですかね?
まっ、どうでも良いんですが。
376デフォルトの名無しさん:2008/12/28(日) 09:26:55
>>375
Closeable がない1.4用も同じコードで管理してるからつけらんなかったとか
Closeable を後付けしたときにつけ忘れたとかじゃね?
まっ、どうでも良いんですが。
377デフォルトの名無しさん:2008/12/28(日) 14:05:59
>>357
setEnabledとかないのか?
Enabled系のメソッドを使えば真偽のフラグ管理はできるはずだが
378デフォルトの名無しさん:2008/12/28(日) 14:09:22
クソッ
GraphicsクラスにはEnabledメソッドがないのか
>>357すまんが俺の力じゃ太刀打ちできん
379デフォルトの名無しさん:2008/12/28(日) 15:35:25
printlnメソッドで変数を続けて出力したいのですが、
println(a,b)とか書くとエラーになってしまいます。どうすればいいでしょうか。
380デフォルトの名無しさん:2008/12/28(日) 15:41:26
println(a + b)
381デフォルトの名無しさん:2008/12/28(日) 15:50:29
>>380
それだとa+bが計算されて出てきちゃうんです。
単に並べて表示させたいんです。
382デフォルトの名無しさん:2008/12/28(日) 15:55:44
println(a +',' + b);
383デフォルトの名無しさん:2008/12/28(日) 16:05:39
>>382
aに3、bに4を入れてコンパイルして実行したら
なぜか51になって出てきました。
384デフォルトの名無しさん:2008/12/28(日) 16:07:57
println(a + "," + b)
385デフォルトの名無しさん:2008/12/28(日) 16:09:35
>>380,382
絶対わざとだろw
386デフォルトの名無しさん:2008/12/28(日) 16:10:26
なぜそうなったかを調べてもっと理解を深めてもらおうという2ちゃん的やさしさ
あったけぇ、あったけぇよ
387デフォルトの名無しさん:2008/12/28(日) 16:10:55
>>384
できました。ありがとう。
388デフォルトの名無しさん:2008/12/28(日) 16:11:33
いや本気で
一文字だったら一個でいいと思ってた。
ダブルコーテーションで""でいいとおもう
389352:2008/12/28(日) 16:16:25
三角形やら四角形やら言ってた者ですが
出来ました!

セレクトボタンを分けてやったら大丈夫でした

アドバイスくれた皆さん
本当にありがとうございました!
390デフォルトの名無しさん:2008/12/28(日) 16:37:15
System.out.println(a + new Integer(b).toString());
391デフォルトの名無しさん:2008/12/28(日) 16:44:17
正月に餅くいながら、Java談義したい。

名古屋出身のひと、Java談義しませんか?
392デフォルトの名無しさん:2008/12/28(日) 16:45:27
>>391
しねえええええええええええええええええええええええええええええええ
393デフォルトの名無しさん:2008/12/28(日) 16:53:46
福岡なら・・・
394デフォルトの名無しさん:2008/12/28(日) 17:16:34
普段名古屋にいるけど帰省するから…
395デフォルトの名無しさん:2008/12/28(日) 18:19:46
パソをさわっているうちに、間違ってjavaのファイルを削除してしまいました。

するとcabosが起動しなくなったので、javaをDLすると、使用中のPCには
すでにインストールされているというメッセージがでます。

そこで、再インストールしますかというメッセージが出るので、
「はい」をクリックしても、再インストールができないんです。

コントロールパネルを見るとjavaのアイコンがありますが、
コーヒーカップの絵ではなく、真っ白です。

クリックすると、アプリケーションが見つかりませんと
メッセージがでます。

javaのファイルはインストールされているけど、私のパソのOSが悪いので
認識できてないのでしょうかね。

ちなみにOSはvistaです。どうしたら元通りになるでしょう??
396デフォルトの名無しさん:2008/12/28(日) 18:28:38
板違い
397デフォルトの名無しさん:2008/12/28(日) 18:30:12
復元すりゃいいんじゃないの?
398デフォルトの名無しさん:2008/12/28(日) 19:04:13
そんな事せずともセーフモードで入ってファイル全部消した後レジストリ抹消すればいい。
399デフォルトの名無しさん:2008/12/28(日) 19:11:56
よくVO(View Object)、EO(Entity Object)という言葉を聞くのですが、
どのフレームワークで使われている概念なのでしょうか?
400デフォルトの名無しさん:2008/12/28(日) 19:44:14
その言葉を聞いたとこで聞けよ
401デフォルトの名無しさん:2008/12/28(日) 20:45:45
複数のスレッドを一定数ずつ順番に回したいのですが,方法がわかりません。。。
(たとえば,5つのスレッドを実行させて,ひとつ終わったら次のスレッドをひとつ実行させるみたいな感じ)

joinとかwaitとかを使ってやるのかな? 5つ終わってまた5つならできるんだけど。。。

教えてエロい人m(_ _)m
402デフォルトの名無しさん:2008/12/28(日) 20:54:48
>>401
Executor とか?
403デフォルトの名無しさん:2008/12/28(日) 21:00:21
配列
404デフォルトの名無しさん:2008/12/28(日) 21:34:50
>>402
おぉ。こんなのあるんだ! ありがとー
405デフォルトの名無しさん:2008/12/28(日) 22:26:04
http://a-draw.com/uploader/upload.html
8161

これをローカルで動かせるようにできないですか><
406デフォルトの名無しさん:2008/12/28(日) 22:36:32
>>405
>>1くらい読め
JavaScriptなんか読み方もしらねーよ
407デフォルトの名無しさん:2008/12/28(日) 22:48:11
そっかぁ(´・ω・`)
408401:2008/12/29(月) 00:06:41
Executorすごくぴったりだったんだけど・・・
普通のスレッドみたいにjoinみたいなことはできないのかなぁ? すべての処理が終わってからしたいことがあるんだ・・・。。。
Webで探してみても,Sleepしてからshutdown();みたいな動作しか見つからない・・・ 助けて><
409デフォルトの名無しさん:2008/12/29(月) 00:35:40
コンパイルエラーが出るのですがドコが間違っているのでしょうか?
import java.io.*;
class jam{
static int power(double a,int b){
double x = a;
int c = 2;
while(c<=b){
x=a*x;
c++; }
return x; }
public static void main(String args[])throws IOException{
double a;
int b;
double x;
System.out.println("実数を入力してください。");
BufferedReader xx =new BufferedReader(new InputStreamReader(System.in));
a=Double.parseDouble(xx.readLine());
System.out.println("乗数の値を整数で入力してください。");
BufferedReader xxx =new BufferedReader(new InputStreamReader(System.in));
b=Integer.parseInt(xxx.readLine());
x=power(a,b);
System.out.println(a+"の"+b+"乗は"+x+"です。"); } }をコンパイルすると
jom.java:10: 精度が落ちている可能性
検出値 : double
期待値 : int return x;
^と出ます。何が間違ってるのでしょうか?
誰か教えて下さい。お願いします。
410デフォルトの名無しさん:2008/12/29(月) 00:38:47
power関数がint型返すようになってるのにdouble型のx返してるからだろ
411デフォルトの名無しさん:2008/12/29(月) 01:19:26
>>408
ThreadPoolExecutorのterminatedを上書きしておいて、
全部のタスクを投げ終わったら、shutdownをかけるとか
412デフォルトの名無しさん:2008/12/29(月) 02:03:59
>>410さん!

>>409です。

本当にありがとうございました!!
413デフォルトの名無しさん:2008/12/29(月) 03:05:41
eclipseかnetbeans使えよっていう。
Javaなんてテクストエディタでチマチマと書くもんじゃない。
414デフォルトの名無しさん:2008/12/29(月) 08:37:19
>>390
やめろ(--; 意味のないnewするんじゃねぇ。
せめて、Integer.toString(b)
415デフォルトの名無しさん:2008/12/29(月) 08:41:29
いやいやString.valueOf(b)で。
416デフォルトの名無しさん:2008/12/29(月) 12:49:22
a+””+b

やっぱこれだろ
417デフォルトの名無しさん:2008/12/29(月) 13:47:33
a+””+b = a + "," + b;
418デフォルトの名無しさん:2008/12/29(月) 16:25:38
>>415
ソースを見たら、
String.valueOf(int value)→Integer.toString(int value, int radix)→Integer.toString(int value)
と、妙にまわりくどかった。
つか、何でString.valueOfはわざわざradix=10を指定してるんだ……。
419デフォルトの名無しさん:2008/12/29(月) 18:18:07
すみません。質問です。

テキストファイルへ、プログラムで入力した文章を記録させ続けたいです。
1回目ならプログラムを起動させるとテキストへ入力できるのですが、2回目を行うと
1回目に入力したテキストの部分が初期化されます。

どうすれば初期化されずに、入力した文章を書き足していく事ができるんでしょうか?


下は、dic/testt.txtへ入力された文章を書き込み、終了と入力すれば終わるものです。
宜しくお願いいたします。


try{
bw=new BufferedWriter(new FileWriter("dic/testt.txt"));
//文字列のキーボード処理
while(flag){
buf=ki.readKey(); //入力処理
if(buf.equals("終了")){

flag=false;

}else{
bw.write(buf);
bw.newLine();
}
}
bw.close();
System.out.print("書き込みました。");
420419:2008/12/29(月) 18:30:49
書き忘れました。
eclipseを使っています。
オラクルを勉強すれば解決できるでしょうか?
421デフォルトの名無しさん:2008/12/29(月) 19:14:39
・・・Oracle?
422デフォルトの名無しさん:2008/12/29(月) 19:19:03
>>421
おまじないの方じゃない?
423デフォルトの名無しさん:2008/12/29(月) 19:21:24
馬鹿が沸いてるな
424デフォルトの名無しさん:2008/12/29(月) 19:23:32
ファイル出力とか全然知らないけど
ファイルを書く前にストリングなんぞにファイルを読み込んでそこに文字列を追加していく感じでやれないんdねすけね?
425デフォルトの名無しさん:2008/12/29(月) 19:25:16
なんたらライターを作るときに、オプションかなんかで追記で開けると思うよん

間違ってるかもしれんが、とにかく追記で開く方法を探すんだ
426デフォルトの名無しさん:2008/12/29(月) 19:26:59
普通にやるとテキストを初期化する
        ↓
     そういう仕様
        ↓
じゃあテキストを読み込んでテキストの続き書き込めって命令をくれてやればいい
        ↓   
     ウマー(・д・)

アルゴリズム(プログラムの論理)から言うとこんな漢字でしょ
427デフォルトの名無しさん:2008/12/29(月) 19:42:51
ここ数日は、カンタンな事をわざと遠回りな実装するのが流行ってんのかw
428デフォルトの名無しさん:2008/12/29(月) 19:58:21
もうプログラム触る奴はとりあえずBSDのclibのソースコード全部舐めてから来いよ
429デフォルトの名無しさん:2008/12/29(月) 19:59:39
いやんlibcなのに
430419:2008/12/29(月) 20:04:18
,trueという4文字を追加する事で解決しました。
今日はずっと悩んでたので涙が出ます。
皆様どうもありがとうございました。
431デフォルトの名無しさん:2008/12/29(月) 21:32:29
>>430
おまいはJavaDocに目を通すことを覚えた方がいい。
http://java.sun.com/javase/ja/6/docs/ja/
http://java.sun.com/javase/ja/6/docs/ja/api/index.html
432デフォルトの名無しさん:2008/12/30(火) 00:42:23
EclipseならCtrl + クリックでそのクラスとかメソッドの中に入れるから、
FileWriterの中身を見てみるのも勉強のためにいいかも。
433デフォルトの名無しさん:2008/12/30(火) 12:11:56
Mathクラスのcos()メソッドを使って余弦を求めたいんだけどうまいくいかない
引数に60を与えれば0.5になるはずなんだけど
-0.952・・・になってしまう(´・ω・`)
434デフォルトの名無しさん:2008/12/30(火) 12:22:05
>>433
引数はラジアン単位だ。
ttp://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Math.html#cos(double)
> パラメータ:
> a - ラジアンで表した角度
435デフォルトの名無しさん:2008/12/30(火) 12:33:20
ごめんできた
引数の値をtoRadians()で渡せばいいのか
微妙に値が違うのはDouble型を使っているからだろうな
436デフォルトの名無しさん:2008/12/30(火) 12:34:35
>>434
あー更新してなかったごめん、でもthx
javadocの見方が下手糞なんだわ
437デフォルトの名無しさん:2008/12/30(火) 19:22:04
StringBufferって値を消去することできないの?
438デフォルトの名無しさん:2008/12/30(火) 20:48:30
439デフォルトの名無しさん:2008/12/30(火) 22:11:55
>>437
全部クリアするならsetLengthメソッドで0をセットした方が楽
部分的に消すなら>>438
440デフォルトの名無しさん:2008/12/30(火) 22:19:25
特定のウィンドウをアクティブにする方法を教えてください。
それと座標も取得できると嬉しいです。
よろしくお願いします。
441デフォルトの名無しさん:2008/12/30(火) 23:18:25
通常はクリックとかのイベントの発生をOSからプログラムが受けとって処理するのですが、
その逆で、イベントをプログラム上で自ら発生させてそれをOSに渡すにはどうやればいいんでしょうか?
よろしくお願いします。
442デフォルトの名無しさん:2008/12/31(水) 00:36:02
質問です。

ユーザによって入力された文章中に含まれるキーワードに反応して
処理を返すようにしたいんですがどうすればいいんでしょうか。

宜しくお願いします。
443デフォルトの名無しさん:2008/12/31(水) 08:54:16
ここで聞くようなやつには無理だ。形態素解析でググレ。
444デフォルトの名無しさん:2008/12/31(水) 09:25:20
>>440
Java では無理。自分自身ならアクティブにできるが、他のプロセスには干渉できない。

>>441
java.awt.Robot とか
445442:2008/12/31(水) 11:06:51
>>443
ありがとう御座います。頑張ります。
446デフォルトの名無しさん:2008/12/31(水) 11:38:40
Robotは自動テストが主でイベントを発生させてOSに渡すのが目的のクラスじゃないようなんですが、
そういう目的のクラスはJavaでは用意されてないのでしょうか?
例えばJavaで並列計算した結果を他のアプリ・プロセスにOSのイベントで知らせるよう(又はその逆)にしたいのですが。
447デフォルトの名無しさん:2008/12/31(水) 13:52:10
なんでわざわざjavaで計算してるの?
448デフォルトの名無しさん:2008/12/31(水) 13:54:10
まあわざわざjavaでやるメリットはないわな
449デフォルトの名無しさん:2008/12/31(水) 14:02:34
socketででも通信すりゃいいんじゃね?
450デフォルトの名無しさん:2008/12/31(水) 16:06:11
ゲーム起動したらこんなんでるのですがどうすればよいでしょうか??
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x1a18ce7d, pid=4052, tid=2636
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_15-b04 mixed mode)
# Problematic frame:
# C [ktpraf.dll+0xece7d]

ちなみに最新のjavaはインストールしました!
451デフォルトの名無しさん:2008/12/31(水) 16:42:44
板違い
452デフォルトの名無しさん:2008/12/31(水) 16:43:32
>>450
プログラミングに関係ないソフトの使い方の質問は板違い
何度やっても再現するならそのゲームの作者に聞け
一度出ただけなら犬に噛まれたとでも思って忘れろ
453デフォルトの名無しさん:2008/12/31(水) 17:04:44
> # Java VM: Java HotSpot(TM) Client VM (1.5.0_15-b04 mixed mode)
どうみても最新じゃない罠
1.5の最新版だといういい訳もできない
454デフォルトの名無しさん:2008/12/31(水) 17:12:01
BottonやPanelなどをアプレットの中心に表示したいのですがどうやったらできますか?
455デフォルトの名無しさん:2008/12/31(水) 17:37:03
>>454ですが、ちょっと説明が足りなかったみたいです
BorderLayoutで中央にButtonを配置できるのですが、Buttonの大きさがすごく大きくなってしまったので・・・
456デフォルトの名無しさん:2008/12/31(水) 18:00:44
http://ditaa.sourceforge.net/
このサービスを使ってみたいのですが、
コマンドプロンプトでディレクトリをこのファイルにまで移動した後
java -jar ditaa.jar
と打ったのですが
Unable to access jarfile ditaa.jar
と出てきて実行できません。
どうすればよいのでしょうか?
457デフォルトの名無しさん:2008/12/31(水) 19:17:44
なんでここで聞くの?
458デフォルトの名無しさん:2008/12/31(水) 19:40:37
>>454 >>455
public class Botton extends Button {
public Botton(){
super();
}
}
459デフォルトの名無しさん:2008/12/31(水) 19:51:39
Bottonちゃうわ
460デフォルトの名無しさん:2008/12/31(水) 19:52:46
ボットン
461デフォルトの名無しさん:2008/12/31(水) 21:38:31
とりあえずPanelの中心にButtonやChoiceをおきたいのですが・・・
いろいろ調べてみたんですが、ちょっと方法が見つかりませんでした
462デフォルトの名無しさん:2008/12/31(水) 22:25:48
BorderLayoutはadd(c,BorderLayout.CENTER)でコンポーネントcを中央に置ける。
サイズは東西南北に置いたコンポーネントサイズ分を引いた残り全部だ。
中央に置くのが二つなら、その二つを載せたコンテナを作ってそれをBorderLayoutで中央に置け。
463デフォルトの名無しさん:2008/12/31(水) 22:45:29
グルー詰めればいいんじゃないか?
464デフォルトの名無しさん:2009/01/01(木) 01:45:06
>>418
Stringの実装がIntegerの実装を見てバリバリにチューニングしてないから、としかいいようがないんじゃ?
Integer.toStringの実装が変わることを考えれば、radix=10を指定していてもなんの不思議もないと思う。
たとえば、String.valueOf(int)を実装したときは、Integer.toString(int)はInteger.toString(int,int)を呼んでたから、
Integer.toString(int,int)を直接呼ぼう、とかさ。

自分はだいたいオーバーロードするメソッドや複数のコンストラクタを書くような場合、引数の数が少ないものは引数の多いものを
足りない引数を補って呼ぶようにしているのだけれども、これって結構普通のことじゃない?
そういう考え方をString.valueOf(int)を書いた人が持ってれば、わざわざ指定する感じになると思いませんか?
465デフォルトの名無しさん:2009/01/01(木) 02:11:50
>>464
いや、JavaDocのString.valueOf(int)の説明に

>The representation is exactly the one returned by the Integer.toString
>method of one argument.

と書いてあるので、>>418の疑問には共感できる。
今の実装だとInteger.toString(int)の実装が変わったらString.valueOf(int)
の実装も変えないと上記の説明を満たせないよね。
466デフォルトの名無しさん:2009/01/01(木) 02:12:34
>引数の数が少ないものは引数の多いものを足りない引数を補って呼ぶ
俺もやるけどjavaってそういう流儀でしょ。
467デフォルトの名無しさん:2009/01/01(木) 02:16:55
>>418を見ると引数の多いのから引数の少ないを呼んでるね
468デフォルトの名無しさん:2009/01/01(木) 02:58:54
メソッドの抽象化が大好きなのは俺が関数型好きだからだろうか?
ストラテジーパターンよく使う。けど、クロージャが欲しい。
469デフォルトの名無しさん:2009/01/01(木) 06:11:32
/* Happy New Year */
470デフォルトの名無しさん:2009/01/01(木) 06:18:08
msgHdl..happy(new Year(2009));
471デフォルトの名無しさん:2009/01/01(木) 06:19:27
新年早々いきなり文法エラー orz
472デフォルトの名無しさん:2009/01/01(木) 08:01:41
>>462
これだと例えばButtonをおいたときに、Buttonの大きさがアプレットの大きさになってしまうんです
Buttonの大きさは普通のサイズにしたいんです
473 【凶】 【1186円】 :2009/01/01(木) 08:14:46
SUNの社運
474デフォルトの名無しさん:2009/01/01(木) 09:13:25
>>465
なるほど、String.valueOf(int)のJavadocがそうなってるならJavadoc通りでない実装だし、
わざわざオーバーヘッドもあるしで、謎だね。
でも、Integer.toString(int)のJavadocにradix=10って明記してあるなら、radix指定バージョンにリダイレクトして
いいような気もするけど。

>>467
そうそう。だから、Integer.toStringの実装が例外的だから、String.valueOf(int)が引数多いメソッドを呼んでても
不思議じゃないんじゃない?って書いた。
475デフォルトの名無しさん:2009/01/01(木) 13:27:28
特定のセル行を編集不可にしてマウスクリックで時間の表示
ができるようにしようと思って書いたんだけど、エラーでちゃった。


for(int i = 1 ; i<= 5 ; i++){
DefaultTableModel tableModel
= new DefaultTableModel(columnNames, 50);

JTable table = new JTable(tableModel);

JTextField tf = new JTextField("");
tf.setEditable(false);
DefaultCellEditor dce = new DefaultCellEditor(tf);
table.getColumnModel().getColumn(0).setCellEditor(dce);

table.addMouseListener(new MouseAdapter(){

public void mouseClicked(MouseEvent e){
JTable t = (JTable)e.getSource();
Calendar calendar = Calendar.getInstance();
String now = calendar.get((Calendar.HOUR_OF_DAY) + "時" + get(Calendar.MINUTE));
t.setValueAt(now, t.getSelectedRow(),t.getSelectedColumn());
}
}

間違ってそうなとこを上げたのだけど、どこがいけないか指摘とか
書き直しとか良かったら教えてください
476デフォルトの名無しさん:2009/01/01(木) 14:11:38
あぅ、なんかおかしいと自分でも気づいたので直してみました;
で、まだエラーでるのでなおしたものを投下

for(int i = 1 ; i<= 5 ; i++){
DefaultTableModel tableModel
= new DefaultTableModel(columnNames, 50);

JTable table = new JTable(tableModel);

JTextField tf = new JTextField("");
tf.setEditable(false);
DefaultCellEditor dce = new DefaultCellEditor(tf);
table.getColumnModel().getColumn(0).setCellEditor(dce);

table.addMouseListener(new MouseAdapter(){

public void mouseClicked(MouseEvent e){
JTable t = (JTable)e.getSource();
Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
t.setValueAt(hour + ":" + minute, t.getSelectedRow(),t.getSelectedColumn());
}
}


ご指摘ご指導お願いしますだ〜!
477476:2009/01/01(木) 14:55:40
自己解決!私がアホでした!
478デフォルトの名無しさん:2009/01/01(木) 20:42:00
Javaで練習がてらテキストブラウザを作ろうと思うのですが
なにか参考書か参考になるサイトあるでしょうか?
479デフォルトの名無しさん:2009/01/01(木) 20:52:24
>>478
練習がてら、ならこのあたりで宿題解いてみるのもいいんじゃない。

★★ Java の宿題ここで答えます Part 66 ★★
http://pc11.2ch.net/test/read.cgi/tech/1221652206/
480デフォルトの名無しさん:2009/01/01(木) 21:14:26
481デフォルトの名無しさん:2009/01/01(木) 21:45:59
>>480
いや、作るほうなんですが・・・
482デフォルトの名無しさん:2009/01/01(木) 22:46:03
>>481

>>480 じゃ参考にもならないのか
483デフォルトの名無しさん:2009/01/01(木) 22:48:14
お昼の書き込みで自己解決してたものです。
一列目の編集不可、一列目クリックで時間表示はできました。
しかし二列目以降のセルに右クリックでポップアップを指定したところ、
一列目にも右クリックでポップアップが表示されるようになってしまいました。
解決策がどうにも思い浮かばないので、宜しかったらご教授願います。
484デフォルトの名無しさん:2009/01/01(木) 23:17:49
ソースアップしてもわらないと分からないな。
485デフォルトの名無しさん:2009/01/01(木) 23:28:18
javaじゃ標準ライブラリだけでajaxに対応したグラフィカルブラウザすら作れるんだから練習にならないんじゃないかと。

>>479が良いと思う。
486デフォルトの名無しさん:2009/01/01(木) 23:34:39
jsに対応するの大変じゃね?
JEditorPaneはjs実行してくれないし
487デフォルトの名無しさん:2009/01/02(金) 00:34:32
>>486
元々そこら辺は拡張できるように設計されてるからパーサとペインを対応させる。
Rhino側はDOMとXMLHttpRequestを実装すればいい。
DOMもXMLHttpRequestも必要なものは標準ライブラリにある。

完全に1から実装するわけじゃないから遥かに楽だと思うけど。テキストブラウザとなれば更に楽。
当然ブラウザ実装するって言ってるんだから実装に必要な知識があることが前提だけどさ。
知識がないならブラウザの実装は練習には向いてないよ。
(事前に必要な知識が特殊で膨大すぎる)


GUIなら画像ビューア付きのファイラーが良いと思うけどね。

・Swingの基本
・ツリー表示時のファイルシステムの遅延取得
・練習だから素のJFileChooserで画像選択&アクセサリコンポーネントでプレビューペイン実装

応用としてZIPアーカイブ内ファイルも表示なんてどうだろう?(練習でこれ実装したらすごいと思う、面倒くさいから)
488デフォルトの名無しさん:2009/01/02(金) 00:38:23
1から作るよりずっと楽なのは確かだけど、とっても大変。
少なくとも練習レベルじゃないよ。
現にこれ実際にちゃんと実装した人見たことない。
しかもJavaのHTMLの実装かなり甘いから標準で攻めてもどっかで躓くの見えてるしなぁ
489デフォルトの名無しさん:2009/01/02(金) 01:05:23
甘くはないよ。ちゃんとHTMLの正規化もやってるし。
ただHotJavaBrowserの実装をそのまま使ってるからHTML3.2 finalで止まってるだけ。

#JWebPaneは間に合うんだろうか?
490デフォルトの名無しさん:2009/01/02(金) 05:06:12
なるほど、URL叩いて画面表示だけならテキストでもHTML3.2でもできました。Javaってよくできてますね・・。
・・・フォームのサブミットってどうやるんですか?お作法が載ってるページがみつからないんですが/(^o^)\
491デフォルトの名無しさん:2009/01/02(金) 05:11:29
ただのPOSTリクエストだけど?
Javaでの具体的な方法が分からないのか、
そもそもPOSTって何?って話なのかどっちなの?
492デフォルトの名無しさん:2009/01/02(金) 05:12:30
先頭に大概を・・・
493デフォルトの名無しさん:2009/01/02(金) 05:16:06
それくらい書籍見るなりググるなりして自分で調べていくものだってばっちゃが言ってたよ。
494デフォルトの名無しさん:2009/01/02(金) 05:45:56
気のせいかうまくいかないけどやってみますよ
まあ気長に待っててくれ
495デフォルトの名無しさん:2009/01/02(金) 13:42:33
別に誰も待ってないからマイペースでやれ
496483:2009/01/02(金) 14:01:59
>484様 了解です。

for(int i = 1 ; i<= 5 ; i++){
DefaultTableModel tableModel
= new DefaultTableModel(columnNames, 50);

JTable table = new JTable(tableModel);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
//一行目編集不可
JTextField tf = new JTextField("");
tf.setEditable(false);
DefaultCellEditor dce = new DefaultCellEditor(tf);
table.getColumnModel().getColumn(0).setCellEditor(dce);
497483:2009/01/02(金) 14:03:06

//一行目時間表示、ポップアップ表示

table.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e){

JTable t = (JTable)e.getSource();
JPopupMenu popup = new JPopupMenu();

Calendar calendar = Calendar.getInstance();
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
t.setValueAt(hour + ":" + minute, t.getSelectedRow(),0);

JMenuItem up1 = new JMenuItem("1位");
JMenuItem up2 = new JMenuItem("2位");

popup.add(up1);
popup.add(up2);

if(SwingUtilities.isRightMouseButton(e)){
popup.show(e.getComponent(), e.getX(), e.getY());

}
}
});


という風に書きました。
質問内容は>483です。
498デフォルトの名無しさん:2009/01/02(金) 15:02:38
ポップアップ出す前に2行目以降なのか見ればいいだろ。
499デフォルトの名無しさん:2009/01/02(金) 16:20:17
GETもPOSTもろくに知らないでHTTP叩けるなんて良い時代になったなぁ。
HTTPが出てきた当時はTCP/IP丸暗記必須だった気がする。
500デフォルトの名無しさん:2009/01/02(金) 16:28:46
二十年近く前の話じゃん
501デフォルトの名無しさん:2009/01/02(金) 16:37:39
叩けるにしても、使えるようになるには結局GETもPOSTも勉強
しなければならないのは今も昔も変わらないと思うけどね。
502デフォルトの名無しさん:2009/01/02(金) 17:37:58
サーブレットでやると勉強しなくてもできちゃうんだなこれが
503デフォルトの名無しさん:2009/01/03(土) 00:08:06
textLength += (value < 0); //(←なぜか変換できない)
504デフォルトの名無しさん:2009/01/03(土) 03:18:53
+演算子にはbooleanが被演算子になるような使い方はない
505デフォルトの名無しさん:2009/01/03(土) 03:25:42
Cとは違うのだよCとは
506デフォルトの名無しさん:2009/01/03(土) 12:43:22
偉い人にはそれがわからんのですよ
507デフォルトの名無しさん:2009/01/03(土) 12:47:47
見える。。。僕にも見えるよ
508デフォルトの名無しさん:2009/01/03(土) 15:39:52
計算で軌跡を書かせるプログラムを書いています。
htmlでclassを実行させた表示させたいのですが、ブラウザの画面設定が
計算結果のグラフより小さい場合、ブラウザのスライダーを動かすと再計算
を始めます。
スライダーを動かしても計算した結果を保持して表示させるにはどうすれば
良いのでしょうか?
509デフォルトの名無しさん:2009/01/03(土) 15:55:09
再計算しなければいいだけ
どうせ、paint()で毎回計算するようにしてるんだろ
510デフォルトの名無しさん:2009/01/03(土) 15:57:10
readline()ってなんか勝手に次の行読み込みまくるんだけど
延々と同じ行を読み込ませるにはどうしたらいいんだい
511デフォルトの名無しさん:2009/01/03(土) 16:00:44
よく分からんからやりたいことの要点とソースうp(うpろだ使って)
グラフってのは数学的なグラフか?
512デフォルトの名無しさん:2009/01/03(土) 16:14:27
>>510
毎回10行目を読み込みたいとか?

用途がわからんが無理じゃね?
513デフォルトの名無しさん:2009/01/03(土) 16:32:39
そもそも、そんなことする必要がないし。
514デフォルトの名無しさん:2009/01/03(土) 16:46:29
俺ミラじゃないし
515デフォルトの名無しさん:2009/01/03(土) 17:54:50
C++の参照変数みたいなこと,例えば
char c1[1024];
char& c2 = &c1[512];

c2[0] *=c1[0];

見たいなことをjavaでやりたいんだけどどうすればよいでしょうか?
ARC4の暗号のデコードするCのプログラムをjavaに移植しようと思ってるんだけど
Cのプログラムがポインタ使って文字列をぐりぐりやってて困ってます.
516デフォルトの名無しさん:2009/01/03(土) 18:16:38
>>510
java.io.BufferedReader クラスを継承して、readLine メソッドで同じ行を返すだけにすればいい。
517デフォルトの名無しさん:2009/01/03(土) 18:17:49
>>510
String tmpLine;
while((tmpLine = reader.readLine()) != null){
tmpLineをごにょごにょ;
}
ってことじゃなくて?
518508:2009/01/03(土) 18:43:36
509さんの言われる通りです。
繰り返し計算させてプロットさせるんですが、ブラウザを小さくしていると
描画の結果が切れてもっと右を見ようとしてスライダーを触ると再計算が
始まります。
519デフォルトの名無しさん:2009/01/03(土) 18:57:08
>>515
無理。Javaではオブジェクトの実体を異なった形で共有することは、ポインタ演算もunionも無いので不可能。
例のような演算については、配列へのリファレンスとオフセットの組でデータを扱うしかない。
520デフォルトの名無しさん:2009/01/03(土) 19:01:18
>>498
解決しました、アドバイス有難うでした。
521デフォルトの名無しさん:2009/01/03(土) 21:34:28
インスタンス変数 count
コンストラクタ public Counter(int count){ this.count = count; } と
int compareTo(Counter right) { return 0 - right.compareTo(count); }
void increment(){ count = ++ count; }
Counterクラスにある上の2つのメソッドを使って
for(Counter rep = new Counter(0); [ ] ; rep.increment() ) { } と、いうように
繰り返しをしたいのですが、[ ]の中にどんな文を書けばいいのでしょうか?
522デフォルトの名無しさん:2009/01/03(土) 22:28:55
どんな時に繰り返しを終わらせたいんだよ
523デフォルトの名無しさん:2009/01/03(土) 22:32:20
>>522
すいません、書くのを忘れていました
例えば、int[] data = {64, 35, 69}この配列データを全て表示したらです。
524デフォルトの名無しさん:2009/01/03(土) 22:43:26
>>515
そのコードを見るとただのポインタオフセットの変更(C++流なら別名)なだけだから、
Java流だと

off=0;
c1[off + pos++]

refoff=512;
pos=0;
c1[refoff + pos] *= c1[off]

となる。Javaでのポインタ計算は全て配列のオフセットでやるからCとJavaはプログラミング方法が少し違う。
525デフォルトの名無しさん:2009/01/03(土) 22:50:43
>>523
変なことしないで拡張for文使えよ
526デフォルトの名無しさん:2009/01/03(土) 22:58:16
>>525
おかしい方法ってことは重々承知なんですが
こういう課題なんです・・・。
527デフォルトの名無しさん:2009/01/03(土) 23:25:32
講師に文句言った方が良いな
528デフォルトの名無しさん:2009/01/04(日) 02:30:09
質問です。
Stringのオブジェクトは一度生成するとその中身を変更できないというのですが、
実際には変数名="hogehoge";などとすると値が変わります。
これは新たにインスタンスが作成され、それに参照が変化したと考えれば良いのでしょうか?

この事実を認識していないと実際に起こりうる問題に関して、参考サイトなど教えてください。
よろしくお願いします。
529デフォルトの名無しさん:2009/01/04(日) 02:32:16
>>510
mark()とreset()で可能なはず。
530デフォルトの名無しさん:2009/01/04(日) 02:39:15
>これは新たにインスタンスが作成され、それに参照が変化したと考えれば良いのでしょうか?
良い。
(文字列リテラルのインスタンスが果たしてその場で作成されるのかどうかはともかくとして、
 別のインスタンスを指すようになったという認識に問題は無い)

>この事実を認識していないと実際に起こりうる問題に関して、参考サイトなど教えてください。
参考サイトはちょっとぱっと出ないけど、
String a = "hogehoge";
String b = a;
とした時は a と b は同じ文字列を指すけど、
a = "piyopiyo"; としても b は "hogehoge" を指したまま、
って事は、この事実を認識していないと誤解しちゃうんじゃないかな。
531デフォルトの名無しさん:2009/01/04(日) 02:43:15
>>530さん
どうもありがとうございました。
授業で説明があまりないまま鵜呑みにしていたので、混乱していました。
532デフォルトの名無しさん:2009/01/04(日) 03:08:17
>>518
paint()は再描画が必要なときに呼ばれるもの
だから、その中に計算処理を書いている時点で使い方を間違っている
計算処理と描画処理を分離しろ
533デフォルトの名無しさん:2009/01/04(日) 03:28:56
>>521
Java初心者だが答えてみる

for(Counter rep = new Counter(0); rep.compareTo(new Counter(data.length())) != 0; rep.increment() ) { }

配列の長さをとるのがlength()じゃなければ適当に変えてみて。

あと、int compareTo(int)の関数はなくてもいいのか?
まあ、あったら
rep.compareTo(new Counter(data.length())) != 0

rep.compareTo(data.length()) != 0
になってしまうが。
534デフォルトの名無しさん:2009/01/04(日) 07:55:25
CREATE TABLE HELLO_WORLD_TABLE (
 NO INTEGER NOT NULL,
 LANGUAGE VARCHAR(50),
 MESSAGE VARCHAR(100),
 PRIMARY KEY(NO)
);
このような、HELLO_WORLD_TABLEにデータを挿入する場合、MySQLではこのように書けますが、
INSERT INTO HELLO_WORLD_TABLE
 VALUES ( 1 , '日本語' , 'こんにちわ 世界');

javaで例えば
int num = 2;
String lang = "英語";
String mess = "Hello World";
このような変数を、HELLO_WORLD_TABLEに
executeUpdate()メソッドを用いて追加する際の、java流のsql文の書き方を教えてもらえませんか。
535デフォルトの名無しさん:2009/01/04(日) 08:09:17
>>534
SQL文を一つのStringにしてメソッドに渡せばいいだけじゃないの?
536デフォルトの名無しさん:2009/01/04(日) 08:37:47
>>535Thxです
>>534ですが
SQL文を一つのStringにまとめるのは分るのですが、
例えば
String sql = "insert into HELLO_WORLD_TABLE values ( num, lang, mess)";
executeUpdate(sql);
とすると、numの値はDBに、正しく挿入されるのですが、langとmessの値がnull値になります。
多分、java流のsql文の書き方が間違っていると思うのですが、間違いを指摘してもらえれば幸いです。
537デフォルトの名無しさん:2009/01/04(日) 09:33:56
>>536
どちらかというとStringの使い方だな
調べたら1分で分かるレベルかと
538デフォルトの名無しさん:2009/01/04(日) 09:39:27
javaというか、OSの問題かもしれませんが
自作プログラムのjarファイルのデスクトップアイコンを
コーヒーから差し替えることは可能でしょうか?
できればそのファイルだけ限定だとよいのですが。
539デフォルトの名無しさん:2009/01/04(日) 10:22:39
>>536
やりたいことってこういうこと?

1、SQL 文をひとつの String にしたい
2、作りたい String の一部分はプログラムを書いている時点で決めていい
3、作りたい String の一部分は、プログラムが動いている時じゃないと決まらない

こういう方法は、どうでしょ。

String sql = "insert into HELLO_WORLD_TABLE values ('" + num + "', '" + lang + "', '" + mess + "')";

文字列同士をプラス演算子を使って足し算(みたく)すると、連結された String オブジェクトを
新たに作ってくれる。
文字列とプリミティブな値を、プラス演算子を使って足し算(みたく)すると、プリミティブ値を String に
変換した後、それぞれを連結した String オブジェクトを新たに作ってくれる。

#まちがってたら誰か指摘してね。
#あと、
#この方法を連発するとオブジェクトの生成→ゴミ箱行き、が多くなって、
#StringBuilder のほうが効率的じゃねーの、っていう話を、だれかしてあげてね。
540デフォルトの名無しさん:2009/01/04(日) 11:16:37
そこでStringBuilderを使ったところで、
たいして効率は上がらないっていう話を、
だれか>>539にしてあげてね。
541デフォルトの名無しさん:2009/01/04(日) 11:43:00
よくわかんないけど、SQLインジェクションの危険性についてもね。
542デフォルトの名無しさん:2009/01/04(日) 12:14:59
>>539
その方法でSQL組み立てるの絶対絶対禁止禁止禁止〜〜〜!!!
SQLインジェクションの餌食です、本当にありがとうございました。
(↑リリース寸前にそういうコードを泣きながら修正して回ったのがトラウマになっているらしい)

JavaでJDBCを使う場合、普通はこうすべき。
Connection con = (省略)
PreparedStatement pst = con.prepareStatement("insert into HELLO_WORLD_TABLE values (?, ?, ?)");
pst.setInt(1, num);
pst.setString(2, lang);
pst.setString(3, mess);
pst.execute();
pst.close();
※prepared statementのパラメータインデックスは1から始まることに注意。
もっとも、実用では、生でJDBCを使うより、適当なDBアクセスライブラリを使うのが普通。
543デフォルトの名無しさん:2009/01/04(日) 12:33:03
>>542
補足。実行するのが、insertじゃなくて、selectやupdateのときには、execute()じゃなくて、executeQuery()やexecuteUpdate()を使うので注意。
JDBCのAPIを要調査のこと。
544デフォルトの名無しさん:2009/01/04(日) 12:58:20
534です
>>539さん、そして他の皆様お世話になります
少し進展しました
ご教示してくださった実装で、MySQLにnull以外のデータを追加できるのですが
後だしで、大変申し訳ないのですが(コードを載せると長くなると思い、省略してました)
DB INSERT TEST SQLException:Column 'lang' not found.
となり、DBへ文字化けしたデータが追加されています、重ね重ね後だしで申し訳ありませんが、原因を教えてもらえませんでしょうか。

>>542さん
ありがとうございます、斯様な実装は危険と解釈いたしました、>>542さんの掲示してくださった、コードを精査してみます。
>>534で掲げた、変数ですが、WEBからPOSTされてきた、データで、
request.getParameter()で取得したデータです。
public class GetPostMethod extends HttpServlet {
DBConnectionPool pool = new DBConnectionPool();//DBの接続切断を行う基本クラス
 Connection con = null;
 Statement stmt = null;
 protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
   //リクエストされた値を取得
   int no = Integer.parseInt(request.getParameter("no"));
   String lang = request.getParameter("lang");
   String mess = request.getParameter("mess");
   PrintWriter out = response.getWriter();
   pool = pool.getInstance();
   con = pool.getConnection();
   stmt = con.createStatement();
   String sql = "insert into HELLO_WORLD_TABLE values ('" + no + "', '" + lang + "', '" + mess + "')";
   // データベースにデータをセット
   stmt.executeUpdate(sql);
out.close();
 }
}   
545デフォルトの名無しさん:2009/01/04(日) 13:15:11
>>538
無理じゃね?
546デフォルトの名無しさん:2009/01/04(日) 13:37:59
>>544
ちょっとまてー!! 他にも突っ込み所が多過ぎて眩暈がするわ……。
1) 原則としてServletにインスタンス変数を持たせるな。いや、持たせてもいいんだけど、やるなら自分が何やってるか100%理解してからにしろ。
2) これはどう考えても変だろう。
> DBConnectionPool pool = new DBConnectionPool();//DBの接続切断を行う基本クラス
...
> pool = pool.getInstance();
poolはローカル変数にして、
DBConnectionPool pool = DBConnectionPool.getInstance();
にすべきなんじゃないのか。
3) SQLの組み立て部分については>>542に書いた通り。langやmessに「'」を含む文字が渡されたらどーすんだ。
4) execute(), executeQuery(), executeUpdate()をちゃんと使い分けろ。
547デフォルトの名無しさん:2009/01/04(日) 14:34:41
>>546さん
>>544です、お世話になります。
>>DBConnectionPool pool = DBConnectionPool.getInstance();
>>にすべきなんじゃないのか。
仰せの通りです、錯覚してました、斯様に修正して見ました、駄目だしお願いできないでしょうか(大杉かもしれませんが・・・・・)よろしくお願いします。
import hellodb.import java.io.*;import java.net.*;import java.sql.*;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.http.*;

public class GetPostMethod extends HttpServlet {
  Connection con = null;
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
    DBConnectionPool pool = DBConnectionPool.getInstance();
    //リクエストされた値を取得
    int no = Integer.parseInt(request.getParameter("no"));
    String name = request.getParameter("lang");
    String joint_names = request.getParameter("mess");
    // 接続
    con = pool.getConnection();
// データベースにデータをセット
    PreparedStatement pst = con.prepareStatement("insert into ADDRESS_TABLE values (?, ?, ?)");
    pst.setInt(1, no);
    pst.setString(2, lang);
    pst.setString(3, mess);
    pst.executeUpdate();
    pst.close();
  }
}
548デフォルトの名無しさん:2009/01/04(日) 14:38:16
ごめんなさい
//リクエストされた値を取得
int no = Integer.parseInt(request.getParameter("no"));
※以下修正です
String lang = request.getParameter("lang");
String mess = request.getParameter("mess");
549デフォルトの名無しさん:2009/01/04(日) 16:35:21
>>547
・conもローカル変数にしろ。
・使い終わったconはpoolに返却しろ。返却の仕方はDBConnectionPoolの仕様を確認しろ。
550549:2009/01/04(日) 16:47:06
Servletにインスタンス変数を持たせてはいけないのは何故か。
異なるブラウザ(例えばIEとFirefox)を同時に立ち上げ、以下のServletを「ほぼ同時(5秒以内)」に動かし(リロードでもOK)、countの値がどうなるか確認してみるべし。
そして、例えば個人情報をServletのインスタンス変数に格納したとき、2人以上のユーザが同時に同じServletにアクセスしたらどうなるか想像してみよう。
public class ServletTest extends HttpServlet {
    private int count = 0;
    protected void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
        res.setContentType("text/plain");
        PrintWriter w = res.getWriter();
        count++;
        try {
            Thread.sleep(5 * 1000);
        } catch (InterruptedException e) {
            // no operation
        }
        w.println("count = " + count);
        w.close();
    }
}
551デフォルトの名無しさん:2009/01/04(日) 18:02:26
Servletはマルチスレッドだったのか。
知らなかったぜというか意識していなかったぜ。
552デフォルトの名無しさん:2009/01/04(日) 19:56:56
String buff=”P01,P02,P03,・・・,PXX”; //PXXは必ずしも小さい順ではない。また重複はない

とbuffに可変個数のPXXが文字列として入ってる時にこれをArrayList型のidという変数に
id[0]=P01、id[1]=P02・・・と言う感じにArrayListに格納したいのですが、何かいい方法内でしょうか?
553デフォルトの名無しさん:2009/01/04(日) 20:39:10
>>550
毎回 count=1 が出力されるんじゃない?
554550:2009/01/04(日) 22:03:37
>>553
されない。以下の環境で確認済み。
Windows XP SP3 + JDK 6.0Update11 + Apache Tomcat 6.0.18
555デフォルトの名無しさん:2009/01/04(日) 22:38:52
>>552
java 文字列分割
java 配列 ソート

これでぐぐれば方法見つかると思うお
556デフォルトの名無しさん:2009/01/05(月) 00:33:21
>>550さん
>>547、544です
ありがとうございます、大変参考になります、実行はしていないのですが
動作の想像は付きます、多分二回目のアクセスでおそらくsleepメッソッドがリセット
されるのではないのでしょうか?
ただ、排他制御に関して、synchronized を用い、このようなプロトタイプでの実装は
javaでは邪道なのでしょうか?
protected synchronized void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
〜省略
}
javaを始めて2ヶ月ほどなのでよく分らないのですが、排他制御を行う場合、C++では
一般的に、Mutexクラスなるものを実装するのですが、javaのsynchronized 修飾子とは
異なると思うのですが、いかがなものでしょうか?それともまったく見当違いでしたら
ごめんなさいです。
557デフォルトの名無しさん:2009/01/05(月) 00:35:08
リセットではなく、ロックでしたね
558デフォルトの名無しさん:2009/01/05(月) 00:43:47
>>556>>557です
すいません、嘘を書いてしまいました、Mutexではなく、
プロセス内で複数スレッドからアクセスする際に、一度にどれか1箇所からしか使わないようにするのは
CSemaphore(MFCのクラスでしたねたしか)でした、重ね重ねごめんなさい。
559デフォルトの名無しさん:2009/01/05(月) 00:45:25
>>552
ArrayList<String> id = new ArrayList<String>(Arrays.asList(buff.split(",")));
もしリストをソートしたいのならCollections#sortでidをソート。
560デフォルトの名無しさん:2009/01/05(月) 00:51:13
>>555
>>559

ありがとうございます。便利な方法があったんですね。自分は
for(int i=1;i<buff.length()+1;i++){
 pid.add(buff.substring(i-1,i+2));
 i=i+3;
}
こんな感じで無理矢理やってしまいました。。。
561550:2009/01/05(月) 01:41:35
>>556
まったくの見当違い。言いたいのは「排他制御しろ」ではなくて、
「共有すべきでないデータを共有するな」ということ。

1) >>550は、count = 0 のとき、別々のブラウザで同時にアクセスすると、
両方とも5秒後に「count = 2」と表示される。ここでのThread.sleepは、
単にcount++とprintlnとの間に別のスレッドが割り込む機会を設けてるだけ。
この例は、複数のスレッドで同じデータを共有する意図が無いなら、Servlet
にインスタンス変数を持たせてはいけないことを説明するためのもの。

2) 少なくとも>>544>>547のような例なら、複数のスレッドからconやstmtを
アクセスできるようにする必要はないし、むしろアクセスできるとマズい。
わざわざインスタンス変数にしたり、さらにそれが同時にアクセスされない
ようにロックするのは、無意味にプログラムを複雑にしている分有害。

3) Javaがどうこうの話ではなく、一般論として、データを共有しない場合は
排他制御は不要だし、むしろやるべきではない。むやみに排他制御を行うと、
極端に性能が落ちたりデッドロックする可能性がある。もちろん、必要な
ところにはちゃんと排他制御すべきで、例えばServletだとSession
オブジェクトへのアクセスにはsynchronizedが必要。
562デフォルトの名無しさん:2009/01/05(月) 03:01:04
↑他人のコードにケチつけるのはそれで終わりですか?
563デフォルトの名無しさん:2009/01/05(月) 03:23:51
>>562
「ケチ」なのか?
別段間違ったことを書いているように見えないのだが・・・。

というか、この程度でケチというのはだめじゃね。
良くないことは良くないと突っ込めないようでは、後で問題が発生したときの揺り返しの方が大きい。
「鉄は熱いうちに打て」というが、早いうちに対処すれば問題は最小ですむが、後になれば、全体的な問題に
なりかねない。自分個人の話だけではすまなくなることがある。

そういう意味では、>>544 のように他人の意見を聞くのはいいことだと思う。
564デフォルトの名無しさん:2009/01/05(月) 03:59:19
まぁそうだねぇ
謙虚に話を聞けない奴は大成できない
565デフォルトの名無しさん:2009/01/05(月) 04:03:58
プログラムというのは、新しくコード作るよりも、既存のコードを修正するほうが圧倒的に多いですよ。
そのとき「複数のスレッドからconやstmtを
アクセスできるようにする必要はないし、むしろアクセスできるとマズい。
わざわざインスタンス変数にしたり、さらにそれが同時にアクセスされない
ようにロックするのは、無意味にプログラムを複雑にしている」

のようなコードの保守を任されたとき、あなたの能書きではどうやって解決するんですか?
他人のコードのケチつけるだけで、結局あたなは何も出来ない無能ってことを隠してるだけでしょw
566デフォルトの名無しさん:2009/01/05(月) 04:29:27
選択肢1: 技術屋としての誇りを持って、正しく動作するように書き直す
選択肢2: どうせ分かりやしない、保守してる素振りを見せて工賃を頂く

大概、1は報われない。むしろ無能呼ばわりされるのが落ち
567デフォルトの名無しさん:2009/01/05(月) 04:30:32
他人のコードなんか直すくらいなら、仕様書みて全部自分で書き直したいよね
568デフォルトの名無しさん:2009/01/05(月) 04:57:28
そういう状況下だと、現状の実装が仕様になってしまっているケースも。
569デフォルトの名無しさん:2009/01/05(月) 05:11:07
>>563みたいのは、「熟練技術者の極意」とかの教本を読みすぎちゃって頭が壊れて狂信になってんだろ。
洗脳されちゃってる分際で一般論がどうとかこうとか書いてあるけど、C++と同じくそれも一つのパラダイム(流行)でしかないのにね・・・
570デフォルトの名無しさん:2009/01/05(月) 05:22:18
>>569
いや、>>563を叩く理由が全然わからないのだが・・・
一般論と言っている部分は至極普通の経験則だし、Connection
をローカル変数にしろという指摘も実際それがバグの原因になる
可能性がある以上、的確以外のなにものでもない。
変な妄想を持ち出す前に、叩くなら内容を叩けよ。
571デフォルトの名無しさん:2009/01/05(月) 05:51:38
>>565
なんか違くね。
> プログラムというのは、新しくコード作るよりも、既存のコードを修正するほうが圧倒的に多いですよ。
というのは、今回の>>544の状況には当てはまらないし、>>550が書いているのは一般論としても
全く問題がない。

というかいつの間に保守コードの話になったんだ? そんな話は微塵も出てこなかったと思うが?
何がお前さんをそこまで反応させるのか分からないが、論点がずれてるよ。
572デフォルトの名無しさん:2009/01/05(月) 07:56:10
まともに動作しないプログラムの不具合の指摘をケチとは恐れ入った。
好みや仕様で看過できるレベルの話ではない、致命的な欠陥なのに。
同時ログインしている他人の他ユーザの情報が読み取られるって
どういうことかわかってるのか?
573デフォルトの名無しさん:2009/01/05(月) 08:24:37
論理的正しさよりも、言い方の問題だと思うよ。
574デフォルトの名無しさん:2009/01/05(月) 08:25:30
そういう奴が大手振ってられるのが、今のIT業界なんだよ。
だからSQLインジェクションとか平気で食らう。
575デフォルトの名無しさん:2009/01/05(月) 09:03:58
コンボボックスの略し方はボボックスでいいですか
576デフォルトの名無しさん:2009/01/05(月) 09:44:38
実行時に使用するjreはどこで指定されているのでしょうか?
現在jre6(update10)とjre5が存在しておりjre6の方を使用したいのです。
環境変数の「Path」、レジストリのキーにJavaが含まれているもの、を全て見てみましたがいずれも6の方が指定されていました。
他にどこで記述されているのでしょうか?
577デフォルトの名無しさん:2009/01/05(月) 10:09:21
>>570-572
1年ぐらい前に孤独のPGが死体バラバラ殺人事件犯したんだよね。確か奴は月で80万以上稼いでたかな。
そいつも同じようなこと言ってキチガイぢみてたけど。
578デフォルトの名無しさん:2009/01/05(月) 11:37:20
>>575
コンボボだろ

ム板の初心者スレだし一般論で何がまずいのか
気に入らない奴はマ板いけよw
579デフォルトの名無しさん:2009/01/05(月) 11:39:47
>>577
派遣か50万ちょっと。つまり普通。
580デフォルトの名無しさん:2009/01/05(月) 11:42:15
既存のコードを修正する場合が多いとしたら、
当然、ちゃんと動かないところは直すだろ。
仕様とか関係ない。仕様も直すよ。
581デフォルトの名無しさん:2009/01/05(月) 16:09:33
javaを始めようと思ってますがテンプレ>>2の**** 開発環境が必要の場合は ****
の3つはどれがお勧めですか?できればどれを使ってるか教えてください。
582デフォルトの名無しさん:2009/01/05(月) 16:35:56
仕様の悪さが極小的な事は稀、ほとんどの場合、全体に及んでいるので、直すなら全体も直す事に成らないか。
結局、新しく作ったほうが早いって場合も多い。せっかくのオブジェクト指向言語で、再利用したくても、設計が悪くては使い回せない。



ところで、下らん質問だが、
クラスのメインメゾットに最初にしか実行しなくていい手順をゴッチャリ書いては駄目な理由ってあるの?
サンプル見てると、コンストラクタ作って、そっちを呼んでるが、再利用する事がない場合にわざわざコンストラクタを作る必要性が理解できない。orz
これを見ろとかでもあったら貼ってくれないか。javaの道は険しくて挫折しそう。orz
583デフォルトの名無しさん:2009/01/05(月) 16:38:39
大抵,読み取り専用でないstatic変数はグローバル変数と同じだから使わない
というようなポリシーがあるから
584デフォルトの名無しさん:2009/01/05(月) 16:44:30
>>582
> 仕様の悪さが極小的な事は稀、ほとんどの場合、全体に及んでいるので、直すなら全体も直す事に成らないか。
極小的?
585デフォルトの名無しさん:2009/01/05(月) 19:17:16
>>582
クラスメソッドを勘違いしてないか?
586デフォルトの名無しさん:2009/01/05(月) 21:20:39
int a = 1<<4;
この"<<"はどういう意味を表しているのでしょうか?
587デフォルトの名無しさん:2009/01/05(月) 21:30:45
くく →九九
つま(ry
588デフォルトの名無しさん:2009/01/05(月) 22:17:45
Javaの論理フォントに対する物理フォント名を一覧表示してくれるツールってないですか?
もしくは↓ここに書いてあるフォント構成ファイルのうちどれが選ばれているのか。
ttp://java.sun.com/javase/ja/6/docs/ja/technotes/guides/intl/fontconfig.html
Linux(ubuntu)で確認したいのですが↑このページの「Linux では、Sun、RedHat、Turbo、SuSE」
…って、ubuntuの場合はどうなるの?
fontconfig.propertiesを書くにしてもどうやって書けばいいのか…orz
589デフォルトの名無しさん:2009/01/05(月) 22:32:06
>>586
ビットシフト
590デフォルトの名無しさん:2009/01/05(月) 23:13:25
 文字型配列を、"OKINAWA"を初期値として宣言し、文字列を
反転させて、"AWANIKO"と出力するプログラムを作りなさい。
591デフォルトの名無しさん:2009/01/05(月) 23:15:22
上のミスだからいいです。
592デフォルトの名無しさん:2009/01/05(月) 23:17:23
ビットシフトってなんのために存在してるの?
593デフォルトの名無しさん:2009/01/05(月) 23:21:02
>>592
論理演算するため
594デフォルトの名無しさん:2009/01/05(月) 23:42:07
>>592
ビットをシフトするため
595デフォルトの名無しさん:2009/01/06(火) 00:09:25
1. a.jarがb.jarにあるinterfaceを使う
2. このinterfaceの引数専用にDTOをつくりたい。DTOはa.jarの他のDTOに依存。
この場合、どっちのjarのパッケージにDTOを含めるのが一般的?相互依存になるのが気持ち悪い。
aとbを同じjarにするのが一番いいんだろうけど、b.jarのクラスはPOJOには作れないから分割してる。
596デフォルトの名無しさん:2009/01/06(火) 00:25:45
>>595
ライブラリの構成間違ってないすか?
597デフォルトの名無しさん:2009/01/06(火) 00:34:27
ワロタw
598デフォルトの名無しさん:2009/01/06(火) 00:36:47
>>596
interfaceをa.jarが提供してb.jarで実装クラスを作る?
やっぱり構成が間違ってる気もします。
c.jarを用意して関連するDTOを全部そこに移した方がいいのかな。。。
599デフォルトの名無しさん:2009/01/06(火) 01:15:56
>interfaceをa.jarが提供してb.jarで実装クラスを作る?
そんな感じだけどb.jarで実装クラス作るんじゃなくてb.jarには抽象クラス郡を収めた方が良いんじゃないかな?
でb.jarをアプリケーション層とかうえの層で使う感じに。

a.jarにDTOのインターフェースを用意してb.jarにその抽象クラスを作る。それを参照するDTOImpl.jarみたいなのがあってもいいかと。

スタック図だとこう?

その上の層
-------
b.jar
-------
a.jar

または

その上の層
---------------
b.jar  │ c.jar
---------------
    a.jar
600デフォルトの名無しさん:2009/01/06(火) 01:40:36
>>599
thx!
b.jarはライブラリというよりは
アプリケーション層という位置づけなのでb.jarで実装クラスかなぁと。
他のjar用にinterfaceだけ用意するのは手法としては一般的なんでしょうか。


>DTOのインターフェース
そういうやり方もあるんですね。DTO=具象クラスという固定観念があり
思いつきませんでした。

>スタック図だとこう?
そのとおりです。

その上の層(warのコントローラとか、バッチとかビジネスロジックのクライアント)
-------
b.jar(ビジネスロジックと関連するDTO)
-------
a.jar(ミドルウェア上だけで動く)


または


その上の層
---------------
b.jar(ビジネスロジック)  │ c.jar(関連するDTO)
---------------
    a.jar
601デフォルトの名無しさん:2009/01/06(火) 02:29:53
たまたま気づいたんだけど、
こんなコードもコンパイルできるみたいだね。

public class Foo {
  ; // 意味のないセミコロン
}
; // 意味のないセミコロン

この言語仕様は何のためにあるの?
C++ を書くときのクセで
クラス宣言の後にセミコロンを付けてしまう人向けとか?
602デフォルトの名無しさん:2009/01/06(火) 04:21:22
式が書けるとこは空でもいいということでしょ。
ダメだったらvoidメソッドの引数が空だったときコンパイルエラーが出てしまうか、
特別扱いしなきゃならん。
603デフォルトの名無しさん:2009/01/06(火) 04:54:29
>>601
JLSによればコンパイル単位は、1個以下のパッケージ宣言、0個以上のインポート宣言、0個以上の型宣言から成っていて、
型宣言は、クラスかインタフェース宣言(ClassOrInterfaceDeclaration)、もしくは、セミコロンということになっている。
だから、セミコロン1個だけが入ったソースファイルもコンパイルエラーにはならない。クラスファイルは生成されないが。
それどころか文法通り空ファイルをコンパイルしても文句は言われない。
クラス宣言の本体についてもセミコロン単独で本体の要素となることが文法で定義されている。
604デフォルトの名無しさん:2009/01/06(火) 14:02:57
第2の2ch作りたいのだが・・・ さんねる 運営人募集

第2の2ch さんねる http://www.3nell.net/

運営人を募集してるぞ!
運営人や管理人がいるIRCに来て直接アピールだ! 
Perl使えます、Java使えます、掲示板持ってます等!

http://irc.nahi.to/  IRC導入の仕方はここ 簡単

Limechat  ツール
http://limechat.net/

サーバ>サーバの追加>接続>設定名とニックネーム適当に入れてOK パスいらない

サーバのプロパティ>チャンネル>新規
チャンネル名に #さんねる-Administrator を全て入れる これだけ あとはサーバ>接続
605デフォルトの名無しさん:2009/01/06(火) 14:09:09
>>604
同人ゲームサークルここだけはやめとけ!85
http://changi.2ch.net/test/read.cgi/2chbook/1226238020/
606デフォルトの名無しさん:2009/01/06(火) 14:34:30
javaで user time, system time を測定するにはどうしたらいいですか。
/usr/bin/time でもいいけど、jvmの起動時間とかを含めたくないので、
コードの範囲を指定して測定する方法があればヒントだけでも教えてください。
607デフォルトの名無しさん:2009/01/06(火) 15:11:30
誤差とか考えると正確に測るのは難しいよ。
スレッドだっていくつも動いてるわけでいろいろな要素を考えなければならない。
やっぱりCとかでネイティブな環境で測ったほうがいいかもしれない。
608デフォルトの名無しさん:2009/01/06(火) 16:41:55
>>606
プロファイリングしたいのなら
テストしたいコードごとに測定コードを書かず
java用の既存のプロファイラを使った方がいいかと
609デフォルトの名無しさん:2009/01/06(火) 17:27:53
>>603
そんな仕様があるとは知らなかった
でも何故そんな仕様に
610デフォルトの名無しさん:2009/01/06(火) 17:39:00
Java5のソースをJava1.4のソースに変換するソフトはありませんか?
611デフォルトの名無しさん:2009/01/06(火) 17:46:12
>>609
さあ?何かの予防的仕様かもしれないし、重要な意味があるのかもしれないし。
配列の宣言で変数名の後に[]を付けても通るのと同じように、
>>601の言うように単に、
> クラス宣言の後にセミコロンを付けてしまう人向け
なのかもしれない。
612デフォルトの名無しさん:2009/01/06(火) 17:55:06
クラス宣言の本体の要素として単独のセミコロンがあるのも、
内部クラスの宣言の後にセミコロンを付けてもいいようにだったりして。
613デフォルトの名無しさん:2009/01/06(火) 18:02:48
import javax.crypto.spec.SecretKeySpec;
import javax.crypto.Cipher;
import javax.crypto.BadPaddingException;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;

(略)


jButton1.addActionListener(new java.awt.event.ActionListener()
{
public void actionPerformed(java.awt.event.ActionEvent evt)
{
jButton1ActionPerformed(evt);
}
});



例外 java.security.InvalidKeyException は報告されません。
スローするにはキャッチまたは、スロー宣言をしなければなりません。
って出るんですけど、どうしたらいいか分かりません。
614デフォルトの名無しさん:2009/01/06(火) 18:32:36
>>613
jButton1ActionPerformed()がInvalidKeyExceptionを投げる可能性があ
るのかな?

もしそうなら、InvalidKeyExceptionが投げられたときにプログラムがど
うするべきかをまず考えるべし。
615デフォルトの名無しさん:2009/01/06(火) 18:38:35
>>614
出来ました!
ありがとうございます
616606:2009/01/06(火) 19:15:03
>>607
>誤差とか考えると正確に測るのは難しいよ。
どこまで正確にはかるかは特に考えていませんが、
すくなくともJVMの起動時間は除外し、かつuser timeとsys timeぐらいはとりたいと思っています。

>スレッドだっていくつも動いてるわけでいろいろな要素を考えなければならない。
測定したいコードはマルチスレッドで動く訳ではないので、今のところスレッドまで考慮する必要はありません。

>>608
>テストしたいコードごとに測定コードを書かず
>java用の既存のプロファイラを使った方がいいかと
プロファイラとかそんな大げさなものを必要としてないんですが。
たんに、
t1 = System.getCurrentTime(); // とかなんとか
...計測したいコード...
t2 = System.getCurrentTime();
System.out.println(t2.userTime() - t1.userTime());
System.out.println(t2.systemTime() - t1.systemTime());
ぐらいのものでいんですけど。
JavaのIDEにはプロファイラがついてるから、JavaのAPIにuser timeやsystem timeを取得するようなものってありますよね。
それを紹介していただきたいのですが。
自分でマニュアルみた限りでは見つからなかったので、ご存知の方がいればお願いします。



617デフォルトの名無しさん:2009/01/06(火) 19:17:20
public IntArray(int ele, int sub){

this.data = new int[ ele ];
Arrays.fill(data, sub);
}

public IntArray(int ele){

this.data = new int[ ele ];
Arrays.fill(data, 0);
}
このような複数のコンストラクタがある場合は
thisの機能で、コンストラクタから別のコンストラクタを参照する場合に使用する。
という機能が使えるようなのですが、どの変でthisを使うのでしょうか?

618デフォルトの名無しさん:2009/01/06(火) 19:25:16
>>617
superと同じくコンストラクタの先頭
619デフォルトの名無しさん:2009/01/06(火) 21:50:58
ウインドウ型について質問です
いかのようなコードを書きました(途中省略)

public void update(Graphics g) {
paint(g);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btn1) buttonSelect = 1;
if (e.getSource() == btn2) buttonSelect = 2;
if (e.getSource() == btn3) buttonSelect = 3;
repaint();
}
public void paint(Graphics g) {
switch (buttonSelect) {
case 1: g.drawLine(10, 10, 20, 20) break;
case 2: g.drawLine(20, 20, 40, 40) break;
case 3: g.drawLine(40, 40, 60, 60) break;
}

これを実行してボタン1、ボタン2、ボタン3を押すと、updateをオーバーライドしたのに、
前に描かれた線が消えて新しい線が描かれます。
何が悪いのでしょうか?教えてくださいm(___)m
620デフォルトの名無しさん:2009/01/06(火) 22:15:49
こんばんは質問させてください。

JDBCとPOIを使用してDBに入っているデータをEXCELファイルに書き出すプログラムを作成しました。

ECLIPSE環境でJVMに1GBのメモリ割り当て
30MBのEXCELファイル作成するプログラムがスレッド起動で2つ同時に動いていたのですが
JARに固めて起動するとアウトオブメモリが起きてしまうのです。

とりあえずGCログを眺めてますが原因がわかりません。

何か原因調査方法がありましたら教えていただけませんか。
よろしくお願いします。
621デフォルトの名無しさん:2009/01/06(火) 22:27:56
>>620
jarのダブルクリックを止めて、コマンドから-Xmxオプションを付けて実行するんだ!
622606:2009/01/06(火) 22:32:54
>>616

あれー反応がない。
Javaではuser time、system timeを取るのって難しいんでしょうか。
623デフォルトの名無しさん:2009/01/06(火) 22:39:40
>>620
または、>>621をマニフェストに書いちゃう。
624デフォルトの名無しさん:2009/01/06(火) 22:44:45
>>621さん
レスありがとうございます。
マニフェストファイルいじってないのでダブルクリック起動はしてないですよー。GCログでもメモリが1024Mになってます。
でもありがとう。私もしょうもない原因な予感がしてまいりました…引き続きお願いします。
625デフォルトの名無しさん:2009/01/06(火) 23:06:02
>>622
ゆーざーたいむとかしすてむたいむとかわけわかんねーが

java 時間

でぐぐれば何ぼでもでてくるやん
626デフォルトの名無しさん:2009/01/06(火) 23:06:35
>>622

実行時間を取りたいってこと?

long stime = new GregorianCalendar().getTimeInMillis();
helloworld();
long etime = new GregorianCalendar().getTimeInMillis();
System.out.println(etime - stime);

こんなんじゃダメですか?
質問の意図が違ってたらごめんね
627デフォルトの名無しさん:2009/01/06(火) 23:08:28
>>609
>>602が答えだと思うんだが、ちがうのか。
メソッド引数の括弧の中は空っぽか式が書けると定義するより、
空っぽのものも式であると定義して除外しない方が自然だと思うんだが。
だから、「(式);」は(式)が空の場合、すなわちセミコロンだけでもOKなんじゃないのかね。
classの外にだって「import〜;」なんか書けるわけだから、
同様にセミコロンのみの空文だってわざわざ排除する必要はないでしょ。
628デフォルトの名無しさん:2009/01/06(火) 23:36:38
メソッド引数の括弧の中の話なんて誰もしていないと思うんだが
それにクラスメンバーにもともと式文はないから
空の式文が書けることがセミコロンをクラスメンバーとしている理由ではない
式や文を書くことがないクラスの外ならなおさらのこと
import宣言やpackage宣言は必ずimport 識別子 ; の形をしているので
セミコロンだけというものはない
> 空っぽのものも式であると定義して除外しない方が自然
だけど、それがクラス宣言の内外に無意味に見えるセミコロンを許している理由ではないと思うよ
セミコロンがパッケージ宣言やインポート宣言にあるとみなされる
;
import java.util.*;
public class Foo {}
はコンパイルエラーになる
629デフォルトの名無しさん:2009/01/06(火) 23:41:21
ttp://www.itmedia.co.jp/enterprise/articles/0407/01/news017.html
ここを参考にGUIで暗号化ソフトを作ってるんですけど、複合が上手くいきません。
ここの例だと入力される文が最初からbyte型なので、
getBytesでフォームのテキストを変換してみるとコンパイルエラーは出なかったんですが、
いざ複合化しようとすると異常終了してしまいます
630デフォルトの名無しさん:2009/01/06(火) 23:42:24
× 必ずimport 識別子 ; の形をしているので
○ 必ずpackageやimportキーワードが付くので
631デフォルトの名無しさん:2009/01/06(火) 23:45:07
>>609 >>628
こんな風に書くためじゃない?

for (int i=0; i < 1000000; i++);//時間稼ぎ
632デフォルトの名無しさん:2009/01/06(火) 23:47:41
>>629
参考元だけ出されても分からない。
どういう風に修正したのかの情報を。
633デフォルトの名無しさん:2009/01/07(水) 00:00:45
>>631
そんな、BASICみたいな事するかよ!
634デフォルトの名無しさん:2009/01/07(水) 00:28:27
>>628
解説サンクス。
それでも式だろうが宣言だろうが
末尾にセミコロンが来るという共通の形を持つ以上
やっぱり仕様の一貫性を求めた結果である気がするけどなぁ。
635デフォルトの名無しさん:2009/01/07(水) 01:50:05
cpui起動os起動時間とかそういうことか?
class java.util.Dateとか、System::currentTimeMillisとかとどう違うか区別出来てないでしょ。
636デフォルトの名無しさん:2009/01/07(水) 01:55:21
timeが例に出てるんだから、
ユーザープロセス処理中に経過した累計時間と
カーネル処理中に経過した累計時間のことじゃないの。
漏れはJavaで取得できるのかはシランが、そんなOS依存ぽいのは取得できないんじゃないか?
637デフォルトの名無しさん:2009/01/07(水) 05:36:13
>>636
そこまで分かってんならAPI嫁。
638デフォルトの名無しさん:2009/01/07(水) 08:26:23
なんでわざわざ時間割かなきゃなんねえのwww
639デフォルトの名無しさん:2009/01/07(水) 09:57:48
>>632
private static String decrypt(String key, byte[] encrypted)
ここの引数を
byte[] encrypted = (jTextArea1.getText()).getBytes();
String key = jTextField1.getText();
にしました
640デフォルトの名無しさん:2009/01/07(水) 11:37:39
Appletで計算させるのに必要な変数がintが2個doubleが4個あります。
double4個の内2個は2者択一なのでchoiceで値をgetさせたいと思っています。
入力画面はできたのですが、手順のあまりの面倒くささにhtmlの入力を使う事に
変更しました。
この渡す変数は全部文字列にして渡して、appletで必要な形に変換するのが
正解ですよね?
641デフォルトの名無しさん:2009/01/07(水) 11:54:33
>>640
それはトップシークレットだ。
642デフォルトの名無しさん:2009/01/07(水) 12:02:05
hibernateとstruts2を使ってjavaのウェブアプリケーションを作ってるのですが、
hibernateやstruts2のようにjarファイルをtomcatに突っ込むだけのフレームワークの場合、
詳細なログはどうやって見るのでしょうか?
専用のログファイルが無いので、tomcatのログに一緒に出てくる簡単なログしか見れません。
643デフォルトの名無しさん:2009/01/07(水) 12:25:55
Javaの勉強を始めたばかりですが、ソースの記述で
疑問があるので、ご教示戴けるとありがたいです。
次のようなソースがある場合、(1)〜(3)はどうなりますでしょうか?

class Klass {
 // (1)↓ここの定義時に null を設定すべきでしょうか?
 //   又はコンストラクタ先頭でやっている
 //   「new OtherClass1()」をここで記述するのは
 //   適切ですか?
 Object obj1;
 public Klass(){
  obj1 = new OtherClass1();
  obj1. anyOperation();
  
  // (2)↓obj1に別クラスのインスタンスを持たせたい場合に、
  //   newする前に obj1 = null などは不要ですか?
  obj1 = new OtherClass2();

  // (3)↓使い終わったobj1は、null設定などでクリアしなくとも
  GCで回収されるという理解でよろしいのでしょうか?
  obj1 = null;
 }
}
644640:2009/01/07(水) 12:28:32
ダメだ。htmlのparamにデータを渡す方法が分からん。
やっぱりjavaに戻ります。
645デフォルトの名無しさん:2009/01/07(水) 12:33:00
>>644
AppletからJavaScript経由でHTMLと
データのやりとりができる。
詳しくはググれ。
646デフォルトの名無しさん:2009/01/07(水) 13:25:59
ググらずともjavadocに載ってるぞ。
647デフォルトの名無しさん:2009/01/07(水) 17:34:10
int型の配列を受け取り、そのコピーを内部的に保持する、というコンストラクタなんですが
配列のディープコピーがしたいのですが、これではシャロコピーなんですよね?
ディープコピーにするにはどう修正したら言いのでしょうか?

public Array( int val[] ){
this(val.length);
for(int rep = 0; rep < val.length; rep++){
data[ rep ] = val[ rep ];
}
}
648デフォルトの名無しさん:2009/01/07(水) 17:41:49
>>647
intにシャローもディープもない。
その処理 or System.arraycopy() でじゅうぶん。
649デフォルトの名無しさん:2009/01/07(水) 17:48:29
>>648
わかりました、ありがとうございます
650デフォルトの名無しさん:2009/01/07(水) 20:35:06
String型のTimeに時刻を表す文字列が入っているとき(下のような感じで)、
String Time = "20081203172500";//2008年12月3日17時25分00秒

この時刻が、「その日の20時以降かどうか」を判定するにはどんなコードを書けばよいでしょうか?
上記の例だと17時25分なのでfalseという感じで。
つまりその日の20時~0時までの間にtrueを返すようにしてほしいです
651デフォルトの名無しさん:2009/01/07(水) 20:38:25
Stringクラスについて質問します
例えば「あ”いうえ”お」
””で囲んだ部分を抽出してくれるメソッドはあるんでしょうか><
652デフォルトの名無しさん:2009/01/07(水) 20:51:19
正規表現
653デフォルトの名無しさん:2009/01/07(水) 20:51:50
splitが楽だろうと思う
654デフォルトの名無しさん:2009/01/07(水) 20:54:57
>>643
(3)null を代入せずに終わると、誰かが Klass クラスを参照している間は GC されないことになる。
655デフォルトの名無しさん:2009/01/07(水) 20:57:14
「いうえ」という文字列を抽出したいのか、
中央の三文字を抽出したいのか、
ニ文字目から四文字目までを抽出したいのか、
また別の条件のつもりなのか、
わかりません><
656デフォルトの名無しさん:2009/01/07(水) 20:57:55
>>643
(2)全く不要。
657デフォルトの名無しさん:2009/01/07(水) 21:02:16
>>643
(1)どれもあり。 行儀の問題として自分でルールを決める。
658デフォルトの名無しさん:2009/01/07(水) 21:13:11
>>655
範囲指定して抽出したということです
string.chusyutu("あいうえお",1,3)
こういう感じで2文字目、3文字目、4文字目を抜けるメソッドはないのですかね^^
659650:2009/01/07(水) 21:13:16
追記です。
String型での判定が複雑な場合GregorianCalendar形式を使ってもOKです
660デフォルトの名無しさん:2009/01/07(水) 21:13:48
>>658
substring
661デフォルトの名無しさん:2009/01/07(水) 21:18:27
>>660
ありがとう!!!!
これは神メソッドだな・・・><
662デフォルトの名無しさん:2009/01/07(水) 21:35:58
>>650
「その日」てのがどの日のことなのか不明だけど、そこは置いといて、
if (Time.charAt(8) == '2') {
// 20時以降
}
で良いんじゃね?
663デフォルトの名無しさん:2009/01/07(水) 21:39:58
>>662
あぁ、この場合そういう手もありますね。。。
20時はあくまで例です、19時の場合もあります。
その日というのは、この場合2008年12月3日のことです。
もちろんTimeの年月日の部分が変わればその日も変わります

そのような場合はどうでしょうか?
664デフォルトの名無しさん:2009/01/07(水) 21:44:04
>>663
ちょうどsubstring()の話題も出ているし、自分で考えてみたら?
桁数固定なら文字列のままでもいいし、4桁の整数だと思ってもいいし、
真面目にCalendarを使ってもいいし。比較対象の「20時」「19時」って
のがどういう形で渡ってくるのかによって最適なコードも変わるだろう
し。
665デフォルトの名無しさん:2009/01/07(水) 22:01:42
>>664
Calendar型ってbefore、afterってあるんでしたっけ?
あるならなんとかできそうなんですが。。。
666デフォルトの名無しさん:2009/01/07(水) 22:10:36
>>665
add()
667650:2009/01/07(水) 22:32:36
>>664
こんな感じで作りました。calendarクラス便利でした、ありがとう

public static boolean JudgeTime(String time){

int year = Integer.parseInt(time.substring(0,4));
int month = Integer.parseInt(time.substring(4,6));
int day = Integer.parseInt(time.substring(6,8));
int hour = Integer.parseInt(time.substring(8,10));
int minute = Integer.parseInt(time.substring(10,12));
int second = Integer.parseInt(time.substring(12,14));

GregorianCalendar gc_now = new GregorianCalendar(year,month-1,day,hour,minute,second);
GregorianCalendar gc_20 = new GregorianCalendar(year,month-1,day,20,00,00);
GregorianCalendar gc_24 = new GregorianCalendar(year,month-1,day,23,59,59);

if(gc_now.after(gc_20) && gc_now.before(gc_24)){
return true;
}else{
return false;
}
}
668デフォルトの名無しさん:2009/01/07(水) 22:47:58
>>650
下6桁を整数にして、200000より大きいかどうか、が単純でいいかも。
669デフォルトの名無しさん:2009/01/07(水) 23:25:24
アマゾンで改訂版がどんどん出てますが
初心者なら旧版でも十分ですよね
670デフォルトの名無しさん:2009/01/07(水) 23:35:14
>>668
今住んでいる国では日付の表記がDDMMYYYYなんだよな〜。
ここの人に日本ではYYYYMMDDだとか言ったら何それ馬鹿じゃない
どう考えても妙だ不自然だ極東の島国はいったい何考えてるんだ、
みたいな感じでコテンパンにコケにされたことがある。
ソートや比較も簡単だろとアピールしても「変」の一点張りだった。
計算機と親和性の高い日本式表記には感謝して良いと思う。
671デフォルトの名無しさん:2009/01/08(木) 00:08:39
そして工夫を覚えない馬鹿が増える
真に豊かな地には文明は栄えない
672デフォルトの名無しさん:2009/01/08(木) 00:23:06
日付け表記の国際規格 ISO 8601 は Y-M-D の順だったりする。
673デフォルトの名無しさん:2009/01/08(木) 00:26:02
細か過ぎるものと大雑把すぎるものは
あまり情報としては役に立たないから
年や秒を後回しに言う、というのは一見利に適っている。
しかし、順番をごちゃごちゃさせるのは機械処理には向かない。
674デフォルトの名無しさん:2009/01/08(木) 00:33:33
>>667
DateFormat formatter = new SimpleDateFormat("yyyyMMddHHmmss");
Calendar c = Calendar.getInstance();
c.steTime(formatter.parse(time));

なんて手もあります。

675デフォルトの名無しさん:2009/01/08(木) 01:16:43
>>672
そこはなんてったってフランス人ですから。国際規格より俺規格。
日付を口に出して読み上げれば<<7 janvier 2009>>なんだから
書くときも07/01/2009に決まっとるだろ、てな感じです。
676デフォルトの名無しさん:2009/01/08(木) 02:59:12
>>675
そこで、石原知事登場か。
677デフォルトの名無しさん:2009/01/08(木) 03:03:18
俺規格が酷いのは日本の方だろw
日本は鎖国ってこと知らんのか?
閉鎖感が嫌な人はどんどん海外に出て行ってしまって、日本の損失だっていわれてるだろ。
678デフォルトの名無しさん:2009/01/08(木) 03:05:15
ドコモとかJALとかNHKとか。
679デフォルトの名無しさん:2009/01/08(木) 03:16:19
>>677
マジレスされるとちょっと辛い。まぁ、日付の話は笑い話です。
今はフランス人も若い人は特に柔軟ですよ。
680デフォルトの名無しさん:2009/01/08(木) 03:58:31
フランス人はどちらかというと個を重要視してるだけだと思うが。
681デフォルトの名無しさん:2009/01/08(木) 04:46:14
フランスというのは、大統領がJPOPを歌ってCDまで発売しちゃてるところだろ。
なにが「個を重要視してる」だ。アホかw
682デフォルトの名無しさん:2009/01/08(木) 07:08:12
質問です。Javaでホームページ上で出来るゲームを作ろうと思ってるんですが持ってるJava入門書のSDKはヴァージョンが古いんです・・・。
最新のは今現在どれなんですかね?
またその本でするからには古いヴァージョンをインストールしたほうがいいんですかね?
教えて下さい┏○ ペコッ
683デフォルトの名無しさん:2009/01/08(木) 08:38:04
┗(^o^)┓  三
┏ ┗ 三
684640:2009/01/08(木) 09:43:06
1/2
皆さん、初心者相手に本当にありがとうございます。
実は今週の月曜から必要に迫られてjavaを触ってますが分からないことばかりでへこたれそうです。
以下のプログラムをググリながらコピー・修正しました。代入の値を確かめるために変数の表示を
させようとprintlnのルーチンを付けましたが表示されません。何が違っているんでしょうか?
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class ChoiceTest3 extends Applet implements ItemListener {
double l , k0;
Choice lChoice, k0Choice;
String [] ls = {"50","1.0E50"};
String [] k0s = {"MATH.PI/6.0","5*MATH.PI/8.0"};
public void init() {
lChoice = new Choice();
k0Choice = new Choice();
for ( int i = 0; i < 2; i++ ) { //Choiceの項目を生成
lChoice.addItem(ls [i]);
k0Choice.addItem(k0s [i]);
}
add(new Label("l")); //ラベルを追加
add(lChoice); //Choiceの項目を追加
add(new Label("k0"));
add(k0Choice);
lChoice.addItemListener(this); //Choiceのイベントのリスナ設定
k0Choice.addItemListener(this);
}
685640:2009/01/08(木) 09:43:57
// 2/2

//Choiceのイベント処理用メソッド
public void itemStateChanged (ItemEvent e) {
if (e.getSource () == lChoice) {
String st1 = lChoice.getSelectedItem();
l = Double.parseDouble(st1); //文字列st1を実数lに変換
System.out.print(l);
} else if (e.getSource () == k0Choice) {
String st2 = k0Choice.getSelectedItem();
k0 = Double.parseDouble(st2);
}
}
public void conf(String args[]){
System.out.println("l == "+ l);
}
}
686デフォルトの名無しさん:2009/01/08(木) 16:08:48
特定のファイル名から特定の文字列を含む・含まないものを検索するプログラムを作っています.
例えば
String ss[] = new String[]{
"C:\aababb.txt",
"C\abbbb.txt",
"C:\bbbba.txt",
}
とあった場合
ファイル名に文字列abを含んで かつ aaを含まないというのを選択したいのですが
これをString#matchの正規表現でやるとどうなるのでしょうか?
.*ab.*でマッチしてかつ.*aa.*とマッチするものをアンマッチにしたいのですが正規表現にこのような記述は不可能でしょうか?
687デフォルトの名無しさん:2009/01/08(木) 16:24:58
無理に一つの正規表現にせず、そのまま二つの正規表現を使って
評価すれば良いのでは。あとはif文等々の中で論理演算。
688デフォルトの名無しさん:2009/01/08(木) 20:53:56
フレームに貼ったパネルのpaint()メソッドが呼ばれない場合があって原因がわからず困ってるんですが・・

class JFrameTest extends JFrame{
public static void main(String[] args){
JFrameTest frame = new JFrameTest();
frame.setSize(600, 400);
frame.setVisible(true);

JPanelTest panel = new JPanelTest();
frame.add(panel);
}
}
class JPanelTest extends JPanel{
public void paint(Graphics g){
g.setColor(Color.BLACK);
Dimension panelSize = this.getSize();
g.fillRect(0, 0, panelSize.width, panelSize.height);
}
}

例えばこのプログラムを実行すると
大抵うまく動いて真っ黒に塗りつぶされたパネルが貼られたフレームが表示されるんですが
4回に1回くらいの割合で黒くならずにデフォルトの色のままのフレームが表示されてしまいます。

上手くいかない場合も例外は全く検出できず
print文入れてトレースしてみるとpaint()メソッドが全く呼ばれてません
ならば自分でパネルのrepaint()を呼び出せばpaint()呼んでくれるかなと思ったんですダメでした

何が原因か解る方教えてください
使ってるのはJDK1.5です
689デフォルトの名無しさん:2009/01/08(木) 21:22:14
>>686
String#contains("ab")は?
690デフォルトの名無しさん:2009/01/08(木) 21:43:39
日本式表記というなら元号表記だろう。1300年の伝統がある天皇陛下敬えよ。
H21/01/07だよ。
691デフォルトの名無しさん:2009/01/08(木) 21:46:11
もっと伝統あるだろ・・・
692デフォルトの名無しさん:2009/01/08(木) 22:32:59
今年は皇紀2669年です
693デフォルトの名無しさん:2009/01/08(木) 22:41:28
javadocの文章が変すぎてわかりません。
694デフォルトの名無しさん:2009/01/08(木) 22:55:50
ちゃんと正式名称で書けよ!
今日は神武天皇即位紀元弐千六百六拾九年睦月八日だ。
695デフォルトの名無しさん:2009/01/08(木) 22:57:38
JDK付属のAPIドキュメントは
エスパー向けの文章とか誤訳とかが多すぎる。
696デフォルトの名無しさん:2009/01/08(木) 23:05:16
カフラカナハデ日捌月睦年玖拾陸佰陸阡貳元紀位即皇天武神
697デフォルトの名無しさん:2009/01/09(金) 00:17:16
日本式表記に横書きはない
ちゃんと縦書きにしろよ
難しく考えず一行一文字の縦書きでもいいから
698デフォルトの名無しさん:2009/01/09(金) 00:19:03
あ、すまん
>>696はちゃんとなってるね
>>694とか見て即レスしちまった
699デフォルトの名無しさん:2009/01/09(金) 00:19:27
>>696
その通りだがよく間違えずにタイプ出来たなw
700デフォルトの名無しさん:2009/01/09(金) 00:21:09
>>699
つ StringBuilder#reverse
701デフォルトの名無しさん:2009/01/09(金) 01:05:34
javaで表を作成しそれを出力するプログラムを作りたいのですが、その表の項目が次のような感じになってます

・最上段→左端が空白、その右から1,2,3…10
・最左段→上端が空白、その下からa,b,c…g
この2つは項目名です
二段目から
・2,3段目にテキストファイルから読み込んだ値を入れる
・残りの各段に2、3段目から読み込んだ値をそれぞれの計算式によって計算した値を入れる

わかりにくい説明ですいません
こんな感じの表を作ろうとしたのですが、ググって出てきた「swing」を使えばいいと思ってはみたもののテキストファイル読み込みなどでどうすればいいものかわからなくなってしまいました
702デフォルトの名無しさん:2009/01/09(金) 01:52:34
日本鼻糞男児がいるスレはここですか?
703デフォルトの名無しさん:2009/01/09(金) 02:22:50
西洋化して欧米の仲間入りしたと勘違いしてる黄色い猿が居るスレはここか。



まず読み込みか、GUIかどっちか手を付けたら?

丸投げなら
★★ Java の宿題ここで答えます Part 66 ★★
http://pc11.2ch.net/test/read.cgi/tech/1221652206/l50

swingは
Java低速GUI Swing 8
http://pc11.2ch.net/test/read.cgi/tech/1227234261/l50

読み込みのどこが分からないのか書かないとこのスレは厳しい。
ちゃんとjavaの本読んで読み込み勉強してくれ。
704デフォルトの名無しさん:2009/01/09(金) 10:11:24
>>696
「なかろう」は、歴史的仮名遣いでは「ナカラフ」ではなくて「ナカラウ」と書くのだよ。
705デフォルトの名無しさん:2009/01/09(金) 16:04:23
http://www3.uploda.org/uporg1919462.java.html

すいませんこれってオブジェクト指向を組めてますか?
というかオブジェクト指向ってなんですか?
706デフォルトの名無しさん:2009/01/09(金) 16:07:01
Java5(1.5)のソースをJava1.4のソースに変換する方法はないでしょうか?
707デフォルトの名無しさん:2009/01/09(金) 16:13:22
>>705
★★ Java の宿題ここで答えます Part 66 ★★
http://pc11.2ch.net/test/read.cgi/tech/1221652206/816
708643:2009/01/09(金) 16:17:50
>>654>>656>>657
ありがとうございました。
709デフォルトの名無しさん:2009/01/09(金) 17:59:06
キーボード入力で
日本語入力できなくなった
710デフォルトの名無しさん:2009/01/09(金) 18:01:50
無変換キー押せw
711デフォルトの名無しさん:2009/01/09(金) 18:11:39
JCPadのDOS画面で何を押しても日本語が入力できない
712デフォルトの名無しさん:2009/01/09(金) 18:32:36
Alt+全角キー押せ
713711:2009/01/09(金) 18:46:31
神ktkr
714デフォルトの名無しさん:2009/01/09(金) 19:01:05
javaFXスレが見つからないのですがここでいいですか?
715デフォルトの名無しさん:2009/01/09(金) 19:34:48
swingすれかな。
716デフォルトの名無しさん:2009/01/09(金) 21:45:42
クラス名に漢字や全角文字の名前をつけたとき、プラットホームが変わっても無問題ですか?
717デフォルトの名無しさん:2009/01/09(金) 22:18:44
>>716
問題ない。けど嫌われる。」
718デフォルトの名無しさん:2009/01/09(金) 22:39:29
>>717
ありがとう。英語の呼び名が無いものばかりなんでしょうがないのです。
ローマ字にすると、今度はそれを使う人々から嫌われそうだし、自分でもわかりにくくなるので。
719デフォルトの名無しさん:2009/01/09(金) 22:48:54
Javadocコメントではどうかしらね
720デフォルトの名無しさん:2009/01/10(土) 01:43:09
jarにしてれば非ASCIIでもちゃんと動くんだっけ?
長年Javaを触ってるけど、非ASCIIのクラス名なんていかにもトラブルが
起きそうで避けてた。
721デフォルトの名無しさん:2009/01/10(土) 02:25:52
javaまるっきりの初心者なんですが質問させてください。
昨日まではきちんと動いてたんですが、今日コンパイルしようとしたら
”Error occured dureing initilization of VM
java/lang/NoClassDefFoundError: java/lang/Object"
と出ました。
何のエラーなのか何処でエラーでてるのかさっぱりです。
教えてください。
722デフォルトの名無しさん:2009/01/10(土) 02:27:55
>>721
でたー、なにもしてないのに動かなくなった!!!
もうね、あほかと
723デフォルトの名無しさん:2009/01/10(土) 02:31:15
全角のクラス名が使えるようになってるのは、使って良いってことだと解釈して良いよね。
もし使うとまずいなら、厳格なJavaコンパイラが見逃すとは思えない(という信仰w)
724デフォルトの名無しさん:2009/01/10(土) 02:48:03
問題があったらエクリプスでリファクタリングしてもらえばいいやん

でもcvsにぶち込むときにファイル名に〜があったらコケタw
725デフォルトの名無しさん:2009/01/10(土) 03:01:35
"〜"はUnicode<->SJISのマップが腐ってるみたいで、
"?"(NTFSで使用不可)になることがある
726デフォルトの名無しさん:2009/01/10(土) 03:08:12
>>725
それはJavaのせいじゃない。WAVE DASH問題でぐぐれ。
727デフォルトの名無しさん:2009/01/10(土) 06:51:10
eclipseで故意に例外をキャッチするコードなんですが
public static void main(String[] args){

java.util.Scanner sc=new java.util.Scanner(System.in);
System.out.println(sc.nextInt());


try{
System.out.println(gs[sc.nextInt()]);

}
catch(java.util.InputMismatchException e){
System.out.println("例外発生:"+e);
}

finally{
System.out.println("処理終了");


}

これを実行してもきちんと例外をcatchしてくれず投げっぱなしのままなんです
どこが問題なのでしょうか?
728デフォルトの名無しさん:2009/01/10(土) 11:54:12
コマンドライン引数の処理って、何を使われていますか?
自作?
729デフォルトの名無しさん:2009/01/10(土) 12:59:03
>>728
自作する必要もない

>>727
キャッチする例外間違えてたりしない?
730デフォルトの名無しさん:2009/01/10(土) 13:01:10
>>728
C的にハードコーディングしちゃうのが多いと思う
731デフォルトの名無しさん:2009/01/10(土) 13:22:42
javaからバッチ呼び出すとき、バッチが終了するのを待つため、waitForを
使っていますが、永久待ちになるケースがあります。
・log4jを使用すると永久待ち。
・log4jを使用しないと5秒待ち。
Test.javaからtest2.batを呼び出しています。

このような現象をご存知でしたら、お教えください。
732731つづき:2009/01/10(土) 13:23:33
■Test.java
public class Test {
public static void main(String[] args) throws Exception {
Process p = Runtime.getRuntime().exec("test2.batのパス");
p.waitFor();
}
}

■Test2.java
import org.apache.log4j.Logger;
public class Test2 {
private static final Logger logger = Logger.getLogger(Test2.class);
public synchronized static void main(String[] args) {
try {
Test2.class.wait(5000);
// log4jの機能をつかってみる
logger.isDebugEnabled();
} catch (Exception e) {
e.printStackTrace();
}
}
}

■test2.bat
cd "パス"
set cp=lib/log4j-1.2.9.jar;
java -cp %cp% -Dlog4j.configuration=log4j2.xml Test2
exit
733デフォルトの名無しさん:2009/01/10(土) 16:27:55
>>727
Scanner#nextIntはInputMismatchExceptionだけでなく、
NoSuchElementExceptionやIllegalStateExceptionを投げる可能性がある。
どれもRuntimeExceptionなので捕捉コードを書かなくてもコンパイラは通す。
NoSuchElementExceptionはInputMismatchExceptionのスーパークラスなので、
catchする順番を間違えるとコンパイルエラー。
細かな区別は不要で可能性のある実行時例外を捕捉するだけなら、
NoSuchElementExceptionとIllegalStateExceptionをcatchすれば
APIドキュメント上の例外は網羅できると思う。
大雑把にはRuntimeExceptionをcatchしても別にいいけど。
734デフォルトの名無しさん:2009/01/10(土) 16:40:24
配列にもアクセスしてるからArrayIndexOutOfBoundsExceptionが投げられる可能性もある
って書こうとしたがキャッチしていない実行時例外が発生したら
普通投げっぱなしでどこかへ消えるってことはないよね
それとも投げっぱなしというのはcatch節を実行してくれずに例外を吐くだけって意味かな
735デフォルトの名無しさん:2009/01/10(土) 17:30:32
public class Pet{
String name;
public void setName(String name){
this.name=name;
}
public String getName(){
return name;
}
public String cry(){
return name;
}

public class Dog extends Pet{
public Dog (String name);
}
public String cry(){
return "わん わん"
}
}
}

public class PetTest{
public static void main(String[] args){
Pet pet = new Dog("ポチ");

System.out.println(pet.getName()+"が鳴きます。");
}
}

継承のところなんですがなぜ"わんわん"と表示されるのかが分かりません。
いつDogクラスのcryを読み込んでいるのですか?
736デフォルトの名無しさん:2009/01/10(土) 17:41:00
>>735
全然、コンパイルできない
737デフォルトの名無しさん:2009/01/10(土) 18:17:59
>>736
すみません、なんだかコンストラクタが全くわかってなかったみたいで
>>735は忘れてください、メチャクチャなソースでした
738デフォルトの名無しさん:2009/01/11(日) 00:44:20
JFrame上のJTableでハードディスク上にあるファイルの一覧を表示して,
その一覧から特定のファイルをWindowsnのエクスプローラにD&Dすると
エクスプローラ上に指定したファイルが生成されるというプログラム作っているんだけど
JTableからエクスプローラにD&Dでファイル生成する方法が分かりません.
D&D先のエクスプローラのパスさえ分かれば何とかなりそうなんですが,可能でしょうか?
739デフォルトの名無しさん:2009/01/11(日) 03:39:25
多分無理



俺が思いつく方法は

1.JTableからドラッグされた時に発生するイベントでテンポラリファイル作成
2.テンポラリファイルをドラッグした事にする
3.エクスプローラにドロップされたら、後はウィンドウズが勝手になんとかする
740デフォルトの名無しさん:2009/01/11(日) 03:41:30
JEditorText を使ってちょっと特殊なプレーンテキストエディタを作ろうとしていますが、
独自のフォーマットのファイルを読み書きしたい場合は
どのように実装するのがセオリーなんでしょうか?
DefaultEditorKit を継承して read/write をオーバーライドするとか?
それとも普通に Document に読み書きするだけでおk?
741デフォルトの名無しさん:2009/01/11(日) 03:54:39
OLEだね。Javaでできるのかな?

このへん
【OLE】オートメーション総合スレ【ActiveX】
http://pc11.2ch.net/test/read.cgi/tech/1137771139/l50
742デフォルトの名無しさん:2009/01/11(日) 07:59:41
すいません。教えて
URL("http://www.abc.co.jp/index.html");
でconnectしたときのSocketの取得はどうやったらいいですか?

socket.setSoTimeout(1000*60);
とかしたいので教えてください。ぐぐってもわからなかったです
743デフォルトの名無しさん:2009/01/11(日) 11:40:22
スーパークラスのコンストラクタは、継承できないという記事を読んだのですが
abstractを付けたクラスも、コンストラクタは継承できないのですか?
744デフォルトの名無しさん:2009/01/11(日) 11:46:11
>>743
スーパークラスのコンストラクタは呼び出せるけど、継承できない。
だからサブクラスの方でコンストラクタ宣言しないと
サブクラスのインスタンスは作れない。
745デフォルトの名無しさん:2009/01/11(日) 12:49:22
サーブレットはプログラマが特別に意識しなくても
多数のクライアントのリクエストを扱えるWebアプリケーションが作れますよね。

これはサーブレットの実装が裏でスレッドセーフにするための処理をしてくれているのでしょうか?
同一のサーブレットオブジェクトが複数のスレッドからアクセスされるためには
裏でどこかでsyncronizedされたメソッドがある、と思ったのですが
ググってもそれらしき情報が無いです。

サーブレットはどのように複数クライアントのリクエストの処理を実現してるのでしょうか?
746デフォルトの名無しさん:2009/01/11(日) 13:41:32
>>745
synchronizedがあったらスレッドセーフ、というわけではない。
スレッド間で共有するデータがなければ同期は不要。

サーブレットの場合、リクエストを処理するメソッドに渡される
HttpServletRequestやHttpServletResponseはスレッド毎に作られ、
他のスレッドと共有することはないので、基本的に同期する必要はない。

例外はHttpSessionで、複数画面を同時に操作していたり、ダブルクリック
してしまったりすると、タイミング次第では同一ユーザからの複数の
リクエストが同時に処理される可能性がある。このような場合には同期が
必要なので、「HttpSessionオブジェクトを対象とする」synchronized
ブロックが必要になる。
747デフォルトの名無しさん:2009/01/11(日) 14:31:01
ある領域内に、ボタンを押すごとにランダムに線を描くコードを描きました
そして、線を描いた後にGUIのウインドウを最小化してから元に戻すと、
また新しく違った線が描画されます。

元描いてあった線をそのまま描画するにはどうすればいいのでしょうか?
アドバイスお願いします
748745:2009/01/11(日) 14:37:04
>>746
丁寧にありがとうございます。
おぉなるほど・・・サーブレット自体にはスレッド個々の情報を持たせていないんですね。

ということは自分で勝手にサーブレットにインスタンスフィールドを作る場合は
synchronizedで扱わないといけないのでしょうか?
仕事でも今まで何の対処もしていませんでしたが(汗)
749745:2009/01/11(日) 14:48:43
ググってみたら、サーブレットにフィールド作るのは普通にタブーなんですね。
う〜ん勉強になりました。
750デフォルトの名無しさん:2009/01/11(日) 15:13:24
>>748
その質問自体についてはyes。
ただし、単にsynchronizedを付ければいいというわけではない。

まず、サーブレットはシングルトンで、各サーブレットクラスの
インスタンスはサーバ全体でそれぞれ1個しかないことに注意。
(SingleThreadModelをimplementsしている場合はその限りではないが、
このインターフェースはServlet API 2.4以降で非推奨となっている)

よって、サーブレットのインスタンスフィールドは、該当サーブレットを
実行する全てのスレッドで共有されてしまう。

だから、サーブレットクラスにインスタンスフィールドがある場合、
データが壊れないよう、各スレッド間での排他制御が必要。

しかし、synchronizedでくくった部分は、ロック対象のオブジェクト
を共有するスレッドが同時に1つしか動かないので、その範囲が広いと
CPUがスカスカなのに性能が出ないという悪夢が待っている。

例えば、doGet()にsynchronizedを付けてしまうと、そのサーブレットは
同時に1スレッドしか実行できないことになる。

よって、本来は、サーブレットにインスタンスフィールドを持たせるのを
原則禁止にして、なるべくsynchronizedしなくて済むよう設計すべき。

先のHttpSessionのように、どうしてもスレッド間で共有しなければならない
オブジェクトが出てくるならば止むを得ないけど。
751デフォルトの名無しさん:2009/01/11(日) 15:25:20
複数ブラウザを起動したら同じPCでも別のセッションになるんでないの?
752デフォルトの名無しさん:2009/01/11(日) 15:25:23
始めたばかりの初心者です。 人様から教えていただいたコードを弄りながら勉強してます。

XMLのデータから
<Creator Role="hogeA">hogehogeA</Creator>
<Creator Role="hogeB">hogehogeB</Creator>
このように属性をつけられたデータがあるのですが このデータから

hogeA=hogehogeA
hogeB=hogehogeB

このように出力を行いたいのですがどのように行えば良いのでしょうか
DOM4Jのインポートは行っています

よろしくお教え下さい
753752:2009/01/11(日) 15:28:08
DOM4Jではなく
dom4jでした すみません
754742:2009/01/11(日) 15:34:18
(;;)  もう来ないよ ぷんぷん
755デフォルトの名無しさん:2009/01/11(日) 15:35:14
>>751
ブラウザ自体を別々に立ち上げたらそうだけど、
例えばIEで「ファイル」→「新規作成」→「ウィンドウ」
なんかで、同一プロセスの新しいウィンドウを開いた場合は
Cookieが共有されるので、同一セッションになる。
あとタブブラウザの異なるタブも同様。Google Chromeはわかんないけど。
756デフォルトの名無しさん:2009/01/11(日) 15:52:44
>>751
ブラウザによってちがう。
757デフォルトの名無しさん:2009/01/11(日) 15:55:59
>>754
ソケットリスナー起動しとけばいいんじゃねーの?

長いことソケット触ってないから忘れてるぜ
758デフォルトの名無しさん:2009/01/11(日) 16:41:54
>>747
オフスクリーンを保存しておくか、
線分の座標を覚えておくか。
759デフォルトの名無しさん:2009/01/11(日) 16:43:35
>>747
最小化からの復帰等でその領域が再描画される時にどう再描画するかはプログラマの責任。
線がどう描かれていたかはその領域は記憶しない。
だから、プログラム側でその情報を保持して、必要に応じてその情報を再描画に利用する。
ボタンを押すイベントが起きたときにどのようにその領域に線を描いているか知らないが、
ボタンを押すイベントが発生した時には線の位置情報を記録して、その領域を再描画させ、
描画のためのメソッドではその位置情報に基づいて線を描画してやるようにするとか、
領域に直接線を描くのではなく、Imageクラスなどの画像を保持するクラスに線を描き、
描画時にはそのImageをその領域に描くとか。
760デフォルトの名無しさん:2009/01/11(日) 16:45:14
>>738
javaプログラム間のDnDは両方制御できるけど、javaから外部プログラムへのDnDはSWT使わないと無理。
761デフォルトの名無しさん:2009/01/11(日) 18:07:33
>>738
java.awt.dnd
java.awt.datatransfer
javax.swing.TransferHandler
762デフォルトの名無しさん:2009/01/11(日) 18:29:49
>639
 ドライブ間をギガ単位ファイルが移動するのでテンポラリを作成するのは難しいです.

>741
OLEやActiveXはよく知りません.Winapiなら(あまりよく分かってないが)少しいじった事があるけど
Winapiで可能でしょうか?たしかJavaでWinapi叩けると聞いたことがあるので.
ネットでみるとエクスプローラからアプリにファイルをD&DのWinapiサンプルは見つかるのですが逆方向が見つかりません.

>761
 Javaアプリのほうからエクスプローラにファイルの転送メッセージは遅れるんだけど
エクスプローラからどこのパスにD&Dしたのかが帰ってこない.
つまり
○ Javaアプリ→(ファイル情報)→エクスプローラ
× エクスプローラ→(ディレクトリ情報)→Javaアプリ
な状態.
763デフォルトの名無しさん:2009/01/11(日) 19:12:17
>>762
一般的なD&Dなら相手がエクスプローラとは限らんのだから
圧縮ソフトに送って圧縮されてたり
サーバに転送されたりメールに添付されたりで
対象ディレクトリが必ずあるわけでもなし。
764デフォルトの名無しさん:2009/01/11(日) 19:29:39
これすごくわかりやすかった
http://www.amazon.co.jp//dp/4839913862/
765デフォルトの名無しさん:2009/01/11(日) 19:30:19
間違えた、これだ
http://www.amazon.co.jp/dp/4839913862/
766デフォルトの名無しさん:2009/01/11(日) 21:20:13
Java 5 で #ifdef みたいなことできますか?
767デフォルトの名無しさん:2009/01/11(日) 21:37:01
_
768デフォルトの名無しさん:2009/01/11(日) 21:50:17
コンパイル前にcppに通すとか?
769デフォルトの名無しさん:2009/01/11(日) 21:59:57
デバッグ用のやつはアノテーションで代用が効く。

環境による分岐とかはそもそも実行中に判断できるようにすべき。
環境ごとに別のパッケージを作成するのはJava的に考えておかしい。
770デフォルトの名無しさん:2009/01/11(日) 22:18:44
プログラム初心者ですが会社で尊敬してる先輩から
Javaから始めたら土方にしかなれないっていわれました。
この発言だけはとりあえず信用してないのですが本当ですか?
771デフォルトの名無しさん:2009/01/11(日) 22:18:55
でも今のjavaのバージョンアップの仕方を見る限り、プリプロセッサが
サポートされるのも近いよな・・・と思う
772デフォルトの名無しさん:2009/01/11(日) 22:22:42
おれは近藤の生き方のほうが好き
773デフォルトの名無しさん:2009/01/11(日) 22:56:30
>>770
「じゃあ何から始めたらいいですか?」という質問の返答如何。
Cとか特定の言語を上げたら、同じことだと言ってやれ。
「そもそも言語を何から始めるとかいう概念がおかしい」とか言いはじめたら
俺的に面白い先輩認定。
774デフォルトの名無しさん:2009/01/11(日) 23:14:29
プログラムが趣味ならどうとでもなる。
日常的に新しい言語を覚えることね。
775デフォルトの名無しさん:2009/01/11(日) 23:18:22
Cから初めて今java+C#やってるけど、PHPとかは好きになれないなぁ
776デフォルトの名無しさん:2009/01/12(月) 01:13:24
俺は20過ぎてからjavaから入ったけど
ある程度経てばスタートはどの言語でも関係ない
その後の勉強量次第
どんなに頑張っても幼少時代からプログラム触ってた奴や大学院まで出てる奴とかには
追いつけない部分があるのは実感するけどね。
777デフォルトの名無しさん:2009/01/12(月) 05:25:45
言語を扱うのが得意な人は、別に幼少時から
プログラミング言語を触っていたり、大学院を
出ている訳じゃなくて、最初から、ごく
当たり前のように普通に使うと思う。
778デフォルトの名無しさん:2009/01/12(月) 06:10:54
>>777
それはない
779デフォルトの名無しさん:2009/01/12(月) 12:06:52
院ぐらい行きたきゃ今からでも行けば良いじゃん、2年だし
780デフォルトの名無しさん:2009/01/12(月) 16:32:44
一部のマイナーなやつをのぞいて、プログラミング言語はどれでも似たようなもんじゃないの。
方言に慣れるのと大差ないつーか。最初におぼえるのが一番大変だけどあとは似たようなもの。

高等数学が必要なプログラムはその数学を理解しないと絶対作れないし、
その他業務用のソフトも、業務の知識を知らないと作れなくて、
そういう勉強をやらないと土方にしかなれない。
781デフォルトの名無しさん:2009/01/12(月) 17:49:42
ウェブページでログインボタンを押したときに常駐しているアプリケーションで入力したIDやpassを取得したいのですがどうすればいいのでしょうか?
782デフォルトの名無しさん:2009/01/12(月) 18:02:14
ラジオボタンの横の文字に色を着けるときってどうすればいい?
783デフォルトの名無しさん:2009/01/12(月) 18:13:42
>>781
キーロガーでも仕掛けたら?
784デフォルトの名無しさん:2009/01/12(月) 19:09:34
AbstractSequentialListを用いて線形リストを実装しようとしているのですが、
addで要素を追加した線形リスト"list"に対して、Collections.sort(list);
を実行した場合、どのような処理が行われているんでしょうか?

nextやsetメソッドを実装しない場合、ここでエラーがでるので…
Collections.sortがどのようにメソッドを呼び出しているか知りたいのです
785デフォルトの名無しさん:2009/01/12(月) 19:27:11
>>784
Collectionsのソース読めばいい。
786デフォルトの名無しさん:2009/01/12(月) 19:29:56
SJC−Pの試験日程って随時?
随時ってことは俺がやるよって言ったらあっちがよーいどんをしてくれるってワケかい?
787デフォルトの名無しさん:2009/01/12(月) 19:32:52
サーセン
786ですが自己解決しますた
http://www.sanryu.net/sjcp/
788デフォルトの名無しさん:2009/01/12(月) 20:08:47
>>785
初歩的な質問で申し訳ないですが、ソースはどこで確認できるのでしょうか
API仕様にはソースまでは載っていなかったので困っていました
789デフォルトの名無しさん:2009/01/12(月) 20:20:50
JDK ソース

でぐぐればいいやん
790デフォルトの名無しさん:2009/01/12(月) 20:41:44
>>789
どうも有り難うございます!
791デフォルトの名無しさん:2009/01/12(月) 22:49:53
Javaの勉強をしようと思い以下をインストールしTocatを起動させた後に

・ apache-tomcat-5.5.27.exe
・ j2sdk-1_4_2_19-windows-i586-p.exe

http://localhost:8080/

にアクセスすると次のエラーが出てしまいます。一体何が悪いのでしょうか?
Unable to open http://localhost:8080/ Cannot locate the Internet server or proxy server.

1※実は現在自宅サーバ(Windows XP / php5 / mysql)を運用しています。
2※タスクバーの右下にはapacheのアイコンが2つ出ています。(php用+Java用)

【PHPコードの配置階層】
  C:\Program Files\Apache Software Foundation\Apache2.2\htdocs

【OS】
  Windows XP

【環境変数】
CATALINA_HOME
  C:\Program Files\Apache Software Foundation\Tomcat 5.5
PATH
  C:\j2sdk1.4.2_19
JAVA_HOME
  C:\j2sdk1.4.2_19

792デフォルトの名無しさん:2009/01/12(月) 22:54:54
>>791
Javaの問題じゃない気がするし、もしそうならソースが悪いんだろ
793791:2009/01/12(月) 23:00:34
>>791
実は、以前に全く同じ操作(Javaの設定)を行った事があるのですがその時には問題無く
猫のページが正常に表示されテスト用のJSPページは起動しました。

794デフォルトの名無しさん:2009/01/12(月) 23:06:30
windowsの右下の小窓的なところにjavaのアイコンが突然現れました。
最近javaを起動させた記憶も無く、なぜ出てきたか不明です。
アップデート的な何かなのかと思ってクリックしてもバージョンが表示されるだけで何も起きません。

重くなるのが嫌なので何も無いなら閉じたいのですがこれはどうしたらいいんですか?
あと、出てきた原因は何でしょう?
よろしくお願いいたします。

左下のjavaのアイコンを
・左でダブルクリックすると
 java platform standard edition6
 バージョン6 アップデート7
という小窓が出てきて

・右クリックすると
 javaテクノロジについて
 java.comにアクセス
 コントロールパネルを開く
 コンソール
というメニューが出てきます。
 
795デフォルトの名無しさん:2009/01/12(月) 23:09:36
超低レベルで申し訳ないが、
JAVAで書いたテトリスとかのゲームは
どうやって表示されてるんだ??
796デフォルトの名無しさん:2009/01/12(月) 23:10:59
Java の機能で表示されています
797デフォルトの名無しさん:2009/01/12(月) 23:12:16
プログラムを書いてコンパイルしたら自動的にどっかに
表示されるもんなのか?
798デフォルトの名無しさん:2009/01/12(月) 23:13:55
実行しないと表示されません
799デフォルトの名無しさん:2009/01/12(月) 23:14:22
>>797
え?
800デフォルトの名無しさん:2009/01/12(月) 23:14:30
実行したらどこに表示されるんだぜ・・・
801デフォルトの名無しさん:2009/01/12(月) 23:15:36
>>797
自動的には表示されない。
表示されるように(Swing等のライブラリを使って)
プログラムを書く必要がある。
802デフォルトの名無しさん:2009/01/12(月) 23:17:19
ウィンドウに表示されます
803デフォルトの名無しさん:2009/01/12(月) 23:18:04
GUIってやつですか
CUIでも視覚的に表示できるのか?
804デフォルトの名無しさん:2009/01/12(月) 23:18:57
>>800
コマンドプロンプトに表示されるだろ
805デフォルトの名無しさん:2009/01/12(月) 23:19:19
>>803
???
806デフォルトの名無しさん:2009/01/12(月) 23:19:48
>>803
昔は文字で何とかしてたもんだ。
807デフォルトの名無しさん:2009/01/12(月) 23:20:12
>>797
システム.アウト.プリント

って奴を使ったならコンソールに出てくるな
808デフォルトの名無しさん:2009/01/12(月) 23:23:19
SDKを使って簡単なゲームを作ろうと思ったんだが、
プログラムを書いて実行した後に、作ったプログラムが
どこに表示されるのかわからなかったもんで・・・

わかりにくくてスマソ
809デフォルトの名無しさん:2009/01/12(月) 23:24:36
>>808
本買って”Hello,World”からやったほうがいいのでは?
810デフォルトの名無しさん:2009/01/12(月) 23:25:31
すみませんが教えてください

XMLの属性値を指定して値を取り出したいのですがやり方がわかりません

<A B="1">hoge1</A>
<A B="2">hoge2</A>

このとき属性Bの値が 1 の物の hoge1 の値を取り出したいのですが
どのように行えば出来るのでしょうか

よろしくお願いします
811デフォルトの名無しさん:2009/01/12(月) 23:26:17
初心者向けの本とかHPを見て今勉強してる
機械音痴でこんな次元でつまずきましたorz
812791:2009/01/12(月) 23:26:52
マジで参った。。。
もう一台のノートPCに同一の事を行って試してみる。
813デフォルトの名無しさん:2009/01/12(月) 23:29:45
>>812
そもそも、tomcatのプロセスは立っているのか?
814デフォルトの名無しさん:2009/01/12(月) 23:34:29
>>812
8080ポートを別の何かか使ってたり、セキュリティソフトが塞いでるんじゃね?
815デフォルトの名無しさん:2009/01/12(月) 23:35:13
>>808
実行結果を出力するためには、どこに出力するかを明示的にプログラム
として記述する必要がある。勝手にどこかに出力されることはありえない。

例えば、プログラム中に「Sytem.out.println("Hello");」と記述していれば、
コマンドプロンプトで実行すると、コマンドプロンプトのウィンドウ中に
に「Hello」と表示される。

コマンドプロンプトは文字を垂れ流すことしかできないので、テトリス
みたいなことをしたければGUIアプリケーションの書き方を覚える必要がある。
816デフォルトの名無しさん:2009/01/12(月) 23:45:01
>>815
なるほど
CUIでも文字の垂れ流しになる?
817デフォルトの名無しさん:2009/01/12(月) 23:50:54
>>816
CUIは環境依存だからJava向けじゃない。
3rdパーティのライブラリはあるかもしれんけど、
前探したときにはあまり使えそうなもんがなかった。
818デフォルトの名無しさん:2009/01/12(月) 23:52:33
>>817
Turtleってのはどうなんだろうか?
819812:2009/01/13(火) 00:01:23
>>813
右下のApache TomcatはStartを押したら実行状態のアイコンに切り替わりますが、
http://localhost:8080/
と入れると中止状態のアイコンに切り替わってしまいます。

>>814
netstat -a
を実行してみても 8080 は特に何も使用されていませんでした。

因みに自宅サーバ化していないまっさらなノートPCで同じ操作を行ってみましたが
表示されるエラーメッセージも全く同じでした。

という事は、J2SDK + Tomcatの組み合わせに問題がありそうです。
820デフォルトの名無しさん:2009/01/13(火) 00:10:44
>>819
うちじゃ何の問題もなく動いてる。
Apache Tomcat 6.0.18 + JDK 6.0u11
zipを展開してコマンドラインで起動/停止してるけど。
インストールディレクトリの下のlogsディレクトリに何か出てるんじゃない?

あるいはウィルス対策関連のソフトにブロックされてるか。
821820:2009/01/13(火) 00:16:15
って、まて、Tomcat 5.5 に JDK 1.4.2 かよ!! そりゃ素じゃ動かんわ。
1.4対応のパッケージ使うか、JDKのバージョンを上げろ。
ttp://ftp.kddilabs.jp/infosystems/apache/tomcat/tomcat-5/v5.5.27/README.html
822デフォルトの名無しさん:2009/01/13(火) 00:48:48
>>821
Tomcat5.5と組み合わせて使用する為にJ2SDKの最新版を
次のHPよりダウンロードしたのですが、このバージョンだとダメなのですか?

http://java.sun.com/j2se/1.4.2/ja/download.html
823820:2009/01/13(火) 01:03:05
>>822
Tomcat5.5はJava5.0以降じゃないと動かない。(1.4互換パッケージを使えば1.4.2でも動くが)
>>821で挙げたリンク先にもわざわざ赤文字で書いてあるのに読んでないのか?
> Tomcat 5.5 requires JRE 5.0 by default.

J2SDKはJDK(Java SE Development Kit)に名前が変わって、最新版は6.0update11だ。
ttp://java.sun.com/javase/ja/6/download.html

あと、自分で挙げたリンク先の最初にある文章ちゃんと読んだか?
> J2SE 1.4.2 は、2008 年 10 月 30 日をもってサービス終了
> (EOSL: End of Service Life) となりました。
って書いてあるぞ。要するに「もう使うな」ってこと。
824822:2009/01/13(火) 01:27:53
>>823
お陰様で猫のマークがページに表示されました!!
本当にありがとうございました!!
825デフォルトの名無しさん:2009/01/13(火) 02:33:28
javaの初歩の初歩っぽいことで失礼なのですが、
String型の配列の中身を参照・比較する方法ってあるんでしょうか?
equalsを使って逐一調べてるのが大変で・・・。

よろしくお願いします。
826デフォルトの名無しさん:2009/01/13(火) 02:34:22
>>825
equalメソッド使うの面倒ってどんだけめんどくさがりだよ
827デフォルトの名無しさん:2009/01/13(火) 02:38:59
人工無 能みたいなものを作ってまして。
プログラム内に直接Stringを目いっぱい打ち込んでるんですけど
これらすべてにequal使うとプログラムが長くなって…。

やはり出来ませんかね?
828デフォルトの名無しさん:2009/01/13(火) 02:50:18
>>827
一回変数に入れろよ
まさか
String test = "aaa"

if(test.equals("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"))

とかやってんじゃないだろうな?
829デフォルトの名無しさん:2009/01/13(火) 03:06:29
それはさすがにしてないです。
String a=○○;
String b=××;
String c=■■;

if(a.equals(○○)){}
if(b.equals(○○)){}


のようなのばかりで、もっと効率よくできないかと思ったので。
やっぱり変数にいれるのがいいんですかね。うう。
830デフォルトの名無しさん:2009/01/13(火) 03:09:01
>>829
if文の中の○○aにするしかないだろ
1個目のif文は冗長だが。
831デフォルトの名無しさん:2009/01/13(火) 03:14:09
えと、それってやっぱひとつづつ
比較しなくちゃいけないってことですか?


832デフォルトの名無しさん:2009/01/13(火) 03:21:18
いやいや、その例はあくまで例だろ?どうしようもないがな

やるなら
if(a.equals(a)){

}else if(b.equals(a)){

}

くらいだろ
833デフォルトの名無しさん:2009/01/13(火) 03:26:37
ああ!なるほど!
aで比べ合えばいいんですね
834デフォルトの名無しさん:2009/01/13(火) 03:30:19
って>>282で言っておるだろ・・
835デフォルトの名無しさん:2009/01/13(火) 03:31:11
>>282じゃねぇ>>828
836デフォルトの名無しさん:2009/01/13(火) 03:33:54
すいません。
一例がないと分からないくらい鈍いんです。
でも、>>832はホント分かりやすかったです。
有難うございます。
837デフォルトの名無しさん:2009/01/13(火) 03:56:58
.do
でアクセスするのと
.jsp
でアクセスする場合の
違いについて詳しく解説しているサイトがあれば教えて下さい。
838デフォルトの名無しさん:2009/01/13(火) 07:43:08
どのサイト、どの書籍を読んで満足できなかったのか書いてくれないと
どの程度の詳しさを求めてるのかわかりません
839デフォルトの名無しさん:2009/01/13(火) 08:07:28
javaの話じゃないがする。


こことか
くだらねぇ質問はここで@自宅鯖 37台目
http://pc11.2ch.net/test/read.cgi/mysv/1229512444/l50

Apache統合スレ 9 (HTTPServer以外も含む)
http://pc11.2ch.net/test/read.cgi/mysv/1219482693/l50

【Windows】サーバーソフト2【FTPD・HTTPD】
http://pc11.2ch.net/test/read.cgi/mysv/1067150049/l50

【IIS】Internet Information Services 総合スレ2
http://pc11.2ch.net/test/read.cgi/mysv/1118420314/l50
840デフォルトの名無しさん:2009/01/13(火) 11:54:03
EclipseでVisual Studio みたいなWEBデザイン画面(マウスでドラッグ & ドロップで画面のデザイン)
を利用する事は出来ないのでしょうか?
841デフォルトの名無しさん:2009/01/13(火) 12:59:48
ぐぐって色々探してみたところ、次のHTML EDITORのプラグインをダウンロードし、
htmlファイルを開いた状態でパレット内にあるアイコンをクリックしてもドラッグしても
エディタ内にコントロールの雛形のコードが生成されません。
なぜコードが自動生成されないのでしょうか?

tk.eclipse.plugin.htmleditor_2.0.6.1.jar
842デフォルトの名無しさん:2009/01/13(火) 14:54:32
JSPやサーブレット自体は、テキストエディタに直接コードを記述した上でコマンドラインからコンパイル
をする事により、WEBシステムを構築する事は出来る様になったのですが、
どうも、IDEとして世間一般で使用されているであろう、Eclipseを使うと環境面で奇怪
なエラーが出たり等でいまいちIDEの良さが分かりません。
起動もあり得ない位遅いですし。

そこでEclipseを利用する事によるメリットを教えて下さい。

※EclipseもVisual Studio位の使い勝手が良ければJava開発でもEclipseを使いたいと
思ってますが(普通に考えればIDEを使った方が格段に生産性が高くなるハズなので)
、まだ触り始めという事もありますがEclipseの良さがいまいち分かりません。
843デフォルトの名無しさん:2009/01/13(火) 15:00:43
Eclipseスレできいたらどうかな
844デフォルトの名無しさん:2009/01/13(火) 16:24:11
>>840
NetBeansの方が向いてるかもね。こんな感じ。
ttp://www.netbeans.org/kb/60/web/intro.html
845デフォルトの名無しさん:2009/01/13(火) 16:35:52
同じ人かな?

>>841
今試したけど、ドラッグ&ドロップじゃなくってクリックでできたよ。

>>842
・奇怪なエラー → 詳細プリーズ
・起動が重い → 我慢しる。ちなみにメモリは1GB必須ね。

正直Eclipseは、導入設定ですることが多くて、
一見さんお断りみたいなところがあるね。
Javaエディタの使い勝手は最高なんだが。

Eclipseでだめだった人は、NetBeansの方がなじめるかもしれない。
846デフォルトの名無しさん:2009/01/13(火) 19:29:31
すいません質問です。
javaの経験が浅いのであまり詳しくないのですがNetBeansでADVゲームを作成してます。
文章を表示させる部分(メッセージウインドウ)がうまく表示させることができません。
個人的にはNscripterのような表示ができればうれしいのですが、どのようにすれば表示できるのでしょうか?
847デフォルトの名無しさん:2009/01/13(火) 20:31:10
葵たんに聞け♪
848デフォルトの名無しさん:2009/01/13(火) 21:06:38
>>846
java関係ないだろ。
849デフォルトの名無しさん:2009/01/13(火) 21:47:35
プログラムの人は何でいっぱい色んな種類の作ったり、使ったり出来るのですか。
すごすぎてすごいんですけど。
今思いついただけでも、正規表現とjavascriptとperl/PHP/Delphi/C/C++/Eclipse
他にもいっぱいあるじゃないですか。
全部理解できますか?出来てる人いますか?
それはもうCSSすら、それ以前にタグとかあなたたちは一体どういうすごいです。
850デフォルトの名無しさん:2009/01/13(火) 21:55:28
interfaceとabstractについて質問
abstractは一部を作って、後はサブクラスでやってくださいよ
interfaceはシグチャだけ決めてあげるから、後はかってにやれ
って、イメージでおk?
851デフォルトの名無しさん:2009/01/13(火) 22:09:46
>>850
アブストラクトもインターフェースもコンドームみたいなもんだ
852デフォルトの名無しさん:2009/01/13(火) 22:10:03
>>850
abstractは、主な実装は面倒見てやるから必要なとこだけお前が書け、
ってイメージ。電子工作キットの配線済み基板?

interfaceは、interfaceを要求する側(引数にinterfaceを書いてある
メソッドとか)が、実装はどうでもいいからこのAPIが揃ってるオブジェクト
よこせ、ってやるために使うイメージ。USBのコネクタとか。
853デフォルトの名無しさん:2009/01/13(火) 22:11:23
>>851-852
なるほど、わかったよ
ありがとう
854デフォルトの名無しさん:2009/01/13(火) 22:37:17
質問です。
SystemTrayを使って常駐させるプログラムを作っています。
JFrameで作ったフレームを「×」で終了させずそのままシステムトレイに常駐させ、
そこからアイコンクリックで「終了」を選択し終了、また「開く」を選択で
フレームを開くというプログラムを目指しています。
現在システムトレイに常駐させ、アイコンをクリックし終了させるところまではできたのですが、
もう一度フレームを開く処理が上手くいきません。

「×」の処理はframe.setDefaultCloseOperation(HIDE_ON_CLOSE);で非表示にするようにしました。
また、クラスはmainのクラスとSystemTrayのクラスに分けて作っています。
SystemTrayのクラスからmainのクラスへ最初からプログラムを始めるようにしたいのですが、
コンパイルしエラーはでないものの、アイコンからまたフレームが開けません。
アドバイスなどお願いします!
855デフォルトの名無しさん:2009/01/13(火) 23:03:45
>アイコンをクリックし終了させる
終了処理したならmainスレッド終わってんじゃないの?
自分の書いたコードをよく嫁
856デフォルトの名無しさん:2009/01/13(火) 23:14:33
>>855
すいません、書き方が悪かったです。
アイコンを右クリックすることで「開く」と「終了」を表示させているんですが、
「終了」をクリックしてシステムトレイからアイコンを消しプログラムを終了することはできたんです。
逆に「終了」を選択せず常駐させているアイコンから「開く」を押して元出していたフレームを
表示させたいんですが、フレームの設定をしているmainに戻るように設定しても
フレームが表示されずつまずいています。

今クラスを分けているのがダメなのかといろいろ試行錯誤していますが、まだ解決できないでいます・・・。

857デフォルトの名無しさん:2009/01/13(火) 23:30:14
frame.setVisible(true)
858854:2009/01/14(水) 00:00:00
お騒がせしました。
同じクラス内に入れて設定をいじってみたら「開く」で元のフレームを表示することができました。
もう一度アクションリスナでフレームについて設定を入れていなかったのが悪かったみたいです。
ありがとうございました。
859デフォルトの名無しさん:2009/01/14(水) 00:17:33
windowsの右下の小窓的なところにjavaのアイコンが突然現れました。
最近javaを起動させた記憶も無く、なぜ出てきたか不明です。
アップデート的な何かなのかと思ってクリックしてもバージョンが表示されるだけで何も起きません。

重くなるのが嫌なので何も無いなら閉じたいのですがこれはどうしたらいいんですか?
あと、出てきた原因は何でしょう?
よろしくお願いいたします。

左下のjavaのアイコンを
・左でダブルクリックすると
 java platform standard edition6
 バージョン6 アップデート7
という小窓が出てきて

・右クリックすると
 javaテクノロジについて
 java.comにアクセス
 コントロールパネルを開く
 コンソール
というメニューが出てきます。
 


860デフォルトの名無しさん:2009/01/14(水) 01:31:55
JSPを学習する為にEclipseを起動しプロジェクトを作成しようと思っているのですが、次の操作の後どのプロジェクト
を作成すればよいのでしょうか?Eclipse上の実行ボタンを押した時にブラウザが起動しJSPで定義したページが正常
に動作する確認したいと思っています。

ファイル(F)>新規(N)>
・Dynamic Web Project
・Static Web Project
861841:2009/01/14(水) 01:41:22
>>845
> 今試したけど、ドラッグ&ドロップじゃなくってクリックでできたよ。
何度かEclipseを再起動してみましたがやはり出来ませんでした。


正常にhtml editorプラグインがeclipseに取り込まれているか次の手順にて確認をしたのですが
問題無く取り込まれている様です。
しかしながら、htmlファイルを開いた状態でパレット内にあるコントロールをクリックしても
コードの雛形は一向に作成されませんでした。

ヘルプ(E) ⇒ Eclipse Platformについて(A) ⇒ プラグインの詳細(P)

(Eclipse Platform プラグインについて)
Naoki Takezoe HTML/JSP/XMLエディタプラグイン     2.0.6.1 tk.eclipse.plugin.htmleditor



862デフォルトの名無しさん:2009/01/14(水) 02:18:35
>>861
WTPとか、他のプラグインのHTMLエディタで開いているとか。
エディタをいったん閉じた後、エクスプローラで右クリックして、
開く>Amateras HTML Editorで開いてみると変わるかも。
863デフォルトの名無しさん:2009/01/14(水) 04:46:49
エクリプス廚ウゼー。javaの話じゃないし。

eclipseってそんなに良いか?【エクリプス】
http://pc11.2ch.net/test/read.cgi/tech/1099300344/l50

Eclipse統合M26【Java/C/PHP/Ruby/Python/Perl】
http://pc11.2ch.net/test/read.cgi/tech/1224536200/l50
864デフォルトの名無しさん:2009/01/14(水) 06:45:22
NetBeans信者乙
865デフォルトの名無しさん:2009/01/14(水) 11:29:14
画像データ(jpgファイル)などのバイナリデータのコピーを,バイトストリームではなく文字ストリームの利用によって行う事は出来ないんでしょうか?

標準環境だと文字ストリームは元ファイル読み込み時にバイナリデータをsjisとして読み込んでunicodeに変換.そしてコピー先ファイル書き込み時に,読み込んだunicodeをsjisに変換して書き込むといった事がわかりました.
ttp://www.tohoho-web.com/java/file.htm

これならコピー後,理論上は元ファイルとコピー先ファイルが同じバイナリデータとなっており,コピーが出来ると思ったんですが,なぜかうまくコピーされません.(バイナリエディタで比較したところ,微妙にバイトの並びが異なっているところがあります.)

どうしてこのようになるのでしょうか?よろしくお願いします.
866865:2009/01/14(水) 11:31:06
コピーに利用したプログラムは
ttp://www.nextindex.net/java/IO/file.html
のCCopy.javaです
867デフォルトの名無しさん:2009/01/14(水) 11:34:48
Windows、Linux、Mac OS X の各プラットフォームで、JVMの速度が違うかどうかを知りたいです。
どなたかご存知の方がいれば教えてください。
あるいは参考になるページがあれば紹介してください。
868デフォルトの名無しさん:2009/01/14(水) 11:38:23
その方法で元のバイナリデータと同じバイナリデータにできるのは、
元のバイナリデータが全てsjisのテキストとして解釈出来る場合のみ。

sijisからunicodeに変換するときに変換表にのってない文字は
\uFFFDに置き換えられたりするから、完全には元に戻らない。
869865:2009/01/14(水) 11:46:50
unicodeで確認したところ,FF(sjisではマッピングされていない文字コード)が
FFFDとなっていました.

ありがとうございました.
870デフォルトの名無しさん:2009/01/14(水) 11:50:57
>>862
サンクス
正常にパレットから雛形コードを生成する事が出来る様になりました。
871デフォルトの名無しさん:2009/01/14(水) 12:49:30
HTMLの質問すれはどこですればよいですか?
初歩的なif文の使い方がわけわかめで・・・
872デフォルトの名無しさん:2009/01/14(水) 13:43:47
873デフォルトの名無しさん:2009/01/15(木) 00:11:28
eclipseでimplementsしたけどぜんぜん使ってないオーバロードを非表示にする方法は無いでしょうか?
874デフォルトの名無しさん:2009/01/15(木) 00:49:46
質問です。
文字列からint型のハッシュ値を取得したいです。

String#hashCode()と同じ程度の速度で算出できて、
衝突耐性はそれ以上のアルゴリズムってありますか?

それっぽい単語でググってみたのですが、
暗号絡みの強力な(でも遅い)アルゴリズムしか見つけられませんでした。
よろしくお願いします。
875デフォルトの名無しさん:2009/01/15(木) 00:55:47
>>874
ヒント:自作
876デフォルトの名無しさん:2009/01/15(木) 01:27:43
javaで作ったソフトからパソコンの電源を落とすことは可能なのだろうか…?
普通に考えて無理な気もするが…
先輩方,教えて下され><
877デフォルトの名無しさん:2009/01/15(木) 01:31:24
>>876
Windows操作は、VB or C++でやれ
カスが
878デフォルトの名無しさん:2009/01/15(木) 01:33:39
>>877
javaしか扱えませんので。
てか正直javaさえもまともに扱えませんが。
回答ありがとうございます。
879デフォルトの名無しさん:2009/01/15(木) 01:34:52
>>876
そもそもなんでjavaで落とす必要があるのか
コマンドラインで操作してるなら
shutdown -s
とかでいいじゃん
880デフォルトの名無しさん:2009/01/15(木) 01:53:54
誘導されましたのでこちらにて質問させて下さい。


実務でJavaを使ったシステム開発をしたことは無いのですが
独学で一通りJSP、サーブレット(Struts)フレームワークを使った
WEBシステムを作成する事が出来る様になったのですが、
この状態でJavaの使えるレンタルサーバを借りて
WEBシステムを回すのは危険でしょうか?

※実務ではクラサバしかやった事は無いですが、
趣味で5年位WEBサイト(+phpで作成したシステム)を作っています。
881デフォルトの名無しさん:2009/01/15(木) 01:56:13
>>880
趣味でやるなら好きにやればいいじゃん
882874:2009/01/15(木) 01:57:18
>>875
アルゴリズムの自作はちょっと荷が重いですw

もう少し探していたところ、Cとかで文字列のハッシュ値生成関数が色々あるようでした。
そこらへんから良さそうなものを探してみます。

ttp://java-house.jp/ml/archive/j-h-b/020543.html
これも良さげでした。
ありがとうございました。
883デフォルトの名無しさん:2009/01/15(木) 01:59:52
質問させてください。
java appletで、アプレット画面上でマウスをクリックすると新しいアプレット画面を開くためにはどうすればいいですか?
884デフォルトの名無しさん:2009/01/15(木) 02:09:48
質問

private static <E extends Comparable<? super E>>

という記述の意味が分からんのです
日本語に翻訳してくれ
885デフォルトの名無しさん:2009/01/15(木) 04:19:11
>>882
Commons Lang の HashCodeBuilder
886デフォルトの名無しさん:2009/01/15(木) 11:23:58
>>884
EはComparable<?>を実装した型でなければならない。
ただし?はEの親クラスでなければならない。(Eと同じ,またはEの親クラスであれば何でもよい)

2行目の条件を満たすということは,E型のオブジェクトを?型の引数に安全に代入できるということ
つまりComparable<?>.compareTo(?)の引数に常に型安全にE型のオブジェクトを渡せることを保障できる
887デフォルトの名無しさん:2009/01/15(木) 11:34:01
【Greasemonkey】
あなたが訪問するウェブページを変更するスクリプトを書くことを可能にするFirefox 拡張です。
Greasemonkeyをつかってウェブサイトをより読みやすくしたりより使いやすくしたりすることができます。
サイト管理者自身が面倒で修正していないようなレンダリングのバグをあなたが修正することができます。
ウェブページを読み上げたりブライユ点字に変換したりする補助技術をつかって、
ウェブページがよりよくなるように変更を加えることもできます。
ほかのサイトから自動的にデータを取り出して二つのサイトを、
より相互に関連したものにすることさえできます。

Greasemonkeyだけでは上のようなことは何一つできません。
インストール後何も変化がないようにみえるでしょう。
変化が見えるのは「ユーザースクリプト」と呼ばれるものをインストールし始めてからです。

ユーザースクリプトとは、Javascript のコードの集まりで、
さらにGreasemonkey がいつどこでそれを実行すればよいのかという情報をもっています。
一つのユーザースクリプトは特定のページ・サイト、あるいはいくつかのサイトをターゲットにできます。

ユーザースクリプトはJavascript ができることなら何でもできます。
それどころかユーザースクリプトはGreasemonkey が提供する特別な関数がつかえるので、
Javascript 以上のことができるのです。
いろんな人がそれぞれの用途のために書いた何百ものユーザースクリプトを含む、
Greasemonkeyスクリプトレポジトリがあります。
自分の書いたユーザースクリプトが他の人にも有用かもしれないと思ったら、
このレポジトリに加えることができます。
あるいは公開せずに自分のブラウジングを少し改善したことに満足していることもできます。

Greasemonkey メーリングリストもあります。
ここでは質問したり、ユーザースクリプトをアナウンスしたり、
新しい機能についてのアイディアを議論したりすることができます。
Greasemonkey の開発者はリストを頻繁に見ています。
彼らはあなたの質問に答えてくれることさえあるかもしれません。
888デフォルトの名無しさん:2009/01/15(木) 13:59:07
2つのタブの中にパネルを5枚ずつ貼り付けて、
そのパネルの中に縦50横5のテーブルを作った。
そのテーブルの中の一つのセルの中に書かれた情報を取得する方法がわからんです。
これが噂の四次元配列なんですか。
889デフォルトの名無しさん:2009/01/15(木) 15:17:42
EJB3.0に惹かれてJavaEEサーバーを構築してみたいのですが
今までstruts+hibernate+tomcatの組み合わせしか経験したことが無いので
JavaEEサーバーのことについてよく分かりません。
フリーのJavaEEサーバーで最も使われているのは今でもjbossでしょうか?
glassfishなるものが最近伸びてると聞きましたがjbossに対抗できるほどのものでしょうか?
あるいはこの2つ以外にも有名なものがありますか?
よろしくお願いします。
890デフォルトの名無しさん:2009/01/15(木) 16:51:35
.jarファイルって普通にJavaVMの入ってるパソコンでアイコンダブルクリックで実行できないのでしょうか?
私の作ったプログラム(.jarファイル)がダブルクリックしても起動しないと友人から言われまして.
私のパソコンではダブルクリックで起動するのですが.
JavaVMはパソコン買ったときからインストールされていると言ってました.
891デフォルトの名無しさん:2009/01/15(木) 16:54:53
>>890
もっと勉強してからおいで
どうせjavaも実行できない環境なんだろ
892デフォルトの名無しさん:2009/01/15(木) 17:11:01
( ^ω^)7-Zipで解凍できたお
893デフォルトの名無しさん:2009/01/15(木) 17:19:16
>891
分からないならレスしないでください.
894デフォルトの名無しさん:2009/01/15(木) 17:23:19
>>890
java -jar なんとか.jar
で起動するなら、関連付けの問題。
それでも駄目なら、javaがない。
895デフォルトの名無しさん:2009/01/15(木) 17:27:11
>>893
わかってねーのはおめーだろw
896デフォルトの名無しさん:2009/01/15(木) 17:27:33
>>890
買ったときからインストールされているJavaVMのことは忘れて、
最新のJavaVMをインストールしたほうがいいと友達に言ってあげたらどう?
新しいVMならセキュリティフィクスもされているし、
インストール時にちゃんと関連付けもしてくれるから、
jarをダブルクリックするだけでアプリケーションが動くようになると思うよ。
897デフォルトの名無しさん:2009/01/15(木) 17:32:34
ジャバをインストールしてハッピーになりたいんです。
898デフォルトの名無しさん:2009/01/15(木) 17:32:55
>894
ありがとう.
多分関連づけがされて無いんだと思う.
バッチファイルつけて友人に渡す.
>896
最新のものにアップデートすると関連づけしてくれると友人に伝えとく.

thanx
899デフォルトの名無しさん:2009/01/15(木) 17:41:09
>>898
雑魚のくせに、なんだおまえ?
900デフォルトの名無しさん:2009/01/15(木) 17:42:44
自演乙
901デフォルトの名無しさん:2009/01/15(木) 19:41:30
おまいらJavaで何やってるの?
902デフォルトの名無しさん:2009/01/15(木) 19:43:38
Be○ns使ってソフト作ろうと考えてる
903デフォルトの名無しさん:2009/01/15(木) 19:46:52
904デフォルトの名無しさん:2009/01/15(木) 20:17:21
困ってるので誰かお願いします

windowsの右下の小窓的なところにjavaのアイコンが突然現れました。
最近javaを起動させた記憶も無く、なぜ出てきたか不明です。
アップデート的な何かなのかと思ってクリックしてもバージョンが表示されるだけで何も起きません。

重くなるのが嫌なので何も無いなら閉じたいのですがこれはどうしたらいいんですか?
あと、出てきた原因は何でしょう?
よろしくお願いいたします。

左下のjavaのアイコンを
・左でダブルクリックすると
 java platform standard edition6
 バージョン6 アップデート7
という小窓が出てきて

・右クリックすると
 javaテクノロジについて
 java.comにアクセス
 コントロールパネルを開く
 コンソール
というメニューが出てきます。
 


905デフォルトの名無しさん:2009/01/15(木) 20:18:30
>>904
なんどもうぜぇよ、それぐらい調べりゃわかるだろ
906デフォルトの名無しさん:2009/01/15(木) 20:47:01
何にでも突っかかりたいお年頃
907デフォルトの名無しさん:2009/01/15(木) 21:17:46
>>904
Javaアプレットがあるページを開くと出る。
閉じるだけなら、右クリックメニューで閉じれたと思う。
永遠に出さないなら、
Javaコントロールパネル→詳細→その他→システムトレイにJavaアイコンを配置
のチェックをOFF。

そもそもJavaもJavaアプレット(株のチャート図表示とか、お絵描きBBS等で
今も使われてる)もJavaでできたアプリケーションも使わないなら、Java
をアンインストールするのが吉。
908874:2009/01/15(木) 22:22:34
>>885
ありがとうございます。
HashCodeBuilderは使ったことありませんでした。

さっそくソース見たんですが、String#hashCode()とほぼ同じ感じで
ハッシュ値を求めてるようでした(h = h * 31 + c; のループ)。

とりあえずこれでいいかなという気がしてきました。
ありがとうございました。
909デフォルトの名無しさん:2009/01/15(木) 22:23:22
スパークラス スパークラス型 = new サブクラス();
と書くと、何が便利なのかまったくわかりません
そこら辺を、教えください
910デフォルトの名無しさん:2009/01/15(木) 22:41:50
定期的に現れる質問だな
釣りか?
911デフォルトの名無しさん:2009/01/15(木) 22:58:47
>>909
ヒント:デザインパターン
912デフォルトの名無しさん:2009/01/15(木) 22:59:14
何にでも挿入したいお年頃
913デフォルトの名無しさん:2009/01/15(木) 23:06:59
スパー
914デフォルトの名無しさん:2009/01/16(金) 01:57:36
>>17
後続の行で、サブクラスに依存しない
コードを書くことになる。
それは別のサブクラスを new するように
修正しても通用する柔軟なコードだという
ことになる。
必要も無いのに細かい実装に依存した
コードは読んでも意図を掴みにくい。
new するクラス自体、スーパークラスに
できるともっといいわけだが、
事情はいろいろ有り得る。
915デフォルトの名無しさん:2009/01/16(金) 02:01:45
>>914
おや?
× >>17
>>909
916デフォルトの名無しさん:2009/01/16(金) 03:46:10
eclipseでは問題無く実行できるのですが、jarにすると何故か一部の画像が表示されません
jarを解凍して見ても画像の抜け落ち等は無かったのですが、何が原因かわかりますか?
917デフォルトの名無しさん:2009/01/16(金) 03:47:46
穴があれば挿れたいように、
クラスがあればインスタンス実行したい年頃か。



// hoge.java
class hoge {
static void main(String[] args) {
new hoge();
}
hoge () {
目的の手順
}
}
って何か冗長で直感的じゃなくて、毎回コピペで済ませてるけど。記述は非オブジェクト指向言語のほうが楽だわ。
918デフォルトの名無しさん:2009/01/16(金) 03:52:50
一部の画像をどうやって表示してるか説明しないと誰にも分からないと思う。
自前で描画してるのか、どこかの画像ファイル読み込んで表示させてるのか。


エスパースレはこちら。
エスパーが質問に答えるスレ
http://pc11.2ch.net/test/read.cgi/tech/1187922645/l50
919デフォルトの名無しさん:2009/01/16(金) 05:50:47
どうせ相対パスで指定してないとかそういう落ちだろう
920デフォルトの名無しさん:2009/01/16(金) 07:33:42
俺の偽装請負先の職場にも、
コンストラクタで目的の処理をするコードを書く奴が居たよ。
なぜかそういう奴が回りから技術的な信頼が高いという
低レベルな職場だったので、絶望的で無念だった。
921デフォルトの名無しさん:2009/01/16(金) 07:37:15
マ板に帰れ
922デフォルトの名無しさん:2009/01/16(金) 08:20:36
長いですが質問です。
ボタンで図形の形を選択、チョイスで色選択をして図形を書きたいのですが、色は選択できるのですが、形が選択できません。ボタンを押しても何も変化がありません。
どこがおかしいのでしょうか?
----------------------------------------
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class Sample extends Applet implements Runnable {
Choice CChoice;
Thread twobuttons=null;
Button button0, button1;
int flag=0;
String dummystring="DUMMY";
String c;

public void init() {
super.init();
add(new Label("図形選択"));
button0=new Button("円");
this.add(button0);

button1=new Button("四角");
this.add(button1);

CChoice = new Choice();
CChoice.addItem("赤");
CChoice.addItem("黄色");
CChoice.addItem("青");
add(CChoice);
CChoice.addItemListener(new ItemAdp());
}
923922続き:2009/01/16(金) 08:25:49
public void start(){
super.start();
}
public void paint(Graphics g){
if(dummystring=="円"){

if(c=="赤"){
g.setColor(Color.red);
}else if(c=="黄色"){
g.setColor(Color.yellow);
}else{
g.setColor(Color.blue);
}
g.fillOval(20,20,20,20);

}else{
if(c=="赤"){
g.setColor(Color.red);
}else if(c=="黄色"){
g.setColor(Color.yellow);
}else{
g.setColor(Color.blue);
}
g.fillRect(20,20,20,20);
}
}

public void update(Graphics g){
g.clearRect(0,0, 640, 500);
paint(g);
}
924922続き:2009/01/16(金) 08:29:46
public void start1() {
twobuttons=new Thread(this);
twobuttons.start();
}

public void stop() {
}

public void run() {
while(true){
if(flag==0){
dummystring="円";
}else if(flag==1){
dummystring="四角";
}else{}
repaint();
try {
twobuttons.sleep(120);
} catch (InterruptedException e) {
}
}
}
925デフォルトの名無しさん:2009/01/16(金) 08:30:18
public boolean action(Event event, Object arg){
if(event.target==button0){
flag=0;
return true;
}
if(event.target==button1){
flag=1;
return true;
}
else return super.action(event,arg);
}





class ItemAdp implements ItemListener {
public void itemStateChanged(ItemEvent e) {
if (e.getSource() == CChoice) {
String st = CChoice.getSelectedItem();
c = st;
repaint();
}
}
}

}
926デフォルトの名無しさん:2009/01/16(金) 11:28:00
コードの記述方法についてC#とJava(php)とで記述方針が異なっているのですが
Javaのコードを記述する場合にC#的な書き方をするのはご法度なのでしょか?
(作法がなっていない?)


【C#】
public static TestMethod()
{
}

【Java(PHP)】
public static TestMethod(){
}
927デフォルトの名無しさん:2009/01/16(金) 11:30:04
>>926
好きに書けばいいんでない?
開発環境だとそういう設定だけど
別にどっちでもエラーはでない
928デフォルトの名無しさん:2009/01/16(金) 11:32:32
サーブレットクラスを作成しよとしているのですが
import javax.servlet.http.*;
の部分で "インポートされた javax.servlet は見つかりません"
というエラーメッセージが表示されてしまいます。どうすれば解決しますか?
※elipseを使用しています。
929デフォルトの名無しさん:2009/01/16(金) 11:33:00
>>922
どっかにアップしろよ
レスをまたぐような長さでインデントも無いコードを読めるかよ
930デフォルトの名無しさん:2009/01/16(金) 11:33:47
>>927
実際のjava開発プロジェクトにこれまで入った事が無いので
実務ではどちらの記述がスタンダードなのでしょうか?

931928:2009/01/16(金) 11:43:29
環境変数に次も追加したのですが一向にエラーが出ます。
CLASSPASS
C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jar
932デフォルトの名無しさん:2009/01/16(金) 11:46:16
CLASSPASS
933デフォルトの名無しさん:2009/01/16(金) 12:03:25

環境変数に"CLASSPASS"は、ちゃんと通しました。
934928:2009/01/16(金) 12:18:45
設定している環境変数の値一覧です。

【CATALINA_HOME】
C:\Program Files\Apache Software Foundation\Tomcat 5.5

【JAVA_HOME】
【PATH】
C:\Program Files\Java\jre6\bin
935928:2009/01/16(金) 12:22:07
コマンドプロンプトより次のコードを実行すると、バージョンが表示され
JDKはインストールされています。


C:\Documents and Settings\ゲスト用のユーザ>java -version

java version "1.6.0_11"
Java(TM) SE Runtime Environment (build 1.6.0_11-b03)
Java HotSpot(TM) Client VM (build 11.0-b16, mixed mode, sharing)
936デフォルトの名無しさん:2009/01/16(金) 12:24:37
ttp://www.google.co.jp/search?hl=ja&q=CLASSPASS+java

それはそうとして、Eclipseでコンパイルするときは、
環境変数は無視される。
プロジェクト毎のビルドパスにjarファイルを追加すること。
937デフォルトの名無しさん:2009/01/16(金) 12:25:49
Eclipse 使ってるんなら Java EE Development フィーチャでやれよ。
938デフォルトの名無しさん:2009/01/16(金) 13:04:21
>>936 >>937
レスありがとうございます。

因みにElipse上からでは無く、コマンドプロンプトからコンパイルが出来るかと思い、
javac とコマンドプロンプトから入力をしたところ、次のエラーが出てしまいます。

'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

環境変数も通しておりjava -versionコマンドは正常に実行出来るのに一体何が原因なのでしょうか?
※ただし、eclipse上からjspページのコンパイルは出来ています。
939デフォルトの名無しさん:2009/01/16(金) 13:09:07
どう見てもパスが通ってない。
940デフォルトの名無しさん:2009/01/16(金) 13:19:16
・EclipseにはWTPを組み込んでいるかあるいは組み込み済みの
 Java EE Editionを使っているか?
・Eclipse上のServerの項目の中にインストール済みのTomcatは
 登録してあるか?
・Serveltを開発しようとしているプロジェクトのbuild path->library
 の一覧にTomcatのライブラリは含まれているか?

あとパスも含めて環境変数に関しては殆ど忘れた方がよい。
Eclipseは複数のJDKやServlet Containerを使い分ける事が出来る
仕組みになっている。だから環境変数で設定するような項目の
大概はEclipse上での設定で上書きされたり優先したりするから。
941デフォルトの名無しさん:2009/01/16(金) 13:29:59
友達に頼まれてゲームの武器の生成プログラムを頼まれたのですが、実行段階で『Exception in thread "main" java.lang.NoSuchMethodError: main: 17』と出てきました。
しかし、mainメソッドは別の普通に動いているやつからコピペしてきたので何の問題もないはずなのですが、それでも吐いてしまいました

以下問題と思われる文の簡易版、これでも同じエラーが出ます。

import java.security.SecureRandom;
class randomtest2
{
public static void main(String args[])
{
int i = 0;
int test[];
SecureRandom r = new SecureRandom();
int kai = r.nextInt(11);
test= new int[i];
for(i=0 ; i<=10 ; i++)
{
test[i] = r.nextInt(101);
System.out.println("test=" + test[i] + ",");
}
}
}
正直自分ではもう手がつけられません
942デフォルトの名無しさん:2009/01/16(金) 13:47:19
public class ...
943デフォルトの名無しさん:2009/01/16(金) 13:48:37
>>941
そもそもコード書くレベルに達してないだろ・・・
取り敢えず、mainの中身そっくり削除してみろよ。
944デフォルトの名無しさん:2009/01/16(金) 13:53:12
>>941
NoSuchMethodErrorじゃなくてArrayIndexOutOfBoundsExceptionがスローされるけど。

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at randomtest2.main(ramdomtest2.java:13)
945デフォルトの名無しさん:2009/01/16(金) 13:59:35
>>941
int i = 0;
...
test= new int[i];

長さ0の配列作成してど〜する。
946デフォルトの名無しさん:2009/01/16(金) 18:29:34
>>940
色々やってみたところエラーは出なくなったのですが次のサーブレットコードをEclipse上から
実行してみたところ次のエラーが出てしまいます。
何が原因なのでしょうか?

Webページへのナビゲーションは取り消されました
対処方法:
ページを最新の情報に更新する。
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class HelloWorldServlet extends HttpServlet {
public void service(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
// ContentTypeを設定
response.setContentType("text/html; charset=Shift_JIS");
// 出力用PrintWriterを取得
PrintWriter out = response.getWriter();
// 出力
out.println("<html>");
out.println("<head>");
out.println("<title>Hello World Servlet</title>");
out.println("</head>");
out.println("<body>");
out.println("Hello World");
out.println("</body>");
out.println("</html>");
}
}
947デフォルトの名無しさん:2009/01/16(金) 18:30:30
リストに
名前とその人の情報が入っているとして
名前で検索して、検索した人の情報を全て表示させたいんですが

System.out.println("検索する人物の名前を入力してください");
String number = kbd.readLine();
int name = list.indexOf(number);
System.out.println(list.get(name));

としたのですが
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at java.util.ArrayList.get(Unknown Source)
といったエラーが出てしまいました。
どうすれば改善するでしょうか?
948デフォルトの名無しさん:2009/01/16(金) 18:34:29
>>947
検索したいものが見付からなかったときの処理を入れてください。

文字列にnumberとかインデックスにnameとか、変数名が謎すぎる。
949デフォルトの名無しさん:2009/01/16(金) 18:45:08
>>947
try{
処理
}
catch{ArrayIndexOutOfBoundsException}

俺の言ってることは適当だから
ArrayIndexOutOfBoundsExceptionとかでググって
例外について学びなおしてくるんだな・・・
950デフォルトの名無しさん:2009/01/16(金) 18:50:42
>>948>>949
ありがとうございます。
951デフォルトの名無しさん:2009/01/16(金) 18:54:00
>>946
ブラウザに表示されたエラーメッセージを書かれてもたいした
ことは分からない。Eclipseのconsoleに何かTomcatからの
エラーが表示されてない?
952デフォルトの名無しさん:2009/01/16(金) 19:18:24
>>951
次のメソッドの中にソースを書く形に変えたところ正常に動作する様になりました。
ありがとうございます。


protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
953デフォルトの名無しさん:2009/01/16(金) 19:56:22
getInsetsメソッドってコンテナの枠の幅ってことでいいんですか?
じゃあそのコンテナの枠の幅ってOSに由来するんですか?
よくわかりませんお願いします
954デフォルトの名無しさん:2009/01/17(土) 00:06:47
JAVAが凄い言語だと聞いたのですが例えば何かわかりやすい
アプリや例みたいなものはないのでしょうか?
955デフォルトの名無しさん:2009/01/17(土) 00:10:40
すごいって一体何がどうすごいんだか…
956デフォルトの名無しさん:2009/01/17(土) 00:11:30
ライブラリとか
957デフォルトの名無しさん:2009/01/17(土) 00:13:36
言語としてはかなり地味で枯れてる言語なんだけど
958デフォルトの名無しさん:2009/01/17(土) 08:54:42
数学わかんねー
959デフォルトの名無しさん:2009/01/17(土) 09:13:38
かなり昔からあるからなあ。昔のJavaは(ry


例外処理がやたら面倒って言語だわ。
でもパターン化してるのだからもっとすっきり記述できればいいのに。
960デフォルトの名無しさん:2009/01/17(土) 09:41:54
なんでもかんでも明示的に書かせる方針の言語だからね
さすが現代のCOBOL
961デフォルトの名無しさん:2009/01/17(土) 10:12:11
明示的に書かせる方針というよりも明示されていることで読みやすくする方針じゃないのかな。
もちろんそのためには明示的に書かれていないといけないけれど、
素直に全部を手書きしなくてもパターン化してる部分は開発環境の力を借りて機械的に処理できるし。
962デフォルトの名無しさん:2009/01/17(土) 12:16:34
Eclipseでサーブレット(JSP)システムを構築した後に*warファイルを作成し
  *\Tomcat 5.5\webapps
この直下に*.warファイルを配置する事により作成されたサーブレットプログラム
をlocalhostで実行する事が出来ました。

しかし、実際にJAVAの使えるレンタルサーバを借りて、作成したプログラムを配布する場合には、
*.warファイルをサーバにFFFTP等を使って送信するだけで良いのでしょか?
( つまり、別途面倒な設定を行う必要があるのでしょうか?)

※*.warファイルの配布だけで公開可能であれば、メンドクサイ(小難しい)設定を行う必要
が無いので利用しようかと思っています。


963デフォルトの名無しさん:2009/01/17(土) 12:32:06
昨日、javacコマンドを入力すると'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
というエラーが出るという事で相談した者です。

Eclipse上からは正常にコンパイルする事が出来て(JSP/サーブレット)を実行する事が出来ているのですが、
相変わらず、Dosプロンプト画面から javac と入力するとエラーが出ています。
環境変数も設定しているはずなのに。。。

今後は、Javaでの開発はテキストエディタベースでは無く、Eclipseを使うつもりなので
あまり気にしなくても問題は無いですか?

(もうちょっとJavaの勉強をしたらStrutsの学習に移ろうと思っているのですが、そのタイミングで何がしかの支障が出るのでは無いかと
若干不安です。)

964デフォルトの名無しさん:2009/01/17(土) 12:35:26
>>963
本当にPATHが通ってるのか怪しい
965デフォルトの名無しさん:2009/01/17(土) 12:57:38
>>964
jreにしか通してない。
966デフォルトの名無しさん:2009/01/17(土) 16:35:50
どなたか>>889をお願いします…orz
967デフォルトの名無しさん:2009/01/17(土) 17:36:55
>>966
Java言語の質問がメインなので、微妙にスレ違いなのかも
サーバのOS毎のサーバ構築スレみたいなところで質問した方がいいかもね
968デフォルトの名無しさん:2009/01/17(土) 22:01:17
>>963
java.exe は C:\WINDOWS\system32 にもあって、ここにはデフォルトで
PATH が通ってるので何も考えず使える。しかし、javac.exe は
C:\Program Files\Java\jdk1.6.0_11\bin にあるので(JDK6.0 update11
の場合)、ここに手動でPATHを通す必要がある。
969デフォルトの名無しさん:2009/01/17(土) 22:10:20
>>889
「JavaEE サーバ 比較」でぐぐるといくつか情報がひっかかったぞ。
オープンソースだと他にApache Geronimoがあるな。IBMが支援してるみたい。
細かい部分は自分で調べてくれ。
GlassFishはSunが作ってて、NetBeansと一緒に配られていたような気がする。
970デフォルトの名無しさん:2009/01/17(土) 23:54:38
JSFって実際の開発現場で使われているのでしょか?
JSP+サーブレットで事足りている気がします。
971デフォルトの名無しさん:2009/01/18(日) 00:14:52
EJBはゴミだ
972デフォルトの名無しさん:2009/01/18(日) 00:32:02
>>965
レスありがとうございます。環境変数を見直してみます。

>>968
ご丁寧にありがとうございます。
お陰様でjavacコマンドが使える様になりました。


973デフォルトの名無しさん:2009/01/18(日) 00:46:35
Eclipse上でJSP(サーブレット)を正常に動作させる事は出来ているのですが、
Problemタブに次の様な「警告」が出ています。
意味がよく分からないのですが、「警告」なので無視しても問題無いのでしょうか?
※因みにVisual Studioとかだとエラーは絶対に直さなくてはコンパイルが出来ませんが、
警告の場合には修正をしなくても実行する事が出来ました。

Classpath entry C:/Program Files/Apache Software Foundation/Tomcat 5.5/common/lib/servlet-api.jar
will not be exported or published. Runtime ClassNotFoundExceptions may result.

DynamicWebProject P/DynamicWebProject Classpath Dependency Validator Message

※Dynamic Web Project というのは私がつけたプロジェクト名です。
974デフォルトの名無しさん:2009/01/18(日) 13:53:22
チョイスにより、三角関数のグラフ(sin, cos, tan)のカーブを選択して
描画領域に描画させるJavaアプリケーションを作成せよ。
という課題が出たのですが努力したのですがどうにも完成させることができませんでした。
よろしければ教えてください。

形態はJavaアプリケーション(main()で開始)
GUIは制限なしです
何卒お願いいたします
975デフォルトの名無しさん:2009/01/18(日) 14:00:18
宿題スレにいけ
976デフォルトの名無しさん:2009/01/18(日) 15:38:12
javaをはじめ プログラム系はまったく無知です。
webショップの購入を考えていたのですが、どれも高いので
自分で作っちまえと思い、IBM(システム開発)の父に相談した所javaが良いと言われました。

それで本を買おうと思うのですが「これ読んどけ!」みたいなお勧めの本ありませんか?
977デフォルトの名無しさん:2009/01/18(日) 15:39:55
>>976
>>1くらいよめ
臍噛んで死ね
978デフォルトの名無しさん:2009/01/18(日) 15:42:59
>>977
なにがボクの気に障ったのかな?過去スレ読まないからかな?
>>1は一ヶ月以上前の情報だし、まして過去スレなんて情報劣化もいいとこだろ?

最新の情報が欲しいんだよ。ボクにはわかるかな?
979デフォルトの名無しさん:2009/01/18(日) 15:44:03
スルーしようぜ
980デフォルトの名無しさん:2009/01/18(日) 15:51:30
馬鹿は何読んでも無理だと思う
981デフォルトの名無しさん:2009/01/18(日) 15:57:07
不毛な煽りはいいから。
まぁどこのスレにでもいる>>977みたいな脊髄馬鹿は低レベルだから
悔しいからって連投すんなよ〜顔真っ赤だぞ、ボクちゃん
982デフォルトの名無しさん:2009/01/18(日) 16:03:20
>>976
スレ立ての時期だから、アオリに来てるんだな・・・
983デフォルトの名無しさん:2009/01/18(日) 16:03:55
>>976,981
この前、成田空港で暴れた警察庁の D Q N 人事課長(36歳)みたいな奴だなw
984デフォルトの名無しさん:2009/01/18(日) 16:12:59
>>981
死ぬのはおまえの方w
DQN死ねww
985デフォルトの名無しさん:2009/01/18(日) 16:15:20
>>976
つ Effective Java プログラミング言語ガイド

>>981
どこのスレにも居ますね、正直邪魔
986デフォルトの名無しさん:2009/01/18(日) 16:27:04
ああ、これのことだろ。
ヤフーのニュースから早速削除されてるし、警察庁の圧力があったんじゃね?
この課長補佐だけど、不倫相手とお忍び旅行(ドイツ)いくのを空港の検査委員にとがめられ発狂したってもっぱらの噂だよねw
ま、こんだ鼻糞野郎はクビだろ。

「『県警本部長を呼べ!』 警察庁キャリアが成田空港で暴言」 
http://dr-nobody.blog.so-net.ne.jp/2009-01-15-1
987デフォルトの名無しさん:2009/01/18(日) 16:47:58
仕事で使うとかではなく趣味でJavaを学びたいです。
一般的な入門サイトのインデックスの項目を端から
読みつくしていくのは大変そうなので、
何か、エディタ等の使えるプログラムを作りながら学んでいこうと思っています。
そのように、作りながら学んでいくおすすめのサイトはありますか?
988デフォルトの名無しさん:2009/01/18(日) 17:06:36
赤坂thirdのサイトとかw
http://wisdom.sakura.ne.jp/
989デフォルトの名無しさん:2009/01/18(日) 17:08:58
>>987
スタイル機能つきエディタ
http://www.javadrive.jp/tutorial/appli_word/index.html
990デフォルトの名無しさん:2009/01/18(日) 17:23:15
>>988
wとかついてるのが気になるんですがなにかあるんですか?
991デフォルトの名無しさん:2009/01/18(日) 17:31:50
サンプルで使われてる画像がネコミミ
992デフォルトの名無しさん:2009/01/18(日) 17:39:23
>>990
次スレよろ
993デフォルトの名無しさん:2009/01/18(日) 17:49:05
>>989
ありがとうございます
994デフォルトの名無しさん:2009/01/18(日) 17:51:04
埋め
995デフォルトの名無しさん:2009/01/18(日) 18:12:26
Flashをクライアントにして、サーバーと通信するプログラム(サーバはJava)
ってアリだとおもいますか?やってみたいなあ。
996デフォルトの名無しさん:2009/01/18(日) 18:18:24
そんなの普通じゃん
997デフォルトの名無しさん:2009/01/18(日) 18:27:24
生め
998デフォルトの名無しさん:2009/01/18(日) 18:28:52
埋め
999デフォルトの名無しさん:2009/01/18(日) 18:30:50
生き埋め
1000デフォルトの名無しさん:2009/01/18(日) 18:32:38
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。