【初心者】Java質問・相談スレッド100【大歓迎】at TECH
【初心者】Java質問・相談スレッド100【大歓迎】 - 暇つぶし2ch2:デフォルトの名無しさん
07/03/31 14:49:16
>前995
個人で良いなら以前にprototype.jsのObject.prototype汚染とクラスベースなアプローチが嫌いなので
自前のクロスブラウザライブラリ+netscapeデバッガで開発した。


3:デフォルトの名無しさん
07/03/31 15:49:56
100乙記念

4:デフォルトの名無しさん
07/03/31 19:52:45
javaの入門書を読み終わったんですが、今度は何を読んだ方がいいでしょうか?


5:デフォルトの名無しさん
07/03/31 19:59:24
>>4
どっかのオープンソースプロジェクトのソースコード

6:デフォルトの名無しさん
07/03/31 21:05:13
>>5
分かりました。
探してみます。

7:デフォルトの名無しさん
07/04/01 05:13:45
その前にjdkについてるソース読んだ方が良いよ。

8:デフォルトの名無しさん
07/04/01 05:53:43
>>4
- Effective Java
 Javaやるなら、まあまず読め

- Java並行処理プログラミング
 スレッドが言語仕様に組み込まれてるJavaなのだから、
 ダグリーが共著のこれをとりあえず読んどけ

- アジャイルソフトウェア開発の奥義
 ロバート・C・マーチンの書いたもの。
 ここに書いてある「原則」を知らずに、
 オブジェクト指向の何たるかを語ることなかれ

- 達人プログラマー - システム開発の職人から名匠への道
 猫がソースコードを食べちゃった!
 とりあえず、ソフトウェア一般的な心構えの話

- 達人プログラマー - ソフトウェア開発に不可欠な基礎知識 バージョン管理/ユニットテスト/自動化
 上記の続編あるいは実践編っぽい
 ソフトウェア開発の回りの環境についての本
 コーディング技術だけではだめなのです
 
- Subversion実践入門
 上記のCVSの説明をSubversionに置き換えたもの


9:デフォルトの名無しさん
07/04/01 09:49:15
基本的に最適な順は
①言語仕様(これがないと始まらない)
②言語に付属するAPI・フレームワーク(仕事で必ず使う)
③言語に関連するシステム(Tomcat・Apache・Database)
④言語の開発環境(eclips・JBuilder等)
これだけ覚えないと仕事で使い物にならないからな。

10:951
07/04/01 11:12:59
掲示板のサンプル作ってみたんですがvewerの見た目が宜しくありません。
何かアドバイスください。
<h1>掲示板</h1>
<form action="../servlet/myplay.BbsController" method="post">
<table border="false">
<tr>
<td>名前</td>
<td><input type="text" name = "name" maxlength="10" size="40"></td>
</tr>
<tr>
<td>題名</td>
<td><input type="text" name="title" maxlength="50" size=40"></td>
</tr>
<tr>
<td>本文</td>
<td><textarea name="text" cls="40" rows="5"></textarea></td>
<input type="submit"value="送信">
</tr>
</table>
</form>
<br>
<%
ResultSet rs = (ResultSet)request.getAttribute("crs");
while(rs.next())
{
%>
<table border="true">
<tr>
<td><%=rs.getInt("id")%></td><td><%=rs.getString("name")%></td></tr>
<tr><td><%=rs.getString("title")%></tr></td>
<tr><td><%= rs.getString("context")%></td></TR>

11:デフォルトの名無しさん
07/04/01 11:23:27
PentiumIII 1GHzくらいで軽い動作の開発環境は何ですか?
GUIを作成出来るものが良いです。

12:デフォルトの名無しさん
07/04/01 11:43:59
P3-1GHzだとコンパイルしまくりの開発スタイルは厳しいな。


GPLは注意しないと困る事に成るよ。

13:デフォルトの名無しさん
07/04/01 11:50:48
うちでは、あるプログラマが、GPLなJavaScriptをコピペして使って
「どう?いいでしょ?」とかやったことがあった。
GPLについて説明してから、そのコードは破棄した。ちょっと不満そうではあったが。

14:10
07/04/01 12:53:44
javascript板の方で質問しました。失礼しました

15:デフォルトの名無しさん
07/04/01 13:15:05
>>前999
時間でカウントアップじゃなくて、
Statefulで頭の時間を持っていて
アクセスある度にカウントを計算して返せばいいんじゃないか?

16:デフォルトの名無しさん
07/04/01 16:28:23
家でjavaとかC言語とかでプログラミングしてお金ってもらえないの?
在宅勤務みたいな形で働ける会社ってあるの?

17:デフォルトの名無しさん
07/04/01 16:35:21
可能だが、相当の腕が必要。分からなくて聞く同僚も居ないしね。


18:デフォルトの名無しさん
07/04/01 16:37:28
在宅勤務みたいな形で働ける会社ってあるの?>ググると結構あるよ。

19:デフォルトの名無しさん
07/04/01 16:58:53
>18 なんのキーワードでぐぐるの?

20:デフォルトの名無しさん
07/04/01 17:01:50
自分で考えぃ!そんなんじゃ在宅プログラマとか無理だぞ。教えてくれる人間は
居ないんだからそれを考慮して物言えよ。

21:デフォルトの名無しさん
07/04/01 17:09:13
>>19
自分でそれを調べられない人間には無理、という仕組みになっている

ようは、素人には道はありませんということです

22:デフォルトの名無しさん
07/04/01 17:16:46
まぁ、俺も4ヶ月前はこうだった。気を落とさずに精進しな。

23:デフォルトの名無しさん
07/04/01 17:39:26
SOHO

24:前999
07/04/01 17:55:10
>>15さん
ありがとうございます。
実際にはタイマーで定期的に他サーバーのデータを参照して内容を
変えたいといったところなんです。
JavaEEでは、java.util.Timerではなく、quartzあたりを使うのが
常套のようですが、、こちらも、なかなか難しくて。
やりたいことは、結構単純なことだと思うんですが、意外と敷居が
高いです。。

25:デフォルトの名無しさん
07/04/01 17:59:43
>>24
俺はspring+quartzが多いかな?
URLリンク(www.springframework.org)


26:デフォルトの名無しさん
07/04/01 18:13:46
>>24
あまり大げさでなければ、別プロセスに分ければいいんじゃないか?
実装も、Javaにしなくてcronでよかったりとか。
それとも、earに含めないと駄目とかそんな事情が?

27:デフォルトの名無しさん
07/04/01 18:48:40
サーブレットまたはJSPを使用して、入力されたデータを
Excel形式で出力することは可能ですか??

28:デフォルトの名無しさん
07/04/01 18:53:13
>>27
つ jexelapi or poi
可能です。後は頑張りなさい。

29:デフォルトの名無しさん
07/04/01 18:55:07
>>27
URLリンク(jakarta.apache.org)


30:hsrtfghdf
07/04/01 21:41:39
誰か教えて
URLリンク(www.javaroad.jp)

31:27
07/04/01 23:24:14
ありがとう御座います。
Javaアプリやアプレットは作成経験がある程度あるのですが、サーブレット
/JSPは初心者同然です。そこでお勧めの書籍などあればご紹介くださいませ。

32:デフォルトの名無しさん
07/04/01 23:30:59
Strutsやってれば自然とおぼえる。

33:デフォルトの名無しさん
07/04/02 00:00:42
>>31
javaでアプリが作れるなら本はいらんと思う
実際に、何個か書けばわかる
tomcatやフレームワークのサンプルを見るだけで十分だろう

また、j2eeならBluePrintというsunの教科書がある
URLリンク(sdc.sun.co.jp)

それより、どのフレームワークでいくのかを決めるのが大変だろう
jspかjsfかに加えて
springかstrutsかseaserか
jsfならshaleとseamもあるし、faceletsもある
あるいは使わないってのもあるし、組合せもある

で、こいつらのドキュメントは英語が多いし、
seamなんかの日本語を読んでも意味わからんかもしれん(翻訳の問題ではなく)

開発の内容や規模も関係あるだろうし、ajaxなんかも考えなきゃいかんかもしれん

そう考えると本より
1)英語力
2)実際に環境を構築する実行力とスキル
3)調べることの出来るスキル
が必要だろう

j2eeという前提で書いているが、そこまでは・・って感じならスルーしてくれ


34:デフォルトの名無しさん
07/04/02 00:49:50
swingについて質問です。

JFrame上にJButton、JLabelが一つづつあったとします。
そして、JButtonを押下したときのイベントに以下のソースを
コーディングしました。
*button,labelはそれぞれJButton,JLabelのインスタンス

public void actionPerformed(ActionEvent ae){
if (ae.getSource().equals(button)) {
for( int i = 0; i <= 10; i++ ){
label.setText( i + "個目の結果を表示");
try {
Thread.sleep(5000);
} catch (InterruptedException e) {}
}

}
}

35:34
07/04/02 00:53:31
34の続き

自分が期待している動作は
5秒ごとにラベルに表示される文字が
1個目の結果を表示
2個目の結果を表示
3個目の結果を表示
・・・
と変化していくものでした。

だけど、結果は50秒後に「10個目の結果を表示」
と表示されるだけです。

僕が期待するような動作にするためにはどのような方法がありますか?

一応、サンプルソースをここにあげときました。
URLリンク(www.uploda.org)

お願いします

36:デフォルトの名無しさん
07/04/02 01:53:57
javax.swing.Timer
UI スレッドはさっさとお家に帰してあげましょう

37:デフォルトの名無しさん
07/04/02 02:06:12
あと、API に書いてあるように、UIスレッドでコンポーネントを作った方がいいと思うぞ
URLリンク(java.sun.com)

38:デフォルトの名無しさん
07/04/02 02:39:49
ごめんなす(:D)| ̄|_
今LOST見てるのですが、
入出力処理の際catch文でprintStackTraceを書くけどprintStackTraceって何?
リファ見てもよく分かんない…

39:デフォルトの名無しさん
07/04/02 02:43:18
>>38
.printStackTraceの左にはなにか変数があるはずだが?


40:デフォルトの名無しさん
07/04/02 02:44:39
載ってる場所が分からないんじゃなくて何をするものか分からないのか。

そこに至るまでに、どのソースのどの行のどのメソッドが呼ばれたかの
経歴を出力している。



41:デフォルトの名無しさん
07/04/02 04:04:49
認定ガイドに書いてあった(:D)| ̄|_

printStackTrace()メクソは『例外が起こった時点でのスタックトレースが出力される』のかぁーズ。
コールスタック(現在のメソッドに到達するまでにそのプログラムで実行されてきた一連のハナクソ)をスタックの巻き戻し(下りながら、めっとも新しく呼び出されたミクソを先頭に、上から下に向かって各メソッドの名前)を出力。

SJC-Pの範囲やん。
デバッグに役立つんですね!
プログラムが完成してもprintStackTraceは残したままにしたほうがいいのかな?

42:前999
07/04/02 04:42:05
ありがとうございます。24です
>>25さん
Springは更に規模が大きそうで。。部分だけつかうのにも理解が届いてない
状況でした。。

>>26さん
Javaで利用するデータなので、できればJavaで完結したいというのが
あったんですが、おっしゃるとおりですね。別プロセスも考えてみますです。

43:デフォルトの名無しさん
07/04/02 04:49:01
日経ソフトウェア⑤に、

FileReaderクラスを使ってファイル内の文字列を1文字ずつ読み込むプログラムと、

BuffedReaderでバッファリングしながら1行ずつ読み込むプログラムがあります。

前者は
while文が-1で停止、
後者は
while文でnullで停止、
です。

-1とヌルの使い分けがよくわかりません

44:デフォルトの名無しさん
07/04/02 05:14:53
>>43
たぶん、前者はFileReader#read()(InputStreamReader#read())で読み込んで、
後者はBufferedReader#readLine()で読み込んでるんだろうけど、
それぞれのメソッドがストリーム終端で何を返すかは、
それを使う者が使い分けるというよりも、メソッドごとに決まってるからとしか言いようがない。

