5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2008/09/03(水) 05:54:45
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。

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

前スレッド
 【初心者】Java質問・相談スレッド118【歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1218360111/
次スレは>>990あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

2 :デフォルトの名無しさん:2008/09/03(水) 05:56:04
**** 関連スレッド案内 ****
■ AWT と Swing は --
Java低速GUI Swing 7
ttp://pc11.2ch.net/test/read.cgi/tech/1204155623/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50

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

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

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

**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja/

3 :デフォルトの名無しさん:2008/09/03(水) 06:27:30


4 :デフォルトの名無しさん:2008/09/03(水) 09:00:19
前スレのきちがいへ
castはジェネリックで使うから意味があるわけで
ジェネリックが使えなければ意味がない。
動的と言ってる部分はあくまでジェネリック部分なのだから。
だからジェネリックのないところで同じようなことはできない。
だからみんな出来ないと答えてる。

まあキャストした後でどう使うのかをコードで示せれば、
それに応じた解決策はでるかも知れない。
といっても使い方が、言語自体拡張したりテンプレート的なもので使うとかでないと
java言語の範疇では無理だと思うけどね。


5 :デフォルトの名無しさん:2008/09/03(水) 09:09:38
Javaは動的に見えて、あくまで静的な言語ですな。結局void *でしかないですけど・・・

6 :デフォルトの名無しさん:2008/09/03(水) 10:20:35
前スレの988ですが質問の仕方が悪かったようなので再度お願いします
型の変換について質問なのですが
String型をint型として扱いたい場合Integer.parseInt(String)を使いますよね?
しかしこのStringは数字の文字列でなくてはいけないようで
数字以外の文字列が含まれている場合エラーが出ます(最初lengthでも返ってくるかな?と思ったのですが)
double型をint型として扱いたい場合Integer.parseInt()ではなく(int)doubleでキャストをしますよね?
同じ型変換のようですが両者には違いがあるようで
Stringの場合はintにキャストできないしdoubleの場合はInteger.parseInt()を使うことはできません
私はパースするという行為とキャストするという行為が型変換をするための行為だと思ってるのですが
これは間違った認識でしょうか?
もし両者とも型変換を行うものであるならば内部的にどのような違いがおきているのでしょうか?

自分で何か変な勘違いをしてるのかと思っているのですがよろしくお願いします

7 :デフォルトの名無しさん:2008/09/03(水) 10:57:21
>>6
> 私はパースするという行為とキャストするという行為が型変換をするための行為だと思ってるのですが
> これは間違った認識でしょうか?

キャストは型変換だけど、パース(parseInt)なんかは、
型変換だとは考えないほうがいいと思うので、
間違った認識でしょうね。

8 :6:2008/09/03(水) 11:24:10
>>7
どうもレスありがとうございます
キャストは型変換ときいてひとまず安心しました
パースは文字通りに考えると構文解析なのでしょうが
それが何を意味してるのかが正直わかりません
その辺も含めてもっといろいろ調べてきたいと思います

9 :デフォルトの名無しさん:2008/09/03(水) 12:00:26
型がない言語から勉強をはじめるとそういう解釈にもなるんでしょう。

10 :デフォルトの名無しさん:2008/09/03(水) 12:40:52
>>8
内部的(なイメージ)からだとキャストを型変換というのも微妙な気がするが。
変換というと元のものが別のものに変わるような気がしてする。

ある果物(メモリ上のオブジェクトイメージ)に「リンゴ」というラベル(変数a)が
付いていて、それにもう一つ「ふじ」というラベル(変数b)を付けるのがキャスト。
どっちも同じものを示しているし、オブジェクトイメージは変化しない。
この手法(?)は(変数が実質ラベルである)オブジェクトにしか出来ないので、
プリミティブが関係する場合はキャストのように見えるのは全てパースで、
つまり元から別のものを作り出している。

…ヘタだな、すまん。

11 :デフォルトの名無しさん:2008/09/03(水) 12:59:02
1. 型変換のキャスト
double d = 3.14;
int i = (int)d;

2. >>10が書いているような型の解釈を替えるためのキャスト
リンゴ ap = ...;
ふじ fj = (ふじ)ap;

たぶんこの2種類があって、1の方は組み込み型でしか使えない。ので、
組み込み型ではないクラスで型変換のようなことがしたかったら
parseInt()のようなキャストではない実装が必要になるんでしょう。




12 :デフォルトの名無しさん:2008/09/03(水) 13:48:29
そういう面倒臭いのはPerlとかでやっとけ

13 :デフォルトの名無しさん:2008/09/03(水) 22:16:51
>>9
暗黙の型変換やってるだけで全部バリアントっていう言語は実際少ないでしょ。

14 :デフォルトの名無しさん:2008/09/03(水) 22:35:26
>>4
ジェネリック無くても、オーバーライド関係でキャストは必要じゃね?

15 :デフォルトの名無しさん:2008/09/03(水) 22:56:50
castってのはClass#castの話だろう


16 :デフォルトの名無しさん:2008/09/03(水) 23:31:05
JSplitPaneやJScrollPaneを生成してから、
そのサイズを使って処理を行いたいんですけど、
生成時はサイズが 0 のままで、
repaint() が呼び出されないとサイズに有効な値が入りません。

pack() とか revalidate() とか適当に呼び出してるんですけど、
足りないんでしょうか?

(そもそも pack とか validate の使い方がよくわかってませんが。。)

17 :デフォルトの名無しさん:2008/09/04(木) 00:28:25
そういうもんだから仕方ない

18 :デフォルトの名無しさん:2008/09/04(木) 00:30:20
setVisible(true)しないと計算されないんだっけか?

そのサイズを使った処理ってのは何?

19 :デフォルトの名無しさん:2008/09/04(木) 00:53:42
>>16
サイズで私の場合は、中に入れ込むコンポーネントの
setPreferredSize を使うと大体解決します。

とりあえず、api ドキュメントを読みましょう。
Swing の場合は "How to Use XXX" も読みましょう。

20 :デフォルトの名無しさん:2008/09/04(木) 01:22:22
>>16
ComponentListener

21 :デフォルトの名無しさん:2008/09/04(木) 01:45:58
JToolBarってデフォルトのままgetBackgroundを使うとrgb238,238,238が入ってる
みたいなのですが、ツールバーに加えるコンポネントの背景色に
setBackground(jtoolbar.getBackground())とか
setBackground(new Color(238,238,238))とかやってもツールバーに対して白っぽくなります。
で、toolbarの方にsetBackground(new Color(238,238,238))ってやると色が揃ったので、
どうやらJToolBarのデフォルトの色がおかしいみたいだったのですが
getBackgroundで返ってくるのじゃないこのデフォルトの色は何なんでしょうか?

22 :デフォルトの名無しさん:2008/09/04(木) 04:36:00
>>21
どの JToolBar か分かんないが、1.6.0_07 のデフォルトのなんとかいうテーマのは、
グラデーションが掛かっているように見える。
JToolBar のレンダラ(?)が書いてるんだと思うが、Color はグラデなんか表現できないから、
一番明るい色かなにかを返してるとかじゃないか。
もし「ならば上に載せるコンポーネントの背景色をどうすればいいのか」という話なら、
透明にすればいいんだ。

23 :デフォルトの名無しさん:2008/09/04(木) 05:20:28
>>22
ありがとうございます!
よく見ると確かにグラデーションなんですねこれ。
背景色透過ってどうするんだろうと調べたらそのものsetContentAreaFilledがあるんですね。
これfalseにすると透過になる代わりにマウスに対するフォーカスもなくなるみたいなので
マウスのリスナで切り替えるようにしたら上手く出来ました、情報感謝です!

24 :デフォルトの名無しさん:2008/09/04(木) 09:42:47
調べてみましたが、確信が持てなかったので教えて下さい。
J2MEでTomcatって動作できませんよね?

25 :デフォルトの名無しさん:2008/09/04(木) 10:03:20
自己解決しました。動作出来ないっぽいです。

26 :デフォルトの名無しさん:2008/09/04(木) 12:58:56
>>23
JComponent#setOpaque

27 :デフォルトの名無しさん:2008/09/04(木) 13:32:17
オパキュー

28 :デフォルトの名無しさん:2008/09/04(木) 14:51:07
Thread thread = new Thread (){
  public void run(){
    while (true) {
      sleep(100);
    }
  }
};
thread.start();
thread = null;

こういうふうに、どこからも参照されなくなったスレッドは、
いつかGCに消されて処理が止まるんでしょうか?
それともずっと動き続けるんでしょうか?

29 :デフォルトの名無しさん:2008/09/04(木) 15:01:15
動き続ける

30 :デフォルトの名無しさん:2008/09/04(木) 15:10:16
>>28
ずっと動き続けます。
どこからも参照されない状態にはなっていません。

Thread.start() に、以下の行があります。
> group.add(this);


31 :デフォルトの名無しさん:2008/09/04(木) 18:32:15
何でスレッドを安全に停止するスレッドってなくなっちゃったんですか?

32 :デフォルトの名無しさん:2008/09/04(木) 18:52:14
>>31
なんだそれ

33 :デフォルトの名無しさん:2008/09/04(木) 19:01:16
Thread.stop() が deprecated な事を言ってるんじゃ。
とりあえずAPIリファレンスみれば

34 :デフォルトの名無しさん:2008/09/04(木) 19:42:45
安全に停止する方法がなくなったんじゃなくて、
元々安全じゃないから使うなになったんだろ


35 :デフォルトの名無しさん:2008/09/04(木) 19:56:54
代替コードがjavadocに書いてあるだろ。

36 :デフォルトの名無しさん:2008/09/04(木) 21:10:13
ロックオブジェクトはstaticで作るべきですか?


37 :デフォルトの名無しさん:2008/09/04(木) 21:13:49
>>36
何が理由でロックしたいのかによる。

38 :36:2008/09/04(木) 21:34:17
すいません。
質問を変えます。

どういう場合にstaticで作るべきでしょうか?





39 :デフォルトの名無しさん:2008/09/04(木) 22:10:52
意味が分からん。
ロックしたい粒度、スコープをあらわすのにstaticオブジェクトがふさわしい場合


40 :デフォルトの名無しさん:2008/09/04(木) 22:24:00
下記のようにmethodAとmethodBが同じクラス内にあったとき
methodA呼び出し中にmethodBを呼び出し、再度methodAを呼ぶと
デッドロックは起こりますか?

class A{

private Object lock = new Object();

void methodA(String str){

synchronized(lock){

try(){
    while(true){
Thread.sleep(1000);
System.out.println(str);
}
}catch(Exception e){
e.printStackTrace();
}

}

}

void methodB(){

lock = new Object();

}

}

41 :デフォルトの名無しさん:2008/09/04(木) 22:35:44
あ、デッドロックじゃなくて、単なる処理待ちでした
要するに、ロックオブジェクトに別のインスタンスを代入すると、
同期中の処理は同期されなくなるんでしょうか?

42 :デフォルトの名無しさん:2008/09/04(木) 22:45:25
>>41
同期っつーか、排他制御されると思う根拠は何?

43 :デフォルトの名無しさん:2008/09/04(木) 22:46:34
いえ、予想としては排他制御されなくなると思ってるんですが
違うのですか?

44 :デフォルトの名無しさん:2008/09/04(木) 23:18:39
>>40
ソースで説明できるのに、試していないのでしょうか。

それはさておき....
ttp://www.y-adagio.com/public/standards/tr_javalang2/statements.doc.html#255769
ロックに使われているオブジェクト自体は、他のスレッドからアクセス可能。
ロックを獲得しているスレッドが、同じロックを獲得することは妨げられない。
等など。

45 :デフォルトの名無しさん:2008/09/05(金) 02:43:43
あたまわる!

46 :デフォルトの名無しさん:2008/09/05(金) 02:51:49
何が回ってるって?

47 :デフォルトの名無しさん:2008/09/05(金) 07:40:11
×あた回る
〇あ賜る

48 :デフォルトの名無しさん:2008/09/05(金) 10:39:35
ファイルを読み込み、修正し、書き込みなんですが、
1つが600MBとか1Gとかのファイルなので、全部をメモリで読み込めず、
また、作業ファイルも作れないのですが、直接修正個所を当該ファイルに書き戻したいです。

read(byte[])して、write(byte[])は無理なので、どうすればいいのでしょうか。


49 :デフォルトの名無しさん:2008/09/05(金) 10:42:40
>>34
実はそう言われると思っていたんですがその方が分かりやすいと
思ったのでああ書きました。

結局停止するメソッドはないんですね。
本家サイトに書かれている方法も分かるんですが、あれだと
ぐるぐる回ってる処理でしか停止できないので気持ち悪いですね。
一つのシーケンスを途中で切る事ができないって言うか。

シーケンスの中に止まるかどうかを判定するコードを何個も
仕掛けておかないとダメって事ですか?

てか >>31 はメソッドとスレッドを間違えてますね。

50 :デフォルトの名無しさん:2008/09/05(金) 10:59:54
>>48
修正内容による。
ファイル先頭で読み込んだ内容がファイル終端に書き込むべき内容に影響するとかだと面倒だし。

全てのデータの影響範囲が局所的なら、
RandomAccessFile とか FileChannel とかで read()、内容を修正、write() でOK。
場合によってはバッファリング必要になるけど。

51 :デフォルトの名無しさん:2008/09/05(金) 11:10:06
regexなどつかって修正するので、ファイルの結果のサイズが可変なんですが、どうしましょう?
マッチ個所を'\0'で埋めるわけにもいかず、とくにマッチを切り取りすると間違いなく可変です。

アルゴリズムはすぐ浮かぶんで作れるんですが、
開いたファイルを修正してそのまま上書きするようなライブラリとかないでしょうか?

52 :デフォルトの名無しさん:2008/09/05(金) 14:03:48
>>49
だからjavadoc読んでこい

53 :デフォルトの名無しさん:2008/09/05(金) 16:18:21
ImageBufferから画素のいろをα,R,B,Gの値で取得したいんですがどうすればいいでしょうか
ピクセルという単位についても教えていただけたらと思います

54 :デフォルトの名無しさん:2008/09/05(金) 16:21:15
BufferedImageじゃないの?
BufferedImage#getRGB(int x,int y) - int

55 :デフォルトの名無しさん:2008/09/05(金) 19:59:46
getImageメソッドで1つ上のディレクトリに置いてある画像を読み込むにはどうしたら良いんですか?

img = getImage(getCodeBase(),"../画像.gif");

と書いて実行しても画像が表示されません。下のディレクトリにある画像の指定は出来るんですが。

56 :デフォルトの名無しさん:2008/09/05(金) 21:30:01
>>55
Javadoc見ろよボケ

57 :デフォルトの名無しさん:2008/09/05(金) 21:37:38
while(true){
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String str=br.readLine();
System.out.println(str);
br.close();
}

これを動かすと一回入力しただけで終了になってしまいます。
何か分からないのですが、br.close()を削除すると何回もちゃんとループ出来ます。
なんでこれって一回で終わっちゃうのでしょうか?

58 :デフォルトの名無しさん:2008/09/05(金) 21:41:13
>>57
なんでって馬鹿なコーディングしてるから落ちるんだろ
絶対落としたくないなら例外処理ぐらいしろボケ

59 :デフォルトの名無しさん:2008/09/05(金) 21:43:35
例外処理はこの外でしてるんですよ。
どこが馬鹿なのかを聞きたいわけでして。

60 :デフォルトの名無しさん:2008/09/05(金) 21:44:27
>>57
br.close(); で連鎖的にSystem.inもクローズされる。

61 :デフォルトの名無しさん:2008/09/05(金) 21:45:11
>>59
ループの中で例外処理しなきゃ意味ねーだろボケ

62 :デフォルトの名無しさん:2008/09/05(金) 21:47:17
>>57
BufferedReader.close()
> ストリームを閉じます。

とありますが、この意味が分からない、と。
何処から説明した方が良いのでしょうね。

63 :デフォルトの名無しさん:2008/09/05(金) 21:48:07
>>59
BufferedReader 閉じたら
その元になってる InputStreamReader
その元になってる System.in も連鎖的に閉じちゃうからね。

閉じた System.in から read() しようとすると IOException 食らうんだっけか?

64 :デフォルトの名無しさん:2008/09/05(金) 21:50:08
頭悪すぎ

65 :57:2008/09/05(金) 21:58:51
なるほど、ありがとうございます。
System.inは常に開かれてるのかと思ってました。
たしかに標準入力じゃなくて他のストリームから毎回開いて読み込むようにすると大丈夫みたいでした。
ちなみに標準入力のストリームって一回閉じちゃうと自分で開くことって出来ないんでしょうか?

66 :デフォルトの名無しさん:2008/09/05(金) 22:06:16
無理。

67 :デフォルトの名無しさん:2008/09/05(金) 22:34:40
>>66
そうですか、どうもありがとうございます。

68 :デフォルトの名無しさん:2008/09/05(金) 23:22:50
いや、できる

69 :デフォルトの名無しさん:2008/09/05(金) 23:23:40
>>63
実装上EOFExceptionだったりする事もある

70 :デフォルトの名無しさん:2008/09/05(金) 23:31:41
何?このスレ
System.inを再度開くこともできない無能回答者しかいないの?
ププw

71 :デフォルトの名無しさん:2008/09/05(金) 23:43:33
>>68
やり方ぷりーず

72 :デフォルトの名無しさん:2008/09/05(金) 23:47:38
ググレカス

73 :デフォルトの名無しさん:2008/09/05(金) 23:49:52
>>71
釣られるなって

74 :デフォルトの名無しさん:2008/09/05(金) 23:58:57
環境変数のJAVA_HOMEを設定していないユーザ環境において、
JDKまたはJREのインストールディレクトリのパスを取得するには
自前でパス検索するしかないのでしょうか?
それともJavaのインストールパスを取得する簡単な方法はありますか?

75 :デフォルトの名無しさん:2008/09/06(土) 00:09:47
>>74
WindowsでSunのJDK/JREをインストーラ経由で入れてるなら
レジストリ見るとかあるけど、確実でもないし簡単ともいえない

76 :デフォルトの名無しさん:2008/09/06(土) 00:18:29
>>64
成長しましたね。

77 :デフォルトの名無しさん:2008/09/06(土) 00:19:40
>>75
レスありがとうございます。書き忘れましたが、Windows環境での話です。
何故このような疑問を持ったかというと、
JNIでC言語からJavaを呼び出すプログラムを実行する際に、
JDK/JREのインストールディレクトリ下にあるjvm.dllを
読み込む必要があるためです。

通常であればJAVA_HOME、PATH、レジストリあたりを見るべきなんでしょうか。
複数のJDK/JREがインストールされていた場合はどうするべきでしょうか?

78 :デフォルトの名無しさん:2008/09/06(土) 00:26:35
>>77
複数インストールされてる場合は、
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Development Kit\CurrentVersion
あたりを見るとか、JDK/JRE関連レジストリ全部読み込んで一番バージョンが大きいやつ使うとか。

79 :デフォルトの名無しさん:2008/09/06(土) 00:34:33
>>78
アプリケーションによって何を使うかは異なるわけですね。
何かサンプルになるものを探してたのですが、
意外と見つからないです。
もう少し考えてみます。

80 :デフォルトの名無しさん:2008/09/06(土) 01:01:11
java使わないおれがあてかんで回答してやると
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\CurrentVersion
HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Runtime Environment\[バージョン]\RuntimeLib
が正解だろ


81 :デフォルトの名無しさん:2008/09/06(土) 01:06:51
質問というより相談で申し訳ないのですが、
JAVAでチャットのサーバーサイドを作る場合、大きく分けて2種類あると思います。
1クライアントに1スレッドを作るやり方と、java.nioを使ってクライアント全員を並列処理する方法です。
そこで質問なのですが、大人数が参加するチャット(ルーム機能も付いています)では、
やはりノンブロッキングIOを使うほうがいいのでしょうか?


82 :デフォルトの名無しさん:2008/09/06(土) 01:27:11
ノンブロッキングもスレッド使うのも、接続増えたら結局は鯖かえなくちゃいかんのじゃないか

83 :デフォルトの名無しさん:2008/09/06(土) 02:03:27
javaのSetについて質問です

class Address{
public Address(String name, String address) {
this.name = name;
this.address = address;
}
public String toString() {
return "name : " + name + " address : " + address;
}
//getter setterは省略
public String name;
public String address;
}


84 :デフォルトの名無しさん:2008/09/06(土) 02:04:47
上の続きです
public class Practice{
public static void main(String[] args) {
Set<Address> test = new HashSet<Address>();

test.add(new Address("hiroshi", "tokyo1") );
test.add(new Address("hiroshi", "tokyo2") );
test.add(new Address("hiroshi", "tokyo3") );
test.add(new Address("hiroshi", "tokyo4") );
test.add(new Address("sayoko", "tokyo1") );
test.add(new Address("sayoko", "tokyo3") );

Iterator<Address> iter = test.iterator();
//hiroshiの情報だけ取り出したい
while( iter.hasNext() ){
Address i = iter.next();
if( i.name.equals("hiroshi") ) {
System.out.println( i );
}
}
System.out.println("-------------");
//tokyo1の情報だけ取り出したい
iter = test.iterator();
while( iter.hasNext() ){
Address i = iter.next();
if( i.address.equals("tokyo1") ) {
System.out.println( i );
}
}
}
}

85 :デフォルトの名無しさん:2008/09/06(土) 02:07:09
上の続きです

SetでAddressクラスのnameをキーとして情報を取り出したり
addressをキーとして情報を取り出したりしたいのですが,
上の実装だとset内の値の数が増えてくるとなんだか効率が悪いような気がします.
他に実装方法はありますでしょうか

86 :デフォルトの名無しさん:2008/09/06(土) 02:14:45
class うんこ {
  Map name, addr;

  public void add(Addr addr) {
name.add(addr.getName,add);
addr.add(addr.getAddr,add);
}

public Addr getByName(Str name) {
return name.get(name)s;
}
}

これで我慢しとけハゲちゃびん

87 :デフォルトの名無しさん:2008/09/06(土) 02:46:46
Mapじゃあかんの?

88 :デフォルトの名無しさん:2008/09/06(土) 03:35:04
java.awtComponentのソース見てたら
setEnabled(boolean)のところで

Component.this.setEnabled(b);

って出てきたんだけど、このthisってどゆ意味?


89 :85:2008/09/06(土) 03:58:02
>>87
Mapだとkeyの値が一つに限定されてしまいます
あと,valueからkeyを取得することができないです.

90 :85:2008/09/06(土) 04:07:38
ごめんなさい
valueからkeyはbidimap使えばできますね(標準関数じゃないけど)
>>89 の下一行は無かったことで

keyの値を色々変えてSetの中身を検索したいです

91 :デフォルトの名無しさん:2008/09/06(土) 04:17:55
>>88
限定this というものらしい。
ttp://www.y-adagio.com/public/standards/tr_javalang2/expressions.doc.html#251603

で、そのソースコード、JDK7ですか。

92 :デフォルトの名無しさん:2008/09/06(土) 04:27:10
>>91
JDK6です。


93 :デフォルトの名無しさん:2008/09/06(土) 04:28:07
>>90
Index用のMapを作るのはどうでしょう。
Map<String(name), List<Address>>
Map<String(address), List<Address>>

AddressはSetに追加してるから可変ではないと思いますが、
可変の場合は、変更シークエンスをキチンとチェックしてくださいまし。

94 :デフォルトの名無しさん:2008/09/06(土) 04:30:23
>>91
そのサイト読んでみたけどよく分かんないっす……


95 :デフォルトの名無しさん:2008/09/06(土) 04:32:11
>>90
とにかく突っ込んどけば簡単に検索できるっていうクラスは無いんじゃないかな。

>>89
keyの値が一つに限定って、"hirosi"→"tokyo1","tokyo2","tokyo3"…なら
Map<String,Set<String>> とか Map<String,List<String>> で表現できるでしょ。
逆もしたかったら "tokyo1"→"hirosi","sayoko" を同じ構造の別の Map に入れとく。
つまり(クラス名はともかく) >>86 みたいな感じってこと。

96 :デフォルトの名無しさん:2008/09/06(土) 04:39:32
>>88
内部クラスからそれを含むクラスを参照してるってこと。

97 :デフォルトの名無しさん:2008/09/06(土) 04:52:15
>>88
> Component.this.setEnabled(b);
が書かれているメソッドsetEnabled(boolean)はComponentクラスのメソッドではなく、
その内部クラスのメソッドじゃない? たぶんAccessibleAWTComponentクラス。
クラス名.thisという書き方はQualified thisと呼ばれていて、
ttp://java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.8.4
内部クラスを囲う外側のクラスのthisを明示的に指定することができる。
質問の例では、内部クラスにもComponentクラスにもsetEnabled(boolean)が定義されているので、
内部クラスでthis.setEnabled(b)とか単にsetEnabled(b)と書くと、
内部クラスのsetEnabled(boolean)が呼ばれる。
Componentクラスの方のsetEnabled(boolean)を呼ぶためにそういう書き方をする。

98 :デフォルトの名無しさん:2008/09/06(土) 08:51:40
htmlにJavaApletを組み込んで、新しいプログラムが動くか動かを実検したいです。
完成したら、皆も使える用にしたいが、<!--(?)の続きはどう書きますか。

99 :デフォルトの名無しさん:2008/09/06(土) 09:24:12
それはここで回答をもらうより、
ググった方が理解し易いと思われる

一応sunのを貼っておく
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/guide/misc/applet.html

100 :デフォルトの名無しさん:2008/09/06(土) 09:32:22
その聞きたいアプレットのことは、普通に本とかウェブの解説じゃないか?

101 :デフォルトの名無しさん:2008/09/06(土) 10:01:51
>>81
その処理が滅茶苦茶リソースを食うなら java.nio で並列処理したほうがいい。
あと通信量がすんげー多いなら並列処理のほうがパフォーマンスが上がる。
このどちらでもないなら、どっち使っても大して変わらない。

102 :デフォルトの名無しさん:2008/09/06(土) 10:09:17
いや、変わるだろ

103 :デフォルトの名無しさん:2008/09/06(土) 10:11:59
>>101
プラシーボが期待できる場合も追加で。

104 :101:2008/09/06(土) 12:00:59
>>102
スレッドの切り替えが重い OS なら変わるな。
で、たとえばどんな場合を想定してる?

>>103
忘れてた。

スレッドのコンテキストスイッチが重いんだろうなという妄想に取り付かれていたり
ほんの少しでも早ければそれで満足なら並列処理で。
プログラムが楽になればそれでいいならスレッドで。

105 :デフォルトの名無しさん:2008/09/06(土) 13:04:45
両方作って比較して結果書き込んでくれ

106 :85:2008/09/06(土) 14:59:54
>>93 >>95
了解です
どうもありがとうございました

107 :デフォルトの名無しさん:2008/09/06(土) 16:52:24
eclipse3.3エウロパを使って開発しています。

そこで、antを使って独自のjarファイルを作成したいのですが、
うまくいきません。

build.xmlとかいうのを作成して、右クリックのantの実行ってやると、
---------------------------------------------------------------
Buildfile: D:\AppData\Eclipse\workspace3.3\Hoge\build.xml
directory:
compile:
[javac] Compiling 1 source file to D:\AppData\Eclipse\workspace3.3\Hoge\Classes

BUILD FAILED
D:\AppData\Eclipse\workspace3.3\Hoge\build.xml:18: Unable to find a javac compiler;
com.sun.tools.javac.Main is not on the classpath.
Perhaps JAVA_HOME does not point to the JDK.
It is currently set to "C:\@Development\Java\jdk1.6.0_03"

Total time: 297 milliseconds
---------------------------------------------------------------
こんな風にエラーになります。

何が原因でしょうか?


108 :デフォルトの名無しさん:2008/09/06(土) 16:56:35
>>107
>Perhaps JAVA_HOME does not point to the JDK.
>It is currently set to "C:\@Development\Java\jdk1.6.0_03"


109 :デフォルトの名無しさん:2008/09/06(土) 17:04:27
>>81
一般にスレッドは他の資源よりリソースを消費する。
したがって、大量のスレッドを用いると問題が発生する可能性がある。

ノンブロッキングIOでは、スレッドの数を抑えることができるので、
スケーラビリティに有利となる。つまり、
クライアント数の増加に対する性能の劣化をそれなりに抑えることができる。

一方、ノンブロッキングIOを使うと、処理を振り分けるところを
自前で書かなくてはならないため、プログラミングが複雑になる。

しがたって、最初はクライアント毎にスレッドを使うように書いておいて、
問題が出てきたら NIO を使うようにリファクタリングするのがいいんじゃまいか

とよく知らない俺が書いてみる

110 :デフォルトの名無しさん:2008/09/06(土) 17:20:20
>>108
そこなんだけど、それって環境変数設定しろってこと?
自分、java_home設定しないでeclipse は動いてるんだけど。
antもいけないのかな?

111 :デフォルトの名無しさん:2008/09/06(土) 17:25:26
今jcpad使ってるんだけどどうも不便で・・・・
アプレットを簡単に実行できて軽い奴って無いかな

112 :デフォルトの名無しさん:2008/09/06(土) 17:25:27
>>109
おまえアホだなw
どこがおかしいのか分かんないんだろうけどww

113 :デフォルトの名無しさん:2008/09/06(土) 17:27:49
>>81
2004年の記事

Servlet APIとNIO: ついにServlet APIとNIOが結合できる
http://www.ibm.com/developerworks/jp/java/library/j-nioserver/index.html

114 :デフォルトの名無しさん:2008/09/06(土) 17:35:14
>>110
eclipse や ant が動いているのは、JREで実行しているのでは?
また、eclipseでのコンパイルは、eclipseに入っているIBMのコンパイラが
やっているので、環境設定は関係ない。と思う

115 :デフォルトの名無しさん:2008/09/06(土) 17:36:02
appletviewer

116 :デフォルトの名無しさん:2008/09/06(土) 17:43:37
antは腐ってるからな。
Java自体腐ってるけど。
Development\Java\jdk1.6.0_03\lib\tools.jarを
Development\Java\jdk1.6.0_03\jre\lib\ext\tools.jarに
こぴってやってみ。

117 :デフォルトの名無しさん:2008/09/06(土) 17:51:16
jdk1.6.0_03をつかってるお前の脳みその方こそ腐ってないか?

118 :デフォルトの名無しさん:2008/09/06(土) 19:29:48
>>117
それじゃだめなの?自分もそれが入ってた。

>>116
ちょっとやってみる

119 :デフォルトの名無しさん:2008/09/06(土) 19:32:19
>>114
そうだったんだw
javaインストールしないでeclipseだけで動くからふしぎだったんだw

>>116
あと、やっぱりtools.jarが自分の中には入ってないや。
どっかのサイトにもそれをパスに通すとかって書いてあった。


120 :デフォルトの名無しさん:2008/09/06(土) 20:15:39
マジレスすると、そんなもんを ext の下に入れるな

121 :デフォルトの名無しさん:2008/09/06(土) 20:32:15
>>110
eclipse の Java 設定で、JRE じゃなくて JDK を使うように設定してみたら?
[ウィンドウ]→[Java]→[インストール済みのJRE] で JDK のパスを設定。

122 :デフォルトの名無しさん:2008/09/06(土) 22:42:54
自作のJavaプログラムをWindowsのスタートアップにEXEファイルとして
登録して実行させたいのですが、どうすればよいでしょうか?

ちなみにバッチファイルにjava 〜と記載して実行させる事はできました。

