【初心者】Java質問・相談スレッド130【歓迎】at TECH
【初心者】Java質問・相談スレッド130【歓迎】 - 暇つぶし2ch2:デフォルトの名無しさん
09/08/02 23:48:39
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 8
スレリンク(tech板)l50
■ SWT は --
Java 高速GUI SWT 3
スレリンク(tech板)l50

■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part19
スレリンク(tech板)l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 8
スレリンク(tech板)l50

■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 67 ★★
スレリンク(tech板)l50

**** 開発環境が必要の場合は ****
■ J2SE 1.4.0
URLリンク(sdc.sun.co.jp)
■ J2SE 5.0 (1.5.0)
URLリンク(java.sun.com)
■ Java SE 6
URLリンク(java.sun.com)

**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
URLリンク(www.java.com)


3:デフォルトの名無しさん
09/08/02 23:50:13
環境の話題は荒れるので言語依存でない(生産性の話とか)なら他行って下さい

■NetBeans Part5【Java/C++/Ruby/Python/PHP】
スレリンク(tech板)
■Eclipse統合M28【Java/C++/Ruby/Python/Perl】
スレリンク(tech板)

4:デフォルトの名無しさん
09/08/03 00:00:29
それならIDEスレ誘導のアドレスも張っとけ

5:デフォルトの名無しさん
09/08/03 00:08:34
土方お断りとも書いてよ

6:デフォルトの名無しさん
09/08/03 00:16:01
童貞もお断りで。

7:デフォルトの名無しさん
09/08/03 00:53:58
>>前スレ982
4行目を
int[] d = new int[]{5,2,3,9};
と書いたのと同じ。

たったこれだけのためにいくつレス使ってんだ。

8:デフォルトの名無しさん
09/08/03 02:46:37
童貞は許していただけませんか・・・

9:デフォルトの名無しさん
09/08/03 06:37:52
素人童貞は、OK?

10:デフォルトの名無しさん
09/08/03 07:24:26
JAVAでGUIのツールって簡単に作れるかいマスター

11:デフォルトの名無しさん
09/08/03 09:01:58
>>7
ご回答ありがとうございます。
つまり、配列をnewした時に、配列内の要素に割り当てた値は
その要素の初期値であるという理解でいいですかね

変数a,b,cが動いていても配列内のd[2]に格納されるのは
dがnewされる直前の状態のa+b-2つまり3であって
その後a,b,cが変動しても、再びdをnewするかd[2]に値を代入しない限りは、d[2]には影響しない
ということですね

12:デフォルトの名無しさん
09/08/03 09:43:57
>>11
そのとおり。配列かどうかは関係なくて、ふつうのint変数でも同じでしょ。
int a = 2
int b = 3
int c = a + b;
の後に a = 3; としても c の値に影響はない。cに入っているのは値であって式ではない。






13:前スレ954
09/08/03 10:16:42
前スレ>>967
お返事感謝します
わかりました。ありがとうございます

14:デフォルトの名無しさん
09/08/03 10:18:55
>>11
逆に遅延評価の直接的な表現方法はないので
もし式に含まれる変数に連動して式の値を変えたいのなら
式をどう評価するかのメソッドを持ったクラスを作成して
式の値が必要な場所では式を直接記述せず評価メソッドを呼ぶようにする

15:デフォルトの名無しさん
09/08/03 10:22:35
複雑過ぎてすぐにエンバグしそう。