read()の方は一文字ずつ読み込んで、その文字を返すメソッドなので、
通常の文字ではありえない-1をストリーム終端で返すようにしているんだろうし、
readLine()の方は1行分をStringで返すメソッドだから-1を返すわけにいかないし、
未定義のインスタンスを表すnullを返すようになっているんだと思うが。

45:デフォルトの名無しさん
07/04/02 05:56:29
だよな(:D)| ̄|_
そうなんじゃないかと思った。

46:デフォルトの名無しさん
07/04/02 08:28:54
>>41
例外はできるだけキャッチして処理すべき。
処理できない例外をログファイルに書き込んでおくのが
一般的だと思われるが。

47:デフォルトの名無しさん
07/04/02 10:31:14
自分で対処できない例外までcatchして投げない奴って氏んだ方がいいよね







↓いつものループ

48:デフォルトの名無しさん
07/04/02 18:19:15
(:D)| ̄|_日経ソフト⑤で、あるプログラムに

Set<String> set=new HashSet<String>();

と書いてあるのですが、エクリプスでは、式がステートメントとして無効です。と出ます。なぢぇ?そもそも<>って何?

49:デフォルトの名無しさん
07/04/02 18:24:07
(:D)| ̄|_

50:デフォルトの名無しさん
07/04/02 18:27:53
(:D)| ̄|_

51:デフォルトの名無しさん
07/04/02 18:28:24
(:D)| ̄|_


52:デフォルトの名無しさん
07/04/02 18:37:00
(:D)| ̄|_

53:デフォルトの名無しさん
07/04/02 18:43:47
(:D)| ̄|_

54:デフォルトの名無しさん
07/04/02 18:51:31
(:D)| ̄|_


55:デフォルトの名無しさん
07/04/02 18:53:18
(:D)| ̄|_

56:デフォルトの名無しさん
07/04/02 18:55:50
えくりぷすで1.6使えますか?いま1.5で使ってます。

57:デフォルトの名無しさん
07/04/02 18:57:40
(:D)| ̄|_

58:デフォルトの名無しさん
07/04/02 19:01:33
(:D)| ̄|_

59:デフォルトの名無しさん
07/04/02 19:03:59
J2SDK1.4.2とEclipse2.1.2だが?(:D)| ̄|_

60:デフォルトの名無しさん
07/04/02 19:06:08
(:D)| ̄|_

61:デフォルトの名無しさん
07/04/02 19:08:02
(:D)| ̄|_

62:デフォルトの名無しさん
07/04/02 19:10:07
(:D)| ̄|_

63:デフォルトの名無しさん
07/04/02 19:12:26
(:D)| ̄|_

64:デフォルトの名無しさん
07/04/02 19:12:43
(:D)| ̄|_

65:デフォルトの名無しさん
07/04/02 19:13:30
(:D)| ̄|_

66:デフォルトの名無しさん
07/04/02 19:17:41
(:D)| ̄|_

67:デフォルトの名無しさん
07/04/02 19:18:55
(:D)| ̄|_

68:デフォルトの名無しさん
07/04/02 19:19:48
(:D)| ̄|_

69:デフォルトの名無しさん
07/04/02 19:22:35
(:D)| ̄|_

70:デフォルトの名無しさん
07/04/02 19:24:39
(:B)| ̄|_

71:デフォルトの名無しさん
07/04/02 19:24:57
(:D)| ̄|_

72:デフォルトの名無しさん
07/04/02 19:26:26
(:D)| ̄|_

73:デフォルトの名無しさん
07/04/02 19:26:44
NGワードにされるまでやるつもりだな(:D)| ̄|_

74:デフォルトの名無しさん
07/04/02 19:28:22
(:D)| ̄|_

75:デフォルトの名無しさん
07/04/02 19:29:26
(:D)| ̄|_

76:デフォルトの名無しさん
07/04/02 19:30:26
(:D)| ̄|_

77:デフォルトの名無しさん
07/04/02 19:31:18
(:D)| ̄|_

78:デフォルトの名無しさん
07/04/02 19:31:55
(:D)| ̄|_

79:デフォルトの名無しさん
07/04/02 19:32:40
(:D)| ̄|_

80:デフォルトの名無しさん
07/04/02 19:36:49
(:D)| ̄|_

81:デフォルトの名無しさん
07/04/02 20:41:17
この中に一人、バカボンのパパがおる

>>70やろ

82:デフォルトの名無しさん
07/04/02 20:44:07
(:D)| ̄|_

83:デフォルトの名無しさん
07/04/02 20:53:13
(:D)| ̄|_

URLリンク(pya.cc)

84:デフォルトの名無しさん
07/04/02 20:57:01
どうしちゃったのこのすれ

85:デフォルトの名無しさん
07/04/02 21:05:30
(:D)| ̄|_

86:デフォルトの名無しさん
07/04/02 21:12:29
(:D)| ̄|_

87:デフォルトの名無しさん
07/04/02 21:15:24
(:D)| ̄|_

88:デフォルトの名無しさん
07/04/02 21:20:28
(:D)| ̄|_

89:デフォルトの名無しさん
07/04/02 21:30:47
(:D)| ̄|_

90:デフォルトの名無しさん
07/04/02 21:35:45
全力で(:D)| ̄|_

91:デフォルトの名無しさん
07/04/02 21:36:58
(:D)| ̄|_

92:デフォルトの名無しさん
07/04/02 21:38:35
(:D)| ̄|_

93:デフォルトの名無しさん
07/04/02 21:54:17
あのさあ
FOMAのアプリ作りたいんだけど、参考になる本ってどんなのある?

ちなみに当方のプログラム経験履歴は
MSC6.0
MASM
PLM
F-BASIC HG
VB6
VB2005
とこんな感じ。

スレ違いだったら誘導よろ

94:デフォルトの名無しさん
07/04/02 22:56:20
(:D)| ̄|_

95:デフォルトの名無しさん
07/04/02 23:24:44
(:D)| ̄|_

96:デフォルトの名無しさん
07/04/02 23:26:41
(:D)| ̄|_

97:デフォルトの名無しさん
07/04/02 23:46:52
(:D)| ̄|_

98:デフォルトの名無しさん
07/04/02 23:49:38
(:D)| ̄|_

99:デフォルトの名無しさん
07/04/02 23:55:50
>>93
本でも情報が古かったりするから俺が見た中では人に勧めれるものはなかったな。

公式のAPIリファレンスとチュートリアルとそこら辺にある講座サイトで問題ない気がする。

俺はMIDP使いだがJava ME全般に言えるのは端末の制限とか縛りがきつ過ぎてSEのノウハウが使い物にならないなぁ。

Java知らないならまずはSEでJava流儀のOOPを覚えた上でMEのお勉強コード書いた後にMEの実践的コードを書くの流れがお薦めだが・・・。

MEがコンフィギュレーションとプロファイルとオプションAPIに分かれてるってのを知っておかないと変な勘違いするかも・・・。

DojaやMIDPはプロファイルの一種ね。
DojaとMIDPじゃエントリポイントとかの規約が違ったり、
メソッド名が同じでも仕様が違うとかあるんで
片方のやり方が片方で通じなかったりするから
仕事で移植せにゃならんとき以外はどっちかに特化する事になるのかな?

自分である程度分かるようになってから本を探すのが安全な気がする。

因みにdojaなら本スレはこっち。
スレリンク(tech板)l50

エミュレータが全く使いモンにならんほど機種依存が酷いよ・・・。

(:D)| ̄|_

100:デフォルトの名無しさん
07/04/02 23:55:55
(:D)| ̄|_

101:デフォルトの名無しさん
07/04/02 23:57:11
(:D)| ̄|_

102:デフォルトの名無しさん
07/04/03 00:03:12
(:D)| ̄|_

103:デフォルトの名無しさん
07/04/03 00:08:27
荒らしてるわりにはsageてるんだな

104:34
07/04/03 00:10:30
>>36-37
亀レスですけど、レス有難うございました。
TimerとかUIスレッドとかまだ良く解りませんが
ちょっと勉強してがんばって見ます。

105:デフォルトの名無しさん
07/04/03 00:15:54
どういたしまして (:D)| ̄|_

106:デフォルトの名無しさん
07/04/03 00:18:51
(:D)| ̄|_

107:デフォルトの名無しさん
07/04/03 00:22:12
ところで (:D)| ̄|_ ←ってどういう処理をあらわしてるの?

108:デフォルトの名無しさん
07/04/03 00:27:27
(:D)| ̄|_

109:デフォルトの名無しさん
07/04/03 00:55:15
(:D)| ̄|_

110:デフォルトの名無しさん
07/04/03 01:01:05
同じスレッド同士の処理は必ず同じ順番で実行されるけど
違うスレッドの場合、その順番は保障されない。(これは高速化に貢献している)
結果的に複数のスレッドから変更を受けるフィールドの状態がおかしくなったり、
適切に同期処理をしなくてはならなくてはいけなくなるんだが、GUIでこれをやるのは思いのほか大変。

だからUIスレッドを経由して実行することで、全てのGUIオブジェクトが一つのスレッドから変更を受ける状態になり
スレッドセーフ性を確保するわけ。(逆にこの規約が守られていない場合の動作は保障されていない)
ただしrepaintとかの場合はこれはいらない。これはrepaint自体が「UIスレッドを経由して実行」をやってくれるから。

111:デフォルトの名無しさん
07/04/03 01:11:56
(:D)| ̄|_

112:デフォルトの名無しさん
07/04/03 01:15:46
(:D)| ̄|_

113:デフォルトの名無しさん
07/04/03 01:40:16
>>48
この流れでは無理だろうが、Generics
j2se5以降で使える
環境をたしかめてみ?

いちおう、下は「ジェネリックス」で最初に出ただけで中はしらん
URLリンク(www.stackasterisk.jp)


114:デフォルトの名無しさん
07/04/03 02:50:03
>>113
荒しに親切にしてやっても良いことは何もないぞ

115:デフォルトの名無しさん
07/04/03 05:03:17
(:D)| ̄|_

116:デフォルトの名無しさん
07/04/03 05:09:31
(:D)| ̄|_

117:デフォルトの名無しさん
07/04/03 05:46:10
(:D)| ̄|_

118:デフォルトの名無しさん
07/04/03 06:16:09
(:D)| ̄|_

119:デフォルトの名無しさん
07/04/03 06:56:16
(:D)| ̄|_

120:デフォルトの名無しさん
07/04/03 07:24:27
(:D)| ̄|_

121:デフォルトの名無しさん
07/04/03 07:43:44
(:D)| ̄|_

122:デフォルトの名無しさん
07/04/03 08:50:37
(:D)| ̄|_

123:デフォルトの名無しさん
07/04/03 10:02:34
よろしくお願いします。
ConcurrentSkipListMapのsubmap()で返されるmapもやっぱり、
順序が整列されているConcurrentSkipListMapと考えたいんですが,,
URLリンク(java.sun.com.)
返り値には明示されていないので、それを期待するのはまずいでしょうか。

124:デフォルトの名無しさん
07/04/03 11:05:05
ClassLoaderで遊んでるんですが、ClassLoaderでロードしたクラスって更新で
きないですか? 具体的には、

hoge.class を defineClass でロードした後、
javac hoge.java で hoge.class を更新して
もういっかい defineClass で新しいクラスを導入したいと思っています。

findLoadedClass じゃ古い方取ってきちゃうし。それともjavaじゃ
動的なクラス定義の更新とかできないのかな‥‥‥。


125:デフォルトの名無しさん
07/04/03 11:37:18
>>123
subMap では、防衛的コピーとかじゃなくてビューが返されるはずだから
順序付けされてると考えて良いとは思うが。

明示されてるわけじゃないから石橋叩いて渡りたいなら期待しない方が良い。