123 :デフォルトの名無しさん:2008/09/06(土) 22:46:14
じゃあバッチをキックするexeを作ればいいんじゃね?
つかスタートアップにバッチファイルを登録しておくのは何でダメなの?

124 :デフォルトの名無しさん:2008/09/06(土) 22:48:11
>>110
んー、そこにすでに書かれているのよ。


125 :デフォルトの名無しさん:2008/09/06(土) 22:51:48
>>123
ただ単にEXEファイルからJavaのプログラムが呼び出せないかなと
思っただけです。もちろんバッチで事足りてますが…。

126 :デフォルトの名無しさん:2008/09/06(土) 22:53:34
コマンドを実行するだけなら、わざわざバッチファイルにせんでも、ショートカットに記述するだけで十分だと思うが。

127 :デフォルトの名無しさん:2008/09/06(土) 23:00:57
>>126
もちろんそれでも実行できますね…。

128 :デフォルトの名無しさん:2008/09/07(日) 00:04:53
javaをexeにするって馬鹿の考えそうなことだな

129 :デフォルトの名無しさん:2008/09/07(日) 00:20:46
>>128
そういうやり方あるの知らないの?

130 :デフォルトの名無しさん:2008/09/07(日) 00:22:54
サービスに出来るとかいう機能もあるやつ、なんだっけな〜

131 :デフォルトの名無しさん:2008/09/07(日) 03:14:36
やり方も何もexeにする必要性あるのか?

132 :デフォルトの名無しさん:2008/09/07(日) 03:25:57
exeにするとネイティブだから速くなるとか

133 :デフォルトの名無しさん:2008/09/07(日) 03:34:10
GCJだと、大して変わらんね
まあ起動時間は短縮されるだろうけど
ttp://www.shudo.net/article/Fedora-Core-Expert-200507-GCJ/#performance

134 :デフォルトの名無しさん:2008/09/07(日) 03:42:58
以前にチャットの質問をしたものです。どちらも作ってみろトのことで、ノンブロッキングIOでのサーバーを作っているのですが
クライアント側で
String message
socket.getOutputStream().write(message.getBytes());
で文字列を送り、サーバー側で
private void doRead(SocketChannel channel) {
try {
ByteBuffer buf = ByteBuffer.allocate(BUF_SIZE);
if (channel.read(buf) > 0) {
buf.flip();

byte[] bytes = new byte[buf.limit()];
buf.get(bytes);
String line = new String(bytes, 0, buf.limit(), "UTF-8");
System.out.println(line);
}}}
とやると、おくった文字が、ひらがなや漢字の場合に文字が??にかわってしまいます。
bytesをStringに戻すにはどうしたらいいでしょう。。。

135 :デフォルトの名無しさん:2008/09/07(日) 03:44:43
すいません。
BUF_SIZEは
int BUF_SIZE=1024;
です

136 :デフォルトの名無しさん:2008/09/07(日) 03:55:12
UTF-8が悪かったみたいです。
くだらない質問すいませんでした。解決しましたor2


137 :デフォルトの名無しさん:2008/09/07(日) 04:17:54
相変わらず糞スレだな


138 :デフォルトの名無しさん:2008/09/07(日) 05:28:02
>>137
初心者歓迎のスレならこんなもんだろ。
輝くような質問とレスの応酬になったらキモいだろ。

139 :デフォルトの名無しさん:2008/09/07(日) 05:39:08
>>138
君がその「糞の塊」なんじゃないの?

140 :デフォルトの名無しさん:2008/09/07(日) 07:02:30
>>122
exewrap

141 :138:2008/09/07(日) 10:39:12
>>139
だな。
末尾が「だろ」で両方終わってるし、低脳だよな。
よし逝ってくる。

142 :デフォルトの名無しさん:2008/09/07(日) 11:01:10
exeにするなんてJavaの思想に反してるじゃん


143 :デフォルトの名無しさん:2008/09/07(日) 11:05:20
>>142
糞は黙ってろ

144 :デフォルトの名無しさん:2008/09/07(日) 11:14:24
ぬるぽ
ぬるぽ
ぬるぽ

145 :デフォルトの名無しさん:2008/09/07(日) 11:17:49
>>142
Javaの思想とかおまえが偉そうに語らなくていいから、糞は黙ってろ

146 :デフォルトの名無しさん:2008/09/07(日) 11:20:44
exeにしようなんてセンス無さ過ぎて笑うに笑えない

147 :デフォルトの名無しさん:2008/09/07(日) 11:26:23
>>146
糞は黙ってろ 

148 :デフォルトの名無しさん:2008/09/07(日) 11:32:06
>>142
Javaの思想を語ってもらえませんか?少しでいいんでお願いします!

149 :デフォルトの名無しさん:2008/09/07(日) 11:40:01
Write once, Run anywhere

150 :デフォルトの名無しさん:2008/09/07(日) 12:37:59
糞スレ街道まっしぐら!

151 :デフォルトの名無しさん:2008/09/07(日) 14:32:42
糞連発してる奴は >>149 の発言で
言い返せなくて涙目www

152 :デフォルトの名無しさん:2008/09/07(日) 15:08:59
Javaクラスファイルの難読化ソフトであるDonQuixote ttp://donquixote.cafebabe.jp/index.html
を使っている人いますか?
Solaris10 for x86(5/08)上で使おうとしているのですが,BCELをとってきて
CLASSPATH=/PATH/TO/bcel-5.2.jar:... のように設定しても
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/bcel/util/Repository
Caused by: java.lang.ClassNotFoundException: org.apache.bcel.util.Repository
というエラーメッセージが出ます どのようにすれば動くのでしょうか?

153 :デフォルトの名無しさん:2008/09/07(日) 16:06:05
>>151
いいかげんにおまえが糞ってことに気がついたらどうよ?

154 :デフォルトの名無しさん:2008/09/07(日) 17:09:22
JSAPIの実装にFreeTTSがありますが、
日本語に対応したオープンソースのJava APIってありますでしょうか?
nativeライブラリだと見つかるので、JavaAPIがないようならJNI使って呼び出すか、
外部プロセス起動で実行させるかしかないですよね・・・


155 :デフォルトの名無しさん:2008/09/07(日) 18:17:13
exeなんて古生代の形式に戻す必要あるのか

156 :デフォルトの名無しさん:2008/09/07(日) 18:22:04
Javaのプログラムをjarファイルにしても
解凍ソフトでjarを解凍してクラスが抽出できるから
Jadとか使って逆コンパイルすると
ソースを見られてしまうのですが
これを防ぐ方法はありますか?


157 :デフォルトの名無しさん:2008/09/07(日) 18:23:14
難読化でぐぐれ

158 :デフォルトの名無しさん:2008/09/07(日) 18:23:23
javaを使用しない

159 :デフォルトの名無しさん:2008/09/07(日) 18:23:46
難読化はできるが完全に読めなくすることは不可能
てか、ソースを見られてなにか困るのか?
どんなプログラムでも基本的に解析しようとすれば解析できる
少なくともコンピュータには理解できるわけだからな

160 :デフォルトの名無しさん:2008/09/07(日) 18:25:01
完全に読めなくすることは可能

161 :デフォルトの名無しさん:2008/09/07(日) 18:26:16
>>156
逆コンパイルする気にさえならないようなソフトは無敵

162 :デフォルトの名無しさん:2008/09/07(日) 18:26:26
実行もできなくなるけどな

163 :デフォルトの名無しさん:2008/09/07(日) 18:29:11
Javaのソースコードに暗号化をかけることはできますか

164 :デフォルトの名無しさん:2008/09/07(日) 18:30:11
>>163
>>162

暗号化でなく署名なら出来る


165 :デフォルトの名無しさん:2008/09/07(日) 18:41:46
>>163
古生代の暗号なら出来るんじゃねーの?

166 :デフォルトの名無しさん:2008/09/07(日) 18:49:20
>>155
いつもスルーされて淋しいよな…

167 :デフォルトの名無しさん:2008/09/07(日) 19:26:06
めちゃくちゃソースを分かり難く書いて、
解析する時間が無駄と思わせるようなソースにすればいいんじゃない?
部分的に流用可能なソースも難しいように、スパゲティ構造にしてw

難読化ソフトって使ったことないのだが、上記のようなソースに変換してくれるものとは違うのかな?

168 :152:2008/09/07(日) 20:07:31
難読化ソフトの話題は多分 >>152 に端を発したということでどなたか私めにお答えを...

作者様のBLOG ttp://www.oikaze.jp/~tamada/Diary/cat_e99ba3e8aaade58c96.html を見ると
「・DonQuixote 3.0 Java バイトコード操作フレームワークとして,DonQuixote 3.0 を公開しました.」
とあるのですが,パスワードがかかっていていただくことができません.
DonQuixote1.0を最新のJDK1.6.0-07に使っているのが悪いのでしょうか?
>>152 のエラーメッセージは信用できるように思えるのですが
maven2 を使ったのが初めてなので何か設定が足りないのかもしれません

なお ttp://proguard.sourceforge.net/ の Alternatives にリンクが張られている
フリーの処理形をすべて試してみましたが期待通り動くものはほとんどありませんでした
他に良い難読化ソフトがありましたらお教えくださいませませ

169 :デフォルトの名無しさん:2008/09/07(日) 20:27:00
解読しても価値のないプログラムを書けばOK

170 :デフォルトの名無しさん:2008/09/07(日) 20:29:32
【コミュニティーサイト作成有志募集!】

現在コミュニティーサイトGaccoで有志を募集しています。
詳しい概要等は
http://www36.atwiki.jp/vipvipschool/
こちらをご覧下さい。

・プログラミングができる方
(現在技術陣は6名です)
・ウェブデザイン・画像編集能力がある方
(現在デザイン陣は2名です)
・宣伝能力のある方
(人員募集やサイト完成後の宣伝等。動画編集ができると○。)

を募集しています。
気軽にIRCに参加、またはsuteあっと2ch.bona.jpまでメールを下さい。

スレッド:ttp://ex14.vip2ch.com/test/read.cgi/news4gep/1219068297/l50

171 :デフォルトの名無しさん:2008/09/07(日) 21:08:52
難読化?HSPで書いたら完ぺきだな。
自分でも読む気失せるぞあれは。

172 :デフォルトの名無しさん:2008/09/07(日) 21:22:12
言語がJavaでなくていいなら、intercalかAPLが最強で最凶で最狂でしょ。

173 :デフォルトの名無しさん:2008/09/07(日) 21:35:44
バイナリエディタでマシン語じか打ちだろ。
ソースコード?存在しません。

174 :デフォルトの名無しさん:2008/09/07(日) 21:50:01
逆アセンブルでソースになっちゃう

175 :デフォルトの名無しさん:2008/09/08(月) 00:36:37
それは目的と手段を間違えている

176 :デフォルトの名無しさん:2008/09/08(月) 01:12:45
UbuntuでJavaできないんですけど。。。
ちなみに8.04です

177 :デフォルトの名無しさん:2008/09/08(月) 01:40:29
int []a=new int[5];
a[ZERO]=0:
a[ONE]=1;

こんな感じで配列を定数で置き換えたいときってどういう方法がメジャでしょうか?
interface NUM{int ZERO=0;int ONE=1;…}
class Hoge implements NUM{}

class Hoge{
private final int ZERO=0;
private final int ONE=1;
…}

enum NUM{ZERO,ONE,…}

int []a=new int[5];
a[NUM.ZERO.ordinal()]=7;


列挙で扱いたい気がするけれど、javaの場合整数値と直接結びつかないから
ordinalを呼ばないといけないし、理由は忘れましたがordinalを使うようなやり方は
止めるべきという話を以前見聞きした気がします。

178 :デフォルトの名無しさん:2008/09/08(月) 03:03:20
なんでそんなことしたいの??


179 :デフォルトの名無しさん:2008/09/08(月) 04:10:47
良く分からんが、とりあえず、EnumMap

180 :デフォルトの名無しさん:2008/09/08(月) 06:08:38
普通に
final int ZEEL=-1;

181 :デフォルトの名無しさん:2008/09/08(月) 06:35:01
>>176
Synaptic で JRE 入れれば動くはず。
あとは gcj とかぶってないか確認しろ。

182 :デフォルトの名無しさん:2008/09/08(月) 11:55:39
>>177
ZEROでa[0]にアクセス、ONEでa[1]にアクセス、…てことなら、
配列そのものをクラスに包んでアクセサ作るのが言語的に”メジャ”っぽいと思う。
class Foo {
enum Num { ZERO, ONE, … };
private int[] a = new int[〜];
int get(Num num) {
switch(num) {
case ZERO: return a[0];
case ONE: return a[1];
:
}}
void set(Num num, int value) {
switch(num) {
case ZERO: a[0]=value;
case ONE: a[1]=value;
:
}}}

183 :デフォルトの名無しさん:2008/09/08(月) 15:04:00
なんでスイッチ…


184 :182:2008/09/08(月) 16:36:16
すまん、EnumMap使ったことないもんだから。
こう?
class Foo {
enum Num { ZERO, ONE, … };
private Map<Num,Integer> a = new EnumMap<Num,Integer>(Num.class);
int get(Num num) { return (a.containsKey(num) ? a.get(num) : 0); }
void set(Num num, int value) { a.put(num, value); }
}

185 :デフォルトの名無しさん:2008/09/08(月) 17:11:39
効率悪い

186 :167:2008/09/08(月) 17:35:46
enum Mum
{
ZERO
{
public int getValue()
{
return 0;
}
}
,
ONE
{
public int getValue()
{
return 1;
}
}
,
;

public abstract int getValue();
}


187 :186:2008/09/08(月) 17:36:37
ごめそ167というのは間違い。

188 :デフォルトの名無しさん:2008/09/08(月) 17:53:16
>>185
効率を心配するほどのもの?

189 :デフォルトの名無しさん:2008/09/08(月) 17:54:07
http://www.atmarkit.co.jp/fjava/rensai2/javaent02/javaent02.html
ここ見て勉強しているのですけど、
メモリを使用するタイミングはどのタイミングなのでしょうか?
変数やメソッドの呼び出しなどがあったときにメモリを消費しているのか、
それとも変数やメソッドを呼ばなくても、定義してるだけで消費するのか。
どちらなのでしょう?
後者なら継承を繰り返すたびにメモリ使用量の多いプログラムになると思うので、
前者だとは思うのですが。

190 :デフォルトの名無しさん:2008/09/08(月) 18:40:44
なんで素人がやたらメモリとか気にするわけ?


191 :デフォルトの名無しさん:2008/09/08(月) 18:47:36
参照してる記事がメモリうんぬんと書いてるから、気になったんだろうな。
全く気にしないのも問題だが、それで勉強してるレベルなら、まだ早いよ。

192 :デフォルトの名無しさん:2008/09/08(月) 18:50:08
>>190
素人だからこそ気にするべきなんだろ
そんなのもわからない阿呆はやめちまえ

193 :デフォルトの名無しさん:2008/09/08(月) 18:52:44
メモリもそうだけど、配列アクセスの方がCPUに大きく影響するよ。
あまり記事になってないけど、arr[k]は範囲チェックが必ず入るから、arr[k]を一回アクセスするだけで、
JVM内では(隠れて) if (0<=k && k<arr.length) が呼び出されてる。

だからメモリを気にしながら設計するのも大事だけど、byte[1000*32]とか良く作るんだし、配列アクセスの方を気にしたほうがいいよ。

194 :デフォルトの名無しさん:2008/09/08(月) 18:56:34
メモリの方は、PCだけの人は気にならないんだろうけど、携帯とかアプレットとかあるし。
アプレットはまだ携帯とか小型端末じゃみれないけど、そういう小型機器はメモリが極小64kbとかだから、
メモリの方も気にしなければいけない。

195 :デフォルトの名無しさん:2008/09/08(月) 18:58:28
性能に頼ってプログラミングしている気でいる現代の若者を見てると
おじさん悲しくなってくるよ

196 :189:2008/09/08(月) 19:01:45
みなさんレスありがとうございます。
それで結局のところどちらなのでしょう・・?
おかしな質問だとは自覚しているのですが、気になって仕方がありません。
どうかよろしくお願いします。

>>193
配列って使うんですか?
コレクションフレームワークのほうが高機能なので配列よりそちらを使うようなことを書いてましたが。

197 :デフォルトの名無しさん:2008/09/08(月) 19:12:53
素人が気にし出すとろくなことにならんよ
ちゃんと理解出来ないんだから勘違いの嵐

198 :デフォルトの名無しさん:2008/09/08(月) 19:15:53
>>196
変数やメソッドの種類と、JVMによる。

199 :189:2008/09/08(月) 19:37:23
>>197
そうは言いますが、素人向けの説明でメモリの話が出てきてるのだから、
やはり重要だと思うのですが・・・
たとえ今は理解できないとしても、ステップとして踏んでおくべきだというのが私の考えです。
書籍やWebからの情報でも、100%ちゃんとした説明できる人のほうが少ないと思うので、
勘違いがあるのは当然だと思います。
そういうのは後々間違いに気づいていくので、
はじめの段階では特に問題視する必要はないと思います。

お答えいただけないようなので別のとこで質問しなおしたいと思います。
というわけで質問しめます。

200 :デフォルトの名無しさん:2008/09/08(月) 19:43:46
配列はね、CharBufferとかでよく使うよ。
素人向けの解説だとStringBuilderとかなのかもしれないけど…
初心者の壁を越えられるかどうかは、java.nioの解説やAPIを熟読して理解できたかどうかだろうけど、ネイティブのファイル・アクセスとメモリ(ポインタなど)は難しいからな…

201 :デフォルトの名無しさん:2008/09/08(月) 19:47:18
>お答えいただけないようなので別のとこで質問しなおしたいと思います。 

こういうのは生意気だし、「ばくちゃん、まだ身の程をわかってません!」って感じww

202 :189:2008/09/08(月) 19:50:30
>>200
ありがとうございます。
あとでそのクラスを調べてみます。

>>201
私は自分のことを客観的に見ることができるんです。
あなたとは違うんです。

203 :デフォルトの名無しさん:2008/09/08(月) 20:00:03
なんだ釣りか

204 :デフォルトの名無しさん:2008/09/08(月) 20:01:09
スレに張り付いてまでいちいち煽るくらいなら
少しのヒントを出すぐらいすれば
まだ自分の優位性をアピールできるだろうに。
気持ち悪いやつだ

205 :189:2008/09/08(月) 20:17:22
>>203
ちょっと生意気な閉め方したら食いついてくる人がいると思って、
最近はやりだったから言ってみたかったんです。すみません。
変な質問だとは自覚してましたが、本当に聞きたかったことなので、
またで直します。

206 :デフォルトの名無しさん:2008/09/08(月) 20:33:24
質問をお願いします.

java.awt.event.KeyEvent
を使用してキーの同時押しを持ってきたいのですが、
スペース 押下時に、 上 と 左 の同時押し(結果的に3つ)
を取ろうとすると、 KeyEvent.VK_UP と KeyEvent.VK_LEFT が帰ってきません。

順番を逆にし、上左押下時のスペースは持ってこれます。

他の組み合わせ(スペース + 上右、下左、下右)はどれも正常に動作します。


KeyEventについて詳しくないのですが、これはどういうことなのでしょうか?

207 :デフォルトの名無しさん:2008/09/08(月) 20:38:38
コーディングが悪いんでないの?
if文の順番が変とか。
ソース晒してみ

208 :206:2008/09/08(月) 20:39:22
すみません訂正です

>順番を逆にし、上左押下時のスペースは持ってこれます。
これも KeyEvent.VK_SPACE がもってこれません

209 :デフォルトの名無しさん:2008/09/08(月) 20:39:24
>>206
http://pc11.2ch.net/test/read.cgi/tech/1204155623/640

210 :206:2008/09/08(月) 20:51:54
>>209
なるほど、ありがとうございました。
スレ違ったようですみません

>>207
おかげさまで原因がわかりました
ありがとうございました。

211 :デフォルトの名無しさん:2008/09/08(月) 20:57:03
>>205
ここにはもう来ないで欲しい

212 :デフォルトの名無しさん:2008/09/08(月) 21:25:08
>>205
メモリの使い方がどうとか言い出すと
JVMの仕組みについて勉強しないと。
局所的に見て、変数が定義されていたら内部はどうなるの?なんて質問きたら
じゃぁこの場合はあの場合はって芋づる式に疑問が増えてくる。
メモリについて知りたいなら、それ専用の本を読んでから質問しないと。
中学生までなら許せる質問

213 :デフォルトの名無しさん:2008/09/08(月) 22:08:11
テキストファイルを2つ読み込んで比較するdiffツールもどきを作っているのですが、
読み込むテキストファイルの文字コードがわからない場合は
FileInputStream("file.txt"), "Windows-31J");
みたいなのをコード分(SJISとかEUCとか……)書かないといけないのでしょうか?
効率的なやり方があればよいのですが……。

214 :デフォルトの名無しさん:2008/09/08(月) 22:12:55
>>213
コードの違うファイルで一致する場合を検出したいと言うこと?

215 :デフォルトの名無しさん:2008/09/08(月) 22:17:00
>>214
いえ、どこで使うかわからないからコードの違うファイルでも普通に判定しろ、ということらしいです……。

216 :デフォルトの名無しさん:2008/09/08(月) 22:36:20
JISAutoDetectのことかな。
誤認識することもあるから文字コードを指定するオプションもあったほうがいいかもしれない。

217 :デフォルトの名無しさん:2008/09/08(月) 23:04:59
>>213
いっその事、byte[] でバイナリ扱いのまま比較しちゃって良いんじゃね?
改行は自分で処理しなきゃいけなくなるけど。

218 :デフォルトの名無しさん:2008/09/08(月) 23:16:56
不明な点がありますので質問させていただきます。

djUnitを使ってjavaプログラムの単体試験を行っています。

addReturnValueを使ってわざと例外を発生させたいのですが、
ResultSet rs = stmt.executeQuery(sql);
の部分で例外を戻すように指定するには、

NullPointerException e = new NullPointerException();
addReturnValue(”Statement”,”executeQuery”,e);

のような感じでよいのでしょうか?
Statementは拡張してTestStateというサブクラスでオーバーライドしているのですが、
クラスの部分は”Statement”で良いのでしょうか?

何度やってもRuntimeExceptionが発生するか、
addReruenValueを反応しないかになってしまうので質問させていただきました。
もしご存知の方いらっしゃいましたら、お手数ですかよろしくお願いします。

219 :デフォルトの名無しさん:2008/09/08(月) 23:38:12
作っているところに質問したら?
バグも多いし、1.5系じゃまともに動かないからもう使ってないけど。
それに、それって単体テスト自体の問題だと思うけどな

220 :デフォルトの名無しさん:2008/09/08(月) 23:55:07
>219
素早いお答えありがとうございます。
このような質問は作っているところに聞いたほうがいいですね・・・
スレ違い気味な質問申し訳ないです。
再度テストプログラム自体を見直してみたいと思います。ありがとうございました。

221 :デフォルトの名無しさん:2008/09/09(火) 00:04:05
>>189の記事見たが、なんだこりゃ?
ちょっとこれはひどいんでないの?
悪いがこれ自体初心者は見ないほうがいいと思うぞ。
もっとまっとうな記事なり本なりあるだろう多分。


222 :デフォルトの名無しさん:2008/09/09(火) 06:56:37
>>212
高校生以上で、芋ずる式質問以外の質問をしなければいけないとはどういう質問のことをいうですか?

223 :デフォルトの名無しさん:2008/09/09(火) 07:01:44
エラー 1 個
C:\DOCUME~1\MYDOCU~1\MYJAVA~1>

これとかバカだろw
いまどき MYJAVA~1 はないだろ。こいつの脳は20年前のままなんだろうけど、いわゆるバカだなw

それと、そこのITの記事は、NTTデータの何とかとか言うのが記事かいてるのあるけど腐ってる。
たぶんNTTデータの落ちこぼれか雑用係が記事書いてんじゃねーか?
NTTなめんなww


224 :デフォルトの名無しさん:2008/09/09(火) 07:19:08
winnyにいちゃもんつけるぐらいだし、京都警察の方がGメン気取りでウザイけどなw

225 :デフォルトの名無しさん:2008/09/09(火) 10:08:40
189の記事そんなに悪し様にののしるほどひどいとは思えないけど。

226 :デフォルトの名無しさん:2008/09/09(火) 10:53:45
186のコード見てなんだこりゃと思って調べたらenumこんな使い方があるんだな。
知らなかったのオレだけ?

227 :デフォルトの名無しさん:2008/09/09(火) 12:16:31
10
15
20 GOTO 15

RENUM

10
20
30 GOTO 15

ERROR

228 :デフォルトの名無しさん:2008/09/09(火) 12:21:11
どんだけボロいBASICだよ
っつかその頃のBASICは中間コードで保持してて
LISTでソース復元が主流じゃなかったか?
だからそんなことは起きない


229 :デフォルトの名無しさん:2008/09/09(火) 13:02:43
JDK1.5.0でクラス名の取得について質問です。

private void hoge(Object obj) {
  if (obj instanceof List) {
    // リストの先頭の値からgetClass()で取得する
  } else {
    // objからgetClass()で取得する
  }
}

こうしたソースがあるのですが、
objがリストで来た場合にリストのサイズが0だと、
リストに格納するクラス名がわかりません。
取得する方法はありますでしょうか?

230 :デフォルトの名無しさん:2008/09/09(火) 13:45:43
無理。そもそもListにはどんな型でもgenerics使わなければ入れられる上に、使ったところで静的解決だから意味がないです。

231 :デフォルトの名無しさん:2008/09/09(火) 14:03:37
>>229
>objがリストで来た場合にリストのサイズが0だと、
>リストに格納するクラス名がわかりません。
これの意味がわからないんだけど・・・。
サイズ0なら空なんだから何も取り出しようがないと思うんだけど・・・

232 :デフォルトの名無しさん:2008/09/09(火) 14:13:40
すみません、説明不足でした。
例えば上記ソースでクラス名を標準出力する場合、

List<Integer> list = new ArrayList<Integer>();
this.hoge(list);

この場合に標準出力に欲しいのは「Integer」という文字列です。

list.add(new Integer(0));

などとしてやれば、リストから取り出した値の型はわかるのですが、
リストのサイズが0の場合でも本来入れる予定の型を取りたいのです。

233 :デフォルトの名無しさん:2008/09/09(火) 14:21:13
だからそれは>>230が言ってるようにJavaのジェネリクスの原理上無理

234 :デフォルトの名無しさん:2008/09/09(火) 14:48:09
>>225
褒め殺しに似た手法かも。


235 :デフォルトの名無しさん:2008/09/09(火) 15:09:05
どこが?

236 :デフォルトの名無しさん:2008/09/09(火) 15:40:47
JTableでセルに文字を入力したらその文字が確定されて表示されますが、
ここでもう1度Enterを押すと、次のセルにフォーカスが移動するようです。
このフォーカスの移動を防ぐために、JTableにKeyListenerを登録して、
keyPressedでEnterキーの押下を検出したのですが、ここからどうすれば
よいかが分かりません。
よろしくお願いします。

237 :デフォルトの名無しさん:2008/09/09(火) 18:59:21
>>236
Action doNothingAction = new AbstractAction(){ public void actionPerformed(ActionEvent e){}};
KeyStroke enterKeyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0);
table.getInputMap(JComponent.WHEN_FOCUSED).put(enterKeyStroke, "doNothing");
table.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(enterKeyStroke, "doNothing");
table.getActionMap().put("doNothing", doNothingAction);

238 :デフォルトの名無しさん:2008/09/09(火) 22:15:11
javaでサーバーサイドとモバイル用途の開発も挑戦したいんですが
http://java.sun.com/javase/ja/6/download.html
http://www.eclipse.org/downloads/
のどれをダウンロードすれば全部できますか?

239 :デフォルトの名無しさん:2008/09/09(火) 22:25:30
>>238
JDKだけ落として、後は自分で作れば?

240 :デフォルトの名無しさん:2008/09/09(火) 22:29:15
あせらずスタンドアローンアプリ、普通のWeb、モバイルと進め。
ここで質問するような奴がいきなりモバイルとか無理だから

241 :デフォルトの名無しさん:2008/09/09(火) 22:41:20
スタンドアローン、Web、モバイルの順ということは、
スタンドアローンが一番簡単で
次にWeb
一番難しいのがモバイルということですか?


242 :デフォルトの名無しさん:2008/09/09(火) 23:25:23
サーバーサイドはやった事ないが設定周りではまりやすいサーバーサイドと実機検証で右往左往するモバイルはどっちが面倒だろうか?
SE ME CDC/CLDCやってるが日本のMIDP端末はつまらん。

243 :デフォルトの名無しさん:2008/09/09(火) 23:39:54
>241
難しいつーか覚えることがWebやモバイルのが多いだろ。
モバイルと普通のWebはどっちが難しいってのは微妙だけど情報の入手のしやすさから言ったらWebのが楽じゃね?

244 :デフォルトの名無しさん:2008/09/09(火) 23:46:20
>>229
getClass()でその値を何に使うかによるが、
private <T> void hoge(List<T> obj)
を作れば解決できる処理かもしれない。


245 :デフォルトの名無しさん:2008/09/10(水) 01:08:22
>>237
上手くいきました。
大変親切なコードに感謝します。

246 :デフォルトの名無しさん:2008/09/10(水) 18:42:35
Javaで画像をサーバーに送信し、サーバー側では受信した画像をもう他のクライアントに送信
するということをしたいのですが、参考になるサイトなどはないでしょうか。。。

247 :デフォルトの名無しさん:2008/09/10(水) 21:01:27
つ「ストリーム」

248 :デフォルトの名無しさん:2008/09/10(水) 21:23:11
>>246
もうちょっと条件を出してくれ。
HTTPのみでやるのか、ソケット使っていいのか判らないと答えが広がりすぎて
的確に返答できん。

249 :デフォルトの名無しさん:2008/09/10(水) 22:27:29
Eclipse3.4(Ganymede)で「Hello World」と表示する簡単なプログラムを作って、
それをjarファイルにエクスポートしました。
コマンドプロンプトから「java -jar HelloWorld.jar」と実行すると
「Hello World」と表示されるので、jarファイルは問題なさそうです。

しかしC言語でCreateProcess()を実行して上記コマンドを呼び出す
プログラムを実行したところ、以下のエラーダイアログが出て異常終了してしまいました。
「Could not find the main class. Program will exit!」

mainを含むクラスが見つからない?とのエラーのようですが、
これは一体どのようにすれば実行できるようになるのでしょうか?

250 :デフォルトの名無しさん:2008/09/10(水) 22:29:18
>「Hello World」と表示されるので、jarファイルは問題なさそうです
ここから
>しかしC言語でCreateProcess()を実行して上記コマンドを呼び出す
こうなる流れが全くつかめない