16:デフォルトの名無しさん
09/08/03 11:41:06
eclipseでアクションフォームBeansのコンパイルが通りません。
package struts01;
import org.apache.struts.action.*;
public final class BeginForm extends ActionForm {
と書くと、org.apache.struts.action.*;が無いと言われます。
解決方法を教えて下さい。

17:デフォルトの名無しさん
09/08/03 12:11:15
>>16
WEB-INF/lib
の下に必要なjarがないのでは?

18:デフォルトの名無しさん
09/08/03 12:20:38
>>17
WEB-INF/libの下にjarを入れているけど効いてないみたいですね。
以前作った動的webプロジェクトはビルド構成を見るとWEBAPPライブラリに
servlet関連のjarなどが登録されているけど、今回作ったStruts1用の
プロジェクトではWEB-INF/libの下にjarを入れても自動的に
WEBAPPライブラリに登録されていないみたいです。
StrutsもServletもともにコンパイルが出来なくなっています。
原因と対策を教えて下さい。

19:デフォルトの名無しさん
09/08/03 12:49:07
>>18
原因は知らん。
対策は
プロジェクトを右クリックしてプロパティを選択。
「Javaのビルドパス「→「ライブラリー」タブにて「JARの追加」
でWEB-INF/libの下のjarを全部追加。

20:デフォルトの名無しさん
09/08/03 13:21:14
>>19 うまくいきました。ありがとうございました。

21:デフォルトの名無しさん
09/08/03 14:31:35
>>15
固定式なら関数オブジェクトってだけだろ
public class Sample {
public static void main(String[] args) {
Var a = new Var(2);
Var b = new Var(3);
Expr[] d = new Expr[]{a,b,new ExprApBm2(a,b)};
Expr e = d[2];
System.out.println("e="+e);
a.set(4);
System.out.println("e="+e); }
static abstract class Expr {
abstract int get();
public String toString() { return ""+get(); }}
static class Var extends Expr {
private int v;
Var(int v) { this.v=v; }
public void set(int v) { this.v=v; }
public int get() { return v; }}
static class ExprApBm2 extends Expr {
private Expr a, b;
ExprApBm2(Expr a, Expr b) { this.a=a; this.b=b; }
public int get() { return a.get()+b.get()-2; }
}}

22:デフォルトの名無しさん
09/08/03 14:46:30
eclipseからservletを作成するときは新規でサーブレットを、
JSPを作成するときはJSPを選択するけど
アクションフォームBeansやアクションクラスを作成するときには、
それらしい選択肢が無いのですけど、普通にサーブレットととして
新規作成して良いものなのでしょうか。

23:デフォルトの名無しさん
09/08/03 15:35:02
Struts1.3 API日本語が、無いみたいなんですけど
ないんですか?

24:デフォルトの名無しさん
09/08/03 17:58:03
Javaでは、変数や配列もオブジェクトなんですか?

25:デフォルトの名無しさん
09/08/03 17:59:21
配列はオブジェクトです

26:デフォルトの名無しさん
09/08/03 18:16:12
>>22
これはOKでした。

27:デフォルトの名無しさん
09/08/03 21:46:50
プログラミング環境に関しては
ここで質問していいんでしょうか?

28:デフォルトの名無しさん
09/08/03 21:48:42
>>6

29:デフォルトの名無しさん
09/08/03 21:57:40
javaの色々な設定とかするのにXMLがよく使われているけれど
XMLのコンパイラーといいますか、解釈するエンジンは何が担当しているんでしょうか。

30:デフォルトの名無しさん
09/08/03 22:06:18
JavaSuperXML

31:デフォルトの名無しさん
09/08/03 22:06:54
xmlパーサ

32:デフォルトの名無しさん
09/08/03 22:13:22
>>30 >>31
Microsoft XML Parser というのがヒットしました。
OSで管理してるんですね。ありがとうございました。

33:デフォルトの名無しさん
09/08/03 22:14:55
ワロタw








ワロタww

34:デフォルトの名無しさん
09/08/03 22:15:55
ギャグだろ。

35:デフォルトの名無しさん
09/08/03 22:17:29
もうダメだろこのスレ

36:デフォルトの名無しさん
09/08/03 22:22:12
むしろ始まった。

37:デフォルトの名無しさん
09/08/03 22:43:36
>>29
javax.xmlというパッケージがあってね…


38:デフォルトの名無しさん
09/08/03 22:57:49
スレリンク(prog板:176番)

OOPってこうやって使うの?

39:デフォルトの名無しさん
09/08/04 00:49:51
そういう風にも使える。
実装の隠蔽は結合度を弱めてくれる良い方法なんで、普通に行うテクニック。

気の利いた奴なら実装やらをコピペして使うんだが、逆にデバッグしてメールされた日には、キーッ!

40:デフォルトの名無しさん
09/08/04 01:27:13
  ∧_∧ クワッ!
 ∩`iWi´∩
 ヽ |m| .ノ
  |. ̄|
  U⌒U

41:デフォルトの名無しさん
09/08/04 01:44:39
>>29
ま・・・



向き不向きってのはあるからな

42:デフォルトの名無しさん
09/08/04 11:16:30
Pattern p = Pattern.compile(regexp, Pattern.MULTILINE);
Pattern.MULTILINEというのは
ABCZXY
DEFZXY
という2行になっている文字列を1行として扱う。
そして、regexpが.*ZXY$だったら何度もZXYにマッチするということなのですか?

43:デフォルトの名無しさん
09/08/04 12:13:47
複数行モードでない場合: $ は文字列全体の終端にだけマッチ
複数行モードの場合: $ は各行の終端にマッチ
だけの違いのはず

44:デフォルトの名無しさん
09/08/04 12:17:45
>>42
そんなこと考えるよりJAVADOCの読み込み練習しといたほうがいいんじゃね?w


45:デフォルトの名無しさん
09/08/04 14:29:18
DOMでXMLファイルを読み込み終った場合、その後は完全にファイルにアクセスしなくなるわけ?

46:デフォルトの名無しさん
09/08/04 14:32:19
>>42
試せよ


47:デフォルトの名無しさん
09/08/04 14:49:35
Struts1のblankのSRCの中のbuild.xmlは、Antを使えるようにしたとき
だけに有効になるものですか?

48:デフォルトの名無しさん
09/08/04 14:59:31
このスレも夏だな~
あぼーんの嵐だ

49:デフォルトの名無しさん
09/08/04 18:16:31
サンプルプログラム組んで実行すれば分かるような事を
なぜわざわざ質問しようとするのか?

以後そういう質問は禁止にします

50:デフォルトの名無しさん
09/08/04 18:19:46
面倒くさいからに決まってるじゃんそんなの
そんなことこそ聞かなくても分かるじゃん

51:デフォルトの名無しさん
09/08/04 18:33:10
数分程度の面倒を惜しんで何時間も回答を待つってのはあまり賢い選択とは思えないが

52:デフォルトの名無しさん
09/08/04 18:35:26
その間は別のことをしているので問題ないです

53:デフォルトの名無しさん
09/08/04 18:43:49
夏休みの宿題は自分でやらないのね~
いつになっても身につかないお

54:デフォルトの名無しさん
09/08/04 18:52:01
別に身に付かなくていいのですわ

55:デフォルトの名無しさん
09/08/04 18:59:08
見当外れのことを自信たっぷりに書けば全力で訂正してもらえるよ。
ボランティアで。

56:デフォルトの名無しさん
09/08/04 19:08:13
便利だよな・・・

57:デフォルトの名無しさん
09/08/04 19:19:07
でもここの奴らってあまり性能良くないんだよね~
使えねーって言うかw

58:デフォルトの名無しさん
09/08/04 19:32:42
使えないものを無理して使おうとする試みは大抵無駄に終わるから最初からやめておくべき

59:デフォルトの名無しさん
09/08/04 19:37:35
かなり程度は低いよなこのスレ

60:デフォルトの名無しさん
09/08/04 19:42:45
初心者が集まるからな

61:デフォルトの名無しさん
09/08/04 19:49:10
初心者本ぐらいはわかるようになったけど、次のすてっぷにいけ無いぽ。
どうすればよかんべ?

62:デフォルトの名無しさん
09/08/04 19:50:43
とりあえず結城本でも読んでみたら?

63:デフォルトの名無しさん
09/08/04 19:57:17
目的無くプログラミングしてたって進むはずない

64:デフォルトの名無しさん
09/08/04 20:57:47
javaの勉強のために、2ちゃんねるのdatを専ブラのようにまとめ表示するプログラムを作りたいと考えています。
>デフォルトの名無しさん<>sage<>2009/08/02(日) 23:47:15 <> プログラミング言語Javaに関する質問スレです。
public class Res { String from; String mail; String date; String message・・・}
public class CreateResList {
   public List<Res> getResList() {}
}
みたいな感じでレスをまとめます。また、レスを表示するクラスpublic CreateThreadView{}みたいなクラスを作って
CreateResList#getResList()の戻り値を利用したい考えています。
しかし、ResクラスはC言語で言う構造体のような使い方をしているので、コンストラクタ以外の操作(メソッド)が思いつきません
javaなのにクラスを構造体のように使っているので、Resクラスに違和感があってたまりません。
Resクラスの代わりにenumを使おうかと考えましたが、
今まで使った事がないのでenumについてはほとんど知らないので止めることにしました
ツッコミどころ満載ですいませんが、何方様かアドバイスお願いします

65:デフォルトの名無しさん
09/08/04 21:02:36
>ResクラスはC言語で言う構造体のような使い方をしている

いいじゃん別に

66:デフォルトの名無しさん
09/08/04 21:03:08
そのレスを表示用にフォーマットするメソッドとか
a<>b<>c<>d 形式の文字列を分解して各フィールドに格納するメソッドとか

67:64
09/08/04 21:14:25
>>66
それは、考えていませんでしたorz
public class CreateResList {
   List<String>line;
   public CreateResList(InputStream in) {
      line = 1行ずつ読み込んで、lineに格納する処理
   }
   public List<Res> getResList() {
      List<Res> resList() = new ArrayList<Res>();
      resList&Resクラスにレスを格納する処理
   }
みたいにした方が、Resの独立性が高くなって後々使いやすいんじゃないかなと考えたからです。


68:デフォルトの名無しさん
09/08/04 21:16:21
getResListする度にArrayList生成する気なの・・・?

69:デフォルトの名無しさん
09/08/04 21:19:36
Y田くんへ
ちょっと、困ったことがあって別のスレで質問をしているよ
暇だったら、スレで回答頼むっちょ
スレリンク(tech板:64番)


70:64
09/08/04 21:20:51
>>69
違うスレの住人にも書き込もうとしたら
誤爆したorz

71:デフォルトの名無しさん
09/08/04 21:21:36
何してんだお前は。

72:デフォルトの名無しさん
09/08/04 21:27:55
>>67
データと操作を分離するそういうやり方もあってそれでもOKだけど、
もしオブジェクト指向初心者なら>>66のようにするのがお勧め。
enumは関係ない。


73:64
09/08/04 21:31:49
>>68
List<Res> resList;
private static void createResList() {}
public List<Res> getResList() { return resList;}
みたいに、作っている間にちゃっかり分離すると思います。
思いつきで書いたので、申し訳ありません
>>71
すいません...
職業プログラマだった人が別のスレを見ているもので....

74:デフォルトの名無しさん
09/08/04 21:39:00
>>68
コストがさして重要でない場面なら、getの度に防御的コピーしておく方が安全でいいという考え方も
もしくは Collections.unmodifiableList で囲むとか

75:64
09/08/04 21:49:40
>>72
お返事ありがとうございます
やっぱり、>>66のようにようにした方がいいのですか
わかりました。そっちの方向で作りたいと思います

>もしオブジェクト指向初心者なら
Linuxばっかりで遊んでいたので、プログラミング苦手です

練習なので、まぁまぁの完成度ならばうpロダにあげるかもしれません
その時はよろしくお願いします

76:デフォルトの名無しさん
09/08/04 21:55:38
環境設定に関してなんですが、CLASSPASSは変数値を空欄に
するんでしょうか?
URLリンク(www.db.is.kyushu-u.ac.jp)
を見たんですが。

77:デフォルトの名無しさん
09/08/04 21:57:48
classpassなんて変数使って何がしたいんだ

78:デフォルトの名無しさん
09/08/04 21:59:57
何をしたいのかはともかく、
>>76 そのページの絵は空欄じゃなくてピリオド1個

79:デフォルトの名無しさん
09/08/04 22:01:44
>>76
その例では「.」が入ってるんだよ。
見づらいけどちゃんと書いてあるだろ?

80:デフォルトの名無しさん
09/08/04 22:05:08
>>77
とうぜんシロウトクラッキングっしょw

81:76
09/08/04 23:43:12
HelloWorldからやってる素人なんですが、
コンパイル時にエラーがでたのでCLASSPASS
を上のサイトのとおりにいじったのですが
CLASSPASSは関係ないんですかね?指定された
パスが見つからないというエラーがでたのですが。

82:デフォルトの名無しさん
09/08/04 23:45:27
CLASSPASSなんて変数使って何がしたいんだ

83:デフォルトの名無しさん
09/08/04 23:46:29
しつごい

84:デフォルトの名無しさん
09/08/04 23:59:07
関係ある
classpath使うと
現在居るフォルダー見に行かなくなる
両方書けば良いだけだろうけど

85:デフォルトの名無しさん
09/08/05 00:01:11
CLASSPASSとCLASSPATH両方必要と申すか

86:デフォルトの名無しさん
09/08/05 00:05:46
URLリンク(www.javaroad.jp)


87:デフォルトの名無しさん
09/08/05 00:41:58
最近は答える側まで初心者みたいだな

88:デフォルトの名無しさん
09/08/05 00:59:49
Javaにはあまりくわしくないのですが
なんでほとんどのレンタルサーバってJavaって使えないんですか?
PythonやRubyやCでCGI可能なとこはありますがJavaでCGIというのは無理なのでしょうか?
Tomcatなどの専用のアプリケーションサーバが必要だからですか?
クロスプラットフォームでASPのようにコスト面でもそんなに問題にならないと思うのですけど
何が弊害となってレンタルサーバにはJavaが入っていないのでしょう?
あまりサーバ関連とかも詳しくないので識者の方の意見を聞きたいです

89:デフォルトの名無しさん
09/08/05 01:35:29
レンタルサーバの業者に聞け

90:デフォルトの名無しさん
09/08/05 02:27:11
年に36,540円ほど払うなら無いわけでも無い。
URLリンク(www.akira.ne.jp) とか。

91:デフォルトの名無しさん
09/08/05 02:42:47
だいたい利用可能なのはLLだからなあ
面倒くさいんだろ

92:デフォルトの名無しさん
09/08/05 03:02:27
個人でやる人は自鯖立てるんじゃないかね?

93:デフォルトの名無しさん
09/08/05 05:27:07
自鯖立てるかフリーのダイナミックDNSだろうな


94:デフォルトの名無しさん
09/08/05 10:17:20
>>88
メモリだろ、Tomcat動かすとした場合、最低でも256MBくらいはないと困る
おまけにTomcatをシェアして、各ユーザにウェブアプリを配備させたとしても、落ちるときは全部巻き込むわ、細かい設定は各アプリで制御できないわで、まったくの第三者がシェアするのには向かない。
そもそもCGIにするのは無謀。

で、月2000円くらい出せばJava使えるVPSとかあるけど、それも出せないならPHP仕えという話。

95:デフォルトの名無しさん
09/08/05 16:30:34
JPanelのレイアウトをBoxLayoutにしたら、pane.add(何か)をすると中央に表示されます
これをどうにか左寄せにしたいのですが、どなたか教えてください

96:デフォルトの名無しさん
09/08/05 17:08:30
アクションフォームBeanのゲッターとセッターメソッド名と、
入力画面JSPの項目名は同じ名前じゃないといけないのですか?

97:デフォルトの名無しさん
09/08/05 18:39:15
違う名前でできるようにするとして、別の方法で関連付けなきゃ使えるわけがない。
あるかもしれないけど、別の方法は使ったことないな。

98:デフォルトの名無しさん
09/08/05 19:08:47
>>97 ありがとうございました。昨日からはまっていました。



99:デフォルトの名無しさん
09/08/05 20:22:38
eclipseでJSPを実行しようとしたらサーバで実行という表示が出ず
実行が出来ないのですけど、何がいけないのでしょうか。

100:デフォルトの名無しさん
09/08/05 20:33:12
何かがいけない

101:デフォルトの名無しさん
09/08/05 20:41:24
>>95
pane.add(Box.createGlue());

102:デフォルトの名無しさん
09/08/05 20:42:20
Tomcatプラグインで、配備だったか設定だったかはやった?

103:デフォルトの名無しさん
09/08/05 20:57:36
Tomcatプラグインは使ってないです。Tomcat側でコンテキストを
書いてます。サーブレットは動くんですけど。JSPもブラウザから
直接にURLでアクセスは出来ます。eclipseから実行したいけど、
サーバで実行という選択が表示されないんですよね。

104:デフォルトの名無しさん
09/08/05 21:04:28
>>101
ありがとうございます

105:デフォルトの名無しさん
09/08/05 21:07:46
Javaの初心者です。
1つ質問があります。
J2SEで用意されているクラスのフィールド(定数)を設定して、
そのフィールド(定数)の持っている機能を使えるようにするにはどうしたら良いですか?
因みに使おうとしているのは「ResultSet」クラスのフィールドです。
プリペアドステートメントでSQLを実行して「ResultSet」型のオブジェクトを返します。

106:デフォルトの名無しさん
09/08/05 21:16:10
>>88
質問なら他にいけ

107:デフォルトの名無しさん
09/08/05 21:24:56
eclipseの中のStruts用のプロジェクトからは、サーブレットやJSPを
eclipseから実行できないとかあるんでしょうか?

108:88
09/08/05 21:28:11
遅くなりましたがレスありがとうございました
別に金額とかはどうでもいいのです
なんで入ってないのか疑問に思っただけなので
Javaの欠点みたいなものが弊害で導入できないのだろうと思い
Javaに詳しそうなこのスレで質問してみました

>>91
単にめんどくさいというのもあるのかなと思いましたがそうなんですかね?
LLっていうのは何のことかわかりませんすみません

>>94
そういう仕様では確かに共有サーバでは厳しいですね
メモリもそんなにつかうということは結構動かすのにもコストもかかるんですね

貴重な意見どうもありがとうございました

109:デフォルトの名無しさん
09/08/05 21:33:40
Javaの多重配列は「配列の配列」であり、
int[] mAndD = new int[12][31];
は『31個の要素を持った配列を12個持っている配列を作成』
という意味だということです。

ここで疑問なのですが、多重配列が「配列の配列」だとすると、
『2次元配列が行列』というのは間違いで
『①まず長さ12の配列オブジェクトを用意⇒12個の要素それぞれが、長さ31の配列オブジェクトを参照している』
という解釈で良いのでしょうか?

図で表すとこんな感じ。URLリンク(kita.kitaa.net)

110:デフォルトの名無しさん
09/08/05 21:35:17
>>107
できんの?

ほんとに答えてほしいなら、
もーちょっと環境とかやった手順とか詳細を書けよ。
その質問で答えかえってくると思うか?


111:64
09/08/05 21:36:50
昨日、2ちゃんねるスレを綺麗に表示したいとレスした者です
ひとまず、スレッドを表示しながら考えようと思い、swingの所も少しだけ作りました
最初はJLabelで作っていたのですが、JEditorPaneの方が後々楽になりそうな気がしてJEdtiorPaneを使いました
そして、IDEで試しに動かしてみたら、CPUに高い負荷が係ります
同じjavaのV2C(専ブラ)と負荷を比べてみましたが、あきらかにこのコードの方がCPUへの負荷です
すいませんが、何方かヒントをください

長々スレを使うのは悪いので、アップロードしました
まだ、作っている段階なのでJLabelとJEditorPaneが混在する意味不明な所もあります....orz
URLリンク(www.dotup.org)

112:デフォルトの名無しさん
09/08/05 21:37:18
>>103
それは・・・既に「Eclipse とは無関係に」サーバで実行してるからではないだろうか?
というか、Tomcat プラグイン使わなくても Eclipse から Tomcat サーバ実行って、
できるんだっけ?

>>105
イミフ。
操作するもなにもResultSetは「結果」セット。

設定できるのはFetchする方向だけ。
ResultSet#setFetchDirection()

あとは既に設定されてしまっている結果にすぎない。
ResultSet#getConcurrency()
ResultSet#getType()
ResultSet#getHoldability()

これを変えたければMySQLだかOracleだか何かのドライバと相談しる。

113:デフォルトの名無しさん
09/08/05 21:37:44
>>105
もーちょっと具体的になにがしたいかを。
ResultSetのどの機能を使いたいん?

114:デフォルトの名無しさん
09/08/05 21:51:04
>>106
スレタイ

115:デフォルトの名無しさん
09/08/05 21:54:27
>>109
あってる。

116:デフォルトの名無しさん
09/08/05 21:54:42
>>109
そう。こんなことも可能。

public static void main(String[] args) {
int[][] ia;
ia = new int[3][];
ia[0] = new int[1];
ia[1] = new int[3];
ia[2] = new int[2];
ia[0][0] = 1;
ia[1][0] = 2;
ia[1][1] = 3;
ia[1][2] = 4;
ia[2][0] = 5;
ia[2][1] = 6;
}

をデバッガで実行して、変数を見てみるといい。

117:デフォルトの名無しさん
09/08/05 22:29:45
>>111
だったらV2Cのソースを手に入れろ

118:デフォルトの名無しさん
09/08/05 22:50:51
>>113
携帯からの書き込みであまり詳しいことが書けなかったので申し訳ございません。

Class.forName("org.postgresql.Driver");
Connection con =
DriverManager.getConnection("jdbc:postgresql://サーバーのIP/DB名",
"ユーザー",
"パスワード");
String sql = "SELECT id FROM aaa WHERE id = ?";

PreparedStatement ps = con.prepareStatement(sql);
ps.setInt(1,bbb);

ResultSet rs = ps.executeQuery();

rs.first();
<処理>

rs.last();
<処理>

でSQLクエリーを実行し、ResultSetを取得した後、
firstメソッドやlastメソッドを実行したら、
「SQLException」例外が発生して実行できません。
おそらく結果セットの型がデフォルトで「TYPE_FORWARD_ONLY」
となっていると思われます。
「TYPE_FORWARD_ONLY」は「ResultSet」クラスのフィールドの
一つですが、違うフィールドに指定を変更することは出来るのでしょうか?
(DBの種類はPostgreSQLです。)

ちなみにJ2SEの「ResultSet」クラスの仕様は下記URLです。
URLリンク(java.sun.com)()

119:デフォルトの名無しさん
09/08/05 22:58:12
できませんので諦めてforでまわしてください

120:デフォルトの名無しさん
09/08/05 23:06:36
オラクル関連になったようですが、
Javaは今後どうなりますか。未来が心配です。

121:デフォルトの名無しさん
09/08/05 23:11:23
>>111
CPUの負荷だ?
単に画面が出るのが遅いだけなんじゃないのか
ファイル読んでから表示じゃなくて、読みながら表示しろ

122:デフォルトの名無しさん
09/08/05 23:24:04
>>118
TYPE_FORWARD_ONLY 以外を指定することはJDBCドライバ次第では可能だが、
できる限りやるべきではない。
結果の件数が多いとメモリを馬鹿食いして落ちるからだ。

あと、その情報は問い合わせ処理の結果として設定される情報だから、
ResultSetが返って来てから操作しても無意味だ。getType()の説明をよく読め。


123:111
09/08/05 23:34:31
>>121
なるほど、読みながら表示ですか
明日はそこら辺を中心に考えてみたいと思います。

CPUは単純に負荷を見ていただけなので、正確な所まではわかりません
javaは起動する時にCPUの負荷が負荷が大きいから、そう感じたのかな?

124:118
09/08/06 00:01:47
>>122
ご教授ありがとうございます。

getType()はResultSetの型を取得するメソッドで、
型はexecuteQueryメソッドを実行しResultSetを返す段階
で決まってしまうので返した後では無意味ということですね。

少し調べましたがどうやらConnectionクラスの
prepareStatementメソッドでSQL文の設定と同時に
ResultSetの型を指定できるみたいですね。

TYPE_FORWARD_ONLY 以外の型を指定するのが良くないようなので
方法についてもう一度再検討してみます。

125:デフォルトの名無しさん
09/08/06 00:03:46
どうでもいいけど、「ご教示」じゃないのか?

126:デフォルトの名無しさん
09/08/06 00:04:30
実にどうでもいいな
実にどうでもいいな

127:デフォルトの名無しさん
09/08/06 00:05:10
どうでもいいなら言わなきゃいいのに

128:デフォルトの名無しさん
09/08/06 00:08:39
ああ、悪かった。
どうでもいいと書きつつ、バカかといいたかった。

129:デフォルトの名無しさん
09/08/06 00:11:57
>>128
どうでもいいことを書き垂らすお前のが馬鹿だと思う。

130:デフォルトの名無しさん
09/08/06 00:12:53
>>129
まあまあ落ち着け。
馬鹿かどうかは学歴で決まるんだ。
こんなところで馬鹿かどうかなんて言い合ったってしょうがない。

131:デフォルトの名無しさん
09/08/06 00:14:35
>>128=130

132:デフォルトの名無しさん
09/08/06 00:16:03
低学歴乙!

133:デフォルトの名無しさん
09/08/06 00:18:55
しかしここのスレって「ご教示」とか「ご教授」とか細かいことまで要求されるの?
2ちゃんねるなんだし、そんなことどうでもよくね。
「ねこ」を「ぬこ」と言うのなんて2ちゃんねるでは一般化されているんだし。
ここはJavaの質問スレなんだし、質問の意味・意図が相手に伝わるような書き方・内容であればいいんじゃね。
細かいことはどうでも良いよ。

134:デフォルトの名無しさん
09/08/06 00:25:41
133のようなカモを待っているんだと気づかないといけない
構ってくれということ。

135:デフォルトの名無しさん
09/08/06 00:30:30
Double a;
Double b;
a=0;
a= a+b;
とやったら、文法がおかしいというエラーがでてしまいました。
bの累積を求めたいのですが、よいやり方はないでしょうか


136:デフォルトの名無しさん
09/08/06 00:34:55
Double a;
Double b;
a=0.;
b=0.;
a= a+b;


137:デフォルトの名無しさん
09/08/06 00:34:58
>>133

125が言わなかったら122は間違ったままだったんだからよかったじゃないか。

「ぬこ」に関してはわざと言ってるんだし別のはなし。

138:デフォルトの名無しさん
09/08/06 00:36:12
>>136
Doubleをdoubleに変えてみる。

139:デフォルトの名無しさん
09/08/06 00:39:54
>>138
変えなくてもオートボクシング、オートアンボクシングで通る
代入時にintのリテラルは通らないのとbが初期化されていないからコンパイルできない

140:デフォルトの名無しさん
09/08/06 01:04:28
>>133
お前がこの世に存在してること自体どうでもいいよ。はよ死ねカス

141:デフォルトの名無しさん
09/08/06 01:17:30
>>140
必死だな。お前こそ死ねよカス。

142:デフォルトの名無しさん
09/08/06 01:37:44
最近の学生は低レベルだな

143:デフォルトの名無しさん
09/08/06 01:58:46
ご教授ください

144:デフォルトの名無しさん
09/08/06 02:07:58
一昔前の学生は同じ荒らすんでも知性を感じさせたが
今年の荒らしには全く感じられないよな

145:デフォルトの名無しさん
09/08/06 02:12:32
荒らすことしかできない知障は放置がベスト

146:デフォルトの名無しさん
09/08/06 03:05:36
>>133
おまえがageたから荒れたんだろ。スレのみんなに誤れ。

147:デフォルトの名無しさん
09/08/06 05:54:48
┐(´~`)┌

