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

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals を使え。
・内部クラスから外部クラスのローカル変数は使えない。他の方法を考えろ。

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

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc5.2ch.net/hp/

次スレは>>980あたりで。
2デフォルトの名無しさん:2006/02/11(土) 19:48:35
3
3デフォルトの名無しさん:2006/02/11(土) 19:51:39
>>1
>内部クラスから外部クラスのローカル変数は使えない。

ふ〜ん、最近のJavaってそうなったんだ。
インナークラス実装当時は、インナークラスから外部クラスの
privateメンバや、無名クラスから外側のメソッドのローカル変数に
アクセスできてた(もちろんread only)んだけど。

逆コンパイルしてみると、外部クラス側にprivateメンバへの
アクセサが作られたり、無名クラスのメンバ変数にローカル変数を
コピーしたりしてた。
4デフォルトの名無しさん:2006/02/11(土) 19:54:05
>3
>1はもはやコピペでっせ。
5デフォルトの名無しさん:2006/02/11(土) 19:58:42
>>3
たぶん匿名クラスや局所クラスから外側のローカル変数は(final つかないと)使えない
って書きたかったんだと思われ。
6デフォルトの名無しさん:2006/02/11(土) 20:08:34
>>5
有名無実(ちょっとちがうか)
指し示す言葉に説明が必要な文を>>1に書くのは無理があるのかなぁ
# 解釈が何通りもあるんじゃ、混乱を生むだけ
7デフォルトの名無しさん:2006/02/11(土) 20:12:09
てゆうか、上二つは分かるが 「内部クラスから〜」 は 1 に載せるほどでもないんと違うか。
8デフォルトの名無しさん:2006/02/11(土) 20:27:27
よく、mainの中でこんな書き方する奴がいるけど

public static void main( String[] args )
{
  try{
    // ファイル操作
  }catch( IOException ex ){
    System.out.println( ex.toString() )
  }
}

こう書くべきだよな。

public static void main( String[] args ) throws Exception
{
  // ファイル操作
}
9デフォルトの名無しさん:2006/02/11(土) 20:30:08
>>8
10デフォルトの名無しさん:2006/02/11(土) 20:32:23
なにそのべき
11デフォルトの名無しさん:2006/02/11(土) 20:34:40
あほにはかまうな
12デフォルトの名無しさん:2006/02/11(土) 21:02:25
ArrayListまたはLinkedListの中に入れたあるInteger型の値をインクリメントするには
それを一旦消してから、インクリメントした後の値を元のindexに挿入するしかないのでしょうか?
13デフォルトの名無しさん:2006/02/11(土) 21:05:11
set すれば上書きされる。

list.set(i, new Integer(((Integer)list.get(i)).intValue() + 1));
14デフォルトの名無しさん:2006/02/11(土) 21:07:55
>>13
あー、それがありましたね。ありがとうございました。
15デフォルトの名無しさん:2006/02/11(土) 21:14:18
>>12
5.0 以降なら、java.util.concurrent.atomic.AtomicInteger がある。
Integer の代わりにはならないけれど。
16デフォルトの名無しさん:2006/02/11(土) 21:55:41
>>8
エラーなら System.out ではなく System.err に書き出すべき。
17デフォルトの名無しさん:2006/02/11(土) 22:01:00
>>15
ありがとうございます。使えそうです。
18デフォルトの名無しさん:2006/02/11(土) 23:43:33
>>15は釣りではないのかね
コンカレントAPIはわからんやつがつかうものじゃない
19デフォルトの名無しさん:2006/02/12(日) 00:40:05
前スレの「絶対パス→相対パス」は
URI クラスの使用を避けているのは何でかクマ?
20デフォルトの名無しさん:2006/02/12(日) 00:53:00
URI#relative(URI) か。
2115:2006/02/12(日) 01:00:02
>>18
そう言われると、確かに怪しいか。
コンカレントAPI自体は余り触れたくないけれど、
AtomicIntegerはNumberを継承している数値に近いクラスと認識して紹介しました。

int をインクリメントするだけの機能が必要で、Integerの機能が不要なら、
新しくクラスを作ることも、案外軽くてソースも見やすく、良いかもシレン。
22デフォルトの名無しさん:2006/02/12(日) 01:06:23
setすればいいだけなのにアトミックを使わせるってかなり初心者には敷居が高いと思うけど
あれはハードウェアの力を借りて低コストでロック不要な単純なルーチンでのみつかえるわけで
23デフォルトの名無しさん:2006/02/12(日) 01:14:16
Javaにおけるメモリ確保についてなのですが

プログラム内で宣言されている変数や配列、オブジェクトは、
プログラム実行時に必要十分なだけメモリに確保されるのでしょうか?
ちょっと苦しいのですが次のようなプログラムがあるとします

public static void main(String args[]){
int lpArr[];
lpArr = new int[128]; //1
lpArr = new int[128]; //2

return;
}

この時//2の行を実行された場合、//1で実行された時に得られたメモリが参照できなくなると同時に
新たな領域へ参照できる事を意味します。

この場合//1で割り当てられたメモリは//2を実行時にシステムから解放されるのでしょうか?
それともプログラム終了時に解放されるのでしょうか?
すみません
24デフォルトの名無しさん:2006/02/12(日) 01:14:58
>>21
Number 継承しているのに、immutable じゃないのか。
まあ、どのみちここでコンカレントAPIを挙げるのは酷すぎクマー
25デフォルトの名無しさん:2006/02/12(日) 01:17:39
>>23
gc相手だから、適当に放置すればいつかそのうち消えるはず
…たぶん
26デフォルトの名無しさん:2006/02/12(日) 01:18:20
>>23
VM(実行環境)が最も適切だと判断したタイミングで、
回収作業を行うことを勝手にやってくれる。
27デフォルトの名無しさん:2006/02/12(日) 01:22:29
>>25-26
そうですか・・やはりVMや最適化状況によりけりなのですね
特に配列は慎重に扱う事にします
28デフォルトの名無しさん:2006/02/12(日) 01:41:00
>>27
逆。

自前で解放しなければならない場合は、うっかりメモリリークしないよう
目を皿のようにして慎重に確認する必要があるが、
GCが勝手にやってくれるので、基本的にどんどん使い捨てればいい。

もちろん、あまりにも大きな配列はメモリを圧迫するだろう。
また、GCが効くのは(当然ながら)どこからの参照も無くなったオブジェクトに対してだけだから、
自前でオブジェクト群を管理している場合は気をつける必要がある。
外部リソースを使用している場合なども、
基本的に自前で生存期間を管理する必要がある。
29デフォルトの名無しさん:2006/02/12(日) 02:05:33
jarhooって、有料化した???
http://www.jarhoo.com/

無料だった気がするのだが。。。
30デフォルトの名無しさん:2006/02/12(日) 02:25:24
>>28
気持ち悪い
31デフォルトの名無しさん:2006/02/12(日) 07:49:35
それで?
32デフォルトの名無しさん:2006/02/12(日) 08:17:43
Javaで同一のワークグループ内のコンピューターのIPアドレスを検索したいのですが
方法がわからりません。どなたか教えてください。よろしくおねがいします。
33デフォルトの名無しさん:2006/02/12(日) 08:21:22
「ワークグループ」が曖昧なので返答できません。
34デフォルトの名無しさん:2006/02/12(日) 08:29:24
じゃあ、「LAN上の」で
35デフォルトの名無しさん:2006/02/12(日) 08:32:09
曖昧なまま
3632:2006/02/12(日) 08:33:46
すいません・・・・・orz
37デフォルトの名無しさん:2006/02/12(日) 10:34:18
>>32
Javaプログラムを実行したコンピュータと
同一のWindowsネットワークにおけるワークグループ内に存在する
他のコンピュータのIPアドレスを検索したいのですが、
その方法が全く分かりません。

一行目はこんな感じだろうか。
# あの仕組みの固有名詞が出てこなくて困るのだが…
# これだと、だらだら長すぎだなぁ…
38デフォルトの名無しさん:2006/02/12(日) 10:37:46
Pure Java でやりたいなら jCIFS とか。
Windowsネットワークが NetBIOS over TCP/IP 使ってないとダメだったような気がするけど。
39デフォルトの名無しさん:2006/02/12(日) 12:20:49
javaでプログラムの勉強をしています。
手持ちのmp3ファイルのプロパティ(タイトルとかアーティストとか)を
変更するプログラムを作りたいんですが、ファイルの取得方法、
mp3のプロパティの取得方法はどうやるんでしょうか?
検索したときのキーワードも教えていただけるとありがたいです。
40デフォルトの名無しさん:2006/02/12(日) 12:40:47
>>39
http://www.cdwavmp3.com/mp3/player/id3tag.html
ほい
MP3ファイルの末尾128byteの部分らしいよ、調べてないけど。
4139:2006/02/12(日) 13:30:26
>>40
ありがとうございます。調べてたら初心者には結構きつそう。
とりあえず表示から頑張ってみます。英語読めないと厳しいですね。

以下参考資料。
ttp://www1.cds.ne.jp/~takaaki/ID3/
ttp://www.geocities.jp/zzuketta/mp3index.html
42デフォルトの名無しさん:2006/02/12(日) 13:32:45
43デフォルトの名無しさん:2006/02/12(日) 14:03:05
>>42
おースゲー
Java class MP3
使えば全部解決じゃん。
タグいじるコマンドラインのソフト作りたくなってきた。

だが時間がない!!!
44デフォルトの名無しさん:2006/02/12(日) 14:04:48










         ↓ここで神が登場↓
45デフォルトの名無しさん:2006/02/12(日) 14:10:12
>>44
神はやっぱり>>47じゃないとw
46デフォルトの名無しさん:2006/02/12(日) 14:39:14
Javaって正式には、どう発音するのでしょうか?
ジャバ、ジャワ、アバ、グァバ。
考え出すと夜も眠れません。
47デフォルトの名無しさん:2006/02/12(日) 14:51:04
http://www.asahi-net.or.jp/~yf8k-kbys/newjavah1.html

ここに書いてあるとおりやったんですが、
javac Helloというコマンドを実行したら、
「javac: Hello は無効なフラグです」って表示されます。
なんで出来ないんでしょうか?
書いてあるとおりにやってるのに。
48デフォルトの名無しさん:2006/02/12(日) 14:53:13
池沼乙

javac Hello.java
これがコンパイルで、

java Hello
これが実行だ
49デフォルトの名無しさん:2006/02/12(日) 14:58:19
50デフォルトの名無しさん:2006/02/12(日) 15:00:38
>>49
じゃあなと聞こえちゃいます;;
51デフォルトの名無しさん:2006/02/12(日) 16:51:07
アプレットに関する質問です。
Frameを使わずにHTML上にじかにアプレットを貼った状態で
ボタン押下等のイベントで同一HTML上で別のアプレットに遷移させるようなことはできますか?

こんな感じ。
sample.html
---
<html><body>
<applet code="Applet1.class" ></applet>
</body></html>
---
Applet1のボタンを押すとsample.html上でApplet2.classを表示したい。

サンプルなんかあると最高です。
52デフォルトの名無しさん:2006/02/12(日) 18:53:01
どないしたらいいか分からへん。教えてください。

$java Main
Exception in thread "main" java.lang.NoClassDefFoundError: BookShelfIterator
at BookShelf.iterator(BookShelf.java:33)
at Main.main(Main.java:22)
53デフォルトの名無しさん:2006/02/12(日) 19:03:46
>>52
>>1
54デフォルトの名無しさん:2006/02/12(日) 19:10:24
本が無いと思われ
55デフォルトの名無しさん:2006/02/12(日) 19:17:52
>>52
BookShelf.java の33行目あたりを調べろ。
56デフォルトの名無しさん:2006/02/12(日) 19:23:41
>>51
AppletContext
57デフォルトの名無しさん:2006/02/12(日) 19:25:49
失礼、間違えた。
Applet#showDocument() で Applet2 の埋め込んである HTML へ飛ばす。
同一ページ内の Applet 本体の入れ替えは多分無理 (JScript 経由で Applet の
CODE 値とか変更出来たっけ?)。やるならアプレット内で CardLayout 等使って
自前で切り替えること。
5852:2006/02/12(日) 19:27:02
MacOSX&bashでprintenvすると
CLASSPATH=.
の行があるのでクラスパスは大丈夫だと思うのですが。
ソース貼付けてもいいんですかね。長いんですが。全部で130行くらいっす。
59デフォルトの名無しさん:2006/02/12(日) 19:39:28
ソースはいらん。関係ない。
カレントディレクトリに BookShelfIterator.class はあるんか?
6052:2006/02/12(日) 19:43:21
>>59
あるわけないわな。コンパイルしてないもんな。
Main.javaだけコンパイルすればいいと思ってた。
ほんと恥ずかしい。でもなぜか他の〜.javaはMain.javaを
コンパイルしたら自動的にコンパイルされたんだよね。
なんでだろうね。不思議です。
61デフォルトの名無しさん:2006/02/12(日) 19:45:13
>>58
長いのは↓あたり使え
http://sourcepost.sytes.net/
6251:2006/02/12(日) 20:54:19
>57
ありがとうございます。大変そうですね。
Frameでパタパタ切り替える方が現実的でしょうか。
63デフォルトの名無しさん:2006/02/12(日) 20:57:29
おねげーします。

$java main
Exception in thread "main" java.lang.NoClassDefFoundError: main (wrong name: Main)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
64デフォルトの名無しさん:2006/02/12(日) 20:58:06
65デフォルトの名無しさん:2006/02/12(日) 22:02:32
>>63
> java.lang.NoClassDefFoundError: main (wrong name: Main)
66デフォルトの名無しさん:2006/02/12(日) 22:26:12
>>63
私だったら、wrong name に注目します。
NoClassDefFoundError wrong-name でぐぐる
オプションで site:java.sun.com や -tomcat を付けたり…

# このエラーって、こんなにスタック深かったかなぁ…
67デフォルトの名無しさん:2006/02/12(日) 23:55:18
エラーばっかり。どうしたら良いでしょうか?