251 :デフォルトの名無しさん:2008/09/10(水) 22:48:10
>>249
1. 切り分けをする(jar ではなく、classファイルでやってみる。等
2. パスを疑う

252 :246:2008/09/10(水) 23:01:15
言葉足らずですいません。ソケットを使います。
文字列などはNIOをつかってサーバ側でスレッドが増えないように処理しているのですが、
画像はどう扱えば良いかわからず質問させていただきました。

253 :デフォルトの名無しさん:2008/09/10(水) 23:17:45
>>252
ソケット使うなら、バイナリ送り込むだけじゃん。

254 :249:2008/09/10(水) 23:43:20
>>251
原因が判明しました。CreateProcess()の第2引数に
「java.exe -jar HelloWorld.jar」としてしなければいけない所、
第1引数に「java.exe」、第2引数に「-jar HelloWorld.jar」を指定していました。
失礼しました。

255 :デフォルトの名無しさん:2008/09/11(木) 07:50:49
Runtime.exec()はシェルを経由するんですが、これを使わないでプロセスは作れるんですか?

256 :デフォルトの名無しさん:2008/09/11(木) 08:11:39
>>255
Runtime.exe() は内部実装では CreateProcess 使ってると思うが。
シェルを経由ってどういうことをさしてるの?MS-DOS プロンプトが出るとか?

257 :デフォルトの名無しさん:2008/09/11(木) 08:12:49
>>252
文字列が送受信できてバイナリが扱えない状況ってのが理解できん。
ソケットってバイナリストリームだからバイナリ→文字列って変換してるはずだろ。
なんでバイナリ扱えないんだよ。データの終端判定で悩んでるとか?

258 :ウォン:2008/09/11(木) 13:26:31
どうもはじめまして。
java初心者でして、わからないことがありまして質問したいです。
----------------------------------------------------------------------
txtファイルを読み込んだときにtxtファイルの内容が昇順に並び変わるという
プログラムを作成するというものです。
そしてルールがsplitとInteger.parseIntを使いなさいとのことです。


259 :ウォン:2008/09/11(木) 13:29:04
あと下記のプログラムを応用して作らなければならないらしいです。
import java.io.*;

public class Test1 {
public static void main(String[] args) {
BufferedReader reader = new BufferedReader
(new InputStreamReader(System.in));
try {
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
System.out.println("");
} catch (IOException e) {
System.out.println(e);
}
}
}
----------------------------------------------------------
下記はtxtファイルの内容です。
3:犬
5:鳥
9:虎
7:ライオン
1:猫
4:熊
2:馬
8:牛
6:ウサギ
-------------------------------------------------
とにかく番号順に並び変わればよいそうです。
どなたかご指導お願いいたします。

260 :デフォルトの名無しさん:2008/09/11(木) 13:30:22
>>258
宿題は宿題スレへ。

★★ Java の宿題ここで答えます Part 65 ★★
http://pc11.2ch.net/test/read.cgi/tech/1212085079/

261 :デフォルトの名無しさん:2008/09/11(木) 14:23:17
(eclipseで)Javaのプログラムを作り、jarファイルを生成しました。

メモリを大量に消費するために、コマンドラインオプションとして
-Xmx256M を付けてeclipse上では実行していました。

jarファイルをダブルクリックで実行したいのですが、このコマンドラインオプション自体を
jarファイルに組み込むことはできるのでしょうか?

それともコマンドラインオプションを付けてjarを起動するバッチファイル的なもの
(WindowsならWSHとか?)を別に書かなきゃダメでしょうか?

262 :デフォルトの名無しさん:2008/09/11(木) 15:28:24
>>261
バッチファイルでキックするか、exeでくるむかだね

263 :デフォルトの名無しさん:2008/09/11(木) 16:47:30
Javaでデータベースからデータを取り出し、それをrtfファイルとして
生成するプログラムを作ったのですが、そのプログラムと同じフォルダにしか生成することができません。
windowsの「名前を付けて保存」みたいな感じで、
生成する際デスクトップやクリップドライブ等の場所を随時任意に指定することはできますか?

264 :デフォルトの名無しさん:2008/09/11(木) 16:54:15
できます。

265 :263:2008/09/11(木) 16:57:42
ありがとうございます。検索ワード考え直して探しなおしてみます。

266 :デフォルトの名無しさん:2008/09/11(木) 18:00:08
>>263
エスパーしてみると、パスの区切りは "\\" とか。

267 :デフォルトの名無しさん:2008/09/11(木) 18:11:03
いや、JFileChooserだと思う。

268 :デフォルトの名無しさん:2008/09/11(木) 18:24:24
どうしてこのスレでは糞糞とか言う人がいるんでしょうか?ニートか何かなんでしょうか?

269 :デフォルトの名無しさん:2008/09/11(木) 19:18:04
>>261
public class Kicker {
public static void main(String[] args) {
try {
Runtime.getRuntime().exec("javaw -Xmx256M -cp ***.jar ***.MainClass");
}catch(Exception e){
}
}
をマニフェストのメインにしてjarを作ったらどうかな

270 :263:2008/09/11(木) 19:20:54
JFileChooserです。マニュアル熟読してimplementしてみようと思います。

271 :デフォルトの名無しさん:2008/09/11(木) 20:14:13
コンパイルしたservlet(classファイル)をWEB-INFのclassesに配備したのですが、
htmlからの呼び出しに動作しません。
ほかのプログラムがweb.xmlに登録しているせいでしょうか?
web.xmlにclassを登録していないせいでしょうか?
それに関連して分からないのが、イチイチweb.xmlにservletを登録しなくてはならないのでしょうか?

272 :デフォルトの名無しさん:2008/09/11(木) 21:28:31
現在、学校の方でJavaエクリプス3.2を使用しています。
真剣に悩んでいることがあるのでご教授よろしくおねがいします。

エクリプスで新規にプロジェクトを立ち上げるとルートディレクトリの中に
「bin」や「src」といったフォルダが作成されてしまい開発ができない状況です。
学校ではbinやsrcというフォルダはないのですが、家で新期にプロジェクトを
作成するとbinなどのフォルダが自動的に作成されてしまいます。

家でもプログラムの勉強をしたいのですが、これのせいで手がつけられない状態です。
本当に困っているのですが、どなたか詳しい方お力かしてください><

273 :デフォルトの名無しさん:2008/09/11(木) 21:33:27
vistaでjavaを(Version 6 Update 7) インストールしたのですが
公式サイトでのjava(yahooゲームなど)は作動するんですが、タカミンお絵かきチャットなどそのほかでのjavaが作動せず
左上に白い四角に赤い×がついてしまい、表示されずこまっております
はじめてのことなので全くわかりません
詳しい方どなたかおねがいします。

274 :261:2008/09/11(木) 21:50:01
>>262>>269
ありがとうございます。こんな技があったとは思いつきもしませんでした。



275 :デフォルトの名無しさん:2008/09/11(木) 22:07:24
>>272
Eclipseスレがあるからそっちに行くべきかも
binとsrcはそれぞれ、.classファイルと、.javaファイルが入るフォルダで、本来ならばそのように分けて開発することが好ましいとされてるよ。
で、単純にそのプロジェクトを選択した上で「新規」からクラスを作ればsrcに自動的に作成され、コンパイルされるとbinにclassファイルが生成されるんだけど・・・
もしかしてパッケージエクスプローラじゃなくてナビゲータかなんかを開いてるんじゃない?

276 :デフォルトの名無しさん:2008/09/11(木) 22:18:05
>>275
アドバイスありがとうございます。


>>もしかしてパッケージエクスプローラじゃなくてナビゲータかなんかを開いてるんじゃない?

はい。
ナビゲータを開いてます;;
それがいけなかったのでしょうかね・・・
ちょっとためしてみますね。

アドバイス本当にありがとうございます><
周りに聞けるような人がいないから助かります。
ありがとうございました。

277 :デフォルトの名無しさん:2008/09/11(木) 23:37:24
Sビデオ出力を持っているビデオカメラの動画をキャプチャボードを利用して
PCで取得し,静止画や動画として保存したいと思っています.
JMFを調べてみたりしているんですが,なかなかそのものなサンプルが無いので困っています.
コマンドラインでキャプチャを制御できるソフトなどがあればProcessBuilderなどで
できると思うんですが,それも見つかりません・・.
Javaで上記のようなことをする際に便利な方法をご存知の方はいらっしゃいませんでしょうか?


278 :デフォルトの名無しさん:2008/09/11(木) 23:52:41
>>271
アプリケーションサーバの方でプロジェクトのルートをxmlで登録する。
WEB-INF以下のclassesにコンパイルしたファイルを入れる。

この後アプリケーションサーバを再起動させないとダメだったりすることが多々ある。
上の設定ちゃんとしてるならサービスから再起動してみては。

279 :デフォルトの名無しさん:2008/09/12(金) 00:45:00
String str = "文字列";
char array[] = str.toCharArray();
System.out.print(array.toString());
としたらなんかぐちゃぐちゃになるんですけど何故?
よろしくお願いします。

280 :デフォルトの名無しさん:2008/09/12(金) 00:58:50
意味が解ってないからだと思います

281 :デフォルトの名無しさん:2008/09/12(金) 01:02:25
>>279
@since 1.5
static java.util.Arrays.toString(char[])

何故、という問いには、そういうものだから、としか...
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Object.html#toString%28%29

282 :271:2008/09/12(金) 02:22:20
>>278
>アプリケーションサーバの方でプロジェクトのルートをxmlで登録する。
>WEB-INF以下のclassesにコンパイルしたファイルを入れる。

アプリケーションサーバ(Tomcatのことですか?)で
プロジェクトのルートをXMLに登録すると言うところが分かりません。

>WEB-INF以下のclassesにコンパイルしたファイルを入れる。
classesにはプログラムは入っています。

283 :271:2008/09/12(金) 04:11:35
http://msugai.fc2web.com/java/Tomcat5/inst.html
を元にJSPやservletを使おうとしたのですが起動しませんでした。

しかし、kaptchaというプログラムをwarファイルから実行したところJSPは動作しました。

284 :デフォルトの名無しさん:2008/09/12(金) 08:38:03
>>277
画像取り込みとか普及しだしてもう何年も経ったんですけど、まだjavaでは普及してないんですか。
たしかJMFのスレがあったんでそっちだと知ってる人いると思います。
いまではストリームで動画とか当たり前なのにjavaではまだ不便なんですか…

285 :デフォルトの名無しさん:2008/09/12(金) 10:10:54
>>282
Tomcatを使っているなら
http://www.javaroad.jp/opensource/js_tomcat2.htm
ここの「Tomcatの設定」の所。


286 :デフォルトの名無しさん:2008/09/12(金) 12:45:44
Javaで何らかのストリームを開いた後クローズするのを忘れた場合って
どういう副作用があるのでしょうか?

287 :デフォルトの名無しさん:2008/09/12(金) 13:03:21
>>286
閉じ忘れのせいでファイル開ける上限超えた場合に新しいファイル開けなくなるとか、
close() で出力されるはずだったデータが出力されないとか。

288 :デフォルトの名無しさん:2008/09/12(金) 13:22:30
>>287
ファイルオープンの上限って初めて聞いたので調べてみたのですが、
http://d.hatena.ne.jp/taka_2/20080105
ここを見る限り、多少閉じ忘れることがあってもメモリリークみたいに
そこまでの問題にはならなさそうな感じと考えて大丈夫ですかね。

289 :デフォルトの名無しさん:2008/09/12(金) 14:03:49
>>288
せいぜいファイル2つぐらいしか使わない自分用プログラムなら問題になりにくいってだけ。
もっとも、>>287 の2行目の問題については全然大丈夫じゃない。

290 :271:2008/09/12(金) 15:28:51
>>285
だめでした。一応環境はTomcat5.5です。

291 :271:2008/09/12(金) 15:31:43
ページが存在しないと表示されます。

292 :デフォルトの名無しさん:2008/09/12(金) 15:34:19
>>271はうざい。
ちゃんと本を買って勉強しろ!

293 :デフォルトの名無しさん:2008/09/13(土) 10:46:32
jdkが開発するためのもので、
jreが利用するためのものですよね?
jreは元々入ってるみたいなので、
jdkを落としたいんですけど、
色々あってよく分りません。
どれを落とせばいいのでしょうか?

294 :デフォルトの名無しさん:2008/09/13(土) 11:02:27
最新で良いでしょ

295 :デフォルトの名無しさん:2008/09/13(土) 11:03:48
どれをダウンロードするかって意味か?<色々あって〜
JDK 6 Update 7 で通常はOK
JDK 6 Update 7 with NetBeans 6.1 は無償の開発環境のNetBeansってのが付いてくる
統合開発環境も欲しければこっち

296 :デフォルトの名無しさん:2008/09/13(土) 11:10:08
class sample{
HashMap sample = new HashMap();
sample.put( "1", 1); //@
}

@部分見たくフィールドでputって何でできないんだっけ…
なんか遊びでプログラム作ってたらアレ?ってなって…
詳しい人教えてくださせあ;

297 :デフォルトの名無しさん:2008/09/13(土) 11:12:49
できねえよ

298 :デフォルトの名無しさん:2008/09/13(土) 11:15:35
まあ、それだけだとアレなんで、
{}
でくくってみろ
インスタンス初期化子でググれ

299 :デフォルトの名無しさん:2008/09/13(土) 11:17:16
>>297
うん。できないのは分かってる。
もう少し突っ込んだ理由が欲しかっただけなんだ…(´ω`)

300 :デフォルトの名無しさん:2008/09/13(土) 11:20:00
>>299
クラスに定義できるのは、フィールド、コンストラクタ、メソッド、初期化記述子の何れかではなくてはならない、と言語仕様が定めているから。

301 :デフォルトの名無しさん:2008/09/13(土) 11:23:25
>>298
ありがとうっ!てかSUGEEEE!
SJC-P持ってるがこんなのあったかな…。

でも解決方法はなんとなくわかったが、なんでダメなのかがわかんないっス…

302 :デフォルトの名無しさん:2008/09/13(土) 11:27:58
>>300
言語仕様かぁ…。
スレチになってくるのかもしれないけど、
なんで言語仕様的にダメなのか分かったら教えてください…

頭悪くてね…結構根っこの理由まで知らないと納得できないんだ…orz


303 :デフォルトの名無しさん:2008/09/13(土) 11:30:03
>>301
ロジカルな理由は>>300だが、直観的には、class直下の記述は宣言/定義であって、上から実行される実行文じゃない、というところか。


304 :デフォルトの名無しさん:2008/09/13(土) 11:31:49
>>302
その実行命令はどのタイミングで実行されるかわからないからだろ。
初期化の時なのか、コンストラクタ実行時なのか、メソッドが呼ばれたときか、明示しないとJavaはダメ
スクリプト系言語だと上から下へ実行する、って暗黙の了解があるだけで、Javaはエントリポイント(main)から順次メソッドなどを呼んで行くしかない

305 :デフォルトの名無しさん:2008/09/13(土) 11:32:50
失礼。
暗黙の了解っていうか、スクリプト系言語の仕様では、だな。

306 :デフォルトの名無しさん:2008/09/13(土) 11:39:29
>>303,304
あー なるほどっ
フィールド変数が存在するタイミングでなんとなく呼ばれてできるような
気がしてたけど、言われてみればおっしゃる通り。

今日だけ先生と呼ばしてください。

307 :デフォルトの名無しさん:2008/09/13(土) 11:51:10
ダメだ

明日もそう呼べ

308 :デフォルトの名無しさん:2008/09/13(土) 12:17:07
>>306
おまえは永遠に俺の奴隷だな

309 :デフォルトの名無しさん:2008/09/13(土) 14:24:31
じゃあ俺も先生

310 :デフォルトの名無しさん:2008/09/13(土) 16:05:31
SJC-P持ってるならそれぐらいわかれよ・・

311 :デフォルトの名無しさん:2008/09/13(土) 18:46:33
投稿させていただきます。
キャンバスに絵を描くプログラムを書いているのですが、したのコードだと画面のちらつきが
目立ち、もっとスムーズに書くことは出来ないかと悩んでいます。
したにコードをあげるのでもしよければ改善点を指摘してください


312 :デフォルトの名無しさん:2008/09/13(土) 18:49:27
class paintCanvas extends Canvas implements MouseMotionListener,MouseListener{

Vector drawList;

int sx;
int sy;

public paintCanvas(){
addMouseListener(this);
addMouseMotionListener(this);
setBackground(Color.WHITE);

drawList = new Vector();
}



313 :デフォルトの名無しさん:2008/09/13(土) 18:50:28
public void paint(Graphics g) {
//すべての要素を描画
for (int i = 0; i < drawList.size(); i++) {
Drawable drawnObject = (Drawable)drawList.get(i);
drawnObject.draw(g);
}
}

public void mousePressed(MouseEvent e){
sx = e.getX();
sy = e.getY();
}
public void mouseDragged(MouseEvent e) {
int x = e.getX();
int y = e.getY();

//リストに新しい線分を追加
Line line = new Line(sx, sy, x, y);
drawList.add(line);
repaint();
sx = x;
sy = y;
}

}



314 :デフォルトの名無しさん:2008/09/13(土) 18:51:43
interface Drawable {
public void draw(java.awt.Graphics g);
}

class Line implements Drawable {
public int x1, y1, x2, y2;
public Line() {};
public Line(int x1, int y1, int x2, int y2) {
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
}

public void draw(java.awt.Graphics g) {
g.drawLine(x1, y1, x2, y2);
}
}


315 :デフォルトの名無しさん:2008/09/13(土) 19:04:42
>>311
Swingにするとダブルバッファリングが効く

extends Canvas → extends JComponent
public void paint(Graphics g) { → public void paintComponent(Graphics g) {
あと、フレームが Frame なら JFrame に

316 :デフォルトの名無しさん:2008/09/13(土) 20:01:13
javaからちょっと離れるかもですが、
log4jについて教えてください。

ルートロガーにアッペンダーとしてconsoleが指定されてる状態で、
jp.co.XXXX.SampleLoggerってロガーを作ったとします。

jp.co.XXXX.SampleLoggerではconsoleに出力したく無いのですが、
ルートロガーのアッペンダーをいじらずに何とかできないでしょうか。

317 :316:2008/09/13(土) 20:01:59
設定はlog4j.xmlで行っています

318 :デフォルトの名無しさん:2008/09/13(土) 22:42:23
いいから、ルートから外せ

319 :デフォルトの名無しさん:2008/09/14(日) 00:11:24
GCについての質問です。
sunのJVMは1.4から世代別GCがデフォルトになってますが、
IBMのJVMは1.5で世代別が追加されたものの、
デフォルトは世代別ではなくクラシカルなGCを
ベースにしているようです。

両者のスタンスの違いは、極端なケースは別にしても、
必ずしもどちらかが有利な訳ではない
ということなのでしょうか?


320 :デフォルトの名無しさん:2008/09/14(日) 00:11:32
SJC-Pってインスタンス初期化子もでてこないの?

321 :デフォルトの名無しさん:2008/09/14(日) 00:17:35
>319
単に考え方の違いじゃない?

世代別GCは重いからマーク&スイープ+弱参照カウンタにしたのがPythonで
並列マーク&スイープにしたのがSpiderMonkeyで・・・云々とGCの手法なんて色々ある。
それぞれメリットとデメリットがあるんだし。

322 :デフォルトの名無しさん:2008/09/14(日) 00:40:40
>>319
その差が問題になるほど大層なもん作ってるのかい?
やり方の違いだったらば一長一短
まあ、後発の技術の方が長が多いのは必然だけどな。

323 :デフォルトの名無しさん:2008/09/14(日) 00:51:00
と、糞は妄想していますw

324 :デフォルトの名無しさん:2008/09/14(日) 01:37:03
>>319
IBM JavaがクラシカルなGCをベースにしてるって書いてあった?

325 :デフォルトの名無しさん:2008/09/14(日) 01:41:55
なんでもいいけど、お勧めのエロサイトおしえてくれよ。

やっぱ土曜の深夜はエロサイトめぐりだろ。おまえらも勉強はそこそこにして息抜きと○抜きしろよ。

326 :デフォルトの名無しさん:2008/09/14(日) 01:45:16
ババ抜きですね

327 :デフォルトの名無しさん:2008/09/14(日) 01:59:40
いやジジ抜き

328 :デフォルトの名無しさん:2008/09/14(日) 02:07:16
>>315
ありがとうございます。無事解決しました

329 :0.0.0.0:2008/09/14(日) 10:41:46
皆どんなアプリケーション作ってる?
プライベートでね。


330 :デフォルトの名無しさん:2008/09/14(日) 10:53:22
クラスローダを通してのクラスの実行は可能ですか?


331 :デフォルトの名無しさん:2008/09/14(日) 11:37:32
>>329
噴水のようにゴキブリとか糞が噴き出してるアプリだお

332 :デフォルトの名無しさん:2008/09/14(日) 12:17:04
class CL1 implements Serializable
{
 int value;
 int[] array;
}

直列化したときvalueは自動で保存されますが、arrayの要素まで保存されるんでしょうか?

それと writeObjectを明示的に実装すると、フィールドにtransientがあるかないかに係わらず
直列化されないみたいなんですけど、これはjava.lang.Objectの仕様ですか?

333 :デフォルトの名無しさん:2008/09/14(日) 12:18:59
保存されるされる。
writeObjectを明示的に実装したならばその実装次第だろ、JK

334 :デフォルトの名無しさん:2008/09/14(日) 12:38:07
arrayはSerializableを実装してないから無理。

335 :デフォルトの名無しさん:2008/09/14(日) 12:41:23
>>334
配列はCloneableとSerializableを実装している

336 :デフォルトの名無しさん:2008/09/14(日) 12:52:15
ObjectOutputStreamは仕様も複雑化してるし難しいからな…

337 :デフォルトの名無しさん:2008/09/14(日) 12:55:15
writeObject()だけだからダメなんで、readObject()の方も実装してないからじゃね?

338 :デフォルトの名無しさん:2008/09/14(日) 13:00:56
申し訳ないですがまた質問させていただきます。
自分で描画した画像(JPanelの上に)をイメージにして保存したいのですが、どうすればいいでしょうか。
保存先を特に指定することはありません。。


339 :デフォルトの名無しさん:2008/09/14(日) 13:02:21
配列は大丈夫ですか。ありがとうござました。

340 :デフォルトの名無しさん:2008/09/14(日) 13:46:37
>>338
>>246の人か>>311の人かわからんが
>>246なら画像を送るというよりも描画コマンドをおくるんじゃないの?
毎回毎回画像を送ってちゃね

341 :319:2008/09/14(日) 14:03:31
>>324
http://www.atmarkit.co.jp/fjava/rensai4/websphere03/websphere03_3.html

を読んでそう理解しました。

342 :デフォルトの名無しさん:2008/09/14(日) 14:08:42
>>338
ファイルへのアウトプットってこと?
セオリーかどうかはわからんが
JPanel panel = getPanel();
File output = new File("anywhere");
BufferedImage im = new BufferedImage(panel.getWidth(), panel.getHieght(), BufferedImage.TYPE_INT_RGB);
panel.paintComponent(im.getGraphics());
javax.imageio.ImageIO.write(im, "png", output);

てなかんじでどう。

343 :デフォルトの名無しさん:2008/09/14(日) 14:17:46
>>321
>>322
レスありがとうございます。
選択可能ということは一長一短なんだと思いますが、
後発に分があると思っていたら、
IBMはデフォルトを保守的な設定にしていることに気付き、
??と思った次第です。

その差が問題になるほどのものを作ってるか?というと、
負荷をかけたらヒープがつらいことになってしまった
というのが発端なので、その程度のレベルでございます。

344 :デフォルトの名無しさん:2008/09/14(日) 14:38:07
TYPE_INT_ARGB_PRE
じゃないの?

345 :デフォルトの名無しさん:2008/09/14(日) 16:42:01
AN HTTPDおよびJAVAアプレットについての質問です。

AN HTTPDでサーバーをたてました。
サーバパソコンからhttp://localhost/でアクセスすると
きちんと.classファイルを読み込んでJAVAアプレットが表示されるのですが、
外部のパソコンからhttp://(グローバルIP)/でアクセスすると
.classファイルがnot foundになりアプレットが表示されません。

どうすれば外部からアクセスしても表示されるようになるでしょうか?

346 :デフォルトの名無しさん:2008/09/14(日) 17:22:48
ユーティリティクラスを作る際のことですが
・通常のクラスを作りstaticメソッドでユーティリティの機能を実装し、コンストラクタをprivateで隠蔽する方法
・抽象クラスを作りstaticメソッドでユーティリティの機能を実装する方法
上の2つではどういった理由でどちらが望ましいですか?
もしくはどういった状況で使い分けるべきですか?

347 :デフォルトの名無しさん:2008/09/14(日) 17:39:06
・作って動かしてみてからリファクタする方法
ってのはどうだ。

348 :デフォルトの名無しさん:2008/09/14(日) 18:35:10
結局最初に作ったままになるんですね、わかります。

349 :デフォルトの名無しさん:2008/09/14(日) 19:48:55
>>346
継承されないから前者じゃね?
final class にもできるし。

350 :デフォルトの名無しさん:2008/09/14(日) 21:12:40
はじめまして。Java素人です。jspで書かれたログインページにユーザー名とパスワードを入力して
その結果を表示するプログラムを作りたいのですが、うまくいきません。(ログイン前の画面が表示されてしまいます。)
見よう見まねで書いてみたプログラムは以下のようなものです。
どなたか解決策をご存知の方教えて頂けますか?
import java.io.IOException;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.methods.PostMethod;
public class AutoReserve {
  public static void main(String[] args) {
    PostMethod method = new PostMethod ("https://hogehoge/login.jsp");
    HttpClient httpclient = new HttpClient();
    method.addParameter("username","xxx");
    method.addParameter("password","yyy");
    try {
      int result = httpclient.executeMethod(method);
      System.out.println(result);
      System.out.println(method.getName());
      System.out.println(method.getStatusText());
      System.out.println(method.getPath());
      System.out.println(method.getResponseBodyAsString());
    } catch (HttpException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    } finally {
      method.releaseConnection();
    }
  }
}
情報が足りないようであれば、具体的にそのページのURLも書き込みます。

351 :デフォルトの名無しさん:2008/09/14(日) 22:58:46
httpsとかなっているけど、証明書とか大丈夫?
あとは何をもってログインページの表示と、ログイン処理を分けているかだと思うけど、POSTならばって条件は正しいの?
例えば、action=doLoginとかそんなパラメータは必要にならない?

352 :デフォルトの名無しさん:2008/09/14(日) 23:56:56
Hoge h1 = new Hoge();
Hoge h2 = new Hoge();

h1 = h2;

というようなコードがあった場合、メモリリークしますか?

353 :デフォルトの名無しさん:2008/09/15(月) 00:05:28
>>351
早速のご回答ありがとうございます。
> httpsとかなっているけど、証明書とか大丈夫?
HTTPSについての知識はありませんが、
ttp://q.hatena.ne.jp/1131072683
ここの回答者1の文章を読む限りだと大丈夫かなぁと思いました。
> あとは何をもってログインページの表示と、ログイン処理を分けているかだと思うけど、POSTならばって条件は正しいの?
> 例えば、action=doLoginとかそんなパラメータは必要にならない?
ログインページの表示とログイン処理を分けているというのがよくわかりませんが、対象のページのソースを表示すると
HTTPでFORMタグにMETHOD="POST"という記述があったのでPOSTが適当だろうと判断しました。

やはり具体的な状況を説明したほうがよさそうですね。
ttps://yoyaku.city.yokohama.jp/sports/index.jsp
このWebサイトの「予約・抽選申込」のページにJavaでログインしようと思っています。
なお、運営時間は9:00〜24:00です。

354 :デフォルトの名無しさん:2008/09/15(月) 00:56:20
質問させてください。
下記の流れで検索処理を作成したみたのですが、

jsp1 …条件入力して検索ボタン押下

serv1 … DBからデータ取得して、list<beanクラス>に保存

jsp2 … listの内容を展開

serv1

jsp3

jsp2からjsp3へ遷移する際に、serv1で取得したlistを利用して、
別なデータを取得しているのですが、複数ブラウザで実行した場合、listの内容がその都度変わってしまい、うまくいきません。
一般的にどのように処理をするのでしょうか?

355 :デフォルトの名無しさん:2008/09/15(月) 01:47:50
>>352
>Hoge h1 = new Hoge();
>Hoge h2 = new Hoge();

>h1 = h2;

1行目で生成されたHogeインスタンスは「そのうち」ガベコレされるからメモリリークしない。

356 :デフォルトの名無しさん:2008/09/15(月) 09:24:32
>>350
エージェント見てはねてんじゃないの

357 :デフォルトの名無しさん:2008/09/15(月) 09:40:04
>350
どうみてもPOST先はlogin.jspじゃねーな
ログイン画面のformタグをみてみろ
パラメータの名前も一致していないし、その程度もわからないならば無理だろうね

ちなみに、一番簡単なのはログインするときのHttpRequestをキャプチャしてそれに合わせたリクエストを投げる事。
ついでに言えば、下手したら不正アクセスで捕まるから注意した方がいいと思う。

358 :デフォルトの名無しさん:2008/09/15(月) 11:39:33
質問です。

JavaでGUIアプリを作成するというのは、あまり一般的では
ないのでしょうか?
自分はSwing1

359 :デフォルトの名無しさん:2008/09/15(月) 11:42:46
途中で送ってしまいました。。。失礼

自分はSwingでGUIアプリを作成しようと思っていたんですが、
VBとかVC#とか使ったほうが簡単だよ!みたいなことを
言われました。

JavaでもJBuilderを使えばフォーム作れるのに・・とか思っていたんですが。。

360 :デフォルトの名無しさん:2008/09/15(月) 11:50:07
それでどっちが簡単だった?自分が簡単だったと思った方を選べばOK。
無論、簡単に作るのが目的であれば、の話だけど。

君がJavaでやりたいんだ!と思うならVB/C#はハナから対象外だろ。
SwingでもSWTでも選ぶといい。

でもここだけの話、Delphiの方が(ry

361 :デフォルトの名無しさん:2008/09/15(月) 12:35:51
toString()について質問です。
javadocには「人間が読める簡潔で有益な情報であるべきです」とありますが、
例えばリスト構造でそれぞれのデータまで表示するように複数行に渡る文字列を返すのは「簡潔」でなくなるのでしょうか?
また、toStringの処理は多少重くなってもいいのでしょうか?
自分はtoStringは基本的にそのオブジェクトの情報を知るために使用するため、デバッグ時にしかほとんど使用していません。
よってString.formatなどの、重いが簡潔な記述が出来る方法も頻繁に使用しています。

答えはないと思うので意見をお聞かせください。

362 :デフォルトの名無しさん:2008/09/15(月) 12:46:55
>>357
スレチだけど、自分のIDとパスを使うだけなら不正アクセスとはならないんじゃない?

363 :デフォルトの名無しさん:2008/09/15(月) 16:28:19
質問です
java1.4、macOSX10.3を使っています

File f = chooser.getSelectedFile();
bimage = ImageIO.read(f);
g.drawImage(bimage, 0, 0, this);

選択したファイルを読み込んで表示するのですが、ちゃんと表示されて動作には問題が
無いのに、コンソールには大量のエラーが表示されます

apple.awt.EventQueueExceptionHandler Caught Throwable : java.lang.NullPointerException
java.lang.NullPointerException
at apple.awt.CRenderer.copyImage(CRenderer.java:860)
at sun.java2d.pipe.ValidatePipe.copyImage(ValidatePipe.java:147)
at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3120)
at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3110)
at sam.ImageView.paintComponent(ImageView.java:34)
at javax.swing.JComponent.paint(JComponent.java:808)
at javax.swing.JComponent.paintChildren(JComponent.java:647)
at javax.swing.JComponent.paint(JComponent.java:817)
at javax.swing.JViewport.paint(JViewport.java:720)
at javax.swing.JComponent.paintChildren(JComponent.java:647)
at javax.swing.JComponent.paint(JComponent.java:817)
at javax.swing.JComponent.paintChildren(JComponent.java:647)
at javax.swing.JComponent.paint(JComponent.java:817)
at javax.swing.JComponent.paintChildren(JComponent.java:647)
at javax.swing.JComponent.paint(JComponent.java:817)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:557)


364 :デフォルトの名無しさん:2008/09/15(月) 16:30:14
at javax.swing.JComponent.paintChildren(JComponent.java:647)
at javax.swing.JComponent.paint(JComponent.java:817)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:34)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:60)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:97)
at java.awt.Container.paint(Container.java:1325)
at sun.awt.RepaintArea.paint(RepaintArea.java:194)
at apple.awt.ComponentModel.handleEvent(ComponentModel.java:258)
at java.awt.Component.dispatchEventImpl(Component.java:3744)
at java.awt.Container.dispatchEventImpl(Container.java:1671)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3543)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:480)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)


365 :デフォルトの名無しさん:2008/09/15(月) 16:32:28
apple.awt.EventQueueExceptionHandler Caught Throwable : java.lang.NullPointerException
java.lang.NullPointerException
at sam.ImageView.openFile(ImageView.java:24)
at sam.Test.openImageFile(Test.java:75)
at sam.Test.actionPerformed(Test.java:62)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1819)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1872)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.AbstractButton.doClick(AbstractButton.java:321)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1113)
at java.awt.Component.dispatchEventImpl(Component.java:3681)
at java.awt.Container.dispatchEventImpl(Container.java:1671)
at java.awt.Component.dispatchEvent(Component.java:3543)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3527)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3242)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3172)
at java.awt.Container.dispatchEventImpl(Container.java:1657)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3543)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:480)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:178)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:170)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

凄く長いんですけど、どういう原因が考えられるのでしょうか?
長過ぎましたね、すいません 一部省略しました

366 :デフォルトの名無しさん:2008/09/15(月) 16:40:20
HttpURLConnectionを使ったクライアント作成しています。
デフォルトではHTTP/1.1でリクエストされてしまうのですが
HTTP/1.0でリクエストを出すにはどうすればよいのでしょう?


367 :デフォルトの名無しさん:2008/09/15(月) 17:00:04
アパッチHTTPサーバーよりもシンプルな個人・自宅向けのサーバーないでしょうか?


368 :デフォルトの名無しさん:2008/09/15(月) 17:04:11
>>361
toString()はObjectにあるので全てのオブジェクトに影響しますが、hashCode()とequals()の関係はどう考えればよいでしょうか?

369 :デフォルトの名無しさん:2008/09/15(月) 17:23:54
>>363
1. まず、自分が書いたプログラムの何処で例外が発生したのか確認する。
> at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3110)
> at sam.ImageView.paintComponent(ImageView.java:34)

2. (私はソースの行数が分からないので推定だが)g.drawImage の引数のうち null になる可能性を探る。
2.1. bimage だけが null になる可能性がある。

3. ImageIO.read(File) のドキュメントを読む。
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/javax/imageio/ImageIO.html#read%28java.io.File%29
3.1. まず戻り値を読む。
> 戻り値: 復号化された入力内容を保持する BufferedImage または null

3.2. 更に説明文を読む。
> 登録された ImageReader が、結果のストリームを読み込みできないような場合、null が返されます。

370 :デフォルトの名無しさん:2008/09/15(月) 17:25:41
>>361
答えはないということで同意。
ただ、リストの数が多くなる可能性があるものについては
使いづらくなってしまうので、基本は要素数を返すなどに
留めるべきだと思う。
中までみたければループなりイテレータで回せば済む話だし、
逆にそこまで情報いらないということになるとtoString()を
オーバーロードしないといけなくなるからね。
リスト要素数が数個に限定されるような動的に属性が変化する
オブジェクトの代用としてなら中まで含めるのもありかな。

371 :363:2008/09/15(月) 20:11:12
>>369
返信ありがとうございます

色々調べたのですがわかりません
動作に問題が無いのにエラーを起こすというのはどういうことでしょうか?
このままでOKという事は無いですよね...

372 :デフォルトの名無しさん:2008/09/15(月) 20:17:39
>>371
なにをどう調べたのよ?

373 :デフォルトの名無しさん:2008/09/15(月) 20:59:27
>>356
そうなんですか、ありがとうございます。いろいろ調べてみます。

>>357
> どうみてもPOST先はlogin.jspじゃねーな
> ログイン画面のformタグをみてみろ
> パラメータの名前も一致していないし、その程度もわからないならば無理だろうね
POST先とパラメータの名前についてはわかります。
350の書き込みの時点ではなんとなく伏せました。
> ちなみに、一番簡単なのはログインするときのHttpRequestをキャプチャしてそれに合わせたリクエストを投げる事。
> ついでに言えば、下手したら不正アクセスで捕まるから注意した方がいいと思う。
ありがとうございます。そのようにしてみます。

>>362
自分のIDなら大丈夫そうですね。よかった。

374 :デフォルトの名無しさん:2008/09/15(月) 21:00:51
>>361
自分ならは要素全部返すようにするなぁ たとえ8000文字になったとしても
何も考えずに、println(object)で簡単に一覧できるのが利点だと思ってる
ただ改行コードは入れないようにしてるかな
あとは関係ないけど、toXXXStringを別名で作ったり(ソートやら文字列長さ制限付とか、木構造なら前置、中置、後置でたどる

375 :デフォルトの名無しさん:2008/09/15(月) 21:58:14
Eclipseを使い始めたのですがいったんプロジェクトを閉じて
また開く方法がわかりません
.javaファイル単体は開けるのですが

376 :デフォルトの名無しさん:2008/09/15(月) 22:27:17
会社で使ってるOfficeソフトはもうたいてい2007なんですか?

377 :デフォルトの名無しさん:2008/09/15(月) 22:59:24
すさまじいスレ違いの質問だ・・

378 :デフォルトの名無しさん:2008/09/15(月) 23:04:53
>>375
ウィンドウ>パースペクティブ>Java参照
プロジェクトタブ(?)でそのプロジェクトみっけて右クリック

379 :デフォルトの名無しさん:2008/09/15(月) 23:07:15
答えてみる
ライセンス契約してるような大企業以外は2003かそれ以下がほとんど

380 :デフォルトの名無しさん:2008/09/15(月) 23:14:57
Eclipseからプロジェクトをエクスプローラーで表示出来る方法ないですか?

381 :375:2008/09/15(月) 23:18:01
>>378
プロジェクトを閉じる にしてしまったら
プロジェクトタブ(?)のリストも空っぽで表示されないのですが
閉じ方間違ってますか
VC++使ってたのでこの感覚がどうもわかりません

382 :デフォルトの名無しさん:2008/09/15(月) 23:23:54
>>380-381
スレ違いうぜえ
http://pc11.2ch.net/test/read.cgi/tech/1211505494/l50

383 :デフォルトの名無しさん:2008/09/15(月) 23:27:11
向こうで聞いてきます

384 :デフォルトの名無しさん:2008/09/16(火) 01:19:52
>>376
うちはまだ97バリバリ入ってるな

385 :デフォルトの名無しさん:2008/09/16(火) 14:31:20
Servletの質問で恐縮です。

あるWebアプリケーションを作成しています。
ユーザー認証のためにログイン画面があります。
ログインの際に新規セッションを生成しメニュー画面をオープンし
その他子画面を開きます。

そのあと新しいウィンドウを開き別のIDでログインすると
新規セッションが生成されるのですが、このセッションIDは
クッキーに保存されるので前にログインして開いていた画面が
今回のセッションと共通になってしまいます。

これを回避する方法はないでしょうか?よろしくお願いします。

386 :デフォルトの名無しさん:2008/09/16(火) 15:03:58
>>385
IEなら、別プロセスでブラウザを起動する。
新しいウィンドウやタブを開くのではなく、
デスクトップアイコンやスタートメニューから再度起動すればよい。

FirefoxやOpera、Chromeなど他のブラウザだとできないので、
同一マシンで複数セッション使いたいなら、セッションの数だけ
別のブラウザを実行する。
VMWareとか使う手もあるが。

387 :デフォルトの名無しさん:2008/09/16(火) 20:42:18
Xcode(マック)でjavaを勉強してます

テキストデータ(○○.txt)をBufferedReaderで読み込んだ後、
その文字列のユニコードを変更させたいのですが、できますか?

(どんな型式のテキストファイルでもかならずUTF-8にしてから処理させ、
UTF-8で出力させる、というのが当面の目標です)

388 :デフォルトの名無しさん:2008/09/16(火) 21:26:59
>>387
何でわざわざUTF-8にしたいか理解できないけど、可能。
BufferedReaderで読んだ時点でUTF-16のStringになっているから
String.getBytes("UTF-8")すればUTF-8のバイト列が取れる。


389 :デフォルトの名無しさん:2008/09/16(火) 22:44:30
ユニコードを変更ってそういう意味か

390 :デフォルトの名無しさん:2008/09/16(火) 23:01:40
勉強がてらにJavaのSNSでもイジッて使ってみようかと思ってたんだけど、
Java実装のSNSってないの?

391 :デフォルトの名無しさん:2008/09/16(火) 23:21:59
Mac(10.5.4)上でeclipseを使ってSWTを利用したプログラムを書いています。
JVM 1.5.0, org.eclipse.swt.carbon.macosx_3.4.0.v3448f.jar, org.eclipse.swt_3.4.0.v3448f.jar
にパスを通し、ttp://www.okisoft.co.jp/esc/swt/index.htmlのように
単純なウィンドウを表示するだけのプログラムをテスト用に書きました。
eclipse上では普通に動作するのですが、ExportからRunnable JAR Fileを作成し、
JARファイルから直接実行すると、ウィンドウが表示された後、プログラムがハングしてしまいます。
Mac機を一台しか持ち合わせていないので、一般的な症状なのかどうか分かりませんが、同様の症状の方はいらっしゃいませんでしょうか。

392 :デフォルトの名無しさん:2008/09/17(水) 03:44:36
>>391
terminal から起動してみては如何でしょうか。

393 :デフォルトの名無しさん:2008/09/17(水) 07:50:23
>>390
勉強がてらなら作れよw

394 :デフォルトの名無しさん:2008/09/17(水) 08:36:42
クラスhogehogeの変数xを、違うクラスからhogehoge.xと呼び出すときに
String str = hogehoge;
として
str.xをhogehoge.xと同じ文になるようにしたいのですができません。
どなたかこれに近い方法をご存じですか?

395 :デフォルトの名無しさん:2008/09/17(水) 09:36:44
型が違うんだから無理だろ。というか日本語でおk

396 :デフォルトの名無しさん:2008/09/17(水) 10:00:48
>>394
やりたいことをもっと詳しく。
文章だけだけだと
hogehoge x = new hogehoge(...);
の前提のように読めるが、hogehoge.x とか書いてあって意図不明。
hogehogeはクラス名? 変数名?
xは何かのクラスのメンバー? static?


397 : [―{}@{}@{}-] デフォルトの名無しさん:2008/09/17(水) 11:14:35
異なる処理 A と B が存在するとして、

・処理 B が行われているとき、処理 A は行えない。
  処理 A は、処理 B が終わり次第、順番に実行したい。

・処理 A が行われているとき、処理 B は行えない。
  処理 B は、処理 A が終わり次第、順番に実行したい。

・処理 A 同士、処理 B 同士であれば同時に行える。

と言う制御をしたいのですが、java.util.concurrent
パッケージあたりで単純に実現することはできないで
しょうか。

1つの処理 = 1つのスレッドという前提で構わないの
ですが…

もちろん、concurrent パッケージに拘る理由は特に
ありません。スレッドのロックや公平性をうまく利用
できないかなと思ったのみです。


398 : [―{}@{}@{}-] 397:2008/09/17(水) 11:17:02
すみません。妙な名前欄になっていますが、焼かれているプロキシ経由なためです。

399 :デフォルトの名無しさん:2008/09/17(水) 11:27:25
単純にwaitとnotify系でいいんじゃないの?
Conditionのがいいかも知れんけど。

複数同時の詳細が分からんけど、予想外の動きではないと仮定して。



400 :デフォルトの名無しさん:2008/09/17(水) 12:10:06
>>396
Hogehoge1クラスの中にxという変数があって、
Hogehoge2クラスで
Hogehoge1 hogehoge = new Hogehoge();
とHogehoge1をオブジェクト化した後にクラス変数のxを
hogehoge.xとして呼び出す感じです。

何がやりたいかというと、hogehoge.xとそのまま書かずに
String str = "oge";として
hogehoge.x

h + oge + hoge.x

h + str + hoge.x
みたいな感じでstringで置換したいです。

hogehoge.xに限ったことではなく、例えば
System.out.println();を
String str = "Sys";として
str + tem.out.println();
みたいな使い方です。stringはこんな使い方は出来ないのでしょうか…


401 :デフォルトの名無しさん:2008/09/17(水) 12:15:26
java リフレクション でぐぐれ

402 :デフォルトの名無しさん:2008/09/17(水) 12:17:32
>>400
名前でオブジェクトを特定してアクセスってことならリフレクションだが。
そんな妙ちくりんなことして何の得になるんだ?
名前とオブジェクトを関連付けするならMapで充分だろに。

403 :デフォルトの名無しさん:2008/09/17(水) 12:17:54
そんな変態的な事しても何の利点もないがプリプロセッサ拾ってきてマクロ定義してやれば良い。

404 :デフォルトの名無しさん:2008/09/17(水) 12:21:00
>>402
必要になることはあるでしょ
>>400にとって必要かといえば、たぶんアプローチが間違ってるんだろうけどね

405 : [―{}@{}@{}-] 397:2008/09/17(水) 12:23:22
>>399
ありがとうございます。やはり無理矢理持ち出しても
どつぼなだけですかね。考えてみます。

複数同時の詳細、ですが、処理AがA1,A2,A3とあり同時、
もしくは処理BがB1,B2,B3同時といったように動くのは構わないが、
A1とB1、といった状態は不可、と言うことを実現する必要があったと言うものです。

406 :デフォルトの名無しさん:2008/09/17(水) 12:28:44
>>400
Mapを使えば似たようなことはできるけど、できないと考えていたほうが
良いと思う。

クラス名とか変数名ってのは人間がソースを読むときのために便宜上付
いているだけであって、それをプログラム実行時にどうにかしようとい
う発想はあまりしないのです。



407 :デフォルトの名無しさん:2008/09/17(水) 12:30:15
>>397
標準のAPIにはそのものズバリはなさそうなので、
モニターで確実なものを作ってそれからいろいろと工夫をするのがいいと思いますよ。
動作確認はしてないがこんな感じで作れる。
class ABlock {
 private int cntrA = 0; private int cntrB = 0;
 public synchronized void enterA() {
  while (cntrB != 0) { try { wait(); } catch (InterruptedException e) {} }
  cntrA++; }
 public synchronized void leaveA() {
  if (cntrA > 0) cntrA--;
  notifyAll(); }
 public synchronized void enterB() {
  while (cntrA != 0)  { try { wait(); } catch (InterruptedException e) {} }
  cntrB++; }
 public synchronized void leaveB() {
  if (cntrB > 0) cntrB--;
  notifyAll(); }
}

408 :デフォルトの名無しさん:2008/09/17(水) 12:38:59
>>401-404
ありがとうございます。調べてみます。

具体的にはパネル上に碁盤の目状にオブジェクトを配置して、
マウスでクリックしたところにあるオブジェクトを返したかったんですが、
やり方がわからなかったので、オブジェクトと一緒にクラス名をStringでパネル上に配置して、
クリックした場所のStringを返す→Stringを使ってオブジェクトを返すという考えでした。


409 :デフォルトの名無しさん:2008/09/17(水) 12:45:38
具体的なコードがわからないからはっきり示せないけど、いくらでもほかのやり方はあるよ
リフレクションはあくまで最終手段で、本当にちゃんと理解してる人がやること

410 :デフォルトの名無しさん:2008/09/17(水) 12:46:37
どの言語でもリフレクションは最終手段

411 :391:2008/09/17(水) 12:59:14
>>392
どうもありがとうございます。
起動自体は普通にするので、起動せずエラーを吐く、といったわけでは無いのですよね。
デバッグ(IDE上の実行とか)で再現せず、JAR化した時のみハングするので……。
JARの中身をあれこれ弄ってはいるものの、難しいですね。

412 :デフォルトの名無しさん:2008/09/17(水) 12:59:53
>>405

Aの実行中にBが来たらBは待つ。
そこにさらにA2がきたら? 
{ Bより先に即実行 or Bあとに実行 }

ここが要件不明。

前者がいいなら、トークン持ちのキューが2つある構造。
 トークンは、キューが空になったときに移動する。

後者でいいなら、並列動作は常にさせないのが分かりやすい。
 同時処理させても限定的な効果になるから。

413 :デフォルトの名無しさん:2008/09/17(水) 14:11:40
>>408
> >>401-404
> ありがとうございます。調べてみます。

リフレクションを使うほどのものじゃないですね。
調べるのは時間の無駄かと…。


> 具体的にはパネル上に碁盤の目状にオブジェクトを配置して、
> マウスでクリックしたところにあるオブジェクトを返したかったんですが、
> やり方がわからなかったので、オブジェクトと一緒にクラス名をStringでパネル上に配置して、
> クリックした場所のStringを返す→Stringを使ってオブジェクトを返すという考えでした。

パネルに置くオブジェクトをボタン(あるいは、その子孫クラス)にして
アクションリスナーで、オブジェクトを返すとかで十分な気がします。

414 :aa:2008/09/17(水) 14:22:57
Javaのガーベッジコレクタが遅いらしく、何にもしていない場所で止まった
ようになり困っています。

ガーベッジコレクタを高速にする方法や、勝手にガーベッジコレクタが
動作しないようにする方法は有りますか?

415 :デフォルトの名無しさん:2008/09/17(水) 14:29:07
できるだけオブジェクトを作りまくって放置したりしないように気をつける
暇なときにSystem.gc()

416 :デフォルトの名無しさん:2008/09/17(水) 14:29:52
A1とB1とかの組み合わせが複数あるだけでそれぞれは独立してるの?

例えば処理対象のデータを次々にA→Bという処理の流れに渡すのか、
あるいはいくつかの固定データに対してA→B処理をひたすら同時に繰り返すのか、
いまいちやりたいことが分からないんだ…


417 :デフォルトの名無しさん:2008/09/17(水) 14:33:34
>>414
とんでもないメモリの使い方したりしてないか確認するんだ

418 :aa:2008/09/17(水) 14:36:10
ちなみにJavaアプレットなので、java -noasyncgc によって
非同期ガベージコレクタを無効にすることも出来ません。

>>417
ログを処理しているのですが、大量のログを入力した直後に
停止状態になります。

419 :デフォルトの名無しさん:2008/09/17(水) 14:46:10
>>418
念のため訊くけど、無限ループってオチじゃないよね?

あと、ゲームなんかだと、GCが起きないように、
最初に必要なメモリを全部確保しておいて
ゲームの途中ではメモリの確保&解放は
しないようにしたりする。

420 :aa:2008/09/17(水) 14:53:42
>>419
無限ループではありません。ちゃんと待っていると動作が続行します。

421 :aa:2008/09/17(水) 14:55:43
import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory;
import java.util.List;

として、
GarbageCollectorMXBean と ManagementFactory で
ガベージコレクタをコントロールできるらしいです。
そっちを調べてみます。


422 :デフォルトの名無しさん:2008/09/17(水) 14:59:49
コントロールしてどうしたいの?
本当にガベージコレクタが原因なんだとしたら大量のゴミが出てるのは確かなんだから
効率的な処理の仕方とかを考えないとしょうがないんじゃないの?

423 :aa:2008/09/17(水) 15:05:37
>>422
まずチェックしたい。

424 :デフォルトの名無しさん:2008/09/17(水) 16:13:34
プロファイラでオブジェクトの数とか消費メモリとか見れば?

425 :デフォルトの名無しさん:2008/09/17(水) 18:10:24
>>424に1票
原因は10中ハック、GCではなくて単なるプログラムミスだろ

426 :aa:2008/09/17(水) 18:47:27
>>424
JavaAppletでプロファイル見られますか?

427 :aa:2008/09/17(水) 19:22:39
調べてみると、遅くなる前後で、GC起動数もクラスロード数も変化してま
せんでした。

if(){}else{}文の最後の中括弧を出るタイミングや、、
あるいは、今回の調査用に呼び出した関数内部のSystem.out.printf()文
とSystem.out.printf()文の間で停止したりします。
どこで停止するかはまちまちで、停止時間は10秒以上だと思います。
停止後、何事もなかったように動作を再開し、プログラムの実行結果自体は
至って正常です。

428 :デフォルトの名無しさん:2008/09/17(水) 20:23:17
GC関係ないって分かってボトルネックがどこにあるのか分からないならメトリクスとればいい。

429 :aa:2008/09/17(水) 21:28:11
>>428
「ボトルネック」というのが「処理速度が遅い部分」という意味だとすれば、
今回の場合はそれとは違うと思います。

今回は、複数のSystem.out.println()の間の何も書かれてないような位置や、
中括弧の直後の何も書かれていない位置で停止する現象が起きてます。

430 :デフォルトの名無しさん:2008/09/17(水) 22:39:57
>>366は自分でソケット開くしか対策なしでしょうか?

431 :デフォルトの名無しさん:2008/09/18(木) 03:54:59
FutureTask#cancel(boolean mayInterruptIfRunning) って、
true を指定して止めようとする場合の
内部ステートの変更とスレッドのインタラプトが同一の排他処理内に入っていないので、
これを実行するバックグラウンドスレッドが複数の FutureTask を連続的に実行する場合、
ロジック的には、次のタスクの実行中にスレッドをインタラプトする可能性があるんじゃない?

実際にソースをコピペして、インタラプトする前に適当に Thread.sleep する文を挿入したら
その通りになったんだけど、これってロジック的にはバグじゃね?
それとも、cancel(boolean) は true を指定できるのは非常に限定された場合だけなのかな?

432 :デフォルトの名無しさん:2008/09/18(木) 05:18:10
Swingでランチャを作りたいのですが、本やネットで調べてもやり方が分かりません。
ボタンをクリックしたら、ソフトを起動できるようにしたいのです。
よく
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("actionPerformed()");
というのを見かけます。
この後ろに起動したいソフトに関する記述をすればいいのかと思うのですが、違うでしょうか。
もし、それでいいとすればどう記述すればいいのでしょうか。
Windowsの場合とLinuxの場合、それぞれの記述の仕方を教えていただけると助かります。

433 :デフォルトの名無しさん:2008/09/18(木) 06:37:17
>>431
理解できないならば喋るなと言われそうですが,,,,,,
本来はどうあるべきなのでしょう。

trueを指定して割り込みを望む以上、どんな状態で割り込みが行われたとしても
想定の範囲内ではないのでしょうか。

そも、割り込みが完了する直前状態は、「動作中のタスクがcancel対象以外」であるのが当たり前では?

434 :デフォルトの名無しさん:2008/09/18(木) 11:27:17
>>431
>それとも、cancel(boolean) は true を指定できるのは非常に限定された場合だけなのかな?
ソス見てないが、Thread.interrupt を実行してるなら FutureTask が個々に1個のスレッドの場合だけだろうな。

435 :デフォルトの名無しさん:2008/09/18(木) 12:46:53
質問です。
入力された日付の一日前の日付を取得したいのですが、サンプル等ありますでしょうか。
ちなみに入力された日付は文字列型です。(例:2008-09-18)

436 :デフォルトの名無しさん:2008/09/18(木) 12:54:17
>>435
APIドキュメント内を探してみたか?
DateFotmat, Date, Calender(GregorianCalendar)
使えそうなのいろいろあるぞ

437 :デフォルトの名無しさん:2008/09/18(木) 13:48:58
javaでゲームを作っています。
KeyEventでボタンを押しっぱなしにしているとき物体が動き、離すと止まるようにしたいのですが、
keyPressedでボタンが押されたとき座標をずらすようにすると、物体の動きが変になってしまいます。
具体的には最初遅く動いて、しばらくすると一定の速度で早く動きます。
今はボタンを一度押すと動き、もう一度押すと止まるという形にしていますがとてもやりにくいです。
どなたか解決方法を簿存じないでしょうか?

438 :デフォルトの名無しさん:2008/09/18(木) 14:11:04
>>437
> 具体的には最初遅く動いて、しばらくすると一定の速度で早く動きます。

物体が動きだすときに、なんらかのオブジェクトを生成(new)してませんか?
ゲームの場合、各ステージ(?)の最初に必要なオブジェクトをすべて生成してしまい、
プレイ中にはオブジェクトの生成を一切しないようにしたほうがいいです。


> 今はボタンを一度押すと動き、もう一度押すと止まるという形にしていますがとてもやりにくいです。

keyReleasedで止まるようにする。


439 :デフォルトの名無しさん:2008/09/18(木) 14:25:15
ありがとうございます!
keyReleasedを使ったらうまくいきました。
今までkeyPressedしかつかってなかったので目から鱗です;;

440 :デフォルトの名無しさん:2008/09/18(木) 15:55:48
>>432
ProcessBuilderでも使ったら?

441 :デフォルトの名無しさん:2008/09/18(木) 17:10:24
数値配列の要素1つずつをファイルに保存するのは低速そうなので、
数値配列を丸ごとファイルに保存しようと考えています。
FileOutputStreamとObjectOutputStreamを使えば、
writeObujectで配列を書き込めるのはわかったのですが、
ObjectOutputStreamにはランダムアクセス機能がないので
あまり使いたくありません。
しかし、RandomAccessFileにはwriteObujectがないのです。
このような場合、どうしたらよいでしょうか。

442 :デフォルトの名無しさん:2008/09/18(木) 17:19:43
何でランダムアクセスできる必要があるの?
まぁファイルがソースなんだから、
FileInputStream#getChannel().position(long l)
とか使えばいんじゃね?

443 :デフォルトの名無しさん:2008/09/18(木) 17:40:17
writeObjectは遅いよ

444 :デフォルトの名無しさん:2008/09/18(木) 21:23:37
>>441
想像で決めずにまず一番簡単な方法で書いてみろ。
で時間を測って、気に入らなかったら高速化を考えろ。

445 :デフォルトの名無しさん:2008/09/18(木) 22:23:26
了解しました。
ただ、int[] aのようなaを指定するだけで、
要素が丸ごと書き込む方法があるかは知りたいんです。
aをbyte[]に変換できたらいけそうなんですが。


446 :432:2008/09/18(木) 22:23:50
>>440
どうもありがとうございます。
ProcessBuilderは知らなかったので、調べてみると便利らしいですね。
ググって使い方を調べてみます。

447 :デフォルトの名無しさん:2008/09/18(木) 22:25:17
swingについての質問です。

JFrameを継承してウィンドウを生成した時に、
タイトルバーに最小化/最大化/終了ボタンが付きますが、
最小化/最大化のボタンだけ非表示したいです。

調べた結果JDialogを継承したウィンドウだと
上記が実現できるのですが、今度はWindowsのタスクバーに
タスクが表示されなくて困っています。

タイトルバーの最大化/最小化ボタンを非表示にして、
なおかつタスクバーにタスクを表示させるには
どうすればよいでしょうか?

448 :デフォルトの名無しさん:2008/09/18(木) 22:34:37
>>445
New I/O。java.nio.Buffer とそのサブクラス群、等。

449 :デフォルトの名無しさん:2008/09/19(金) 02:10:22
>>447
恐らく見当違いだと思いますが、以下のことが出来ます。
サイズ変更不可に -- Frame.setResizable(boolean)
タイトルバーを非表示に -- Frame.setUndecorated(boolean)

450 :デフォルトの名無しさん:2008/09/19(金) 05:59:03
JSPのコンパイルエラーで、こんなんが出ています。
1画面の入力項目が多い為、jsp:includeで分割しても変わりませんでした。
post形式ですが一度に送れるrequestの容量に制限があるのでしょうか?
回避方法はあるのでしょうか?

javax.servlet.ServletException: コンパイル問題が未解決です。
メソッド _jspService(HttpServletRequest, HttpServletResponse) のコードが 65535 バイトの制限を超えています。


451 :デフォルトの名無しさん:2008/09/19(金) 07:17:16
>>450
1つのメソッドの大きさは65535バイトまで。
classファイルフォーマットの仕様上の制約。
たしか例外ハンドラの開始位置とかが 符号なし2バイト整数だったような。

452 :デフォルトの名無しさん:2008/09/19(金) 11:50:31
>コードが 65535 バイトの制限を超えています。
知ってたが初めて見るコンパイルエラーだw
ほんとに超える奴なんていたのか。

453 :デフォルトの名無しさん:2008/09/19(金) 12:11:39
【知的財産】中国政府:「IT製品、ソースコード開示せよ」、外国企業に要求へ…09年5月から新制度を導入方針 [08/09/19]
http://gimpo.2ch.net/test/read.cgi/bizplus/1221777450/

454 :デフォルトの名無しさん:2008/09/19(金) 12:38:57
String型変数に格納されている文字列に、日本語が含まれているかどうかを
確認したいのですが、何か良い方法はあるでしょうか。
最終的な目的は、日本語名のファイルを扱わないようにすることです。

455 :デフォルトの名無しさん:2008/09/19(金) 12:45:25
日本語だけなのか?
中国語やハングルは含まれていても問題ないと?

456 :デフォルトの名無しさん:2008/09/19(金) 13:00:24
使えない文字を考えるよりも、使える文字を決めてそれ以外は不可とした方がいいんじゃない
ファイル名だったらこんな感じか?

if (filename.matches("[0-9A-Za-z .!#$%&'(),-.;=@\\[\\]^_{}~]+")) {
// OK
} else {
// NG
}

457 :デフォルトの名無しさん:2008/09/19(金) 13:20:53
>>455
失礼しました。
中国語やハングルも含みます。

>>456
なるほど。ありがとうございます。


458 :デフォルトの名無しさん:2008/09/19(金) 14:00:36
java1.4から1.6に環境を変える場合、単純にコンパイルできれば移行は問題なしと考えてよろしいでしょうか?
つまりバージョンアップする場合、廃止されたクラスやメソッドを使用していなければ問題なく同じ動作になると言えるでしょうか?

459 :デフォルトの名無しさん:2008/09/19(金) 14:08:07
>>458
はい。それぐらいの話で良ければ問題ありません。

460 :デフォルトの名無しさん:2008/09/19(金) 15:31:50
>>458
ありがとうございます。
逆に後々問題になりそうな盲点なポイントはあるでしょうか。

461 :デフォルトの名無しさん:2008/09/19(金) 16:07:22
適当な画像に対し、特定のピクセル(画像の一番左上とか)
と同じ色のピクセル座標のみを列挙するプログラムを作成しています。
現在は画像の幅と高さ分だけforをグルグル回しながら、BufferedImage.getRGBで
一個一個ひたすらチェックしているのですが、どうにも時間がかかってしまいます。

Java標準APIの範囲で、このような作業をより高速に出来る手法はあるでしょうか。

462 :デフォルトの名無しさん:2008/09/19(金) 16:38:04
一度のgetRGBで全部のピクセルを取得して
幅と高さのforをぐるぐる回ると少しマシかも

463 :デフォルトの名無しさん:2008/09/19(金) 22:06:23
Swingでマルチウィンドウなプログラムを作っているのですが、
一つのウィンドウを動かした場合に、他のウィンドウも同じだけ動くようにしたいと考えています。
単にイベント中でウィンドウ移動の処理をするとスレッド例外が発生してしまいますが、
どのようなイベント、或いはスレッドを作って処理するのがよいのでしょう

464 :デフォルトの名無しさん:2008/09/20(土) 00:04:39
まずは問題を切り分けてSwing EDT マルチスレッドあたりでググレば良いよ

465 :463:2008/09/20(土) 08:42:38
>>464
お恥ずかしながら、移動させるために拾うウィンドウのオブジェクトが初期化される前に拾っていました。
どうもありがとうございます。

466 :デフォルトの名無しさん:2008/09/20(土) 10:17:21
こんにちわ。早速ですが、javaアプレットとサーバープログラムの通信に関して質問です。

サーバー上にjavaアプレットとサーバープログラムを置き、
サーバープログラムを実行させた状態で、javaアプレットにアクセスすると、
javaアプレットとサーバープログラム間で通信ができるというものを作りました。
しかし、サーバーパソコン上から http://localhost/

javaアプレットにアクセスした場合はうまく通信できるのですが、
外部のパソコンから http://(サーバーのグローバールIP)/ で
アクセスした場合は接続失敗になってしまいます。
どうすれば外部からアクセスした場合でもきちんと通信できるようになるのでしょうか。

なお、通信する際に使うサーバー側のポートは開放しております。
HTTPサーバーはAN HTTPDを使っています。


───アプレット側のサーバーへの接続コード───
serverName = getCodeBase().getHost();
usocket = new Socket(serverName, portNo);


───サーバー側の接続待ちコード───
ServerSocket serversocket = new ServerSocket(portNo);
Socket usocket = serversocket.accept();


467 :デフォルトの名無しさん:2008/09/20(土) 11:41:10
アプレットってロード元ならHTTPでなくても繋げるんだっけ?
それは繋げるとして、単にファイアウォールとかプロキシってことはないのか?


468 :デフォルトの名無しさん:2008/09/20(土) 13:34:05
複数のスレッドがwait状態にある時に
ある特定のスレッドだけ再開することって出来ますか。

469 :デフォルトの名無しさん:2008/09/20(土) 14:03:47
モニターを使う前提なら異なるスレッドごとに異なるSyncオブジェクトを用意する。
別の方法としてはnotifytAllで全部たたき起こして、
条件に合わないスレッドは再びwaitに戻すといった方法もわりとよくやる。
インタラプトで個別に起こすのは一応最後の手段かな。

470 :デフォルトの名無しさん:2008/09/20(土) 15:00:11
>>469
スレッドごとに別々のオブジェクトでwaitし
特定のオブジェクトをnotifyしたら
そのオブジェクトで待機してたスレッドが動きました。
ありがとうございました。

471 :デフォルトの名無しさん:2008/09/20(土) 15:40:59
>>461
スレッド使えばなまじのCより早くなるだろ

472 :デフォルトの名無しさん:2008/09/20(土) 15:51:11
意味が分からない

473 :デフォルトの名無しさん:2008/09/20(土) 16:04:12
JavaアプレットのスクリプトをWebサーバに置く代わり、クライアント上に置いて実行したいのですが、
クライアントでWebサーバの代わりとなってJavaアプレットを実行する方法はありますでしょうか?
Tomcatはサーブレットのほかに、アプレットも動作可能でしょうか?
もし動作できない場合、Tomcatでサーブレットからアプレットを起動するような方法で実行できますでしょうか?

474 :デフォルトの名無しさん:2008/09/20(土) 16:07:35
スレッドについてもう一つ質問させてくださいm(__)m

AというクラスがBというスレッドを、waitしたりnotifyしたりするのですが、
notifyせずにAというクラスがどこからも参照されなくなると
Bというスレッドは永遠とwaitしっぱなしになると思います。

Aというクラスで必ずBをnotifyして、Bのスレッドの処理完了すべきですが、
上記のようにwaitしっぱなしでAが参照されなくなるケースがある場合に、
Bのスレッドを終了させる方法ってありますでしょうか。

思いついたのは、
1.Aというクラスにファイナライズのメソッドをオーバーライドし、
Bのスレッドをnotifyするという方法

2.Bのスレッドを定期的にnotifyし、Bがどこからも参照されなくなっていたら終了するという方法

そこで、2.の方法は実現可能なのでしょうか・・
それとも他に良い方法ありましたら教えてください


475 :デフォルトの名無しさん:2008/09/20(土) 16:31:08
Eclipceプラットフォーム上でjavaをコーディングしています。
実行中に例外が発生してなんたらExeptionが出たときに、
追加でコンソールに表示される

at パッケージ.クラス.メソッド(+数値)

の部分の+以降の数値の見方が分かりません。
どなたか教えていただけると助かります。

476 :デフォルトの名無しさん:2008/09/20(土) 17:48:24
>>475
行番号

477 :名無しさん:2008/09/20(土) 18:47:33
setter、getterだけのクラスって良くありますよね。
フィールド数として適切な数はどれぐらいだと思いますか?

478 :431:2008/09/20(土) 19:14:25
アクセス規制で遅レス

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6665818

> It is not absolutely guaranteed that cancel(true) will indeed interrupt
> the task instead of its surrounding code.

479 :デフォルトの名無しさん:2008/09/20(土) 20:24:03
JAVAからoracleのselect文を発行する際、to_date()の第二引数(書式)を小文字で
書くのは間違いでしょうか?

(例)to_date(DATE型カラム, 'yyyy-m-dd hh24:mi:ss');

一応、日付は正しく取得されるのですが・・・

いろいろな本やHPでは、大文字で説明が載っています。
(もし、間違いならなぜ間違っているのか知っていれば教えて下さい。)


480 :デフォルトの名無しさん:2008/09/20(土) 21:46:45
javaの質問じゃなくてOracleの質問でしょ、それ

481 :デフォルトの名無しさん:2008/09/20(土) 22:01:57
なるほど。そうですよね、そちらへ聞いてみます。
ありがとうございます。

482 :デフォルトの名無しさん:2008/09/20(土) 22:16:34
作成したorg.w3c.dom.Documentを、
以下のようにして文字列に変換しようとしたのですが、

ByteArrayOutputStream os = new ByteArrayOutputStream();
((PrintStream) document).print(baos);
String Data = os.toString();

((PrintStream) document).print(baos);
のところで、
org.apache.xerces.dom.DeferredDocumentImpl cannot be cast to java.io.PrintStream
というエラーが吐かれてしまいます。

何かいい対処法はありますでしょうか?


483 :482:2008/09/20(土) 22:21:23
すいません、一部間違えました
× ((PrintStream) document).print(baos);

○ ((PrintStream) document).print(os);

失礼しました


484 :デフォルトの名無しさん:2008/09/20(土) 22:35:06
いやいや、Documentは明らかにPrintStreamのサブクラスじゃないでしょw
castの意味分かってるのかな?

485 :デフォルトの名無しさん:2008/09/21(日) 02:19:03
他言語経験者のJava歴2週間です。

非常にくだらない話なんですが、Integerの使い道が分かりません。
intではダメなのでしょうか?計算もできないようですし・・・

486 :デフォルトの名無しさん:2008/09/21(日) 02:27:08
mysqlを用いたプログラムで、
Statement st;
String sql="select * from database";
//
ResultSet rs=st.executeQuery(sql);

これで取り出された値のうちランダムな一つを使いたいため、
取り出された総数を知りたいのですが、
rs.next()がnullになるまでループさせる以外に方法ってあるでしょうか?

487 :デフォルトの名無しさん:2008/09/21(日) 02:30:50
>>485
使い道が分からないうちは気にしなくて大丈夫です。
必要だから使う程度です。

488 :デフォルトの名無しさん:2008/09/21(日) 02:45:51
>>486
最後の行に移動して行番号を取ればいいんでないかい。

489 :デフォルトの名無しさん:2008/09/21(日) 03:01:31
>>474
触れてないようなので
Daemon, ShutdownHook

490 :デフォルトの名無しさん:2008/09/21(日) 03:48:01
>>485
コレクションの要素に整数を入れることを考えてみよう。

491 :デフォルトの名無しさん:2008/09/21(日) 05:47:31
>>486
すなおに SELECT COUNT(*) FROM database; を使ったほうがいい。
あとランダムに1つ選ぶのに * で全部取得だと効率悪いから、主キーをなんとか
ランダムに生成して1件取得するようにすべき。

492 :デフォルトの名無しさん:2008/09/21(日) 07:30:36
複数のTextAreaを持つフォームを作り、
コピーとペーストを実装させたいのですが、
そのプログラムが一つのTextAreaの場合はネットで検索して
見つけたんですが、それを複数の名前の異なるTextAreaに応用する方法がわかりません。

StringSelection strSel = new StringSelection(textArea.getSelectedText());

のtextAreaの部分を自動的に選択したTextAreaにする方法を教えてください。

493 :デフォルトの名無しさん:2008/09/21(日) 08:31:03
interface MyIn
{
class MyCl {}
}
とすると、内部クラスはインターフェイスの規約どおり必ずpublic static final class MyCl
として扱われるんですか?

494 :デフォルトの名無しさん:2008/09/21(日) 08:40:06
>>493
暗黙的に public と static はつくけど final はつかんかったような。
あと、規約通りじゃない場合ってコンパイラのバグとかを想定してるって事?

495 :デフォルトの名無しさん:2008/09/21(日) 08:57:05
ありがとうございます。規約のところは定数はfinalだったという程度のことです。
そういえば、実験してそんな感じがしてたんですけどstaticもつくんですか。

496 :デフォルトの名無しさん:2008/09/21(日) 09:02:44
次プロジェクトで突如JAVAを使うことになりました。
基本的な部分は理解できましたが、その次のステップにすすめません。
実際に何かを作るのがいいとおもいますが、参考になるようなもの
(サンプルPG、練習問題のあるサイト)がありましたら教えてください。

497 :デフォルトの名無しさん:2008/09/21(日) 09:32:02
サーバサイド?デスクトップ?

498 :デフォルトの名無しさん:2008/09/21(日) 09:40:02
>>497
早速のレスありがとうございます。
デスクトップがメインですが、サーバサイドも必要です。
割合でいうと15%程度ですので、後回しでも結構ですl

499 :デフォルトの名無しさん:2008/09/21(日) 09:42:54
データベース表INTEGER型のカラムPIYOに対して、
int foo = 777;
hogeDataPrvider.setValue("PIYO",new Integer(foo));
とすると「INTEGER型に対してストリング型は無効です」のようなエラーが返ってきます。

hogeDataPrvider.setValue("PIYO",777);
とするとエラーになりません。
どなたか、なぜこうなるか教えて下さい。

500 :デフォルトの名無しさん:2008/09/21(日) 11:23:35
エラーの文句を100回読んだら良いと思うよ

501 :デフォルトの名無しさん:2008/09/21(日) 11:47:18
すみません、チュートリアルの通りやっているつもりなのですが…。
IntegerというのはStringではないと思うのですが。

502 :デフォルトの名無しさん:2008/09/21(日) 11:53:31
>501
INTEGER型はDBのカラムの型
ストリング型はJavaの型
「のようなエラー」じゃなくて、エラーはちゃんと読めよ

503 :デフォルトの名無しさん:2008/09/21(日) 11:54:00
てst

504 :デフォルトの名無しさん:2008/09/21(日) 12:02:50
すみません。
チュートリアルの例ではDBのInteger型に対してちゃんとjavaのInteger型を突っ込んでると思うのです。
だから僕がやってうまくいかないのはコード以外の部分に問題があるのかなと思ったのです。

505 :デフォルトの名無しさん:2008/09/21(日) 12:28:27
newがstring型と判定された?fooを直接渡してはだめなんですか

506 :デフォルトの名無しさん:2008/09/21(日) 12:42:37
>>505
ダメでした。
数字をハードコーティングしない限り作動しません。

507 :デフォルトの名無しさん:2008/09/21(日) 12:46:28
int foo = 500;
hogeDataPrvider.setValue("PIYO",foo );

508 :デフォルトの名無しさん:2008/09/21(日) 12:53:28
fooはint型なのにstringと解釈されたってこと?setValueって値しか渡せないってことですかね

509 :デフォルトの名無しさん:2008/09/21(日) 12:54:36
>>507
うーんダメでした。

510 :デフォルトの名無しさん:2008/09/21(日) 12:59:26
Stringを別のStringに代入する方法ってないですか?
C言語ではstrcpyの関数を使いますが…

511 :デフォルトの名無しさん:2008/09/21(日) 13:03:10
>>510
String a = new String(b);

512 :デフォルトの名無しさん:2008/09/21(日) 13:05:37
>>511
ありがとうございます!

513 :デフォルトの名無しさん:2008/09/21(日) 13:21:25
String a = b;
でいいだろ
>>499
どこのチュートリアルか示せ

514 :デフォルトの名無しさん:2008/09/21(日) 13:28:21
変数fooを宣言してるのにfooをセットできないのは例として変です

515 :デフォルトの名無しさん:2008/09/21(日) 14:02:52
>>513
http://www.testwww.netbeans.org/kb/60/web/inserts-updates-deletes.html
です。
まさかこれが間違えているとは思えないので、何か設定でヘマをしたと思うのです。

516 :デフォルトの名無しさん:2008/09/21(日) 14:44:27
>>513
「String a = new String(b); 」と「String a = b;」は一緒じゃないじゃん。


517 :デフォルトの名無しさん:2008/09/21(日) 15:57:33
皆さん、こんな風に原因のゲの字も分からない場合、どうされているのですか?
もうそちらの方が知りたいです。

518 :デフォルトの名無しさん:2008/09/21(日) 16:03:19
お助けください。

linux に tomcat5.5 をインストールしてみました。
元々入っているサーブレットのサンプルアプリ(servlets-examples)を
一部修正してアップロード→リロードすると修正内容が反映されて動作します。

ただ、標準出力/標準エラーがどこにも出力されません。
catalina.xxxx.log 系に出ると思っていたのですが何が悪いのでしょうか?

わざと例外が発生するソースにして動作させると、
スタックトレースが出力される tomcat の 500エラー画面が表示され、
「注意 原因のすべてのスタックトレースは、Apache Tomcat/5.5のログに記録されています」
と、メッセージが出るのですけど logs フォルダ配下を grep しても出力されていません。


519 :デフォルトの名無しさん:2008/09/21(日) 16:20:00
>>516
Stringを別のStringに代入にはなっているだろ

520 :デフォルトの名無しさん:2008/09/21(日) 16:20:20
別の方法で実装する事にすると、今度はその"別の方法"と組み合わさる"別の何か"がこれまた立ちふさがって、結局いつも出来ないか間に合わないのです。

521 :デフォルトの名無しさん:2008/09/21(日) 16:21:35
>>518
CATALINA_HOME/logs/catalina.outに出力されてないか?

522 :デフォルトの名無しさん:2008/09/21(日) 16:26:29
>>519
String a=b;は aがbを参照してるだけじゃん

523 :デフォルトの名無しさん:2008/09/21(日) 16:30:33
わかった、わかった
Stringを別のStringに代入する方法なんてないでOK?

524 :デフォルトの名無しさん:2008/09/21(日) 16:31:13
細かいことは気にせずどんどん組め

525 :デフォルトの名無しさん:2008/09/21(日) 16:38:13
aがbを参照してるw

526 :518:2008/09/21(日) 16:38:58
>>521
出力されてませんのです。
なんとなくtomatの設定じゃなくって権限がらみぽいですね。

527 :デフォルトの名無しさん:2008/09/21(日) 16:51:02
>>526
Tomcatはどうやってインストールして、どんな風に実行している?

528 :デフォルトの名無しさん:2008/09/21(日) 16:52:31
Fontクラスでフォントサイズをピクセル単位で指定したオブジェクトを得たいのですが、やり方ありますか?
教えてください

529 :デフォルトの名無しさん:2008/09/21(日) 16:54:13
無理。
getFontMetricsから取得は可能。

530 :518:2008/09/21(日) 17:05:54
>>527
か、解決しました(;´Д`)

インストールは sudo apt-get install tomcat5.5 で
実行は 初回rootで次からはtomcat用のユーザでしてました。

結局のところ CATELINA_HOME/logs のリンク先のオーナーが root になってました。

java と関係なくてすんまそん。
色々ありがとうございました。

531 :デフォルトの名無しさん:2008/09/21(日) 17:37:14
>>523
意味がわからん。
1) String型の変数に何らかのStringオブジェクトのリファレンスを代入すること
はできる。
2) mutableなオブジェクトに含まれる非finalなインスタンス変数に、同型である
別のオブジェクトのインスタンス変数をコピーすることはできる。しかし、String
オブジェクトはimmutableなので、Stringオブジェクト内部のインスタンス変数を
別のStringオブジェクトのインスタンス変数にコピーすることはできない。
3) ただし、既存のStringオブジェクトから別の実体を持つStringオブジェクトを
新規に生成することはできる。(Stringはimmutableなので、同一の値を持つ別の
実体をあえて生成することに意味があるとは思えないが)