126:デフォルトの名無しさん
07/04/03 11:40:29
>>124
その辺の事がやりたければ、1.5以降で追加された java.lang.instrument かな。

127:デフォルトの名無しさん
07/04/03 11:45:41
>>123
ConcurrentSkipListMap の submap() で返される ConcurrentNavigableMap の実装クラスは
SortedMap の実装クラスでもあるから順序付けされてる事は期待して良いのでは?

128:デフォルトの名無しさん
07/04/03 11:50:24
sjc-pの教科書のネストクラスの特徴を記述した中に、
・外部クラス内のstaticメソッドと同様、staticネストクラスの内側から外部クラスの非static変数またはメソッドに直接アクセスできる。

こうあるんですが、staticメソッドと同様ならstaticなメンバにしかアクセスできないと思うんですが違うんでしょうか?

129:デフォルトの名無しさん
07/04/03 11:51:06
>>124
1.5より前だと、更新するclass一個に対してClassLoaderのインスタンス生成して、
class を更新するたびに、古いClassLoaderを古いclass定義ごと捨てて、
新しいClassLoaderを新しいclass定義とともに生成する、みたいな力技使うとか。

130:デフォルトの名無しさん
07/04/03 11:58:45
>>128
「直接アクセス」ってのを どーゆー意味で使ってるか分からんから なんとも言えないけど。

class Outer {
 private instanceField;
 static class C { void method(Outer outer){
  outer.instanceField = 10; //取り囲むクラスのprivateなインスタンスフィールドにもアクセスできる。
  //Outer.this.instanceField = 10; は内部クラスでないので、これは無理。
 } }
}

131:デフォルトの名無しさん
07/04/03 11:59:54
× private instanceField;
○ private int instanceField;

132:128
07/04/03 12:16:55
すいません出版してるとこのサイトで正誤表あったので一応見てみたら誤植だったみたいです。
非static変数または...→static変数または...

>>130
そういう方法ならアクセスもできるんですね。参考になります。

133:124
07/04/03 15:49:37
>126

見てみる。ありがとう。

>130

うぉ力技だな。上手につくらないとメモリドカ食いしたりするのかね。
とはいえ参考になった。ありがとう。


134:デフォルトの名無しさん
07/04/03 16:55:29
staticなメソッドがオーバーライドできないのはなぜですか?

135:デフォルトの名無しさん
07/04/03 17:29:58
>>134
staticなメソッドをサブクラスでstaticなメソッドとして再定義すると、
メソッドはオーバーライドでなく隠蔽される。
隠蔽の場合は静的バインディングが行われるので、
そのメソッドを呼び出したインスタンスの静的な型情報にしたがって呼ばれるメソッドが決まる。
だから、SuperClass o = new SubClass(); o.staticMethod();だとすると、
oの静的型であるSuperClassのstaticMethod()が呼ばれる。

136:123
07/04/03 17:31:50
>>125
>>127

ありがとうございます。整列済みは期待しても大丈夫そうでしょうか。
お騒がせしました。。

137:デフォルトの名無しさん
07/04/03 17:50:49
>>135
つうかなんでo.staticMethod();って書けるんだろう?
SuperClass.staticMethod();で十分じゃん

138:デフォルトの名無しさん
07/04/03 18:57:17
>>137
SuperClass o = new SubClass(); o.method();だとすると、
SubClassのmethod()が呼ばれることの対比を明確にしたかったからでは?

139:135
07/04/03 19:04:27
>>138
そういうつもりで書いた。

動的バインドと静的バインドがごちゃごちゃするから、
できればクラスメソッドは>>137の言うようにクラス名.メソッド名で呼んだ方がいいと思う。

140:デフォルトの名無しさん
07/04/04 00:20:05
文字列:c:/hoge/poge.javaのpoge.javaを得るとか
パス分解関係の関数ってどこにあるんだったけか?

141:デフォルトの名無しさん
07/04/04 00:30:16
java.io.File#getName()

142:デフォルトの名無しさん
07/04/04 00:50:35
それってよくないんじゃなかったかな。
File.dirnameとかFile.basenameみたいなメソッドないのかな。

143:デフォルトの名無しさん
07/04/04 01:14:39
> それってよくないんじゃなかったかな。
具体的には?

> File.dirname
java.io.File#getParent() java.io.File#getParentFile()

> File.basename
java.io.File#getName()

144:デフォルトの名無しさん
07/04/04 01:23:18
すまん、気のせいだった。それでいいです。ども。

145:デフォルトの名無しさん
07/04/04 11:13:51
for(int k = 1; k <= 100; k++)
{
if(k <= 10)
{
l1 = (l1 * 1000L) / 6554L;

}
l1 = (l1 * 6544L) / 6554L;

          }


例えばこんな文があったとき、
kが10以下の場合は「 l1 = (l1 * 6544L) / 6554L; 」
この計算はされるんでしょうか。

10以下の時にこの計算をしたくないときにはelseを入れるんでしょうかということです。


146:デフォルトの名無しさん
07/04/04 11:16:53
ヒント:break

147:デフォルトの名無しさん
07/04/04 11:32:56
>>145
continueもしくは普通にif...else...で。
breakするといきなりループを抜ける。

148:デフォルトの名無しさん
07/04/04 11:46:02
つまりこのままだと10以下の時に計算されてしまうわけですね?


149:デフォルトの名無しさん
07/04/04 12:07:06
そういうことだ。k>10が無難かと。

150:デフォルトの名無しさん
07/04/04 12:20:27
ありがとうございました。
continueがイマイチ良くわからなかったので
おとなしくelseつけます。

151:デフォルトの名無しさん
07/04/04 14:11:05
(:D)| ̄|_

152:デフォルトの名無しさん
07/04/04 15:55:45
(:D)| ̄|_

153:デフォルトの名無しさん
07/04/04 16:25:02
(:D)| ̄|_

154:デフォルトの名無しさん
07/04/04 16:40:34
(:D)| ̄|_

155:デフォルトの名無しさん
07/04/04 17:40:16
(:D)| ̄|_

156:デフォルトの名無しさん
07/04/04 18:26:53
_| ̄|(O:)

157:デフォルトの名無しさん
07/04/04 19:09:32
)
:)
O:)
(O:)
 |(O:)
 ̄|(O:)
| ̄|(O:)
_| ̄|(O:)

158:デフォルトの名無しさん
07/04/04 19:10:02
(:D)| ̄|_

159:デフォルトの名無しさん
07/04/04 19:16:48
(:D)| ̄|_

160:デフォルトの名無しさん
07/04/04 19:29:11
Dに興味持ってコンパイラ、win用リンカ、windowsモジュール、IDE、SDL/OpenGLポーティング、日本語マニュアル一式落としても
まだ、ビルドツール、ドキュメントツール、GUIツールキット、リソースエディタ、XML APIとか揃ってない
javaは恵まれてるんだなぁとつくづく思った今日この頃。

言語仕様もjavaの名前空間であるimportが一番スマートな印象を受けた。

javaもやろうと思えばJOGL,JOAL,JInput,JSDL,JMFがあるんだよね。

GC使いながら自分でメモリ管理したい・・・orz
エンドユーザーとしてはやっぱりVM必須は導入の障害らしいし・・・


161:デフォルトの名無しさん
07/04/04 19:49:24
独り言を聞いてほしいのかい?

162:デフォルトの名無しさん
07/04/04 19:50:27
(:D)| ̄|_=3 (X<)| ̄|_

163:デフォルトの名無しさん
07/04/04 20:41:30
(:D)| ̄|_

164:デフォルトの名無しさん
07/04/04 21:25:35
(:D)| ̄|_

165:デフォルトの名無しさん
07/04/04 21:40:14
(:D)| ̄|_

166:デフォルトの名無しさん
07/04/04 21:44:21
(:D)| ̄|_

167:デフォルトの名無しさん
07/04/04 21:46:53
(:D)| ̄|_

168:デフォルトの名無しさん
07/04/04 22:00:31
(:D)| ̄|_

169:デフォルトの名無しさん
07/04/04 23:03:45
(:D)| ̄|_

170:デフォルトの名無しさん
07/04/05 00:09:53
java.io.WinNTFileSystem
java.io.Win32FileSystem.canonicalize

それぞれどういう例外か教えていただけないでしょうか?
よろしくお願いいたします。

環境:
OS : WinNT4.0Server
eclipse3.2.0
Tomcat5.5.20

171:デフォルトの名無しさん
07/04/05 00:19:41
>>170
それは例外クラスではない
java.io.WinNTFileSystemはクラス名で、canonicalizeはそのメソッド名

172:デフォルトの名無しさん
07/04/05 00:24:12
winのファイルシステムで扱えない文字がパスに含まれるとか

173:171
07/04/05 00:24:19
間違って送信した
java.io.WinNTFileSystemはjava.io.Fileの実装に関わるクラスの名前で
canonicalizeはjava.io.File#getCanonicalPathとかを呼んだ時にFileクラスからさらに呼ばれるメソッド
例外クラス名はそのメッセージが出ている前のあたりにないか?

174:デフォルトの名無しさん
07/04/05 00:32:08
>>173
ありがとうございました。(:D)| ̄|_

175:170
07/04/05 00:54:55
>>171-173
早速のレス、ありがとうございます。
申し訳ありませんが、友達から聞かれたことなので自分では解りません。

申し訳ありませんが、確認は明日になりますので、
よろしければ、引き続き心当たりを教えていただけないでしょうか?

176:デフォルトの名無しさん
07/04/05 02:25:55
(:D)| ̄|_はオレの顔文字だ!使うなッ!

177:デフォルトの名無しさん
07/04/05 05:03:46
(:D)| ̄|_

178:デフォルトの名無しさん
07/04/05 05:46:09
(:D)| ̄|_

179:デフォルトの名無しさん
07/04/05 07:58:05
>>176
(:D)| ̄|_拒否

180:デフォルトの名無しさん
07/04/05 10:01:43
(:D)| ̄|_

181:デフォルトの名無しさん
07/04/05 11:15:04
(:D)| ̄|_

182:デフォルトの名無しさん
07/04/05 11:31:56
(:D)| ̄|_

183:デフォルトの名無しさん
07/04/05 11:56:16
(:D)| ̄|_

184:デフォルトの名無しさん
07/04/05 11:57:36
toString()が明示的に実装されていないクラスの場合、
System.out.println()などでそのクラスのインスタンスを表示すると
「TestInstance@1a46e30」みたいに、そのインスタンス独自のアドレス
またはIDみたいなものが表示されるよね?
あるクラスにtoString()を実装してしまった場合、
この文字列を取得する方法ってどうやればいいの?
JavaAPIにあるのかな?

185:デフォルトの名無しさん
07/04/05 11:59:31
toStringで親のtoString呼ぶとか