148:デフォルトの名無しさん
09/08/06 07:43:51
>>146
死ね。

149:121
09/08/06 14:10:22
>>123
CPUの負荷がどうのこうのなんて大雑把なことで心配するようなレベルか?って言ってんだ。
既存のは1秒で表示するのに自分のは10秒かかります、なんで?ってのなら多少構造を疑うが、
システム全体のサマリであるCPUの負荷なんてので言われたって環境のほうが気になるだろ。

150:デフォルトの名無しさん
09/08/06 17:44:46
教授をください

151:デフォルトの名無しさん
09/08/06 18:20:49
下らない質問ですいません
どうして、staticな内部クラスはnewできるのですか?
アウタークラスのstaticなメソッドはnewできななかったような....
public class Outer {
  public void innnerAcces() {
Inner in = new Inner();
}
static class Inner {}
}

152:デフォルトの名無しさん
09/08/06 18:40:00
staticなので、(外部クラスの)インスタンスを必要としないからです
staticが付いてないものは、インスタンスを必要とします
staticフィールドと普通のフィールドもそうでしょ?

153:デフォルトの名無しさん
09/08/06 19:19:41
>>151
staticじゃなくてもメソッドはnewできんだろ

154:デフォルトの名無しさん
09/08/06 19:41:17
サーブレットを動かすのに、
eclipseから内部のtomcatサーバを起動させて動かすとサーブレットは動き
通常のtomcatを起動して動かすとサーブレットが見当たらないとなります。
URLは同じです。通常のtomcatとeclipseが内部で動かす状況が違う
みたいです。
もう一つのプロジェクトは全く逆ので、通常のとtomcatからは動いて、
eclipse内部のtomcatからは動かないです。
両方ともうまく動くようにできないものでしょうか。

155:デフォルトの名無しさん
09/08/06 20:01:51
>>151
実は、メンバクラスに static を付けることは InnerClass では無いことを宣言していたのだ。
URLリンク(www.y-adagio.com)

156:デフォルトの名無しさん
09/08/06 20:22:17
>>155
staticな内部クラスは普通のクラスと同じなんだけど、
どこににクラスが作られているか(パッケージorクラスの中)以外は同じ
ってことでいいんですか?

157:デフォルトの名無しさん
09/08/06 20:41:49
>>154
conf/caterina ... えーと、忘れたが、外部版のconf以下にプロジェクトの
WEB-INFを参照させる設定ファイルを書いて再起動すれば動く。
ただ、両方動かすなら片方のポートは8081とか別のポート番号にしないと、
起動時にそのポートは使われてるとかなんとか英語で怒られる。