532 :デフォルトの名無しさん:2008/09/21(日) 17:51:33
>>498
デスクトップならここかな
http://wisdom.sakura.ne.jp/system/java/
あってる間違ってるとか言われるけど、
それなりの解説とコンパイルすれば動くソースが載ってるからいいんじゃないかな

あとはこのへんとか
http://www.javadrive.jp/
Swing以外にもサーブレット入門とかあるから、そこそこはできると思われ

533 :デフォルトの名無しさん:2008/09/21(日) 18:17:18
>>532
早速やってみます
レスありがとうございました。

534 :デフォルトの名無しさん:2008/09/21(日) 18:56:21
>>513

513は「String a = b;」では、新しく文字列が生成されない事が分からないのでは。

535 :デフォルトの名無しさん:2008/09/21(日) 19:03:32
新しい文字列を生成する必要あるか?

536 :デフォルトの名無しさん:2008/09/21(日) 19:04:23
strcpy()の動作だとString s = new String(hoge)じゃないのか?

あんまり意味ないけど

537 :デフォルトの名無しさん:2008/09/21(日) 19:49:48
質問者は単に別の変数に、ある変数で参照している文字列と同じ文字列を参照させたいだけかと

538 :デフォルトの名無しさん:2008/09/21(日) 20:22:06
CとJavaで文字列の常識が違う事をすっ飛ばして勢いでレスしてもな。