186:デフォルトの名無しさん
07/04/05 12:01:27
>>184
java.lang.Integer.toHexString(java.lang.System#identityHashCode(Object x))

187:デフォルトの名無しさん
07/04/05 12:08:09
>>185-186 ありがとうございました。(:D)| ̄|_


188:デフォルトの名無しさん
07/04/05 12:28:34
>>186
Object#hashCode()ではなく?

189:184
07/04/05 12:30:36
>>187
こらこら。人の質問の答に勝手にお礼を言うな!

190:184
07/04/05 12:36:24
>>186
ありがとう。できました。
でも、「#」じゃなくて「.」だよね?
「#」使う高度な書き方ってあるの?Javaでは見たこと無いけど。

191:デフォルトの名無しさん
07/04/05 12:46:45
>>190
staticな呼び出し(静的バインド)を「.」で記述するから
インスタンスを作って呼ぶ場合ドキュメントでは「#」を代わりに使う

192:デフォルトの名無しさん
07/04/05 13:19:53
>>190
javadoc コメントの@see タグや {@link}タグで
<クラス名> # <メソッド名> ( <引数型リスト> ) って書く癖が混じっただけ。

>>191
インスタンスメソッド/クラスメソッドは関係ない。

193:デフォルトの名無しさん
07/04/05 15:01:12
別にあんた固有の癖じゃないだろ

194:デフォルトの名無しさん
07/04/05 15:20:27
そもそもtoStringオーバーロードするのはやめたほうがいい気がする。
のちのちハマリの元。

195:デフォルトの名無しさん
07/04/05 15:29:07
>>194
ハマリって、例えばどんな?

196:デフォルトの名無しさん
07/04/05 15:32:33
>>194
は?

197:デフォルトの名無しさん
07/04/05 16:08:14
swingについて質問です。

JLabelに表示される文字列にリンクを張ることはできますか?
htmlファイルの<a href = ・・・>みたいな感じです。
JLabelに表示されている文字列をクリックすると
指定のブラウザが起動されるイメージで作りたいんですが。
もし解るか方いましたら教えてください。
お願いします。

198:デフォルトの名無しさん
07/04/05 16:23:21
tomcatとかwablogicみたいなアプリケーションサーバのメモリ上(VM上?)に
永続的にデータを保持しておく事ってできますか?

199:デフォルトの名無しさん
07/04/05 16:56:30
初歩的な質問ですがお願いします。

jdk1.5.0_01とjreをアンインストールして、jdk1.5.0_04をインストールして
環境変数も新たに設定しなおしたんですけど、javacコマンドがコマンドプロンプトに認識されなくなりました。

インストールしたフォルダ(C:\jdk1.5.0_04)をシステム環境変数pathに追加(;C:\jdk1.5.0_04\bin)しました。
設定後コマンドプロンプトの再起動もしました。
ユーザー環境変数のところに追加してみたり、FAQ的なものを読んでいろいろやってみたんですがうまくいきません。

200:デフォルトの名無しさん
07/04/05 17:00:46
>>198
DB使え

201:デフォルトの名無しさん
07/04/05 17:10:16
>>200
パフォーマンス的な問題でDBは使えないのです。

202:デフォルトの名無しさん
07/04/05 17:15:07
メモリ上に永続化って無理だろう…常識的に考えて。

203:デフォルトの名無しさん
07/04/05 17:16:36
>>199
コマンドプロンプトで
PATH > hoge.txt
ってやってhoge.txtの内容をここに晒す

204:デフォルトの名無しさん
07/04/05 17:25:52
>>201
「性能上の問題」というが、
問題はCPU使用率やメモリで、DBプロセスがメモリやCPU食うのが問題、というのなら、
hsqldbなどの、軽量で、インプロセスで動くDBを使えばいい。

問題は応答速度で、DB使うと遅いというのなら…どうやっても無理だ。
マシンを買い換えよう。

205:デフォルトの名無しさん
07/04/05 17:49:04
>>203
ありがとうございます。ファイル見ると変更したとこがこうなってました↓
...;C:\jdk1.5.0\bin
フォルダ名を上のものに変えると動きました。
確かにC:\jdk1.5.0_04\binにしてるんですけどなんでこうなってるんでしょうか。。。

206:デフォルトの名無しさん
07/04/05 18:05:58
>>197
クリックはマウスイベント



207:デフォルトの名無しさん
07/04/05 18:34:10
>>201
ってどんな要件だ?
pkを使ってmysqlから検索するのに何msかかる?
>>204の言う通りだと思う

208:デフォルトの名無しさん
07/04/05 19:18:29
>>201
パフォーマンスって言うよりDB選択・導入する権限がYOUに無いからとかじゃないか?

俺の場合はそれでORACLEになったりDB2になったりその他やるたびにDBが代わるんで悲しい。

209:デフォルトの名無しさん
07/04/05 19:32:13
>>205
環境変数の設定に失敗してるんじゃないのか

210:デフォルトの名無しさん
07/04/05 20:17:13
DBがダメか・・・
ファイルに出力、java.util.prefs.Preferencesでレジストリに格納もダメっぽいね。

パフォーマンスが速度の問題であれば
VMを落さずにずっと起動しておけばいいんじゃね?

211:デフォルトの名無しさん
07/04/05 21:19:08
Java上で日本語変換を行うInput Method Frameworkで質問です。
Swingなどのウインドウアプリ以外で日本語変換をJava内で行いたいのですが可能ですか?
IMFのドキュメント URLリンク(java.sun.com) には
「「インプットメソッドクライアント API」のインタフェースとクラスを使うと、"テキスト編集コンポーネント"でインプットメソッドとやり取りでき・・」
と"テキスト編集コンポーネント"と書いてあります。
やりたいことはコマンドライン上などでkonnitiha[スペース]と入力すると
「こんにちは」や「今日は」など日本語テキストとその変換候補を取り、またその変換で確定処理をすると言うことをしたいです。

Swingなどのウインドウ以外で、このようなことはできますか?

212:デフォルトの名無しさん
07/04/05 21:27:00
jni

213:デフォルトの名無しさん
07/04/05 21:41:25
>>212>>211へのお答えでしょうか。jniでぐぐっみます。(:D)| ̄|_


214:デフォルトの名無しさん
07/04/05 22:06:37
>>211
InputMethod Client API は AWT のイベントシステムに組み込まれてるから無理だと思われ。

ダミーのAWT or Swingコンポーネントを作って、
そこに java.awt.Toolkit.getSystemEventQueue で取った
EventQueue に InputEvent を流し込むよーな事をすれば、
上手く行けば InputMethodEvent を発生させられるかもしれん。
それが出来れば、って感じだけど……

仮に それで Windows で動いても Unix で動く保証とかないし、
そもそもに コマンドラインで文字消したりって
標準APIの機能でサポートしてないから諦めた方が無難。

215:デフォルトの名無しさん
07/04/05 22:11:49
例外の質問です。
呼び出し先メソッドで、throws宣言やthrow文で呼び出し元に例外をスローして例外処理をする
というのはわかりましたが、throws、throwの記述がない呼び出し先メソッドで、
ArrayIndexOutOfBoundsExceptionが発生した場合も、呼び出し元で例外処理をしている様なのですが
これは呼び出し元に例外がスローされているのですか?

216:デフォルトの名無しさん
07/04/05 22:17:20
>>215
ArrayIndexOutOfBoundsExceptionはjava.lang.RuntimeExceptionを継承したクラス。
あとは「非検査例外」か「非チェック例外」でぐぐってみればわかると思われ。


217:211
07/04/05 22:26:36
>>214
むむむ、はやりAWTに依存してますか・・・。
コマンドラインは例で、コマンドライン以外でもaとかoとかのデータから日本語を組み立てて、候補を出してその中から選択ってしたかったのですが・・・。
複数OSに対応したかったのでJNIは使いたくないんですよね。

「いや、こうすればできるよ」などあれば引き続きアドバイスお願いします。

218:デフォルトの名無しさん
07/04/05 22:39:13
>>197

他のテキストを表示するタイプのコンポーネントを初期化する前に

new JLabel("<html><a href="hoge">linkee text</a>");

じゃ無理?
流石にハイパーテキストリンクはサポートしてないかも知れん。

219:デフォルトの名無しさん
07/04/05 22:49:41
>>218
無理。ハイパーリンククリックのイベントを拾うには、
標準ではJEditorPaneが必要になる。

220:デフォルトの名無しさん
07/04/05 22:59:49
>>219
やっぱ無理なのか。
見た目の問題ならCSS食わせれば一通りの事は出来るのにな。


221:デフォルトの名無しさん
07/04/05 23:03:52
>>220
JLabelをカスタマイズして作ったら?
「クリックすると指定のブラウザが起動するJLabel」
という仕様で。

222:デフォルトの名無しさん
07/04/05 23:15:46
今だとDesktop#browseに食わせるのが簡単かも。


223:デフォルトの名無しさん
07/04/05 23:29:21
コマンドライン引数で入力した文字列を列数ではなく、文字数を数えたいのですが
どうすればいいでしょうか?

文字列は数えられても、文字数がどうしてもできないのです。

224:デフォルトの名無しさん
07/04/05 23:46:08
argv.lengthじゃなくて、argv[0].length(), argv[1].length()...の和を
求めたいという意味かね?


225:デフォルトの名無しさん
07/04/05 23:47:18
>>223
>>223 の考える文字数」の定義がわからんので答えようがない。

String#length() じゃダメなん?

226:223
07/04/06 00:12:12
10>A、11<B って感じです。
if文で表したいのですが、args.lengthで文字列の数は取得できても
あああああ で 5文字と数えたい
if文に10より小さいならとかの指定がうまくいかないす。
つまり、○○java 2222555aaaaa
B 
ということです。 わかるでしょうか?

227:デフォルトの名無しさん
07/04/06 00:16:59
>>226
いや、1行目から分からん

228:223
07/04/06 00:17:33
書き方がわかりずらいのでもう1度書かせてもらいます。
例えば
ssss aaaaa vvvv
で3列とは数えられる args.length で
でも
aaaaaa
を6文字と数えらない if( ? < 10 ) {
の ? の部分がどうしてもわからないのです・・


229:223
07/04/06 00:22:15
DOSでコマンドライン引数で入力した文字数を表示させて
なおかつ、文字数によって出力の結果をわけたいわけです。
つまり、10までなら A と表示させ、
11以上なら B と 表示させたい。
で、if文を使うのだろうと思いましたがうまくいかないわけです。

230:デフォルトの名無しさん
07/04/06 00:25:35
long変数の値が計算した結果
9223372036854775807を超えたらどういう扱いになりますか?

超えたらエラー表示を出したいんですが。

231:デフォルトの名無しさん
07/04/06 00:28:42
>>229
>>224で答えが出ている

232:デフォルトの名無しさん
07/04/06 00:30:24
>>229
main(String[] args){}
のargsは、Stringの配列だとは、認識できるよな?

つまり、
{"aaa","bbb"}
のような配列が入ってくるわけだ

args.lengthには、上場合は2がかえる。
つまり、配列に入っているStringの数が帰る

だから、配列の最初の要素を取り出して、
そのStringの文字数を数えれば言い訳だ

233:デフォルトの名無しさん
07/04/06 00:46:23
Stringのlengthはメソッドであり、()を付ける必要がある。
配列のlengthは不要。

どうにか出来なかったものかと思うが、今更だな。


234:デフォルトの名無しさん
07/04/06 00:49:11
>>230
オーバーフローして、演算結果としては long であらわせる範囲(要するに下位64bit)が返る。

例外とかは一切無し。検出は自前でやんないとダメ。

235:223
07/04/06 01:06:50
class TestArgs {
public static void main(String[] args) {
if(args[0].length() < 11 ) {
System.out.println("A");
}
else {
System.out.print("B");
}
}
}

コンパイルはできたけどだめでした・・例外処理も加えないとダメですか、

236:223
07/04/06 01:08:26
いや、OKでした 訂正します。なんとまぬけな、

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

237:197
07/04/06 01:51:20
>>206
レス有難うございます。
おお、確かにそうですね。
ラベルは表示するだけって思い込んでたので
イベントハンドラの事をぽっくり忘れてました。

>>218-221
レス有難うございました。

クリックのイベントで実装してみたいと思うのですが
javaからURLを指定してブラウザを起動する事はできますか?
解るかたいましたら教えてください。

238:デフォルトの名無しさん
07/04/06 01:55:07
>>237
つ java.awt.Desktop

239:197
07/04/06 01:56:08
すいません。連続して質問します。

JLabelに表示される文字列を
スクロールして流れるように表示させたいです。
自分ではTimerクラスを使って文字列を
少しずつ編集すれば出来るかと思ってますが、
重そうであまり賢い方法とは思えません。
そういった機能を持つクラスや別の方法はありますか?

240:197
07/04/06 01:56:51
>>238
うっす。どうもっす。
早速調べてみます。

241:デフォルトの名無しさん
07/04/06 02:53:28
>>239
環境にもよるし編集内容にもよると思うが全然重くなかった
public class MarqueeLabel extends javax.swing.JLabel implements java.awt.event.ActionListener {
private StringBuilder sb = new StringBuilder();
public MarqueeLabel(String text) {
sb.append(text);
setText(sb.toString());
new javax.swing.Timer(40, this).start();
}
public void actionPerformed(java.awt.event.ActionEvent e) {
char c = sb.charAt(0);
setText(sb.deleteCharAt(0).append(c).toString());
}
public static void main(String[] args) {
javax.swing.JFrame f = new javax.swing.JFrame();
f.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
f.add(new MarqueeLabel("abc def ghq jkl mno pir stu vwx yz@ "));
f.pack();
f.setVisible(true);
}
}

242:197
07/04/06 03:48:44
>>241
レス有難うございます。
確認までして頂いて感謝です。

あの、全く関係ないんですけど
今あるjavaGUIらしいデスクトップアプリを使っていて
その中の文字列がスクロールしている部分があります。
その文字列のスクロールが文字単位ではないんです。
Timer使って文字列を編集しながらスクロールさせると
どうしても文字毎単位になっちゃうじゃないですか?
なんか意味不明な説明になってきたような・・・

例えば、Timerを使った方法だと
"abcde"という文字列がラベル上に左詰で表示されているとして
次にスクロールしたら"bcde"という表示になりますよね。
左端のaは絶対にあるかないかです。
でも、最初に話しましたアプリだと、aの一部も
表示しながらスクロールされるんです。
文字列としてではなく画像として扱ってるんかな・・・

なので、そういったスクロールさせるクラスとかメソッドが
あるのかと思って>>239で質問しました。
でも、これ以上時間かけても解らないので
もう>>241の方法で行きたいと思います。
有難うございました。


243:デフォルトの名無しさん
07/04/06 03:51:01
servletではなく,クライアントPCで動作するアプリケーションとして
ファイルのアップロードをするプログラムを作りたいと考えています

サーバ側でファイルを受け取るのは一般的な画像掲示板を想定しています
その際multipart/form-dataでエンコードされたデータをPOSTすれば良いことまでわかりました

エンコードにjavax.mail.Multipartを利用すれば良さそうだと思いましたが,
デフォルトでform-dataに対応していない(サブクラスの記述をしなければいけない)ため,
現在の私に使えそうにありません
そこで参考になりそうなサイト/書籍を紹介していただけませんでしょうか

244:デフォルトの名無しさん
07/04/06 03:56:58
>>242
自前で描いちゃえ

245:デフォルトの名無しさん
07/04/06 04:50:35
>>242
>>244の言うようにJComponentあたりを継承して自前で書くのが一番描画の自由度が高いね
自由度は低いけどこういう手もある
public class SmoothScrollLabel extends javax.swing.JScrollPane implements java.awt.event.ActionListener {
private javax.swing.JViewport viewport;
private java.awt.Point point = new java.awt.Point();
public SmoothScrollLabel(String text) {
viewport = getViewport();
viewport.setView(new javax.swing.JLabel(text));
new javax.swing.Timer(40, this).start();
}
public void actionPerformed(java.awt.event.ActionEvent e) {
int width = viewport.getView().getSize().width;
if (point.x > width) point.x = -width;
else point.x++;
viewport.setViewPosition(point);
}
public static void main(String[] args) {
javax.swing.JFrame f = new javax.swing.JFrame();
f.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
f.add(new SmoothScrollLabel("abc def ghq jkl mno pir stu vwx yz@ "));
f.pack();
f.setVisible(true);
}
}

246:デフォルトの名無しさん
07/04/06 05:21:26
>>243
このままで動作するかどうかは分からんが、これを基点に調べてみたら?
URLリンク(java-house.jp)
これならjavamailもいらない。

247:デフォルトの名無しさん
07/04/06 09:11:52
>>243
URLリンク(jakarta.apache.org)
URLリンク(svn.apache.org)


248:230
07/04/06 09:48:49
>>234
ありがとうございます。

オーバーフローの検出はどうするんでしょう?
マイナスになったら、と思いましたが、
足し算は出来てもでかい数字同士の掛け算だとマイナスにならないと気付きました。

249:デフォルトの名無しさん
07/04/06 09:57:26
BigInteger使ったら?

250:デフォルトの名無しさん
07/04/06 10:18:56
>>249
iアプリ作ってるんで。

251:デフォルトの名無しさん
07/04/06 10:36:26
画像をナナメに表示するにはどうしたらいいのでしょうか?
drawImage(image[0],x, y,width,height,this);しか知らず…orz

252:デフォルトの名無しさん
07/04/06 10:40:27
>>251
ヒント:AffineTransform

253:デフォルトの名無しさん
07/04/06 10:43:07
何でヒントだけ?

254:デフォルトの名無しさん
07/04/06 10:47:35
>>248
> オーバーフローの検出はどうするんでしょう?
自前でやるしかない。

速度気にしないなら、c = a * b; した後で、
c / a == b ならオーバーフローしてないと判断する、とかね。

255:デフォルトの名無しさん
07/04/06 10:52:16
>>252
ありがとうございました。
rotate();だとか、それっぽい関数がありましたので勉強してみます。

256:デフォルトの名無しさん
07/04/06 10:58:48
>>254
それでやると、 -1 * Long.MIN_VALUE でオーバーフローしてても検出できない。
他にもあるかもしらんけど。

257:名無しさん
07/04/06 11:43:55
URLリンク(gihyo.jp)

ってどうよ

258:デフォルトの名無しさん
07/04/06 11:57:29
>>254
ありがとうございます。
それで出来ました。

259:デフォルトの名無しさん
07/04/06 15:33:14
Webアプリを作成しています。
画像ファイル用のディレクトリにある一部の画像が表示されないのですが、これ
はどの辺りに原因があるでしょうか。
開発環境から持っていった画像は表示されるのですが、フォームからアップロー
ドした画像が表示されません。いろいろ調べましたら、サーバ上の別のディレクト
リからコピーした画像も表示されないようです。画像ファイルのURLを直接指定
しても404NotFoundになってしまいます。
つまり、初期段階からあるHTML用の画像は表示されるのですが、後から追加し
た画像、フォームからアップロードした画像が表示されません。表示されない画
像を開発環境上のディレクトリにコピーして、それをサーバ上に持っていくと表示
されました。
初歩的な質問かもしれませんが、分かる方いらっしゃいましたら教えてください。

260:251
07/04/06 17:30:52
画像の回転について詰まってしまっています。
以下のプログラムにおいて、rotateする前に(50,50)に表示しようとした画像まで
回転して表示されてしまうのはなぜなのでしょうか?
また、それを回避するにはどう書けばいいのでしょうか?

ソース
URLリンク(www.za.ztv.ne.jp)

実際のアプレット
URLリンク(www.za.ztv.ne.jp)

261:デフォルトの名無しさん
07/04/06 17:52:57
>>260
ざっと見たところここが怪しい。
>g2.setTransform(at);
omote.setTransform(at);

262:デフォルトの名無しさん
07/04/06 18:00:42
>>260
> Graphics2D#setTransform(AffineTransform Tx)

> Graphics2D コンテキストで Transform を上書きします。警告:このメソッドは新しい座標変換を既存の変換上で適用する
> 目的では使用しないでください。

> 座標変換を追加するために、transform、rotate、scale、またはshear メソッドを使用します。
この「transform、rotate、scale、またはshear メソッド」はGraphics2Dのね。

263:デフォルトの名無しさん
07/04/06 18:14:42
>>260
omote,uraのネーミング変じゃないかい?混乱したぞ。

Graphics2D g2=(Graphics2D) g;
omote.drawImage(image[0],50,50,this);
//AffineTransform at=new AffineTransform();
//at.rotate(90*Math.PI/150.0,150+18,150+18); //画像の中心を回転の中心に合わせる
//g2.setTransform(at);
AffineTransform at = ((Graphics2D)omote).getTransform();
((Graphics2D)omote).rotate(90*Math.PI/150.0,150+18,150+18);
omote.drawImage(image[0],150,150,this);
((Graphics2D)omote).setTransform(at);
g.drawImage(ura,0,0,this);


264:251
07/04/06 18:15:38
>>261
GraphicsクラスのomoteにはsetTransformメソッドがないと怒られてしまいました。

>>262
う~ん、setTransformで座標を変えるやり方自体がよくないってことなのでしょうか。

最終的にやりたいのはマウスなりキーボードなりに反応して画像が回転して動く、ちらつきのないアニメーションです。
せっかく回答してもらってるのにいまいちピンとこない辺り、
勉強が足りないのかもしれませんねorz

265:デフォルトの名無しさん
07/04/06 18:18:32
あ、g2もいらんね。
//Graphics2D g2=(Graphics2D) g;


266:251
07/04/06 18:55:09
>>263>>265
おかしなネーミングで申し訳ないですorz
とりあえずやりたかった動作が確認できました。ありがとうございました。
完全に置き換えずにその時々で変換してやる必要があるってことですね。

267:243
07/04/06 21:50:01
>>246-247
今帰ってきました
ありがとうございます
これから読んで,頑張ろうと思います

268:デフォルトの名無しさん
07/04/07 08:48:29
AXISのTCPMonitorを使用して外部インターネット(HTTP)との通信内容を調べたいのですが可能でしょうか?
ローカルマシンのwebアプリとの通信内容は見れたのですが。

269:Java ◆KbC0ODWrJ2
07/04/07 09:38:18
可能

270:デフォルトの名無しさん
07/04/07 10:51:46
>>269
具体的にはListenPort,TragetHost,TargetPortをどのように設定したらよいでしょうか。

271:デフォルトの名無しさん
07/04/07 11:51:50
リクエスト送った時と送らない時で
netstat -aの差分とってみりゃいいじゃん


272:デフォルトの名無しさん
07/04/07 15:59:03
pattern、Matcherクラスの勉強してるときにある本の中にこういうコードがあったんですが

Pattern p = Pattern.compile("[a-z]");//正規表現をPatternクラスのオブジェクトにコンパイル
Matcher m = p.matches("aaaaaaaa");//指定されたパターンと、マッチング対象の入力テキストとが含まれることになるMatcherオブジェクトを作成する

この2行目のメソッド名はmatcherと間違ってるように思うんですがどうなんでしょうか?
JDKの資料調べてみて戻り値や引数の数からおかしいように思えます。
本の正誤表には載ってませんでした。おねがいします。

273:デフォルトの名無しさん
07/04/07 16:13:54
matchesはbooleanを返す
macherはMatcherインスタンスを返す
ので、本が間違ってるね。


274:デフォルトの名無しさん
07/04/07 18:34:46
javaでビープ音出したいんですけど
どうやったらできますか?

275:デフォルトの名無しさん
07/04/07 19:33:18
Toolkit.beep()

276:デフォルトの名無しさん
07/04/07 19:33:42
開発言語:JAVA、データベース:Postgresql8.1の環境で開発してます。

Driver driver = DriverManager.getManager(url文字列);
※url文字列 jdbc:postgresql:プロジェクト名
上記コードでSQLExceptionが発生します。
データベースアクセスエラーのようですが何故発生するか分かりません。
jdbcドライバが認識されていないのでしょうか!?

ご回答、アドバイスの方よろしくお願いします。

277:デフォルトの名無しさん
07/04/07 19:37:41
接続できてないんじゃないのか。
コマンドラインから接続できるか確認すべき。


278:276
07/04/07 19:44:29
>>277
ローカルのDBなので、DOSプロンプトからログインできることも確認できました。

279:デフォルトの名無しさん
07/04/07 19:47:26
boolean型の値を出す関数を組み合わせて、if(A&&B)のように使うことは出来ますでしょうか?
また、全てfalseの場合にある動作をさせたいのですがどう書けばよろしいでしょうか?
-func1()&&-func2()&&…のようにマイナスで反転させることってできませんよねorz

280:274
07/04/07 19:55:10
>>275
レス有難うございます。
あの、指定した秒数だけビープ音を出したいんですけどできますか?
別にビープ音じゃなくても音なら何でも構いません。

281:デフォルトの名無しさん
07/04/07 19:55:36
!func()で反転するじゃん

282:デフォルトの名無しさん
07/04/07 20:01:12
>>273
ありがとうございました。

283:デフォルトの名無しさん
07/04/07 21:29:23
>>276
原因はよく判らんけどとりあえずorg.postgresql.ds.PGPoolingDataSource使ってみれば?
JavaDocでも
>データソースへの接続時には DataSource オブジェクトの使用をお勧めします。
とかいってるし。


284:デフォルトの名無しさん
07/04/07 21:38:25
>>279
そもそも && や || は1行目みたいなことのために使うものだ。

全てがfalseの場合、は !A && !B のように書く。論理の反転(否定)は!演算子。
また、ド・モルガンの法則というものがあり、
!A && !B は ! ( A || B )ともかける。


285:デフォルトの名無しさん
07/04/07 21:51:10
>>280
何に使うのかわかんないけど
System.out.printでbeepをあらわすエスケープシーケンス出すとか
javax.soundを使ってみるとか

286:276
07/04/07 22:15:45
>>283
回答ありがとうございます。

>org.postgresql.ds.PGPoolingDataSource使ってみれば?
使ったことが無いのでなんとも言えませんが、やってみます。

287:デフォルトの名無しさん
07/04/07 22:20:06
>>276
エラーの内容を晒さないと無理かと

288:デフォルトの名無しさん
07/04/07 22:31:52
>>271
わかんねっす

289:デフォルトの名無しさん
07/04/08 00:50:51
>>288
ごめん書き方悪かったかな。
TCPモニタを使用しない状態(<ここ重要)で、リクエスト送った時のローカルportとリモートhost,port
をDOSプロンプト(Windows?)のnetstatを使って見てみればということ。
やり方は、結果はネットワーク的に何もしない状態でもたくさんでてくるから(単一マシン内で起こるパイプとか、いろんなサービス(共有)とかのレシーバ待機)、
リクエスト送った時と送らない時のnetstatの結果を比較してみてその差が求めたいものだと思う。
例えば、
netstat -a 1>c:tcpmon.txt
とかやれば、1[interval]のオプションついてるから1秒おきにctrl+c押すまで延々とnetstat発行してくれてtcpmon.txtにキャプチャーしてくれる。(netstat ?でヘルプを見て)
その状態の途中で、リモートにリクエストを送ってやる。
そして、おもむろに時間がすぎた後ctrl+c押してnetstatコマンドを止めてやる。
そして連続して出されたnetstatの結果の差を見る。差の中にリモートhostとリモートportがあると思う。
あとはリスナーのやり方含めてローカルホストの場合と同じでしょう。

290:デフォルトの名無しさん
07/04/08 01:23:42
EclipseってC#みたいですね

291:デフォルトの名無しさん
07/04/08 08:27:17
未だにifの条件式考えるときに、||がいいか&&がいいか頭をひねってしまう。
特に条件が!の時に。みんなこんな?それとも俺が低脳なだけ?orz

292:291
07/04/08 08:44:23
失礼、あまりにも低脳な発言ですた。

293:デフォルトの名無しさん
07/04/08 09:39:07
MPGの全フレームを抽出するためのソフトを作るために
Javaライブラリを探しているんだけど、
こういうのってどこで探せば見つかるの?

294:デフォルトの名無しさん
07/04/08 11:07:08
google

295:デフォルトの名無しさん
07/04/08 11:10:53
>>294
探したけど無かったw

296:デフォルトの名無しさん
07/04/08 11:13:57
もっとがんばれ

297:質問
07/04/08 11:35:41
JavaとCどっち学んだほうがいいか?

298:デフォルトの名無しさん
07/04/08 11:48:51
どっちって。。。当然両方だろ。
プログラマなら何種類かの言語使えるのが普通。
そこまでじゃないならVBやスクリプトで充分。

299:デフォルトの名無しさん
07/04/08 11:52:19
>>295
JMF以上のことがいるのか?
ibmにも有償ライセンスのがあった気がするが

300:デフォルトの名無しさん
07/04/08 11:54:49
>>297
初心者ならJavaとC#覚えればいいと思う
熟練者ならC++・JavaScript・PL/SQLなども覚えるべき

301:デフォルトの名無しさん
07/04/08 11:55:07
>>297
どっちでもいいと思う
俺はJavaとperlだけだな

302:デフォルトの名無しさん
07/04/08 23:33:24
>>295
JMFで十分。それ以上は自前。

303:デフォルトの名無しさん
07/04/09 18:53:27
よろしくお願いします。
次のようなコードで、あるクラスのプロパティに、新規に作成した
オブジェクトを代入する場合、func2のように、一度、メソッドの
中で一次変数的に作ったものを代入するのは、よくないのでしょうか。
C++などでは、駄目なことは理解してますが、Javaでもマズイことなのか
どうか半信半疑なのですが。。

class someclass {

ArrayList arr;

void func1(){
this.arr = new ArrayList();
}

void func2(){
ArrayList tarr = new ArrayList();
this.arr = tarr;
}

}

304:303
07/04/09 19:01:05
あ、失礼しました。new による作成ならC++でもヒープですね。
Javaでも、上記は問題ないように思いましたが、もし違っていましたら
ご指摘頂ければ幸いですが、とるに足らない内容でしたら、スルーして
頂ければと思います。すみませんでした。

305:デフォルトの名無しさん
07/04/09 19:45:28
全く何の問題もないにょ

306:デフォルトの名無しさん
07/04/11 09:28:03
ん、何が問題かよく分からんね。スコープは変数に掛かってくるのであって
オブジェクトの生成場所ではないですよ。

307:デフォルトの名無しさん
07/04/11 20:49:47
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class TestClass extends Applet{
public void init() {
Scrollbar S = new Scrollbar(Scrollbar.HORIZONTAL);
S.setBounds(new Rectangle(15, 15, 180, 25));//ここがうまくいってない
add(S);
}
}

上のようなコードを書いて実行してもスクロールバーの位置・サイズが変更できません
どのように修正したらよいのでしょうか?

308:デフォルトの名無しさん
07/04/11 21:07:29
>>307
URLリンク(www.google.com)

309:デフォルトの名無しさん
07/04/11 21:17:00
>>308
ありがとうございます
setLayout(null);
とすることで解決できました

310:デフォルトの名無しさん
07/04/11 21:25:35
プログラミングに関しては全くの初心者です。
iアプリを作りたいと思ってるんですが、プログラム組むのになにか専用のツールがあるんでしょうか?
それともメモ帳に打ち込んで作るのでしょうか?

311:デフォルトの名無しさん
07/04/11 21:26:48
>>310
URLリンク(www.smg.co.jp)

312:デフォルトの名無しさん
07/04/11 21:56:30
すいませんプログラム初心者です。%=について悩んでおります。
具体的には
public class Enzan {
public static void main(String[] args) {

int x = 11;
int y = 10;

x %= 2 * 100;

System.out.println(x);

}

}
についてコンソールに11と表示されます。

自分ではx %= 2が1なので1*100で100がxに代入されると考えたのですが・・・。

313:デフォルトの名無しさん
07/04/11 22:03:57
>>312
演算子の結合順位調べろ。

> 自分ではx %= 2が1なので1*100で100がxに代入されると考えたのですが・・・。
仮に、前半の「x %= 2が1」が 先に実行されたとしても
後半の「1*100で100がxに代入される」は絶対ないだろ。
前半部分には代入演算子あるけど、後半には何処にも代入演算子が無いし。

314:デフォルトの名無しさん
07/04/11 22:52:28
equalsメソッドのオーバーライドについて質問です。制約として
・対称性 (symmetric): null 以外の参照値 x と y について、x.equals(y) は、y.equals(x) が true を返す場合だけ true を返す
などがありますが、これらの制約は、x,yが同クラスのインスタンスとしたことを前提としてるんですよね?
てなると、オーバーライドしたequalsメソッドで、AクラスオブジェクトとBクラスオブジェクトを
比較してtrueを返すような使われ方は、一般的ではないわけですか?

315:デフォルトの名無しさん
07/04/11 23:03:03
>>314
一般的ではないという以前に、別のクラスのオブジェクトが等しいとみなされる場合があるのか?

316:デフォルトの名無しさん
07/04/11 23:07:06
>>315
Mapのイコーリティって仕様で決まってんじゃなかったっけ。

317:デフォルトの名無しさん
07/04/12 00:17:17
>>314
そんな実装、やってみれば無謀な事がわかる
A の何と B の何を比べるつもりなのか

318:デフォルトの名無しさん
07/04/12 01:11:02
equals を再定義するにあたって、うっかり getClass の比較を忘れてたりすると、そんなことが起きたりする。

319:デフォルトの名無しさん
07/04/12 01:16:14
>>318
getClass() での比較忘れてても、キャスト時に ClassCastException が飛ぶだけでは?

320:デフォルトの名無しさん
07/04/12 01:17:22
generics使ってるとそんなequalsは使えない
Collectionで使う以外でequalsのオーバーライドはしたことないし

321:デフォルトの名無しさん
07/04/12 01:25:30
……。 Generics があっても equals の引数型は Object で固定だし。

322:デフォルトの名無しさん
07/04/12 01:37:36
>>319
ちがうちがう

class Sample {
    private final String id;
    // ...
    public boolean equals(Object obj) {
        return (obj instanceof Sample) && ((Sample)obj).name.equals(this.name);
    }
}

適当だけど、こういうプログラムを昔よく書いてた経験がありましてですね。
尤も、この解決策は、
1) instanceof を getClass の比較に変更
2) Sample または equals の宣言に final をつける
3) クラスが異なっていても id が同じなら同じとみなすようにマニュアルを変更
の3種類あるけど。