$javac Main.java
Main.java:8: パッケージ framework は存在しません。
import framework.*;
^
Main.java:9: パッケージ idcard は存在しません。
import idcard.*;
^
./Factory.java:11: シンボルを解決できません。
シンボル: クラス Product
場所 : framework.Factory の クラス
public final Product creat(String owner){
^
./Factory.java:16: シンボルを解決できません。
シンボル: クラス Product
場所 : framework.Factory の クラス
protected abstract Product creatProduct(String owner);
^
./Factory.java:17: シンボルを解決できません。
シンボル: クラス Product
場所 : framework.Factory の クラス
protected abstract void registerProduct(Product product);
^
Main.java:13: Factory にアクセスできません。
クラスファイル ./Factory.java は不正です。
ファイルにクラス Factory が含まれていません。
削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。
Factory factory = new IDCardFactory();
^
エラー 6 個
68デフォルトの名無しさん:2006/02/12(日) 23:57:16
>>67
> ファイルにクラス Factory が含まれていません。
> 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。
ちょw親切すぎだろ。
69デフォルトの名無しさん:2006/02/12(日) 23:58:40
framework とか idcard とか湧け分からんパッケージ使ってるようだが、それらの
クラスが入った JAR ファイルをクラスパスに指定してないだけ。

$ javac -cp $CLASSPATH:hoge.jar Main.java
                 ~~~~~~~~
70デフォルトの名無しさん:2006/02/13(月) 00:00:17
>>67
ちょっとはエラー内容みた?
どう見ても、Main.javaのあるフォルダに「framework」とか「idcard」とかいうフォルダ
(=パッケージ)がないし、Factoryクラスなんか存在もしないぞこら、おれにどうしろ
っちゅうんじゃ、と言ってるように見えるが。
7167:2006/02/13(月) 00:23:33
よく分からないんですけど、自分でパッケージを作ったら
同じパッケージのは同じディレクトリに入れなきゃいけないんですか?
72デフォルトの名無しさん:2006/02/13(月) 00:28:40
そんなことはない
73デフォルトの名無しさん:2006/02/13(月) 00:28:45
yes
74デフォルトの名無しさん:2006/02/13(月) 00:32:38
>>71
思ったとおりやってみると良い。
想像と違っていたら、その方法はどこかが間違っているのだろう

# いくつかの単語が省略されているので、思考を読み取れないのだが…
7567:2006/02/13(月) 00:50:35
>>71,73
どっちだよと

>>74
同じディレクトリにいれたらコンパイルできたけど。
これが正しいのかどうかが分からないんです。
76デフォルトの名無しさん:2006/02/13(月) 00:54:48
>>71
場所はどこでもいいが、少なくともソースパスが通っている必要がある。
で、パスが通っているフォルダから、パッケージ名に併せたフォルダ階層に
なっている必要がある。

myproject.factory.MyFactory

というクラスなら、コンパイル用ソースがあるフォルダから、

myproject/factory/MyFactory.java

というふうになってないといけない。
77デフォルトの名無しさん:2006/02/13(月) 01:36:02
ちょっとお聞きしたいのですが、
文字列型で表現された数式と、変数の値を入力すれば値が返ってくるようなライブラリはありませんでしょうか?
次の様な形で呼び出したいです。
double func(string exp, int x);
78デフォルトの名無しさん:2006/02/13(月) 01:40:11
ttp://uploaderlink.hp.infoseek.co.jp/cgi-bin/512kb/src/up3801.png.html

>>77
んー、windows限定ならwindows host scriptingでevalメソッド呼ぶとか?
79デフォルトの名無しさん:2006/02/13(月) 01:42:05
Groovy (Jython とか Rhino とかでも可) でも使っとけ
80デフォルトの名無しさん:2006/02/13(月) 01:43:05
>>77
アプレットなら JavaScript の数式を評価可能。アプレットから JavaScript を呼ぶ方法参照。
昔 Mozilla に Java 上で JavaScript を動かすライブラリが落ちてたが今どうなってるか知らん。
81デフォルトの名無しさん:2006/02/13(月) 01:46:09
ちゅか「数式」とかいう曖昧な表現じゃなく、
ちゃんと設計したこと書けよ・・
8277:2006/02/13(月) 01:52:22
>>81さん
数式は
整数、実数、()、+、-、*、/、三角関数、累乗、log
が使えるようにと考えてます。
83デフォルトの名無しさん:2006/02/13(月) 01:56:11
ああ、まだあるみたい。Rhino とかいう名前になってた。
http://www.mozilla-japan.org/rhino/scriptjava.html
8477:2006/02/13(月) 02:04:41
>>83さんどうもです。
でも、どうやって使うかよくわかりません
85デフォルトの名無しさん:2006/02/13(月) 02:08:44
>>82
数式中の変数部分はどう表すの?
+と-は2項演算子のみなの?
86デフォルトの名無しさん:2006/02/13(月) 02:08:48
      .,lllllllll,,,,,,,,,,,,,,,,,,,,,,,                  ,iillllllllllii,,    ,,,iillllllllii,,,
  iiiiiiiillllllllllllllllllllllllllllllllllllllll|                ゙゙!lllllllllllllir .,,,iilllllllllllllll!゙゙′
  .llllllllllllllllllllllllll!!!!!!!!!!!!!!!!!″                ゙゙!!ll!゙",,,iilllllllllllll!!゙゙゜
  .゙゙゙゙゙゙”゛ llllllllllliiiiiiii,,,,,,,、                       ,,,iillllllllllll!!゙゙゜ ___,,,,,
    ,,,iiillllllllllllllllllllllllllllllliii,,                  ,,,,,,,,,iiiiiiilllllllllllllllllllllllllllllllllllllllll
  .,,illlllllllllllllllllll゙゙゙゙゙゙!!llllllllllllli,    .,,,,,iiiiiiiiiiiiiiiiiii,,,、  .llllllllllllllllllllllllllllllllllllllllllllllll!!!!!!l
  ,illllllllll!゙゙llllllllll|  ,illlllllllllllllll,  liilllllllllllllllllllllllllllllllli,,  lllllllllll!!lllllllllllllll!!゙゙゙”`
 ,llllllllll゙ .lllllllllll .,,illlllllllllllllllllll、 ゙llllll!!゙゙゙’   ゚゙llllllllll  ゙゙”`.,illllllllll!l゙’
: llllllllll° .llllllllllll,illllllllll!゙`lllllllllll  .゙゙゜      ,llllllllll!   ,llllllllllll°
: llllllllll,  lllllllllllllllllll!゙゜ ,lllllllllll          ,,,illllllllll!゜   .llllllllllllli,_    ,,,,,,,,iiiiiii、
: 'lllllllllllliiilllllllllllllll!!゙’  ,lllllllllll°    .,,,,iiillllllllllll!゙゜    ゙!llllllllllllllllliillllllllllllllllllllllll,、
 .゙!!lllllllllllllllll!!!゙゙`   .l!!llllllll°    .゙!lllllll!!!゙°     ゙゙!!llllllllllllllllllllllllllllll
87デフォルトの名無しさん:2006/02/13(月) 02:11:03
>>85さん
変数はxとy、+と-は2項演算子のみです。
88デフォルトの名無しさん:2006/02/13(月) 02:19:02
>>87
> >>85さん
> 変数はxとy
そのわりに
>>77
> double func(string exp, int x);
と、評価時には数式expの他には値は1つだけしか与えていないわけだが
評価結果は部分的に評価を実行した式でいいのか?
それとも変数xとyの両方にint xで渡した値を適用するのか?
はたまたdouble func(string exp, Integer... args);のつもりだっのか?
89デフォルトの名無しさん:2006/02/13(月) 02:21:41
>>88
追加
なのでもう少し仕様を整理してみたほうがいいと思われ。
expの構文を決めさえすれば自力でparserを書くのも大変じゃないと思う。
90デフォルトの名無しさん:2006/02/13(月) 02:22:04
>>88
そこを掘り下げても意味ねぇ。興味で聞いてんの?
9177:2006/02/13(月) 02:30:08
>>88さん
>>77の方は正確には
double func(string exp, double x, double y);
です。
変数の数は2つです。

実際に数式を解析して何がしたいかというと、下のサイトの
ttp://codezine.jp/a/article.aspx?aid=116


//関数のメソッド
private double function(double x,double y){

return 50*Math.cos(Math.sqrt(x*x+y*y)/10.0);

}

の部分をテキストボックスなどを用いて、関数を指定したいのです。
92デフォルトの名無しさん:2006/02/13(月) 02:39:21
>>91
ははあ、なるほど。
http://www.japisoft.com/formula/ (※有償ソフト)みたいなことをしたいわけね。
すまんが、俺は寝るよ。
93デフォルトの名無しさん:2006/02/13(月) 04:03:50
質問です。
Stringで表現されたIPアドレスをsplitを使って
こんな感じに  String "192.168.0.1" → String[] {192,168,0,1}
8ビットづつ抜き出したいのですが、使う正規表現がわかりません。
split(".")でいけると思ったのですが、うまくいきません。
わかる方がいらっしゃったらお願いします。
94デフォルトの名無しさん:2006/02/13(月) 04:05:07
"\\." ジャマイカ
95デフォルトの名無しさん:2006/02/13(月) 04:21:42
できました!助かりました!ありがとうございます!
96デフォルトの名無しさん:2006/02/13(月) 04:36:45
最近、GUIの勉強を始めたんですが
WindowListenerって何ですか?
わけわかめです。
97デフォルトの名無しさん:2006/02/13(月) 04:57:14
98デフォルトの名無しさん:2006/02/13(月) 06:37:46
前スレでstaticの話になったとき
クラスメソッドはインスタンスからは呼べないって
言ってる人がいたけどインスタンスからでも
呼べますよね?例えば
インスタンス.クラスメソッド
って感じで。
もちろん
クラス名.クラスメソッド
も可。
99デフォルトの名無しさん:2006/02/13(月) 06:48:56
呼べます
100デフォルトの名無しさん:2006/02/13(月) 10:44:59
>>98
> クラスメソッドはインスタンスからは呼べない
そんな妄言、スルーしてたとは…
101デフォルトの名無しさん:2006/02/13(月) 10:51:08
妄言ってわけでもないか…
インスタンスからクラスメソッドを実行することは、混乱と間違った認識を招くので
「出来るけど絶対やら無いこと」であることは確かだから。
102デフォルトの名無しさん:2006/02/13(月) 10:59:01
スルーしてたっけ?
やってはいけないとみんないってたような
103デフォルトの名無しさん:2006/02/13(月) 11:16:10
1byte 符号無しのテーブルを使いたいのですが、
byte a[] = { 0,231,234,1 };
では符号有のせいかエラーが出ます。

byte a[] = { 0,(byte)231,(byte)234,1 };
キャストすればエラーは出ないのですが、他に良い方法はないでしょうか?
104デフォルトの名無しさん:2006/02/13(月) 11:27:20
無いよ
105デフォルトの名無しさん:2006/02/13(月) 14:07:39
timerの一時停止と再開を実現したいんだけど
106デフォルトの名無しさん:2006/02/13(月) 14:09:43
>>105
やればいいじゃん
107デフォルトの名無しさん:2006/02/13(月) 14:12:17
どうやんのよ
108デフォルトの名無しさん:2006/02/13(月) 14:16:29
>>107
普通にコーディングしてコンパイル&実行すればいいと思うが・・・?
何聞きたいの?
109デフォルトの名無しさん:2006/02/13(月) 14:16:35
javaってexeファイル作れないの?
110デフォルトの名無しさん:2006/02/13(月) 14:18:20
>>108
馬鹿?
111デフォルトの名無しさん:2006/02/13(月) 14:21:34
>>109
gcc-javaなんてのがあるけど、重いよ。
112デフォルトの名無しさん:2006/02/13(月) 14:21:52
113デフォルトの名無しさん:2006/02/13(月) 14:25:08
なんだ?timerの実装のソースさらせっていってるのか?
ぐぐればいくらでもあるだろ。
114デフォルトの名無しさん:2006/02/13(月) 14:28:15
>>110
(  ゚,_ゝ゚)バカジャネーノ
115デフォルトの名無しさん:2006/02/13(月) 14:37:44
java timerで検索してくれ
116デフォルトの名無しさん:2006/02/13(月) 15:06:24
初心者は大歓迎だが
それ以前の阿呆は失せろ
117デフォルトの名無しさん:2006/02/13(月) 15:06:32
java.lang.Runtimeで呼び出した外部プロセスが呼び出してコマンド
を実行した瞬間に終了してしまうのですが、これを終了させないためには
どうすればよいですか?
118デフォルトの名無しさん:2006/02/13(月) 15:22:14
>>117
質問がわからん。exec が外部プロセスが終了する前に返る事をいってるのか、
外部プロセスの呼び出し方を間違ってて即座に終了してるのか、
そもそも外部プロセスは即座に終了するものを呼び出しているのに、
無理やり終了させないようにしたいのか、とかわからん。

3番目は普通は無いだろうけど、>>117 の書き方だと、その辺まで考えられるって事。
119デフォルトの名無しさん:2006/02/13(月) 15:33:55
>118
インタプリタを呼び出すんですが、起動パラメタを渡して呼び出しても
肝心のスクリプトを渡す前にインタプリタが終了してしまうので、
これを終了させないようにしたいのです。

わかりにくくてすいません。
120デフォルトの名無しさん:2006/02/13(月) 15:38:17
本来入力待ち状態になるものがすぐ終了してしまうなら何かしらのエラーが
発生してるんだろ。起動した Process から InputStream/ErrorStream 取って
取り出したメッセージを確認するのが先では。
121デフォルトの名無しさん:2006/02/13(月) 15:45:30
1.4で、16進数で書式化ってどうやるんですか?
Cの
printf( "%x", value )
↑コレ
122デフォルトの名無しさん:2006/02/13(月) 15:46:48
Streamあけてないのでは
123デフォルトの名無しさん:2006/02/13(月) 15:48:30
Integer.toHexString(value)
124デフォルトの名無しさん:2006/02/13(月) 15:51:50
↑ありがd!
125デフォルトの名無しさん:2006/02/13(月) 15:52:00
>122
InputStream is = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
これでしょうか?でもこれだと外部プロセスの出力しかとれません。
入力はどうすればよいのでしょう。
126デフォルトの名無しさん:2006/02/13(月) 15:53:26
「〜をやりたいんですが」
「やれば」

は基本だな。 質問する方がバカ
127デフォルトの名無しさん:2006/02/13(月) 15:54:01
即レスに甘えてもいっこ。
printf( "%04x", value )
↑コレは?
128デフォルトの名無しさん:2006/02/13(月) 15:54:09
getOutputStream()
出力されてるものは想定の範囲内か?
129デフォルトの名無しさん:2006/02/13(月) 15:55:14
StringBuffer buffer = new StringBuffer(Integer.toHexString(value));
while(buffer.length() < 0)  buffer.insert(0, '0');
String hex = buffer.toString();
130デフォルトの名無しさん:2006/02/13(月) 15:57:56
ありがd!ありがd!
131デフォルトの名無しさん:2006/02/13(月) 15:58:48
ループの条件間違えた
while(buffer.length() < 4)
132デフォルトの名無しさん:2006/02/13(月) 15:58:49
>>127
1.5使え。
133デフォルトの名無しさん:2006/02/13(月) 16:00:31
>>119
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Process.html
> 特定のネイティブなプラットフォーム上の特殊なプロセスではうまく動作しない場合があります。
> たとえば、ネイティブなウィンドウ処理プロセス、デーモンプロセス、
> Microsoft Windows 環境での Win16/DOS プロセス、あるいはシェルスクリプトといったプロセスです。

って書いてあるからダメかも。
134デフォルトの名無しさん:2006/02/13(月) 16:00:56
>>131方法教えてくれればOK!参考になったよ!
135デフォルトの名無しさん:2006/02/13(月) 16:03:04
これ、「Microsoft Windows 環境での」がどこまで修飾してるのか分かり難いな。
原文みるとWin16/DOSプロセスまでみたいなんだけど。
136デフォルトの名無しさん:2006/02/13(月) 16:05:03
昔の話だが、終了待ちのループ作った覚えがあるなあ。
137デフォルトの名無しさん:2006/02/13(月) 16:07:17
OutputStream out = process.getOutputStream();
ですか?
どのようにしてコマンド文字列を渡せばよいのでしょう。
138デフォルトの名無しさん:2006/02/13(月) 16:09:22
>>135
Win32 で標準入出力 (Cで言う stdin, stdout、ファイルディスクリプタで言うなら 0 とか 1 とか) 使ってりゃ
たいてい大丈夫。MS-DOS みたいに直接コンソールデバイス叩いてる類のはだめかもしれない。

>>137
OutputStream os = process.getOutputStream();
PrintWriter out = new PrintWriter(os);
out.println("print \"hello, world\");
out.flush();
139デフォルトの名無しさん:2006/02/13(月) 16:11:40
>>138
なんと親切な・・・
ありがとうございます、本当に助かりました。
140デフォルトの名無しさん:2006/02/13(月) 16:13:17
ダブルクォートが一個抜けた。
今日は集中力欠いてるな。
141デフォルトの名無しさん:2006/02/13(月) 18:45:21
JTbaleと自前のTableModelで実行時に行を追加するってどうやるんですか?

DefaultTableModelのaddRowみたいなのです。
TableModelのgetRowCount()の中で一つインクリメントしても行が増えないのですが。
142デフォルトの名無しさん:2006/02/13(月) 18:55:03
行の追加や削除を行ったら TableModelListener に通知してやらないと JTable 側で
変更が分かりません。addTableModelListener() で追加された TableModelListener の
tableChanged() を呼んでやれ。AbstractTableModel のサブクラスなら fireTableXXX()
でも良い。
143デフォルトの名無しさん:2006/02/13(月) 19:04:27
>>142
即レスありがとうございます。
やってみます。
144141:2006/02/13(月) 19:24:56
>>142さんのやりかたで、TableModelListener の abstruct であるtableChanged(TableModelEvent)をオーバーライドしてやらなきゃいけないようなのですが
これはなにを記述すれば良いのでしょうか?
空だと更新されないみたいなのです。
145141:2006/02/13(月) 19:31:59
こんな感じでだめでした。

myTableModelListener implements TablemodelListener{
public void tableChanged(TableModelEvent e){/*空*/}
}
myTableModelListener tl = new myTableModelListener()
(myTableモデル).addTableModelListener(tl)
tttt.tableChanged(new TableModelEvent(mmm,6,7,TableModelEvent.ALL_COLUMNS,TableModelEvent.DELETE));
146141:2006/02/13(月) 19:34:23
申し訳ありません。最後の行がすこし間違えてました。
tl.tableChanged(new TableModelEvent(mmm,6,7,TableModelEvent.ALL_COLUMNS,TableModelEvent.INSERT));
147デフォルトの名無しさん:2006/02/13(月) 19:37:32
>>144
いや違う。TableModel の変更時に TableModel の中から TableModelListener の
tableChanged() を呼んでやれ。AbstractTableModel を extend してるならこんな感じ

// 2行挿入...
fireTableRowInserted(1, 1);

TableModel を直接 implement してるならこんな感じだ。

private List listener = new ArrayList();
public void addTableModelListener(TableModelListener l){
  listener.add(l);
}
public void removeTableModelListener(TableModelListener l){
  listener.remove(l);
}
public void someMethod(){
  // 2行目に挿入...
  TableModelEvent e = new TableModelEvent(source, 1, 1, ALL_COLUMNS, INSERT);
  for(int i=0; i<listener.size(); i++){
    ((TableModelListener)listener.get(i)).tableChanged(e);
  }
}
148デフォルトの名無しさん:2006/02/13(月) 19:48:09
現在以下の様なプログラムを作成しているのですが、
1回目"モード"が表示された後、'1'を入力すると普通に処理が
実行されるのですがその後なぜか"モード"が3回表示されます。
どなたか原因・解決法が分かる方いらっしゃいますか?

public class test {
static int mode;
public static void main(String args[]) {
do {
System.out.println("モード");
switch (mode = System.in.read()) {
case '1':
     処理1
break;
case '2':
     処理2
break;
default:
break;
}
} while (mode != '2');
149デフォルトの名無しさん:2006/02/13(月) 19:51:21
>>148
'1' の後に改行文字がくっついてくるから。Windows だと CRLF、つまり "1\r\n" の 3 文字が
連続して入力されたのと同じ動きをする。
150デフォルトの名無しさん:2006/02/13(月) 19:53:28
>>147
サンプルコードありがとうございます。
いま頂いて試してみたところ、まだうまくいかないようですが、これ参考にしてなんとか頑張ってみます。
151デフォルトの名無しさん:2006/02/13(月) 19:53:32
(       ・ω・ ;)
152デフォルトの名無しさん:2006/02/13(月) 19:59:42
>>150
がんばれ。
TableModel の中から TableModel に add されてる TableModelListener を呼んでやるんだぞ。
自分で作った TableModelListener を add して呼ぶんじゃない。
153デフォルトの名無しさん:2006/02/13(月) 21:03:50
配列をcsv形式にしてファイルに出力したいんだけど、string配列を要素ごとに分解しないで出力する方法ってありますか?
そもそもその方法と、配列を分解して間にコンマを挟むやり方で、どっちが速く出力できるんでしょうか
154デフォルトの名無しさん:2006/02/13(月) 21:13:28
> string配列を要素ごとに分解しないで出力する方法ってありますか?
ない。for で回せ。
155デフォルトの名無しさん:2006/02/13(月) 21:18:35
>>154
あ、無いんですか・・・
速さ云々の問題じゃないですね
ありがとうございました
156デフォルトの名無しさん:2006/02/13(月) 23:39:10
直列化復元をしようと思ったのですが、JメニューアイテムにAbstractActionを継承したクラスをセットすると復元時にIOExceptionを返してうまくいきません。
ちなみに↓のように問題の箇所をコメントアウトしてやると直列化復元ができました。

import java.awt.event.ActionEvent;
import javax.swing.*;

public class ThmMarkup extends JMenu {
private static final long serialVersionUID = -7741431003723696257L;

/* [Markup]
* Markup
*/
public ThmMarkup() {
super("Markup");
setMnemonic('M');
JMenuItem tmp1 = new JMenuItem(/*new Ts()*/);
tmp1.setText("Markup");
add(tmp1);
}
}

class Ts extends AbstractAction {
private static final long serialVersionUID = -7802062679011228602L;

public void actionPerformed(ActionEvent e) {
}
}
157156:2006/02/13(月) 23:44:14
>>156
すみません..文章が疑問形になってないですね。

156の直列化復元が失敗する理由が分かるかた教えて下さい。おねがいします。
158デフォルトの名無しさん:2006/02/14(火) 01:04:20
>>156
クラスを入れ子にしてみたらどうだろう
159デフォルトの名無しさん:2006/02/14(火) 02:16:01
assertって、バイトコードでは特別な命令があるのでしょうか。それとも単に、
if (xxx) { throw new AssertionError(); }相当の普通のバイトコードが挿入されるのでしょうか。
160デフォルトの名無しさん:2006/02/14(火) 02:21:18
161デフォルトの名無しさん:2006/02/14(火) 08:02:03
>>159
if (xxx) { throw new AssertionError(); }相当のコードが挿入されます。
162デフォルトの名無しさん:2006/02/14(火) 11:19:03
>>161
なるほど。ありがとうございました。
163sage:2006/02/14(火) 14:36:07
プログラムAからプログラムBに値を受け渡したいのですが
プログラムBで受け取ることができません。
プログラムAから値を送信するところまでは確認できたのですが
プログラムBで値を取得する良い方法はないでしょうか?
164デフォルトの名無しさん:2006/02/14(火) 14:37:29
あげてしまった・・・。
165デフォルトの名無しさん:2006/02/14(火) 14:43:37
>>163
その文章で問題解決できる人がいると思うのか?
166デフォルトの名無しさん:2006/02/14(火) 14:44:45
どうやって値をわたしてるの?

シリアライズでソケット通信かな?
RMIかな?
SOAPかな?
XMLRPCかな?

エスパー募集!
167デフォルトの名無しさん:2006/02/14(火) 14:59:32
ヒント:アクセス修飾子
168163:2006/02/14(火) 15:08:05
言葉足らず過ぎで申し訳ない・・・
リストボックスのSERECTタグから拾った値を別のプログラムのJavaのプログラムに渡したいのです
169デフォルトの名無しさん:2006/02/14(火) 15:11:05
・・・どこが笑いどころだ?
俺にはわからん・・・歳食ったなぁ
170デフォルトの名無しさん:2006/02/14(火) 15:14:26
日本の将来が心配になってきますた。
171デフォルトの名無しさん:2006/02/14(火) 15:16:43
>>169
SERECTあたりかと
172デフォルトの名無しさん:2006/02/14(火) 15:17:36
>>170
大丈夫、ここでたたいておけば>>163みたいなやつがプログラマにならずに済む。
彼の日本語からすると、できる人間じゃないので
きっと土方とか交通整理とかそういうことをやって下から我々を支えてくれるよ。
173デフォルトの名無しさん:2006/02/14(火) 15:26:48
SERECTに禿ワロタ
174デフォルトの名無しさん:2006/02/14(火) 15:27:47
うちの会社にも似たようなのがいるんですが、どうしたら良いですか?
175デフォルトの名無しさん:2006/02/14(火) 15:28:49
KUBI
176デフォルトの名無しさん:2006/02/14(火) 15:29:30
だから、クラス名はカタカナに変換しないで、ちゃんと記述してください。
それから、種別や所属を表す修飾語をもっと使ってください。
# フレームでも Swing のフレームなら、JFrame クラスのことだな、って分かるわけですよ。
177デフォルトの名無しさん:2006/02/14(火) 16:13:38
KUVIっていいな
178デフォルトの名無しさん:2006/02/14(火) 17:13:09
>>168よりむしろその後の一人芝居の笑いどころがわからんのだが
179デフォルトの名無しさん:2006/02/14(火) 17:31:49
フーン
180デフォルトの名無しさん:2006/02/14(火) 17:36:17
こりゃまじめにエスパー募集してもらわんと
181デフォルトの名無しさん:2006/02/14(火) 17:46:31
>>172の笑いどころてこれだろ
>プログラマにならずにすむ
  ↓
>土方や交通整理で我々を下から(ry

プログラマも土方も>>172も目くそ鼻くそだろうと
182デフォルトの名無しさん:2006/02/14(火) 17:47:22
現在AWTを勉強しています

Componentで利用できる
setBackground , setFonメソッドなどと
Graphicsで利用できる
setColor , setFontメソッドなどの関係が判りません

Graphicsクラスは所謂デバイスコンテキストに当るクラスという事なのですが
Componentで設定されている背景色やフォントを参考に、このコンテキストにカプセル化されてる
各種プロパティが設定される・・・という感じでしょうか
183デフォルトの名無しさん:2006/02/14(火) 17:49:56
>>168
もう JavaScript 認定でいいよ。エスパーいらね

# プログラムのプログラムなんて、UTMかっ
184デフォルトの名無しさん:2006/02/14(火) 18:03:06
>>182
ドキュメントに関係があると記述されて無いなら無関係。
185デフォルトの名無しさん:2006/02/14(火) 18:03:22
>>183
解らなければ黙ってた方がいいよ
186デフォルトの名無しさん:2006/02/14(火) 18:06:06
まともな質問できない奴は徹底スルーすれば良い話
187デフォルトの名無しさん:2006/02/14(火) 18:23:48
InputMap ってなんですか?
例えば、JComponent の getImputMap(); メソッドを実行すると InputMap の戻り値が返って来るんですが、InputMap には何が入っているのでしょうか?
API ドキュメントを見るとインスタンスフィールドもスタティックフィールドも無いんですけど、この型は何をしているのでしょう?

ついでにマップの概念も分らないんです。
188デフォルトの名無しさん:2006/02/14(火) 18:33:20
>>184
paint(Graphics g)メソッド中で
setForeground(new Color(0xFF0000));
と前景色を赤255に設定し、g.fillRect(0,0,100,100);などと矩形を描画しますと赤色の矩形が描画されます。
(init()メソッドでsetForeground(0)と一応初期化しました);
ですからGraphicsクラスがComponentクラス乃至そのサブクラスのプロパティを参照してると思うのですが
189デフォルトの名無しさん:2006/02/14(火) 18:39:46
>>188
君がいってるのは、例えば C言語で(たしか)不定とされている動作
int i = 0; i = i++; printf("%d", i); に関して、特定のコンパイラで 0 と表示されたってレベルの話。

だからといって C言語の仕様で上記は 0 と表示されるべきであるか、ってのとは別の話だって言う事。
190デフォルトの名無しさん:2006/02/14(火) 18:43:17
>>187
デフォルトの動作を覚えておくもの
たとえばタブ押せばフォーカスがどんどん次のコンポーネントへ移動するでしょ?
ああいうのを実装しているわけだ

だから汎用的に使いたい場合、たとえばリターンキー押したら
次のコンポーネントへ移動するとかが簡単に実装可能

基本的にはすでに作成したコンポーネントからInputMapを取得して
それに対して変更箇所だけ設定するのが普通
191デフォルトの名無しさん:2006/02/14(火) 18:45:12
>>189
よく理解できません

int i=0;i = i++;printf("%d",i)
についてはちゃんと評価されると思いますが
iがインクリメントされ、その値をiに代入ですから問題ないと思いますが
期待された処理を行わないコンパイラもあるのですか?

それはともかくとして
きっとアレなんで1から勉強しなおしてきます
192デフォルトの名無しさん:2006/02/14(火) 18:46:30
>>191
違うんだよなあ。数パターン考えられるんよ。
193デフォルトの名無しさん:2006/02/14(火) 18:46:34
cの話題は荒れるから止めれ
194デフォルトの名無しさん:2006/02/14(火) 18:46:57
>>188
Graphics の初期値を Component に設定するという程度の認識で良い。
御託並べてるバカは無視。
195デフォルトの名無しさん:2006/02/14(火) 18:49:11
>>192
同じ C/C++ 使いとしておまえの文調から プンプン 臭う自慢臭が ハズイ から芯でくれ
196デフォルトの名無しさん:2006/02/14(火) 18:49:36
コンポーネントのプロパティと描画に使うメソッドとまったく違うものだろ
どう勘違いするんだ
197デフォルトの名無しさん:2006/02/14(火) 18:51:53

192 デフォルトの名無しさん sage 2006/02/14(火) 18:46:30
>>191
違うんだよなあ。数パターン考えられるんよ。
198デフォルトの名無しさん:2006/02/14(火) 19:00:56
「DQN って知らないでしょ? 語源は目撃ドキュンっていう番組で…」 とか嬉々としながら
女の子に説明してる系の痛い人が思い浮かびました。
199デフォルトの名無しさん:2006/02/14(火) 19:01:11
>>190さん
ありがとうございます。
getInputMap(); を実行すると、既にあるコンポーネントのデフォルトの動作が入った InputMap が取得できると言う事でしょうか?
馬鹿な事を言うと思うかも知れませんが、InputMapにはフィールドが無いのでどうやって覚えているんだろうって不思議です。
いろいろあるメソッドも、どこにどんな操作をしているのか、、さっぱり分りません。
すみません。
200デフォルトの名無しさん:2006/02/14(火) 19:05:10
>>199 は、調べ物をする際の典型的なトラップに、はまりかけてるように思える。
# そのうちソースを見ないと安心できなくなりそうだな。
201デフォルトの名無しさん:2006/02/14(火) 19:11:03
>>191
++が後ろにあるだろ。式の評価後にインクリメントされるわけだ。
じゃ、代入後のiがインクリメントされるのか、
代入前のiがインクリメントされるのかどっち?
202デフォルトの名無しさん:2006/02/14(火) 19:14:29
なんだ数パターンって2つじゃん
203デフォルトの名無しさん:2006/02/14(火) 19:14:30
>201
わざわざ蒸し返さなくていい。
204デフォルトの名無しさん:2006/02/14(火) 19:15:18
>>200
まさにソーッス。。(寒
どう理解したらいいのでしょう?
と言うか心構えの問題でしょうか?・・・ ツカレマシタ
205デフォルトの名無しさん:2006/02/14(火) 19:30:37
後置インクリメント演算子 > 代入演算子
お前馬鹿か?
206デフォルトの名無しさん:2006/02/14(火) 19:33:30
>>199
そういうこと
207デフォルトの名無しさん:2006/02/14(火) 19:34:45
208デフォルトの名無しさん:2006/02/14(火) 19:39:28
>>206さん
あまり深く考えないようにします。
本当にありがとうございました。
209デフォルトの名無しさん:2006/02/14(火) 19:42:43
>>205
そりゃ演算子の結合の優先順位だ。
知らない奴はこれ見て勉強して来い。帰ってくるな。スレ違いだしな。
http://www.kouno.jp/home/c_faq/c3.html
210デフォルトの名無しさん:2006/02/14(火) 19:45:23
↓おまえがな

209 デフォルトの名無しさん sage New! 2006/02/14(火) 19:42:43
>>205
そりゃ演算子の結合の優先順位だ。
知らない奴はこれ見て勉強して来い。帰ってくるな。スレ違いだしな。
http://www.kouno.jp/home/c_faq/c3.html
211141:2006/02/14(火) 19:48:29
>>152
ありがとうございます。ほぼ>>147のコードのママで出来ました。別の部分にうっかりミスが
あり、昨日はうまくいかなかったのでした。
要はaddTableModelListener()の中で(何処からか送られてくる)TableModelListenerを保持しておいて
その登録されたListenerのtableChanged()を呼ぶということですね。

addTableModelListener()をオーバーライドして、この処理を書いてないため、>>145のようなやり方では駄目だったということだと思います。
(addTableModelListener()をオーバーライドしない場合は、AbstructTableModelのlistenerListフィールドをどうにかして使うのかな?)
212デフォルトの名無しさん:2006/02/14(火) 19:53:26
>>209
勉強になったぞ
213142:2006/02/14(火) 19:54:19
あと勘違いで、自分ではTableModelインターフェースを直接実装してるつもりだったのですが、実はAbstructTableModelを継承してました。
つまり、おとなしくfireTableRowInserted()を使えという結論になりました。
214デフォルトの名無しさん:2006/02/14(火) 19:55:38
おとなしくDefaultTableModelをベースで作ったほうがはやかったりしてな
215デフォルトの名無しさん:2006/02/14(火) 20:00:58
>>214
そうでした。DefaultTableModelのようなaddRow()が出来ないから質問したのですが、そもそもなんでDefaultTableModel使わなかったんだろうか自分でも思い出せないorz
216デフォルトの名無しさん:2006/02/14(火) 20:12:04
>>209
だからさー、そんな基本的な薀蓄をいちいち Java のスレ来て高説ぶるの
見てて痛々しいからやめてくんない? Java では定義されてる動作だって
のも知らないの?

質問者置いてけぼりで自慢したい空気が行間からプンプン臭うよw
217デフォルトの名無しさん:2006/02/14(火) 20:13:21
スルー出来ないのはデフォルト動作です
218デフォルトの名無しさん:2006/02/14(火) 20:16:26
自分で多言語持ち出しといてバツが悪くなったらスレ違い、はねえわな。
219デフォルトの名無しさん:2006/02/14(火) 20:18:15
みんな同一人物だとでも思ってるのかな。
220デフォルトの名無しさん:2006/02/14(火) 20:21:22
それをわざわざ書き込むのは同一人物じゃなかったことにしたい人だけだな。
221156:2006/02/14(火) 20:21:40
調べてみたらそれらしいのを見つけました。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4966168
MenuItemPropertyChangeListenerのバグな気が。
222デフォルトの名無しさん:2006/02/14(火) 20:29:39
>>220
「同一人物じゃなかったことにしたい人」っていっても、不特定多数なわけだけど具体的に誰のこと?
あと、実際に「じゃなかったことにした」くない人の書き込みがないってどうしてわかるの?
223デフォルトの名無しさん:2006/02/14(火) 20:32:28
初心者以前の質問はスルーすることにしてますんで
224デフォルトの名無しさん:2006/02/14(火) 20:32:56
多数の書き込みがあるのにそれらが同一人物であると思っていそうな奴がいれば、面白いから突っ込みたくなる香具師は大勢いるんじゃないの?
225デフォルトの名無しさん:2006/02/14(火) 20:34:10
所詮年収600万以下のPGしか居ないようなスレだから仕方ない
226デフォルトの名無しさん:2006/02/14(火) 20:35:04
お前と俺しかいないよ
227デフォルトの名無しさん:2006/02/14(火) 20:35:37
何か顔真っ赤にしてる方がいらっしゃいますね。
228デフォルトの名無しさん:2006/02/14(火) 20:37:32
バレンタインに貰ったウィスキーボンボンで酔ってしまった
229デフォルトの名無しさん:2006/02/14(火) 20:38:11
お子様は今すぐ寝なさい
これが最終勧告です
230デフォルトの名無しさん:2006/02/14(火) 20:42:24
私をあまり怒らせないほうがいい
231デフォルトの名無しさん:2006/02/14(火) 20:50:09
>>221
ローカルで試そうとしたまま忘れてたがバグ?
次からちゃんとスタックトレースの内容も貼ってくれ。IOException だけじゃわからん。
232156:2006/02/14(火) 21:00:26
>>231
すみません。本当に初心者なんでデバッグのときにIOExceptionを受け取ったらprintln("IOException")とかやっていたのでIOExceptionなんだとか思ってました。
今日スタックトレースをやってみてMenuItemPropertyChangeListenerに気づきました。
233デフォルトの名無しさん:2006/02/14(火) 21:03:43
種50で去年2000儲けたから働く気なんて失せる罠
会社で齷齪してる奴らは管理職を肥やすためにご苦労様です

>>376
取りあえず木あたりに今年一番の勝負賭けてみる
狙い目はM関連で
234デフォルトの名無しさん:2006/02/14(火) 21:34:33
ピンポイント誤爆キター
235デフォルトの名無しさん:2006/02/14(火) 21:36:10
>>233
2chでんなこと書いてて恥ずかしくないの?
236デフォルトの名無しさん:2006/02/14(火) 21:39:05
ハイハイ誤爆しましたよっと

>>235
ハズカチー(笑)
237デフォルトの名無しさん:2006/02/14(火) 21:43:00
【ピンポイント誤爆】
意味:誤爆に見せかけた別スレッドへの意図的な誤書き込み。主に見栄を張りたい厨房が行う。
238デフォルトの名無しさん:2006/02/14(火) 21:43:47
よかったな、3匹釣れてるぞ。
239デフォルトの名無しさん:2006/02/14(火) 21:44:42
よんひきだろ?>>238
240デフォルトの名無しさん:2006/02/14(火) 21:46:21
【ピンポイント誤爆】
意味:誤爆に見せかけた別スレッドへの意図的な誤書き込み。主に見栄を張りたい厨房が行う。
虚偽をバレナイと思い慣行する痛いアホが往々にしている。
241156:2006/02/14(火) 21:54:45
ろっぴきだろ?>>239
242デフォルトの名無しさん:2006/02/14(火) 21:58:37
ほーら、七匹目がさっそく
243デフォルトの名無しさん:2006/02/14(火) 21:59:27
8ぴっきめが吠えてますがww
244デフォルトの名無しさん:2006/02/14(火) 21:59:59
九匹目もきたようです
245デフォルトの名無しさん:2006/02/14(火) 22:01:55
10って言ったら負けだかんね!
246デフォルトの名無しさん:2006/02/14(火) 22:02:41
11ぴきめっけ
247デフォルトの名無しさん:2006/02/14(火) 22:04:04
12匹目GET
248デフォルトの名無しさん:2006/02/14(火) 22:08:11
14匹めはマダかな〜
249デフォルトの名無しさん:2006/02/14(火) 22:11:19
>>248
14匹めはお前だろ
250デフォルトの名無しさん:2006/02/14(火) 22:13:01
じゃあ俺が 15 匹目ってことで良いよ
251デフォルトの名無しさん:2006/02/14(火) 22:14:12
>>250
計算できたない
252デフォルトの名無しさん:2006/02/14(火) 22:20:12
Ch2スレッド s = ch2.getプログラム板().getJava初心者質問スレ();
int count = 0;
while(s.getLength() < 1000) {
int tmp = s.getLength();
while(tmp == s.getLength());
if(s.getレス(s.getLength()).is釣られた())
count++;
}
253デフォルトの名無しさん:2006/02/14(火) 22:23:37
whileにバグが隠されてる気がするが
254デフォルトの名無しさん:2006/02/14(火) 22:26:05
>>252
これはまた随分汎用性に欠けるインタフェイスですね
255デフォルトの名無しさん:2006/02/14(火) 22:31:15
Ch2スレッド s = ch2.get(プログラム板).get(Java初心者質問スレ);
int count = 0;
int tmp;
while((tmp = s.getLength()) < 1000) {
if(s.getレス(tmp).is釣られた())
count++;
}
これではどうだ
256デフォルトの名無しさん:2006/02/14(火) 22:35:19
糞レスOverflowError
257デフォルトの名無しさん:2006/02/14(火) 22:36:39
main() throws 糞レスOverflowError
258デフォルトの名無しさん:2006/02/14(火) 23:08:53
mainでthrowしても無駄だった。俺は>>8に騙されただけだ。
catch(糞レスOverflowError e){
System.out.println("IloveYou");
}
259デフォルトの名無しさん:2006/02/14(火) 23:16:10
IllegalLoveException
260デフォルトの名無しさん:2006/02/14(火) 23:19:07
>>255
それだと、is釣れた()でtrueが返ってきたときに、次のレスが付くまで延々とカウントし続ける気がする。
261デフォルトの名無しさん:2006/02/14(火) 23:21:26
質問です。
初めてゲームプログラムを作っています。
ゲームクラスとタイマークラスに分けて作りました。
タイマークラスにスレッドを使い、
ゲームクラスのスタートボタンを押すとタイマーがスタートし、
時間切れになるとゲームが終わるようにしました。
ゲームを再スタートしたいのですが、
タイマークラスが動きません。
スレッドは一度しか動かないのですか??
ご教授お願い致します。
262デフォルトの名無しさん:2006/02/14(火) 23:22:12
NoSuch彼女Exception
263デフォルトの名無しさん:2006/02/14(火) 23:22:58
>>261
終了した (run メソッドを抜けた) スレッドのインスタンスは再利用できません。
新しく new してください。
264261:2006/02/14(火) 23:25:29
>>263
ありがとうございます。
265253,255:2006/02/14(火) 23:27:48
>>260
なるほど。>>252のwhileの最後の;はそのためにあるのでしたか。>>252さん、バグなんて言ってすまんです。
266デフォルトの名無しさん:2006/02/14(火) 23:44:41
どうしてもマウスでカチカチするのがイヤで、
eclipse使わずにvim+screen+antでやってるんですが、
これってどうなんでしょうか?
267デフォルトの名無しさん:2006/02/14(火) 23:51:54
>>261
つーか設計見直すべきじゃね?
ゲーム内の時間管理にスレッドつかうっておかしくないか?
268デフォルトの名無しさん:2006/02/14(火) 23:57:52
初めてのゲームならそんなにリアルタイムなタイマーじゃなくても良いだろ。
269デフォルトの名無しさん:2006/02/14(火) 23:57:53
>>267
詳細きぼん
270デフォルトの名無しさん:2006/02/14(火) 23:58:48
>>261の作り方斬新杉
271261:2006/02/14(火) 23:59:05
>>267
タイマーをスクロールバーと言うか、
バーが少しずつ減っていくようにしたかったので、
スレッドを使って、t.sleep(100)で、バーを描いて
いたのですが。。
272デフォルトの名無しさん:2006/02/15(水) 00:08:38
それ別スレッドにしなくてもメインループ内で処理してもいいんじゃないの?
273デフォルトの名無しさん:2006/02/15(水) 00:10:54
どうでも良いことネチネチ引っ張るなカス
274デフォルトの名無しさん:2006/02/15(水) 00:13:46
Ch2スレッド s = ch2.get("プログラム板").get("Java初心者質問スレ");
int count = 0;
while((tmp = s.getLength()) <= 1000) {
while(tmp == s.getLength());
if(s.getレス(s.getLength()).is釣られた())
count++;
}
275デフォルトの名無しさん:2006/02/15(水) 00:23:03
>>266
最近始めた自分はcygwin(コマンドプロンプト)+bash+vim
jdk日本語版落としてしまって、文字化けするんでscreenは使えない。
276デフォルトの名無しさん:2006/02/15(水) 00:31:48
>>266
Eclipseでもショートカットを使って結構マウスなしでがんばれますが、vi派にはつらいかも。
でも、型参照とかリファクタリングとか、特にクィックフィックスが便利です。
私もemacs + JDEE 派でしたがずいぶん前にEclipseに乗り換えました。
ってemacs派の意見は無視ですかそうですか。
詳しい話はEclipseスレに行くといいんじゃないでしょうか。
277デフォルトの名無しさん:2006/02/15(水) 01:11:47
>>266
「材質は銅じゃないよ」と楽器板風なレスが欲しいのか?
278デフォルトの名無しさん:2006/02/15(水) 01:13:08
マウスがチカチカするのが嫌ならレーザーやめてボールに戻せ
279デフォルトの名無しさん:2006/02/15(水) 01:22:01
>>261
色々と考え込む前にCodeZineの「★★★★本格的なシューティングゲームを実現するタスクシステム」を読んで来い
280デフォルトの名無しさん:2006/02/15(水) 01:52:22
>276
eclipse使わないでやってるのって、もう時代錯誤なのかなぁとか
思ったりしてしまい、、、同業他社の人を見ると確実にeclipseなので。

>私もemacs + JDEE 派でしたがずいぶん前にEclipseに乗り換えました。

やっぱ慣れるとすごくイイですか?
281デフォルトの名無しさん:2006/02/15(水) 01:58:55
>>280
>>276も言ってるが、コードアシストとクイックフィックスが便利。
これ使わないなら乗り換える意義がないと言ってしまいたいくらい。
282デフォルトの名無しさん:2006/02/15(水) 02:08:07
>>281
リファクタリングとお手軽ソースフォーマッタも有るよ
283デフォルトの名無しさん:2006/02/15(水) 02:13:21
入力しながらさりげなくエラー表示してくれるのとか、保存と同時にコンパイルしてくれるのとか。
MS-DOS, C の時からずっとコマンドラインコンパイラ+テキストエディタだったが Eclipse スレ
Part1 で試しに使ってみたらハマった。
284デフォルトの名無しさん:2006/02/15(水) 03:03:01
オブジェクトの配列をプリミティブの配列に変換する方法ってあります?
arraylistのtoArrayだとオブジェクトの配列しか手にはいんねっす。
list中に入ってるのはbyteをオートボクシングで入れたByteです。
285デフォルトの名無しさん:2006/02/15(水) 03:05:33
>>284
っ [設計の見直し]

じゃなきゃ、for文でこつこつやらせてください。
出し入れ箇所が多いならユーティリティクラスでも作ってください。
286デフォルトの名無しさん:2006/02/15(水) 03:09:39
byte 配列なら ArrayList の代わりに ByteArrayOutputStream に入れるとよい。
toByteArray() で byte 配列になる。
287デフォルトの名無しさん:2006/02/15(水) 10:20:23
数字を文字列として扱いたいときの質問です
1を000001
11を000011
のように桁数指定(フォーマット指定)で簡単に変換する方法は
288287:2006/02/15(水) 10:21:14
すいません、書きかけで投稿してしましました。

数字を文字列として扱いたいときの質問です
1を000001
11を000011
のように桁数指定(フォーマット指定)で簡単に変換する方法は
ありますか?
289デフォルトの名無しさん:2006/02/15(水) 10:27:39
>>288
投稿してしましました
290デフォルトの名無しさん:2006/02/15(水) 10:36:11
291287:2006/02/15(水) 11:01:25
>>290 情報提供ありがとうございます。使ってみます。
292デフォルトの名無しさん:2006/02/15(水) 14:11:11
>>286
ありがとうです。
293156:2006/02/15(水) 20:13:56
MenuItemにAbstractActionを継承したクラスをセットすると直列化復元がうまくいかないのはバグだと分かりました.(バグであるという確信はないですが、自分には他に思いつかないです..)
しかし、直列化復元をなんとしてでも成功させたいです。
そこで質問があります例えば次のコードのnew Ivent()をコメントアウトせずに直列化復元をさせる方法はないでしょうか?
294156:2006/02/15(水) 20:15:32
>>293の続き
package main;
import java.awt.event.ActionEvent;
import java.io.*;
import javax.swing.*;
public class Main {
public static void main(String[] args) {
JFrame f;
try {
File file = new File("save.dat");
if(file.canRead()) {
FileInputStream fin = new FileInputStream(file);
ObjectInput s = new ObjectInputStream(fin);
f = (JFrame)s.readObject();
s.close();
fin.close();
} else {
295156:2006/02/15(水) 20:16:27
f = new JFrame();
JMenuBar mb = new JMenuBar();
JMenu tmp1 = new JMenu("tpm1");
JMenuItem tmp2 = new JMenuItem(new Ivent());←ここが問題の箇所
tmp2.setText("tmp2");
tmp1.add(tmp2);
mb.add(tmp1);
f.setTitle("Srialize");
f.setJMenuBar(mb);
f.setSize(200, 200);
f.setVisible(true);
FileOutputStream fout = new FileOutputStream(file);
ObjectOutput s = new ObjectOutputStream(fout);
s.writeObject(f);
s.flush();
s.close();
fout.close();
}
} catch(ArrayIndexOutOfBoundsException err) {
err.printStackTrace();
} catch(IOException err) {
err.printStackTrace();
} catch(ClassNotFoundException err) {
err.printStackTrace();
}
}
}
296156:2006/02/15(水) 20:17:35
class Ivent extends AbstractAction {
private static final long serialVersionUID = 368883942614563503L;
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
JOptionPane.showMessageDialog(
null, "Playing tmp2.", "tmp2",
JOptionPane.PLAIN_MESSAGE
);
}
}
297デフォルトの名無しさん:2006/02/15(水) 21:40:28
Javaを一ヶ月でマスターするのは可能でしょうか
298デフォルトの名無しさん:2006/02/15(水) 22:02:34
お前にはムリ
299156:2006/02/15(水) 22:05:57
絶対無理
300デフォルトの名無しさん:2006/02/15(水) 22:09:00
分かった
じゃあやってみせる
301デフォルトの名無しさん:2006/02/15(水) 22:18:41
新手の荒らし?
302デフォルトの名無しさん:2006/02/15(水) 22:22:40
>>301
ありがちなネタかと
303デフォルトの名無しさん:2006/02/15(水) 22:36:42
>>300
普通に考えてできるわけねーだろボケが
Javaを舐めてんじゅあねーよ
304デフォルトの名無しさん:2006/02/15(水) 22:42:21
お前ら程度の知識なら一ヶ月で十分だろ?
305デフォルトの名無しさん:2006/02/15(水) 23:27:44
文法くらいなら1週間あれば十分
javaの言語システムなら3週間くらい
応用はプライスレス
306デフォルトの名無しさん:2006/02/16(木) 00:53:51
ネットだけでjavaのapiを習得する最短の方法ってなんですか?
sunのリファレンス読んでもでも良く解らない仕様って多くないですか?
クラスのソース読んだりするのがいいのかな?といってもHDDの容量がそれを許さないし、時間がかかりそうだし。
すべてのクラスを網羅したサンプルを置いてあるようなサイトとかあれば良いんですが。
307デフォルトの名無しさん:2006/02/16(木) 01:01:16
必要になったら覚えればいいんじゃね?
ネットワーク回りくみたいとおもったらjava.netやjava.ioみればいいし
グラフィック回りならJava2D

まずはsunのドキュメントに目を通してからいってくだされ
308デフォルトの名無しさん:2006/02/16(木) 01:05:20
なんでソースとHDDの容量が関係あるんだ?
309デフォルトの名無しさん:2006/02/16(木) 01:07:09
ていうか文法以外覚えないよね。
必要なときに見るだけ。
310デフォルトの名無しさん:2006/02/16(木) 01:08:02
>>307
質問のこたえになってないじゃん。馬鹿?
311デフォルトの名無しさん:2006/02/16(木) 01:09:32
>>310
おまえの発言って情報量少ないよな
人生の絞りカスはだまって腐っててください^^;;;;;
312デフォルトの名無しさん:2006/02/16(木) 01:11:32
まぁまぁ、糞どうし仲良くしとけよ
313デフォルトの名無しさん:2006/02/16(木) 01:11:54
ワロタ
情報量だってよ
314デフォルトの名無しさん:2006/02/16(木) 01:12:53
>情報量ないよね

ハズかちい
315デフォルトの名無しさん:2006/02/16(木) 01:13:27
夜なのに皆元気だなぁ・・・
316デフォルトの名無しさん:2006/02/16(木) 01:13:49
2chで情報量w
でもこういう香具師ってほんとそこらへんにいるよね。
何なんだろ
317 ̄ ̄ ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ :2006/02/16(木) 01:13:58
    (´・ω・)
     く へ,   V、_,/
   (⌒ヽ\ノ,〉 >'、\/⌒j 
  { ヽ、  テ彡⌒ ⌒}  ノ | 
  | }  丶 . .,,___ノ、ノ/{ i
  |. {      ミ    } |
 ⊆ニゝ     ●   ヽニ⊇
||. .\\          \   ∧_∧.
.    \\           \ (    )  ゴルァ
.       \∧_∧     \|__./ ./
         (     )ちょっ!        .∧_∧
.        _/   ヽ          \| (    )なにやってんだ!
318デフォルトの名無しさん:2006/02/16(木) 01:14:22
反応早すぎwwww
319デフォルトの名無しさん:2006/02/16(木) 01:15:12
>>311は抽象的な表現でお茶を濁す厨房の典型だなw
320デフォルトの名無しさん:2006/02/16(木) 01:16:44
まるで釣堀みたいだなw
321デフォルトの名無しさん:2006/02/16(木) 01:18:34
306への回答どしどし募集中ですう\(^o^)/
322デフォルトの名無しさん:2006/02/16(木) 01:22:55
最近荒れるな。
323デフォルトの名無しさん:2006/02/16(木) 01:24:14
俺のお陰です
情報量が少ないのです
まったく2chのカスは絞りたてで困る
324デフォルトの名無しさん:2006/02/16(木) 01:47:52
質問者に求められるのは質問の要旨が明確であること。
情報量が求められるのは回答の方なんじゃないのかな。
それが出来ない回答者はカス。
325デフォルトの名無しさん:2006/02/16(木) 01:47:52
別にネットだけでJava覚えたければ、「JavaでHello World」とかそういう
サイトを読みまくって、おおまかな動かし方(初歩的なAPI)分かってきたら、
言語仕様だってネットで公開されてるし、いざとなったらAPIドキュメントみれば
いいわけで、正直、どこに問題があるかさっぱりわからん。

おれ仕事中は全部ネットで検索するので、本は見ないけどな。
326デフォルトの名無しさん:2006/02/16(木) 01:48:35
じゃあ、質問の用紙が明確でない質問者は?
327デフォルトの名無しさん:2006/02/16(木) 01:50:09
>>325
>sunのリファレンス読んでもでも良く解らない仕様って多くないですか?
328デフォルトの名無しさん:2006/02/16(木) 01:51:31
>>326
それは回答者がカスだから明確じゃないと思うんだろうよw
329デフォルトの名無しさん:2006/02/16(木) 01:51:42
>>327
そこまでいったら使ってみてどう動くか試すのがプログラマだろ?
330デフォルトの名無しさん:2006/02/16(木) 01:52:24
いいえ
331デフォルトの名無しさん:2006/02/16(木) 01:53:56
>>329
だからさ、それよりいい効率良い方法がないか検討してるんだよ。
332デフォルトの名無しさん:2006/02/16(木) 01:56:05
>>325
>どこに問題があるかさっぱりわからん
そもそも「なにが問題だ」という性質の質問ではない。
333デフォルトの名無しさん:2006/02/16(木) 02:05:13
>>331
でもAPIマニュアル見ながらどう動くかやっていけないとプログラマ失格だろ?
334デフォルトの名無しさん:2006/02/16(木) 02:06:03
また出た!大胆発言w
335デフォルトの名無しさん:2006/02/16(木) 02:08:49
>333
一応初心者スレなんだし、失格とか言うのはよそうよ。
336デフォルトの名無しさん:2006/02/16(木) 02:09:54
>>334
職業プログラマじゃないし、APIマニュアルから習得しなきゃならない必然性はないよ。少なくとも自分は、より効率性の高い方法があればそちらを選ぶね。
自然語が殆どで占められるAPIリファレンスよりサンプルがあったほうが解りやすいし、ソースを見ながらのほうが良いかもしれない。
337デフォルトの名無しさん:2006/02/16(木) 02:10:29
初心者叩きに来てる派遣用のスレですが何か?
338デフォルトの名無しさん:2006/02/16(木) 02:11:37
まぁ高卒以下は下手に調べるより手を動かせってこった。
339デフォルトの名無しさん:2006/02/16(木) 02:15:26
>>338
おまえあれだ、昨夜、土方よりプログラマの方が云々言ってた痛い香具師>>172だよなw

172 名前:デフォルトの名無しさん[sage] 投稿日:2006/02/14(火) 15:17:36
>>170
大丈夫、ここでたたいておけば>>163みたいなやつがプログラマにならずに済む。
彼の日本語からすると、できる人間じゃないので
きっと土方とか交通整理とかそういうことをやって下から我々を支えてくれるよ。

181 名前:デフォルトの名無しさん[sage] 投稿日:2006/02/14(火) 17:46:31
>>172の笑いどころてこれだろ
>プログラマにならずにすむ
  ↓
>土方や交通整理で我々を下から(ry

プログラマも土方も>>172も目くそ鼻くそだろうと
340デフォルトの名無しさん:2006/02/16(木) 02:17:19
ちげぇよ ヴァーカw
341デフォルトの名無しさん:2006/02/16(木) 02:17:49
高卒必死だな
342デフォルトの名無しさん:2006/02/16(木) 02:19:28
またロングパスだな。
>>172 の書き込みで >>339 の心が深く傷付いたのはよく分かったがw
343デフォルトの名無しさん:2006/02/16(木) 02:23:27
大量のAPIを一通り網羅するより、必要なときに取り出すようにしないと
とてもじゃないがやっていけないだろう。たった一つのしょぼい不具合に
8時間もかかった俺が着ましたよ('A`)。PG向いてないな。
344デフォルトの名無しさん:2006/02/16(木) 02:23:46
お、また自分で傷口広げようとしてる。見苦しい奴だw
345デフォルトの名無しさん:2006/02/16(木) 02:23:58
さあ早くペットボトルのキャップを分別する作業に戻るんだ
346デフォルトの名無しさん:2006/02/16(木) 02:24:55
>>344はもちろん>>343へのレスではない。
347デフォルトの名無しさん:2006/02/16(木) 02:27:40
プログラム板住人如きが学歴ネタに走るのは凄く痛いぞ。すこしは自分の姿を鏡に写して見てみたらどうだ。

な、>>342
348デフォルトの名無しさん:2006/02/16(木) 02:28:54
>>342が興奮してきたからもう一回出してみよう。
こんどはどんな反応くるかな?

172 名前:デフォルトの名無しさん[sage] 投稿日:2006/02/14(火) 15:17:36
>>170
大丈夫、ここでたたいておけば>>163みたいなやつがプログラマにならずに済む。
彼の日本語からすると、できる人間じゃないので
きっと土方とか交通整理とかそういうことをやって下から我々を支えてくれるよ。

181 名前:デフォルトの名無しさん[sage] 投稿日:2006/02/14(火) 17:46:31
>>172の笑いどころてこれだろ
>プログラマにならずにすむ
  ↓
>土方や交通整理で我々を下から(ry

プログラマも土方も>>172も目くそ鼻くそだろうと
349デフォルトの名無しさん:2006/02/16(木) 02:29:39
根に持つって怖いねw
350デフォルトの名無しさん:2006/02/16(木) 02:29:54
しかしたしかにまじめなヤツほど、APIドキュメントを頭から全部読もうとか
する。あれは辞書なんだから、分からなくなったときみりゃいいのに。

概略つかむのに、パッケージ単位のドキュメントを読むとなんとなく分かったり
することもあったり。
351デフォルトの名無しさん:2006/02/16(木) 02:30:57
さっきから連書きしてる粘着は何?
352デフォルトの名無しさん:2006/02/16(木) 02:32:19
そういや、本で「国際化とか騒いで小学校から英語教えてる暇があったら、
もっと日本語教えんかい。英語だけしゃべれて国際人とかなれるわけねえだろ」
とかいう話を読んだなあ。
353306:2006/02/16(木) 02:33:52
>>343
>大量のAPIを一通り網羅するより、
>>306はそういうことを言ってるんじゃないんだわ。

むしろあなたの言う、
>必要なときに取り出すようにしないととてもじゃないがやっていけないだろう。
という方法について問題にしてるんだ。
354デフォルトの名無しさん:2006/02/16(木) 02:35:28
だからつまり「JNDIでHello World」とか「RegexでHello World」とか
全パッケージについてあればいいんじゃない?

いやジョークじゃなくて、「JavaでHello World」ってサイト、なにげに
すごいと思うよ。
355デフォルトの名無しさん:2006/02/16(木) 02:38:00
>353
オライリーから一通り網羅した本が出てると思ったけど
それを辞書にするんじゃだめ?
356デフォルトの名無しさん:2006/02/16(木) 02:38:24
>>348
おまえよほどそれが気に触ったらしいなw 言っておくがマジで俺は >>172 じゃないぞ。
まぁ高卒の判断力なんてそんなもんだろうけどw
357306:2006/02/16(木) 02:46:38
>>355
>それを辞書にするんじゃだめ?
駄目じゃないです。質問の離れて、個人的には本気でやるなら良いかもしれないです(オライリーって高いですよね)。

とりあえず質問の趣旨から言えば、ネットで情報が得られるのが良いのですが。
>>354さんの言う通り、実際のコードが説明してあるサイト(リンク集でも)とかあれば良いのに。
358デフォルトの名無しさん:2006/02/16(木) 02:48:53
>>356
そうなんか。
そりゃすまん買った。
こんな板で学歴ネタやる奴も珍しいと思ったから同一人物だと思ったんだわ。
359デフォルトの名無しさん:2006/02/16(木) 02:49:05
>実際のコードが説明してあるサイト(リンク集でも)とかあれば良いのに

ソース内のコメント読めよ。
360デフォルトの名無しさん:2006/02/16(木) 02:50:15
>>356
なにまだ高卒とか言ってんの?痛い奴だ。馬鹿は死んでも(ry
361デフォルトの名無しさん:2006/02/16(木) 02:51:46
>>356
そんな必死になって、別人だって言わなくていいよw
362デフォルトの名無しさん:2006/02/16(木) 02:52:38
その日の俺の登場はもっと後。糞スレOverflowError だ高卒どもめが。
363デフォルトの名無しさん:2006/02/16(木) 02:54:09
高卒高卒叫んでる馬鹿は自分が大卒終了だって証言してるようなもんだろ。
所詮低学歴の部類だって気が付かないのか……
364デフォルトの名無しさん:2006/02/16(木) 02:54:24
根拠のない認定能力は半島民並だなw
365デフォルトの名無しさん:2006/02/16(木) 02:56:45
     /\⌒ヽペタン
   /  /⌒)ノ ペタン
  ∧_∧ \ (( ∧_∧
 (; ´Д`))' ))(・∀・ ;) <まぁおまいら、もちつけよw
 /  ⌒ノ ( ⌒ヽ⊂⌒ヽ
.(O   ノ ) ̄ ̄ ̄()__   )
 )_)_) (;;;;;;;;;;;;;;;;;;;)(_(  
366デフォルトの名無しさん:2006/02/16(木) 02:59:29
>>362
きみはなにをそんなにひっしにまもろうとしているのかwwwwwwwwwwwwww
367デフォルトの名無しさん:2006/02/16(木) 02:59:54
学歴ネタは食いつき良いなおまえら。
368デフォルトの名無しさん:2006/02/16(木) 03:00:29
>>366
おまえは何を必死にそんなにwを連ねてるのか?
369デフォルトの名無しさん:2006/02/16(木) 03:01:30
>>367
と、釣られた本人が述べております。
370デフォルトの名無しさん:2006/02/16(木) 03:02:04
学歴ネタを出す奴が同一人物でないと何か都合が悪いのかな?
そういうのはマイノリティだと思いたいとか。
371デフォルトの名無しさん:2006/02/16(木) 03:02:44
釣り宣言 キタ━━━( ´∀`)・ω・) ゚Д゚)・∀・) ̄ー ̄)´_ゝ`)━━━!!!
372デフォルトの名無しさん:2006/02/16(木) 03:05:34
>>370
もはや誰も追及してないじゃん。
そんなに別人だって主張しなくていいと思うよ。
373デフォルトの名無しさん:2006/02/16(木) 03:06:46
>357
んと、解説が簡単に引き出せたらいいなぁってことだよね?
サンプルコードを検索できるサイトなら3つ知ってるよ。

http://www.javarss.com/hp/joogle/
http://koders.com/
http://www.jarhoo.com/

jarhooは会員登録しなくちゃならなくなったようだけど。

個人的には、クラスの使い方がたくさん載ってるページを
いくつか捕まえて、それで解決していくしかないと思ってる。
自分もSunのAPIやリファレンスがよく分からないクチだから。
374デフォルトの名無しさん:2006/02/16(木) 03:07:32
>>372
ワロタ
375デフォルトの名無しさん:2006/02/16(木) 03:07:34
何だ、いつもの釣り宣言かよw  ┐( ´ー`)┌
376デフォルトの名無しさん:2006/02/16(木) 03:12:47
>>373
>個人的には、クラスの使い方がたくさん載ってるページを
>いくつか捕まえて、それで解決していくしかないと思ってる。
>自分もSunのAPIやリファレンスがよく分からないクチだから。

Java以外もやるようにするといいよ。
別言語の考え方に触れることでJavaに関する視野も広がる。
377デフォルトの名無しさん:2006/02/16(木) 03:14:13
>>372
これも釣りか。すぐ上の >>366 辺りが見えないわけないもんなw
なにが 「もはや」 だ、意味分かって使ってんのか ヴァカ 高卒
378デフォルトの名無しさん:2006/02/16(木) 03:15:33
>376
確かにJavaしかふれたことがないよ(そしてJava初心者)。
分かる人には分かるのかな?

どうもありがとう。Cでもさわってみようかな。
379デフォルトの名無しさん:2006/02/16(木) 03:17:43
都合が悪くなると釣り宣言、軽くたしなめて勝ち逃げ終了狙いなんて
ベタな手法だな。
380デフォルトの名無しさん:2006/02/16(木) 03:19:46
>>377
追求の意味を覚えてからおいで。
381デフォルトの名無しさん:2006/02/16(木) 03:20:39
揚げ足とって本題そらしもヴァカの定石
382デフォルトの名無しさん:2006/02/16(木) 03:21:46
>>373
そこ便利ですね。kodersてとこ使ってみたらjavaのソースも見れるし。参考になりました。ありがとう。
次回テンプレに入れると良くない?
383デフォルトの名無しさん:2006/02/16(木) 03:25:02
どちらにしてもこの流れの速さで5分も前は「もはや」と言われてもおかしくないね。
遅すぎ。
>>377おまえはそうやっていつも時代に取り残されてきたんだな。同情するよw
384デフォルトの名無しさん:2006/02/16(木) 03:27:32
何がこの流れの速さだよ… 4 レス前もキャッシュできない無能は頼むから死んでくれ。
385デフォルトの名無しさん:2006/02/16(木) 03:31:57
つまり話題に乗り遅れてるってことさ
386デフォルトの名無しさん:2006/02/16(木) 03:34:05
>>385>>384へのレスだぞ。
よく読んでおけ。
387デフォルトの名無しさん:2006/02/16(木) 03:34:26
>>383 がこの流れで 5 分以上経ってる件はスルーですか
388デフォルトの名無しさん:2006/02/16(木) 03:35:34
意味不明なレッテル貼り。
馬鹿ほど無駄に接続詞を使いたがる典型。
389デフォルトの名無しさん:2006/02/16(木) 03:36:06
>>387のレスは予測ずみです。
>「遅い」
捕捉しておこう。ここで問題にされているのはレスの速さではなく、5分が「もはや」かどうか。
>>377は、>>372から>>366を見たとき、「もはや」と表現できないと述べている点が「遅い」と言われている。
390デフォルトの名無しさん:2006/02/16(木) 03:37:11
馬鹿ほど蛇足的説明を付けたがる典型。
391デフォルトの名無しさん:2006/02/16(木) 03:38:12
つまり時間感覚の問題だよ。
>>377は感覚が劣化しきっているように見受けられる。
392デフォルトの名無しさん:2006/02/16(木) 03:41:16
>>390
誰だこんなことを言ったのは

364 名前:デフォルトの名無しさん[sage] 投稿日:2006/02/16(木) 02:54:24
根拠のない認定能力は半島民並だなw
393デフォルトの名無しさん:2006/02/16(木) 03:41:25
それはただの感想。揚げ足取られて蛇足説明始める ヴァカ なんて所詮その程度か。
394デフォルトの名無しさん:2006/02/16(木) 03:43:17
>382
こんな感じかな?他にも書き換えてみた。どうだろう。
---------------------
前スレッド
【初心者】Java質問・相談スレッド80【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1138455638/

過去ログ、関連スレ、FAQなど
http://www.wikiroom.com/java/

サンプルコード検索
http://www.javarss.com/hp/joogle/
http://koders.com/

よくある質問
http://www.wikiroom.com/java/index.php?FAQ
・String に == は使うな。equals を使え。
・内部クラスから外部クラスのローカル変数は使えない。他の方法を考えろ。

・まずはwikiや過去ログなどを確認してください。
・回答をもらえたら、質問と答えをwikiに書き込んでおいてください。
・JavaScriptについての回答はできません。
 Web製作板へ→http://pc5.2ch.net/hp/

次スレは>>980あたりで。
395デフォルトの名無しさん:2006/02/16(木) 03:43:23
>>393
381 名前:デフォルトの名無しさん[sage] 投稿日:2006/02/16(木) 03:20:39
揚げ足とって本題そらしもヴァカの定石

おや?
396デフォルトの名無しさん:2006/02/16(木) 03:46:02
>>393がここまでダメダメだとは想定外だったorz
397デフォルトの名無しさん:2006/02/16(木) 03:50:27
>>392
始めに結論ありきみたいな小学生の感想文で意味不明な認定してるお前のことだ。

>>395
まさに自分の都合の良い情報しかキャッシュに残らないという典型だな。
398デフォルトの名無しさん:2006/02/16(木) 03:51:27
>>396
勝利宣言キターーーーーーーーーーーー プゥッ
399デフォルトの名無しさん:2006/02/16(木) 03:53:19
>>397
おっっっとこんどは揚げ足取られて蛇足説明始めたね。
そういうのは一体なんだっけ?x
400デフォルトの名無しさん:2006/02/16(木) 03:55:28
>>399
それは苦しくなって必死に過去レスあさり始めたお前だ。
401デフォルトの名無しさん:2006/02/16(木) 03:55:37
すべて自分に跳ね返ってくるのがわからず地雷を投下し続けた>>397哀れ
402デフォルトの名無しさん:2006/02/16(木) 03:57:07
揚げ足取れてうれしそうだな。初めてだったか?
403デフォルトの名無しさん:2006/02/16(木) 03:58:02
>>400
必死て言うけど数レス前にお前が言ったことを返してあげてるだけなんだが。
数レス前だから必死になる必要がないよな?もはやじゃないんだろ?w
404デフォルトの名無しさん:2006/02/16(木) 04:00:51
論になってないと指摘されるや揚げ足取り。
もはや子供の喧嘩モードだな  ┐( ´ー`)┌
405デフォルトの名無しさん:2006/02/16(木) 04:01:07
>>394
テンプレ用意して頂いたのですか。ご苦労さまです。
406デフォルトの名無しさん:2006/02/16(木) 04:03:50
>>404
まさに子供の喧嘩モードであしらわれとるのに気づかんのかw
言ってることがころころかわっとるね。
407デフォルトの名無しさん:2006/02/16(木) 04:08:49
下手な言葉遊びをやろうとするからボロが出てるんだよ。
揚げ足取りが口癖のようだが、自分で「揚げ足取り宣言」しておいて、
あとになって相手を揚げ足取りだって批難したりね。
なにを言っても説得力がなくなる。
408デフォルトの名無しさん:2006/02/16(木) 04:09:56
ハイハイ 釣られました釣られました
409デフォルトの名無しさん:2006/02/16(木) 04:10:15
そろそろ就寝宣言来るかなw
410デフォルトの名無しさん:2006/02/16(木) 04:12:53
揚げ足取りにも疲れたからそろそろ寝ようかなあ(藁
411デフォルトの名無しさん:2006/02/16(木) 04:12:58
あれ? また蛇足説明始めてるの?w
412デフォルトの名無しさん:2006/02/16(木) 04:15:32
いつものせりふ忘れてるぞw
413デフォルトの名無しさん:2006/02/16(木) 04:19:10
おまえがしたみたいな釣り宣言とか勝利宣言のことか?w
414デフォルトの名無しさん:2006/02/16(木) 04:21:42
>>410
プッ 眠いなら早く寝ろよ ハゲ
415デフォルトの名無しさん:2006/02/16(木) 04:23:10
ほらほら、また自分の過去の発言が跳ね返って来てるよw
416デフォルトの名無しさん:2006/02/16(木) 04:24:28
はいはい、論のできないお前の大好きな揚げ足取りを十分にご披露下さいw
417デフォルトの名無しさん:2006/02/16(木) 04:26:24
大好きな言葉 (゚∀゚)キターワー
418デフォルトの名無しさん:2006/02/16(木) 04:26:59
なにそれ釣れた宣言?w
419デフォルトの名無しさん:2006/02/16(木) 04:28:44
>>415 が過去レスを検索しています。しばらくお待ちください…
420デフォルトの名無しさん:2006/02/16(木) 04:29:53
「釣り宣言」も口癖なんですねw
421デフォルトの名無しさん:2006/02/16(木) 04:35:50
またあした遊んであげるから今日は退出します。




















↓以後418が勝利宣言して、水を得た魚のように大ぼら始めます(藁
422デフォルトの名無しさん:2006/02/16(木) 04:41:17
>>420
ハァ? 認定するのが好きな人ですね。
脳内キャッシュがフラッシュされてしまったみたいなのでもう一度貼っておきますね。

415 デフォルトの名無しさん sage 2006/02/16(木) 04:23:10
ほらほら、また自分の過去の発言が跳ね返って来てるよw

>>421
> ↓以後418が勝利宣言して、水を得た魚のように大ぼら始めます(藁

専ブラ使ってるから丸見えw  そんなに自信の無さをアピールしなくてもさっさと寝りゃ良いのにw
423デフォルトの名無しさん:2006/02/16(木) 05:21:32
なんでこんなに荒れてるんだw

>>394
http://www.java2s.com/
他にもここなんかどうよ?いやむしろ入れるならこっちかw
http://www.google.co.jp/
ちょっと検索かければサンプルコードなんかいくらでも見つかるからテンプレに入れる必要ないと思う。

わからないことがあったらまずAPIドキュメントを読むとか、ネット検索かけてサンプルコードをあさるとか、
そういう手順を踏むように誘導する内容があってもいいかなと思うけど、しょーもない質問するやつは大抵
テンプレも読まないから、気休めにしかならないだろうな。

Javaは資料や情報が多い言語なんだから、よっぽどかわった事したいんでもなきゃネット検索で自己解決
出来ると思うんだけど。本なんか買わなくても本に載ってるくらいの内容なら大抵ヒットするし。
424デフォルトの名無しさん:2006/02/16(木) 05:29:58
こんにちは。
現在自作MVCモデルを作っているのですが、Jspでhtml生成などのView、
Servletでsql発行などの主動作、Beansは複数のServletで重複する処理
を共通クラスとしてまとめて主に書いています。
Servletでほとんどの処理を行っていますがこれはMVCモデルといえるのでしょうか?
425デフォルトの名無しさん:2006/02/16(木) 05:31:49
FAQっぽいんですが、Javaでファイルコピーのシステムコールを呼ぶにはどうすれば良いのでしょう・・・。
426デフォルトの名無しさん:2006/02/16(木) 05:31:58
言えません。
427デフォルトの名無しさん:2006/02/16(木) 05:33:15
>>426>>424 宛て

>>425
システムコール (って DOS 時代の呼び方だぞ) 使うなら JNI 使ってください。
428424:2006/02/16(木) 05:33:26
>>426
なぜいえないのでしょうか?
429デフォルトの名無しさん:2006/02/16(木) 05:36:11
>>427
ああ、FileってなんでrenameTo()あるのにcopyTo()無いんだろうね、という話です。
既出っぽいですが・・・。
430424:2006/02/16(木) 05:37:52
WEB-INF下でServlet以外のJavaプログラムも使ってプログラムが動いていたら
MVCモデルといえるのではないでしょうか?
431デフォルトの名無しさん:2006/02/16(木) 05:40:35
Beans を共通処理 (ユーティリティクラスライブラリ) と見てる時点で M (モデル) の
概念が入ってないのが分かるから。あと、SQL 発行を伴う大抵の処理はモデルの
世界でやること。画面遷移制御以外の目的でサーブレットが SQL を多発してるなら
それはもう C (コントローラー) の役割ではない。V はまぁ HTML 出してるだけだろう
からその通り。
432424:2006/02/16(木) 05:40:56
すいませんだれか意識合わせしたいのですがおねがいしまーす!
433デフォルトの名無しさん:2006/02/16(木) 05:41:35
>>429
それならバグパレードに理由が載ってる。検索しる。
434424:2006/02/16(木) 05:44:45
なるほど
Servletを使った開発で私のような作り方もありなのでしょうか?
435424:2006/02/16(木) 05:51:55
どなたかご返答お願いしまーす!
436デフォルトの名無しさん:2006/02/16(木) 05:55:18
>>434
Servlet+JSP 開発のさきがけ時代はそんな感じ。サーブレットが主な処理をして JSP が表示する、
共通機能や JSP に渡すデータなんかは Beans にまとめる、みたいな。そのうちどっかの雑誌が
Bean=M、JSP=V、サーブレット=C に無理やりこじつけて MVC とかでっち上げるようになった
(だが実質は以前と同じ)。でもまぁ Sun も MVC だとか言い始めて EJB などが出たり、設計・
開発側が慣れてきたおかげで 3 年もたつとそれが MVC として定着した。
ここらへんは単なる歴史的な話。

>>435
オリンピック期間とはいえこんな時間誰もいねぇよヴォケ
437424:2006/02/16(木) 06:02:26
>>436
なるほどとてもよく分かりました
初期時代は私が今やっているような書き方をしていたのですね
現在ソースを見て少し長いなと思っていますので慣れてきたら
部品化してMVCにしていきたいと思います
現在の書き方はMVモデルといった感じなのですねw
438デフォルトの名無しさん:2006/02/16(木) 06:07:22
>>433
検索してみましたが、環境に依存するからだめぽ、という事だと理解しました。
ありがとうございます。
439デフォルトの名無しさん:2006/02/16(木) 06:32:32
> 現在の書き方はMVモデルといった感じなのですねw
そういうこと。誰でも最初は画面関係の制御処理と業務そのものの処理 (業務処理) の
区別が出来なくてそうなるし、テーブルの内容表示して入力値を格納する程度のものなら
それで十分。ぶっちゃけ Struts で十分まかなえる設計なんて全部 MV (というか CV)
モデルだよ。

システムがでかくなれば C に全処理をぶち込むことも出来なくなって C と M を分離する
必要が出てくる。まぁ業務分析で出てくるルールがすさまじいので必然的に M は M で
独立設計するようになるだろう。さらに大きくなると M を階層化して分析・設計しないと
収集が付かなくなる。まぁそこらへんまできっちり設計出来るようになったら職業アーキ
テクトでやってゆけるよ。
440デフォルトの名無しさん:2006/02/16(木) 06:40:14
>>438
まぁちょっと言い訳臭いがな。汎用的で作っても簡単なものならコアに入れろよ、という
機能はいくつかあるが、ごねてもしょうがないのでそういうものとして受け止めろ。
そういうのが低い優先度で扱われるのは仕方がないし、将来はどうか分からん。
現に初期の段階で否定的だった機能が 1.4、1.5 でいきなり肯定的に追加されることも
あったし。
441デフォルトの名無しさん:2006/02/16(木) 06:51:01
ファイルコピーに関して。

java.nio.channels.FileChannel#transferToというメソッドを見つけたのですが、
ググってもあまり言及がないようです。何か理由があるのでしょうか?
442デフォルトの名無しさん:2006/02/16(木) 06:54:38
ファイルコピーくらい自分で作れ
以上!
443デフォルトの名無しさん:2006/02/16(木) 06:58:14
いや、以前別件で作って時間を計測したことがあるんですが、
2倍くらい遅くて使い物にならなかったんですよ。

標準で提供されているものを利用できるなら、それにこしたことはないなと思いまして。
444デフォルトの名無しさん:2006/02/16(木) 07:03:26
>>441
New I/O は未だに使ったことないけど計測比較できるならしてみる価値あると思うよ。
abstract 宣言されてるんで環境によっては native になってるかも分からんし。
結果よろしく。
445デフォルトの名無しさん:2006/02/16(木) 07:04:00
何と比べて遅かったんだ??
446デフォルトの名無しさん:2006/02/16(木) 07:06:33
最初にシステムコールと言ってるから OS のそれだろう。
そりゃどうやっても Java で自作よりそっちのほうが早いわな。
447デフォルトの名無しさん:2006/02/16(木) 07:09:12
>>443
標準ではないがjakarta Commons IOでも使ってみれば?
448デフォルトの名無しさん:2006/02/16(木) 07:15:23
非標準なら早くなきゃ意味ないんだろうが、
そこんとこどうなんだろうね
449デフォルトの名無しさん:2006/02/16(木) 07:18:40
あんましファイルが大きいなら自作でセコセコ作るより System.exec() で
cp コマンド起動したほうが速いし効率的。Win だと内部コマンドだから cmd 経由かな。
450デフォルトの名無しさん:2006/02/16(木) 07:24:22
>>448
Commons は native メソッドはないから所詮はループでくるくる回してるんだろ。
せいぜいファイルサイズ見てバッファの大きさ決めてる程度と思われ。
と思ってソース見たらこんな程度。

public static int copy(InputStream input,
OutputStream output) throws IOException {
  byte[] buffer = new byte[DEFAULT_BUFFER_SIZE];

  int count = 0;

  int n = 0;

  while (-1 != (n = input.read(buffer))) {

    output.write(buffer, 0, n);
    count += n;

  }
  return count;
}
451デフォルトの名無しさん:2006/02/16(木) 07:25:46
>>444
今計測してみますので少しお待ちを。
環境はWindows XP SP2です。

>>449
時間計測のためにcmd /c copyはやってみたんですけど、挙動が怪しいんですよね。
452デフォルトの名無しさん:2006/02/16(木) 07:59:26
HttpSessionについての質問です。
HttpServletRequest.getSession(boolean)と
HttpServletRequest.getSession()で取得できるSessionオブジェクトの
違いは何でしょうか?
453デフォルトの名無しさん:2006/02/16(木) 08:02:46
454デフォルトの名無しさん:2006/02/16(木) 08:06:20
>>453 すいません。解決できました。getSession()を使った場合は、基本動作はgetSession(false)と
同じだけどもセッションが存在しない場合はgetSession(true)と同じ動作をするってことですね。
455デフォルトの名無しさん:2006/02/16(木) 08:11:15
transferTo()がLinuxで挙動不審とか嫌な情報も目にしたりしましたが(transferFrom()なら大丈夫?)、
とりあえず計測結果を。普通のぶん回しは>>450を拝借しました。

・11.8MB
Copy(BUFFER_SIZE=1KB): 160 msec
Copy(BUFFER_SIZE=1MB): 741 msec
NIO Copy: 631 msec

・121MB
Copy(BUFFER_SIZE=1KB): 31956 msec
Copy(BUFFER_SIZE=1MB): 10595 msec
NIO Copy: 9344 msec

結論としては、早いといえば早いのですが、微妙なところですね・・・。
ただ、バッファサイズの微調整をしなくても安定動作するのは有利な気がします。
456デフォルトの名無しさん:2006/02/16(木) 08:20:11
バッファ=ファイルサイズ/100とかで良かったりして
457デフォルトの名無しさん:2006/02/16(木) 08:28:05
>>455
お疲れさん。前スレか前々スレあたりの copy 機能ないですかってのは自分で作れ、
Commons 使え、がスレの総評だったのだが、良い情報もらいました。俺もいい加減
New I/O 使うようにせにゃ…

C コンパイラ持ってるならシステムコール (つうか Windows API) 使ったのとは比較
できんかえ? CopyFile(LPCTSTR, LPCTSTR, BOOL) 使うだけだけど。まぁ暇があったら
やってみるか。
458デフォルトの名無しさん:2006/02/16(木) 08:35:37
んじゃあこれから寝ようと思ってたけど漏れが書いてみるか
459デフォルトの名無しさん:2006/02/16(木) 08:41:43
と思ったけど、そちらと全く同じ環境で実行しないとタイムを比較出来ないから意味ないなw
460デフォルトの名無しさん:2006/02/16(木) 08:49:15
ん、じゃちょっと俺やってみるわ。
461デフォルトの名無しさん:2006/02/16(木) 08:56:27
ちなみに、New I/O(の略だったのか・・・)版は以下の通りです。

public class NIOCopyFile {
public static void main(String args[]){
File fi = new File(args[0]);
File fo = new File(args[1]);

FileChannel srcCh = null;
FileChannel dstCh = null;

long startTime = System.currentTimeMillis();

try{
srcCh = new FileInputStream(fi).getChannel();
dstCh = new FileOutputStream(fo).getChannel();

dstCh.transferFrom(srcCh,0,srcCh.size());
} catch(IOException e) {
e.printStackTrace();
} finally {
try {
srcCh.close(); dstCh.close();
} catch(IOException e) {
e.printStackTrace();
}
}
long endTime = System.currentTimeMillis();
System.err.println((endTime-startTime)+" msec");
}
}
462デフォルトの名無しさん:2006/02/16(木) 09:01:06
サーブレットの特定のメソッドをスレッドセーフにするにはどうしたらいいでしょうか?
以下の様にシンクロナイズドを付けとけばOKでしょうか?


public class ServletMona extends HttpServlet {
 toPost(....){gikoneko()}


 syncronized gikoneko(){...}
}
463デフォルトの名無しさん:2006/02/16(木) 09:05:49
まぁ OK だけどちゃんと意味を理解して使わないとパフォーマンスネックになるかもよ。
そこのブロック待機スレッド数 (同時受付リクエスト数に相当?) がほぼ 0 なら良いけど。
464デフォルトの名無しさん:2006/02/16(木) 10:03:23
>>455
環境が違うけどやってみた
fread, fwrite でバッファサイズを変えた場合と、CloneFile API を利用した場合

・11.8MB
Copy(BUFFER_SIZE=1KB): 520ms
Copy(BUFFER_SIZE=1MB): 921ms
CopyFile API: 430ms

・121MB
Copy(BUFFER_SIZE=1KB): 14540ms
Copy(BUFFER_SIZE=1MB): 13749ms
CopyFile API: 12287ms

ソースは
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/1645.txt
なんか間違ってるかもしれんが勘弁して
465デフォルトの名無しさん:2006/02/16(木) 10:18:03
>>333は間違ってないな
漠然と勉強が分かりません、どうしたらいいですか?
というのはお話にならん

やってみて、ここが分からなかった
ではどうしたらいいでしょうか?ならみんな親切に回答するとおもわれ

言語以外の勉強もまず形から入る人なのかな
「数学を勉強するにはどうしたらいいでしょうか?」
なんて質問されてるのとまったく同じだし
466デフォルトの名無しさん:2006/02/16(木) 10:24:28
>>464
bccでコンパイルしてやってみました。最適化オプションは特に無し。

・11.8MB
Copy(BUFFER_SIZE=1KB): 120ms
Copy(BUFFER_SIZE=1MB): 830ms
CopyFile API: 49ms

・121MB
Copy(BUFFER_SIZE=1KB): 53065ms
Copy(BUFFER_SIZE=1MB): 12236ms
CopyFile API: 10155ms

あと、121MBの方はcopyコマンドをストップウオッチで計ってみましたが
(「cmd /c copy」を他のプロセスから呼ぶとエラーが出る)、10〜11秒程度のようです。

OS提供とほぼ同等の性能と考えて良さそうですね。
467デフォルトの名無しさん:2006/02/16(木) 11:08:17
遅くなったが1B〜512MBまでのグラフ出した。両対数グラフになってるので見方に注意。
ソースとデータもあるがこのうpろーだがZIP受け付けないので希望があれば晒す。
俺が考察始めると長くなるのでそれぞれ見て判断してくれw
http://www.jt200x.com/uploder/src/up7049.png
468デフォルトの名無しさん:2006/02/16(木) 11:19:54
力作ですね・・・お疲れ様です。
469デフォルトの名無しさん:2006/02/16(木) 11:28:04
試行回数はどれぐらいでしょうか。。。
470デフォルトの名無しさん:2006/02/16(木) 11:36:42
ちなみに WinXP SP2、Visual C++.NET 2003、Java HotSpot(TM) Client VM
(build 1.5.0_05-b05, mixed mode, sharing)、ThinkPad X31 内臓ドライブ、
暗号化ディレクトリ使ってるので相対的な評価でおながい。

テストした範囲では 1kB のバッファでぶん回すくらいなら New I/O 使ったほうが
速い。1MB でぶん回したのと同等程度。Commons の copy はバッファサイズ
4kB なので、大抵の場合 New I/O のほうが速いんだろうな。Win32 の CopyFile() には
及ばない場合もあるけど、これならおおむね「使っときゃ間違いねんじゃね?」 だろう。

関係ないがループでやる場合はバッファサイズがファイルサイズを超えると
指数関数的に時間食うといった動きも見てとれる。

>>469
試行回数は各1回。標準誤差出すのマンドクサ。その分細かめにファイルサイズ切ったんで
前後との目視平均(wで勘弁して (対数でプロットするために 0ms は 1ms に変更してる)。
471デフォルトの名無しさん:2006/02/16(木) 12:49:04
SQL 発行するのは、コントロールの仕事じゃないのか?
これをモデルに含めたら、
例えば保存先の形態を変更したらモデルを弄らないとあかん。
これはあたかもモデルがビューに依存しているかのようになる。
472デフォルトの名無しさん:2006/02/16(木) 13:11:02
>>471
もともとのMVCモデル(Smalltalk発祥の)はそういうものだったような。
保存先(モデルのロジック)が変わってもコントローラもビューも変更しなくていいですよっていう。

ただWebアプリだと保存先が変わるってのはざら(DBを変更したとか)なので、
その度にモデルに手を入れるのは面倒だよね、って話になって、
→じゃあモデルとは別にData Access Object(DAO)って作ればいいじゃん、
 →DAOの切り替えどうするよ?その度にモデル直さなきゃいけないよ?
  →DAOのファクトリ作ろうぜ。
ってことになって、J2EEだのHibernateだのが生まれてるのがJava EE界隈の歴史。

永続化のロジックは、旧来のMVCモデルのCにもMにも入れるのは不都合なので
MでもCでもないものに分かれたっていうのが私の認識です。
473デフォルトの名無しさん:2006/02/16(木) 13:13:21
>>471
データストアはビューじゃない。モデルをそれらに依存させたくなければ、モデルの
後ろ側にデータアクセス層を作れ。まぁレガシーシステムからオープン系へ移行する
前提とかならともかく、普通は DB の変更なんてあらゆる方面に飛び火するような
馬鹿なことはしないけどな。コスト抑えるために最初にわざわざ製品選定するんだし。
474デフォルトの名無しさん:2006/02/16(木) 13:24:58
>>472
すげー。そういうことだったのかよくわかった。

でも、だからJavaは重いっていわれるんだね。
MVCとかやめたほうがいいのに。
475デフォルトの名無しさん:2006/02/16(木) 13:27:22
ここで原始回帰ですよ
全てを無にして同じものを1から作り直す
これこそスクラッチ&ビルドの醍醐味!!
476デフォルトの名無しさん:2006/02/16(木) 13:30:48
ファットクライアントがいつの間にかリッチクライアントに名称変わってたのはワロタ
恥も糞もねぇな肉桂
477デフォルトの名無しさん:2006/02/16(木) 13:40:09
ファットとリッチは違うものだよ、お客さん。
リッチで十分ですよ、リッチで。わかってくださいよ。
478デフォルトの名無しさん:2006/02/16(木) 13:42:51
java.awt.Imageのオブジェクトを、BufferedImageに変換したいと考えています。
ぐぐってみると、Image#getGraphics()をして新しく描画しなおすという解決法
しか見つからなかったのですが、サーバサイドで実行したいのでGraphicsを使い
たくありません。
他の方法で何か良い案はないでしょうか。
どうぞよろしくお願いします。

環境:J2SE 1.4
479デフォルトの名無しさん:2006/02/16(木) 13:42:55
クリスティーナ・リッチは太った。
以上
480デフォルトの名無しさん:2006/02/16(木) 13:47:14
>>478
途方もない苦労をしたくなければ普通に AWT の機能を使っておけ。コンソールのみの
サーバでも Xvfb 起動しとけばグラフィック機能は使える。
Graphics 使う程度ならイベントディスパッチループが始まったりすることもないから。
481478:2006/02/16(木) 13:54:00
>>480
お客さんの環境が不定なので、Xvfbを必須ともいえず……苦労してもいいのでなんとかGraphicsなしでどうにかなりませんかねぇ
482デフォルトの名無しさん:2006/02/16(木) 13:58:44
>>478
つPJA
つ-Djava.headless=true
483デフォルトの名無しさん:2006/02/16(木) 14:57:13
「Javaプラットフォームパフォーマンス」には、バッファをstaticにすることでコピーを高速化している例があった。
nio版に比べると多少劣るようだが、まあ悪くはない気がする。
static final int BUFF_SIZE = 1024 * 1024;
static final byte[] buffer = new byte[BUFF_SIZE];
public static void main(String[] args) {
File fi = new File(args[0]); File fo = new File(args[1]);
InputStream in = null; OutputStream out = null;
long startTime = System.currentTimeMillis();
try {
in = new FileInputStream(fi);
out = new FileOutputStream(fo);
while (true) {
synchronized (buffer) {
int i = in.read(buffer);
if (i == -1)
break;
out.write(buffer, 0, i);
}
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
in.close();out.close();
} catch(IOException e) {
e.printStackTrace();
}
}
long endTime = System.currentTimeMillis();
System.err.println((endTime-startTime)+" msec");
}
484デフォルトの名無しさん:2006/02/16(木) 15:05:22
static で 1MB 常駐はちょっとでかすぎじゃないか?
485483:2006/02/16(木) 15:05:55
103MB
CopyFile: 10835ms
>>483: 11977 msec
nio: 11076 msec

262MB
CopyFile: 36632ms
>>483: 41771 msec
nio: 36373 msec

262MB だとさすがに差が出るか。
486デフォルトの名無しさん:2006/02/16(木) 15:06:55
>>484
100KBでも意外と変わらなかった気もする。
487483=486:2006/02/16(木) 15:12:05
なお、本に載っているオリジナルでは100KB。
488478:2006/02/16(木) 15:26:33
>>482
感動しました。
ありがとう。
489483:2006/02/16(木) 15:36:22
FFCも試してみた。バッファ40MBで262MBのコピーに約32秒。
490デフォルトの名無しさん:2006/02/16(木) 18:25:37
Linux環境で、バックグラウンドで
Javaアプリケーションを実行させようと思っています。
AntのJavaタスクで実行させようとしたのですが、
ant ターゲット名 &
で、キー入力がもどってきたタイミングでプロセスが
ストップしてしまいます。
この方法ではバックグラウンドで実行することができないんでしょうか?
491デフォルトの名無しさん:2006/02/16(木) 18:25:48
質問です。
文字列中の特定の文字を取り除きたいのですが
string.replace('-','');
などと書くと空の文字だぞとエラーになります。
文字列より特定の文字の削除したい場合の文法を教えて下さい。
492デフォルトの名無しさん:2006/02/16(木) 18:37:09
string.replaceAll("-","");
493デフォルトの名無しさん:2006/02/16(木) 18:52:06
> ('-','')
一瞬AAに見えた件について
494デフォルトの名無しさん:2006/02/16(木) 19:17:23
>>465
>>333は間違ってないな

もういちど読み返してみるといいよ。
>>306質問(相談)は結局参考になるサイト求むという内容だと言える。
君の肯定している>>333はそれに対しての答えになってない。

つまり、
「経験者が薦めるAPIマニュより便利なサイトを教えてくれ」
という「APIマニュアルより」と限定してある今回の質問に対して
「apiマニュアル見ながらどう動くかやっていけないとプログラマ失格」は答えになってない(apiマニュアルが最高という答えならありえるわけだが)
こういう質問には、特定の答えがあるわけではないが、経験者それぞれにお勧めの方法は有るものだ。
現に>>373のような有効な回答があるのが見えてないのだろうか。
#この点、(検索時にsunのAPIサイトがトップに占められることの多い)「googleでOK」という答えはあまり有効とは思えない。

その意味で
>漠然と勉強が分かりません、どうしたらいいですか?
>「数学を勉強するにはどうしたらいいでしょうか?」
こういう漠然とした内容の例えが出ること自体そもそも読み違えている。
これは君の日本語の読解能力の問題だろう。
495デフォルトの名無しさん:2006/02/16(木) 19:28:49
>423
上のサイトすごくいい。お気に入りに入れた。

Google使わないのは、結果にゴミが入るのが鬱陶しいからかと。
496デフォルトの名無しさん:2006/02/16(木) 19:43:24
なんか朝日新聞の社説みたいのが居るようだが。
497デフォルトの名無しさん:2006/02/16(木) 20:59:52
>>489
アプリ一つのために40MB占有というのは、少々シチュエーションが限られますね。
まぁ、一つの方法としてはありでしょうか。
498デフォルトの名無しさん:2006/02/16(木) 21:43:08
>>472

>保存先(モデルのロジック)が変わってもコントローラもビューも変更しなくていいですよっていう。
MVCって、M が V や C に依存しないことが肝じゃなかったっけ。

V や C は M を表現するための単なる一断面であり、他にも切り口がある
という考えじゃなかったっけ。

データの保存先は、読み込んだりできることを考えると確かにビューじゃないな。
でも、SQL発行の操作はモデルから分離した方がいいような希ガス
ロジックが DB とかにも及ぶと、
概念的にカプセル化可能なモジュールの単位が大きくなりそう。
当方、頭悪いので3つ以上同時にモノを考えられません
499デフォルトの名無しさん:2006/02/16(木) 21:52:58
>>498
別に永続化ロジックがコントローラにあったと考えてもいいよ。
で、そうすると、ビューとモデルの仲立ちをするロジックは同じなのに、
永続化ロジックが違うだけで別のコントローラを実装し直す必要がでてくる。そこで
→永続化ロジックだけ別クラスにしようぜ→Data Access Object
 →DAOの取得はどうするよ?永続化ロジックごとに違うぜ?→Factory
となって、J2EEや、アンチJ2EEフレームワークになるわけだ。
500デフォルトの名無しさん:2006/02/16(木) 21:57:10
永続化って何だよ。もっと普通の言葉つかえよ
このJava房どもが
501デフォルトの名無しさん:2006/02/16(木) 22:05:07
>>500

      ∩___∩  アピョピョ         
   (ヽ  | ノ      ヽ  /)    
  (((i ) / (゜)  (゜) | ( i)))  
 /∠彡    ( _●_)  |_ゝ \  
( ___、    |∪|    ,__ )  
    |     ヽノ   /´      
    |        /        
502デフォルトの名無しさん:2006/02/16(木) 22:05:48
基本的なことかもしれませんが、お教え願います。

mainのあるクラスはJFrameをextendsして更にActionListenerをimplementsしています。
その中にJPanel jp = new JPanel()、更にJScrollPane sp = new JScrollPane(jp)としています。
そのjpに更にJPanel j1をaddして、そのj1にpaint(Graphics g)を使って描画をしました。
しかしながら、手動でスクロールさせるとViewportから外れた部分の描画が消え、おかしなことになってしまいます。

スクロールさせてもj1の描画に影響が出ない方法は何か無いでしょうか?
503デフォルトの名無しさん:2006/02/16(木) 22:33:15
JDKがインストールできない・・・・orz
504デフォルトの名無しさん:2006/02/16(木) 22:45:51
具体的にどんなメッセージどんな状態に
なってインストールできないか書かなきゃだれも助けてくれないだろうに
505デフォルトの名無しさん:2006/02/16(木) 22:47:11
>492
ありがとう。
だけど、1.3だったので利用できずorz

SQL作成で使うところなので
SQL側でreplaceする方向で検討中。
506デフォルトの名無しさん:2006/02/16(木) 22:51:57
>>504
Sorry!In order to download this product, you must select"Accept License Agreement"
on this page or on the Review License Agreement page.

ってなる
507デフォルトの名無しさん:2006/02/16(木) 23:01:05
その通りだろ。和訳しろって言ってるのか?
508デフォルトの名無しさん:2006/02/16(木) 23:04:32
>>506
ワロタ

お前の目は節穴かw
509デフォルトの名無しさん:2006/02/16(木) 23:13:25
Decline License Agreement
衰退許諾契約って何?
510デフォルトの名無しさん:2006/02/16(木) 23:18:05
>>506
インストールじゃなくダウンロードできないんでしょ?
>Accept License Agreement
をクリックすればいい

>>507-506
なにが面白いんだろう。。。よくあることじゃん。
たしかに簡単な英語だけど、それが解らない人はこの板ではいくらでもいるよ。
なんでそんな馬鹿にしたような言い方すんだろ。
なんか程度の低い板に来て見下せる奴探してるんだろうか?
また、あの高卒がどうの言ってた痛い奴か?w
511デフォルトの名無しさん:2006/02/16(木) 23:20:28
>>510
レスアンカーぐらいキチンとつけれ
512デフォルトの名無しさん:2006/02/16(木) 23:22:13
>>510
Javaの初心者のスレだから、webダウンロード、英語わからんどうにかしてな
というスレじゃない。変に取る方が痛いぞ。
513デフォルトの名無しさん:2006/02/16(木) 23:22:44
確かにアンカーは違うな
でも、508みたいな馬鹿にわざわざ言ってやる必要はないから訂正はしない。
514デフォルトの名無しさん:2006/02/16(木) 23:23:19
>>510
脳内コンパイラが素晴らしい人でつね
515デフォルトの名無しさん:2006/02/16(木) 23:23:49
馬鹿の壁
516デフォルトの名無しさん:2006/02/16(木) 23:24:05
>>510
親切にトンクス

こいうところは、叩かれるのわかってるし駄目元で聞いてるからおk
517デフォルトの名無しさん:2006/02/16(木) 23:24:15
>>512
どうでもいいが、見下す相手が高卒な方が痛いのは確かだね
518デフォルトの名無しさん:2006/02/16(木) 23:35:49
>>510
安価するのはたしかに簡単なことだけど、それが解らない人はこの板ではいくらでもいるよ。
ってことか?
519デフォルトの名無しさん:2006/02/16(木) 23:37:49
またまた解りにくり誤字して
520デフォルトの名無しさん:2006/02/16(木) 23:43:38
そそ
正面から反対できないからと言って安価の付け方を貶しても反論にはならない。
521デフォルトの名無しさん:2006/02/17(金) 02:08:10
なんでマ、ム板はIDついてないの?
522デフォルトの名無しさん:2006/02/17(金) 02:16:42
困るのか
523デフォルトの名無しさん:2006/02/17(金) 03:05:43
Cpadでは実行できるのに DOS窓で実行すると
Usage: java [-options] class [args...]
(to execute a class)
or java -jar [-options] jarfile [args...]
(to execute a jar file)
where options include:
-client to select the "client" VM
-server to select the "server" VM
-hotspot is a synonym for the "client" VM [deprecated]
The default VM is client.
-cp -classpath <directories and zip/jar files separated by ;>
set search path for application classes and resources
-D<name>=<value>
set a system property
-verbose[:class|gc|jni]
enable verbose output
-version print product version and exit
-showversion print product version and continue
-? -help print this help message
-X print help on non-standard options
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
enable assertions
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
disable assertions
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
となって困ってます。
524デフォルトの名無しさん:2006/02/17(金) 03:15:08
dos窓でどういうコマンド打ったんだ?
つか、Cpadって知らんスマン。
525デフォルトの名無しさん:2006/02/17(金) 03:46:55
public class HelloWorld
{
public static void main (String[] args)
{
System.out.println("うんこ");
}
}

を作って

java HelloWorld
で実行した

ファイル名もあってるし、cd でちゃんと移動してるし
526デフォルトの名無しさん:2006/02/17(金) 03:48:46
つか、javacでコンパイルしたのか?
527525:2006/02/17(金) 03:49:22
すまん。事故解決した

Cpadって テキストエディタ お勧め
CPad for Java2 SDK
528デフォルトの名無しさん:2006/02/17(金) 03:50:20
>>526
うんしてある。

jdkインストールしなおしたらできた
529デフォルトの名無しさん:2006/02/17(金) 03:52:17
>>528
donna error?
530デフォルトの名無しさん:2006/02/17(金) 03:56:57
>>529
正直よくわからんが
Java言語で開発されたソフトを実行するのに必要なランタイムセットってのを入れ忘れたと思う。

でも、CPadでは動くからよくわからん。
CPadが特殊なんかな?
531デフォルトの名無しさん:2006/02/17(金) 06:42:44
>>527

CPad for java2 って便利なんですか。。DLしてみます。。
今 Eclipse 使っているけど、小さいプログラムだけを作っているので、そんなに高機能はいらないので。。
532デフォルトの名無しさん:2006/02/17(金) 10:36:09
あるイベントリスナーを作ろうとおもうのですが、
イベントリスナーのメソッドの引数は、必ずEventObjectを継承したクラスでなければ
いけないのでしょうか。
マウスのリスナーなどを見ると、メソッドの引数はすべてEventObjectになっているようなのですが、
そのような規則があるんでしょうか。
533デフォルトの名無しさん:2006/02/17(金) 10:56:30
そんなことはない

ソースが必要としないイベントならなくてもいい

EventListenerにしてもただのタグインターフェースだが
こっちは影響ないしつけといたほうがいいかもね
534デフォルトの名無しさん:2006/02/17(金) 11:53:20
ちょっと聞きたいんですが、J Tabbed paneでタブを作成したいのですが
通常は自動的に水平方向にタブが作成されてしまうのですが、垂直方向にタブを
作成する場合はどうしたらいいのでしょうか?

535デフォルトの名無しさん:2006/02/17(金) 11:58:38
APIマニュアルよんだ?
536デフォルトの名無しさん:2006/02/17(金) 12:44:00
APIマニュアルとはなんでしょうか?
537デフォルトの名無しさん:2006/02/17(金) 12:48:19
>>536
JDKのダウンロードしたならドキュメントも
ダウンロードしろよ。
538デフォルトの名無しさん:2006/02/17(金) 12:53:00
539デフォルトの名無しさん:2006/02/17(金) 13:18:49
>>537
>>538
やっとわかりました。
ありがとうございます。
540デフォルトの名無しさん:2006/02/17(金) 14:55:24
>>513
fusianasanでもしておけw
541デフォルトの名無しさん:2006/02/17(金) 14:57:06
>>527
で、CpadってEclipseとどっちが使いいい?
542デフォルトの名無しさん:2006/02/17(金) 14:59:46
Cpadって随分古いな。
2003年で開発がとまってるんかい。
やっぱ開発が迅速でJava5対応も迅速なEclipseのほうがよさげな予感がするな。
543デフォルトの名無しさん:2006/02/17(金) 15:27:34
でもEclipseの動作が迅速とは言いがたく…
544デフォルトの名無しさん:2006/02/17(金) 16:17:56
>541
DevBoosterというのもあるが。
これも開発止まってるけどね。便利だよ。
ペンギンかわいいし。
545デフォルトの名無しさん:2006/02/17(金) 18:41:01
これから Java をやろうとしている者です.
Eclipse と NetBeans の違いについて伺おうと思ったんですが..
それぞれの特徴,対象ユーザー,設計思想などの概略を説明して頂けませんか?
将来,個人での大規模な(?)開発も視野に入れているのですがどっちが使いやすいのでしょうか?
Cpad は..ぅーん,どうなんでしょうか?
546デフォルトの名無しさん:2006/02/17(金) 19:08:34
それぞれのスレが有るからそれ見て判断すれば?
547デフォルトの名無しさん:2006/02/17(金) 19:19:16
>>546

一応,覗いてみることはしたんですが両者の機能比較しているところは皆無で悩んでいるのです.
ググっても見たんですがかゆい所に手が届かなくてもどかしいんです..
両者の解説サイトにも他者との踏み込んだ比較はなされていないみたいなので..

おおまかな印象だけでもいいのでお教えくださいませんか?
548デフォルトの名無しさん:2006/02/17(金) 19:44:57
>>542
5.0の対応すんごいおそかったでそ
549デフォルトの名無しさん:2006/02/17(金) 19:54:37
NetBeans
・最低限欲しいの機能はすべて込み。JBuilderエンタープライズみたいなもん。
・5.0対応が早かったりするのはバックがSunでJDKのコンパイラを使うため。いわゆる純正。
・Swingによる動作のためにクロスプラットフォーム対応が早い。LAFかえれるのが面白いかも。

Eclipse
・素の状態だと機能が最も少ないIDE。プラグインによる拡張がメイン。
・JNI多用により昔は高速性を売りにしていたが、Javaの高速化でJNIの速度がネックになってきた。
・プラグインに頼るため安定性や操作性はピンキリ。商用プラグインが豊富。IBM関係はさすがに多い。

初心者にEclipseは勧めにくいと思われ。分かる人は分かる、分からない人は分からないといった感じ。
適当にソース作ってコンパイル、実行がAntの知識とかjarの知識とかなくても出来る点で
NetBeansを俺は推す。

すべてが完璧なIDEはなくてそれぞれ得意な部分と不得手な部分があるので慣れてきたら
いろいろと試すといいと思われ。

昔はJava自体の動作が遅かったのでEclipseの快適動作が売りだった。2.0時代が全盛と思ってるけど。
3.0でプラグインは互換性の問題が割と大きく。

NetBeansはLAFを気分で変えるといいかもしれない。
http://www.netbeans.org/competition/look-and-feel.html
550デフォルトの名無しさん:2006/02/17(金) 20:04:31
>>549

詳しい解説ありがとうございます.
Java の世界は C,C++ とはまた違った雰囲気がありますよね..
しばらく慣れるまでは NetBeans でいきます.
丁寧に説明してくださり,どうもありがとうございました. :- )
551デフォルトの名無しさん:2006/02/17(金) 22:39:47
質問です。
AクラスからJFrameを作ってJFrameに配置した
ボタンを押したらAクラスのメソッドを使いたいのですが
JFrameを作るときにAクラスを教えてやらないと駄目なんでしょうか?
552デフォルトの名無しさん:2006/02/17(金) 22:45:05
public class A{

    …
    JButton button = new JButton("押せ");
    button.addActionListener(new ActionListener(){
      public void actionPerformed(ActionEvent e){
        execute();
      }
    });
    JFrame f = new JFrame("うんこ");
    f.add(button);
    …

  private void execute(){
    // ボタンが押されたときの処理
  }
}
553551:2006/02/17(金) 23:02:39
情報を小出しにしてすいません。JFrameの方は派生クラスにして
その中でボタンを配置しています。

ClassA{
ClassB B = new ClassB();
ClassB.setVisible(true);

private 呼びたいメソッド()
{
  Bクラスからここのメソッドを呼びたい。
}
}

ClassB extends JFrame implements ActionLis...{
button.addActionListener();
this.add(button)

public void actionPerformed()
{
ボタン押したよ。
}
}
今こんな状態なんですが根本的に作りが悪いんでしょうか。
554デフォルトの名無しさん:2006/02/17(金) 23:12:11
じゃあ教えてやらないとだめ。
555デフォルトの名無しさん:2006/02/17(金) 23:12:20
>>545
Eclipseは他の人が言うだろうから、Netbeansのことを。

・最新Netbeans 5のGUIエディタが神。
・素の状態でいきなりウェブアプリ開発可能。JSPエディタやXMLエディタも標準装備。プラグインをフル装備
したEclipseに近い。
・リファクタリング機能はまだEclipseのほうが上。
・CVS機能がかなり良い感じ。
556デフォルトの名無しさん:2006/02/17(金) 23:18:02
>>553
そりゃ、ClassBのなかにClassAのインスタンス( A a = new A()とかで作られるもん)が
ないと、ClassBのなかで「a.呼びたいメソッド()」って出来ないでしょ。

オブジェクト指向なんだから、メソッド呼び出し先がないのに摩訶不思議にもメソッドを
呼べたりはしないよ。AのインスタンスがないとAのメソッドは呼べない。
557デフォルトの名無しさん:2006/02/17(金) 23:22:22
>>554,556
ありがとう。教えることにします。
558デフォルトの名無しさん:2006/02/17(金) 23:22:33
1.4.2のSwingのアクセラレーションの恩恵が受けられるノートってどのあたりからになりますか?
VRAM8M時代のものでも恩恵受けられる?
最低スペックの参考にさせて。
559デフォルトの名無しさん:2006/02/18(土) 00:15:12
>>558
ノートで古い専用のビデオチップより新しいUMAのほうが恩恵ちゃんと得られるよ
915からはオンボードが大幅に早くなってるけど
基本的に855GM以降が大丈夫だと思っていい

まずはCPUとメモリの恩恵が大きいのは他のWindowsアプリと同じ
ちなみにNetBurstアーキテクチャはJavaがすごく遅いのが特徴です
560デフォルトの名無しさん:2006/02/18(土) 00:16:08
>>557
イベントってしってる?
561デフォルトの名無しさん:2006/02/18(土) 00:49:39
>>559
ありがとう、参考になりました
562デフォルトの名無しさん:2006/02/18(土) 00:52:09
NetBurstは基本的にすべて遅いだろw
563デフォルトの名無しさん:2006/02/18(土) 01:02:09
文字列の比較って
equals()とcompareTo()どっちでやるのが正解なんでしょうか
564デフォルトの名無しさん:2006/02/18(土) 01:06:01
等価ならequals、大小ならcompareTo
C出身ならcompareToのが好みかも知れんが耐えろ
565デフォルトの名無しさん:2006/02/18(土) 01:46:16
あるクラス名を元に、そのクラスのフルパッケージ名を
取得したいんですができますかね。
クラスローダさんに探させるメソッドがありそうだなと思っとるんですが
566デフォルトの名無しさん:2006/02/18(土) 02:40:11
いくらでも「実行時に」クラスを追加できるから
クラス名から完全修飾クラス名を取得することなんて
「原理的に」不可能。

起動時のクラスパス上にあるクラスだけでいいなら
自前でクラスパス上の class ファイルを探してやれ。
567デフォルトの名無しさん:2006/02/18(土) 08:55:05
>>560
ActionListenerのことですか?

あと今、
メインクラス

↓ クラスAの作成、ファイル読み取りクラス(読み取ったデータも保持するクラス)作成

ClassA extends JFrame

↓ ClassAに貼り付けたボタンを押す→ファイル読み取りクラスでファイル読み取りし、ClassBを作成

ClassB extends JFrame //ファイル内容表示、編集クラス

という処理でメインクラスからClassBまで、ファイル読み取りクラスの参照を
ずっと渡して行っているんですが、どういう方法が好まれるんでしょうか。
568デフォルトの名無しさん:2006/02/18(土) 10:11:54
今作っているJavaアプリでデータをファイルに保存して、次の起動時にそれを読み込み作業を復元しようと考えています。
そこで質問があります。
今の状態だとファイル名だけ指定して保存しています。例:new FileWriter("data/demo.html");
このアプリをjar圧縮してから、.jarのアイコンをダブルクリックしてWindowsXPで実行してみたところ、望みどおり.jarと同じディレクトリにデータファイルを保存できました。
しかし、VineLinuxで実行してみたところデータファイルは/home/ユーザー名に保存されてしまいます。
VineLinuxでも.jarが置いてあるディレクトリにデータファイルを保存する方法はないでしょうか?
569デフォルトの名無しさん:2006/02/18(土) 10:22:29
>>565
getClass().getPackage().getName()
>>566
パッケージ内の全クラスの取得と勘違いしてない?
570デフォルトの名無しさん:2006/02/18(土) 11:12:14
>>568
Windowsで.jarのあるディレクトリに保存されたのはたまたまそうなっただけ
と考えておいた方が良い気がする。Windowsでもショートカットを作って
起動したら、起動ディレクトリはいくらでも変えられるわけだし。
また、.jarのあるディレクトリに必ず書き込みが出来るとも限らない。
571デフォルトの名無しさん:2006/02/18(土) 11:23:45
>>567
イベントってのがどういう風に実装されてるかというお話
オブザーバーパターンとかさっと見てみるのがいいよ
572デフォルトの名無しさん:2006/02/18(土) 12:29:32
>569
多分、おまいさんは勘違いしている。
"クラス名から"といってることから入力はString。
"フルパッケージ名を取得したい"ということから入力はFQCNではない。

さて、入力として"Date"が与えられた時に返すべきパッケージ名は何かな?
573デフォルトの名無しさん:2006/02/18(土) 12:48:31
ウィンドウやボタンなどの形を四角から、丸とか自由な形に変更するには
どうやるんですか?
574デフォルトの名無しさん:2006/02/18(土) 13:00:31
>>573
自分でUIを作るか、
paintComponent(Graphics g)をオーバーライド(AWTならpaintをオーバーライド)

よく知らんが、SynthLookAndFeelというのもあるらしい。
575デフォルトの名無しさん:2006/02/18(土) 13:38:53
c:/java/A/に置いてある、パッケージAのTest01.classを
サーブレット/WEB-INF/classes/B/Test02.classから利用したいのですが
どのような方法がスマートでしょうか?
どなたかよろしくお願いします。
現在はTest02.javaの中にTest01.classをコピペして利用していますが
無駄に長い気がします。
576デフォルトの名無しさん:2006/02/18(土) 14:54:21
NetBeansは、モノとしては優れているのだが、
いかんせんシェアが低い・・・
情報量やノウハウが少ないのがEclipseと比較する上での欠点といえば欠点。
個人プログラマ・趣味プログラマならいいが、
職業プログラマならEclipseを使えた方が使う機会は多いだろう。
577デフォルトの名無しさん:2006/02/18(土) 15:01:54
でもここ2年ほど仕事でNetBeans使うこと増えてる
リッチクライアント案件がふえてるからだな
WEBアプリはどんどん減ってる
578デフォルトの名無しさん:2006/02/18(土) 15:08:10
ノウハウひつようねーし
インストール自体は楽、使い方もすぐに分かる

あんまきくことはねーな
Eclipse本いまだにプラグインのインストールで終わってる本大量にでてるけど
その先の説明しなくていいなかなぁという気はする

どっちにしろ今じゃ本よりネットで探したほうが早いけどね
579デフォルトの名無しさん:2006/02/18(土) 15:09:24
>>577
いい傾向だと思うよ
俺ずっとWebアプリに懐疑的だったしね
1ページ全部をJavaAppletが埋め尽くす拡張子を用意して欲しいよw
580デフォルトの名無しさん:2006/02/18(土) 15:16:14
アプレットに関する基本的な質問です。

アプレットとアプレット同士が通信してチャットを行うようなアプレットを
作成しています。java.net.Socketを用いて、IPアドレスを指定して通信を
実現しようと考えています。

しかし、調査してみると、アプレットはcodebase属性が示すホスト以外とは
通信できない、という制限があるということが分りました。

この制限は未だに存在しているのでしょうか?


なお、JDKに付属のアプレットビューア上で実行してみると、
アプレット間の通信は正常に行われました。
しかし、ブラウザ (firefox, IE) 上でアプレットを起動すると、アプレット間の
通信が上手くいきませんでした。

よろしくお願いします。
581デフォルトの名無しさん:2006/02/18(土) 15:25:53
>>580
アプレットをダウンロードしたサーバーしか信用しない
大いに結構では?
勝手に他のサーバーに情報ばらまいたりされるよりはいいっしょ

署名すればサンドボックスははずせる
582デフォルトの名無しさん:2006/02/18(土) 15:29:19
>>580
出来ないよ
サンドボックスというセキュリティ対策のひとつだね
あのFlashも同様の対策のため
同一ドメイン及びサブドメインでしか通信は出来ない

P2Pで鯖のコストを下げたいならアプリにしよう
583デフォルトの名無しさん:2006/02/18(土) 15:33:47
>>581
ご返答ありがとうございます。

確かに、セキュリティ上必要な仕様ですね。

アプレットビューア上では、通信は実現できたため、これはつまり
「ブラウザ上で実行されるアプレットは、アプレット間通信できない」
という仕様ということでしょうか?
584デフォルトの名無しさん:2006/02/18(土) 15:40:36
アプレット間通信っていうと通常ソケット通信をささないと思うぞ

通常鯖経由が必須とおぼえときなされ
ブラウザ開いて勝手にポート開いて穴あけてたらしゃれにならん
585デフォルトの名無しさん:2006/02/18(土) 15:44:56
>>583
署名付きアプレットにすれば、ユーザへの確認があった上でで制限は外せる。

アプレットビューアは、アプレットの動作確認ツールみたいなものだから、
あまり気にしなくてもいいかと。
586デフォルトの名無しさん:2006/02/18(土) 16:03:51
V2Cって2chブラウザがあるらしく
デモがわりにJavaWebStartを使ってみた
滑らかなもんだなSwingもWebStartも
重くても俺はLive2chを使うけど
587デフォルトの名無しさん:2006/02/18(土) 20:36:26
現在Linux上で稼動するJavaアプリケーション(常駐タイプ)
を作成しています。
JavaアプリからDBへ接続する必要があるのですが、
「プログラム起動時に1つコネクションを作成し、
それをずっとクローズせずに使いまわせば?」といわれました。

*DBに対する負荷はできるだけ少なくしたいそうです
いまのところ、DataSourceを自分でバインドして使用しています。

いままでWeb系のアプリばかり作ってたんで、コネクションを閉めないで
使いまわす発想が信じられないのですが、実際にDBへの負荷を
気にする場合はいい方法なのでしょうか?

条件
・DBは他のシステムからも使用される
・DBへ対する負荷(接続時にかかる負荷)は少なくしたい

この条件で、
・DataSourceを使用した場合、負荷的にはコネクション1つを
使いまわすのと同じ程度か?
・このアプリケーションで1つのコネクションを使いまわした場合と
DataSourceを使った場合、それぞれメリット・デメリットは?

よろしくお願いします。

588デフォルトの名無しさん:2006/02/18(土) 20:40:23
普通のWeb系アプリでもTomcatとかがプーリングしてて
コネクション自体は裏で張りっぱなしだと思うんだが。
589デフォルトの名無しさん:2006/02/18(土) 20:41:16
>>587
というか本来クライアントというのは一度つないだらアプリを終了するまでつなぎっぱなしが基本
WEBアプリが特殊なのだよ
だからコネクションプーリングが存在する

もし毎回切断したいのならプール数1でコネクションプールすればいい
590デフォルトの名無しさん:2006/02/18(土) 21:00:22
文字列の置換について質問させてください

例えば、
String str = "あい(id:1)うえおか(id:7)きくけこさ(id:26)しすせそ";
のような文字列があり、(id:?)をそれぞれ対応する文字列で置換したいのですが、
replaceを繰り返す以外の方法というのはありませんでしょうか

文字列strに含まれる(id:?)の?には、1から100までの数値が入り
また、文字列strの中身は完全に未知です。

replaceを繰り返す方法の場合、
上記例の場合のみであれば、3回のreplaceをすればいいだけなのですが
strの中身が未知であるために、100回replaceしなければなりません。
これではあまりにも無駄すぎるので、どうにかしたいのです

何か上手い方法がありませんでしょうか
591デフォルトの名無しさん:2006/02/18(土) 21:04:49
正規表現はしらべてみたの?
592デフォルトの名無しさん:2006/02/18(土) 21:41:04
正規表現もいいが(id:?)を一度{?}に変換してMessageFormat使えば簡単そう。
593590:2006/02/18(土) 21:47:22
>591
正規表現を使えば、(id:?)という形式の文字列が含まれているかどうかは
わかっても、?の数値によった置換が出来ないと考えました。
splitしたら(id:?)は消えてしまいますし・・・
594デフォルトの名無しさん:2006/02/18(土) 21:47:54
MessageFormatは出てくる順番にしか処理しないのでは?
>>591の言ってる内容だとそれでこと足りそうだけどね
595590:2006/02/18(土) 22:12:21
ありがとうございます
今あわててリファレンスのMessageFormatを見てきました。
複雑そうなので、もう少し調べてみます。

ただ、(id:?)を{?}に変換するとき
(id: を { に置換し、) を } に置換するという方法になるんだと思いますが
これだと、関係無い ) まで置換されてしいます。
(id:? に続 ) だけを置換するようにするのは可能なのでしょうか

596デフォルトの名無しさん:2006/02/18(土) 22:15:07
({?})でいいじゃん
597デフォルトの名無しさん:2006/02/18(土) 22:59:04
一定の書式を取り出すのに正規表現を使わない理由が分からない・・・
598デフォルトの名無しさん:2006/02/18(土) 23:06:46
Javaで作ったアプリケーションを、Windows上の .exe ファイルのように、
クリックするだけで起動できる実行ファイルにすることはできますか?

599デフォルトの名無しさん:2006/02/18(土) 23:12:08
そういうアプリケーションランチャーを作る。
ShellExecuteExだったかな・・・WinAPIの話ね
600デフォルトの名無しさん:2006/02/18(土) 23:15:32
>>598
jarファイルならダブルクリックでWindows上で実行できるはずだが
アイコンつけたいとかやるなら>>599のように
実際のところアプリケーションは各種オプションでチューニングするので
jarだけで配布というのはまずありえん

JavaSE6ではLinuxとかもダブルクリックで起動するようにするんだっけ
601デフォルトの名無しさん:2006/02/18(土) 23:22:14
アイコン差し替えられるランチャがあったらいいのにな
機能は-Xmxをデフォルトかメモリ最大の75%かを設定できるくらいでいい
てかないのか?こんなランチャ、ある気がしてきた
602デフォルトの名無しさん:2006/02/18(土) 23:22:51
>>601 いろいろあるぞ。
603デフォルトの名無しさん:2006/02/18(土) 23:22:58

ServerSocket#accept()をボタン押下のイベントで中断させることはできますか?
604デフォルトの名無しさん:2006/02/18(土) 23:27:29
>>590
API ドキュメント見ればこれくらい書けるでしょ…かなり適当だが

public static void main(String[] args) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("1", "一");
map.put("7", "七");
map.put("26", "二十六");

String str = "あい(id:1)うえおか(id:7)きくけこさ(id:26)しすせそ";
Pattern p = Pattern.compile("\\(id:(\\d+)\\)");
Matcher m = p.matcher(str);
StringBuffer sb = new StringBuffer();
while(m.find()) m.appendReplacement(sb, map.get(m.group(1)));
m.appendTail(sb);
System.out.println(sb.toString());
}

http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/regex/Pattern.html
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/regex/Matcher.html#appendReplacement(java.lang.StringBuffer, java.lang.String)
605デフォルトの名無しさん:2006/02/18(土) 23:29:07
>>603
タイムアウトを10msくらいに設定して回すという手もある
クリックイベントでループ抜けるフラグをセット

>>604
やさしいな
606デフォルトの名無しさん:2006/02/18(土) 23:31:35
>>600
なんでマニフェストファイルにそういうオプションつけられるようにしなかったのか理解に苦しむ
607603:2006/02/18(土) 23:32:15
>605
なるほど。それならできそうな気がします。
608デフォルトの名無しさん:2006/02/18(土) 23:35:15
Windowsでダブルクリックで起動できてアイコンを自由に設定したいなら
ショートカット使えばいいのでは?
609デフォルトの名無しさん:2006/02/18(土) 23:39:26
>>602
おすすめ教えてくださいな

>>608
ショートカットは絶対パスだったような
610デフォルトの名無しさん:2006/02/18(土) 23:44:29
そろそろJWS信者が出てくる予感
611デフォルトの名無しさん:2006/02/18(土) 23:45:45
いやアイコンの差し替えは必須だから出てこれないでしょw
612デフォルトの名無しさん:2006/02/18(土) 23:57:47
質問失礼します
java未経験者なのですが
初心者がjavaをある程度理解するにはおよそどれくらいの時間がかかりますか?
目標としては、GA(遺伝的アルゴリズム)を用いたNクイーン問題のプログラムの作成および応用です
プログラム暦としてはCをほんの少しかじった程度なんですが、どうでしょうか?
613デフォルトの名無しさん:2006/02/19(日) 00:00:00
WSHでショートカットアイコンを作るスクリプト書けばいんじゃない?
614デフォルトの名無しさん:2006/02/19(日) 00:01:24
>>612
> 初心者がjavaをある程度理解するにはおよそどれくらいの時間がかかりますか?
個人による
1ヶ月もあれば十分じゃないかな
615デフォルトの名無しさん:2006/02/19(日) 00:01:31
exewrapでいいんじゃない?
616デフォルトの名無しさん:2006/02/19(日) 00:01:56
>>612
君の頭が良ければ一瞬。馬鹿なら一生無理。
617デフォルトの名無しさん:2006/02/19(日) 00:02:00
適当なインストーラキットつかってsetup.exeにまとめて配布。
618デフォルトの名無しさん:2006/02/19(日) 00:09:21
>>603
別スレッドでServerSocket#close()呼ぶと、
accept()しているスレッドはaccept()を中断してSocketExceptionをスローする。
前にSocket使ったC/Sアプリ作ったときはそうやって中断させた。

>>605みたいなビジーループはどうかと思うが、普通そうするの?
619デフォルトの名無しさん:2006/02/19(日) 00:09:33
>>612
Javaが未経験なのか。
それとも、プログラミングが未経験なのか。
620デフォルトの名無しさん:2006/02/19(日) 00:09:51
現在の時刻を、20060219001010のように、年4、月2、日2、時2、分2、秒2の
14桁であらわしたいのですが、どのようにしたらいいのでしょうか。
DateFormatというクラスがあるのですが、どのメソッドにどのような引数を
あたえたらよいのかが分かりません。
621デフォルトの名無しさん:2006/02/19(日) 00:15:24
SimpleDateFormat
622デフォルトの名無しさん:2006/02/19(日) 00:15:32
>>620
SimpleDateFormatのコンストラクタにフォーマットを記述して
formatter.format(new Date());かな
623デフォルトの名無しさん:2006/02/19(日) 00:17:15
>>618
環境によってそれ動作がおかしかったはず
ユーザーが多いWindowsですらもね

>>605が普通のコード
624620:2006/02/19(日) 00:17:47
ありがとうございました。
SimpleDateFormatに"yyyyMMddHHmmss"という形式を与えてできそうです。
625デフォルトの名無しさん:2006/02/19(日) 00:18:17
>>620
String now = String.format("%tY%td%tm" , Calendar.getInstance());
みたいなかんじでかけばおけ
626デフォルトの名無しさん:2006/02/19(日) 00:33:38
>>612
C言語でそのプログラムが組めるなら、javaでもすぐできそうな
気がする。
627デフォルトの名無しさん:2006/02/19(日) 00:36:33
exewarpってすごいな
でもマニュアル読まなきゃlibにjarを入れる所だった
こういう仕様はやばいからマジ止めて欲しいw
628デフォルトの名無しさん:2006/02/19(日) 00:47:30
Javaにおいての自動変数についてなんですが

例えば
void hogehoge();メソッドがあるとしまして
このメソッド内でint n[] = new int[128];と宣言しているとします。
普通C/C++ではメソッド内の変数(自動変数)宣言はメソッドが実行されますと物理メモリが確保され、
そのスコープを抜けると(つまりメソッドから零れると)確保した物理メモリは開放されます。

Java(主にJVM)では自動変数についてどの様な処理を施しているのでしょうか? お願いします
629デフォルトの名無しさん:2006/02/19(日) 00:48:46
>>628
JAVAでは配列はオブジェクトと同じ扱い。
つまりガベージコレクションがはたらく。
630デフォルトの名無しさん:2006/02/19(日) 00:51:23
>>629
すみません書いてから気がつきました
JAVAのnew演算子は技術的に動的メモリ確保してるんでした

ではこうします
void hogehoge();が定義されているとして
このメソッド内で int n; と宣言されているとします。
この場合変数nはどうなのでしょうか
すみませんorz
631デフォルトの名無しさん:2006/02/19(日) 00:51:26
>>628
ローカル内で完結するリソースは開放されるんじゃなかったかな
プリミティブ型だけだと思うから、配列は微妙
てかGCって印象より速いですよ
632デフォルトの名無しさん:2006/02/19(日) 00:51:48
>>627
こういう仕様って?
あと、ワープじゃなくてラップな。
633デフォルトの名無しさん:2006/02/19(日) 00:53:56
外部ライブラリの読み込み

Java には自動的に外部ライブラリ(JAR)を読み込むための仕組み(Extension Framework)があります。
既定では、JRE をインストールしたディレクトリの lib\ext が拡張ディレクトリとなります。
拡張ディレクトリに配置された外部ライブラリ(JAR)は、クラスパスに明示的に指定することなく使用できます。

exewrap で作成されたアプリケーションは、アプリケーションファイル(EXE)のあるディレクトリに、
lib ディレクトリが存在する場合、lib ディレクトリを自動的に拡張ディレクトリに追加します。
JDBC ドライバなどの外部ライブラリは、アプリケーションファイル(EXE)と同じところに lib ディレクトリを作成し、
そのディレクトリ内に配置することができます。
634デフォルトの名無しさん:2006/02/19(日) 00:54:19
>>631
すみません
プリミティブ型は開放されるのですね。ありがとうございます。

>>629さん、>>631さんお手数かけました(;´д`)
635デフォルトの名無しさん:2006/02/19(日) 00:58:27
>>634
オブジェクト参照型でもそれにnullを代入すれば出来るという話もあるが検証したことないからわからない
636612:2006/02/19(日) 00:59:25
質問に答えてくださった方々、ありがとうございます
Java初心者の分際でGAに魅力を感じ、ついこの道を選んでしまいました
プログラミングは私にとってとても難しいものなのですが、完成したときのあの達成感はやっぱりいいですね
早速明日からJavaの勉強を開始します
それでは失礼致しました
637デフォルトの名無しさん:2006/02/19(日) 01:09:57
>>633
それに何か問題が?
638デフォルトの名無しさん:2006/02/19(日) 01:11:29
>>637
普通libにjarを置くし俺は大問題だな
639デフォルトの名無しさん:2006/02/19(日) 01:34:03
main.exe + lib\*.jar という形でアプリを配布できるようにしてあるだけだと思うが
何がそんなに問題なのか分からない。
640デフォルトの名無しさん:2006/02/19(日) 01:36:42
なにが大問題なんだろう?
exewrap経由で起動するアプリが使うJARを入れるだけでしょ?
641デフォルトの名無しさん:2006/02/19(日) 01:42:25
lib\extに勝手にコピーされるなら大問題では?
アンインストーラも無いのにレジストリ汚すようなもんだ
642デフォルトの名無しさん:2006/02/19(日) 01:44:22
libにあるjarにクラスパス通すだけじゃないの?
643デフォルトの名無しさん:2006/02/19(日) 01:45:49
なら問題ないが、何であんな書き方なんだろうか
644642:2006/02/19(日) 01:46:24
> lib ディレクトリが存在する場合、lib ディレクトリを自動的に拡張ディレクトリに追加します。
ごめん、追加するのか…?
645デフォルトの名無しさん:2006/02/19(日) 01:48:21
>>644
クラスパス通すことをそう表現してるだけのようだが。
646デフォルトの名無しさん:2006/02/19(日) 02:06:39
クラスパスつーか、java.lib.extで指定されるだけじゃないかな。
647646:2006/02/19(日) 02:10:37
まちがえた、java.ext.dirsだった。で、これ指定しちゃうと元々の
jre/lib/extが指定からハズレるからJCEとか使ってるとはまるだろうな。
648デフォルトの名無しさん:2006/02/19(日) 02:19:23
区切ることで複数指定できるようだ。安心した。
疑って悪かったなexewrap
649デフォルトの名無しさん:2006/02/19(日) 12:39:56
web上でグラフ表示させたいのですが、(特に折れ線グラフ)
JFreeChartなるものに興味があります。

http://www.atmarkit.co.jp/fjava/javatips/092jspservlet036.html

これについて何か知ってる人、いませんか?
また書籍やホームページも探してるのですが、
なかなか情報がすくないようなのです。
650デフォルトの名無しさん:2006/02/19(日) 13:17:34
折れ線グラフくらい自作すれば?
651デフォルトの名無しさん:2006/02/19(日) 13:19:07
>>649
漏れもそれに興味あって少し調べてみたけど、まず日本語の情報は皆無。あってもかなり
昔のバージョンについて述べてるので、役に立たなかった。
そもそもJFreeChart 1.0がリリースされたのがつい最近だから、書籍なりが出てくるのは
もっと待たないとダメかと。

で、本体にもまともなドキュメントはついていないので、独学もムズそう。
JFreeChartプロジェクトが有償で開発者向けのドキュメント(英文だけど)とサンプルのソー
スコードを売ってるので、これを素直に買うべきだと思う。
http://www.object-refinery.com/jfreechart/guide.html

まぁ$40だから、許せる範囲かと。(漏れは買ってないけどww)
652デフォルトの名無しさん:2006/02/19(日) 14:40:24
重複しない乱数を作ることって可能ですか?
653デフォルトの名無しさん:2006/02/19(日) 14:43:45
>>652
重複しない値の集合を、ランダムにシャッフルする(トランプ的に)
654デフォルトの名無しさん:2006/02/19(日) 18:01:54
private jreを配布するときのルールを教えてください
どのような制限が付くのでしょうか?
655デフォルトの名無しさん:2006/02/19(日) 19:18:26
readmeくらい読みやがれ
再配布規定よまないでjre配布はだめだぞ
656デフォルトの名無しさん:2006/02/19(日) 19:24:04
>>634
>プリミティブ型は開放されるのですね。ありがとうございます。

というか、普通に、ヒープにとるかスタックにとるかの違いじゃないのか?
657デフォルトの名無しさん:2006/02/19(日) 19:49:05
C++と比較してるようだが肝心の比較のC++の基本も知らないようだから
そこはかまうな






とみんなおもってるはずだ
658デフォルトの名無しさん:2006/02/19(日) 19:59:40
そこはかまうな、って C/C++ に限らず Java でも基本だろ。
659デフォルトの名無しさん:2006/02/19(日) 20:13:14
実行ファイルが置かれているディレクトリの絶対パスが知りたいと思いました。
getClass().getResource("").toString()で何かが見えた気がしたのですが..
良い方法ないですか?
660デフォルトの名無しさん:2006/02/19(日) 20:16:00
>>658
ヒント:比較対象が分かってないから何を行っても無駄
661デフォルトの名無しさん:2006/02/19(日) 20:20:00
>>659
ネットワーク上においてあるかも知れないのに置かれてるディレクトリも糞も
ないだろう。強いて言えばカレントディレクトリか?

System.getProperty("user.dir")
662660:2006/02/19(日) 20:23:19
>>661
Thx。まさにそれを探していました。
663659:2006/02/19(日) 20:24:29
>>662の名前:660は659の間違いです。すみませんorz
664デフォルトの名無しさん:2006/02/19(日) 20:56:21
シンボルがありませんってどういうこと?
665デフォルトの名無しさん:2006/02/19(日) 21:02:15
女だってこと
666デフォルトの名無しさん:2006/02/19(日) 21:51:28
>>664
スペルミスじゃね?
667デフォルトの名無しさん:2006/02/19(日) 21:53:52
「シンボル 梅宮」 でググれ
668デフォルトの名無しさん:2006/02/19(日) 22:14:03
「シンボル ポピュラス」でググれ
669デフォルトの名無しさん:2006/02/19(日) 22:19:03
BufferedImageをリサイズ出来るような方法はありませんか?
670デフォルトの名無しさん:2006/02/19(日) 23:11:03
つ getScaledInstance
671618:2006/02/20(月) 00:44:22
超遅レスだが気になってたのでレス。
>>623
動作がおかしいって、ServerSocket#accept()がclose()で中断されないってこと?
だとしたらこのバグが原因じゃない?
ttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4386498
> Synopsis: ServerSocket.accept does not detect interrup or close
> Reported Against: 1.3 , kest-linux-fcs
もうずいぶん前にcloseしてるじゃねーか。
672デフォルトの名無しさん:2006/02/20(月) 07:01:30
getClass().isPrimitive()でプリミティブ型かどうか判定出来ますが、
ある変数が特定のプリミティブ型、例えばbooleanか判定する方法はありますか。

instanceof演算子を使い
xxx instanceof Booleanでは上手くいかないです。

今は応急で
getClass().getName().equals("java.lang.Boolean")
などとしていますが、これで良いのですか?
673デフォルトの名無しさん:2006/02/20(月) 07:13:00
>>672
Boolean.TYPE
674デフォルトの名無しさん:2006/02/20(月) 07:32:23
>>673
回答ありがとう。

boolean xxx = true;
として、
if(Boolean.TYPE == xxx) ;
では、Booleanとbooleanは比較できませんと言われたので、
if(Boolean.TYPE == (Object)xxx) ;
のようにしたのですが、falseと返ってしまいます。つまり判定

こうやって使うんじゃないのですか?
何度もすいません。
675デフォルトの名無しさん:2006/02/20(月) 08:19:43
良く考えたらプリミティブ型で実行時に型が解らない変数って無いんですかね?
676デフォルトの名無しさん:2006/02/20(月) 08:38:55
ラッパーいいよね。ノリが。
677デフォルトの名無しさん:2006/02/20(月) 09:53:47
>>675
コーディング時に型が決定しないプリミティブ型を書く方法がないからな
678デフォルトの名無しさん:2006/02/20(月) 10:30:16
次のようなプログラムの実行結果が
"mona" にならない理由をおしえてもらえませんか?



public static void main(String args[]){
String a="gikoneko";
StringTest(a);
System.out.println("a="+a);
}

public static void StringTest(String test){
test="mona";
return;
}
679デフォルトの名無しさん:2006/02/20(月) 10:37:22
CとJavaの違いを勉強しましょう。


main()内は
String Test(a)を
a = Test() ;

Test()内は
return ; を return test ;
注)引数はこの場合いらない。
680デフォルトの名無しさん:2006/02/20(月) 10:40:49
>>679 そうする事によって、期待する結果が得られるのは理解できるですが。
わからないのは、String型はクラス型なのになぜ呼び出したメソッド中での変更が反映されないのか
っていうことなんです。
681デフォルトの名無しさん:2006/02/20(月) 10:44:20
>>678
メソッドの引数に与えるのは、オブジェクトを特定する背番号だけ。
与えられた側のメソッドでは、背番号を格納する場所を、新たに確保する。
この新たに確保した場所は、メソッドの終了とともに破棄される。
よって、メソッド内で幾らこの背番号を変えたとしても、メソッド外には反映されない。
682デフォルトの名無しさん:2006/02/20(月) 10:47:02
Javaはポインタがないっていうけれど、やっぱこういう香具師みるたびに
ポインタは理解しとかないとだめだなーと思うな。
StringはImmutableだし、第一メソッド内でポインタ値を書き換えても何にもならない。
(testはStringTest内のローカル変数だからそれを変更したって意味がない。つまりこの関数は何もしていない。)
683デフォルトの名無しさん:2006/02/20(月) 10:52:09
>>678
Java ではダブルクォーテーションで括った文字列は
それそのものが String クラスのインスタンスです。
C/C++ のように char 配列の先頭を指すポインタだったり
それを入れるクラスや構造体が別にあるわけではありません。
(だから "abc".charAt(1) のような書き方もできます)。

ついでに言うと、String クラスは内容を書き換えられる
ように作られていません。定数用に作られたクラスです。
渡した先のメソッドでどうしても内容を書き換えたいなら
StringBuffer を使うか char 配列にして渡すか、あるいは
あるいは内容の変更された新たな String のインスタンスを
リターン値として受け取るしかありません。
684デフォルトの名無しさん:2006/02/20(月) 10:55:41
把握しました。StringBufferで同じようなことをやってみたら理解できました。ありがとうございます。

//1
public static void StringTest(StringBuffer test){
test.delete(0,test.length());
test.append("mona");
return;
}
//2
public static void StingTest2(StringBuffer tset){
tset = new StringBuffer("mona");
return;
}
685デフォルトの名無しさん:2006/02/20(月) 10:58:06
仮にポインタだとしても同じことだろ。アホかw
それにC/C++では文字列リテラルはポインタ型じゃない。
ま、仮にポインタ型だとしてもC"abc"[1]のような書き方は可能だがな
686デフォルトの名無しさん:2006/02/20(月) 12:37:00
初心者っぽい質問ですいません。

public static String conv2UB(String pText) {
String text = pText;
if (text == null) {
text = "";
}
text = text.replaceAll("_", "\\_");
return text;
}

上記のメソッドで"_"→"\_"にしたいのですが、なぜか置換できません。
例:"te_st"→"te_st"

何か使い方間違ってるんでしょうか。
687デフォルトの名無しさん:2006/02/20(月) 12:52:06
>>686
Javaの正規表現は、正規表現のエスケープと、
Javaの文字列におけるエスケープが混在するからややこしい。
正規表現で、\を表現するためには、\\と書く。
さらにそれをJavaの文字列リテラルで書くと、\1つをあらわすのに\\と書くから、\\\\になる。
688デフォルトの名無しさん:2006/02/20(月) 13:35:31
>>687
いや、replaceAll()の第二パラメータは正規表現じゃないし。
689デフォルトの名無しさん:2006/02/20(月) 13:41:57
>>686
正規表現じゃないんだけど、>>687の言うとおり "\\\\_" にする必要が
あります。
690686:2006/02/20(月) 14:42:13
>>687,688,689

ありがとうございます。
"\\\\_"でいけました。まさか2回エスケープされてるとは思わなかったよ。

ちなみに"_"→"\_"にしたかったのは、PostgreSQLのLikeにかける時、"_"が
任意の一文字として扱われるのをエスケープするためです。
691デフォルトの名無しさん:2006/02/20(月) 15:48:21
public void keyReleased(MouseEvent e) { } のvにclassまたはinterface
がありませんってでるんだけど。
692デフォルトの名無しさん:2006/02/20(月) 15:50:09
メソッドはクラスの中に書け
693デフォルトの名無しさん:2006/02/20(月) 22:11:12
>>691-692
このメソッドの手前で波カッコを閉じすぎてるか
694デフォルトの名無しさん:2006/02/20(月) 22:59:44
>>677
thx
695デフォルトの名無しさん:2006/02/20(月) 23:17:29
1、SELECT分の結果をResultSetで受け取る。
2、ResultSetを一行読む。
3、2で読み込んだ値をprepareStatement(UPDATE文)にセット。
4、UPDATE実行
5、COMMIT
6、2へ戻る(ResultSetが終わりまで来たら終了)

こういう感じのロジックなんですが、何か問題はあるでしょうか。
2、3週ループした後で、デッドロックが起こったみたいにCOMMITの後で処理が停止してしまいます。
ちなみに使用しているコネクションは一つです。
696デフォルトの名無しさん:2006/02/20(月) 23:51:20
結果セット保持中にコミットって正気か?
697デフォルトの名無しさん:2006/02/21(火) 00:06:43
5、6は明らかに逆にするべき。アホかと
698デフォルトの名無しさん:2006/02/21(火) 00:09:43
例えば
int lpArr[] = new int[12];
と宣言されているint配列があるとします。

例えば文中でこのlpArrの要素の数を12個から13個以上へと拡張(Cに当たるrealloc関数の動作)するには
int __lpArr = new int[13];
for(int i=0;i<12;i++)
_lpArr[i] = lpArr[i];

lpArr = _lpArr;
とするしか無いのでしょうか
699デフォルトの名無しさん:2006/02/21(火) 00:40:07
>>698
その通りだが、配列のコピーはSystem.arraycopy()を使うと楽。
int __lpArr = new int[13];
System.arraycopy(plArr, 0, __lpArr, 0, lpArr.length);
700デフォルトの名無しさん:2006/02/21(火) 01:20:32
>>695
それJava以前のお話
まずDBを勉強してくだされ

ものにもよるがそもそもループ内でcommitって何のためのトランザクションだとかおもっちまう
701デフォルトの名無しさん:2006/02/21(火) 01:40:16
>>548
たしかに1年待たされたw
Eclipse3.2からはさらに5.0対応機能が強化されるので
非常に期待している。アノテーションやGenericsのリファクタリングや
コードアシスト、警告が強化されるからな。
702デフォルトの名無しさん:2006/02/21(火) 02:01:13
>>699
ありがとうございます
無事解決できました
703デフォルトの名無しさん:2006/02/21(火) 04:17:24
以前アットマークITで質問して、満足する回答が得られなかったため
再度ここでお尋ねしたいと思います。どなたかよろしければ教えてください。

BeanShellのようなインタプリタをサーブレット上で動作させて、
ユーザがポストした任意のアプリを実行させたいのですが、
たとえば、こんなプログラムがポストされたときに発生してしまう
OutOfMemoryErrorをうまくハンドリングしたいのです。

buf = new StringBuffer("ULY");
while(true) buf.append("Y");

なにもしないままでは、同時に複数のユーザがプログラムをポストしたときに
「悪いプログラムを投稿したユーザ」のリクエストを処理するスレッドで
OutOfMemoryErrorが発生するとは限らないので、他のユーザに迷惑がかかってしまいます。

なお、サーバ側のセキュリティはこの際考えないものとします。
実行環境はあまり関係ないと思いますが、一応Linuxです。

@ITに投稿したときのスレッドはこれです。
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28331&forum=12&6

よろしくお願いします。
704703:2006/02/21(火) 04:25:55
質問の仕方が悪かったので、少し追加させて下さい。

やりたいことは、
(1) 悪いプログラムを投稿したユーザを特定したい
(ということは、OutOfMemoryErrorが発生したスレッドを
特定できなくてはならないと思います)

(2) (1)が無理なら、せめて、悪いプログラムが投稿されても
他のユーザの実行結果に影響が出ないようにしたい

この際、OutOfMemoryErrorが発生するくらいヒープが消費されることによる
サーバのスローダウンは許容するとします。

やっぱり無理なんでしょうか…
705703:2006/02/21(火) 04:33:11
3連投ですいません。

704の(1)はマチガイでした。OutOfMemoryErrorが発生したスレッドは特定できますね。
それに、スレッドを特定できても、ユーザは特定できないですね。
706デフォルトの名無しさん:2006/02/21(火) 04:40:38
>>704
荒療治だけど
1)投稿を全部独自形式でどこかにダンプして
OutOfMemoryErrorを見つけたらSystem.exit

2)それと同時にサーバ(Tomcat?)が
起動していることを監視するデーモンプログラムを書いて
停止していたら起動させるようにする

3)1)のログの一番最後の行付近の投稿を実際に行ってみて(HTTPUrlConnectionなど使って)、
同様のエラーを返す投稿を書き込み不可として登録する

かなり汎用性はないけど、
もともと案件が汎用性がないからこんな感じ?
707デフォルトの名無しさん:2006/02/21(火) 05:11:23
BeanShellで動作させるところを別プロセスにすればいいんでないのかね。
708703:2006/02/21(火) 06:12:29
早速のご回答を頂き、ありがとうございます。

>>706
お金がないので今のところtomcatを使っています。
OutOfMemoryErrorをcatchして何か処理を行なうことは可能なので、
どこかにダンプする必要はなく、catchして直接System.exitするということになりますね。
ですが、無停止で運用しなくてはならないので、基本的にはSystem.exitは使えないのです…残念ですが。

>>707
別プロセスにする、というのは一番ストレートな回避策だと思いますが、
リクエスト毎にプロセスを起動するのでは処理が遅すぎるので、
プロセスプーリングやリクエストキューの管理などが必要になってきますね。

tomcatをシングルスレッドモデルで動かば、確実にユーザ特定できるのですが、
マルチユーザに対応しなくてはならないので、その選択もできません。


やはり、現実的な線としては

(1)現在処理中のリクエストをポストしたユーザの情報を、どこかに書いておく
(2)別プロセスとしてリクエストを処理し、OutOfMemoryErrorが起きたらそのユーザをbanする

というところでしょうか。
どうにかtomcatのプロセスだけで全部まかなえないか、あれこれ考えたのですが、
やっぱり無理ですよね…残念です。
709デフォルトの名無しさん:2006/02/21(火) 06:37:09
>>674
参照型の値refを調べたいなら

if (boolean.class.equals(ref.getClass())) {
//なんか処理
}

710デフォルトの名無しさん:2006/02/21(火) 06:41:21
まちがった。

Class type; //調べたい変数の型

if (Boolean.TYPE.equals(type)) {
//プリミティブ型
} else if(Boolean.class.equals(type)) {
//参照型
}
711デフォルトの名無しさん:2006/02/21(火) 09:49:05
javaのSDKのソースをダウンロードしようと思ったんですが
ライセンス形態のSCSLとJRLってどう違うんですか?
712デフォルトの名無しさん:2006/02/21(火) 10:00:06
>>703-705
スレッドが特定できるなら、名前をつけて実行すればよい?
new Thread(new Runnable() { public void run() { throw new Error(); }}, "hoge").start();

以下は、スタックトレースの一行目。
Exception in thread "hoge" java.lang.Error
713デフォルトの名無しさん:2006/02/21(火) 10:16:42
>>703
インタプリタなんでしょ?
ならJavaのヒープでとめるんじゃなくて
自前でメモリ管理すればいいだけじゃないの?
714デフォルトの名無しさん:2006/02/21(火) 10:23:41
>>713
703ではないが、質問を。
インタプリタ=自前でメモリ管理ができる、になりますか?
自前というのは、誰でしょうか?
715デフォルトの名無しさん:2006/02/21(火) 10:25:30
>>703 一つのbeanshellのインスタンスで処理するんじゃなくて、
インタプリタ分けて、インタプリタごとにスレッドグループ設定して
例外ハンドラを追加、でできそうなきがする。
716デフォルトの名無しさん:2006/02/21(火) 10:31:14
>>714
普通インタプリタ作るといったらメモリ領域を先に制限してから実行するものじゃない?
最近はメモリが多いから何も考えずにくむ人多いのかなぁ
717デフォルトの名無しさん:2006/02/21(火) 10:40:42
>>716
VM上で仮想メモリ空間を作成する、ということ?
718デフォルトの名無しさん:2006/02/21(火) 10:47:30
Eclipseからは実行可能なJarファイルを作りたいのですが
どのようにすればよいでしょうか?
719デフォルトの名無しさん:2006/02/21(火) 10:55:06
>>717
VMだろうがVMじゃなかろうが制限をつけるのは当たり前

それをしてないというのはアップロードサイズ制限してないコードとかとおなじ
720デフォルトの名無しさん:2006/02/21(火) 11:09:27
Swingでボタンを配置した後にそのボタンを押すと画面が終了する書きかたってどうすればいいのでしょうか?
721デフォルトの名無しさん:2006/02/21(火) 11:12:36
>>720
初心者以前の話
出直して来い
722デフォルトの名無しさん:2006/02/21(火) 11:14:02
ねぇねぇ、始めたばかりの初心者はどんなものを作りながら勉強をした方が良いの?
経験者は経験してきたことを言っちゃいなよー
723デフォルトの名無しさん:2006/02/21(火) 11:15:25
>>719
やるかやらないか、じゃなくて、
できるかできないか、を知りたいんだが…
724デフォルトの名無しさん:2006/02/21(火) 11:17:47
>>722
お前は参考書を10冊10日ずつ読破しろ
725デフォルトの名無しさん:2006/02/21(火) 11:17:59
>>722
Javadocを読む
726デフォルトの名無しさん:2006/02/21(火) 11:19:06
>>720
setDefaultCloseOperation(int)
じゃないよね?
727デフォルトの名無しさん:2006/02/21(火) 11:20:08
>>726
それはクローズアイコンの動作指定ね。(メソッド名そのままだな)
728デフォルトの名無しさん:2006/02/21(火) 11:22:02
>>727
やっぱり・・・
breakじゃないし・・・。

すいませんマジで混乱しています教えてください。
729デフォルトの名無しさん:2006/02/21(火) 11:24:43
>>728
初歩の初歩だググれば?
ググっても分らないならPGに向いてない諦めろ
730デフォルトの名無しさん:2006/02/21(火) 11:26:18
>>728
日本語の不自由な方には(ry

で、大体何を見て勉強しているんだ?


731703:2006/02/21(火) 12:07:08
いろいろと御意見を頂きありがとうございます。

>>712
>>715
基本的には、「OutOfMemoryErrorがthrowされるタイミングおよび
どのスレッドにおいてthrowされるか」は予測不可能なため、
一人でも悪いユーザがいれば全部台無しになってしまうのです。
例外ハンドラでキャッチするだけでは、せいぜいmainスレッドが停止するのを
防ぐことがやっとだと思われます。残念ですが…

>>713
>>719
確かにおっしゃるとおりで、本来ならばスクリプトエンジン側で
メモリをきちんと管理するべきだと思います。
しかし、オブジェクトごとのメモリサイズが取得できないjavaでは、
(スクリプトの)実行コンテキスト毎のメモリ消費量を特定するのは、
相当困難であるかと思われます。

正直なところ、javaで動いて、キチンとメモリ管理もするスクリプトエンジンを
0から作る、という方針はイバラの道のような気がして、あまり選びたくないです。
やりたいことはほぼ全てBeanShellモドキが提供してくれているので、
あとは「無茶なスクリプトが実行されても、その悪影響を抑え込める」
さえどうにかなれば、というところなのですが…

そもそも、そんな用途でjavaを使うな、と言われたら返す言葉もないですが。
732デフォルトの名無しさん:2006/02/21(火) 12:18:02
>>728
マルチうざ

>>731
使用量をコントロールするのならメモリ管理を一から作るしかないけど
難しく考えすぎじゃない?
1Mのコードエリアと1Mのヒープ&スタック用意しておわりでは?

まさかオブジェクトってことはスクリプトからJavaのオブジェクト管理したいのか?
コントロールできないコードをユーザーに自由なコードをアップロードして
実行させる危険性はわかってるの?

メモリコントロールが完璧でもwhile(true)だけでCPU100%使うとかあるでしょ
733703:2006/02/21(火) 12:27:32
>>732
無限ループやスタックオーバーフローに関しては、
内部プログラムカウンタを使って、
一度に実行できるステップ数を制限しているので大丈夫です。

スクリプトからJavaオブジェクトを操作する、
それがまさにやりたいことなんです。
しかし、危険なAPIは一切実行できないないように制限しているため、
セキュリティはあまり問題にはならないと考えています。
(インポートできるクラスを制限したり、
java.lang.Classなどの危険なクラスも操作できないようにしています)
734デフォルトの名無しさん:2006/02/21(火) 12:40:09
cpu100%つかうアプリって、、、たまごっちか。
735デフォルトの名無しさん:2006/02/21(火) 12:49:34
>>733
使うオブジェクトが汎用的じゃないのであればかなりコントロール可能でしょ
どのクラスがどの程度使うかはわかるわけだし
736703:2006/02/21(火) 12:55:03
>>735

汎用的なライブラリも使うんです、すいません…(commons.langの一部とか)
メソッドコール一つ一つを精査して、危険っぽいメソッドコールならば
エラーにして返す、というのも少し前に考えましたが
現実的でないので無理という結論になりました。
(「危険っぽいメソッドコール」の基準を決めるのが困難なので)
737デフォルトの名無しさん:2006/02/21(火) 13:37:29
サイズが大きいパネルの上で小さいパネルをドラッグで動かしたいのですが、
JPanelを重ねたときに、常に片方を最前面にこさせる方法はないでしょうか?
738デフォルトの名無しさん:2006/02/21(火) 14:02:16
小さいほうのフォーカスロスト時に大きいほうのパネルをアクティブにする。
739デフォルトの名無しさん:2006/02/21(火) 14:08:55
クラス同士を結ぶ方法は存在するのでしょうか?
740デフォルトの名無しさん:2006/02/21(火) 14:20:17
クラス同士を結ぶってことはconcatPanel(次のパネル)
みたいなメソッドはないかということですか?

標準APIには無いので、>>737の方法で作るのがベターだと思いますよ。
741デフォルトの名無しさん:2006/02/21(火) 14:23:03
ちょっとサンプル作ってみます。
742デフォルトの名無しさん:2006/02/21(火) 14:23:39
>>740 のすげー想像力にオドロイタ。
743737:2006/02/21(火) 14:31:59
>>738
ありがとうございます
フォーカスイベントの存在をしらんかったorz
744739:2006/02/21(火) 14:37:18
>>740
いえ、そんな大それた事ではないです…。
try-catch〜のJavaの宿題をやっているのですが、
3つのクラスを又にかけてなにやらやったりするので分けが分からなくなっています。
745デフォルトの名無しさん:2006/02/21(火) 14:58:54
日本語が不自由な方は(ry
746デフォルトの名無しさん:2006/02/21(火) 15:07:07
>>744
宿題スレに池
747デフォルトの名無しさん:2006/02/21(火) 15:32:58
>>703
思ったけどこれってすごく危険じゃね?
どこの誰ともわからないユーザにプログラム実行させるの?
そこがそもそも間違ってると思うんだけど・・・
748デフォルトの名無しさん:2006/02/21(火) 15:36:24
他の掲示板でもそっぽ向かれてるには理由があるってことさ
749デフォルトの名無しさん:2006/02/21(火) 15:51:14
よっぽど自分のセキュリティ対策に自信があるんでしょ
750デフォルトの名無しさん:2006/02/21(火) 16:02:39
ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28331&forum=12&6
でかつのりさんという方が最後におっしゃってるようにするのが一番いいじゃん。

しかしその直後に
>どうやら、手段はなさそうですね。
テラワロスwwwwwww
VMを起動するオーバヘッドとか言ってるけど、
そんな稀有な案件にどんだけたくさんのリクエストがあるっていうんだか。
ていうか小出しにしないで、どんな案件なのかを出さないと
無理だわな。
751デフォルトの名無しさん:2006/02/21(火) 16:09:21
>メソッドコール一つ一つを精査して、危険っぽいメソッドコールならば
>エラーにして返す、というのも少し前に考えましたが
>現実的でないので無理という結論になりました。

鯖のファイルすべて消すとかできそうだな
752デフォルトの名無しさん:2006/02/21(火) 16:12:18
マンガ嫌韓流2   2月22日(竹島の日)発売


◆第1話「終わりなき反日」
歪んだ社会が生み出す「反日無罪」

◆第2話「世界で嫌われる韓国人」        ←注目
共存できない民族による深刻な被害

◆第3話「在日特権の真相」            ←注目
「差別」を武器に君臨する新特権階級

◆第4話「日本海を汚す韓国」
領海侵犯と日本海呼称問題

◆第5話「教科書採択問題と日教組」
反日勢力による教育汚染の実態

◆第6話「人権擁護法案と反日マスコミ」     ←注目
反日日本人と朝鮮半島をつなぐ線

◆第7話「差別大国 韓国」             ←注目
あらゆる差別が詰まった人権無視国家

◆第8話「歴史を捏造する韓国」          ←注目
偽りの歴史と改竄された民族の記憶



あなたが少しでも日本に愛着を持つのであれば、
この本を読んで正しい歴史を理解しましょう。
そして、無礼極まりない隣国に抗議しましょう。
753デフォルトの名無しさん:2006/02/21(火) 16:19:48
antか何かで複数のjarファイルを一つのjarにまとめるって事はできますか?
単にいっぱいあるjarライブラリを全部classpathに設定するのがめんどくさいって理由なんですが。
754デフォルトの名無しさん:2006/02/21(火) 16:29:13
一度解凍してもう一度Jarにすればできるけど・・・・

> 単にいっぱいあるjarライブラリを全部classpathに設定するのがめんどくさいって理由なんですが。

この考え方、何か間違ってないか???
755デフォルトの名無しさん:2006/02/21(火) 16:32:04
ライセンスが問題なければ解凍してぶっこむだけ
JBuilderあたりこのへんうまくやってくれてたなぁ

GPLに注意しなされ
756デフォルトの名無しさん:2006/02/21(火) 16:36:23
Linuxのコマンドライン上から使いたいのでライブラリがいっぱいあるとめちゃ長くなってしまうんですよね。
シェルスクリプトでやれば良いんですけどそれでも長くて美しくなかったもので。

コマンドラインでもwarみたいに固めることができれば良いんですけどね。まぁwarとは目的がちょと違うような気もするけど。
一つのjarにまとめるのがメジャーではないって事は邪道って事でシェルスクリプトに逃げることにします。

ありがとうございました。
757デフォルトの名無しさん:2006/02/21(火) 16:40:02
>>756
それでjavaを選らんだのは凄いと思う
758デフォルトの名無しさん:2006/02/21(火) 16:43:41
>>757
そうですか?研究所なんですけど割とJava使ってる人多いですよ。
あとGUIアプリだと人によってデスクトップマシンがWin,Mac,Linux混在しててもちゃんと動くのでJavaは重宝してます。
759デフォルトの名無しさん:2006/02/21(火) 17:06:23
どなたかお力をお貸しください。
私、現在、javaでjacobを使って自作のActiveXのメソッドを呼び出そうとしております。
ここで、以下のエラーの原因がわからず途方にくれています。

com.jacob.com.ComFailException: A COM exception has been encountered:
At Invoke of: Start
Description: ?v???I??G???[??・?B

at com.jacob.com.Dispatch.invokev(Native Method)
at com.jacob.com.Dispatch.invokev(Dispatch.java:888)
at com.jacob.com.Dispatch.callN(Dispatch.java:524)
at com.jacob.com.Dispatch.call(Dispatch.java:604)
at com.jacob.activeX.ActiveXComponent.invoke(ActiveXComponent.java:425)
at jacobtest.AmiTest.runTest(AmiTest.java:60)
at jacobtest.AmiTest.main(AmiTest.java:12)

呼び出し側のソースは単純に以下のようになっています。

ActiveXComponent amiEx = new ActiveXComponent("MyActiveX.MyActiveXCtrl");
amiEx.invoke("Start","");

ActiveXはVC6で作成しています。
材料が少なくて判断が難しいかと思いますが、このエラーがどんな場合に
発生するのか、というだけでも教えていただけると幸いです。
ちなみに、バージョンに関しては、javaは1.3、1.4、1.5、jacobは
1.6,1.7,1.8,1.9,1.10を試しましたがいずれも同じでした。
ActiveX側に何か足りないものがあるのでしょうか。

ご存知の方いらっしゃいましたら、お願いします。
760デフォルトの名無しさん:2006/02/21(火) 17:16:44
>>756
Linux、Unix限定なら
java -classpath .:`ls *.jar|xargs|sed 'y/ /:/'` foo.bar.Main
でいいじゃん。
761デフォルトの名無しさん:2006/02/21(火) 17:53:30
>>760
おおっ、Linux使いらしいすばらしい解答ですね。
参考にしてみます。
762デフォルトの名無しさん:2006/02/21(火) 18:29:29
Mustangからclasspathの指定に、ワイルドカード使えるんだったかね。

やったことないけど、JARファイルのマニフェストファイルに、Class-Path:を記述して列挙するとかは?
で、実行時には、それの1つのJARを指定するとかどうだろうか。
763デフォルトの名無しさん:2006/02/21(火) 18:31:55
実行時の引数が面倒だったらコードでクラスロードすればいいだけ
764デフォルトの名無しさん:2006/02/21(火) 19:30:36
サーバー側でDBより取得したデータを元にCSVファイルを作成し、
クライアントに、ファイル保存のダイアログボックスを出して保存
してもらう処理を作りたいのです。
今、サーバの方にCSVファイルを保存し、それをJavaScriptでwindow.openで
指定しているのですが、ブラウザで開いてしまいます。
ファイル保存のダイアログを出すにはどんな方法があるのでしょうか?
765デフォルトの名無しさん:2006/02/21(火) 19:38:52
>>764
Content-Type, Content-Disposition
766デフォルトの名無しさん:2006/02/21(火) 20:26:36
>>765
そんな設定があるんですね。明日、試してみます。
ありがとうございます。
767デフォルトの名無しさん:2006/02/21(火) 20:37:40
そもそも「JavaScript」という点でなんとかサーバーというのが
WEB(AP)鯖を指すのが分かるからまだいいが
何のサーバーなのかとかちゃんと状況を説明しよう
768デフォルトの名無しさん:2006/02/21(火) 23:45:13
>>764,>>765
クライアント環境によってはどうあっても意図しない動作になる場合があるから、
エンドユーザときちんと打ち合わせしたほうがいいですよ。
inlineとかattachmentあたり。
>>766
>765の方法はJavaScript使わないから、調べ方間違わないようにね。
769デフォルトの名無しさん:2006/02/22(水) 00:05:32
J Tabbed paneでタブの所を縦にして文字も縦書きにしたい場合どうすればいいんですか?
770デフォルトの名無しさん:2006/02/22(水) 00:19:05
>>769
Mustang(Java SE 6)まで待て。
771デフォルトの名無しさん:2006/02/22(水) 00:27:19
よくわかんないとこあるから教えてください。
マルチスレッドの場合(WEBアプリは特に)
static なメソッドって、シンクロナイズドしないと危ないの?
基本はさ、フィールドまったくないクラスだったら全部staticメソッドにしていいんだよね?
メソッドの引数に何かをインスタンス参照して、メソッドの中で、その引数でもらったインスタンスの内容を書き換える処理があると、
書き換わる(書き換えよう)ときに、別スレッドがそれ使おうとして危ない。

って感じなのかな?
なんか噛み砕いて説明してほしい。。。
772デフォルトの名無しさん:2006/02/22(水) 00:35:02
参照を受け取ったインスタンスの属性なりを書き換えるとき
普通はそのインスタンスのメソッドを使うんじゃない?
で、そっちで排他制御するものだと思う
773デフォルトの名無しさん:2006/02/22(水) 00:36:16
>>771
>基本はさ、フィールドまったくないクラスだったら全部staticメソッドにしていいんだよね?
できるかできないかじゃ、そうできるけど、オブジェクト指向から外れてますよ。
ユーティリティでそういうメソッドの集合としてだけクラス定義することもあるけど、例外的な状況だと思う。

で、質問の件に関してですが。synchronizedはインスタンスの中身について排他制御するって考えてみては。
だから複数スレッドから利用するインスタンスの内容を書き換えるところで排他かけるわけで、staticとかは
関係ないかと。

でもstaticメソッドだけのクラスで、インスタンスはスレッドで共有…って、すごく限定された状況ですよね。
774デフォルトの名無しさん:2006/02/22(水) 00:39:26
クラス変数って変数に格納できますか?
System sys = System;
↑右辺のSystemが解決できないと起こられる
出来ない?書き方が違う?
名前省略して使いたくて。。。
775デフォルトの名無しさん:2006/02/22(水) 00:44:15
>>名前省略して……
J2SE 5 の static import 使えよ
J2SE 1.4 以下は出来ないで FA
776デフォルトの名無しさん:2006/02/22(水) 00:45:13
>>774
素敵な構文ですね
777デフォルトの名無しさん:2006/02/22(水) 00:47:45
>>774
Systemはクラス名で、さらにインスタンス生成できないクラス。
778771:2006/02/22(水) 00:48:13
>>772
>参照を受け取ったインスタンスの属性なりを書き換えるとき
>普通はそのインスタンスのメソッドを使うんじゃない?
>で、そっちで排他制御するものだと思う
確かにそうです。普通そうですね。なんか変な考えしてました。すいませんでした。

>>773
>だから複数スレッドから利用するインスタンスの内容を書き換えるところで排他かけるわけで、staticとかは
staticかはカンケイない・・・なるほど。
わたしの言葉も変でしたが、”インスタンスの内容を書き換える”ってのは、フィールドの内容を書き換える
ってことですよね。

誰か忘れちゃったんですけど、staticなメソッド作らないほうがいいよスレッド理解してないなら。
staticメソッドは排他されなくなるからマジやめろーインスタンス化して使えよ
って言われて、こんな疑問が出来ちゃいました。

解答くれた人のおかげで少しは認識が変わりましたが、もう一個質問・・・・

class A { void test(){} } ってクラスがあったら、こいつのtest()てメソッドは、
インスタンス化されるごとに、メソッドの処理が書かれたメモリ位置は違ってて、
マルチスレッドカンケイなく排他制御かかるんですか?
(排他制御がかかるというか、、、スレッドで共有していないからそもそもが安全)
ってことでいいんです?

お願いします
779デフォルトの名無しさん:2006/02/22(水) 01:04:35
(正確ではないが)今のレベルで理解できるようにわかりやすくいうと
共有してなければインスタンスごとに別とかんがえていい

逆に複数のスレッドからのアクセスがある場合は排他制御が必須

たぶん、Javaの基礎から勉強するのが一番の近道だと思うぞ
780デフォルトの名無しさん:2006/02/22(水) 01:19:58
>>779
解答ありがとうございます。
>たぶん、Javaの基礎から勉強するのが一番の近道だと思うぞ
ですね。VMから学びなおします。

ただ、ひとつ。。。Cでlinuxのgnu使って開発してたときはあまり疑問でなかったのですが
>共有してなければインスタンスごとに別とかんがえていい
>逆に複数のスレッドからのアクセスがある場合は排他制御が必須
正確でなくてやさしく解説されましたけど、これが一番イメージしにくいです。。。。
forkやexit使った排他は、Cのコード上イメージできて、実験しつつ理解を深めていけたのですが、
(あー壊れちゃった。お、ロックかかってる時間も計測できた。などなど。。。)
javaはなんかコードのイメージが出来ない。。。

共通していれば排他が必要。ってのは言葉上OKですが、共有したインスタンスを操作するためのコードが
なんか書きづらい。というかかけないのです。

スレッドって、、、、Threadクラスの継承とrunメソッドオーバーライドの二つしかないんですよね?
これが裏でどう動けばスレッドに共有のメモリを扱えるのかわからないです。。。
今思うと、ソースコード見ちゃえばいいのかな。

わたしはいろんなところを掻い摘んで並行して学習しているので、微妙な知識のままスレッド勉強してるから
変な理解しか出来ないのかもしれません。
まだCのコードも途中ですし。。。

今日は寝ます、ネット環境なくなるのでもしかしたら1ヶ月ぐらい見れないかもしれませんが、ありがとうございました。
781774:2006/02/22(水) 01:20:25
レスどうもです。
勝手に出来ると思い込んでました。
ちゃんと勉強しなきゃですね。。。
782デフォルトの名無しさん:2006/02/22(水) 01:32:27
static は排他されないって俺もよく聞いたな。
もち迷信だけど、どこで広まったんだろう。
排他されなかったらInteger.parseIntも使えないんだがな。
783デフォルトの名無しさん:2006/02/22(水) 01:33:38
Immutableな物だからじゃね?
784デフォルトの名無しさん:2006/02/22(水) 01:38:02
synchronized つけなきゃ static でも同期化されないわけだが、何か毒情報出してないか?
つーかなんでそこで Immutable?
785デフォルトの名無しさん:2006/02/22(水) 01:46:29
>>780
> forkやexit使った排他は

それは並行処理なだけであって排他処理ではないな。
Cでも排他についてわかってなかったんじゃないか?
786デフォルトの名無しさん:2006/02/22(水) 01:50:57
聞かれたことだけ答えとけ。
787デフォルトの名無しさん:2006/02/22(水) 01:51:49
>>782
> 排他されなかったらInteger.parseIntも使えないんだがな。

Integer.parseInt が排他されているとでも思ってるのか、ボケ。
788デフォルトの名無しさん:2006/02/22(水) 01:58:00
>>共有してなければインスタンスごとに別とかんがえていい
>>逆に複数のスレッドからのアクセスがある場合は排他制御が必須
>正確でなくてやさしく解説されましたけど、これが一番イメージしにくいです。。。。

正確な解説だと思うが....
そもそも何に対して排他制御してるのか考えてくれ。プログラムならなんかの変数値だろう。
読み込みと書き込みが両方可能な場合、その変数値にアクセスするメソッドは、すべて排他
制御されてないと、スレッドセーフではない。

だからある変数aにアクセスするgetA()やらsetA()やらperformA()やらなんやらは全部排他を
かける。

変数が分かりにくかったら、物理ファイルだと思え。
たとえばfork()した複数のプロセスがすべて、同一のファイルを読み書きする場合、そのファイ
ルにアクセスする部分はすべて排他制御がかかるだろ(ロックファイルの作成とかチェックとか)。

同じように、複数のスレッドが同一の変数にアクセスするなら、そのためのメソッド類ではすべて
なんらかの排他制御を考えないといけないということ。

あとはチューニングとして排他のかけ方を工夫していく。書き込みと読み込みのロックをわける
とかいろいろ。でもそれは、まずは基本の排他をやってからの話だろう。
789デフォルトの名無しさん:2006/02/22(水) 02:13:51
>>784
>synchronized つけなきゃ static でも同期化されないわけだが、何か毒情報出してないか?

静的な synchronized なメソッドにアクセスしているのに、
なんで、別スレッドがインスタンスの synchronized なメソッドにアクセスできちゃんだよ!
とか、思ってるおバカさんを想像してみた。
790デフォルトの名無しさん:2006/02/22(水) 02:17:33
>>789
勝手に捏造すんな。誰もインスタンスメソッドとの絡みなんか言及してない。
791789:2006/02/22(水) 02:24:59
>>782
>static は排他されないって俺もよく聞いたな。
>もち迷信だけど、どこで広まったんだろう。

ああ、こっちの話の流れなアンカー不適切でスマソ
792デフォルトの名無しさん:2006/02/22(水) 02:31:21
kokoroeta
793デフォルトの名無しさん:2006/02/22(水) 05:14:48
java初歩的な質問で申し訳ないのですが

for(i=0;i<5;i++){
int x=0;

←ここでxにiをどんどん入れる様な式が知りたいんです

System.out.println(x);
}

表示結果は
1
3
6
10
みたいな感じです
794デフォルトの名無しさん:2006/02/22(水) 05:16:45
int x = 0;
for(int i=0; i<5; i++){
  x += i;
  System.out.println(x);
}
795793:2006/02/22(水) 05:27:17
>>794
サンクス!
796デフォルトの名無しさん:2006/02/22(水) 05:36:11
とてつもなく基本かもしれないが腑に落ちない…javaアプレットでのお話さ。
自作のクラスでマウスアダプタを覆ってみようとして起こったエラー。
public class MiniApp extends Applet{
  mouse m = new mouse();
  public void init(){ addMouseListener(m.mouse()); ...}
  public class Mouse extends MouseControl{
    public MouseControl Mouse(){ return super(this);}
    public void PushedObject(){repaint();}//オーバーライド
  }
}
class MouseControl extends MouseAdapter{
  public void mouseClicked(MouseEvent me){...PushedObject();}
  public void PushedObject(){}
}
なんでsuperが先頭文じゃないというエラーが出るんだ…
returnやthis抜いても出るし、そもそも先頭文の判別基準は何なのだろう?
797デフォルトの名無しさん:2006/02/22(水) 05:43:40
return this; だけで良い。
798796:2006/02/22(水) 05:53:03
デバッグ中ですがクリックに反応したので大丈夫でしょう。
thisだけで良い理由は自分で考えます。ありがとうございました。
799デフォルトの名無しさん:2006/02/22(水) 07:01:38
参照型変数には具体的に何が格納されているのでしょうか?

もしメモリアドレス的なものが格納されてるのでしたら
それをlong型変数(64bitならば)乃至int型変数(32bitならば)にその数値を代入して標準エラーに出力したいのですが
どうすれば実現できるでしょうか
800デフォルトの名無しさん:2006/02/22(水) 07:31:03
>>799
無理。言語規定でも、VM規定でも参照は参照としか扱えない。

VM規定では参照をintとして扱うようなバイトコードを見つけたら
バイトコードベリファイアがエラー吐けって書いてあるし。
801デフォルトの名無しさん:2006/02/22(水) 07:53:45
そうですか・・
if-elseによるinstanceof演算子が美しくないので、
アドレス数値として扱えればより簡略化できると考えたのですが
素直に従来の方法で場合分けしていきます
802デフォルトの名無しさん:2006/02/22(水) 08:11:31
instanceof演算子はそのクラスのインスタンスかどうか判定するもの。
アドレス数値がわかってもそのクラスのインスタンスかどうかわからない。
803デフォルトの名無しさん:2006/02/22(水) 08:21:25
>>799
どうしても知りたければ、
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Object.html#hashCode()
>できるかぎり、Object クラスで定義される hashCode メソッドは、異なるオブジェクトについては異なる整数値を返します。
>通常、これはオブジェクトの内部アドレスを整数値に変換する形で実装されますが、
>そのような実装テクニックは JavaTM プログラミング言語では不要です。

このメソッドは文字列Stringや、Integer, Doubleなどのラッパークラスでオーバーライドされているので注意が必要。
804デフォルトの名無しさん:2006/02/22(水) 09:18:16
>>803
どうせ使うなら、System.identityHashCode()
まあ、結局 int で表現できる数以上のオブジェクトを作ったら、
絶対重複が出てくるだろうけど
805デフォルトの名無しさん:2006/02/22(水) 11:15:06
JAVA初心者です。

ソケットのaccept()で待っているスレッドがあるんですが
それ以外の外のメソッドで、プログラムを終了させたいんですが
accept()で例外が出るようです。

ソケットをclose()してからexit()すればいいと思っているんですが
うまくいきません。
なにかいい方法ありませんか?
806デフォルトの名無しさん:2006/02/22(水) 11:41:02
>>805
例外をcatchする。
807デフォルトの名無しさん:2006/02/22(水) 12:39:03
Graphics2D g= (Graphics2D)newimage.getGraphics();
g.drawImage(image,AffineTransform.newimage.getWidth()/image.getWidth(),newimage.getHeight()/image.getHeight()),null);

で、描画した画像が拡大されてないのですが
どこを修正すればいいのかわかりません。
ちなみに、imageとnewimageは大きさは縦横共に違います。
808807:2006/02/22(水) 12:55:50
newimageの大きさを
縦imageの縦幅*整数、横imageの横幅*整数
としたら拡大されました。
整数の部分を小数にしてintに丸めるとダメな模様。
もっと細かく拡大したいのですが、どうすればよいのでしょうか?
809デフォルトの名無しさん:2006/02/22(水) 13:00:40
g.drawImage(image,
  AffineTransform.getScaleInstance(
    newimage.getWidth()/image.getWidth(),
    newimage.getHeight()/image.getHeight()
  ),
  null);
810デフォルトの名無しさん:2006/02/22(水) 13:03:27
g.drawImage(image,
  AffineTransform.getScaleInstance(
    ((double)newimage.getWidth())/image.getWidth(),
    ((double)newimage.getHeight())/image.getHeight()
  ),
  null);
だった
811デフォルトの名無しさん:2006/02/22(水) 13:40:52
>>810
うまくいきました。ありがとうございます。
812デフォルトの名無しさん:2006/02/22(水) 14:51:59
>>799
どうしてもやりたいなら native メソッドを作ってそこで自作すればいい。
813デフォルトの名無しさん:2006/02/22(水) 14:53:50
public class Soc{
public static void main(String[] args) {
System.out.println("test");
}
}

このソースをコマンドラインからコンパイルさせたんですが
コンパイルは通るものの、以下のようなメッセージが出て、実行できません。

d:\java\java Soc
Exception in thread "main" java.lang.NoClassDefFoundError: Soc

お助け下さい。
814デフォルトの名無しさん:2006/02/22(水) 14:55:10
>>813
>>1を1000回読んで来い
815デフォルトの名無しさん:2006/02/22(水) 15:19:58
>>814
解決しました
816デフォルトの名無しさん:2006/02/22(水) 17:01:07
J tabbed pane のタブの文字をStringTokenizerを使って縦の文字したいのですが
どうしたらいいのでしょうか?
817デフォルトの名無しさん:2006/02/22(水) 17:05:36
StringTokenizer を使っても縦にはなりません。
818デフォルトの名無しさん:2006/02/22(水) 17:13:33
>>817
そうですか・・。
J tabbed pane のタブの文字を縦文字にする方法はないんですかね?
819デフォルトの名無しさん:2006/02/22(水) 17:25:20
<HTML>縦<BR>読<BR>み</HTML>
出来るか知らんがこれでどうだ。
820デフォルトの名無しさん:2006/02/22(水) 17:49:04
>>718
エクスポート、JARで
いけるが
おすすめはFatJAR

ただしこれを使うとテストするたびにJARの生成にものすごく
時間がかかるという諸刃の剣
821デフォルトの名無しさん:2006/02/22(水) 19:04:46
>>820
諸刃どころか一方的に切られる剣のような。
テストのたびに時間かかるって致命的っしょ。
822デフォルトの名無しさん:2006/02/22(水) 19:32:04
とりあえず、javaの入門編が終わってクラスオブジェクトの概要、スレッドの使い方を
覚えたところですが、本屋でGUIプログラミングの本を見つけて買ってきたんですが、
Swingでした。
Awtはすっとばして勉強しても問題ありませんかね?
823デフォルトの名無しさん:2006/02/22(水) 19:33:40
AWTの上でなりたっているものだし、AWTの一部のクラス使うけどな
824822:2006/02/22(水) 19:34:50
質問の仕方がおかしかったかも。

いきなりSwingから入ってる入門書で
勉強してよろしいんですかね?
825デフォルトの名無しさん:2006/02/22(水) 19:41:33
入門書ならそのAWT含めて解説してるだろ
826デフォルトの名無しさん:2006/02/22(水) 19:43:25
入門するならAWTを大切に
827デフォルトの名無しさん:2006/02/22(水) 19:43:39
良いんじゃねーの?変に AWT で逃げる癖付かなくて。
828デフォルトの名無しさん:2006/02/22(水) 19:59:36
>>824
その本が〜2とか言う名前で、実は1でAWT説明しました、というのでなければいいよ。
他の人も言ってる通り、必要なところではAWT使うだけだろうし。
829822:2006/02/22(水) 20:06:43
>>822
>>825-828
ありがとうございます。
特に続編という代物ではないんでこのまま
いってみます。
830デフォルトの名無しさん:2006/02/22(水) 22:25:20
変数の宣言とかで
int[] tmp; と書くのと int tmp[];と書くものを見かけるけど
これって意味としては両方同じなんですか?
831デフォルトの名無しさん:2006/02/22(水) 22:32:29
同じ。ただし後者はCの記法が抜けないロートル用
832デフォルトの名無しさん:2006/02/22(水) 22:39:00
チャットのプログラムを作ろうとしていたんですが
サーバー側を
server = new ServerSocket(10000);
server.accept();
としているところに、自分でクライアントも起動して
socket = new Socket("localhost",10000);
でやると繋がるのですが
友人にグローバルアドレスで試してもらうと繋がらないのですが
これはどうにかなるのでしょうか?
833デフォルトの名無しさん:2006/02/22(水) 22:42:26
>>831
なるほど、C言語ね。自分はC言語から入ったから、意味は分かったのだが
なんかいくつかの参考書を見ると、両方のタイプを見かけたんで
何か大きな違いがあるか気にはなったもので

そのある本には
main(String args[]) と書かれているけど int[] tmp;って書かれていたりするのだが
型によって違うんかなぁとか思っちゃったり
834デフォルトの名無しさん:2006/02/22(水) 22:45:02
元はchar* argをchar arg[]とか書いちゃマイナーCウザで、
ついうっかりC風に書いちゃった、に一票
835デフォルトの名無しさん:2006/02/22(水) 22:47:45
strutsでCSVよりデータを読み込み、DBに登録しようとしています。
CSVファイル5個から1つのDBに登録するので、どこかにCSVのデータを
保存しておきたいのです。
件数は数十万件になるので、メモリはおいておくのは厳しいかなと
思ってるのですが、何かいい方法はありますか?
836デフォルトの名無しさん:2006/02/22(水) 22:57:46
>>832
なる

>>835
ある
837デフォルトの名無しさん:2006/02/22(水) 23:17:01
>>832
ネットワーク環境が分からないからエスパー回答するけど、
NAT or ファイアウォールのどっちかが影響してるんじゃない?
DMZ とか 静的NAT とかでぐぐってみたら。
838デフォルトの名無しさん:2006/02/22(水) 23:44:46
>835
件数がそれだけ多いんだったらオンラインじゃなくてバッチでやったほうが
いいんじゃないかと思ってしまうんだけど。。
839デフォルトの名無しさん:2006/02/22(水) 23:46:24
>>833
SJC-Pではその辺の問題が出るよ。

int[][] a, b[][];

でそれぞれの次元数を聞かれたりとか。
840デフォルトの名無しさん:2006/02/23(木) 00:42:08
sはソケットのとき、
s.getInetAddress().getHostAddress()
は、
ソケットsのメソッドgetInetAddress()のメソッドgetHostAddress()
ってことですか?
こんな書き方ありなんですか?
841デフォルトの名無しさん:2006/02/23(木) 00:52:51
InetAddress addr = s.getInetAddress();
String host = addr.getHostAddress();
 ↓
String host = s.getInetAddress().getHostAddress();
842デフォルトの名無しさん:2006/02/23(木) 01:16:01
booleanのラッパクラスって他のラッパと比べて使い道がいまいちわからないのですが、
一体どのようなときに使うのですか。
843デフォルトの名無しさん:2006/02/23(木) 01:25:26
>>799
よくメモリアドレスをどうのこうのって話が出てくるけど、
JavaではGCがメモリ上でオブジェクトを動かしまくるから
普通に考えればそんなものはとれるはずがないし
とれたとしてもまったく意味がない。
844デフォルトの名無しさん:2006/02/23(木) 01:44:01
>>842
Collectionに突っ込むときや、Object[]な配列に突っ込むとき。
「突っ込むとき」と覚えればよい
845デフォルトの名無しさん:2006/02/23(木) 01:46:13
>>842
答えになっていないけど、使い道を気にするようになったら負けだと思う。
846840:2006/02/23(木) 01:57:52
>>841
なるほど、thankso.
847デフォルトの名無しさん:2006/02/23(木) 02:11:25
>>844
そういえばIntegerとかCollectionに突っ込みますね。
Booleanでやらない理由がなかった。
Object[]に至ってはオートボクシングの恩恵を忘れていました。

>>845
確かに。
精進します。
848デフォルトの名無しさん:2006/02/23(木) 03:13:29
>>842
Boolean.TRUE.toString()で文字列"true"を取るとき。
Boolean.getBooleanValue(String str)で文字列をbooleanに変換するとき。
849デフォルトの名無しさん:2006/02/23(木) 04:39:38
RMIとJNIで質問させてください。
以下のような簡単なRMIクライアントを作成しました。
javaコマンドでmain()を実行するとgetValue()の値が取得できるのですが
VC++アプリからJNIを使用してgetServerValue()を呼ぶと
lookupでUnmarshalExceptionが発生してしまいます。
なぜ同じ関数なのにJNIでVC++アプリから呼ぶとエラーになるのか
原因わかる方いたら教えていただきたいです。

public class HelloRMI {
public static int getServerValue() {
HelloRMI obj = (HelloRMI)Naming.lookup("rmi://localhost:1234/hoge");
return obj.getValue();
}
public static void main(String args[]) {
HelloRMI hrmi = new HelloRMI();
int rtn = hrmi.getServerValue();
}
}
850デフォルトの名無しさん:2006/02/23(木) 04:49:36
多分クラスパス
851デフォルトの名無しさん:2006/02/23(木) 07:20:13
すみません。
編集中のコードが読みやすいから、という理由だけで、
長い文字列を + 演算子で結合して宣言するのは、よくないことですか?
たとえば、

  String str = "ある朝、グレゴール・ザムザがなにか胸騒ぎのする夢からさめると、\nベッドのなかの自分が一匹のばかでかい毒虫に変わってしまってい\nるのに気がついた。"

のような宣言を

   String str = "ある朝、グレゴール・ザムザがなにか胸騒ぎのする夢からさめると、\n +
           ベッドのなかの自分が一匹のばかでかい毒虫に変わってしまってい\n +
           るのに気がついた。\n";
          
みたいにしたらあとで読みやすいかな、と。

あと、Stringの宣言には最大どれくらいの長さの文字列を入れられるんでしょうか。 
相当長い文字列を読み込むときは、String を使わずにこうやれみたいな、定石があるんでしょうか。
852デフォルトの名無しさん:2006/02/23(木) 07:36:07
>>851
String str = "ある朝、グレゴール・ザムザがなにか胸騒ぎのする夢からさめると、\n" +
       "ベッドのなかの自分が一匹のばかでかい毒虫に変わってしまってい\n" +
       "るのに気がついた。\n";
(リテラル閉じようね。)
この場合
String str = "ある朝、グレゴール・ザムザがなにか胸騒ぎのする夢からさめると、\nベッドのなかの自分が一匹のばかでかい毒虫に変わってしまってい\nるのに気がついた。"
と同じようにコンパイルされる。
853デフォルトの名無しさん:2006/02/23(木) 07:37:32
\nそのまま使うの気持悪いな。
854デフォルトの名無しさん:2006/02/23(木) 09:06:56
855デフォルトの名無しさん:2006/02/23(木) 10:02:35
1.5からは+演算子で十分なんだな
でも、まだ1.4使ってるんだよなあ・・・
次のプロジェクトから1.5にしてみるか
856デフォルトの名無しさん:2006/02/23(木) 10:18:09
セッションとタイムアウトに関する質問です。
今、ログイン、ログアウト機構を持ったシステムを作っています。
ログアウトやタイムアウトの際に一定の処理(一時ファイルの削除)を
行いたいと思っています。
HttpSessionBindingListener の valueUnbound を使ってセッションが無効になる
タイミングを得ることができそうなのですがわからない点があります。
session.invalidate();を行った場合はvalUnboundに処理が飛んできてくれて予期した通りでした。
次の自分の予想では、ログインしてそのままほっといてタイムアウト時間経過した時点
でvalUnboundに処理が飛んでくると思ってました。ところがそのような動作はしません。
セッションタイムアウトとvalUnboundの関係を教えてもらえないでしょうか。
857デフォルトの名無しさん:2006/02/23(木) 10:50:55
>>856
セッションタイムアウトはどうやって判別してるの?
858デフォルトの名無しさん:2006/02/23(木) 11:05:22
>>857 画面遷移処理の際に
-------
HttpSession session = request.getSession(false);
if(session==null){
「セッションがタイムアウトしましたログインしなおしてください」画面に飛ばす
return;
}
通常の遷移先の画面に飛ばす。
--------

っていう風にやってます。そもそもこの手法が間違い?
859デフォルトの名無しさん:2006/02/23(木) 12:09:26
>>852 >>854
ありがとうございました。よくわかりました。
860デフォルトの名無しさん:2006/02/23(木) 12:57:22
文字化けついての質問なのですが
JIS補助文字をIE等のブラウザから受け取り
それをcsv形式のファイルに書き出すプログラムを
作成しているのですが、エンコードを
かけても文字化けしてしまします。。

コレについては対処はないのでしょうか


杝と言う字をブラウザから
受け取ると&#26461;
と言う文字列がcsvファイルに出力される。


どなたか分かる方がいらっしゃいましたら
教えてくださいお願いします。。
861デフォルトの名無しさん:2006/02/23(木) 13:02:22
ちゃんとWindows-31Jで受け取って、出力も同じエンコードにしてるか?
862デフォルトの名無しさん:2006/02/23(木) 13:09:26
Java でMIDIファイルを演奏させたいのですが、Java内臓の
デフォルトのデバイスで鳴らすと音が非常におかしくて使い物にならず
外部デバイスで鳴らしたいのですが、

MidiSystem#getMidiDevice で取得したGS音源デバイスから
getReceiver() メソッドで、そのレシーバを取得して
MidiSystem#getSequecerで取得したデフォルトのシーケンサに
getTransmitter().setReceiver()で、その外部デバイスのレシーバを
設定したのですが、
相変わらず元のデフォルトデバイスで演奏されてしまいます。

シーケンスからMidiメッセージを取り出して、自分で外部デバイスに
送る手法はかなり面倒で避けたいので、何とかデフォルトシーケンサで
外部デバイス音源を使いたいのですが、誰かやり方をしってる人がいたら
教えてください。
863デフォルトの名無しさん:2006/02/23(木) 13:16:20
>>861
レスありがとうございます。

JSP側では、Windows-31Jでエンコードをして
値を渡しています。

値を受け取ったJava側でも
下記のコードのようにWindows-31Jでエンコードを
行っています。

new FileOutputStream(FilePass + "Rpf06.csv"),"Windows-31J");


ですが、文字化けをしてしまうようです。

ただHTMLソースでみると
杝と言う字が、&#26461;
と言う風に表示されているのが
ちょっと気になっています。。
864デフォルトの名無しさん:2006/02/23(木) 13:27:40
>>860
その文字、Unicodeにしかないぞ
文字コードを変えるしかないな
865デフォルトの名無しさん:2006/02/23(木) 13:31:05
>>864
UTF-8,UTF16等で
エンコードすれば良いと
言う事でしょうか?
866デフォルトの名無しさん:2006/02/23(木) 13:35:01
>>865
そういうことだな
867デフォルトの名無しさん:2006/02/23(木) 13:36:52
>>866
ありがとうございます。
それでは試してみます。。。
868デフォルトの名無しさん:2006/02/23(木) 20:11:08
よく「currentTimeMillisメソッドで経過時間を取得できる」みたいなことが一般的に
言われていますが、この値ってOSの時間を変更しちゃうと連動して変わってしまいますよね?
Windows APIのGetTickCountのような「システム起動時からの経過時間」に相当
するJavaのメソッドってないのでしょうか?
Javaアプレットで使用したいのでGetTickCountを呼び出すことができなくて困っています。
869デフォルトの名無しさん:2006/02/23(木) 20:41:07
URLエンコードされた任意の文字列から文字コードを取得することは可能でしょうか?
たとえば「ニュース速報」をEUC-JP、UTF-8でエンコードしてみます、

[EUC-JPの場合] %A5%CB%A5%E5%A1%BC%A5%B9%C2%AE%CA%F3
[UTF-8の場合] %E3%83%8B%E3%83%A5%E3%83%BC%E3%82%B9%E9%80%9F%E5%A0%B1

この%A5%C…などといった文字コード不明の任意の与えられた文字列から文字コードを判別したいのです。
良い方法、もしくはヒントをいただけたら幸いです。
870デフォルトの名無しさん:2006/02/23(木) 20:50:02
>>869
文字コード 判別
などでぐぐってから再質問? すでにJavaの領域じゃない気もするが
871デフォルトの名無しさん:2006/02/23(木) 20:56:01
>>870
はい、Googleでいろいろ検索してみましたが解決には至りませんでした。

>すでにJavaの領域じゃない気もするが
やはりそうですよね・・・。お返事ありがとうございました。
872デフォルトの名無しさん:2006/02/23(木) 21:12:03
>>869
最初 utf8 でやってみて駄目なら JISAutoDetect をやってみるとか。
(完璧ではないが、だいたいはできそうな気がする)

String[] encs = {"utf8", "JISAutoDetect"}; // 試してみるエンコード
String u = "(URLエンコードされた文字列)";
String s = null;
for (int i = 0; i < encs.length; i++) {
 try {
  s = URLDecoder.decode(u, "utf8");
  break;
 } catch (UnsupportedEncodingException e) {
 }
}
873デフォルトの名無しさん:2006/02/23(木) 21:12:55
あ、間違えた。
間違えた個所分かるよな? >>872の間違い部分は適当に読みかえてくれ。
874デフォルトの名無しさん:2006/02/23(木) 21:23:39
>>855
どういうことだ?
5.0でも+連結はもちろん重いぞ

かなりの回数ループする中で連結するなら+は使わないほうが
逆にネックになりそうにない場所でStringBuilder使って可読性下げるのもタコ
875デフォルトの名無しさん:2006/02/23(木) 22:04:04
すみません、教えてください!
下記のプログラムを組んだのですが、strとstr2に入っている文字は同じなのに
elseへ抜けてしまいます・・・どうすれば、charAtを使い、同じ文字にすることができますか?


class test1{
public static void main(String args[]){
String str = new String("あいうえおX");
String str2 = new String();
int a=0;
while(true){
str2 = str2+str.charAt(a);
if(str.charAt(a)=='X')break;
a++;
}
if(str==str2){System.out.println("おなじか");
System.out.println(str);
System.out.println(str2);}

else {System.out.println("同じじゃない・・・");
System.out.println(str);
System.out.println(str2);}
}
}
876デフォルトの名無しさん:2006/02/23(木) 22:10:01
>>875
equals
877デフォルトの名無しさん:2006/02/23(木) 22:42:46
>>874
>>855 は、>>854 を受けての一発連結のお話じゃない?
878デフォルトの名無しさん:2006/02/23(木) 22:57:38
それ1.4時代でもコンパイルで連結してくれるだろ

5.0でそれが解決されたわけではなくStringBufferよりスピードが出る可能性のある
StringBuilderが導入されたというだけ
879デフォルトの名無しさん:2006/02/23(木) 22:58:00
>>871
居なさそうだけど、ぐぐれば文字コードの話がいくつか載ってるし
コードの重なり具合を図にしたものもあるというのに
# 根本的解決になってないですね、はい
880デフォルトの名無しさん:2006/02/23(木) 23:00:29
いままで synchronized の付いてる/付いてない程度でプロファイラ上に
表れるようなパフォーマンスの向上は見たことないけどなー
881デフォルトの名無しさん:2006/02/23(木) 23:08:02
2つの画像を同時に違う動きをさせるにはどうしたらいい?bounceを使いた
いんだけど。
882デフォルトの名無しさん:2006/02/23(木) 23:38:36
別々に動かせばいいと思うが。
883デフォルトの名無しさん:2006/02/23(木) 23:40:35
>>871
バイト列に直してからenc&decで元に戻ればおk
884881:2006/02/24(金) 00:10:51
どうやって別々に動かすの?x,yをどうすればいいのかわからない。
885デフォルトの名無しさん:2006/02/24(金) 00:14:05
z,wも使えば?
886デフォルトの名無しさん:2006/02/24(金) 00:15:56
 二つのことを同時にする→非決定性
現在のノイマン型PCには無理
887デフォルトの名無しさん:2006/02/24(金) 00:48:02
>>884
2枚の画像には2つの画像用パラメータが必要。
動作用のパラメーターを一つ用意する。
動作用から、それぞれの画像用パラメータへの変動値を調整しておく。

この状態で、動作用のパラメータをいじくると、それぞれの画像用パラメータが変わって、
擬似的に別々に動いているように見える。
888デフォルトの名無しさん:2006/02/24(金) 02:57:37
>>872
『UTF-8 としてデコードしようとして失敗』は
UnsupportedEncodingException じゃない。
『UTF-8 というエンコーディングをデコード用に使用出来なかった』が
UnsupportedEncodungException だ。
100% 例外が起きないだけで文字は表示しようとする時に化ける可能性が充分あるぞ。
889デフォルトの名無しさん:2006/02/24(金) 03:22:05
Hello World! って表示できるところまでやった
次は何やれば良い?
890デフォルトの名無しさん:2006/02/24(金) 03:25:08
たまにでいいので、実家のお母さんに連絡してあげてください。
891デフォルトの名無しさん:2006/02/24(金) 03:26:13
>>889
package宣言してHello World!か、簡単な計算(値固定)して結果を表示する。
というかお前、入門を全部スレで済まそうというのではあるまいな。
892デフォルトの名無しさん:2006/02/24(金) 03:33:22
>>891
>package宣言してHello World!か、簡単な計算(値固定)して結果を表示する。
ふむ、やってみる。ってかな、一応C言語でshort double とか
char string とか経験あり。関数の定義とかもね。
だからCでは出来ないが Java で出来るものを追求していきたいってところ
893デフォルトの名無しさん:2006/02/24(金) 05:02:23
Cもろくにできてないと思われ
894デフォルトの名無しさん:2006/02/24(金) 05:05:57
Cアレルギーきたこれ
895デフォルトの名無しさん:2006/02/24(金) 05:13:28
>>893
Cったって、コマンドラインで文字を表示するくらいのCUIじゃ
やれることが限られてくるわけよ、そこから脱しようとしているだけで
基本的なアルゴリズムは一通りやったよ
最終的に問われるのは、各々の言語の特質をしっかり理解して
それに応じた効率の良い処理を行うソースの記述だと思うがね
いくら見た目が派手でも、中身がぐちゃぐちゃじゃどうしようもないしね
896デフォルトの名無しさん:2006/02/24(金) 05:18:26
そんだけでいいなら良いけど。
一つでいいから、どんな言語でも良いから
他人に見せられるプログラム作ってみそ。
そこが始まりだから。
897デフォルトの名無しさん:2006/02/24(金) 05:20:21
このスレは多言語コンプレックスな方が多数おられます。
特に C/C++ を引き合いに出すのは馬鹿が荒らしに来るので御法度です。
898伝説新人タクシ:2006/02/24(金) 05:37:35
CUIをバカにしてはいかんな。
GUIのほうが不便になることもある。
やるかどうかは別にして、Cでできないものはないと考えるべき。
UNIX系だとCUI画面だけでなんでもできるしな。
とある処理でWindowsのGUIに悩まされたこともあるな。
899デフォルトの名無しさん:2006/02/24(金) 06:21:55
なんか見た目でこだわっている人がいるが
CUI たって、入力された数値から出力された結果を文字で表しているだけであって
GUIにしたってそれがグラフィカルに表現できるもので表されているものがあって
ソースの中身、アルゴリズムは共通する部分が多いよ
ただ、文字列だけでの表現は、複雑な表現をする場合は不向きだけど
なんなら、4行4列の15パズルをCUIでやれないことはないが
数字を動かすたびに動かした後の結果を新しく画面がスクロールされて
表示されるってのは、ユーザにとっては煩わしさを感じるかなw
900デフォルトの名無しさん:2006/02/24(金) 08:08:47
CUIで関数電卓作った俺が着ましたよ
901デフォルトの名無しさん:2006/02/24(金) 09:08:32
>>874
なるほど。
基本今まで通りで、StringBufferをStringBuilderにすればいいんだな。

902デフォルトの名無しさん:2006/02/24(金) 09:12:19
っ[ オペレータをオーバーライド ]
903881:2006/02/24(金) 09:58:09
参考書に2次元配列とか書いてあったんだけど?
904デフォルトの名無しさん:2006/02/24(金) 09:58:59
>>902
っ [C++とかC#とか間違ってる]

>>903
> 参考書に2次元配列とか書いてあったんだけど?
なにか問題でも?
905デフォルトの名無しさん:2006/02/24(金) 11:17:43
SunJavaの最新ランタイムとGeForceの最新ドライバの組み合わせで、
JavaVM起動時に画面がぐちゃぐちゃになる現象が起きてるんだけど
他に同じことになった人いる?

JavaランタイムをアンインスコしてMS VMにすると問題ない。
でもこれだとSunJavaの動作テストにならいんだよね。
906デフォルトの名無しさん:2006/02/24(金) 13:06:53
>>905
OSとそれぞれのバージョンを書いてくれないと。
うちはWinXP HomeでNVIDIAのドライバ81.98のやつ、Sun J2SE 1.4.2_09/10, 1.5.0_06でいずれもまったく無問題。
Linux環境はNVIDIAのドライバ入れてないので未確認。
他OSはなし。
907デフォルトの名無しさん:2006/02/24(金) 14:06:19
質問です。

int[x][y]
int[y][x]

普通はどっちを使うんですか?
908デフォルトの名無しさん:2006/02/24(金) 14:11:25
int[i][j]
909デフォルトの名無しさん:2006/02/24(金) 14:19:14
二次元キライ!
910デフォルトの名無しさん:2006/02/24(金) 14:19:39
三次元イイ!
911デフォルトの名無しさん:2006/02/24(金) 14:42:42
>>907
どっちでも良いのだけど、CPUのキャッシュのヒット率を考えて、連続
アクセスされる方の軸を右に持っていきます。

for (int y=0;y<Y;y++)
for (int x=0;x<X;x++)
array[y][x] = ...;
or
for (int x=0;x<X;X++)
for (int y=0;y<Y;y++)
array[x][y] = ...;

912デフォルトの名無しさん:2006/02/24(金) 15:42:54
>>906
XP Pro SP1、nVidia81.98、JRE1.5.0_06

JRE1.4.2_**のときでも、VM起動時に画面が数秒間ブラックアウトするっていう現象があって、
それでJRE1.5.0_06を入れてみたら画面が崩れて戻らなくなっちゃったんだよね。
OSそのものはフリーズしてるわけじゃなくて、VNCで繋いで画面のプロパティ更新すると
正常な画面に戻るっていう謎現象・・・。

自作のアプレットはまだそれで回復するけど、studio-radishの速度調査のサイトの
アプレットだと回復もしないでそのままあぼーんするから、コーディングの問題ではなさそうなんだけど。
ttp://netspeed.studio-radish.com/
913デフォルトの名無しさん:2006/02/24(金) 15:47:10
ファイルの削除に関する質問です。
File.delete()を使ってファイルを削除しようとしても
他のアプリケーションが使用してるなどの場合でファイルが削除できない場合があると思うんですが。

こういう場合でも強制的にファイルを削除する方法をはありますか?
914デフォルトの名無しさん:2006/02/24(金) 15:53:46
OS依存
915デフォルトの名無しさん:2006/02/24(金) 15:54:50
OS側の処理じゃんそれって。
方法はあると思うが、Javaからつーのはめちゃくちゃ大変そう。
916デフォルトの名無しさん:2006/02/24(金) 15:56:00
ありゃ、かぶったスマソ
917デフォルトの名無しさん:2006/02/24(金) 16:24:50
コンパイルはできるんですが実行できません

C:\java>java hello
Exception in thread "main" java.lang.NoSuchMethodError: main

CLASSPATHがいけないのかと思い調べてみると
実際には存在しない.zipが設定されてました。
OSはWindowsで1.5.0_06です
918デフォルトの名無しさん:2006/02/24(金) 16:27:07
>>917
報告乙
919デフォルトの名無しさん:2006/02/24(金) 16:33:15
>>918
すいません。
ソースを見直してみたらどうみても(ry
920917:2006/02/24(金) 16:33:45
解決しました
921デフォルトの名無しさん:2006/02/24(金) 17:22:16
>>920
どうおかしいのかは想像つくが、どう解決したかは書け。
オマエのレベルの初心者が見るかも知れないからだ。
結果を書かなければそういうやつがまた同じ質問をしてきて
無駄な書き込みが増える。
922デフォルトの名無しさん:2006/02/24(金) 17:33:00
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
つまり、ここをちゃんと目を通しながらやっていけってことですね
923デフォルトの名無しさん:2006/02/24(金) 17:35:39
そんな奴は過去スレなんか読まねェよ。
924デフォルトの名無しさん:2006/02/24(金) 17:37:08
つまり、うんこは寝て食えってことだな
925デフォルトの名無しさん:2006/02/24(金) 18:22:44
基本的なスカトロのスタイルですね
926875:2006/02/24(金) 19:16:22
swingでTextAreaをいじっているものですが、教えてください!

テキストに入力する、フォントの大きさを変えたいのですが
どうすればできますか?
927デフォルトの名無しさん:2006/02/24(金) 19:19:08
textarea.setFont(new Font("Dialog", Font.PLAIN, 72));
928デフォルトの名無しさん:2006/02/24(金) 20:56:38
>927
ちょwwwやたらデカスwwwwww

>926
しかしSwingはJTextAreaだぞ。細かい話だけど。
929デフォルトの名無しさん:2006/02/24(金) 21:33:24
JPanelを継承したクラスのインスタンスを
writeObjectでファイルに書き込んで、
readObjectで読み込んでJFrameだとかにペタッと貼り付けたりしたら
普通に表示はされるんだが
クリックしたときの処理だとかが利かない。
クリックしたときの処理はJPanelを継承したクラスに書かれてる。

なんかこの症状の心当たりありませんか。
930デフォルトの名無しさん:2006/02/24(金) 21:39:52
Beans だとリスナー関係はシリアライズの対象でなかったはず。
931デフォルトの名無しさん:2006/02/24(金) 21:43:30
>>930
オオ! サンクス!

でもスクロールバーは動くのよね。
ワケワカメw
932デフォルトの名無しさん:2006/02/24(金) 22:54:40
>>931
それイベントで動かしてないだろ
933デフォルトの名無しさん:2006/02/24(金) 23:17:05
>>929
クリックした時の動作をどのように記述したかによる

無名クラスはシリアライズされませんよ?
934933:2006/02/24(金) 23:27:37
補足。イベント用のクラスを作成すれば、きちんとシリアライズに組み込まれます。
935デフォルトの名無しさん:2006/02/24(金) 23:28:08
同じクラスのインスタンス同士だと、お互いのprivateのフィールドを
触りあえるよな?

これって、よく本に書いてあるカプセル化とか情報隠蔽ってヤツを
実現してないだろ?

privateのフィールドは、インスタンス自分自身のみが触れるのが、
正解でないかい?
936デフォルトの名無しさん:2006/02/24(金) 23:32:35
>>935
一行目は正解。
二行目以降は設計の問題。

自分で作るクラスに責任を持てば、問題ない話。
937デフォルトの名無しさん:2006/02/24(金) 23:33:12
>>935
クラス自身のインスタンスならどういう動きになってるか分かるから
さほど問題ない、ということなんだろうね

場合によっては手間も減るし
938デフォルトの名無しさん:2006/02/24(金) 23:51:37
触れないと困る事ってのはたまにあるよね。

clone のオーバーライドでフィールドいじる必要がある時とか、
compareTo を実装するときに相手のprivateフィールドが必要なときとか。

いずれにしても

> 自分で作るクラスに責任を持てば、問題ない話。

だし。
939デフォルトの名無しさん:2006/02/25(土) 01:15:12
シューティングゲームで 自機に あたりを加えるには どうしたらいいのでしょうか、 あたったら ボカーンみたいな ( ;´・ω・`)人(´・ω・`; )
940デフォルトの名無しさん:2006/02/25(土) 01:18:25
まず中学高校レベルの代数幾何をマスターしよう。
941デフォルトの名無しさん:2006/02/25(土) 01:19:01
というか JAVA初めて パズルをつりおわった程度なので
できたら Canvasとかを取り扱ってる 勉強サイトとかあったら 是非おしえてください
お願いしますw
942デフォルトの名無しさん:2006/02/25(土) 01:21:26
>>939
自機の位置とは別に、自機アタリ座標(上下左右)を用意。
アタリになる対象の物体がこの座標内に入れば、どかーん。

毎回の描画直前にアタリ判定すればヨロシ
943デフォルトの名無しさん:2006/02/25(土) 01:23:58
 NegocioClassで中身をコントロールして画面上に反映させれば いいんですね。
944デフォルトの名無しさん:2006/02/25(土) 01:27:38
>>943
何言ってるか分からないけど、いいと思う
945デフォルトの名無しさん:2006/02/25(土) 01:29:40
エスパー光臨
946デフォルトの名無しさん:2006/02/25(土) 01:30:54
>>945
いや、出来なくても、自分困らないし
出来たら、もうけものじゃん
947デフォルトの名無しさん:2006/02/25(土) 01:39:40
Shapeであたり判定取ればいいじゃん
948デフォルトの名無しさん:2006/02/25(土) 03:23:07
BufferedReader#readLine()
で読み込んだ最後の行が、
ファイル上では改行で終わっているかどうかを判断する方法を教えてください。

A(ファイルの終わり)

A(改行)(ファイルの終わり)

を区別する方法です。
949デフォルトの名無しさん:2006/02/25(土) 03:27:30
次の readLine() が null を返すかどうかで判定するしかない。
「ファイル内の空行は無視する」 という仕様でロジック組むのが無難。
950デフォルトの名無しさん:2006/02/25(土) 03:38:38
>>948
ファイルの一番最後のバイトを取ってきて、
readLine で取得した文字列の一番最後と比較。

seek(ファイルの長さ - 1);
read()
951デフォルトの名無しさん:2006/02/25(土) 03:59:03
>>949
> 次の readLine() が null を返すかどうかで判定するしかない。
それでは判定できません。
952デフォルトの名無しさん:2006/02/25(土) 04:02:21
ああ、そういえばそうだな。
StreamTokenizer でも使えば? (まだあったっけ?)
953デフォルトの名無しさん:2006/02/25(土) 04:08:56
テトリスを作りたい、何をしたら良い?
954デフォルトの名無しさん:2006/02/25(土) 04:11:08
最初の給料で両親にプレゼント
955デフォルトの名無しさん:2006/02/25(土) 04:12:04
>>948
そんな怪しげな仕様にするぐらいなら、readLine() 使わずに
新しいクラス作ったら?
956デフォルトの名無しさん:2006/02/25(土) 05:08:47
ちょっとだけ簡単な質問させて
C++の方が一段落したんで次にJavaの勉強始めようと思うんだけど
JavaとC++ってコードの記述とかあんまり変わらないよね?
957デフォルトの名無しさん:2006/02/25(土) 05:10:58
君の「あんまり」は私の「あんまり」と同じではありません。

最近 C/C++ 絡めた質問が多いけど Borland からの難民か?
958デフォルトの名無しさん:2006/02/25(土) 05:25:47
そうは言われても俺の言う「あんまり」の定義を具体的に言葉で表そうとすると難しいんだよ
ある程度C系に慣れたBorland製コンパイラ使いならまずVisualExpress無料版の方に走ると思う
959デフォルトの名無しさん:2006/02/25(土) 05:32:37
>>957
そんな言い方するなんて、あんまりだ!
960デフォルトの名無しさん:2006/02/25(土) 05:33:13
だんまり決め込むぞ。
961デフォルトの名無しさん:2006/02/25(土) 05:33:43
それじゃ似てるところが多いが違いもある、としか言えんがな。
構文よりも C/C++ で神経尖らせてたところが適当で良いのに最初は激しく
違和感・不安感を覚えるかもしれない。特にヒープ・スタック・参照(ポインタ)の
扱いあたり。
962デフォルトの名無しさん:2006/02/25(土) 05:37:05
>>958
大事にCを勉強してきた人は、基本からJavaの勉強をすれば、
全く心配ないと思います。

概念を表す用語も使い方が違うかも知れませんし、
基になってる思想も違うところがあると思いますので、
手を抜いてもいいところは無いと思います。

理解しやすいとは思いますので、安心して勉強してください。
963デフォルトの名無しさん:2006/02/25(土) 05:40:13
>>961
ありがと、十分分かった
メモリ関係の扱い方が一番大きな違いか
開放し忘れの多い自分にとってはうれしい限り
>>962
そう言ってもらえると安心
今度書店に行って入門書でも買って来る
964デフォルトの名無しさん:2006/02/25(土) 05:56:41
ttp://sv.messe-sanoh.co.jp/paso/top.htm
とりあえずここを参照してみ
965964:2006/02/25(土) 05:59:51
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
うわぁ、俺ナニ間違ったURLはりつけてんねん OTL
966デフォルトの名無しさん:2006/02/25(土) 06:06:30
>>965
正直なんてレス付けるか迷ったwww
結構量があるなぁ。今の段階では見ただけで吐き気が・・
困ったときに見れるようにブックマークしとく、ありがとう
967964:2006/02/25(土) 06:08:52
おう、Java でエロゲ作ってくれYO!
968デフォルトの名無しさん:2006/02/25(土) 06:09:01
969デフォルトの名無しさん:2006/02/25(土) 07:41:32
>>964
PCソフト館なのにエロゲばっかり(・∀・)
970デフォルトの名無しさん:2006/02/25(土) 10:16:33
>980は次スレよろしく。

>964(・∀・)ニヤニヤ
971デフォルトの名無しさん:2006/02/25(土) 15:46:14
ムッハー
972964:2006/02/25(土) 21:39:54
ぽまいら、ニヤニヤすんなー、デジタルの世界の発展には
何かとエロは付きもんだぞ!
973デフォルトの名無しさん:2006/02/25(土) 22:08:57
質問なんですけど、なんでIF文だけセミコロンをつけなくていいんですか?
さっき、エラーの原因がわからなくて時間を無駄にしました。
974デフォルトの名無しさん:2006/02/25(土) 22:11:51
if for はそれで終わりじゃないしね
中には中括弧で条件や繰り返しするコードを記述するわけだし
975きちがい:2006/02/25(土) 22:16:25
if文は条件分岐の予約語だからコンパイルするとき
計算する文だと認識されないんではないでしょうか
良く分かりませんが
976デフォルトの名無しさん:2006/02/25(土) 22:46:33
中括弧は1段スタック積む
977973:2006/02/25(土) 22:49:20
forもせみころんいらないんですね。汗
道理でreturn null; が通らないわけだ。

public MenuItem[] getItem(int menu){
if(menu==0){
MenuItem[] item=new MenuItem[FILEMENU];
for(int i=0;i<FILEMENU;i++){
item[i]=mi[menu][i];
}
return item;
}else if(menu==1){
MenuItem[] item=new MenuItem[EDITMENU];
for(int i=0;i<EDITMENU;i++){
item[i]=mi[menu][i];
}
return item;
}else{
return null;
}
}

さっきまでELSEのところに空の配列を作って、無理やり?コンパイルしてました。
978デフォルトの名無しさん:2006/02/25(土) 22:50:08
>>973
それは、間違い探しです。
言語規定で決められていることは、白なモノは黒だと思っても白なのです。

if文という言葉は、ある範囲を示す言葉なので、見当違いなのかもしれませんが、
条件文は、一般的な文とは違いますので、今後とも注意してください。
979デフォルトの名無しさん:2006/02/25(土) 22:53:09
>>977
配列の戻り値にnullを入れるのは感心しませんね。
980デフォルトの名無しさん:2006/02/25(土) 23:01:10
while とかは・・・付くよね?
981デフォルトの名無しさん:2006/02/25(土) 23:05:08
J2SE も J2EE も配列戻りで null 返す仕様のはよくあるけどな。
982デフォルトの名無しさん:2006/02/25(土) 23:10:13
>>979
普通にありえるぞ
983デフォルトの名無しさん:2006/02/25(土) 23:10:34
>>981
設計ミス
984983:2006/02/25(土) 23:13:47
すまん取り消す
985デフォルトの名無しさん:2006/02/25(土) 23:15:29
>>980 よろ〜
以降自粛で。
986980:2006/02/25(土) 23:18:40
いや、俺のホストからじゃ無理ぽ、誰か頼むね
俺はここの住人じゃないし、立たなくてもどーでも良い感覚だし
無責任ですんません
987デフォルトの名無しさん:2006/02/25(土) 23:23:20
Nullではなく、長さ0 の配列を返すってのが定石なんでないの?
988デフォルトの名無しさん:2006/02/25(土) 23:28:35
おれもそういう局面では長さ 0 配列を返す派だが勝手に一般論化するな。
仕様が明確ならどっちでも良い。
989デフォルトの名無しさん:2006/02/25(土) 23:31:45
その前にnew以外の重複したコードをまとめてくれ
990デフォルトの名無しさん:2006/02/25(土) 23:35:58
しゃぁない。つくてきま
991デフォルトの名無しさん:2006/02/25(土) 23:36:44
勝手に一般論化、というが、
Effective Java に載ってるくらい自明な原則を一般論化するなと言われても…。

ありうるかありえないか、という話じゃなく、
むしろnullを返したほうがいい状況が、一般的でないって話だろ。

仕様が明確ならどっちでも良い、などと自分仕様を押し付けてくるなっつーの。
992デフォルトの名無しさん:2006/02/25(土) 23:39:21
次〜

【初心者】Java質問・相談スレッド82【大歓迎】
http://pc8.2ch.net/test/read.cgi/tech/1140878286/
993デフォルトの名無しさん:2006/02/25(土) 23:40:27
そんな小手先ネタどっちでもいいよ
994デフォルトの名無しさん:2006/02/25(土) 23:43:48
うちのプロジェクトではListや配列が戻り値でもnullを返してるよ。
最初は俺も空配列を返してたんだけど、
俺一人が悪いことしてるみたいなので悲しくてやめた。
995デフォルトの名無しさん:2006/02/25(土) 23:53:11
いろんな人の設計と調整してりゃ、そんな Ineffective なトリビア「フーンアッソ」で終わるんだけどな。
机上のお勉強だけじゃなく実世界へ飛び込んでみような。
996デフォルトの名無しさん:2006/02/25(土) 23:58:01
と火事場で必死な下流PGが言っております
997デフォルトの名無しさん:2006/02/25(土) 23:59:04
(・∀・)ニヤニヤ
998デフォルトの名無しさん:2006/02/26(日) 00:02:54
nullを返すとかは普通にあるな
空の要素とは区別したいときはある
999デフォルトの名無しさん:2006/02/26(日) 00:05:10
999
1000デフォルトの名無しさん:2006/02/26(日) 00:05:19
教典主義者には通じなかったか orz
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。