539 :デフォルトの名無しさん:2008/09/21(日) 21:57:26
table.putClientProperty("terminateEditOnFocusLost", Boolean.TRUE);
とかありますけど、こういう"terminateEditOnFocusLost"というような指定可能な文字列は、
どういった経緯で知ることができるのでしょうか。
指定可能なプロパティを列挙できるメソッドなどが用意されているのでしょうか。
そもそも、クライアントプロパティというのが何なのかよくわかりません。


540 :デフォルトの名無しさん:2008/09/21(日) 22:49:40
知ることが可能もなにも作った奴が決める文字列
それがライブラリならマニュアル嫁って話

541 :デフォルトの名無しさん:2008/09/21(日) 23:04:47
http://pc11.2ch.net/test/read.cgi/tech/1220388885/

542 :デフォルトの名無しさん:2008/09/21(日) 23:06:41
↑スマン ヘンなことした

>>499

エラーをそのまま書いてよ。
みんな親切に想像してレスしてくれてるけど
その想像の段階で勘違いってこともよくあるし、
エラーの中で自分でここが重要だって思っててもそれが思い込みで
見る人が見ればもっと別な所が重要ってこともよくあるし。


543 :デフォルトの名無しさん:2008/09/21(日) 23:22:07
>>542
だからま、エラーメッセージはコピペしろ、と

素のメッセージをWeb検索するだけで答えが見つかることもあるし。
脳内変換はその後でも遅くは無い。

544 :デフォルトの名無しさん:2008/09/22(月) 00:01:38
SwingでGUIアプリを作りたいんですが
いざ作り始めると美しくないソースになってしまいます
今考えているのは以下の二つの方法なのですが
実際GUI開発されている方はどういった設計でGUIアプリを
開発されてますか?
 
 1.メインウィンドウクラスはstaticなコンポーネント
   満載で、イベントクラスからは直接処理結果を返す
   こんな感じ MainWindow.label.setText("結果");

 2.メインウィンドウクラスはシングルトンで毎回取得
   取得して、セッターゲッターを必要に応じて作って
   処理結果を返す
   こんな感じ MainWindow.getInstance().setRet1("結果");

何となく1の手法はせっかくのgcをうまく生かせてないみたいで
嫌いなのですが・・・
何かメジャーな開発手法があれば教えてください。



545 :デフォルトの名無しさん:2008/09/22(月) 00:21:58
スレッドの事もあるし、その二つで言えば2だろうね。
けどシングルトンもだめって確かSwing Application Frameworkの中の人が批判してたね。

546 :デフォルトの名無しさん:2008/09/22(月) 00:25:00
そもそもメインウィンドウ=アプリケーションクラスとかSwingの構築をEDT上でやってないとか言うオチじゃないだろうな。

547 :デフォルトの名無しさん:2008/09/22(月) 00:29:43
JSR 295-296 を使えばプロパティのバインディングも使えるようになるし、リソース管理とかライフサイクルもフレームワークに任せられるようになる。
試したいならばNetbeansである程度出来るから、やってみると面白い

548 :544:2008/09/22(月) 00:55:03
>>545-547
ありがとう、いろいろ勉強不足な事に気付きました。
EDTなんてのがあったんですね。
frameをsetvisible(true);した瞬間に別スレになるのかー
毎度別スレッドからになってた。

やっぱGUIはめんどくさい


549 :デフォルトの名無しさん:2008/09/22(月) 07:47:38
>>499です。

 その後、皆様のご回答をもとにいろいろやった結果、実はカラムPIYO(主キー
にしていた)に対するエラーではなく、他のINTEGER型のカラムに対するエラー
である事がわかりました。
 そのカラムはNULLを許容させていたので、検証の時もそのカラムにバインドし
ている入力領域であるtextFieldには何も値を入れず、当然にNULLを代入させてい
たつもりだったのですがそれが良くなかったようです。

550 :デフォルトの名無しさん:2008/09/22(月) 07:48:45
 情けないです。

 ちなみにエラーメッセージは
システムメッセージ
Error :Number of conflicts while synchronizing:
    1 SyncResolver.INSERT_ROW_CONFLICT row 6 型 INTEGER に対して無効な
       文字ストリング・フォーマットです。
 でした。

551 :デフォルトの名無しさん:2008/09/22(月) 07:54:22
 解決への道程が全く推測できない状況の中で手当たりに試行錯誤していくうち、
テーブルの稼動を検証するため、何度かじかにクエリーを実行した事があり、その
時のINSERTの結果とコードにリテラルを突っ込んで試した時の結果を取り違えてし
まった事が悔やまれますとともに、答えのない質問をばら撒くという過ちを犯した
事をお詫びします。
 >>543 はじめ皆様すみませんでした。


 このNULLを許容しているカラムには、状況によってNULLを入れる必要がある為、
その時に入力領域とどう連動させるかという問題が残るのですが、それはまた今度
考える事にします。

 全く何なんでしょうね、俺。ほんとすみません。

552 :デフォルトの名無しさん:2008/09/22(月) 11:29:19
こんにちは。javaに関するzipを探しているのですが見つからず、情報をいただきたく書き込ませていただきます。
自分は研究のためにjava_xml_pack-summer02_01.zipというファイルを探しています。この中に入っているjaxm-1.1_01フォルダが目的です。
上記ファイルが置いてある場所なのですが、自分の持っている資料には
ttp://java.sun.com/xml/downloads/javaxmlpack.html
にあると記載されています。
しかし、上記サイトに飛ぶと
ttp://java.sun.com/webservices/downloads/
に飛ばされてしまいます。
サイト構成が変わってファイルの置き場が変わってしまったのでしょうか?
もし、上記ファイルの在り処に検討がつく方がいるならばご教授願いたいです。

553 :デフォルトの名無しさん:2008/09/22(月) 11:37:35
jaxm-1.1で検索すれ

554 :デフォルトの名無しさん:2008/09/22(月) 14:20:29
JAXPが出て公式の配布は終わった奴だっけ?


555 :552:2008/09/22(月) 14:24:27
>>553
ありがとうございます。探してみます。

>>554やはり公式ではもう配布していないのですねorz
ありがとうございます。

556 :デフォルトの名無しさん:2008/09/22(月) 14:58:29
zipは特許大丈夫か確認したの?とくに暗号化とか。

557 :デフォルトの名無しさん:2008/09/22(月) 15:32:56
>>556
なんの話をしているんだ?


558 :デフォルトの名無しさん:2008/09/22(月) 19:15:25
プログラミングは初めてなんですが、Javaからはじめても大丈夫でしょうか?
パソコンの知識はかなりあります。軽くPHPをいじったことも。

559 :デフォルトの名無しさん:2008/09/22(月) 19:35:55
大丈夫じゃね?
Rubyだろうがなんだろうが、興味持ったのやるのが一番

560 :デフォルトの名無しさん:2008/09/22(月) 19:36:24
最近はプログラミングをしたことがなくても
パソコンの知識はかなりありますって言えるのか・・・
世も末だな

561 :デフォルトの名無しさん:2008/09/22(月) 19:39:27
時代は変わったのさ。
COBOL以外ならなんでもいいじゃん。

562 :デフォルトの名無しさん:2008/09/22(月) 19:43:13
>506
パソコンの知識とプログラミングの知識はまったく別だろ、少なくとも現代では。
LANの設定とかコマンドプロンプトの扱いとか、それすら出来ない奴がマの新人として雇用されるわけだ、それよか幾分もマシ

563 :デフォルトの名無しさん:2008/09/22(月) 19:50:55
俺がPC-8001を手に入れたころはプログラムを組まないと
何もできなかった。むしろプログラムを組むことだけが目的であった。

564 :デフォルトの名無しさん:2008/09/22(月) 19:57:11
うんそうだったね…

565 :デフォルトの名無しさん:2008/09/22(月) 19:59:49
パソコン(家電)なんてネットが目的だろ
パーソナルコンピュータの時代は終わっていると気づけ

566 :デフォルトの名無しさん:2008/09/22(月) 20:04:17
>>558
Javaは文法的にもCの発展版なのでCからやるといいですよ。特にポインタは難しいですけど、これを極めておくと他の言語でも応用が利きます。

567 :デフォルトの名無しさん:2008/09/22(月) 20:15:17
だけど仕事でC使うなんてめったになくない?
個人的にC言語は何でもできるけど一番難しいと思っているよ。

568 :デフォルトの名無しさん:2008/09/22(月) 20:17:42
Javaでいいか聞いてるんだから「Javaでいい」で終了
Java vs Cは他のスレでやれ

569 :デフォルトの名無しさん:2008/09/22(月) 20:17:55
所詮、趣味プログラムとかなんでしょ?
今更Cなんて化石を触らすのは百害あって一利なしだよ
最初からJavaで良いと思う

570 :デフォルトの名無しさん:2008/09/22(月) 20:27:29
やりたいのをやれ、でいいだろ。
Javaスレに来て、Cがいいですか?とか聞いているんじゃないわけだし

571 :デフォルトの名無しさん:2008/09/22(月) 22:22:09
化石かどうかというならJavaももう古参だろ。
それならJavaみたいな静的型に頼るよりもやっぱりsclaraとかjavascript,rubyじゃないの?

572 :デフォルトの名無しさん:2008/09/22(月) 22:22:56
まあ、javaもcも難しいからな。vbaにしとけw

573 :デフォルトの名無しさん:2008/09/22(月) 22:32:06
>>571
なんでJavaよりsclaraとかjavascript,rubyが良いの?

574 :デフォルトの名無しさん:2008/09/22(月) 22:33:53
他 所 で や れ

575 :デフォルトの名無しさん:2008/09/22(月) 22:35:38
動的型言語だからに決まってんでしょ。日本語も理解できないカスw

576 :デフォルトの名無しさん:2008/09/22(月) 22:43:48
初めて言語学ぶのに
静的言語より動的言語を選ぶもまえの考えが聞きたかったのだが・・
まぁいっか

577 :デフォルトの名無しさん:2008/09/22(月) 22:48:46
パソコンの知識=ねとらんな時代だからなぁ

578 :デフォルトの名無しさん:2008/09/22(月) 22:51:29
すくらら?

579 :デフォルトの名無しさん:2008/09/22(月) 22:52:26
>>576
おまえはプログラム言語を使って誰もが驚くようなアプリを作ってるのか?

580 :デフォルトの名無しさん:2008/09/22(月) 23:02:09
どうせCではポインタで挫折するし、Javaは型を気にしながらやらなければならないから、
お気軽な動的言語でいいんじゃないの。

581 :デフォルトの名無しさん:2008/09/22(月) 23:09:54
質問です。
Javaで趣味程度にプログラムを作っているのですが、最近ちょっと疑問に思うことが。
MMOのサーバーはどんな設計になっていて、それはJavaでも可能なのでしょうか。
マウスをドラッゲして移動したキャラクタの座標をを、画面にいるユーザー全員に送信するなど
考えただけでも処理が大変そうで。Java.nioで並列処理をするとかで行けるものなのでしょうか?

582 :デフォルトの名無しさん:2008/09/22(月) 23:18:17
規模次第かと思うけど、向かないだろうな。
第一にグラフィックは2Dくらいならともかく3Dはハード性能を引き出せないから限界がある
通信周りとかも暗号化したり速度を出そうとすると標準的なライブラリじゃ無理がある
まあ、数百人が遊ぶ程度でチートとかやろうと思えば可能って割り切れば作れないことはないだろうね

583 :デフォルトの名無しさん:2008/09/22(月) 23:25:05
サーバでそ?
グラフィック関係ないじゃ・・・

584 :デフォルトの名無しさん:2008/09/22(月) 23:26:54
サーバ側はJavaの方が向いている場合もあるんじゃね?
どんだけ並行処理できるかが勝負な気がする。

585 :デフォルトの名無しさん:2008/09/22(月) 23:32:20
>>581
普通のいわゆるWebアプリのサーバは知ってますか?
MMOの設計を知ってるわけじゃないけど、あんまり大差ないと思いますよ。
基本的には要求が来るまで待ってて
要求に従っサーバのデータを書き換えたり、情報を送り返してるだけだと思う
TCPがUDPになってるとかはあるだろうけど

586 :デフォルトの名無しさん:2008/09/22(月) 23:40:08
基礎レベルまで学べる入門書ってどれがいいですか?
Eclipseを使ったものならなおよし

http://www.amazon.co.jp/gp/product/4797344520/ref=cm_cr_pr_product_top
この本ってどうなんですか?


587 :デフォルトの名無しさん:2008/09/23(火) 00:27:49
>>575
Scalaは静的型言語だぞ。

588 :デフォルトの名無しさん:2008/09/23(火) 00:31:03
scalaなんてすぐ滅亡するから眼中なしでしょw

589 :デフォルトの名無しさん:2008/09/23(火) 00:34:30
566が余計なこと書くから・・・

590 :デフォルトの名無しさん:2008/09/23(火) 00:48:27
お助けお願いします。

スレッド内でメソッドに飛びループで処理をさせているんですが
ループの途中でスレッドに帰っちゃってる状態なんですが
        (ループが途中で終わるような記述は書いてないです)
どうも原因が掴めないです、スレッドが原因ってことはないですか?

591 :デフォルトの名無しさん:2008/09/23(火) 01:16:22
そんな説明じゃ助けられないからコードを出せよ