323:デフォルトの名無しさん
07/04/12 01:41:34
いや、3種類も無いな。3番は忘れてくれ。

324:デフォルトの名無しさん
07/04/12 01:47:50
java.util.Date が3番(?)だったりする罠。

どーでも良いけど、3番だと実装が name 比較してるから拙い罠。

325:デフォルトの名無しさん
07/04/12 01:50:00
>>315
ListやMapの実装クラスは中身が一緒だったらequalsがtrueを返したような。
そういう意味ではクラス自体が違ってても等しいとみなしてよいことも
なくはない。

326:デフォルトの名無しさん
07/04/12 07:38:33
>>325
うん、普通にあるよな。

327:デフォルトの名無しさん
07/04/12 08:22:47
車を運転する簡単なゲームを作っています。
左回転と右回転で何故か回転半径が違ったりする問題はありますが、
とりあえず車の挙動は完成しました。
現在壁にぶつかったら止まる動作を作っているのですが、
どうも上手くいかずここに書き込ませていただいた次第です。

アプレットの赤い点は、画像の表示位置である(car_x, car_y)を示したものです。
現在はこの座標を衝突判定に使っているので、前進しながらこの点が黒枠にぶつかると止まるはずです。
画像を回転させているからか画像左上の角と赤い点が一致しないことがあり、悩んでいるのはその修正です。
crash_check()内にあるコメントアウトは私があれこれ考えて修正させてみた式なのですが、
この修正を行ってRectangleに修正値である(car_x_check, car_y_check)を用いてもそれはそれでおかしな点を指してしまいます。
アプレット左上の数値はcar_angle(車の向いている方向)を示しています。
画像の回転もこの数値を元に行われます。