158:デフォルトの名無しさん
09/08/06 20:57:07
dateListに1つ以上のデータが入っていた場合は、スレッド(


TestThread tt = new TestThread();
tt.run();
while((str = br.readLine) != null){
tt.add(str);

public class TestThread extends Thread {
    LinkedList<String> dateList;
    public void run (){

    }
    public void add(String str) {
      dateList.addLast(str);
      while(dateList.size != 0) {
      //dateListが1件以上ある場合何かの処理する、処理が終ったデータはdateListから削除
   dateList.removeFirst();
      }
      //自分自身のスレッドをwait

159:158
09/08/06 20:57:55
すいません、途中で書き込んでしまいましたorz
無視してください

160:デフォルトの名無しさん
09/08/06 20:58:22
えっ?

161:デフォルトの名無しさん
09/08/06 21:02:03
長くなりそうならどこかにうpした方がいい

162:デフォルトの名無しさん
09/08/06 21:07:53
>>158
run()の中に"何かの処理"を書かないと意味ないだろ

163:デフォルトの名無しさん
09/08/06 21:22:43
アプレットを作りたいと考えています。
WindowsXPのIE6に搭載されている、デフォルトのJavaVMの
バージョンっていくつなんでしょうか。

自分自身の環境では、すでにJRE6を入れてしまっているため
よくわかりません。
ご存じの方いたら教えてください。

164:デフォルトの名無しさん
09/08/06 21:26:46
>>163
IEのメニュー、[ツール][アドインの管理]で、[許可無しに実行されるアドイン]の
Java Plug-in 1.x.xx って見てみ。

165:163
09/08/06 21:55:59
>>164
確認してみました。
Java Plugin 1.6.0_13 と表示されていました。
これは自分がインストールしたJDKのバージョンと同じものです。

もしかして、デフォルトではJavaVMなんて入ってないんでしたっけ??

166:デフォルトの名無しさん
09/08/06 21:56:41
>>156
そのような短絡的に安易な共通点を求めることはお勧めしない

で、内部クラスの説明をしていないわけだが軽くスルーで、
とりあえず、ネストクラスは一番簡単な static を使うべき、と。

167:156
09/08/06 22:00:53
>>166
わかりました。ありがとうございます

168:デフォルトの名無しさん
09/08/06 22:19:08
質問です

BigDecimalの20090806を
yyyy/mm/ddにフォーマットするにはどうすればよいでしょうか?

すみませんがご指導のほどお願いします

169:デフォルトの名無しさん
09/08/06 22:27:47
>>168
それ結果は文字列でいいのか?
だったら、toStringして切り取れば?

BigDecimal bd = new BigDecimal(20090806);
String tmp = bd.toString();

String yyyy = tmp.substring(0, 4);
String mm = tmp.substring(4, 6);
String dd = tmp.substring(6, 8);

String ymd = yyyy + "/" + mm + "/" + dd;




170:デフォルトの名無しさん
09/08/06 22:28:06
>>168
そもそも日付をBigDecimalで扱う意味がわからない。

171:デフォルトの名無しさん
09/08/06 22:31:25
小数点以下で時分秒もいずれ計算するんだよ

172:デフォルトの名無しさん
09/08/06 22:35:03
>>168
DecimalFormat decimalFormat = new DecimalFormat("00000000");
DateFormat dateFormat = new SimpleDateFormat("yyyymmdd");
DateFormat slashDateFormat = new SimpleDateFormat("yyyy/mm/dd");

BigDecimal value = new BigDecimal(20090806);
String result;

try {
String strValue = decimalFormat.format(value);
Date dateValue = dateFormat.parse(strValue);
result = slashDateFormat.format(dateValue);
System.out.println(result);
} catch (ParseException e) {
e.printStackTrace();
}

冗長だけど、日付チェックもしたいならこんなのもアリ。

173:デフォルトの名無しさん
09/08/06 23:05:39
>>168
BigDecimal date = new BigDecimal(20090806);
StringBuilder sb = new StringBuilder(date.toString());
sb.insert(sb.length()-4, '/').insert(sb.length()-2, '/');
System.out.println(sb.toString());
こんなんとかも。

174:デフォルトの名無しさん
09/08/06 23:07:40
早速の回答どうもです

いろいろ参考になりました
自分なりにここから色々試して見ます

本当にありがとうございました

175:デフォルトの名無しさん
09/08/06 23:09:05
>>165
インターネットオプション→詳細→Microsoft VMの項があればインストールされている。
されている場合はコマンドプロンプトからjview.exe。

JViewはXPの初期の段階で排除された。今はもうダウンロードすら出来ない。
それは踏まえてレスするがJViewのjavaの言語仕様は1.1。
それとSun Java VMとMicrosoft VMには互換性がないのでそもそもJ++が吐いたclassファイルくらいしかまともに動かない。
さらに、JViewの外部バージョンが同じでも内部バージョンが違うと動かない。
もう一つ、バージョンを完全に揃えたところでJViewがリンクするDLLのバージョンが完全に一致しなければ動かない。
んで、JViewではSwingがまともに使えないからsun java pluginを入れるんだがこの状態でアプレットを使うと変な挙動をすることがある。
その場合はアンインスコしてsun javaの JREを使う。

方法は↓
URLリンク(www.java.com)

176:デフォルトの名無しさん
09/08/06 23:17:42
言い忘れた。JViewはコマンドラインインタプリタだがIEにはJViewとは別のランタイムが組み込まれててそっちの言語仕様は1.3で止まってる。どっちにしてもSwingがryなので以下略。
んでバグフィックスだけC#が出るまで密かに続いてたが今は放置されてるはず。
だからまともに動かない。

177:デフォルトの名無しさん
09/08/06 23:27:33
>>175

Microsoft (R) Command-line Loader for Java Version 5.00.3810
Copyright (C) Microsoft Corp 1996-2000. All rights reserved.

使用法 : JView [オプション] <クラス名> [引数]


こんなのだろ?苦労してたんだな。お前

178:165
09/08/06 23:33:31
>>175
詳細な解説ありがとうございます。事情を理解できました。

手元の環境WindowsXP SP3で、
jview.exe を叩いてみましたが見つかりませんでした。
インターネットオプションから、Microsoft VMも探してみましたがありませんでした。

アプレットは、Java6で作ってから、
ランタイムのインストールを促す作りにしたいと思います。
ありがとうございました。

179:165
09/08/06 23:40:31
>>176
対応してて1.3ですか。
Javaは1.4以降しか触ったことないので残念です…。

アプレットについては、私は仕事でなく趣味なので
ぜんぜん大丈夫ですが、おっしゃる互換性のなさは
仕事だと苦労が絶えなそうですね…。

180:デフォルトの名無しさん
09/08/06 23:45:19
そして誰も使わなくなった。よって大丈夫。

181:デフォルトの名無しさん
09/08/06 23:53:24
>>177
Java1.1→1.2→1.3の過程で皆通った道だが?だから今は>>180なわけだが。

182:デフォルトの名無しさん
09/08/06 23:56:54
Microsoftアプデートで、JVMもサポートしてくれりゃいいのにな・・正直なところ。

183:デフォルトの名無しさん
09/08/07 00:05:23
もともとappletはアニメーションやキャンバス2Dが売り(得意)だったはず。
さらにwebアプリと同様、<form>程度ならawtのコンポーネントで十分だし別に今でも廃れてないんだが。

変なIT記事読んで流行に流されてるようなら技術というものはちゃんと勉強しないといつまでも身につかないよ。

184:165
09/08/07 00:17:13
実は普段は流行に流されてFlashをいじっているんですが、
先ほどふと思いついて10年振り?に先行者ゲームをやりまして。
あまりの軽さに驚き、アプレット作ってみたいなと…。

こんなに軽いなら、今もっとモダンなJavaアプレットが沢山あってもいいと思うんですけどね。

185:デフォルトの名無しさん
09/08/07 00:22:23
>>183
アプレットの話じゃなくてMS VMの話だ。

>>184
sun自体がアプレット=Java FX、従来のアプレットの役目はJWSに徐々に移行させている。

186:デフォルトの名無しさん
09/08/07 00:32:01
アプレットでは有用なライブラリが無いから、開発者のうちライトユーザはflashの方に流れていった。
javafxのようにアプレットとライブラリを一緒にリリースしてたら、たぶんアプレットはサーブレット(とwebコンテナ)同様にトレンドになってたと思うけどね。
もし2D,3DやUIやイベントについてのスキルがあるなならアプレットはかなり自由度が高いよ。

いまは、javascriptとflashを使えてVBとは違った意味でUIについて多少経験があるユーザが増えたから、
アプレットはそのユーザが戻ってくることを期待して整備が進んでいる。
たとえば、appletとjsがさらに強く連携してDOMが簡単にいじれたりする。
ただ、webやappletはブラウザのJS実装に強く依存するけど、webやnetを主体としたアプリを考えてるなら、
IE以外のmozilla,chrome,operaとかの方がMSの俺様ネイティブルールがないぶん素直でいいんじゃないか。

187:デフォルトの名無しさん
09/08/07 00:34:24
>>185
お前はjava.applet.Appletや<applet>タグしか頭に無いのか?
旧式な奴だなw

188:デフォルトの名無しさん
09/08/07 00:36:05
>>185
MSVMなんてもう使ってる奴いねーってw
脳味噌腐っちまってんじぇね?ww

189:デフォルトの名無しさん
09/08/07 00:58:26
>>187-188
こいつら同一人物か?
165からのスレの流れ読んでないし日本語理解できてないし。

>>186
mozilla系以外でLiveConnectって使えるの?
IEだとActiveX ScriptでJava呼べるけどさ。

190:デフォルトの名無しさん
09/08/07 01:31:28
>>189
もともとお前に対してのレスじゃないだろ
お前は日本語を理解できず状況把握も出来ない落ちこぼれ
一回糞まみれになって死んだほうがいいんじゃね?w

191:デフォルトの名無しさん
09/08/07 01:47:16
夏厨元気だな

192:デフォルトの名無しさん
09/08/07 01:59:57
>>189
ここは学校じゃないんだし、そういう態度のままだとこの業界では落ちこぼれになっちゃいますよ?!

193:デフォルトの名無しさん
09/08/07 02:26:51
しかし188が文脈読めてないのは間違いないがな。

194:デフォルトの名無しさん
09/08/07 08:36:32
>>193
ageるなザコw

195:デフォルトの名無しさん
09/08/07 14:01:15
質問なんですが、BufferedReaderのreadLine()でユーザーの入力を待っている状態で、
一定時間が過ぎたら"時間切れです"と表示させて処理を進行させたいんですが、
どうすればいいんでしょうか?

196:デフォルトの名無しさん
09/08/07 14:02:19
>>195
マルチスレッドで処理する

197:デフォルトの名無しさん
09/08/07 14:55:00
>>196
ありがとうございます。
スレッドを作って、そっちで10秒時間を計って"時間切れです"と
表示させる事はできるんですが、readLine()の入力待ち状態を強制的に終了させる方法が
わかりませんでした。

198:デフォルトの名無しさん
09/08/07 17:26:21
>>197
データが読めなくなってから10秒後にIOException(を継承したInterruptedIOExceptionとか)
を発行するようなread()を持つFilterInputStreamを作って、間にかませたらどうだ

199:デフォルトの名無しさん
09/08/07 18:11:13
ready() で入力があるか確認してから読めば?

200:デフォルトの名無しさん
09/08/07 18:23:00
空文字列のチェック
(1)str.equals("")
(2)str.length() == 0
(3)str.isEmpty ←Java6以降
(×)str == "" ←!!!間違い!!!
で、(1)(2)(3)それぞれの使い方のメリット・デメリットを教えて欲しいのですが

201:デフォルトの名無しさん
09/08/07 18:32:12
こういうのもあるよ
(4) "".equals(str)

202:デフォルトの名無しさん
09/08/07 18:38:55
あるけど(4)じゃない。

203:デフォルトの名無しさん
09/08/07 18:49:16
うまくいかないです。そもそもうまくいうものかどうかさえわかりません。
eclipseで動的WEBプロジェクトを作成してeclipse内部のtomcatサーバを
起動して、プロジェクトエクスプローラからサーブレットのxxx.javaを
右クリックして実行すれば正常に動いてくれます。
しかし、eclipse内部TOMCATサーバを終了させて、通常のTOMCATを起動して
URLを入力してアクセスするとNOTFOUNDになります。
お聞きしたいのは。一つの動的WEBプロジェクトで、
eclipse内部のTOMCA起動でもサーブレットを実行できて、
その動的WEBプロジェクトをコンテキストで参照する外部のTOMCATでも
実行できるようにするのは可能なのでしょうか。いろいろやってみましたが
外部TOMCATで動けるような構成にすればeclipse内部tomcatでは動けず、
eclipseで普通に作れば内部tomcatでは動くければ外部TOMCATでは動かない。
今思っているのは、開発用にはeclipse内部tomcatで動くようにして
(テストがしやすいです)、もう一つ外部tomcatで動く別の
動的WEBプロジェクトを作って、そちらにサーブレットを公開用に持ってくる
というような二重管理するしかないのかなあと思っていたりします。
みなさまは、どのような感じになっているんでしょうか?

204:デフォルトの名無しさん
09/08/07 18:50:04
うるさい

205:デフォルトの名無しさん
09/08/07 19:09:05
>>203
外部のTOMCATは公開用?
ふつーは開発は手元のマシンでやって、
公開用は別のマシンだぞ?

ふつーは開発と公開用は別物。
それを二重管理とは言わん。


206:デフォルトの名無しさん
09/08/07 19:15:01
>>205
eclipse内部のtomocatと、インストールしたtomcatの違いです。
別物らしいです。

207:デフォルトの名無しさん
09/08/07 19:20:08
eclipseはそういう部分でもポンコツだからね

208:デフォルトの名無しさん
09/08/07 19:21:42
swingでボタンとかをクリックした瞬間に、イベントを発生させられます
これを任意のコードの中で発生させたいのですが、どうすればいいのですか?


209:デフォルトの名無しさん
09/08/07 19:22:48
公開用サーバに配備するときは.war形式にしない?

210:デフォルトの名無しさん
09/08/07 19:23:25
>>206
だからそのインストールしたtomcatを動かす必要がない。
公開するのであれば別のマシンでやれ。

211:デフォルトの名無しさん
09/08/07 19:24:30
>>208
ボタン 「とか」 って言われてもこまるけど、
JButton には doClick() メソッドがあるよ

212:デフォルトの名無しさん
09/08/07 19:29:41
>>211
言葉が足りませんでした。例ではswingを出しましたが、
自作イベントを作って、それを任意の場所で発生させられるか?
という所が知りたい事です

213:デフォルトの名無しさん
09/08/07 19:34:56
>>210
eclipseで作ったプロジェクトは、あくまで開発用であるから
eclipse内部のtomocatのみで開発は終始すればいいということですよね。
203に書いたことが出来ないようなので、そうしようかなあと思います
ありがとうございました。

214:デフォルトの名無しさん
09/08/07 19:37:30
>>212
自作のXxxListenerインタフェイスを定義して、
それをaddXxxListenerメソッドで登録できるようにして、
その登録されたものを普通に呼び出すだけでは?

215:デフォルトの名無しさん
09/08/07 19:37:45
>>212
イベントとは何かといえば、単なるメソッドの呼び出しだ。
XxxListener の実装やそのイベントの発生元のコードを真似すればいい。

216:デフォルトの名無しさん
09/08/07 19:45:49
>>200
なぜ1,2で出来ることにわざわざ3を作ったか考えろ

217:デフォルトの名無しさん
09/08/07 19:52:36
まeclipseは元来素人向けだから
その辺注意しながら使わんとね

218:デフォルトの名無しさん
09/08/07 20:44:49
だからIDEがらみは該当スレでやれ。アンチまで連れてくるな。

219:デフォルトの名無しさん
09/08/07 20:49:17
>>200->>202答えてくれる人いませんか?

220:デフォルトの名無しさん
09/08/07 20:51:05
いませんよアホらしい

221:198
09/08/07 20:52:52
>>197
すまん。
出来るかどうかやってみたんだが、どうも一旦 in.read() で待ちに入ってしまうと
interrupt しようが close しようが戻ってこないようだ。
ポーリングするしかないのかねぇ。

222:デフォルトの名無しさん
09/08/07 20:55:10
>>200
1と2は間違えて
str.equals(" ")
str.length() == 1
としてもコンパイルエラーにならない。
3はメソッド名間違えたらコンパイルエラーになるので
間違いに気付くことができる。

223:デフォルトの名無しさん
09/08/07 21:09:14
>>213
eclipseのtomcatでも、
インストールしたtomcatでも、
同じwebプロジェクト参照することはできるよ。

eclipseで普通に作ってから、
インストールしたtomcatで動くよう設定ファイルを書けばいい。

だけどみなさんはあまりそういうことしない。
意味がないから。

224:デフォルトの名無しさん
09/08/07 21:10:59
System.out.println("タムをしらんかのう タムをしらんかのう");

225:212
09/08/07 21:25:14
>>214-215
わかりました。ありがとうございます

226:デフォルトの名無しさん
09/08/07 21:32:03
なあ、なんでEclipseみたいなくそIDEがそんなに人気あんの?

マジでわけわかめだわ。

227:デフォルトの名無しさん
09/08/07 22:10:13
>>226
残念ながら
なんでWindowsが人気あるかとか
なんでMicrosoft Officeが人気あるかとか
なんで今のキーボード配列が人気あるかとか
そーいったレベルになっちゃったね。

デファクトスタンダードだ。
新しいプロジェクト入ったとして、
一人だけeclipseじゃなくてnet beansでやります!
みたいなのが通用しないし。

228:デフォルトの名無しさん
09/08/07 22:13:57
Sun的にはどうなんだろうか
名前も含めてw

229:デフォルトの名無しさん
09/08/07 22:27:21
名前、メールアドレス、電話番号が規則的に書いてあるテキストがあります
これを、今まではStringBuilderでちまちまとHTMLに変換してswingで表示してきました
しかし、StringBuilderで結合してHTMLを作るのは大変です
何か楽をしてHTMLを作り出す方法はないでしょうか?

230:デフォルトの名無しさん
09/08/07 22:42:14
まて。

プログラムにやらせてるんだから、一件分の出力部分を書いてループで回す
だけなんだから、大変もなにも無いと思うんだが。


強いて言えばXHTMLっていうものをググると幸せになれ・・・Swingで表示なら
XSLTのほうかな?

231:デフォルトの名無しさん
09/08/07 22:47:06
>>230
ループはちゃんと使っています
でも、目的の画面を表示するためにはHTMLをけっこう書かなきゃいけないんです(ループでは表現出来ない)
だから、StringBuilderでやっていると何がなんだかてことになるわけです

XHTMLで調べてみます
ありがとうございました

232:デフォルトの名無しさん
09/08/07 22:49:54
>>226
ところどころイマイチであるところもEclipseのいいところだからなぁ

233:デフォルトの名無しさん
09/08/07 23:02:15
>>231
イミフ

234:デフォルトの名無しさん
09/08/07 23:08:42
多分、今どきのスタイルシート頼り切りのHTML記述に染まっていないピュア
な心根の持ち主なんだよ。一つ一つ丁寧に心を込めて属性を書きました。

235:デフォルトの名無しさん
09/08/07 23:16:45
何か楽をしてHTMLを作り出す方法はないでしょうか?

236:デフォルトの名無しさん
09/08/07 23:22:47
雛形を作っておいてreplaceする

237:デフォルトの名無しさん
09/08/07 23:35:28
>>235
すまんがおまいさんの状況がわからん。
そんなに大変だと思えない。
HTMLが複雑なのか?
Velocityなんてものがあるぞ。

238:231
09/08/07 23:55:45
>>237
>>235はオイラじゃないんだけど
なんか、最近なりすましが多いな~

239:デフォルトの名無しさん
09/08/08 00:17:05
なまけもの再登場w

240:デフォルトの名無しさん
09/08/08 00:39:10
その、楽にHTMLを作るために、属性はグループ化してスタイルシートにまとめて、
構造はXMLな元データを取り出してXSLTで変換して、という技術が作られた。
たとえば
<住所録>
<名前>xxx</名前><メールアドレス>xxx</メールアドレス><電話番号>xxx</電話番号>
<名前>xxx</名前><メールアドレス>xxx</メールアドレス><電話番号>xxx</電話番号>
・・・・
<住所録>
という感じのデータを入力として、XSLTスタイルシートで指定した任意のHTMLに
変換することができる。

241:デフォルトの名無しさん
09/08/08 00:43:19
>>231
HTMLがXHTMLになったって大して変わるもんじゃなさそうだが…。
個人情報を出さない程度に実際のコード一式をうpろだに出してみたらどうだ。

242:デフォルトの名無しさん
09/08/08 00:43:43
>>212
URLリンク(java.sun.com)

243:デフォルトの名無しさん
09/08/08 00:43:43
本家ならパッケージ javax.xml.transform 参照。
他のプロジェクトからも色々とライブラリが公開されてる。

244:デフォルトの名無しさん
09/08/08 00:58:48
Eclipse IDE for Java EE Developers (189 MB)

Eclipse IDE for Java Developers (92 MB)

どういった点が異なるのでしょうか?
どちらがお勧めですか?

245:デフォルトの名無しさん
09/08/08 01:03:40
>>244
>>3

246:デフォルトの名無しさん
09/08/08 01:09:47
>>245
一応言語依存だからいいのでは?

>>244
Java EE Developersのほうはなんかいろいろついてくる。
マシンのスペックが悪くないなら
Java EE Developersいれとけば後々めんどくさくないよ。


247:デフォルトの名無しさん
09/08/08 01:15:40
iアプリを作成しているのですが、java.awt.geom.Point2Dが使えないため同機能のクラスを自作したいと思っています。

似た機能(の1部)は作成済みなのですが使ってみるとヌルポが返されたりして1部機能しかまともに使えません。

どのようにすれば、同機能のクラスとして使えるのでしょうか?

作成済みソース。
public class Point {
double x;
double y;
Point location;

Point(Point p){
location = new Point();
location.equals(p);
}
Point(double X,double Y){
x = X;
y = Y;
}


248:デフォルトの名無しさん
09/08/08 01:17:39
void setLocation(Point p){
location = new Point();
location.equals(p);
}
void setLocation(double X ,double Y){
x = X;
y = Y;
}
double getX(){
return x;
}
double getY(){
return y;
}
}

お願いします。


249:デフォルトの名無しさん
09/08/08 01:21:41
>>247
ぉぃぉぃぉぃぉぃ

250:デフォルトの名無しさん
09/08/08 01:25:16
>>245
申し訳ありませんでした。
気をつけます。

>>246
ありがとうございます。

251:デフォルトの名無しさん
09/08/08 01:30:00
eclipseで動的WEBプロジェクトでStruts1が無事に動くようになりました。
一週間苦しみました。3月からjava勉強始めてちょうど5か月です。
ここでの質問は100回以上してます。7割くらいは返答いただきました。
ありがとうございました。一通り概要が理解できたので、もう一度、
Javaアプリケーションに戻って、理解を深めようと思います。

252:デフォルトの名無しさん
09/08/08 01:34:06
>>251
それなら今度は答える側になってこのスレに貢献することで恩返ししないとね

253:デフォルトの名無しさん
09/08/08 01:35:22
>>251
5ヶ月だろうが50ヶ月だろうが、習うしかしてないのなら違いは無い。

254:デフォルトの名無しさん
09/08/08 01:38:18
>>252 >>253 がんばります。

255:デフォルトの名無しさん
09/08/08 01:45:14
>>244
そんな質問してるうちは上には縁がないので下でいいよ
上はJ2EEね
EコマースとかWeb開発で使う

256:255
09/08/08 01:46:20
まじすまん
リロードしてなかった
スルーしてちょうだい

257:デフォルトの名無しさん
09/08/08 02:05:03
>>247
JDKのオープンソースな実装から持ってきた方が早い気がする。
OpenJDK
URLリンク(openjdk.java.net)

Apache Harmony
URLリンク(harmony.apache.org)

ライセンスとかは自分で調べてくれ。

258:デフォルトの名無しさん
09/08/08 02:22:22
>>255
でもそれってライセンス料が必要になるでしょ。支払いはどうするの?

259:デフォルトの名無しさん
09/08/08 02:30:11


260:デフォルトの名無しさん
09/08/08 04:37:12
>>207
IDEの管轄外にある環境をIDEが管理にするわけないのに何言ってんだこの馬鹿は。
EclipseだろうがNetBeansだろうが関係無いわ。

>>219
(1)str==nullのときぬるぽ。内部的に""の実体を探しに行く分、極めて少しだけ時間がかかる可能性がある。
(2)str==nullのときぬるぽ。str以外の実体にメモリアクセスをともなわない分、(1)より極めて少しだけ速い可能性がある。
(3)str==nullのときぬるぽ。古い環境だと動かない。おそらく最速だが(2)と変わらないような気もする。
(4)str==nullでもぬるぽにならない以外は(1)と同じ。

>>255
ライセンスよく嫁。自分で使うだけなら全部無償。

261:デフォルトの名無しさん
09/08/08 05:26:33
ずいぶん昔のレスを引きずってんだなこいつw

EEを自分で使うんなら素直にMS使ったほうがいいんじゃね?
それともUNIX使うスキルもねーのかよ
お前はただの「おのぼりさん」だろお前?w

262:デフォルトの名無しさん
09/08/08 07:41:55
>>260
>>219ですが、ありがとうございます。
見易さ優先の(1)、速さを優先の(2)といったところでしょうか。
空文字列チェックを行うからには、前の行でnullでないことをチェックしておくので、ぬるぽに関しては気にしなくて良いと思いますが。

263:デフォルトの名無しさん
09/08/08 08:22:02
>>262
260じゃないけど横から。
str != null && str.equals("")
って書くよりは
"".equals(str)
って書く方がソースとしてもバイトコードとしてもコンパクト。
equalsの引数にはnullを渡してもよいからこう書けるわけです。

str != null && str.length() == 0
よりは遅いかもしれないけど、毎回こう書くのは面倒でしょ。
特に1つのif文内で複数の変数をチェックする場合とか。

とはいえ、両方変数なら結局は
str1 != null && str1.equals(str2)
って書くはめになるんだけど。
あるいはorg.apache.commons.lang.StringUtils.equals(String, String)を使う。


264:デフォルトの名無しさん
09/08/08 10:56:35
開発環境での実行時のメモりの使用量をコントロールするツールとかってありますか?
ソースの書き方でパフォーマンスを違いを知りたいのですが

265:デフォルトの名無しさん
09/08/08 11:24:54
>>201
>>263
もし実際に自分でそう書いているのなら、これを機会に改めた方がいい。
if("".equals(str)){
//処理
}else{
System.out.println("length=" + str.length());
}
とか書かれたときのことを考えるべき。

266:263
09/08/08 12:01:56
>>265
そりゃstrのメソッド呼ぶ気なら事前にnullチェックするでしょうよ。
でもその場合は、
if (str != null && str.equals("")) {
//処理
} else {
}
と書いてもelseにはnullでも来てしまう訳で、
if (str != null) {
if (str.equals("") {
} else {
}
}
とか、
if (str == null) {
return;
}
if (str.equals("")) {
} else {
}
と書く事に。

もし、nullまたは空文字とそれ以外を分けたいなら
if (str == null || str.equals("")) {
} else {
}
って書きますけどね。

267:デフォルトの名無しさん
09/08/08 12:02:58
良く話題になる文字列のチェックだが、nullチェックはそこでするのか?と思う。
例1)
public void method(String str) {
if(str != null && str.eqals("XXX") {
// 処理
}
}
はおかしくて
public void method(String str) {
if(str == null) throw new IllegalArgumentException();
if(str.eqals("XXX") {
// 処理
}
}
だろ?
String str = buf.toString();
ならば、nullチェックしないだろ?

nullチェックと比較はまとめる方が珍しいと思う


268:デフォルトの名無しさん
09/08/08 12:04:43
>>266
どんな状況でもこうやればいいという感じで書いておきながら屁理屈こねるなや
後出しで色々いっても見苦しいぜ

269:デフォルトの名無しさん
09/08/08 12:06:44
これだからJavaやってる奴は

270:デフォルトの名無しさん
09/08/08 12:09:21
これだからプログラムやっている奴は

271:デフォルトの名無しさん
09/08/08 12:11:50
>>268
こんなザコために定石なことをわざわざ丁寧に答えたお前の方が「マヌケ」だと思うが?

272:デフォルトの名無しさん
09/08/08 12:13:19
別に>>263の書き方に賛成ってわけではないが、
>>263>>265,267は検査する内容が異なってる。

273:デフォルトの名無しさん
09/08/08 12:20:08
>>271
スレの趣旨に反しない限り、別に何書いたっていいだろ?

274:デフォルトの名無しさん
09/08/08 12:26:06
>>271
まあまあ人格攻撃はやめようよ。

>>265
で、どう書くのが良いのか見せてよ。

275:デフォルトの名無しさん
09/08/08 12:29:43
暑苦しいなあ

276:265
09/08/08 12:43:21
>>274
nullをどうするかによる。
nullを許すなら>>267の上のように書くし
nullを許さないなら>>267の下のように書く。


277:デフォルトの名無しさん
09/08/08 12:51:23
jframe→jscrollpane→jpanel→jeditorpaneの順番で張り付けていくと、
jframeでは何も表示されません
jscrollpaneを経由せずに、jpanelをjframeに張り付けるとちゃんと表示されるのですが
なぜですか?

278:デフォルトの名無しさん
09/08/08 12:54:39
自演多すぎ。

279:デフォルトの名無しさん
09/08/08 12:58:25
>277
jpanelいらん

280:デフォルトの名無しさん
09/08/08 13:05:54
>>279
あの~、まったく表示され無いんですけど
JFrame mainFram = new JFrame();
mainFram.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JScrollPane scrollPane = new JScrollPane();
mainFram.add(scrollPane);

for(JEditorPane view : viewList) {
scrollPane.add(view);


281:デフォルトの名無しさん
09/08/08 13:12:44
全部はれやカス

282:デフォルトの名無しさん
09/08/08 13:18:11
>>281
全部貼れと言われても、JEditorPane pane = new JEditorPane("text/plain",str);
viewList.add(pane);
しているだけなんだけど
これ以上コードは無い

283:デフォルトの名無しさん
09/08/08 13:29:02
jframe→jpanel→jscrollpane→jeditorpane
じゃないの?

284:デフォルトの名無しさん
09/08/08 13:31:29
つかこれ以上ないってsetVisivle(true)はしてるだろ。全部貼れよ。

285:デフォルトの名無しさん
09/08/08 13:33:02
>>277
Swing知らないが、この辺関係あるのでは?
URLリンク(iiyo-tabun.blogspot.com)

286:デフォルトの名無しさん
09/08/08 13:42:29
>>284
お前、そんくらい誰でもわかるだろJK
お前、本当にプログラミングやってんの?

287:デフォルトの名無しさん
09/08/08 13:59:49
>>274
自演乙

288:デフォルトの名無しさん
09/08/08 14:06:13
>>286
あのな、そーゆー当たり前だと思ってることをやってないってことが結構あるんだよ。
経験者ほどそれを知ってるから、284は全部貼れっていってるんだよ。



289:デフォルトの名無しさん
09/08/08 14:13:31
>>285
やってみましたが、表示されませんでした

290:デフォルトの名無しさん
09/08/08 14:28:54
>>288
自演乙

291:279
09/08/08 14:45:37
JScrollPane scrollPane = new JScrollPane(mainPanel);
としたら、なぜか表示されました
>>283,>>285
本当にありがとうございました

>>280で、ちゃんとコードを表示したのにヒントもくれなかったので
>>281,>>284,>>288、口だけは達者なのがわかりました
威張っているだけならレスしないでください

292:デフォルトの名無しさん
09/08/08 14:45:54
>>282
mainFram.pack();
mainFram.setSize(800,600);

どこがおかしいか分からないくせに勝手に省略すんなってんだ。
ポカミスは誰だってやるんだよ。
一行違うだけで結果は全く違う。お互い推測でおかしいおかしいって
時間食っても仕方ないだろう。
百聞は一見に…ってことだ。

293:デフォルトの名無しさん
09/08/08 14:51:52
>>291
280のコードのどこに mainPanel があるんだよw

294:281
09/08/08 15:40:47
>>279
なんで俺がお前さんのために、ずっと2chに張り付いていなければいけないのか教えてくれw

295:デフォルトの名無しさん
09/08/08 16:09:41
>>291
そうやって調子の乗るならちゃんと質問料を収めてくれますか?
あなたはスレに貢献すらしてませんよね。

296:デフォルトの名無しさん
09/08/08 16:12:38
醜悪だなあ

297:デフォルトの名無しさん
09/08/08 16:25:49
貧乏人がくぶる

298:デフォルトの名無しさん
09/08/08 16:52:27
>>291
クレジットで一括にしてくれますか?

299:デフォルトの名無しさん
09/08/08 17:03:37
まあEclipse使うってことは周りから10年取り残されるって言うのと同じ意味だからな
覚悟は要るよな

300:デフォルトの名無しさん
09/08/08 17:21:26
Javaの勉強を始めたばかりのものです。
Eclipseで今学習中なのですが、違うものに変えたほうがいいでしょうか?

ひとまず基本情報の午後問題、Javaを解けるレベルまでを考えています。

301:デフォルトの名無しさん
09/08/08 17:33:28
>>300
まったくない。
世界で一番使われてるIDEだし、
大抵の職場でつかわれてる。
一部アンチがいるだけだ。
気にするな。

302:デフォルトの名無しさん
09/08/08 17:42:39
>>300
javaの勉強なら、eclipseだろうがなんだろうが関係ない。
IDEの機能に惑わされなければな。

303:デフォルトの名無しさん
09/08/08 17:53:51
>>301,302
お二方ありがとうございます。

急に不安になったので書き込みましたが、
引き続きROMりながら勉強に励みます。

304:デフォルトの名無しさん
09/08/08 18:19:30
>>303
ちゃんと勉強したいなら2ちゃんねるを見るなんて馬鹿なことはするな

305:デフォルトの名無しさん
09/08/08 19:44:00
夏になったらおかしいのが沢山発生した

306:デフォルトの名無しさん
09/08/08 20:52:11
public final class Struts1Process extends Action {
public ActionForward execute
(ActionMapping map, ActionForm frm, HttpServletRequest request, HttpServletResponse response) {
Struts1Form outFrm = (Struts1Form) frm;
request.setAttribute ("outFrm",outFrm);
return map.findForward ("success");
この場合に、ActionForm frm のオブジェクトとしてアクションフォームBeanの
内容を引き継いでいると考えていいのでしょうか。

307:デフォルトの名無しさん
09/08/08 20:54:19
はい

308:デフォルトの名無しさん
09/08/08 20:57:08
パッケージってネーム空間みたいなもん?

309:デフォルトの名無しさん
09/08/08 20:58:28
コンポーネントを複数重ねあわせた際、マウスイベントを
全コンポーネントに処理させるのはどうすればいいですか?
トップのコンポーネントにイベントが持って行かれちゃって困っております

310:デフォルトの名無しさん
09/08/08 20:59:08
>>307 ありがとうございました。

311:デフォルトの名無しさん
09/08/08 21:02:36
>>308
URLリンク(ja.wikipedia.org)

312:デフォルトの名無しさん
09/08/08 21:10:03
>>311
ありがとう!

313:デフォルトの名無しさん
09/08/08 22:06:17
>>308
パッケージってディレクトリ(フォルダ)のことだよ

314:デフォルトの名無しさん
09/08/08 23:03:20
>>308
>>313
ディレクトリと違って階層構造になってないから気をつけて。

315:デフォルトの名無しさん
09/08/08 23:52:55
階層構造になってるだろ(´・ω・`)

316:デフォルトの名無しさん
09/08/08 23:54:21
>>292
>mainFram.pack();
>mainFram.setSize(800,600);
これだとフレームの中のコンポーネントのサイズが狂うからパネルのサイズを設定した後フレームをパックじゃないか?


317:292
09/08/09 00:30:25
>>316
推測してた名残だと思って無視してくれ、すまん。
ちなみにsetSize→packだと、packで再計算されるからsetSizeの意味が無い。

318:デフォルトの名無しさん
09/08/09 01:23:03
>>317
packに任せるにはsetSizeではダメで、setPreferredSizeが必要なんじゃ?

319:デフォルトの名無しさん
09/08/09 01:26:46
>>315
URLリンク(www.atmarkit.co.jp)
こーゆーことがいいたかったわけで。

まぁ、ごめん気にしないでくれ。
初心者はパッケージ≒ディレクトリだと考えてくれれば。

320:デフォルトの名無しさん
09/08/09 02:33:30
JDK6u14って日本語版ないみたいだけどこれって内部メッセージはちゃんと日本語なんだよね
あとJREの最新版はu15みたいだけどSDKのバージョンとJREのバージョンが違うことってあるの?

321:デフォルトの名無しさん
09/08/09 02:35:51
>>320
URLリンク(java.sun.com)

322:デフォルトの名無しさん
09/08/09 03:09:44
>>321
バカ?
そこのダウンロードするとlanage選択でEnglishしか選べないんだよ!
死ねかす!

323:デフォルトの名無しさん
09/08/09 03:27:15
>>322
眠いなら寝ろ

324:デフォルトの名無しさん
09/08/09 04:12:34
lanageってwww

325:デフォルトの名無しさん
09/08/09 04:41:42
>>322
脊髄反射して上げるなカス

326:デフォルトの名無しさん
09/08/09 11:21:24
「ねかす!」ってなに?

327:デフォルトの名無しさん
09/08/09 11:23:13
あげないローカルルールってどこ?

328:デフォルトの名無しさん
09/08/09 11:30:41
教えてくんはカエレ

329:デフォルトの名無しさん
09/08/09 12:55:24
javaで簡単なwebブラウザを作ろうと考えているのですが
JEditorPaneを使うと遅い気がします、何か他に良いライブラリを知っていたら教えてください

330:デフォルトの名無しさん
09/08/09 13:49:46
>>326-327
上げるな
むさくるしいだろ!

331:デフォルトの名無しさん
09/08/09 14:21:11
JavaでClass.forNameを使ってクラスオブジェクトを作った場合、
プロセスを落とすまでJavaVMにクラスはキャッシュされたままでしょうか?

332:デフォルトの名無しさん
09/08/09 15:08:03
>>331
URLリンク(d.hatena.ne.jp)

333:デフォルトの名無しさん
09/08/09 16:23:55
テストのときだけ実行したいメソッドがあります。
C言語ではテストかどうかを外部の設定ファイルを見て、実行するかしないかを制御してたのですが、
Javaも同様の制御が無難でしょうか?
もっとよい方法はありますでしょうか?

334:デフォルトの名無しさん
09/08/09 16:32:42
>>333
リフレクションとかアノテーションとかを使うことになるのかもしれないが、
テストのときというのがどんなことをするかによるだろ。
設定ファイルにクラス名.メソッド名を羅列して、その順番に実行するのか?
それとも単にランチャーからどのクラスのmain()メソッドを実行するかだけなのか?
とかな。

335:デフォルトの名無しさん
09/08/09 16:34:32
static final boolean debugFlag = true;
を定義して

普通にリリースするときに
falseにすればいいだろ・・・


336:デフォルトの名無しさん
09/08/09 16:36:58
>>334
言葉足らずでした。
本番時は他社のシステムに接続し(SOAPで)データを受け取るのですが、
テスト時は外部システムに接続できないので、適当な値を変数に設定したいのです。
そこで、処理を分岐させたいのです。

>>335
Javaは新しい言語なので、何かしぶいやり方があるのかと思いまして。

337:デフォルトの名無しさん
09/08/09 16:43:41
JAVA AWTに関しての質問なのですが
最初のウィンドウ?に
コンポーネントをextendsして作成したクラスを追加した後
追加したコンポーネント上でマウスがクリックされた等の動作を最初のウィンドウのクラスで検知することはできるのでしょうか?


(よく分からないため 用語の使い方等がおかしい可能性が高いです。)
URLリンク(www.dotup.org) イメージ


338:デフォルトの名無しさん
09/08/09 17:11:16
最初のウィンドウクラスにリスナー追加したらおk

339:デフォルトの名無しさん
09/08/09 17:14:50
>>336
今どきならばJUnitでモックとか使う。
というか、大昔からそれしかないが・・・(C言語でも似たようなことやってた)

340:デフォルトの名無しさん
09/08/09 17:17:32
>>336
おおざっぱに
「他システムに接続してデータ取得」の部分を一つのオブジェクトにしておいて、
interface Transfer { Data receiveData(Param param); }
class RealTransfer impliments Transfer {
public Data receiveData(Param param) { /*他システムと接続してDataを得て返す*/ }
}
class MockTransfer impliments Transfer {
public Data receiveData(Param param) { /*テスト用のDataを適当に生成して返す*/ }
}
class Main {
public static void main(String args[]) {
//転送用オブジェクトを選択生成
Transfer trans = null;
if(args.length == 1 && args[1].equals("test")) {
trans = new MockTransfer();
} else {
trans = new RealTransfer();
}
//本番かテストか気にせず使用
Param param = ~;
Data data = trans.receiveData(param);
}
}
てな感じ。

341:デフォルトの名無しさん
09/08/09 17:20:59
>>337
すみません その方法を教えていただけないでしょうか。

感で
addMouseListener(追加したキャンバスクラス);
と書いてみたものの駄目でしたorz

また、最初のウィンドウクラスに
public void mouseClicked(MouseEvent e) {
System.out.println("click");
}
と書いても追加コンポーネントをクリックした時は反応がありませんでした。
(ウィンドウ上コンポーネント外では反応しました。)

342:340
09/08/09 17:27:42
>>340
うああ "args[1]"→"args[0]"
その場書きだからとゆるしてやってくれ…汚しスマ

343:デフォルトの名無しさん
09/08/09 17:31:17
>>341
”感”じゃなくて”勘”だろうw
未確認だが
 追加したキャンバス.addMouseListener(最初のウインドウ);
ではどうだ?

344:デフォルトの名無しさん
09/08/09 17:37:48
Javaって機能ごとにクラスを分割するじゃん。(入力チェッククラス、ファイル書き込みクラス・・・)
でも、これらって1つのおおもとになるクラスから、いちいちnewして呼ぶんでしょ。
1つのクラスに書いたほうが、たくさんインスタンスを作らなくてよい分、性能がいいんじゃないの?
クラスが増えるとメンテナンスも悪くなるし。
きちんとメソッドごとに機能をわけていればよいと思うんだけど。

345:デフォルトの名無しさん
09/08/09 17:42:35
>>343
上手くいきました
ありがとうございます。

346:デフォルトの名無しさん
09/08/09 17:48:00
>>344
んなこた無い。再利用性ってググってみよう。

347:デフォルトの名無しさん
09/08/09 17:55:37
/home/ユーザー/hoge1/hoge2/hoge.txtというパスにあるファイルを作りたいと考えています
どこのディレクトリまで存在しているか?ということをどうやったら、調べられますか?
例えば/home/ユーザー/まではちゃんとディレクトリが存在して、hoge1以下は存在しないよ~
って感じです。

348:デフォルトの名無しさん
09/08/09 17:58:40
>>344
正解。皆騙されているだけ

349:デフォルトの名無しさん
09/08/09 18:09:57
>>347
File file = new File("/home/ユーザー/hoge1/hoge2/hoge.txt");
while(!file.exists()) file = file.getParentFile();
//この時点のfileはあるらしい
//rootもなけりゃぬるぽ
もちろん未確認


350:デフォルトの名無しさん
09/08/09 18:20:26
>>347
作りたいだけなら
file.getParentFile().mkdirs();
file.createNewFile();

351:デフォルトの名無しさん
09/08/09 18:22:10
>>348
やっぱりそうですよね。
僕はそう簡単にだまされません。
先日、入力チェッククラスを作っている童貞がいました。
C++神の僕にはそんなクラスはかっこ悪くて作れません。

352:デフォルトの名無しさん
09/08/09 18:24:07
>>344
>>348
一人で全部作ってろ

353:デフォルトの名無しさん
09/08/09 18:24:20
部品化(Bean)など上手くいっている現場は珍しい。
ほとんどはウンコ。わけわかめ。分けりやあいいってもんじゃない。
かえって思考が分散する。以上だ。

354:デフォルトの名無しさん
09/08/09 18:27:05
太古の昔から部品の共通化などと能書きは垂れるが
細部にまで一貫性を保ってプロジェクトを運用し、設計思想を貫けるような
SEは殆どいない。理想はそうだろうが人間の頭は付いて来ない。
わかったか。

355:デフォルトの名無しさん
09/08/09 18:27:44
俺できるよ?

356:デフォルトの名無しさん
09/08/09 18:28:47
>>351
何で入力チェッククラスがダメなの?


357:デフォルトの名無しさん
09/08/09 18:32:39
分けなくていいもんまで分けたり、
分けられるもんを分けなかったり、
取っておけるもんを毎回作って消したり、
単にツクリが悪いだけだろ。

358:347
09/08/09 18:50:47
>>349-350
わかりました。ありがとうございます
参考にします

359:デフォルトの名無しさん
09/08/09 18:52:48
>>344
1つのおおもとになるクラスから他のクラスを呼ぶってのは、
最近あまりみないよ。

360:デフォルトの名無しさん
09/08/09 18:57:42
>>336
Java言語向けのやり方としては、外部システム接続がらみの境界線で
interfaceを定義して、テスト環境ではモックオブジェクトに切り替える
ようにするのが定石。

で、その切り替え処理はある程度DIコンテナ(Spring, Seasar2,
Google Guice等)に任せるのが最近の傾向。

361:デフォルトの名無しさん
09/08/09 19:08:33
テキストファイルを1行読み込んだら、読み込んだデータをテキストを処理するクラスに渡す
という作業をループを使用して実装したいと考えています。
速度向上のためにテキストを処理するクラスはThreadを継承しようと考えています。
しかし、IOの方が遅いので行を読み込み終る前にテキストを処理するスレッドが終了してしまいます
どうにかして、勝手におわらせないようにしたいのですが
どのようにすればいいのでしょうか?

362:デフォルトの名無しさん
09/08/09 19:12:20
1行1スレッドという発想は神ですね。
感動しました。

363:デフォルトの名無しさん
09/08/09 19:18:35
>>362
煽るの好きだな

364:デフォルトの名無しさん
09/08/09 19:21:59
>>361
つBlockingQueue

365:361
09/08/09 19:29:12
>>364
ありがとうございます。
早速ググってみます

366:デフォルトの名無しさん
09/08/09 19:46:02
final String str = "str";str = "STR";はダメなのに
final ArrayList<String> list = new ArrayList<String>();list.add(str);
は問題なくadd()出きるのですか?

367:デフォルトの名無しさん
09/08/09 19:54:55
Java には代入とメソッドの区別ができるから

368:デフォルトの名無しさん
09/08/09 20:04:11
>>366
final はオブジェクトの参照そのものが変化しないことを要求するだけ。
String への代入は参照そのものが変化するから×
list.add は list への参照そのものは変化しないから○

369:366
09/08/09 20:06:49
>>367-368
非常に参考になりました。ありがとうございます

370:デフォルトの名無しさん
09/08/09 20:30:23
>>366
finalが制限するのは、変数とオブジェクトの結び付きだけなので、オブジェクト自身に対する操作には影響しない。
絶対切れない紐の先に犬を結び付けたら別の犬に取り替えることはできないけど、犬がモノを食っても紐の種類には関係ない。

371:デフォルトの名無しさん
09/08/09 21:53:02
1つのメインのクラスから、色々なクラスをよぶとき、
クラス図はどう表現すればよいのでしょうか?
1つのメインになるクラスから、使用しているクラスに矢印をひっぱるのでしょうか?

372:デフォルトの名無しさん
09/08/09 22:03:19
アノテーションについて質問です。
アノテーションはあくまでクラス(Class<?>)が持つもので
例えば
class Hoge {
 @Anno
 Integer i;
}
Hoge h = new Hoge();
としたとき
h.iからそのフィールドに付いてる@Annoを取得(h.getDeclaredFields()してFieldを取得することなく)することはできないという認識でよいのでしょうか?

373:デフォルトの名無しさん
09/08/09 22:23:59
>>371
適当にやじるし引っ張っとけ。
あってもいないし間違ってもいないし、理解もしていない。

>>372
正しい。h.iは単なるInteger型の参照でそれからは情報を取ることはできない。
Hogeのクラス情報(h.getClass, Hoge.class)から取得する。
ちなみに、アノテーションはRuntime属性にしておかなければ実行時には情報がなくなるので注意されたし

374:デフォルトの名無しさん
09/08/09 22:37:45
アノテーションって何が出来るのですか

375:デフォルトの名無しさん
09/08/09 22:38:23
>>373
アノテーションの意味的には取得できてもよさそうなものですが、やはり無理なのですね。
ありがとうございます。

376:デフォルトの名無しさん
09/08/09 22:46:24
>374
一言で言えばフィールドやメソッドにラベルを付けられる
ラベルが付いているか付いていないかでIDEやフレームワークが「なにか」をするかもしれない

>375
いやできないのが自然だろう。
アノテーションは商品の値札のようなもの。
値札はパッケージや陳列棚にはつけるが、商品そのものには付けない
が、他の店で等々の品はある。

377:デフォルトの名無しさん
09/08/09 22:51:09
javaにはRTTIがないから>>372の動作が自然だと思ってたんだが>>375はなんでそう思うの?

378:デフォルトの名無しさん
09/08/09 22:52:00
>>371
それは依存なので破線の矢印で表す。
矢印の方向はそれであってる。

379:デフォルトの名無しさん
09/08/09 23:00:58
@deprecateは取り消し線が付いて有益だと思う
@supressは黄色いびっくりwarningが消えるので有益
他に何かある?

380:>>375
09/08/09 23:07:10
>>376-377
考えがかなり浅かったようです。
>>376の例を考えると納得でした。

勉強になりました。重ねてお礼を申し上げます。

381:デフォルトの名無しさん
09/08/10 05:15:08
株やFXの業者サイトを開くと有名なjavaのマークの周りを■がぐるぐる回るアイコンが表示され
その後チャートなどが表示されますが、あれは「JAVAで作成されたプログラム準備中」という意味でしょか?


382:デフォルトの名無しさん
09/08/10 12:12:04
BlockingQueueを教えてもらった者ですが、確認させていただきます
BlockingQuequeに何も無くなったら、
自分自身(BlockingQueque)があるスレッドを自分自身で止めるということでいいんですよね?

383:デフォルトの名無しさん
09/08/10 12:20:40
>>374
DI

384:デフォルトの名無しさん
09/08/10 13:00:29
ファイル読込で、BufferedReaderとInputStreamReaderを使用すると読み込むことは可能ですが、UTF8に変換されるのが困ってます。

SJIS読込→UTF8となって後の処理 SJISファイル出力でファイルを出力すると一部文字が文字化けしてしまいます。

これを解決するために、SJISファイルを読み込んで、内部的にもSJISの状態を保持して読み込むことは可能でしょうか?



385:デフォルトの名無しさん
09/08/10 13:03:54
>>382
自分自身(BlockingQueque)があるスレッド、などというものは存在しないよ
BlockingQueue自身はスレッドを持っていない
止めるのは要素を取り出そうとした(takeを呼び出した)スレッド
あとついでに、満杯のキューにputしようとしたスレッドも空きが出来るまで止められる

386:デフォルトの名無しさん
09/08/10 13:08:37
>>384
そもそもInputStreamReaderというのは、byte(バイト)をchar(Unicode文字)に変換するためのクラス
変換を通さずInputStreamから直にbyteを読み取ってOutputStreamに出力すればよいのでは

387:デフォルトの名無しさん
09/08/10 13:20:19
>>386

やっぱりそうなりますよねぇ。
一行読込とかやりたかったんだけど、自前で組むしかなさそうですねぇ。

サンクスです。

388:デフォルトの名無しさん
09/08/10 13:23:32
if(objFrm.get("idno")!=null && !objFrm.get("idno").equals("")){
このときに、!=nullはヌルじゃないを検査して、
!objFrm.get("idno").equals("")もヌルじゃないを検査しているのですけど
どうして2回繰り返すのでしょうか。

389:デフォルトの名無しさん
09/08/10 13:24:39
s-jisのreader使って一行読み込んで,s-jisのwriter使ってoutputstreamに書き込めばいいんでない?

390:デフォルトの名無しさん
09/08/10 13:25:51
ちゃんと読まなかった結果がこれだよ…

391:デフォルトの名無しさん
09/08/10 13:29:58
>>384
もしかして "SJIS" じゃなくて "Windows-31j" とか "MS932" を指定すると上手く動いたりしないだろうか

392:デフォルトの名無しさん
09/08/10 13:31:17
>>388
null と "" は別のものなので、2個チェックする必要があります

393:382
09/08/10 13:33:58
>>385
わかりました、ありがとうございます

394:デフォルトの名無しさん
09/08/10 13:43:53
>>384

"Windows-31j" と"MS932"は、試してみましたがだめでした。

2chのスレッド内容を取得しようと思ったんですけど、httpHeaderに設定されている「content-length」の値と
SJIS→UTF8→SJISファイル出力で取得したbyte長が異なるので困ってます。

うーんいい方法はないのかなぁ。


395:デフォルトの名無しさん
09/08/10 13:53:40
>>394
改行コードの問題とかはない?
readLineは\nでも\rでも\r\nでも改行扱いするはずだけど、出力してる改行コードが元と違うとか
具体的に何がどう変わってるのか、バイナリダンプかなんかで比較して調べるべきかと

396:デフォルトの名無しさん
09/08/10 14:19:09
>>387
>一行読込とかやりたかったんだけど
URLリンク(commons.apache.org)
こういうのがありますが、使えませんか?


397:デフォルトの名無しさん
09/08/10 14:27:35
>>394
やりたいこととやってることが微妙に合っていないように聞こえるが。
2chのhtmlが文字列だからといって、Reader/Writerを使わなければならない訳じゃない。
そもそもContentLengthはhttpのボディ部が”バイナリとして”何バイトあるかを示しているはずだ。
だからReader/Writerじゃなく、InputReader/Writerでバイナリのままファイルに落とせ。

398:397
09/08/10 14:29:48
>>397
ごめ、イキオイで間違った。
>inputRaeader/Writer
じゃなくて
InputStream/OutputStream


399:デフォルトの名無しさん
09/08/10 14:45:36
>>396

ディレクトリ操作とか便利そうですが、今回のファイル入出力に関してはちょっと用途が違うなと思いました。

>>397,398

やっぱしstreamでI/Oするのがスマートそうですね。
ちょっと実装してみます。

400:デフォルトの名無しさん
09/08/10 14:46:08
>>394
>「content-length」の値と
>SJIS→UTF8→SJISファイル出力で取得したbyte長が異なるので困ってます。
content-lengthの事を書いているのを見ると、差分データを取りに行きたいんでしょ?
スレッド番号.infoみたいなのを作ってレスポンスヘッダからconect-lengthの値を取得して、
<content-length>数値</content-length>とかやった方がいいと思うんだけど。

401:デフォルトの名無しさん
09/08/10 14:46:16
>>394

改行コードは問題ありませんでした。LFなので特に困ってないです。


402:デフォルトの名無しさん
09/08/10 14:49:46
>>400

ご名答。
ずばり2chスレッドの差分データを取得するために、content-lengthの値を設定したいのですが、思った通りに値を設定できなくて四苦八苦してます。

ちょっと悩んでみます。

403:デフォルトの名無しさん
09/08/10 14:51:37
うるさい

404:デフォルトの名無しさん
09/08/10 14:52:42
むしろHTTPなら java.net.HttpURLConnection とか import java.net.URL でまかなえるのでは

405:デフォルトの名無しさん
09/08/10 15:01:25
>>402
自分で全体から一部を取り出さなくても、”新着レスの表示”リンクを見れば
URLにちょっと書くだけで差分が送られてくることが分かるだろ

全体を得たとしても、htmlを良く見ればレスがdat落ちと似た形式で一行毎になっているのが確認できるはずだ。
その部分を抜き出せば、レスの件数=行数。差分も得やすくなるだろ。

406:デフォルトの名無しさん
09/08/10 15:02:19
受信した生データはいったんそのままStreamでファイルに保存しておいて、
あらためてファイルからReaderで1行ずつ読み込めばいい

407:デフォルトの名無しさん
09/08/10 15:23:52
>>402
>>404 にも書いてある通りHttpURLConnection 使った方がいいと思うな
URLリンク(www.fk.urban.ne.jp)
てか、content-lengthを取得できないっってことはe-tagも取得できていないでしょ?
サーバに必要なデータを送らないと、ちゃんとデータを送り返してくれないような気がする
差分データはステータスコードを気にしながらコードを書かないいけないので注意


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