592 :デフォルトの名無しさん:2008/09/23(火) 05:48:04
str.intern();とするとコンストプールに追加されてしまいますが、コンストプールに追加しないで
当該文字列がコンストプールにあるかどうかを確認するにはどうすればよいでしょうか?

593 :デフォルトの名無しさん:2008/09/23(火) 11:28:58
.classを読めば良いんじゃない?

ところで、何で確認する必要があるの?

594 :デフォルトの名無しさん:2008/09/23(火) 12:09:43
確認しなければならない理由が解らん

595 :デフォルトの名無しさん:2008/09/23(火) 12:45:09
>>492
java.awt.Toolkit

596 :595:2008/09/23(火) 12:47:24
>>595 は間違い
e.getSource();
かな

597 :デフォルトの名無しさん:2008/09/23(火) 12:58:45
>492
Ctrl+c, Ctrl+v

598 :デフォルトの名無しさん:2008/09/23(火) 14:14:51
ヤフオクのページで商品名や値段などの任意の情報だけを取得したいんですが、
まずHTMLを全て読み込んでそこから該当する情報だけを抜き出すしか方法はないですか?

それだと必要のない情報(宣伝など)まで一度読み込まないといけないから、1000行近く読み込む事になるんですよ。
なるべく処理を軽くしたいんですがいい方法ありませんか?

599 :デフォルトの名無しさん:2008/09/23(火) 14:18:36
>>586の回答お願いします。

600 :デフォルトの名無しさん:2008/09/23(火) 14:19:02
intern()は実行時にやります。.classは関係ないかと。

601 :デフォルトの名無しさん:2008/09/23(火) 14:23:44
>>598
よく知らんが、どうせあるだろうと思ってぐぐると
やはりAPIが公開されてるらしい
http://developer.yahoo.co.jp/auctions/

602 :デフォルトの名無しさん:2008/09/23(火) 15:23:59
Debian 4.0 etch 使ってます。
公式のSunサイトから JDK6をダウンロードしてインストールしました。
環境変数も $JAVA_HOMEの設定と $PATH:$JAVA_HOME/bin に追加して
問題なく正常にtomcatが起動する状態になりました。

しかし # reboot とOSを再起動するとtomcatが自動的にあがってきてくれません。
tomcatは
# apt-get install tomcat5.5 tomcat5.5-admin tomcat5.5-webapps
でインストールしました。
同じようにインストール(apt-get install apache2) したApache2は
OS起動時に自動的に起動してくれます。
# ls /etc/rc2.d/ すると
S90tomcat5.5
が存在しますので、自動的にあがってくるはずなのですが・・・どうすれば自動的に立ち上がりますか?

603 :デフォルトの名無しさん:2008/09/23(火) 15:32:44
どうみてもスレチ

604 :デフォルトの名無しさん:2008/09/23(火) 15:48:25
>>601
ありがとうございます。
APIは盲点でした、しかもヤフーが公開してたとは。


605 :デフォルトの名無しさん:2008/09/23(火) 17:17:12
581です。レスありがとうございます。ソケット通信などは組んだことはありますが、やはりあれの応用となるんですね。
しかし、およそ1マップに100人いたとして、そのうちの一人が座標を1でもかえると全ユーザーに新座標を送信すると考えると
ドラッグで動かしている間にも座標が変わる度に
サーバーに座標送信→サーバーが、受け取った座標を同マップにいるユーザー全員に送信。
クライアント側では、絶え間なく送られてくる他のユーザーの座標をリペイントしまくる。
やっぱりMMOの技術はすごいですね。

606 :デフォルトの名無しさん:2008/09/23(火) 17:50:14
それを言うなら金融市場のデータ処理は桁違いに凄そうだ

607 :デフォルトの名無しさん:2008/09/23(火) 17:57:36
>>605
たぶんそんな面倒なことになってないと思うけど、秋の夜長の妄想君ですか?

608 :デフォルトの名無しさん:2008/09/23(火) 18:00:58
ひねくれすぎw
>>605が何したよ。実際を知っているのならば軽く訂正してあげればいいのに・・

609 :デフォルトの名無しさん:2008/09/23(火) 18:15:20
>>605
スレチなんであんまり引っ張りたくないんだけど、
同期するのは相互作用があるユーザだけで十分でしょ
少なくとも同一画面内のキャラだけで良いし、多分もっと少なくできると思うから
せいぜい数キャラ同期取れば十分では

610 :デフォルトの名無しさん:2008/09/23(火) 19:52:55
画像を表示してちょろまかとした処理をするクラスAがあって、このクラスAは他の色んなクラスから呼ばれます
呼び出し元のクラスによって表示する画像が違う(他の処理は同じ)場合、
それぞれの画像についてのAのサブクラスを作って、それをそれぞれ呼び出すのと
呼び出すのは常にAで、呼び出すときにAに画像を引数として渡すのとどちらがいいですか?

611 :デフォルトの名無しさん:2008/09/23(火) 19:54:33
画像を切り替えるためだけにそれぞれサブクラス作るのはアホらしくね?

612 :デフォルトの名無しさん:2008/09/23(火) 20:02:37
ありがとうございます
サブクラス作るのは止めます
処理がそれぞれ異なったりするときはサブクラス作るのもありですよね?

613 :デフォルトの名無しさん:2008/09/23(火) 20:03:43
まずはjavaでシューティングゲームを作ってみろ。

614 :デフォルトの名無しさん:2008/09/23(火) 20:07:23
今作ってるんです
いまのところは直進弾しかないんで、画像変えるだけですけど
後々狙い撃ち弾や分裂弾、回転弾などを作るなら弾のクラス作って、それぞれの弾の性質のサブクラス作ろうかなって

615 :デフォルトの名無しさん:2008/09/23(火) 20:38:40
海外のゲームのところに良質のサンプルがたくさんあるからそっちいけ。
まずは英語が出来ないとまったく話にならないけどなw

616 :デフォルトの名無しさん:2008/09/23(火) 21:32:15
auのオープンアプリってどうやって作るんですか?

617 :デフォルトの名無しさん:2008/09/23(火) 22:00:16
>>616
http://www.au.kddi.com/ezfactory/tec/spec/openappli.html

618 :デフォルトの名無しさん:2008/09/23(火) 22:13:40
Javaと書いたらJAVAの間違いだよと指摘されました。
しかしsunのページに行ったら両方書いてありました。
どちらが正しいのでしょうか。

619 :デフォルトの名無しさん:2008/09/23(火) 22:18:30
どっちでもいい

620 :デフォルトの名無しさん:2008/09/23(火) 22:32:39
>>617
それとhttp://www13.plala.or.jp/naka_jima/Eclipse/chapter12.htmlを見てやってみましたが、
ケータイでダウンロードすると
 通信に失敗しました。
 しばらくしてからリトライして下さい。
 (200:4207)
と表示されてエラーになりました・・・

621 :605:2008/09/23(火) 22:53:40
すいません・・・JavaでMMOのサーバが出来るか相談するつもりが、いつの間にかサーバー全体の話になってました。
スレ違いすいませんでした。

622 :デフォルトの名無しさん:2008/09/23(火) 23:21:26
JAVAアプレット側で作成した文字列をHTML等で作ったテキストエリアにコピーすることって可能なのでしょうか?
ヒントとなるサイトとかやり方とかを教えてください。よろしくおんがいします。


623 :デフォルトの名無しさん:2008/09/23(火) 23:24:14
>>622
AppletからJavaScriptをキックする事も、JavaScriptからAppletをキックすることも可能
だけど、ブラウザ依存の部分もあったはず


624 :デフォルトの名無しさん:2008/09/24(水) 00:23:12
いや、キックじゃないな。まずはAppletからJavascriptをパンチして、それからキックだろw

625 :デフォルトの名無しさん:2008/09/24(水) 01:31:43
>>623
返答ありがとうございます。
Appletからキックということは、AppletからJavaScriptを実行してテキストエリアに書くということでしょうか?
ヒントとなるサイトとかあったら教えてください

626 :デフォルトの名無しさん:2008/09/24(水) 01:49:53
LiveCnnect。ただしmozilla系限定。
SeaMonkey持ってるならjsコンソールにjava.lang.System.out.println("西園寺 世界!!")と入れてjavaコンソール開くんだ!

627 :623:2008/09/24(水) 02:08:28
>625
http://www.google.co.jp/search?q=Applet%E3%81%8B%E3%82%89JavaScript

628 :デフォルトの名無しさん:2008/09/24(水) 03:07:02
>>619
どちらでも大丈夫でしたか。
ありがとうございます。

629 :デフォルトの名無しさん:2008/09/24(水) 12:27:30
二重のif文のテストデータについてなんですが、

仕様ではランクがA・Bと設定されていて、
ランクAで点数が80以上ならok、
ランクBで点数が85以上ならランクup、60以上85未満だとランクそのままと表示され、
それ以外の場合のランクが入った場合は
何も表示されないというものです

それで、ランクがA・B以外の場合と設定したとして、
テストデータはどうすればいいか困っています

Cの場合、Dの場合と記述するべきですか?

またそのとき境界値は記述する必要はありますか?
記述する必要があれば、境界値は60,80,85ですか?

初歩的な質問ですみません。よろしくお願いします

630 :デフォルトの名無しさん:2008/09/24(水) 14:06:06
「それ以外のランクが入った場合」の意味がわからない

631 :デフォルトの名無しさん:2008/09/24(水) 14:20:50
Process.exitValueの戻り値で質問
正常が0なのはいいけど、他の場合の戻り値は何なんでしょう?
JavaDocにも「正常なら0」としか書いてないですし
全部例外になるんでしょうか

632 :デフォルトの名無しさん:2008/09/24(水) 14:26:43
起動した外部アプリケーションの終了時の値が返るんじゃないの?
だからそのアプリケーションによりけりでしょ。たぶん。

633 :デフォルトの名無しさん:2008/09/24(水) 14:44:15
>>629
「それ以外」をすべてテストすることなど不可能だから
"C", "", null についてやっておけばいいんじゃないか?

あと Java 直接関係ないから微妙にスレ違い

634 :デフォルトの名無しさん:2008/09/24(水) 15:10:32
STGを作ったんだけど、
インスタンスの動的関連を表すにはどのUML図を使うのが適切ですか?

635 :631:2008/09/24(水) 15:30:22
>>632
遅くなったけどありがとうございました

636 :デフォルトの名無しさん:2008/09/24(水) 17:50:16
Semaphoreの開放をロック取得順にしたいのですが、できますか?

637 :デフォルトの名無しさん:2008/09/24(水) 20:32:10
>>634
フローチャート図

638 :629:2008/09/24(水) 22:00:20
>>630,633
ありがとうございました、お陰様で解決しました
そしてスレ違い失礼しました

639 :デフォルトの名無しさん:2008/09/24(水) 22:23:34
String str = new String("aaaa");
String str = new String("bbbb");

とすると、最初の方のオブジェクトってガベージされるまでメモリ上に残っちゃいますか?

640 :デフォルトの名無しさん:2008/09/24(水) 22:31:47
なんか突っ込みどころ満載なコードだね。

String str = "aaaa";
str = "bbbb";

という理解でよい?

確かに"aaaa"の方はガベコレされるまで残るけど、あんまり気にするこっちゃないよ。

641 :デフォルトの名無しさん:2008/09/24(水) 22:32:25
>>639
コンパイルエラーになります。

メモリを気にしては駄目です。
このぐらいを気にするぐらいなら、new String(String) を使わないでください。

642 :デフォルトの名無しさん:2008/09/24(水) 22:38:00
>>640
いや。全然違うけどw

643 :639:2008/09/24(水) 22:59:53
>>640
>>641
>>642

すいませんw

String[] str = new String[3];
str[0] = "aaaa";
str[1] = "bbbb";
str[2] = "cccc";

for(int i = 0; i < 3; i++) {

String str2 = str[i];
System.out.println(str2);

}

こんな感じを言いたかったんです
System.out.println()の後で
str2 = null; を入れる意味ってありますか?


644 :デフォルトの名無しさん:2008/09/24(水) 23:02:04
>>643
なら始めからそう書けよ。嫌われるぞ。

645 :デフォルトの名無しさん:2008/09/24(水) 23:04:45
>>644
もう遅い。

646 :デフォルトの名無しさん:2008/09/24(水) 23:14:17
>>643
まったくない

647 :デフォルトの名無しさん:2008/09/24(水) 23:20:06
null入れとくとNullPointer例外が発生してウハウハになることがあるけどねw

648 :639:2008/09/24(水) 23:27:19
>>644
>>645
>>646
>>647
あざーす!

649 :デフォルトの名無しさん:2008/09/25(木) 07:29:05
ちょっと疑問が・・・。
今、コレクションフレームワークの勉強してんだけど、
List<String> list = new ArrayList<String>();
ってコードがあった。
何で、こんな書き方してるんでしょうか。
ArrayList<String> list = new ArrayList<String>();
じゃだめなのかな?
場合によってこういう書き方をすればいいというのが
あるんでしょうか。

650 :デフォルトの名無しさん:2008/09/25(木) 07:34:51
というか、君が勉強不足なだけでしょw

651 :デフォルトの名無しさん:2008/09/25(木) 07:35:46
>>649
ensureCapacity とか trimToSize とか removeRange とか使わないのなら
変数の型が ArrayList<String> である必要はない。

652 :デフォルトの名無しさん:2008/09/25(木) 07:44:39
>>649
何でもなにも、OOPっぽくてカッコいいからに決まってんでしょw
そんなのもわかんないおまえはバカ?

653 :デフォルトの名無しさん:2008/09/25(木) 07:45:32
>>649
一つの指針として、宣言にはクラスよりインタフェースを使えというものがある
listをArrayListとしてしまうと、ArrayListからの変更は容易でないが
listをListとしておけば、LinkedListやListインタフェースを実装した他の何かにでも交換が効くようになる

でも実際のところ、listのスコープが狭いのであれば特に問題ない

654 :デフォルトの名無しさん:2008/09/25(木) 08:06:49
そういう意見を良く聞くんですけど、そのように変更するようなコードはそもそも設計不足じゃないですか?アルゴからして全然違うんですけどね。

655 :デフォルトの名無しさん:2008/09/25(木) 08:35:33
アルゴリズムを変えることが必須のケースもあるんだぜ?


656 :デフォルトの名無しさん:2008/09/25(木) 08:46:18
いや。それはない。

657 :デフォルトの名無しさん:2008/09/25(木) 09:04:37
ArrayListにするメリットがほとんどないからね
たぶんArrayListがListにない便利なメソッドをたくさん持ってたらArrayListにしてると思うよw

658 :デフォルトの名無しさん:2008/09/25(木) 09:06:03
>>654
アルゴリズムをアルゴと略すな、と思う元MZユーザー。

659 :デフォルトの名無しさん:2008/09/25(木) 09:06:30
というか、俺はjava.util.Vectorをよく使うんだがw

660 :デフォルトの名無しさん:2008/09/25(木) 09:08:12
>>658
なんかゴルゴの親戚みたいでかっこよくね?

661 :デフォルトの名無しさん:2008/09/25(木) 09:09:15
Servletなのですが教えてください。

セッションIDがわかっているとして
そのセッションIDからそのセッションを無効にすることはできますでしょうか?


662 :デフォルトの名無しさん:2008/09/25(木) 09:11:33
いまだにArrayListを使う意味が分からん。
Listは普通はインスタンス変数でもつからね…

663 :デフォルトの名無しさん:2008/09/25(木) 09:17:27
また外務大臣時代の漫画大賞みたく、優秀アプリ・ソフト大賞、優秀研究大賞やってくださいよ麻生さん。
森さんみたくイット革命とか言っていつのまにかアメリカに追い越されたりしないで真面目にやってね。麻生さん。

664 :デフォルトの名無しさん:2008/09/25(木) 09:25:47
いやちがう。俺たちには中国共産党のソフトウェア業界がついているはず!!

665 :デフォルトの名無しさん:2008/09/25(木) 09:29:27
確かに警察よりは共産党の方が信用できるけどな。
警察はすぐ裏切るから信用できん。

666 :デフォルトの名無しさん:2008/09/25(木) 09:53:00
そろそろソフト産業育成してくれないかな。麻生さん。
ハードは日立とかNECとかあるから大丈夫けど、ソフトはMSとかみたいな大規模専業会社はないでしょ。
ここらでNTTデータあたりが出資して、ちっちゃいソフトハウスを全て結合してソフト産業を育成してほしい。
そろそろやっとかないと中国が本腰入れてくれるからさ、IPAあたりのリソースとプロジェクト組んでそろそろ日本のソフト産業を保護する会社のでかいの作るとかどお?

667 :デフォルトの名無しさん:2008/09/25(木) 09:54:39
名前:
E-mail:
内容:
windowsで動かしていたtomcatのアプリがlinux上で動かそうとすると、
log4jで、ファイル出力用とコンソール用の2つを出力させてるんですが、
ファイルのみ出力されません。
出力先は、
/usr/local/tomcat/webapps/hogeProject/log/log.txt
です。
windowsとlinuxの相違など、なにか問題点がありそうだったらご教授ください。


668 :デフォルトの名無しさん:2008/09/25(木) 09:59:06
>>659
Vectorはマルチスレッド対応が無駄になることが多いから、理由がなけ
ればやめとけー。



669 :デフォルトの名無しさん:2008/09/25(木) 11:39:04
inlineメソッドってjavaにないですか?

670 :デフォルトの名無しさん:2008/09/25(木) 11:48:50
ないです
そこまで速度が気になる場面でJavaを選ぶことがそもそも間違い

671 :デフォルトの名無しさん:2008/09/25(木) 11:53:57
>>670
debug(xx + xx + xx);でデバッグでないときに演算処理が無駄だから、といわれ…
isdebugでifでくくればいいのですが、ログ出力に3行がいやだったので…

672 :デフォルトの名無しさん:2008/09/25(木) 12:06:15
1行で書けばいいではないか
if(isdebug)debug(xx+xx+xx);

673 :デフォルトの名無しさん:2008/09/25(木) 13:23:24
スレここでいいか微妙なんだけども教えてくだしあ

JAXB2.1で、XSDにmaxOccurs="unbounded"みたいに書いた部分は
デフォルトではList型で実体がArrayListになるよね。

モデルをSwingで作ったUIでアレコレいじってマーシャル、とかやりたいので
Listのところを同期リストにしたいんだけども、Vectorはレガシーなんで使いたくない。
(規模小さいので、Vectorを使いたくない理由にオーバーヘッド云々は含めていない)

しかし、JAXBカスタマイズのcollectionTypeにはFQCNしか書けない。
(Collections.synchronizedList(new ArrayList())と出来るのが理想)

xjcの成果のモデルクラス群はreadOnlyであるべきだと思うので、
ArrayListの部分を同期リストにラップするような修正も、出来れば避けたい。

何か解決策はあるんだろうか…今はVector使うか修正するしかないのかなぁ?

674 :デフォルトの名無しさん:2008/09/25(木) 13:31:09
連投スマソ

シングルスレッドで設計してArrayList使えばいいだけの話か

675 :デフォルトの名無しさん:2008/09/25(木) 13:33:53
アア・・・俺はもうだめなようです
そもそもSwingはシングルスレッドでしたorz

676 :デフォルトの名無しさん:2008/09/25(木) 15:21:00
プログラマーの適正があるかないかってどうやって分かるの?

677 :デフォルトの名無しさん:2008/09/25(木) 17:59:12
プログラマとしての人生を終えたとき。

678 :デフォルトの名無しさん:2008/09/25(木) 18:54:51
>>668
あの意味が分からないんですけど、MTだからVector使ってるんですけど、それ以外にVectorを使う理由があるんですか?

679 :デフォルトの名無しさん:2008/09/25(木) 19:13:10
>>678
1.1 との互換性とか。

680 :デフォルトの名無しさん:2008/09/25(木) 20:04:46
ああ、アプレット用途ってのもあったねw

681 :デフォルトの名無しさん:2008/09/25(木) 20:07:19
マルチスレッド前提だから、awtばっかりでswingなんか使ってないんだけど・・・なんかまずかった?といっても、MTとMVCつかうわけだから別にどっちでもいいのかなって感じはするけどね。

682 :デフォルトの名無しさん:2008/09/25(木) 20:15:00
>>673

class MyCollectionsSynchronizedListNewArrayList extends ArrayList

ところであんたはプログラマ(PG SE)に向いてないな。どの言語をやってもどの概念を勉強してもこの業界では成功しないと思うよ。


683 :デフォルトの名無しさん:2008/09/25(木) 20:26:38
Vectorって書き換えられて、今やレガシーともいえないんじゃなかったか?

684 :デフォルトの名無しさん:2008/09/25(木) 21:00:36
なにを根拠にレガシーって言ってんですか?

685 :デフォルトの名無しさん:2008/09/25(木) 22:58:10
SwingのJDialogに関して質問があります。
ダイアログ画面を特定の場所に表示させた後、マウスで画面を移動させないようにするため、
setEnable(false)を設定したのですが、右上の×ボタンが押せなくなってしまいました。
マウスで画面を移動させなくする&右上の×ボタンでウィンドウを閉じるには
どうすればいいでしょうか?

686 :デフォルトの名無しさん:2008/09/25(木) 23:21:35
xボタンの位置にxボタンのふりをした別のJWindowを・・・・・いや、なんでもない

687 :デフォルトの名無しさん:2008/09/26(金) 01:02:02
>>678
イテレータ回すときは結局くくらなきゃいけないんだから、
Vectorのsynchronizedって無駄じゃない?

688 :デフォルトの名無しさん:2008/09/26(金) 01:15:50
それは要素全部をイテレーションするときの話だろ?
MTとはあまり関係ないな。

689 :デフォルトの名無しさん:2008/09/26(金) 01:54:58
Vector使う奴は池沼

690 :デフォルトの名無しさん:2008/09/26(金) 03:06:01
といっても、次からはクロージャが使われるからVectorもよく使われるようになるよ。

691 :デフォルトの名無しさん:2008/09/26(金) 06:55:50
クロージャとVectorは関係なかろう

692 :デフォルトの名無しさん:2008/09/26(金) 11:27:31
コルーチンと勘違いしてんだろ

693 :デフォルトの名無しさん:2008/09/26(金) 11:34:55
AWTで,Panelの上に別の2枚のPanelを上下に並べるとき,その高さの比率を一定にするにはどうすればいいんでしょうか。
GridBagLayoutでgridheightを目的の比率に指定してもだめでした。

694 :デフォルトの名無しさん:2008/09/26(金) 11:44:52
weightyを設定する

695 :デフォルトの名無しさん:2008/09/26(金) 12:14:14
>>694
目からウロコ。
weight の意味をすっかり勘違いしてました。
「余分なスペースを分配する方法を指定」って,わかりにくい。

696 :693:2008/09/26(金) 14:44:38
>>694
いや,やっぱり,パネルの中にいろいろ入れると比率が変わってしまった。

697 :デフォルトの名無しさん:2008/09/26(金) 16:30:01
setPreferredSizeとかsetMinimumSizeとか0にしとけばよいと思われ

698 :693:2008/09/26(金) 16:52:37
>>697
やってみたらうまくいったんですが,setPeferredSize とかって,5.0 から使えるようになったんですね。
事情があって,古いバージョンで動くようにしなきゃいけないんで使えないんですが。

699 :デフォルトの名無しさん:2008/09/26(金) 22:13:16
Panelをサブクラス化してgetPreferredSizeをオーバーライドすれば

700 :デフォルトの名無しさん:2008/09/27(土) 01:40:47
import java.util.*;
public class ThreadTest1 {
public static void main(String[] args) {
Shared.sharedVector.add(0);
new ReaderThread().start();
new WriterThread().start();
}
}
class Shared {
public static Vector<Integer> sharedVector = new Vector<Integer>();
}
class ReaderThread extends Thread {
public void run() {
System.out.println("マルチスレッドならVectorだろ");
try {
while (true) System.out.print("" + Shared.sharedVector.get(Shared.sharedVector.size() - 1) + " ");
} catch (Exception e) {
e.printStackTrace();
System.out.println("(´・ω・`)");
}
System.exit(0);
}
}
class WriterThread extends Thread {
public void run() {
for (int i = 1; ; i++) {
Shared.sharedVector.add(i);
Shared.sharedVector.remove(0);
}
}
}

701 :デフォルトの名無しさん:2008/09/27(土) 01:42:51
> java ThreadTest1
マルチスレッドならVectorだろ
28 71 95 115 130 141 java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 1
   at java.util.Vector.get(Vector.java:694)
   at ReaderThread.run(ThreadTest1.java:16)
(´・ω・`)


702 :デフォルトの名無しさん:2008/09/27(土) 01:51:51
>>700-701
size()とget()の間にremove()が入った結果(´・ω・`)

703 :デフォルトの名無しさん:2008/09/27(土) 02:26:47
君はMTについて根本的に分かってないんじゃないようだ。MTは難しいから一生理解できないんだろうけど

704 :デフォルトの名無しさん:2008/09/27(土) 03:09:47
>>700-703
javadocをみていても、Threadクラスを直接継承する事はあまりないようですけど、あるとすればどういうときですか。

705 :デフォルトの名無しさん:2008/09/27(土) 03:23:21
VectorをMTだからと使う奴がまだ残っているのか。

706 :デフォルトの名無しさん:2008/09/27(土) 03:29:49
>>704
Runnable だけじゃ必要な機能が作れない時

707 :デフォルトの名無しさん:2008/09/27(土) 03:39:25
>>706
new Thread(runnable)とするので、Threadクラスの機能は既に備わってるんですけど。

708 :デフォルトの名無しさん:2008/09/27(土) 03:57:48
Runnable と Thread は同じものじゃねーっつうの。
Thread には void run() 以外に公開インターフェースがあるだろ。
それらをオーバーライドする必要があるときにやんだよ。

709 :デフォルトの名無しさん:2008/09/27(土) 04:07:13
今日は何回ぐらい鼻糞を食べましたか?

710 :デフォルトの名無しさん:2008/09/27(土) 04:11:55
コンパイルがうまくいきません

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

と表示されて先にすすめません

どうすれば先に勧めるか教えてください

711 :710:2008/09/27(土) 04:24:44
再起動したら普通に直りました
失礼しました

712 :デフォルトの名無しさん:2008/09/27(土) 12:34:29
輪郭線イメージと元画像を使って
輪郭線イメージをshapeのように扱って
元画像から画像を抽出するにはどうしたらいいでしょうか
閉輪郭線の場合は取り囲まれる部分、
そうでない場合は輪郭線部分が抜き出せれば最適です
よろしくお願いします

713 :デフォルトの名無しさん:2008/09/27(土) 17:16:44
Win32_SystemEnclosureのようにSerialNumberなどの
システム情報を取得できるJAVAのクラスはありませんか。
どうにも見つからないので教えてください。

714 :デフォルトの名無しさん:2008/09/27(土) 17:44:00
ない

715 :デフォルトの名無しさん:2008/09/27(土) 17:49:07
JNI

716 :685:2008/09/27(土) 19:54:29
やっぱりJDialogのウィンドウを移動不可だけに
するのは無理のようですね。

717 :デフォルトの名無しさん:2008/09/27(土) 22:07:38
>>716
方法はいろいろあるんじゃないの?
無理じゃないよ。

718 :デフォルトの名無しさん:2008/09/27(土) 23:40:23
Javaからプログラミング始めて早2年
他言語も始めようと思うのですが
Javaにはない魅力があり、今後需要の拡大が見込める言語を教えてください!

719 :デフォルトの名無しさん:2008/09/27(土) 23:46:02
C言語

720 :デフォルトの名無しさん:2008/09/27(土) 23:49:38
>>718
英語かな

721 :デフォルトの名無しさん:2008/09/27(土) 23:52:10
JSmoothていうプログラムでjarファイルとかをexe化して起動できるってやつ使ってみたんだけど
確かにできたファイルのアイコンをダブルクリックしたら起動はできたけど、このexeに何らかの拡張子を
関連付けようとしたら、プログラムの選択で何度選んでもリストに入ってこないんだけど何で分かる人いる?
ソフト板にスレ無くて・・・

722 :デフォルトの名無しさん:2008/09/27(土) 23:55:02
英語ができたらなんか得なことあるの?

723 :デフォルトの名無しさん:2008/09/28(日) 00:20:49
日本語訳のない情報が読める

724 :デフォルトの名無しさん:2008/09/28(日) 00:25:28
日本語の情報が無いようなレベルには一生なれそうにないから
いいや

725 :デフォルトの名無しさん:2008/09/28(日) 04:17:15
antの質問は、このスレでよいのでしょうか? 他に適切なスレが見当たらなかったので。
antでは、-propertyfile でプロパティファイルの指定をできますが、
この値を参照するための組み込み変数は用意されていないのでしょうか。
具体的には、
<fail unless="propertyfile" message="property file is not set." />
みたいに、プロパティファイルが指定されていない場合にエラーを出したいです。

726 :デフォルトの名無しさん:2008/09/28(日) 08:02:03
>>712
釣り?
スレ違いだから別なとこで聞いて。

727 :デフォルトの名無しさん:2008/09/28(日) 09:10:29
あるプログラムを実行したら
Exception in thread "main"java.lang.NoSuchMethodError: main
ってのが出て実効出来なかったのですがどうすれば良いですか?

728 :デフォルトの名無しさん:2008/09/28(日) 10:25:07
そのプログラムにpublic static main(String[] args)メソッドがあるかどうか確認するといいよ

729 :デフォルトの名無しさん:2008/09/28(日) 12:07:13
void

730 :デフォルトの名無しさん:2008/09/28(日) 13:08:47
ソースコードのテキストファイルエンコードはUTF-8でいいんだろうけど
改行コードはどれにすればいいの?
なんかしきたりというか決まりみたいなのある?

731 :デフォルトの名無しさん:2008/09/28(日) 14:56:11
>>726
BufferedImageの応用活用についてだから釣りでもすれ違いでもないだろ

732 :デフォルトの名無しさん:2008/09/28(日) 14:58:09
VMのオプションで明示的にファイルエンコードの指定すればいいのでUTF-8である必要なし

改行コードはどれにとあるけど、改行コードですらなくても構わない。
構文解析の区切り文字ならスペースでもタブでも可

733 :デフォルトの名無しさん:2008/09/28(日) 17:20:45
>>732
ソースの話なんだから、VMは関係ないでしょ。
コンパイラならともかく。

>>730
個人的にはLFのみが好きだけど、
Windowsのメモ帳はCR+LFでないと改行扱いしてくれない。
好き好きで。

734 :デフォルトの名無しさん:2008/09/28(日) 17:49:50
javaで実行されたjarファイルの絶対パスってどうすれば得られる?設定ファイル読み込みたいんだけど

735 :デフォルトの名無しさん:2008/09/28(日) 17:56:02
((URLClassLoader)自分のクラス名.class.getClassLoader()).getURLs()

736 :デフォルトの名無しさん:2008/09/28(日) 18:50:08
LFのみってやつオジサン。まだ絶滅してないの?

737 :デフォルトの名無しさん:2008/09/28(日) 19:38:58
>>735ありがと。かっこいいね

738 :デフォルトの名無しさん:2008/09/28(日) 21:40:33
>((URLClassLoader)自分のクラス名.class.getClassLoader()).getURLs()
((URLClassLoader)アプリケーションクラス名.class.getClassLoader()).getURLs()
にしないとCLASSPATHとおった他のjar拾わないか?

739 :デフォルトの名無しさん:2008/09/28(日) 22:02:58
自分のクラスとアプリケーションクラスの違いをkwsk・・・