ソース
URLリンク(www.za.ztv.ne.jp)

アプレット
URLリンク(www.za.ztv.ne.jp)

328:デフォルトの名無しさん
07/04/12 11:45:17
Javaの勉強をしようと思うのですが
触り始める前に前提知識としてこっちの言語かじっとけみたいなのってありますか

329:デフォルトの名無しさん
07/04/12 12:17:53
言語難易度
C#>JAVA>C>C++
言語ルーツ
1.C(基本情報技術者試験と一緒に学習すると効率が良い)
2.C++(Cを学習済みの人でないと厳しい)
3-1.JAVA(UMLの勉強と一緒に行うと効率が良い)
3-2.C#(VisualStudioでGUIの作成を一緒に学習すると効率が良い)

330:デフォルトの名無しさん
07/04/12 13:00:31
オブジェクト指向とMVCくらいは覚えた方が良いかも。

#ここでSmalltalkとか出してくると荒れる原因か・・・
俺はSelfの方が好きだが。

331:デフォルトの名無しさん
07/04/12 13:48:41
>>328
まず英語。

332:デフォルトの名無しさん
07/04/12 14:06:24
JAVA初心者にオススメのIDEを教えてください。

333:デフォルトの名無しさん
07/04/12 14:10:15
>>332
eclipse以上