740 :デフォルトの名無しさん:2008/09/28(日) 23:04:31
>>736
UNIXとファイル交換する時に、何も悩まなくて済むからね。
なぜオジサンなのか謎だ。

741 :689 700 701:2008/09/28(日) 23:24:17
Vector使う奴は池沼


742 :デフォルトの名無しさん:2008/09/28(日) 23:27:43
コンパイルとかコーディング中のメンバの呼び出してかにすげー時間掛かるんでその間に他の作業(ァ端末上)をしているのですが、端末に戻るタイミングが分かる様に処理が終わったらビープ音が鳴るように出来ませんか。

743 :デフォルトの名無しさん:2008/09/28(日) 23:34:43
>>742
御爆です、無しにしてください。

744 :デフォルトの名無しさん:2008/09/29(月) 00:18:52
>>741
今日は誰と戦ってるんですか?

745 :デフォルトの名無しさん:2008/09/29(月) 00:20:44
>>740
オジサンなのは、旧式MAC使いで未だにテキストモードとバイナリモードの違いを理解してないままだからw

746 :デフォルトの名無しさん:2008/09/29(月) 00:22:31
質問です。
// 接続
URLConnection uc = src_url.openConnection();
// HTMLを読み込む
BufferedInputStream bis = new BufferedInputStream(uc.getInputStream());
BufferedReader br = new BufferedReader(new InputStreamReader(bis, charset));

という風に、指定のcharsetに文字コードを変換して、HTMLを読み込んでいます。
しかし、読み込んだ後、色々処理を行い、最後に再び元の文字コードで出力したいのです。
そこで、元の文字コードを取得したいのですが、該当するメソッドが見当たりません。
そういった事は不可能なのでしょうか?

747 :デフォルトの名無しさん:2008/09/29(月) 00:22:37
>>739
自分のクラス
thisとコンテキストが同じクラス。

アプリケーションクラス
mainメソッドを持つクラス。

748 :デフォルトの名無しさん:2008/09/29(月) 00:22:55
>>741
過去レス見てみたんですけど、マルチスレッドのことをあなたはちゃんと勉強した方がいいですよ。

749 :デフォルトの名無しさん:2008/09/29(月) 00:26:28
LFじゃなくてCRのみの奴がおじさん??w誤爆?

750 :デフォルトの名無しさん:2008/09/29(月) 00:30:04
>>745
MacはCRのみだよね。
なにがオジサンなんだろう。

個人的に、改行に2文字食われるのは、なんか釈然としない。
やっぱLFのみが合理的。

751 :デフォルトの名無しさん:2008/09/29(月) 00:33:54
>>750
テキスト・バイナリモードの違いとか理解しているの?(UNIXって言うんだから当然Cのあれ)

752 :デフォルトの名無しさん:2008/09/29(月) 00:34:45
thread って直訳すると糸って読むようですが
なんで thread っていうのでしょうか?

753 :デフォルトの名無しさん:2008/09/29(月) 00:35:58
>>746
不可能です。


754 :デフォルトの名無しさん:2008/09/29(月) 00:49:43
>>746
指定の charset とは何ぞや、と。

755 :デフォルトの名無しさん:2008/09/29(月) 00:49:53
>>746
そこの InputStreamReader に渡してる charset が元の文字コードじゃねーの?

756 :デフォルトの名無しさん:2008/09/29(月) 01:10:32
>>741
おまえは糞

757 :デフォルトの名無しさん:2008/09/29(月) 02:11:51
JMXなるものはJVMの状態を詳細に監視・管理できるとあるのですが
どのように幸せになれる機能かピンときません。
具体的にどういった使われ方をするのでしょうか

758 :デフォルトの名無しさん:2008/09/29(月) 07:42:43
>>728
それをどこに入れればいいですか?

759 :デフォルトの名無しさん:2008/09/29(月) 11:41:10
亀だが

>>682
お前どんだけ池沼なんだ
デフォルトコンストラクタしか呼ばれないんだから無理だろ。
お前の方がPG適正ないわ

760 :デフォルトの名無しさん:2008/09/29(月) 12:08:25
んで結局、最近のVMは良くなってるしVector問題ないんじゃねっていう

761 :693:2008/09/29(月) 13:17:05
>>699
亀レス申し訳ない。
またしても目からウロコ、そういう方法があったんですね。うまくいきました。
PreferredSize っていうのが普通はどうやって決まってるのかわからないので、強制的に設定するのは少し気持ち悪いけど、追々勉強します。
どうもありがとうございました。

762 :デフォルトの名無しさん:2008/09/29(月) 13:28:28
>>761
目玉が入ってる穴から糞が出ちゃたんですか?

763 :デフォルトの名無しさん:2008/09/29(月) 14:26:53
>>759は何を言ってるのか意味不明なんですけど、誰かエスパーしてくれませんか?

764 :デフォルトの名無しさん:2008/09/29(月) 17:09:39
javaを始めたばかりなのですが誰か次のプログラムの作り方教えてください。

4ケタの数字をランダムに選びます。選ばれた4ケタの数字は見えないようにする。

左のケタから順に1〜9の数字を選びtrueならひとつ右のケタに移動しまた1〜9を選び、

それを繰り返し4ケタ当てるプログラムを作りたいので教えてください。

765 :デフォルトの名無しさん:2008/09/29(月) 17:30:49
>>764
宿題スレへ行け

766 :デフォルトの名無しさん:2008/09/29(月) 17:34:38
マジで日教組は糞だな。こんなゆとり連中を作りやがって。

767 :デフォルトの名無しさん:2008/09/29(月) 17:44:52
けち

768 :デフォルトの名無しさん:2008/09/29(月) 17:45:23
けち

769 :デフォルトの名無しさん:2008/09/29(月) 17:51:14
765 きついけど良いやつ  ごめんね とりあえず 行ってみる 

770 :デフォルトの名無しさん:2008/09/29(月) 17:52:25
>>767>>768
お前が怠慢なだけだろ。
こっちは善意で助けてんだから、助けてもらえないからケチってのはおかしい。

ゆとりは社会の害虫です。
わかる?害虫。
クソは肥料になるけど、害虫は害にしかならない。
お前は害にしかならない。

そんな簡単なこともできないやつはロクに仕事もできない。(まともなPGができない)
本当に害なんだよ。周りはそれをフォローしなくちゃいけないから。

考えをあらためろ。

771 :デフォルトの名無しさん:2008/09/29(月) 20:10:56
カオスってるな

772 :デフォルトの名無しさん:2008/09/29(月) 20:13:28
洗顔スクラブみたいな事を。

773 :デフォルトの名無しさん:2008/09/29(月) 22:35:25
>>752
うぃきぺでぃあよりいんよう
>原義は縒り糸を構成している糸のうちの一本や、筋状の物体のうちの一本の筋などを意味する英語threadである。ここから派生し、同時進行する事象のうちの一つをあらわすようになった。

すれっどよりもうちょっとほそいものにふぁいばというものもあったりする
ttp://d.hatena.ne.jp/hiroakiuno/20070316/p1

774 :デフォルトの名無しさん:2008/09/30(火) 00:43:13
>>770
今日は誰と戦ったんですか?

775 :デフォルトの名無しさん:2008/09/30(火) 00:49:07
>>774
なんだ?煽ってんのか?
意味がわからんからスルーしとくわ

776 :デフォルトの名無しさん:2008/09/30(火) 01:17:40
>>775
あら〜 害虫さんこんにちわw

777 :デフォルトの名無しさん:2008/10/01(水) 10:19:55
tiff画像を扱うためにJava Advanced Imaging-Image I/O Tools1.0_01を
ダウンロードしてインストールしたつもりなのですが
下記のURLのプログラムを実行してもImageI/Oがtiffに対応しているとは表示されません。。。
インストールするときなどに何か特別な設定が必要なのでしょうか?
OS:vista Homw Premium
java:jdk1.6.0_07
eclipseなどは使用しておりません。
参考にしたURL
ttp://moyolab.blog57.fc2.com/blog-entry-46.html



778 :デフォルトの名無しさん:2008/10/01(水) 10:21:10
class path

779 :777:2008/10/01(水) 10:30:30
>778
すばやい回答ありがとうございます。
まだjava始めたばかりなのでできるかわかりませんが、ググって挑戦してみます。

780 :777:2008/10/01(水) 10:41:45
classpathの理解はいまいちできていませんがtiffに対応できるようになりました。
助言ありがとうございました。

781 :デフォルトの名無しさん:2008/10/01(水) 11:12:56
また教えて君を量産してんのかw

782 :デフォルトの名無しさん:2008/10/02(木) 03:48:43
未だに使う(実装)する機会がないのですが、クラスメソッド(static method)はどういうときに有効なんでしょうか。

783 :デフォルトの名無しさん:2008/10/02(木) 08:23:34
簡単な例を示すとすればデザインパターンのシングルトンとか。

784 :デフォルトの名無しさん:2008/10/02(木) 09:12:53
>>783

シングルトンにするとクラスメソッドである必要がないんじゃない??

785 :デフォルトの名無しさん:2008/10/02(木) 09:14:15
?


786 :デフォルトの名無しさん:2008/10/02(木) 09:14:41
あ、インスタンス取得するメソッドで使うか・・・

787 :デフォルトの名無しさん:2008/10/02(木) 10:33:52
数学関係の関数みたいに引数の値が同じなら結果が常に同じならstaticにするべき

788 :デフォルトの名無しさん:2008/10/02(木) 10:52:34
synchronizedにするときによくでてくる、同期化コストってのはどういうコストなんですか?
Javaではモニターの取得破棄のことだと思いますが、それが問題になる事例は何が考えられるんでしょうか。


789 :デフォルトの名無しさん:2008/10/02(木) 10:53:59
>>787
それだと各クラスのクラスメソッドにする必要はなく、SwingUtilites.staticmethod()でいいんじゃないですか?

790 :デフォルトの名無しさん:2008/10/02(木) 11:17:37
>>789
みんながみんなSwing関連ってわけでもないから、その名前はちょっと

791 :デフォルトの名無しさん:2008/10/02(木) 11:23:42
>>788
時間的なコスト
処理に要する時間がいくら長くても構わない、時間は無限にあるんだ、とかいう考えなら特に問題にならない
大抵のユーザは処理が遅いと文句を言うので、出来るだけコストを減らしたいというのはそんなに珍しいことじゃないと思うけど

792 :デフォルトの名無しさん:2008/10/02(木) 11:29:58
synchronizedブロックにしないで非同期コードにすると、ユーザーの要求が満たされるほど速くなる場合なんてあるんですか?


793 :デフォルトの名無しさん:2008/10/02(木) 11:48:12
そのsynchronizedが何百万回も繰り返すループの内側で行われていたとしたら効果があるんじゃないか?
通常は全体を見直してアルゴリズムを改善した方がいいと思うよ

794 :デフォルトの名無しさん:2008/10/02(木) 12:25:28
そのループのブロックが同期されていれば良い訳で、あなたは大して経験もないのに答えたつもりになってませんか?
そもそも、数百万回の同期化ループを改善したところでユーザーの要求が満たされる事例ともいえないわけで、あなたはもともと無能なんだし、知らないなら答えない方がいいですよ。

795 :デフォルトの名無しさん:2008/10/02(木) 12:34:56
何が言いたいのか分からない

796 :デフォルトの名無しさん:2008/10/02(木) 12:36:12
そうっすね。
簡単な質問にだけ答えることにします。

797 :デフォルトの名無しさん:2008/10/02(木) 13:39:13
はじめまして。ところで、今、
update()とpaint()の呼び出しについて調べています。
非常にシンプルなプログラムで、Frameを継承したメインプログラム
中で、MyLabelというLabelを継承した自前のクラスのオブジェクト
を生成し、親のFrameにadd()してみました。
すると、ウィンドウサイズを変更した際などにpaint()は呼び出され
ますが、update()は呼び出されませんでした。

ネットの各種の文章によれば、update()は、repaint()が呼び出され
ると呼び出され、そこで背景を消去してからpaint()が呼ばれる、
とあります。

両方が正しいとすると、update()は、repaint()の時だけ呼ばれ、
ウィンドウサイズの変更などの時は、paint()が直接呼ばれる、
と言うことでしょうか。

しかし、実験によれば、ウィンドウサイズを変更しただけの時
でも、背景はクリアされてしまっています。これだけでは、
説明が付きません。

798 :デフォルトの名無しさん:2008/10/02(木) 13:44:41
軽量かどうかで挙動が変わるし、それ以上知りたかったらjavaのソースをしっかり見とけ。

799 :デフォルトの名無しさん:2008/10/02(木) 13:56:33
system-trigerred repaint のときは、AWTが自動的に背景をクリアして paint を呼びます
(システムプロパティ sun.awt.noerasebackground を true に設定するとクリアしなくなります)
update が paint と分けられてるのは、repaint 時は全体を描かずに差分だけ更新したい人むけにオーバーライドできるようにです
特にオーバーライドしてなければ、いつも通り背景をクリアして paint を呼びます

800 :797:2008/10/02(木) 14:12:29
>>798-799
有り難うございます。
実際に、sun.awt.noerasebackground をsetProperty()で試してみる
と確かに背景が「消去されない場合がある」事が分かりました。
ただし、例えば、親Frameのサイズ変更時は消去されます。

801 :797:2008/10/02(木) 14:28:55
ところで、
JScrollPaneを使っている場合、スクロールバーを動かすなどして
描画範囲が変わった時、その中に埋め込んでいるコンポーネン
トのpaint()が自動的に呼び出されます。

この場合、「system-triggerd repaint」ではないと思うのですが、
update()が呼び出されないようです。

ということは、JScrollPaneは、子wnd.repaint()とせずに、
自前で子wndの内部を消去した後、子wnd.paint()としていると
言うことになるのでしょうか?

802 :デフォルトの名無しさん:2008/10/02(木) 14:33:33
「updateが呼ばれて消去する」は仕様かもしれないが、だからといって
「updateが呼ばれないなら消去しない」とは決まってないんだろ。

803 :デフォルトの名無しさん:2008/10/02(木) 14:41:24
>>801
Swingはまったく事情が異なる
SwingのrepaintはRepaintManager#addDirtyRegionへ行って、
そこからJComponent#paintImmediatelyが呼ばれる

804 :797:2008/10/02(木) 14:41:34
>>802
その通りだと思うんですが、自前でDouble Bufferingする場合、
JScrollPaneで消去してしまうのは無駄になる場合があるので、
JScrollPaneで自動消去をOFFにする方法があれば知りたいです。

805 :デフォルトの名無しさん:2008/10/02(木) 14:43:25
swingすれでやれ。

806 :デフォルトの名無しさん:2008/10/02(木) 14:48:08
>>804
Swingコンポーネントは自動的にダブルバッファリングするから、
自前のダブルバッファを加えると全部でトリプルバッファリングになってしまわない?

807 :797:2008/10/02(木) 14:56:09
>>806
そうなんですが、Swingではルートペーンなど、最初にある
コンテナだけがダブルバッファリングONで、その子コンポーネント
は、ダブルバッファリングOFFだそうです。

その結果、JLayoutPaneを使って子Frameを上に重ねられるようにした
場合、これらの重なった「絵」は、全体に共通の1つのバッファで
合成されたものなので、下になっているウィンドウの絵は、
保存されません。

フォント描画が遅いので、スクロールをする際は、以前に描いた
文字を再利用できるようにしたいんです。

808 :デフォルトの名無しさん:2008/10/02(木) 16:07:56
最初からそう言えよ。
つ【Swingスレ】

809 :デフォルトの名無しさん:2008/10/02(木) 17:29:16
配列とコレクションの違いは
配列:length固定
コレクション:length可変なので外部データの扱いが楽
と理解して問題ないでしょうか

810 :デフォルトの名無しさん:2008/10/02(木) 20:37:07
あるプログラムを実行したら
Exception in thread "main"java.lang.NoSuchMethodError: main
ってのが出て実効出来なかったのですがどうすれば良いですか?

811 :デフォルトの名無しさん:2008/10/02(木) 20:47:47
ちなみにこういうプログラムです
長いので何回か分けて書きます
import java.awt.*;
import java.applet.*;
import javax.swing.*;