334:332
07/04/12 14:21:18
ありがとうこざいます。
もうひとつ質問なんですが、携帯のアプリは専用のツールを用いないと作成できないのでしょうか?

335:デフォルトの名無しさん
07/04/12 14:33:06
うん

336:デフォルトの名無しさん
07/04/12 14:44:55
そのツールは、プログラミングするときに必要なのか、単にファイルを変換するときだけに必要なのかどちらなんでしょう?

337:デフォルトの名無しさん
07/04/12 15:24:03
javaでグラフ描画したいのですがどんな手法が ありますかね? 今のところJFreeChartがフリーだし シェア ○ 信頼性 ? 拡張性 ○ 性能  ○ と思ってるのですが他にいいヤツありますか?

338:デフォルトの名無しさん
07/04/12 16:18:59
うん

339:デフォルトの名無しさん
07/04/12 16:29:01
フリーソフト、シェアウェア使うなら使用許諾条件をきちんと読まないと
後で大変なことになるから気をつけた方がいいよ。

340:デフォルトの名無しさん
07/04/12 16:52:55
windows2000を使っています。
サーバプログラムを作成したのですが、
起動のときにコマンドプロンプトで
%JAVA_HOME%\bin\java.exe -server -classpath %CLASSPATH% MainClass
とやると、当たり前ですがコンソールが返ってきません。
%JAVA_HOME%\bin\javaw.exe -server -classpath %CLASSPATH% MainClass
とやると返ってくるのですが、
これをbatファイルに記述して、末尾に exit を追加。
これをダブルクリックしても自動でプロンプトが閉じてくれません。
このバッチファイルをダブルクリックで起動→プロンプト終了
とするにはどうすればいいのでしょうか?

341:デフォルトの名無しさん
07/04/12 17:40:51
>>340
スレ違い
スレリンク(tech板)l50

342:デフォルトの名無しさん
07/04/12 18:21:49
>>325-326
いやー。普通にあるんだけど、3番を解決策と言うのはちょっと違うと思いまして。

343:デフォルトの名無しさん
07/04/12 19:14:35
sjc-pの問題でコンパイルエラーが起きるか、それとも実行時エラーが起きるかっていう問題が
結構多いんだけど、この見分け方って経験しかないの?

344:デフォルトの名無しさん
07/04/12 19:19:10
コンパイルエラーは論理的に構文が間違っていると大抵起こるし、
実行時エラーは内部割込みを行うエラーと考えればわかると思うけど。

345:デフォルトの名無しさん
07/04/12 19:36:01
>>343
コンパイルは構文エラーで、実行時はぬるぽやら配列インデックスやら
まあ、後者は RuntimeException のサブクラスを見てみれば、色々有るでよ

346:デフォルトの名無しさん
07/04/12 19:37:43
>>343
言語仕様勉強すりゃ、どっちかわかる。
一部の実行時エラーはAPI仕様勉強しないとわからんかもしれんが。

347:デフォルトの名無しさん
07/04/12 19:52:13
まだ初心者なんで言語仕様よんでも理解できそうにないです。
RuntimeException のサブクラスが全部実行時エラーなんですか?

348:デフォルトの名無しさん
07/04/12 20:03:22
RuntimeExceptionとそのサブクラス

349:デフォルトの名無しさん
07/04/13 00:26:49
PipedInputStreamに1024バイト以上のデータを突っ込むとだんまりするんだけどなんで?
PipedOutputStream pos = null;PipedInputStream pis = null;DataOutputStream dos = null;
try{
pos = new PipedOutputStream();pis = new PipedInputStream(pos); dos = new DataOutputStream(pos);
for(int i = 0; i < 2048; i++){
dos.writeByte(1);
}
}catch(IOException e){
e.printStackTrace();
}finally{
try{
dos.close();pis.close(); pos.close();
}catch(IOException e){
e.printStackTrace();
}
}

350:デフォルトの名無しさん
07/04/13 00:43:17
Javaでの実装は知らんが一般にパイプは
突っ込むだけでは詰まるから適当に吸い出す必要あり。

351:デフォルトの名無しさん
07/04/13 00:46:05
>>349
書き込むばかりで読み出してないからだ。
PipedInputStreamのバッファサイズ以上のデータを書き込めばパイプが詰まるのは当たり前。

352:K.K.K
07/04/13 00:50:01


int[][] java = {
{100,200,300,400,500,600},
{10,20,30,40,50,60}
};

この2次元配列でこの部分の{100,200,300,400,500,600}配列のLengthを取得し
、そのLengthの1番目なら100と10を取得、2番目なら200と20を取得、、、
を取得したLength分したいのですが、どのようにすればいいんでしょうか?





353:デフォルトの名無しさん
07/04/13 01:09:25
int[][] java = {
{100,200,300,400,500,600},
{10,20,30,40,50,60}
};
for (int i = 0, length = java[0].length; i < length; i++) {
System.out.printf("%d: %d%n", java[0][i], java[1][i]);
}

354:デフォルトの名無しさん
07/04/13 01:13:05
>>337
が文字化けしてるのは俺だけ?

355:デフォルトの名無しさん
07/04/13 02:55:43
Mapを配列にいれてアクセスするにはどうすればいいですか?
getするところで 警告:[unchecked] 無検査変換ですになってしまう。

 public static void main(String [] args) {
  Map<String,String> [] maps = new HashMap[2];
  maps[0] = new HashMap<String,String>();
  maps[1] = new HashMap<String,String>();
  maps[0].put("hoge","ほげ");
  System.out.println(maps[0].get("hoge"));
 }


356:デフォルトの名無しさん
07/04/13 02:56:49
genericsの仕様だから無理

357:デフォルトの名無しさん
07/04/13 02:57:29
まちがい
putするところで 警告:[unchecked] 無検査変換ですになってしまう。


358:デフォルトの名無しさん
07/04/13 02:58:29
げー、なんか抜け道ないかなぁ。

359:デフォルトの名無しさん
07/04/13 03:18:12
>>358
抜け道はない。
配列がだめならListを使えばいいじゃない。
public static void main(String[] args) {
List<Map<String,String>> maps = new ArrayList<Map<String, String>>(2);
maps.add(new HashMap<String, String>());
maps.add(new HashMap<String, String>());
maps.get(0).put("hoge","ほげ");
System.out.println(maps.get(0).get("hoge"));
}

360:デフォルトの名無しさん
07/04/13 04:10:06
>>359
おお、その手があったか!
ありがたう!

361:デフォルトの名無しさん
07/04/13 09:27:26
iアプリのテキストボックスで数値貰って計算したいんですが、

テキストボックスを文字禁止で数値限定にする方法ありますか?


362:デフォルトの名無しさん
07/04/13 11:33:36
よろしくお願いします。

Win2003 + Java + struts + spring + JDBC + Oracleでのシステムなのですが
不可思議な動きをして困っています。

例えばIDがユニークキーとなるテーブルがあったとして

//テーブルに該当するIDがあれば削除する。;
List ret = DBSearch.search(id);
if(ret != null || ret.isEmpty){
DBDelete del = new DBDelete();
del.delete(id);
}
//テーブルにレコードをinsert
DBInsert ins = new DBInsert();
ins.insert(id);

のようなロジックを組んで、実際にサーバ上で走らせてみるとDBのユニークキーエラーが出たり出なかったりします。
一度エラーが出ても、もう一回同じ処理を走らせると正常終了したりします。

どこかで「Javaのvoiのvoidは戻り値がないため、関数を呼び出したらその終了を待たずに次の処理に行く」
と言う話を聞いたことがありまして、
もしそうなら上記のdel.delete(id)よりも先にins.insert(id)が走ってしまい、ユニークキーエラーになるのかな
と思い御相談させていただきました。


「Javaのvoid関数は戻り値がないため、関数を呼び出したらその終了を待たずに次の処理に行く」
というのは本当でしょうか。?

意味がなくてもbooleanやlongなどの戻り値をつけたほうが良いのでしょうか??



363:デフォルトの名無しさん
07/04/13 11:38:08
>>362
心配ならレコードをinsertする処理の前に
IDが存在しなくなるまで抜けないループでもつければいいと思うが。

364:デフォルトの名無しさん
07/04/13 12:55:23
>>362
>「Javaのvoid関数は戻り値がないため、関数を呼び出したらその終了を待たずに次の処理に行く」 
>というのは本当でしょうか。? 
んなことはない。それが出来たらスレッドはいらなくなる。

予想するとこんな感じでは?
deleteとinsertで別のコネクションを使っていて、
delete側がcommitしないままコネクションを放置している。

365:デフォルトの名無しさん
07/04/13 12:56:55
>>362
メソッドの戻り値がvoidだというだけで非同期なメソッド呼び出しになるなんてことはありえない。
そんな言語仕様嫌過ぎる。
呼び出したメソッドの中で新たにスレッドを動かして、
そのスレッドの中で処理が続いているにも関わらずreturnする実装になっているとか、
呼び出したメソッドがさらに非同期なメソッド呼び出しを行っているとかしていない限り。
そのメソッドの仕様を見て非同期メソッド呼び出しになっていないか確認すれ。
もし非同期メソッドなら対処方法としては>>363でいいと思う。

366:デフォルトの名無しさん
07/04/13 13:02:44
class Hoge {
int x;
void A() { x=1; }
void B() { x=2; }
void C() { A(); B(); }
}
これでC()を呼び出した後でxの値がどうなるか分からないなんてJavaは酷い言語だなw

367:デフォルトの名無しさん
07/04/13 13:21:17
>>366
C() の内部の B() の呼び出しが終わって C() の呼び出しが終わる前に、
別のスレッドが x の値を書き換える可能性があるって話?

他の言語でも同じだと思うが。

368:デフォルトの名無しさん
07/04/13 13:24:47
synchronized

369:デフォルトの名無しさん
07/04/13 13:31:03
synchronized しても、 x は private じゃないのでパッケージ内の他のクラスから触り放題だよなぁ。

370:デフォルトの名無しさん
07/04/13 13:45:08
>>367
ちがうちがう
単に「Javaのvoid関数は戻り値がないため、関数を呼び出したらその終了を待たずに次の処理に行く」 んだったら
シングルスレッドだろうとxが2になっている保証はないと言いたいだけだ