public class FirstApplet extends JApplet{

public JButton b1,b2,b3;

static final String message = "Hello World!";
private Font font = new Font("serif",Font.ITALIC + Font.BOLD,36);

public void init(){

getContentPane().setLayout(null);
Icon icn8= new ImageIcon("icn8.gif");
Icon icn9= new ImageIcon("icn9.gif");

b1 = new JButton("prev",icn8);
b1.setSize(30,25);
b1.setLocation(100,60);
b1.setVisible(true);
b1.setOpaque(false);
b1.setBorderPainted(false);
//b1.addActionListener(lsn);
this.getContentPane().add(b1

812 :デフォルトの名無しさん:2008/10/02(木) 20:48:58
b2 = new JButton("next",icn9);
b2.setSize(30,25);
b2.setLocation(135,60);
b2.setVisible(true);
b2.setOpaque(false);
b2.setBorderPainted(false);
//b2.addActionListener(lsn);
this.getContentPane().add(b2);

b3 = new JButton("play");
b3.setSize(65,25);
b3.setLocation(100,30);
b3.setVisible(true);
b3.setOpaque(false);
b3.setBorderPainted(true);
//b3.addActionListener(lsn);
this.getContentPane().add(b3);
}

public void paint(Graphics g){
super.paint(g);
g.setColor(Color.blue);
g.setFont(font);
g.drawString("message",40,120);
}
}

813 :デフォルトの名無しさん:2008/10/02(木) 21:12:29
>810-812
呼び出し用のHTMLソースを書く。以下のどちらかを使って確認できる
1. Webブラウザ
2. appletviewer

814 :デフォルトの名無しさん:2008/10/02(木) 21:20:54
>>813
ちょっと意味がよく分からないんですが

815 :デフォルトの名無しさん:2008/10/02(木) 21:40:23
それで分からないのなら勉強不足だろうなぁ。

816 :デフォルトの名無しさん:2008/10/02(木) 21:43:11
>>815
そんなあ><
811のプログラムをレポートとして出さなきゃいけないから
あせってるんですよ
上記のプログラムに何か書くんじゃないんですか?

817 :デフォルトの名無しさん:2008/10/02(木) 21:54:10
では、宿題スレへ

818 :デフォルトの名無しさん:2008/10/02(木) 21:55:25
<applet code="FirstApplet.class" width="width" height="height">
</applet>
widthとheightに好きな値入れて、適当な.htmlとして保存。
FirstApplet.classと同ディレクトリに上のhtml入れてブラウザからそのhtmlを開く。
そうするとアプレットが起動します。

appletviewerで見るならソース内に上のコードをコメントアウトして入れて
appletviewer FirstApplet.java
こんな感じで見るのが一般的かな。

さぁ消え失せやがれ

819 :デフォルトの名無しさん:2008/10/02(木) 22:01:29
>>818
意味が分からん
簡単に言うと何をすれば良いわけ?

820 :デフォルトの名無しさん:2008/10/02(木) 22:03:26
簡単に言うと >>818 が書いた通りのことをすればよい

821 :デフォルトの名無しさん:2008/10/02(木) 22:15:32
>>819
ここまで書かれて分からない人は素直に単位を落とせばいいと思います

822 :デフォルトの名無しさん:2008/10/02(木) 23:22:45
>>821
至言。

823 :デフォルトの名無しさん:2008/10/02(木) 23:31:17
>>819

例えば、FirstAppletっつーのを動かしたいなら

テキストでもいいから

<applet code="FirstApplet.class" width="500" height="7777777777777777">
</applet>
みたいに書いて、保存。
拡張子.txtから.htmlに変更。

これで動く。


824 :デフォルトの名無しさん:2008/10/02(木) 23:37:06
JFrameオブジェクトをdispose()するとヒープメモリが開放されると思っていたのですが、
JConsoleで監視していても一向にメモリ使用量が減ってくれません。
これはガベージコレクタが動いていないだけでしょうか?

825 :デフォルトの名無しさん:2008/10/02(木) 23:41:30
>>824
解放するのはGUIリソースであってメモリじゃないぞ。

826 :デフォルトの名無しさん:2008/10/02(木) 23:42:12
>>823やさしすぎ

827 :デフォルトの名無しさん:2008/10/02(木) 23:54:20
>>825
そうだったんですか?setVisible(true)を実行するとメモリも消費していたので、
dispose()で消去すればメモリが開放されると思っていました。
という事は、メモリを開放するにはガベージコレクタが不定期に実行されるのを
待つか、System.gc()で意図的に開放させるしかないのでしょうか?

828 :デフォルトの名無しさん:2008/10/03(金) 02:34:16
じゃヴぁなんだからメモリの開放は(あんまり)気にするな

829 :デフォルトの名無しさん:2008/10/03(金) 04:52:36
こうやってSystem.gc()まみれのソースが生まれるわけですね

830 :デフォルトの名無しさん:2008/10/03(金) 09:17:26
>>823
わけわかんね

831 :デフォルトの名無しさん:2008/10/03(金) 09:49:36
あれ?javaにもsystem.gc()ってあったんだ

832 :デフォルトの名無しさん:2008/10/03(金) 13:02:08
あるよ。java.lang.System.gc()
.NETのはSystem.GC.Collect()

833 :デフォルトの名無しさん:2008/10/03(金) 16:28:41
新しく質問ですが、

System.out.printf() などの、System.out を import 文で消せるかと
思ったのですが、上手くいきませんでした。

消すことは可能でしょうか?

もし、import文で消せないとしたら、なぜですか?

834 :デフォルトの名無しさん:2008/10/03(金) 16:43:51
printfってstaticじゃないんじゃねーの

835 :デフォルトの名無しさん:2008/10/03(金) 16:44:32
import static java.lang.System.out;
  out.println("Hello");

とりあえずSystemまでは消せる。


836 :デフォルトの名無しさん:2008/10/03(金) 16:57:22
Systemはパッケージじゃなくてクラス
outはPrintStreamなフィールド
printlnはPrintStreamのメソッド


837 :833:2008/10/03(金) 18:31:36
>>834-836
ありがとうございます。

さらに、out も消せますか?

838 :デフォルトの名無しさん:2008/10/03(金) 18:49:24
無理。

839 :デフォルトの名無しさん:2008/10/03(金) 18:52:22
自分のクラスに
public static void println(Object x) { System.out.println(x); }
とか
public static void printf(String format, Object... args) { System.out.printf(format, args); }
と書いとけ

840 :デフォルトの名無しさん:2008/10/03(金) 21:15:59
C#のwebBrowser1_DocumentCompletedにあたる
webを読み終わった後に呼ばれるイベントは何ですか?

841 :デフォルトの名無しさん:2008/10/03(金) 21:28:45
またまた抽象的な・・・
ParserDelegatorでHTMLDocumentへ読み終わった後ってこと?

842 :デフォルトの名無しさん:2008/10/03(金) 21:34:53
どうやってwebを読んでるの?
ライブラリのHotJavaParser?

843 :デフォルトの名無しさん:2008/10/03(金) 21:35:29
最終的にはHtmlととりたいんですが
C#のときにwebを表示して完全に終わった後にwebBrowser1_DocumentCompletedが呼ばれて
そこでHtmlをとってました
javaでJEditorPaneでwebを表示してそれが完全に読み終わったタイミングで
Htmlをとるサンプルがあったのでそのルーチンを呼びたいのです

844 :デフォルトの名無しさん:2008/10/03(金) 21:39:52
>>842
JEditorPane doc_pane = new JEditorPane(アドレス);
というサンプルがあったのでそれをそのまま使ってます

845 :デフォルトの名無しさん:2008/10/03(金) 21:42:57
よく考えると843の方法ではストリームを使うので別にわざわざweb表示する必要なかったですが
一応完全に読み終わったとき判断する方法が知りたいです

846 :デフォルトの名無しさん:2008/10/03(金) 21:50:00
JEditorPaneでURL読み込んで表示させた後でそのページのソースを取得したいってこと?
何がしたいのかさっぱりだよ。

847 :デフォルトの名無しさん:2008/10/03(金) 21:54:46
>>846
その通りです(1行目)

848 :デフォルトの名無しさん:2008/10/03(金) 22:12:17
でしたら普通には無理です。

まず読み込み完了のリスナーはたぶんない。
だから作らないとね。
でソースは読み込み後取得は不可。
HTMLDocumentとしてしか残らないんじゃないかな
だから読み込み自体をキャッシュしておくしかない。

読み込み文字列全て保存しておくReaderのラッパーかなんか作る
HTMLのパージングのリスナーを作る。
HTMLEditorKit拡張してparseをオーバーライドして、引数のReaderを普通に使わずにさっき作ったラッパーでくるんでsuper.parse呼び出す。fireHTMLParsed...
作ったHTMLEditorKitをJEditorPaneのregistEditorkit***で登録。

でソース取得したいならさっきのラッパーに問い合わせ・・・
一応こんなに適当でも出来ないことはない。

849 :デフォルトの名無しさん:2008/10/03(金) 22:23:49
そうですか、回答ありがとうございます
VB,C#がweb表示からその関連でHTML取得という流れだったので(しかも終了タイミングを気にしなくてはいけない)
そういう風に考えてしまいました
javaなりのHTML取得を考えてみます

850 :デフォルトの名無しさん:2008/10/03(金) 23:55:04
C#のWebBrowserはjavascript実行してくれるけど
JEditorPaneは実行してくれないね

851 :デフォルトの名無しさん:2008/10/04(土) 00:02:07
JDICでも使ったら?

852 :デフォルトの名無しさん:2008/10/04(土) 00:05:23
>>851
知らなんだ

853 :デフォルトの名無しさん:2008/10/04(土) 00:06:43
そーいや、JWebPane ってのはどーなったんだろ?

854 :デフォルトの名無しさん:2008/10/04(土) 11:38:26
下の問題が分かりません。classBでcatchに行っているようですが、何ででしょう?throw new error()もよく分かりません。
どなたかご教授願います。


Java言語で書いた次のプログラムがある。A.foo()を呼び出したときの返り値として適切なものを@〜Dの中から選べ。

class A {
static int foo() {
int x = 0;
try { x = B.bar(x); }
catch (Error y) { x += 4; }
finally { x += 8; }
return x;
}
}
class B {
static int bar(int x) throws Error {
try { throw new Error(); }
catch (Error y) { x += 1; }
finally { x += 2; }
return x

855 :デフォルトの名無しさん:2008/10/04(土) 11:57:28
字下げしてないから非常に見にくいな

856 :デフォルトの名無しさん:2008/10/04(土) 12:08:14
@〜Dって選択肢ないじゃん、馬鹿?

857 :デフォルトの名無しさん:2008/10/04(土) 12:08:23
>>854
答えは11かな?

858 :857:2008/10/04(土) 12:51:18
>>857
そうです。11です。

おそらく、1+2+8なのでしょうが、どうしてそのような流れになるのかがイマイチわかりません。

859 :デフォルトの名無しさん:2008/10/04(土) 12:54:54
TCP/IP通信をソケット通信で実装するプログラムで質問です。

まず、1サーバー(ソケット受信側)対 多クライアントの通信は、
データ受信後の処理をスレッド化することで対応できます。

私が実装したいのは、多サーバ 対 多クライアント です。
(localhostの10000番ポートと、11000番ポートと、12000番ポートで受信し、それぞれで別の処理をする、など)

サーバークラスのインスタンスを呼び出すと、処理待ちうけ状態になってしまい、
呼び出し元に処理が戻ってきません。
NewIOパッケージを使っても、待ち受け状態になります。

何か上手い呼び出し方は無いでしょうか・・・。
(要は、入力待ち状態のオブジェクトを複数呼び出せれば良いです)

試しに、サーバークラスをスレッド化してみたのですが、
スレッドからさらにスレッドを呼び出すような形になってしまい、どうも上手く動作しないようです。

860 :デフォルトの名無しさん:2008/10/04(土) 12:56:42
>>858
なるほど。

trow new Error(); っていう文は、「何があってもErrorをスローする」って意味なんだよ。
意図的にエラーをひきおこすんだよね。
だから、まずClass B内でErrorが意図的にスローされ、キャッチされてx += 1;
finallyで +2。

Class Aにもどって、finallyで+8で11。
Aの側ではx=B.bar(x)という式は普通に実行可能な式だからエラーは起きない。

こういうことなんだろうね。

861 :857:2008/10/04(土) 13:04:42
>>860
よく分かりました。試験の過去問なので少し変なプログラムでした。
ありがとうございました。

862 :デフォルトの名無しさん:2008/10/04(土) 14:41:18
>>859
NewIO パッケージ使っても Non Blocking にしなきゃ Blocking するのは当然。
NewIO の Non Blocking ならここで勉強しろ。
ttp://www.javainthebox.net/laboratory/JDK1.4/NewIO/SocketChannel/SocketChannel.html

NewIO じゃないならサーバ処理をスレッドで動かすしかない。
が、スレッドからさらにスレッドを〜のくだりがよくわからん。もっと内容説明しろ。
もしくはエスパーの手を借りろ。

863 :デフォルトの名無しさん:2008/10/04(土) 15:20:01
スレッドからスレッドなんて普通じゃん

864 :デフォルトの名無しさん:2008/10/04(土) 15:29:36
>>859
何が問題なのかさっぱりわかんないんだけど、読んだところ、ブロッキングしちゃうのが問題なだけじゃないか?

865 :デフォルトの名無しさん:2008/10/04(土) 16:07:41
ここのような光エフェクトをjavaで作ってみたいんですが、参考になりそうなサイトはありますか?
http://www.harukit.com/process/sp/applet/index.html

866 :デフォルトの名無しさん:2008/10/04(土) 16:21:24
>>865
http://www.harukit.com/process/sp/applet/index.html
ここにあるソースがいいと思うよ!

867 :デフォルトの名無しさん:2008/10/04(土) 16:44:20
>>866
参考にはなりますが、javaでやるとなると他にもいろいろ機能が必要なので
実際にjavaでプログラミングされているソースが見てみたいです。

868 :デフォルトの名無しさん:2008/10/04(土) 18:11:29
つまり自分でプログラミングするつもりはないと

869 :デフォルトの名無しさん:2008/10/04(土) 18:37:15
>>866
昔は256階調とかの色テーブルとメタボールの画像を事前に用意してたもんだが。
最近は画面上の全ての画素でメタボールとの中心点の距離計算して、
そっから色算出してもちゃんと動くんだねぇ。

870 :デフォルトの名無しさん:2008/10/04(土) 20:11:27
>>868
エフェクトがまずどういう風に作られてるかさっぱりわからないので、
サンプルソースを糸口に考えていこうかと。
>>869
なるほど。ありがとうございます。
円を色調をずらしながら表示していくやり方しか思い浮かばなかったので、
ピクセル単位で描画してみようと思います。

871 :デフォルトの名無しさん:2008/10/04(土) 20:57:40
画像処理について質問したいんですが、
fillRectで四角形を2つ作って、その図形の半分重ね合わせた場合
重ね合わせた下の図形は残るわけですが、
その部分を消したい場合は場合どういった方法がありますか?

2つの四角形を透かす処理をした場合に
上下重なった下の図形が写ると具合がわるいので

872 :デフォルトの名無しさん:2008/10/04(土) 21:01:34
>>870
このソースから見るに、MemoryImageSourceでやるんだと思うけど、使い方わかる?

あとはループするたびに、前に造った画像を減色していく感じだねー。

873 :デフォルトの名無しさん:2008/10/04(土) 21:12:41
>>871
全部消して上の図形だけ描き直す

874 :デフォルトの名無しさん:2008/10/04(土) 21:13:43
>>869
それ3Dですよね?10年以上前だとおもんですけど、いつ頃の話ですか?

875 :デフォルトの名無しさん:2008/10/04(土) 22:07:14
>>872
使ったことないですが、検索してみたらたくさん解説があったので、頑張って挑戦してみます。
ありがとうございました。


876 :859:2008/10/04(土) 22:31:39
>>862

ありがとうございます!
そのページは知らなかったので熟読いたします。

今あるプログラムはNonBlockingなはずなんですが、
While句の無限ループがあるので、何か作り方が一貫していない気がします。

スレッドからスレッド〜 のくだりですが、スレッドとしてサーバーを起動した後に
クライアントからデータを投げると、socket関連のエラーが出てしまうんです。

今ソースは手元にないので、詳細なエラー等が出せず、すみません。

877 :デフォルトの名無しさん:2008/10/04(土) 22:59:14
java in the box のあの人、最近更新してないよね。
サンプルとか的を得ていていつも分かりやすいけど、体でも壊しちゃったのかな…

878 :デフォルトの名無しさん:2008/10/05(日) 00:10:39
>>874
869じゃないけど、2次元メタボールってのもある。
パーティクル用の丸い円を用意しておいて、それを黒画面に毎フレーム加算していく。
と同時に、毎フレームごとに全体の色に、小さな値を減算していけばそういう風なエフェクト作れると思うよ。

879 :デフォルトの名無しさん:2008/10/05(日) 00:31:13
メタボールってのは3Dだと思ったんですけど、2Dのアニメーションとなるといつの時代の話ですか?
というか、その実装はアニメーションのようですけど、P5または486+FPU程度の世代(133MHz)で160x120程度の全ピクセルを演算するとかは全く実用的な方法ではなかったんですか?

880 :デフォルトの名無しさん:2008/10/05(日) 00:32:56
一応133MHZのノートPC(win95)あるんです・・・
気が向いたらjdk1.2程度の環境で実装してテストしてみますけどw

881 :デフォルトの名無しさん:2008/10/05(日) 01:37:22
結局こいつは何が言いたいんだ?

882 :名無しさん:2008/10/05(日) 13:37:32
SocketとServerSocketを使って送受信する場合に、
クライアント側がストリームに2回書き込んだとします。
サーバ側で読み込むときに、1回分ずつ、きっちりと読み込む
方法(2回分一緒にではなく)はありますか?

883 :デフォルトの名無しさん:2008/10/05(日) 13:46:45
しんくろないずど

884 :デフォルトの名無しさん:2008/10/05(日) 13:47:57
1回とか2回とかなんて概念はない
1連のデータの流れだじゃらStreamというんだろ


885 :882:2008/10/05(日) 13:59:25
そうですよね。。。
書き込む側でflush()とかしても、関係ないですよね。

886 :デフォルトの名無しさん:2008/10/05(日) 14:28:33
プロトコルを決めるしかない。
例えば最初の4バイトで、1回の送信が何バイトあるかを送る(ヘッダ)
受信側はとりあえず4バイト読む
その後は、それを解析して例えば50バイト読み、1回の送信として扱う。
続けて待機モードにはいって・・・と繰り返す。

あとは最終リクエストの場合は・・・とか必要に応じて取り決めれば良い。

887 :デフォルトの名無しさん:2008/10/05(日) 16:54:41
矢印が点滅をする画像ファイルを

ImageIcon icon = new ImageIcon(getClass().getResource("イメージファイル"));
cursorImage = icon.getImage();

で取得しcomponentPaint()で表示しました。
矢印が消えたり表示したりして、成功したのですが

今度はその矢印を点滅をさせないように
(矢印を表示しっぱなしで)プログラムで
その画像を制御できますか?
できるとしたら、どんな方法がありますか?

888 :デフォルトの名無しさん:2008/10/05(日) 17:14:47
矢印が点滅しない画像ファイルをアイコンとして取得し変えたいタイミングで点滅するものと入れ替える

889 :デフォルトの名無しさん:2008/10/06(月) 02:50:20
プログラミング初心者です。m(_ _)m

自分で作ったJavaアプリケーションを彼女に送りたいのですが、
Javaの場合、exeファイルはできませんよね?
配布するときは、classファイルを送るのですか?
誰かお願いします。

ちなみに実行すると画面に"I love you"と出ます。
swing使いました。俺にとって会心の出来です。

890 :デフォルトの名無しさん:2008/10/06(月) 03:49:35
>>889
jar

彼女のとこにjavaが入ってなかったら知らんが

891 :デフォルトの名無しさん:2008/10/06(月) 10:27:57
>>889
にくいねこの野郎

なんだか低レ研の短編思い出した

892 :デフォルトの名無しさん:2008/10/06(月) 11:04:21
889くそわろたw


893 :デフォルトの名無しさん:2008/10/06(月) 12:07:48
JARでもいいけど、JNIだと関連づけされていなくても起動可能

894 :デフォルトの名無しさん:2008/10/06(月) 13:00:49
>>889
http://samurai.pose.jp/java/archives/2005/01/jsmoothjavaexe.php

895 :デフォルトの名無しさん:2008/10/06(月) 15:21:32
ポーランド記法で書かれた式を通常の式に直す、便利なクラスか何かはないですか。
やはり自分で全部書くしかないですよね

896 :デフォルトの名無しさん:2008/10/06(月) 15:33:13
普通の式って中置記法?自分で書く。
ていうか逆ポーランドじゃなくてポーランド?宿題か?

897 :デフォルトの名無しさん:2008/10/06(月) 15:35:41
宿題だろ、便利なクラスがあっても宿題ならばアルゴリズム(ロジック)を考えないと意味無し

898 :デフォルトの名無しさん:2008/10/06(月) 15:43:28
いえ、趣味ですよ
これホント

899 :デフォルトの名無しさん:2008/10/06(月) 15:47:13
趣味ならますます自分でやろうよ

900 :デフォルトの名無しさん:2008/10/06(月) 16:53:50
ない。単純に計算を動的にやりたいならjavascriptでも呼び出すって邪道な方法もある。

901 :デフォルトの名無しさん:2008/10/06(月) 17:07:11
んー。共産党もいいかもしれないな…

902 :デフォルトの名無しさん:2008/10/06(月) 18:08:54
ポーランドが東側の共産国だったこととかけてるの?

903 :デフォルトの名無しさん:2008/10/06(月) 20:10:43
リフレクションとかで、あるpackageに属するクラスを取得するみたいなことってできませんか?
とあるサービス起動時に整合性が取れているかのチェックを動的にしたいのですが、
いい方法があればご教示お願いします。



904 :デフォルトの名無しさん:2008/10/06(月) 20:13:01
イマイチ分からないので、もう少し具体的に質問を書いてくれませんか?

905 :デフォルトの名無しさん:2008/10/06(月) 20:33:21
>>896
「逆」は付くんで合ってる。

906 :903:2008/10/06(月) 20:35:03
>>904
すみません。

たとえば
jp.co.aaaa
というパッケージの下に
ClassA
ClassB
ClassC
というクラスが3つあるとしたら
その3つを動的に取得する方法ってありますか?


907 :デフォルトの名無しさん:2008/10/06(月) 20:44:01
性的!

908 :デフォルトの名無しさん:2008/10/06(月) 21:39:45
>>906
基本的には無理
無いクラスを要求されたらその場で動的に生成するような変わったクラスローダを作ることも出来るわけで
そのような無限にクラスを生み出すことが可能だいうことを考えると存在するクラスをすべて挙げるということは出来ない
でもまぁ一般的な場合でいうとURLClassLoaderからURLを取得して
Fileに変換してFile#listなりZipFile#entriesなりで.classファイルの一覧を取得すればいいんじゃないか
URLがhttpだったらどうにもならないが

909 :デフォルトの名無しさん:2008/10/06(月) 21:48:24
訂正
× URLがhttpだったらどうにもならないが
○ URLがhttpでもzipだったらダウンロードして展開すればいいけれどディレクトリを指してたら無理

910 :デフォルトの名無しさん:2008/10/06(月) 23:21:21
JavaでJFrameやJDialogなどの画面を表示する際、
デスクトップ上の最前面にウィンドウを表示するには
どうすればよいでしょうか?
toFront()を実行しても何故か最前面に表示されません。

911 :デフォルトの名無しさん:2008/10/06(月) 23:22:30
>>905
逆ポーランドとポーランドが別物だって分かってるか?

912 :デフォルトの名無しさん:2008/10/06(月) 23:35:35
>>910
setAlwaysOnTop(true)

913 :デフォルトの名無しさん:2008/10/06(月) 23:43:01
>>912
ありがとうございます。
言葉が足りず誤解させてしまったので追記させて頂きます。

”ウィンドウを表示した最初だけ”最前面に表示したいです。
setAlwaysOnTop(true)を実行すると”常に”最前面に
表示されてしまいます。

914 :903:2008/10/07(火) 07:10:42
>>908

ご回答ありがとうございます。
動的は諦めて静的な方法で検討することにします。


915 :デフォルトの名無しさん:2008/10/07(火) 09:18:11
eclipse等、jarにあるクラスなど
オートコンプリートで列挙できるので
標準機能またはフリーのツールで
そういった機能がありそうだと思うのはもれだけ?

916 :デフォルトの名無しさん:2008/10/07(火) 09:38:28
別に一覧を得る必要がないなら、
例えば ClassA、ClassB、ClassC という固定の名前のクラスが存在すればよく
それ以外に何か他のクラスがあるかどうかはどうでもいい、というのであれば
Class.forName でその名前のクラスをロードしてみればいいと思う

917 :デフォルトの名無しさん:2008/10/07(火) 14:32:00
swing+SWTに関係してる質問させていただきます。
SwingとSWTの連携云々は出来たのですが、swingの「JInternalFrame」にshellを
どう乗せればいいのか、教えて欲しいです。
今やろうとしてることとしては、Swing内のウィンドウをSWTにする、ということをしているのですが
それらしいサンプルを見つけることが出来ず、行き詰ってます

918 :デフォルトの名無しさん:2008/10/07(火) 15:57:10
shellって?

919 :デフォルトの名無しさん:2008/10/07(火) 16:30:08
917
AWT_SWTはほとんど触ったこと無いけど、
JInternalFrameにaddしたCanvasオブジェクトを指定して
AWT_SWT.new_Shell()でシェル作るとかどう?
つまり、Swingのウィンドウ内のウィンドウはSwingなんだけど、
その中身だけはSWTで描画している、という感じ。

>>918
分からなかったら回答しなくていいよ。

920 :デフォルトの名無しさん:2008/10/07(火) 16:45:02
CSS Validator(http://jigsaw.w3.org/css-validator/DOWNLOAD.html)をAntで
コンパイルしたいのですが、antを実行すると以下のようなエラーになってしまいます。

[javac] /home/USER/cvs/2002/css-validator/org/w3c/css/index/TranslationTableGenerator.java:21: パッケージ org.apache.commons.lang は存在しません。
[javac] import org.apache.commons.lang.StringEscapeUtils;
[javac] ^
[javac] /home/USER/cvs/2002/css-validator/org/w3c/css/index/TranslationTableGenerator.java:113: シンボルを見つけられません。
[javac] シンボル: 変数 StringEscapeUtils
[javac] 場所 : org.w3c.css.index.TranslationTableGenerator の クラス
[javac] translations_table = translations_table+"<p>"+StringEscapeUtils.escapeHtml(ac_default.getMsg().getString(property_name))+"</p></th>";

commons-langはインストールされているし、自分でテストしてみると
StringEscapeUtils.escapeHtml()は実行されたので、なにが問題なのか
よくわかりません。どなたかヒントをご教示いただけると助かります。

JDKのバージョンは6-06-0、Antのバージョンは1.7.0-3、OSはUbuntu 8.04です。


921 :デフォルトの名無しさん:2008/10/07(火) 17:02:25
>>920
多分、antのbuild.xmlで指定しているクラスパスと、
自分でテストしたときのクラスパスが違う。
build.xml見直してみたら?

922 :デフォルトの名無しさん:2008/10/07(火) 17:15:06
>>921
ありがとうございます。build.xmlをチェックしてみます。

923 :デフォルトの名無しさん:2008/10/07(火) 17:42:04
txt形式のファイル入出力はできるのですが、lmf形式の入出力がわかりません
lmfをtxtにして入力しても、文字化けのままです。

目的はlmf形式のファイルを文字化けせずに表示することです。
どなたか教えてください。

924 :デフォルトの名無しさん:2008/10/07(火) 17:51:09
中身の形式の判らないファイルを読み書きすることは出来ない
まずそのファイル形式の仕様を調べるところから始めろ (そしてそれはJavaと関係ないのでここでは訊くな)

925 :デフォルトの名無しさん:2008/10/07(火) 17:53:33
>>919
二人ともすれ違い。それと、>>919は回答できてたいそう嬉しいみたいだけど、その偉そうな言い方は一体何様のつもり?

926 :デフォルトの名無しさん:2008/10/07(火) 17:59:11
>>919
つい答えられるからといって、あなたがそういう風に回答すると質問者は調子に乗るだけだし、それよりも適切なスレに誘導してそっちのスレでやった方がよかたんじゃないですか?
私も、あなたの余計な一言によってスレが荒れるのは見たくありません。もうそういう自分勝手なことを言うのは止めてもらえませんか?

927 :デフォルトの名無しさん:2008/10/07(火) 18:03:27
StringBufferクラスのコンストラクタについて質問なんですが、

ドキュメント見ると以下の3つしかない

StringBuffer()
StringBuffer(int length)
StringBuffer(String str)

StringBuffer(StringBuffer sbuf)

これが無いのが不思議なんですが、でも使うとコンパイル普通に通る。
これって使っていいの?

928 :デフォルトの名無しさん:2008/10/07(火) 18:07:34
StringBuffer(CharSequence seq)
もあるよ。最新のドキュメントを参照すべし。

929 :デフォルトの名無しさん:2008/10/07(火) 18:18:36
>>919
>AWT_SWTはほとんど触ったこと無いけど、

って知ったかだろ?wそれも自尊心だけ人一倍で笑えるww

930 :デフォルトの名無しさん:2008/10/08(水) 01:19:50
初書き込みですいません。
現在FreeTTSを使って音声合成のプログラムを作っているのですが、
Windowsで、コマンドプロンプト上でのコンパイルが終わった後、いざ実行するとき

Exception in thread "main" java.lang.NoClassDefFoundError: xxxxx
Caused by: java.lang.ClassNotFoundException: xxxx
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)

という形のエラーが出ています。この場合どうすればいいのでしょうか?
eclipseで実行する場合はなぜか実行できました。

931 :デフォルトの名無しさん:2008/10/08(水) 05:57:05
インスタンス化されたオブジェクトの中のプリミティブ型の変数と値は
ヒープ領域とスタック領域のどっちに格納されるんですか?

932 :デフォルトの名無しさん:2008/10/08(水) 09:08:35
>>930
たぶんクラスパス。
それより、TTSとか多少特殊な技術になると日本語の情報はあまりないから英語のWebに頼ることが多いんじゃないか?
そのエラーも理解できないなら、まずは英語の勉強をしたほうがいいかもしれない。

933 :デフォルトの名無しさん:2008/10/08(水) 10:27:02
>>932
了解です。
クラスパスのエラーというのはわかっていたのですが、java.net.*とかのクラスはプログラムでは一切使用していないため
なんか別の原因かと思ったのですが・・・もうすこし英語勉強してきます。ありがとうございました。

934 :デフォルトの名無しさん:2008/10/08(水) 10:52:30
java.net.*はパッケージで、ここでいうクラスパスじゃないな。
外部パッケージのTTSパッケージをインストールして、そのパッケージのクラスパスを通すことを学んだらどうだ?

935 :デフォルトの名無しさん:2008/10/08(水) 11:17:09
>>934
一応javac のときに

javac -classpath c:\freetts.jar xxxx.java

という形でコンパイルはできます。
ただ、その後にいざ実行する際

java -classpath c:\freetts.jar xxxx

とやると上記のようなエラーが返ってきたのですが・・・

このちなみにTTSパッケージ内ではjava.net.*はありません。rt.jarで、設定されているのですが・・・

936 :デフォルトの名無しさん:2008/10/08(水) 11:27:01
インターネットの接続を強制的に遮断するプログラムをJavaで作りたいんですが
どういった操作が必要になってきますか?

937 :デフォルトの名無しさん:2008/10/08(水) 12:11:30
>>935
xxxxにクラスパスは通っている?


938 :デフォルトの名無しさん:2008/10/08(水) 12:18:29
socket.disconnect();
socket.close();

939 :デフォルトの名無しさん:2008/10/08(水) 12:44:13
>>930
実行する時
.classまで入れてるんじゃない?
java ***.class じゃなくて
java ***

940 :917:2008/10/08(水) 14:41:55
>>919
なるほど、参考にしてみます。回答ありがとうございました。

>>918
SWTのShellですね。俺もよくわからんです。

んじゃま、卒研のためにがんばってきますです。

941 :デフォルトの名無しさん:2008/10/08(水) 14:44:15
javaコマンドに渡すのはファイル名じゃなくてアプリケーションクラス名だぜって事だな。

942 :デフォルトの名無しさん:2008/10/08(水) 16:02:10
>>940
おまえ、スレ違いなんだよ。担当教授に聞けよw
高い授業料払ってんだろwwおまえは三流大以下のバカか?

943 :デフォルトの名無しさん:2008/10/08(水) 18:30:20
>927-928
ちなみに 1.4.2 だと「シンボルを解決できません」。

944 :デフォルトの名無しさん:2008/10/08(水) 18:32:59
>943
因みにも何も、@since 1.5 だもの。

945 :デフォルトの名無しさん:2008/10/08(水) 21:10:17
ビットとキューの扱いに関する質問です。

いま、ArrayBlockingQueueキューの中に
Byte型変数が2つ入っています。
これを2つ取り出して結合し、
1つのshort型変数として扱うにはどうすれば良いでしょうか。

1:queue.poll();で取り出したときObject型になっている
  Byte変数の扱いはどうすれば良いのか?
2:[00110011][10101010]の2つを[0011001110101010]のように結合するには
 一旦int型に直してビットシフト+ | 演算 をすれば良いのか?


946 :デフォルトの名無しさん:2008/10/08(水) 21:13:42
>>945
1:Generics使おう
2:ok

947 :デフォルトの名無しさん:2008/10/08(水) 21:21:20
>>946
調べて使ってみたら出来ました。
ありがとうございます。

948 :デフォルトの名無しさん:2008/10/08(水) 21:34:38
>>939
>>930,>>935ですが、さすがにそれはしてません。
一応java xxxx とメインクラス名でコマンドを入力してます。
とりあえず、他に同じエラーで躓いてる人がいないか海外サイトで調べてみます。

949 :デフォルトの名無しさん:2008/10/08(水) 22:06:32
>>946です。
ビットシフト後の数値を検算してみたら間違っていたので、
ビットシフトに関してもう一度質問させてください。
Byte byte1;
Byte byte2;
int sr = 0;
sr = sr << 32;
byte1 = queue.poll();
System.out.print(byte1 + " ");
byte2 = queue.poll();
System.out.print(byte2 + " ");
sr = (byte1 << 8) | byte2;
System.out.print(sr + "\t");

のようにして計算した結果、
-14 5 -3579
のようになってしましました。
-14が [1111 0010] 、5が[0000 0101]
と考えると、[1111 0010 0000 0101]となって
+3579になると思っていたのですが、何が間違っているのでしょう?

950 :949:2008/10/08(水) 22:07:47
早とちりで合っていました、ご免なさい・・

951 :949:2008/10/08(水) 22:28:03
・・と思ったらやっぱり間違えているようです。
いくつもレス消費して申し訳ありません。

>>949 や -20 4 -5116 のように正解が出たり、
62 -14 -14 や 100 -24 -24 のように
明らかにおかしい値が出たりしています。

どこがおかしいのでしょうか?



952 :デフォルトの名無しさん:2008/10/08(水) 22:59:05
>951
byte はシフト演算するとき、まずintとした後、計算されている。

例えば、-14 は8bitだと 1111 0010 らしいが
32bitだと 1111 1111 1111 0010
で、or は "1 と 0 は 1", "1 と 1 は 1" なわけで。

953 :デフォルトの名無しさん:2008/10/08(水) 23:00:49
>>951
・sr = sr << 32;
→意味ないです
・(byte1 << 8) | byte2
→まず書き方からして、int型に勝手に変換されるのは分かりますね?
例えばbyte2が-1(0xFF)だったとしましょう。
それをint型に変換すると0xFFFFFFFFとなり、byte1をつぶしてしまいますね?
よって、この場合は(byte1 << 8) | (byte2&0xFF)としてやらないとだめですね。

954 :949:2008/10/08(水) 23:12:36
>>952
>>953
int型に変換する際に上位ビットがどう埋まるかまで
考え至りませんでした・・

おかげで解決しました、ありがとうございます。

955 :デフォルトの名無しさん:2008/10/09(木) 00:29:33
BMPの画素の値を配列に格納したいのですが
特定の画像だけ正しく値が取得できません。

BufferedImage image = ImageIO.read(bmpFile);
int w = image.getWidth(null); int h = image.getWidth(null);
int[] pixels = new int[w * h];
PixelGrabber pg = new PixelGrabber(image, 0, 0, w, h, pixels, 0, w);
pg.grabPixels();

int[] r = new int[w * h]; int[] g = new int[w * h]; int[] b = new int[w * h];
for(int i = 0; i < w * h; i++){
r[i] = (pixels[i] >> 16) & 0xff;
g[i] = (pixels[i] >> 8) & 0xff;
b[i] = pixels[i] & 0xff;
}


インデックスカラーの白黒(256色)のBMP画像なんですが
このやり方だとだめなんでしょうか?

ちなみに、デバッガで image の中身を見に行くと
wraster の中には正しい画素値が格納されてます。
colorModel とかの設定が何かおかしいんでしょうか??

956 :デフォルトの名無しさん:2008/10/09(木) 08:17:35
内容が陳腐化していない、JAVAのリファレンス本ってありますか?

957 :デフォルトの名無しさん:2008/10/09(木) 10:33:02
今javax.swing.JEditorPaneでファイル読み込みのプログラムを某サイトからコピペして
(test.rtfを)読み込んだのですが、

そのtest.rtfの中に入力した日本語が文字化けしてしまいます。

Unicodeに変換すれば良いのかとは思いますが、ググっても見つからない(わからない)のですが
どうすれば解決するのでしょうか?

初心者のため、まだまだ未熟なことありますが、知恵を貸していただければと思います。
よろしくお願いいたします


958 :デフォルトの名無しさん:2008/10/09(木) 11:12:29
Java3Dを勉強し始めたのですが、今現在理解できている範囲だと
https://java3d.dev.java.net/ にあるような複雑な物体のCGはとても作成できないように思われます。
http://www4.gracenet.ne.jp/~javao/j3dbook/firstbook/text/main.html で説明されていることは
一通り理解できています。

959 :デフォルトの名無しさん:2008/10/09(木) 11:13:40
>>957
その某サイトのプログラムてのとtest.rtfが無きゃ、さっぱり分からん。
どう入力してどの文字がどう化けるのかも分からん。
どうググったのかも分からん。
な〜んにも分からん。

960 :デフォルトの名無しさん:2008/10/09(木) 11:15:49
>>958
あんたのスキルと想像力が足りないだけだろう

961 :デフォルトの名無しさん:2008/10/09(木) 11:16:51
>>956
最新のリファレンス本

962 :デフォルトの名無しさん:2008/10/09(木) 11:19:33
このスレは以前に糞に占領されて廃墟になってます。

963 :デフォルトの名無しさん:2008/10/09(木) 11:19:39
複雑なShape3Dをマウス操作などで簡単に作ることのできるツールはないのですか?

964 :デフォルトの名無しさん:2008/10/09(木) 11:22:19
専用ソフト買え

965 :デフォルトの名無しさん:2008/10/09(木) 11:24:18
MikuMikuDanceをJava3Dで作成できますか?

966 :デフォルトの名無しさん:2008/10/09(木) 11:29:52
>>955
3x3ぐらいの画像で再現させて、その本当のRGBとプログラムで取得した値を全部書き出してみろ。

967 :デフォルトの名無しさん:2008/10/09(木) 11:31:04
>>965
出来ないと思うなら出来ない

968 :デフォルトの名無しさん:2008/10/09(木) 11:33:53
出来ると思えば出来るのか?

969 :デフォルトの名無しさん:2008/10/09(木) 11:35:42
>>959
そうでした;;
失礼しました。

プログラムは
http://www.cs.cf.ac.uk/Dave/HCI/HCI_Handout_CALLER/node123.html

です。
"test.rtf"の中には"あいうえお"と入っています。
コンパイル成功後、ファイルが開かれますが
その開いたファイルの中身が"‚‚¢‚¤‚¦‚¨"となってしまっています。
この文字化けを解消したいです。


970 :デフォルトの名無しさん:2008/10/09(木) 11:38:22
>>965>>968
ガンガレ(懐

971 :デフォルトの名無しさん:2008/10/09(木) 11:39:43
手っ取り早く何か作りたいなら専用ソフト買え。それとも自作ライブラリを作るかのどっちか。
結局有料ソフトはライブラリの寄せ集めに過ぎないし、今は海外でも3Dライブラリの整備作業が(数年前に)始まったばかり。
アニメでべた塗りの2Dもどきなら、そんなに難しくないし、3Dのライブラリもある程度そろってきたから、ミク程度の動きなら出来るんじゃないかと思う。
今はまだ早いけど5年後ぐらいなら3DのUIとか当然になるんじゃないか?

972 :デフォルトの名無しさん:2008/10/09(木) 11:48:27
>>969
java RTFEditorKit 日本語 でググると文字化けに関するのがかなり出てくるぞ

973 :デフォルトの名無しさん:2008/10/09(木) 11:52:23
3Dのグリグリよりは、3Dで作る擬似2Dの方が今のPCのハード性能から見ても丁度いいし、細かな制御いらないから何より作りやすいし、数年はこの流れが主流なんじゃないか?
クラッシュバンデグーとか懐かしいな・・・

974 :デフォルトの名無しさん:2008/10/09(木) 11:55:31
アプリケーションに3DがいらないことはVistaが証明してくれた

975 :デフォルトの名無しさん:2008/10/09(木) 11:57:18
>>974
3Dの有用な使い方がなく、今でも必要ないだけ。つまり、おまえが無能とういこと。

976 :デフォルトの名無しさん:2008/10/09(木) 11:59:02
>>974
糞はだまっとれ

977 :デフォルトの名無しさん:2008/10/09(木) 12:06:38
有能ですが何か?

978 :デフォルトの名無しさん:2008/10/09(木) 12:25:10
>>977
ならおまえが有用なライブラリを作れw

979 :デフォルトの名無しさん:2008/10/09(木) 12:27:00
Java3Dの奴ら一緒に使いやすいライブラリ作ったら、俺が使ってやるw

980 :デフォルトの名無しさん:2008/10/09(木) 12:45:38
>974-975
Vistaは全然Aeroを活かせてない
本来は凄く便利なことが出来るのに凄く勿体ないよ
Compizは比較的利点を活かしてるが、それでも模索中って感じはするね
便利な機能と一発屋な機能が入り混じってる

981 :デフォルトの名無しさん:2008/10/09(木) 13:03:03
おまえはなんでもかんでもmicrosoftに求めすぎw
だから肥大化したんだろうけど、いくら有能でもMSは傲慢だから嫌われるww

982 :デフォルトの名無しさん:2008/10/09(木) 13:08:04
>>980
ならwin32/Vista/Aeroの機能をコールするだけのブリッジ・ライブラリを作ってくれ。
windowsのような新興宗教には興味ないからMSDN読みながらJNIとか面倒だし、そこまで便利だというなら俺が使ってやる。・・・といってもwindows自体はライブラリのでかいのであって、3Dの基本機能は同じだしJOGL/Java3Dでいいよ。

983 :デフォルトの名無しさん:2008/10/09(木) 17:52:36
>>961
具体的にはどんなものがありますか?

984 :955:2008/10/09(木) 22:28:14
>>966

IrfanView や PhotoShop で読み込んだ画素値
48, 90, 43, 93, 48, 92, 49, ...

Java のプログラムで読んだ画素値
120, 160, 114, 163, 120, 162, 121, ...

灰色画像なので RGB値は同じです。

985 :955:2008/10/09(木) 22:35:58
現象が発生する画像を up しました。(1x1, 1kB)
ttp://www.death-note.biz/up/img/26527.bmp

986 :デフォルトの名無しさん:2008/10/09(木) 23:59:10
>>985
ttp://www.umekkii.jp/data/computer/file_format/bitmap.cgi

987 :955:2008/10/10(金) 00:08:36
>>986
8bitビットマップ
に該当するのはわかっています。
実際、バイナリエディタで内部を見ると
パレットのところに
00 00 00 00 01 01 01 00 02 02 02 00 ...
と 0 〜 255 の灰色が格納されています。
画素のところは 30 なので 48 が画素値
パレットは 30 30 30 00 なので、(R, G, B) = (48, 48, 48) (10進)
になるのが正しいはずです。

しかし、955 のコードで読み込むと 120 になってしまいます。
これって、自分で 8 bit ビットマップかどうかを判定して
うまくやらないといけないんでしょうか??

988 :デフォルトの名無しさん:2008/10/10(金) 00:11:11 ?2BP(1000)
Write once 有名な Java ですが、
本当にJavaで書けばWindowsでもMacでも動くアプリケーションがつくれますか?

989 :デフォルトの名無しさん:2008/10/10(金) 00:17:51
>>988 できるよ

990 :デフォルトの名無しさん:2008/10/10(金) 00:39:01
>>988
できるけど、
OSやJVMのベンダーによって挙動が変わるAPIもあるし
作った後に他プラットフォームでも動作確認はしとくべき。

991 :デフォルトの名無しさん:2008/10/10(金) 00:42:55
Write Once, Test Anywhere

992 :デフォルトの名無しさん:2008/10/10(金) 00:43:24
というか、Java以外にマルチプラットで(普及してる)言語なんかあるんですか?(Cはプリプロセスあるからだめですよw)

993 :デフォルトの名無しさん:2008/10/10(金) 00:53:58
java以外だと動的言語ばっかりになるね。

994 :デフォルトの名無しさん:2008/10/10(金) 01:04:50
javaとjrubyでscript
rubyでjvm bytecode class file
が出来るから、もうほとんど用が足りる世の中になった。

サル程度の仕事は、昔はperlとかだったけど今じゃjavascriptじゃないか?

995 :デフォルトの名無しさん:2008/10/10(金) 03:30:55
>>985>>955 に通しても >>984>>986 のようにはならないな。
パレットも違うし画素値と呼んでるのも違う。
985はなんのためのサンプルなんだ?

996 :デフォルトの名無しさん:2008/10/10(金) 03:37:27
次スレ

997 :955:2008/10/10(金) 07:47:06
>>995
マジですかー
私の環境だと 120 になるんです。。。

998 :デフォルトの名無しさん:2008/10/10(金) 08:37:27
2get

999 :デフォルトの名無しさん:2008/10/10(金) 10:30:45
999

1000 :デフォルトの名無しさん:2008/10/10(金) 10:32:34
1000ならザーメン1000メートル飛ぶ

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

261 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)