371:デフォルトの名無しさん
07/04/13 13:54:10
>>370
言いたいことはわかるよ
要するに「( ´,_ゝ`)プッ」ってことだろ

372:デフォルトの名無しさん
07/04/13 14:18:41
>>362
ret != null || ret.isEmpty
ret が null じゃないか、もしくは、空ならば。

何行目でユニークキーエラーが出てるのかしら

373:デフォルトの名無しさん
07/04/13 15:51:57
JDKってどこでダウンロードできますか?
本に載ってるURLも、Sun社のサイトないのリンクも、
サーバエラーで見れません。

どなたか事情をご存知でしたら教えて下さい。

374:デフォルトの名無しさん
07/04/13 15:54:18
>>373
あ~さひがSUNSUN、おはよ~うSUN

375:デフォルトの名無しさん
07/04/13 16:29:58
>>373
>>1
URLリンク(www.wikiroom.com)
からたどれる。

376:デフォルトの名無しさん
07/04/13 16:37:07
>>373
何処を見てエラーが出たのか知らんが、一応

Java SE Downloads
URLリンク(java.sun.com)

377:デフォルトの名無しさん
07/04/13 16:41:25
>>375
ありがとうございます。

JDK

つぎに必要になる物は、Javaのコンパイラです。 Javaのコンパイラは、
JDK(J2SE Development Kit)の中にふくまれています。つぎのサイトからJDKをダウンロードしてください。

ダウンロード Java 2 Platform Standard Edition 5.0 (J2SE)

のところですよね?
リンク先URLは URLリンク(java.sun.com) ですが、
やはりサーバエラーになります。URLが変わったんでしょうか?
何回やっても見れません。

378:デフォルトの名無しさん
07/04/13 16:46:18
>>377
見れるよ?

おまいんとこのプロバが経路障害起こしてるんかも

379:デフォルトの名無しさん
07/04/13 16:50:16
>>378
そうですか…問題はサイト側じゃないんですね。
プロバイダに問い合わせてみます。

380:デフォルトの名無しさん
07/04/13 17:47:21
OCNに電話したら20分待ち、サンに電話したら17:30まで

死ねよクズども 殿様営業しやがって

381:デフォルトの名無しさん
07/04/13 17:56:59
sun の web サイトは、いつの時代も何処に何があるのかわからない構造になってる。
ついでに URL もよく変わる。

URLリンク(java.sun.com)

382:デフォルトの名無しさん
07/04/13 18:06:52
SUNに繋がらん・・・

383:373
07/04/13 18:09:21
>>381
ありがとうございます。
SUNのサイトを見てみましたが、

URLリンク(jp.sun.com)<)

両方とも見れませんでした。

384:デフォルトの名無しさん
07/04/13 18:11:47
>>382-383
Sunからアク禁食らってるか
経路上のどこかのルータが死んでるか
DNSが引けてないかのどれかじゃない?

385:デフォルトの名無しさん
07/04/13 18:18:40
javaのサイトみれねぇ。

386:362
07/04/13 18:27:06
>>363-365
素早いアドバイス、本当にありがとうございます。
今回のシステムでは1ターンの中でスレッドを分けて処理をする、というようなことは行っていません。
SpringのJDBCDaoSupportを使ってDBとの通信をしており、
DataSourceにはorg.apache.commons.dbcpを使用してコネクションプールさせております。
DELETEとINSERTはそれぞれメソッド内でDataSourceを呼び出すので、可能性としては>>364が一番高い気がしてきました。

でも、コネクションを放置しているのならどうしてうまくいく場合もあるのでしょうか?必ず引っかかるような気がするのですが。。。

また無知のため
SqlUpdate update=new SqlUpdate(getDataSource(),QUERY_DELNYU);
int[] types={Types.VARCHAR};
Object[] params={
strnyuid
};
update.setTypes(types);
update.compile();
update.update(params);

のような記述をJDBCDaoSupport継承クラス内で行えば
update.update(params)を通過した時点で勝手にコミットされるものだと思っていました。

コミット処理を明示する方法を調べたのですが、該当するようなサイトに当たらなくて困っています。
ご存知の方はいらっしゃいますでしょうか。

>>372
すいません、書きまちがいです。ret != null || !ret.isEmpty です。


387:デフォルトの名無しさん
07/04/13 18:45:40
> tracert java.sun.com

 16   152 ms   154 ms   153 ms  ge-3-3.r03.snjsca04.us.ce.gin.ntt.net [128.241.219.6]
 17     *        *        *     Request timed out.

なんか1個死んでるっぽい

388:デフォルトの名無しさん
07/04/13 18:51:29
>>382-383 >>387
わたしのところからは
URLリンク(java.sun.com)
URLリンク(developers.sun.com)
URLリンク(www.sun.com)
どれもつながる


389:デフォルトの名無しさん
07/04/13 19:52:34
エクリプスでiアプリ作れますか?

390:デフォルトの名無しさん
07/04/13 19:52:41
俺のところからは全部見れない

391:デフォルトの名無しさん
07/04/13 21:00:24
繋がらないから様子を聞きにきたんだが、やっぱり繋がらないのか。
3日位前はみれたんだけどなぁ

392:デフォルトの名無しさん
07/04/13 21:04:48
どれも繋がるけど、jcp.org が古いまま。

URLリンク(journal.mycom.co.jp)
によれば、新しくなったはずなんだけど。

393:デフォルトの名無しさん
07/04/13 21:14:36
>>386
delとinsertで同じid使ってるから、
例えば同トランザクション内だと仮定するなら、元のidは、まだトランザクションログもろともテンポラリにあって、まだトランザクションログファイルに反映されていず、
従って、もっと単純に言うと、まだdelしているつもりのidが存在していて、
例えばハッシュのシノニム発生時のコンフリクトのような感じでエラー出してるのかなと。
起こる時と起きない時の違いがどうなっているか分からないけれど、if文に引っかからなきゃすんなり通るのかなと。
例えば、insertの前にもう一個if文を、例えば、
if(ret = null || ret.isEmpty){
などとやったらどうなるのかなと。

394:362
07/04/13 21:39:22
>>393
>例えば、insertの前にもう一個if文を、例えば、
>if(ret = null || ret.isEmpty){
>などとやったらどうなるのかなと。

そうすると、delしているつもりのidがまだ残っていた場合insertされないまま正常終了してしまうので
正常に終わっているのにデータが入っていない、と言う状態になってしまうような気がします。

そーすると、やはり>>363のような方法で回避するしか方法はないのでしょうか。

よくわからないのは>>386のようなコードを通った(制御が呼び出し元にきた)のに
DBのdeleteやinsertの処理が終わっていない、と言うことはありえるのかどうか、というところなんです。

理想は、というか普通はコネクションプールを使っても、SpringのJDBC抽象化クラスに処理を任せていても、
deleteの処理でDBにSQLを投げたら、DBの処理が完全に終わってから次の処理に移行するものだと思うのですが。。。




395:デフォルトの名無しさん
07/04/13 22:00:54
1.レベル1(直線発生アルゴリズム)
直線式を用いて(100,100)から(600,300)の2次元座標点を結ぶ直線と、(100,100)から(300,600)の点を結ぶ直線を描画する。直線の色は視覚可能な色であれば任意とする。JavaのPolylineなど直線描画関数を使用しない。

2.レベル2(3次元デプスキューイング・アルゴリズム)
 (100,100,0)から(600,300,100)の3次元座標点を結ぶ直線を描画する際、z値の座標値を輝度と見なしてz=0の点の輝度を0(最小値)、z=100の点の輝度を255(最大値)として描画する。直線の色は視覚可能な色であれば任意とする。

これ解ける?

396:デフォルトの名無しさん
07/04/13 22:08:28
>>394
>例えば、insertの前にもう一個if文を、例えば、
>if(ret = null || ret.isEmpty){
>などとやったらどうなるのかなと。
というのは、採用するためというより現象確認、切り分けの手段としてどうかなと。
>回避の方法
deleteとinsertの間にcheckpointステートメントを使って、強制的にデバイスに反映させるというのはどうでしょ。


397:デフォルトの名無しさん
07/04/13 22:08:41
>>395
ブレゼンハムアルゴリズム使えばできるでしょ。あと、宿題なら宿題スレで。

★★ Java の宿題ここで答えます Part 60 ★★
スレリンク(tech板)

398:デフォルトの名無しさん
07/04/13 22:13:18
すみませんcheckpointステートメント実行は、
動作が重くなる可能性があるし、バックアップ計画に反する可能性もあるのでよくないですね。
失礼しました。

399:デフォルトの名無しさん
07/04/13 22:13:33
>>397
スレ違いスマソ。
授業でCGの基礎ってことで始めの問題なんです。

400:デフォルトの名無しさん
07/04/13 22:21:24
訂正
バックアップ計画>バックアップからの復元計画

401:デフォルトの名無しさん
07/04/13 23:03:58
javaでCGを始めたいのですが、オヌヌメの初心者用サイトがあったら教えていただけるとありがたいです。

402:デフォルトの名無しさん
07/04/13 23:05:48
>>394
Springはトランザクション管理で操作するっぽい。
使った事無いし、ぐぐって、2件見ただけなので良く分からん。

あるトランザクションでdeleteを実行した後、
新しいトランザクションでinsertを実行すれば良いのかね

403:デフォルトの名無しさん
07/04/13 23:38:04
Jcpad使ってるんだけど、classpathの設定ってどこでやるの?

404:デフォルトの名無しさん
07/04/14 00:05:23
調べてはみたのですが、Windows2000とJava実行環境の間に、「相性」はありますか?
1.4シリーズだといい、や、1.5シリーズだとあまりよくない・・・など、些細なことでもいいので情報いただければと思います。

質問を上手く表現できず、すみません^^;
Java実行環境のバージョンとOSのバージョンとにそれぞれ相性があるのか、
個人的に知りたく思っています。
もし、説明URLなどがあれば教えていただければと思います。

例)
Aの動作環境
Windows2000 SP4
InternetExplorer6.02 SP1
J2SE 1.4.2_13

Bの動作環境
Windows2000 SP4
InternetExplorer6.02 SP1
J2SE 5.0_11

AとBで、動作の上で差異はありますか?

ぜひ、回答よろしくお願いします。

405:デフォルトの名無しさん
07/04/14 00:11:25
気にするもんでもない

406:デフォルトの名無しさん
07/04/14 00:48:29
>>382
nslookupの結果
java.sun.com 72.5.124.55
developers.sun.com 72.5.124.65
www.sun.com 72.5.124.61

URLリンク(72.5.124.55)

407:デフォルトの名無しさん
07/04/14 01:00:31
>>406
いや、今は java.sun.com でも見れる

408:デフォルトの名無しさん
07/04/14 02:45:53
>>386
spring使ってんだよな?
まず、
>DBDelete del = new DBDelete();
みたいに
それぞれのビジネスロジックの中で新規にインスタンスかするのはおかしい
通常Singletonだよな
なおかつ、springに任せるならInjectionかBeanFacroty.get()だよな

だれにトランザクションを任せるつもりなのか?
もし、springに任せるならちゃんとお作法に従ったほうがいいかと


409:デフォルトの名無しさん
07/04/14 08:01:22
>>403
設定 - 高度な設定 - 追加する環境変数

CLASSPATH=%CLASSPATH%;C:\javalib\alib.jar;.



OSの環境変数CLASSPATHを変えてもOK


410:デフォルトの名無しさん
07/04/14 12:20:24
問題が解けなくて困ってます。
実行時、数個入力した順の値を
逆から入力した順に値を表示するにはどうしたらいいんですか?

1、2、3、4、5→5、4、3、2、1

ご教授お願いします。

411:デフォルトの名無しさん
07/04/14 12:24:31
>>410
スタックも知らないのか?
まず、基本情報技術者試験の勉強をお勧めする。

412:デフォルトの名無しさん
07/04/14 12:26:44
>>411
スタック調べて見ます。
ありがとうございます。

413:デフォルトの名無しさん
07/04/14 13:25:02
PreparedStatementについて質問。
String sql = "select * from table where name=? and updated_at=?";
PreparedStatement stmt = con.prepareStatement(sql);
stmt.setObject(1, name); <-- String型
stmt.setObject(2, updated_at); <-- Timestamp型
こんな風にPreparedStatementで、どんな型であれsetObject使っても
うまくSQL通るのかな。
だとするとsetIntとかsetStringとか不要??

414:デフォルトの名無しさん
07/04/14 13:34:26
javaは
もしかしてmainメソッドの戻り値は
voidしか許されないのでしょうか?


415:デフォルトの名無しさん
07/04/14 13:44:24
>>414
JLS 12.1.4

The method main must be declared public, static, and void.
It must accept a single argument that is an array of strings.

mainメソッドはpublic, static, voidと宣言されなければならない。
文字列(*)の配列を1つだけ受け付けなければならない。

* java.lang.String



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch