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

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

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

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

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

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

次スレは>>980あたりで。
2デフォルトの名無しさん:2007/11/07(水) 23:12:00
>>1
3デフォルトの名無しさん:2007/11/08(木) 08:21:21
UMLのひし形と矢印がついている線はなんですか?
4デフォルトの名無しさん:2007/11/08(木) 10:11:33
集約と継承?
5デフォルトの名無しさん:2007/11/08(木) 11:32:49
awpとswingどちらがおすすめですか?
6デフォルトの名無しさん:2007/11/08(木) 12:23:20
awtか?
7デフォルトの名無しさん:2007/11/08(木) 12:58:29
おぅぇっぷ と読みます。
8デフォルトの名無しさん:2007/11/08(木) 13:12:06
Abstract Window (プ
9デフォルトの名無しさん:2007/11/08(木) 14:40:32
Javaのお勧め本を教えてください><;

なんのジャンルでもいいです><;

色々試すのがすきなんです><
10デフォルトの名無しさん:2007/11/08(木) 15:41:38
public static void main(String args[])throws Exception{
String str;
BufferedReader br=new BufferedReader(new FileReader("./input.txt"));
BufferedWriter bw=new BufferedWriter(new FileWriter("./output.txt"));
   
   
while((str= br.readLine())!=null){
int a=0;
while(str.length()>a){
bw.write(str.charAt(a++)+"\n");
}
}
 bw.close();
 br.close();
}
1110:2007/11/08(木) 15:45:28
↑でinput.txtは青空文庫の小説が入っているテキストファイルで、
それを一文字ずつバラバラにして、一行に一文字だけ書く形式にしてoutput.txtに出力しています。

ここからoutput.txtに出力されたものをソートして同じものを一箇所に固めて、
そこから何回その文字が使われたかお数えて大きい順に表示するプログラムを作りたいのですが、特にソート部分どうするべきでしょうか?
12デフォルトの名無しさん:2007/11/08(木) 15:51:28
ArrayList<String> list = new ArrayList<String>();
BufferedReader r = new BufferedReader(new FileReader("output.txt"));
String s;
while ((s = r.readLine()) != null) {
 list.add(s);
}
Collections.sort(list);
13デフォルトの名無しさん:2007/11/08(木) 16:43:40
buce eckel javaプログラミングマスターコース上下巻

この辺りがいいんじゃない

ケチった分だけ後で跳ね返ってくる
14デフォルトの名無しさん:2007/11/08(木) 17:09:13
frameを使い、HTMLのように、リンクの上にマウスが来た場合にマウスのカーソルを
変更しようとしているのですが、この場合、マウスモーションリスナーのe.getを使い、
if-else文である領域に来たら、変えなくてはいけないのでしょうか?

また、frameに文章を書く場合、g.drawstring以外に書く方法はないでしょうか?
この場合、マウスカーソルが文章上にある時のカーソルにならないので、他の方法があれば
その方法を用いたいと考えています。
ご回答、よろしくお願いします。
15デフォルトの名無しさん:2007/11/08(木) 17:16:16
領域に当たるオブジェクトにマウスリスナーを仕掛けとけば良いでしょ
16デフォルトの名無しさん:2007/11/08(木) 17:22:20
drawString() べた書きで文字書いてるなら、マウスの位置から該当領域を割り出してカーソル変える処理が必要。
17デフォルトの名無しさん:2007/11/08(木) 17:51:33
frame に直接書かずに Label を置いて、Label にカーソルを設定すればいいんじゃない?
18デフォルトの名無しさん:2007/11/08(木) 18:46:55
俺は、なんかJava入門とかそんな本やって会社に就職したんだけど、
これといって作れるプログラムなんてなかった。そこの会社の人に課題で
社員管理プログラムをつくれっていわれたんだけど、そんときに
一緒に与えてもらった本が「Java工作プログラミング(ピアソンエデュケーション)」
今はもう売っていないだろうけど、ああいう本が初心者にはいいとおもう。
19デフォルトの名無しさん:2007/11/08(木) 18:51:26
WRITING SOLID CODE
Java じゃないし CODE COMPLETE に統合されちまったが。
20デフォルトの名無しさん:2007/11/08(木) 19:33:11
質問です

それぞれのクラスのstatic初期化子が、どのような順番で呼び出されるかは不定なのでしょうか?
static初期化子で、他のクラスのstaticな変数などを参照するのは危険な行為でしょうか?
C++では危険なのでやってはいけなかったと記憶しています
21デフォルトの名無しさん:2007/11/08(木) 19:39:35
22デフォルトの名無しさん:2007/11/08(木) 19:44:44
>>20
スタティックイニシャライザはクラスがロードされるタイミングで動きます。
クラスがロードされるタイミングは不確定ですが、少なくともクラス A からクラス B の
値を参照する直前には B はロードされます。

A と B のスタティックイニシャライザ内で互いの static 値を参照しあっていて、どちらが
先に動くかで動きが変わることは考えられます。つまりそんな設計すんなと。
23デフォルトの名無しさん:2007/11/08(木) 19:45:07
他クラスのstatic変数の参照は全く問題ない。
Javaは動的にロードするから。
24デフォルトの名無しさん:2007/11/08(木) 19:48:01
>>21
同じクラス内の中のstaticは、ソースで書いた順ということがわかりました。ありがとうございます

>>22-23
流石に「参照しあう」のは無理ですし、馬鹿らしいですね
AからBを参照する場合は、Bが先に動的ロードされるわけですか。なるほど
C++の「非ローカルなstatic変数の初期化」とは違い、かなり安全性が高いですね
25デフォルトの名無しさん:2007/11/08(木) 19:50:25
ロード順序で挙動が変わるサンプル

class A{
  public static final boolean flag;
  static{
    System.out.println("B is " + B.flag);
    flag = true;
  }
  public static void main(String[] args){}
}
class B{
  public static final boolean flag;
  static{
    System.out.println("A is " + A.flag);
    flag = true;
  }
  public static void main(String[] args){}
}

実行結果

C:\Documents and Settings\ore>java A
A is false
B is true

C:\Documents and Settings\ore>java B
B is false
A is true
26デフォルトの名無しさん:2007/11/08(木) 19:54:26
スタティックイニシャライザの話はシリアライズが絡むとちょっとややこしい
27デフォルトの名無しさん:2007/11/08(木) 19:56:30
>>24
違う違う。
A がロード済みで、A の処理を実行している途中で B への参照が現れた場合、B が
まだロードされていなければそこで B をロードする。まぁクラスローダーの実装にも
よりけりだが、少なくとも参照直前までに B がロードされていることは保障されている。
28デフォルトの名無しさん:2007/11/08(木) 19:58:26
>>27
復唱の仕方が悪かったようです。理解してます。ありがとうございます

static
{
a = 5;
b = B.z; // ここで、Bがまだ未初期化ならBがロードされる
}

ってわけですよね。
29デフォルトの名無しさん:2007/11/08(木) 20:05:57
他スレでちょっと話題になったんで質問。

int a, b;
...
a+=b;

というコードがJITでネイティブコードに変換された場合、
レジスタ同士の加算が機械語の1命令で実行されるケースって現実に存在しますか?
30デフォルトの名無しさん:2007/11/08(木) 20:28:47
データベース接続を返したりするユーティリティクラスのメソッドがあるんですが、
全部staticで作りました。ぐぐったらスレッドセーフとか出てきたけど、スレッドなんて関係あるんですか?
31デフォルトの名無しさん:2007/11/08(木) 20:33:26
>>30
スレッドで同時に接続命令が複数呼ばれた時も平気なように作った?
32デフォルトの名無しさん:2007/11/08(木) 20:34:07
>>30
static 宣言された変数使ってなければ関係はない。
33デフォルトの名無しさん:2007/11/08(木) 20:34:17
ユーティリティクラスであれば自動的にスレッドセーフ
3430:2007/11/08(木) 20:37:17
>>31
どうもありがとう。。そんなややこしいことしなきゃいけなかったんですね。

なんだかよくわからず、普通に接続してそのオブジェクトを返すしか
かいてないです。。明日、先輩によく相談してみます。
35デフォルトの名無しさん:2007/11/08(木) 20:37:31
Javaでは、switchはジャンプテーブルとして展開されますか?
while(すっごいたくさん)
{
switch()
{

}
}//while.

こんな感じのプログラムがありまして、switchをとにかく高速化したいのです
3630:2007/11/08(木) 20:39:40
>>32 >>33 どうもありがとうございます。
static宣言の変数は作っていません。というより、グローバルスコープの
変数はないです。どれも各々メソッド内で完結する変数ばかりなので、安心です。
お二方にそうおっしゃられて安心しました。上司には、「別に難しい事考えずに
接続オブジェクトを返すプログラムを作ってくれればいい」といわれたので
ごく単純に作ったんです。安心しました。ありがとうございました。
37デフォルトの名無しさん:2007/11/08(木) 20:42:02
>>36
理屈もわからないのに安心しててどうするよ
技術者として、ありようがダメだな
38デフォルトの名無しさん:2007/11/08(木) 20:45:56
>9 試すだけならコアジャバ奨める。メソッドの意味とか理解したい場合は糞本
39デフォルトの名無しさん:2007/11/08(木) 20:48:53
>>35
Java の switch はジャンプテーブル作るよ。
意味無く switch 命令に整数しか指定できないないようにはしない。
40デフォルトの名無しさん:2007/11/08(木) 20:50:49
>>35
たしか0〜5はジャンプテーブル展開だった希ガス
仮想マシン仕様を見てみ
41デフォルトの名無しさん:2007/11/08(木) 21:32:40
>>39-40
ありがとうございます
ただGoogle先生に「Java switch ジャンプテーブル」でぐぐってもなかなかいいところが見つかりません
switchはこんな感じになるのでしょうか?

switch(a)
{
case 5: print(5); break:;
case 6: print(6); break:;
case 7: print(7); break:;
}

↑こういうJavaのswitchは↓こうなる?

if (5 <= a && a <= 7)
{
Address pointer[] = { 5へのアドレス, 6へのアドレス, 7へのアドレス};
VMJump(pointer[a - 5]);
}

概念的にですが、こんな感じでしょうか?
・抜け番号があったらどうなるのか
・0からの連番のほうがパフォーマンスがよくなるのか
とかが気になるところです
(興味があるんでしつこく突っ込んでます。すいません)
42デフォルトの名無しさん:2007/11/08(木) 21:35:56
Javaは動的再コンパイルするから、
サーバ用途なら展開のされ方も変わってきそう
43デフォルトの名無しさん:2007/11/08(木) 21:39:24
む、コンパイルの段階でテーブル化ないのですか
携帯Javaなのであまり動的再コンパイルとか期待できません
44デフォルトの名無しさん:2007/11/08(木) 21:41:52
>>12
ありがとうございます、おかげさまで、何とかあと少しで
自分の求める処理までいけそうです。
本当に助かりました!
45デフォルトの名無しさん:2007/11/08(木) 22:10:22
ttp://www.city.tarumizu.kagoshima.jp/festa/festa2004/ibento/hanabi-pages/29.htm
javaでこれに似た花火を作ろうと思ってます。
そこで質問なんですが
花火だけではリアルさが欠けてしまうと思ったので
飛んで行く火薬玉も取り入れました。
しかし時間差で飛ばすことがどうしても出来ません。
どうすれば良いでしょうか?
46デフォルトの名無しさん:2007/11/08(木) 22:15:02
>>15
ありがとうございます。
Panelを用いてマウスリスナーを設けることにしました。

>>16 >>17
ありがとうございます。
マウス位置の該当領域を持ってくるのと、Labelを置くのとでは、どちらの方が表示などに負担が少ないでしょうか?
47デフォルトの名無しさん:2007/11/08(木) 22:28:36
48デフォルトの名無しさん:2007/11/08(木) 22:34:32
>>47
ありがとうございます
すばらしい情報です
49デフォルトの名無しさん:2007/11/08(木) 22:46:19
イベントってEventObject、EventListenerを継承しないとダメなんでしょうか?
50デフォルトの名無しさん:2007/11/08(木) 22:50:26
北斗神拳を継承するにはどうしたらいいですか?
51デフォルトの名無しさん:2007/11/08(木) 22:54:44
お前はもう…………実装している…
52デフォルトの名無しさん:2007/11/08(木) 23:21:52
質問です。下のアプレットを実行するとテキストフィールドの2つ目が
どっかに行っちゃって1つしか表示されません。どうしたら2つとも表示できるのでしょうか。
お願いします。 

import java.applet.*;
import java.awt.*;

/*<applet code="applet0.class" width="400" height="300">
</applet>*/

public class applet0 extends Applet{
public void init(){
Label label = new Label("ラベル");
add(label);
Button button = new Button("ボタン");
add(button);
Choice choice = new Choice();
choice.addItem("チョイス1");
choice.addItem("チョイス2");
add(choice);
TextField textField1,textField2;
textField1 = new TextField("テキスト1");
textField2 = new TextField("テキスト2");
add(textField1,textField2);
this.setLayout( new GridLayout(10,1));
}}

53デフォルトの名無しさん:2007/11/08(木) 23:48:32
>>52
>add(textField1,textField2);
54デフォルトの名無しさん:2007/11/08(木) 23:48:45
Appletはpack()しなくていいの?
55デフォルトの名無しさん:2007/11/09(金) 00:12:47
ないし
56デフォルトの名無しさん:2007/11/09(金) 00:36:17
52です。まだ分からないのでお願いします。
すいません。
57デフォルトの名無しさん:2007/11/09(金) 00:39:39
add(textField1);
add(textField2);
58デフォルトの名無しさん:2007/11/09(金) 00:41:16
二つのテキストフィールドをアプレットに張り付けたいようですが
add(textField1,textField2);
このような書き方はできません。
おそらく
http://java.sun.com/javase/6/docs/api/java/awt/Container.html#add(java.awt.Component, java.lang.Object)
このメソッドが呼び出されてます。

レイアウトを考えないのであれば
add(textField1);
add(textField2);
こうしてあげましょう。
59デフォルトの名無しさん:2007/11/09(金) 00:43:30
やっと分かりました。
本当にありがとうございました。
60デフォルトの名無しさん:2007/11/09(金) 01:19:16
20 :  barr
3 :  foob
1 :  hoge
4 :  piyo
こういうファイルをソートする時に文字列としてソートしないで、
先頭の数値基準でソートするのって、何か良いやり方ってありますか?orz

つまり結果が、
1 :  hoge
20 :  barr
3 :  foob
4 :  piyo

じゃなくて、

1 :  hoge
3 :  foob
4 :  piyo
20 :  barr
ってなるようにです。
61デフォルトの名無しさん:2007/11/09(金) 01:27:13
Comparatorで並びを定義すればOK
62デフォルトの名無しさん:2007/11/09(金) 01:32:55
たぶんこんな感じでいいんじゃない
Collections.sort(list, new Comparator<String>() {
public int compare(String a, String b) {
int i = Integer.parseInt(a.substring(0, a.indexOf(' ')));
int j = Integer.parseInt(b.substring(0, b.indexOf(' ')));
return i < j ? -1 : i > j ? 1 : 0;
}
});
63デフォルトの名無しさん:2007/11/09(金) 01:33:38
>>61
ご助言ありがとうございます。
ちょっと今日はこの問題に苦戦しすぎて死にそうなので、
明日起きたらComparatorを調べてやってみます。
寝る前に明日の取っ掛かりが出来て良かったです、本当にありがとう><
64デフォルトの名無しさん:2007/11/09(金) 01:35:55
>>62
これは…!ありがとうございます!><
こんな時間に申し訳ないです、明日の参考にさせて頂きます。
これが出来れば、処理が全部完成するので本当に感謝です!
65デフォルトの名無しさん:2007/11/09(金) 01:36:24
b^e mod n を計算するメソッドがかけません。誰かお解かりでしたらお助けください。
modpower(b, e, n)
66デフォルトの名無しさん:2007/11/09(金) 01:39:16
double modpower(double b, double e, double n) {
return Math.pow(b, e) % n;
}
なんでこんなのが書けないんだ
67デフォルトの名無しさん:2007/11/09(金) 08:12:33
以下のソースでfinish()が実行される時はsetProblem(x, y)を
実行したくないのですが、どういう書き方をすればいいのでしょうか?

if (key == answer) {
correctAnswer();

x++;
if (x == arrayX.length) {
x = 0;
y++;
if (y == arrayY.length) {
finish();
}
}

setProblem(x, y);
} else {
wrongAnswer();
}
68デフォルトの名無しさん:2007/11/09(金) 10:19:53
スペースを10個といった表現はどうやればよいでしょうか?
VBの場合
Space(10)
で良いのですがJavaの場合どのようになりますでしょうか?
69デフォルトの名無しさん:2007/11/09(金) 10:33:16
>>67
finish の後に return ではだめなん?
じゃ無ければ、 カルノー図に書き出して、
条件の組み合わせを確認して、再構成するとか。
70デフォルトの名無しさん:2007/11/09(金) 10:54:46
>>68
"          "
71デフォルトの名無しさん:2007/11/09(金) 11:19:03
>>70
だせー
72デフォルトの名無しさん:2007/11/09(金) 11:28:52
>>71
気に入らんか・・・
シンプルでいいと思うんだが
じゃあ↓のようなメソッドでも作って space(10) とやってくれ

String space(int n) {
 char[] c = new char[n];
 Arrays.fill(c, ' ');
 return new String(c);
}
73デフォルトの名無しさん:2007/11/09(金) 12:31:39
Space(10)の方がださいことに気付こう
74デフォルトの名無しさん:2007/11/09(金) 12:43:12
>>68
まず InfinityCharacterReaderFactory インターフェイスを作ってだな(ry
75デフォルトの名無しさん:2007/11/09(金) 12:54:36
おまいらそろそろ 5.0 の機能くらい覚えろよ…

String.format("%10s", " ")
76デフォルトの名無しさん:2007/11/09(金) 13:42:42
JAVAでmp3の音楽を読み込ませて、サビ、イントロ、Aメロ、Bメロみたいに、音楽の構成を出力することってできますか?
できそうなら、だいたいどういうことしたらできるか教えてください。

ちなみにJAVAで音楽の解析ってどんなことができますか?
77デフォルトの名無しさん:2007/11/09(金) 13:57:00
> JAVAでmp3の音楽を読み込ませて、サビ、イントロ、Aメロ、Bメロみたいに、音楽の構成を出力することってできますか?
できません。
78デフォルトの名無しさん:2007/11/09(金) 14:14:24
>>70のやり方がベストだろ。>>75はキャッシュが利用できなくて無駄。
79デフォルトの名無しさん:2007/11/09(金) 14:27:57
キャッシュ(笑)
80デフォルトの名無しさん:2007/11/09(金) 14:38:21
キャッシュ機能追加するならメソッド化すれば良いだけじゃん。
想像力足りないよ君。
81838:2007/11/09(金) 14:38:58
スペースって\sじゃねえん?
82デフォルトの名無しさん:2007/11/09(金) 14:42:15
それは正規表現
83デフォルトの名無しさん:2007/11/09(金) 14:45:13
>>79,80
jvmが勝手にキャッシュするんだよ。flyweightも知らんのか。
84デフォルトの名無しさん:2007/11/09(金) 14:49:40
>>83
Java のは文字列プール。キャッシュとは言わない。
85デフォルトの名無しさん:2007/11/09(金) 14:50:43
>>84
はいはいすいませんでした。
86デフォルトの名無しさん:2007/11/09(金) 14:51:26
flyweight と言いたかっただけとちゃうか。
つか勝手にじゃなくてそれ仮想マシンの仕様な。
87デフォルトの名無しさん:2007/11/09(金) 14:51:33
>>83
どこでその生成コストを回収するんだよw
大体、それを使うために、スペースキー10回を毎回入力するのかね
88デフォルトの名無しさん:2007/11/09(金) 14:56:32
>>87
おまえはいいよ。まったく分かってなさそう。
89デフォルトの名無しさん:2007/11/09(金) 14:57:54
まあまあ、落ち着け

そもそも指定個数のスペースの文字列が必要になるって時点で
全体が糞設計確定なんだからさ
90デフォルトの名無しさん:2007/11/09(金) 14:58:29
>大体、それを使うために、スペースキー10回を毎回入力するのかね 

ダブルクォーテーション2個+スペースキー10回連打するのと
"Space(10)" の9文字を入力するのって
そんなに手間違わないと思うけどな
91デフォルトの名無しさん:2007/11/09(金) 14:58:30
すみません。JSP・サーブレットを勉強し始めてるものです。
本を一冊やっているんですが、
JSPで<%@page%>タグの中でencoding=Windows-31Jと指定しています。
で、フォームなんかの要素を受け取る際、setCharacterEncoding("Windows-31J")で
デコードしなくてはいけないと書いてあります。

相手のOSがWindowsならわかるんですが、Linuxだったりした場合も
送信されてくるフォームはWindows-31Jで送られてくるんですか?

自分のWebアプリケーションのサイトがWindows-31Jで指定して作ってある場合は
相手のコンピュータもOS問わずWindows-31Jでフォームのデータを送信してくるという
ことなんですか?
92デフォルトの名無しさん:2007/11/09(金) 15:07:10
>>91
相手の OS が Win だろうが MacOS だろうが Linux だろうが、そのページのエンコーディングで
送信してきます。Shift_JIS なら Shift_JIS で、EUC-JP なら EUC-JP で。

ただし Windows-31J は IANA が規定していない Java 独自のエンコーディングラベルなので、
どのブラウザもそれが Shift_JIS の事だとは知らないため誤認識する可能性があります。しかし
JSP の page ディレクティブに Shift_JIS と書くと 〜 などが文字化けするという矛盾があります。

従って、<%@ page %> ディレクティブでは Windows-31J を指定し、HTML の <meta> タグで Shift_JIS
を示してやるのが正しい方法です。ここまできちんと書いてない解説書や識者は糞なので捨ててください。

<%@ page language="java" contentType="text/html; charset=Windows-31J" %>

<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
93デフォルトの名無しさん:2007/11/09(金) 15:07:34
HttpRequestのgetCharacterEncodingがnullじゃなければ、
それでデコードすればいんじゃね?
9491:2007/11/09(金) 15:12:04
>>92さんどうもありがとうございます。とっても詳しく解説していただき
疑念が全部解けました。おっしゃるとおり、JSPタグとHTMLタグのmetaタグの両方で
指定しようとおもいます。本当にありがとうございました。

>>93さんありがとうございます。getCharacterEncodingって言うメソッドもあるんですね。
Javaは便利ですね。それもやってみたいとおもいます。

お二方どうもありがとうございました。とても参考になりました。
95デフォルトの名無しさん:2007/11/09(金) 16:24:47
すみません。初心者でスレ違いかもしれませんがPHPとJAVAを連携させることは可能でしょうか?
オープンソースのopenPNEの中でJAVAで記述した人工知能を動かして見たいと考えています。
こうしたことは技術上可能なのでしょうか。ご教授お願いいたします。

96デフォルトの名無しさん:2007/11/09(金) 16:27:55
>>95
JNI、ソケットで通信、コマンド起動
好きなの選べ。
97デフォルトの名無しさん:2007/11/09(金) 16:30:02
人工知能ライブラリも簡単なものならあるね
ファジーも入っててお得だ
組み合わせれば結構有用なものが作れた
ぜひおためしあれ
98デフォルトの名無しさん:2007/11/09(金) 16:38:48
>>97
どういうの?お試ししたいんだど。
99デフォルトの名無しさん:2007/11/09(金) 16:44:34
>>92
Windows-31JはIANA登録名だぞ。
>>91
なので、ぜんぶWindows-31JにしてしまってOK。
100デフォルトの名無しさん:2007/11/09(金) 16:50:45
>>92
IANAの登録はCharsetクラスのドキュメントからたどれるよ。
101デフォルトの名無しさん:2007/11/09(金) 16:52:24
>>99
ありゃ、本当だ orz
MS932 や Cp943C と同じかと思ってた。
102デフォルトの名無しさん:2007/11/09(金) 16:52:50
画像を動かすときに再描画せず(痕が残るように)にする方法はありませんか?
103デフォルトの名無しさん:2007/11/09(金) 16:55:59
>>102
update() をオーバーライドする。

public void update(Graphics g){
  paint(g);
}
public void paint(Graphics g){
  …
}
104デフォルトの名無しさん:2007/11/09(金) 16:59:09
どこまであとを残すかって話にもなるけど
VectorにShapeを保存していく方法もある
Zオーダーには注意した方が良いかな
105デフォルトの名無しさん:2007/11/09(金) 17:26:09
Imageにペタペタ描画していけば
106デフォルトの名無しさん:2007/11/09(金) 19:28:50
痕跡の再利用の必要がなければImageのほうが簡単
107デフォルトの名無しさん:2007/11/09(金) 22:44:21
ファイナライザではなくデストラクタを使いたいのですが(作りたいのですが)
obj = null;
などの代入をひっかけて何かするということはできますでしょうか?
C++でいう代入演算子のオーバーライドで、参照カウントあたり使ってやりたいなと
108デフォルトの名無しさん:2007/11/09(金) 22:54:33
そんな無駄な労力使わないで、リソースの開放とかなら finally 節で確実にヤレ

obj = new SomeClass();
try{
  …
} finally {
  obj.release();
}
109デフォルトの名無しさん:2007/11/09(金) 22:55:19
無 理
ファイルのcloseやGraphicsのdisposeみたいに特別な解放処理をしたいの?
AddRef/ReleaseRefメソッドを実装して…とかできないこともないだろうけど
使うときは普通にそれらのメソッドを呼び出すしかない
110デフォルトの名無しさん:2007/11/09(金) 23:06:36
>>109
ご推察の通りです
C++狂信者なものでついデストラクタに頼りたくなってしまいました

>>108のような、郷に入っては郷に従った方法でやることにします
111デフォルトの名無しさん:2007/11/09(金) 23:19:38
D言語ならJavaやC++両方の流儀を混在させられますがね。
(普及もせん内から2系の開発に移るなど相変わらず混沌としてるけどw)
112デフォルトの名無しさん:2007/11/09(金) 23:48:38
java.ioなら1.5からCloseableインタフェースが追加されたから、
匿名クラスと組み合わせて、Ruby風の処理が出来るね。

1.7のClosureで入ってくるかも知れないけど。
113デフォルトの名無しさん:2007/11/09(金) 23:54:42
たしかstaticメソッドとクロージャを組み合わせて、
呼び出す側ではwith(FileReader in : makeReader()) { (処理) }みたいな形式で書けるようにするとか。
114デフォルトの名無しさん:2007/11/10(土) 00:02:41
throwsがあるせいでC#みたいに全部disposeで統一できないんだな
そのへんはどうするんだろう IO限定?
115102:2007/11/10(土) 00:11:15
自分がこれだ!というものに出くわしてないので
>>103さんと>>105さんのを比べて使い勝手が良い方を採用してみます。
皆さんありがとうございました
116デフォルトの名無しさん:2007/11/10(土) 00:31:55
Javaでメールクライアント作ろうと思うんですが、、
オープンソースを参考にしようとしているのですが、探しても見つかりません。
オープンソースで何か良いソフトはないでしょうか?
117デフォルトの名無しさん:2007/11/10(土) 00:38:46
thunderbirdじゃダメなのか
118デフォルトの名無しさん:2007/11/10(土) 00:45:46
http://www.pc-view.net/article/55/3.html

上のサイトのリスト6の

public boolean isEmpty() {
return queue.isEmpty();
}

この部分が何をしていて何のために必要か、まったくわからないのですが
誰か教えて下さい

119デフォルトの名無しさん:2007/11/10(土) 00:48:38
空かどうかチェック
そのままだろw
120デフォルトの名無しさん:2007/11/10(土) 01:01:01
http://www.pc-view.net/article/55/1.html
のリスト1
public boolean isEmpty() {
return queue.isEmpty();
}

がいいかも

>>119
まったくわかりません

そもそもなぜここに付け足してるかも
最初のenqueue,dequeueでqueueクラスは事足りてるのに
121118:2007/11/10(土) 01:05:04
public class Queue {
private ArrayList queue = new ArrayList();
public void enqueue(String value) {
queue.add(value);
}
public String dequeue() {
String ret;
if (queue.isEmpty()) {
ret = null;
} else {
ret = (String)queue.get(0);
queue.remove(0);
}
return ret;
}
public boolean isEmpty() {
return queue.isEmpty();
}
}
122デフォルトの名無しさん:2007/11/10(土) 01:06:06
Queue インターフェースには isEmpty() が付いているからサブクラスは実装しなければならない。
なぜ Queue に isEmpty() が必要か? それはそのインターフェースを設計した奴に聞け。
123デフォルトの名無しさん:2007/11/10(土) 01:07:18
なんで事足りてるとか思うんだよ
空かどうかで条件分岐したい時だってあるだろ
dequeueで返ってきた値がnullかどうかチェックするよりよっぽど可視性があるし
124118:2007/11/10(土) 01:07:43
public void enqueue(String value) {
queue.add(value);
}

ArrayListにぶっこむ

public String dequeue() {
String ret;
if (queue.isEmpty()) {
ret = null;
} else {
ret = (String)queue.get(0);
queue.remove(0);
}
return ret;
}

retつー変数返す
retにはqueueが空ならnullぶっこんで、queueに何かはいってたら
その何かをぶっこむ。その何かはぶっこんだらArraylistから消しとく

125118:2007/11/10(土) 01:12:22
>>122
すいません
http://www.pc-view.net/article/55/1.html
のリスト1
がいいかも

>>123
public boolean isEmpty() {
↑そもそもこれクラス?

return queue.isEmpty();
queueを空にして返す?

}

根本的に何を書いてるかが理解できない
ググって見てisEmpty()調べてもこの使い方はわからない

リスト2:QueueClient.java
を見ると空かどうかという条件分岐が必要とは思えない

なぜついてるんだああああああうあああああ
126デフォルトの名無しさん:2007/11/10(土) 01:23:14
>>120
本当にenqueueとdequeueだけで事足りるかな?
この二つだけだと、取り出す操作をしない限り空かどうか分からない。
空でないときだけ先に何かをしてから取り出す、といったことはできなくなる。
127デフォルトの名無しさん:2007/11/10(土) 01:26:07
isXXX()ってのは、boolean型の返り値を戻すメソッドに使われて
if( isXXX() ){}のように使われる。
英語の疑問文で読んだときに正しい場合true。
この場合isEmpty()だからそのオブジェクトがあらわすコレクションが空のときtrue。

>public boolean isEmpty() {
>↑そもそもこれクラス?
メソッドです

> return queue.isEmpty();
>queueを空にして返す?
内部的に使ってるArrayListが空であるかどうかを返す

>リスト2:QueueClient.java
>を見ると空かどうかという条件分岐が必要とは思えない
クラスってのは一般的に使われそうなケースを考えて振る舞いを記述するものであり、
そのときに必要なものだけ適当に書けばいいってもんじゃない。
後で誰かがそのクラスを使いたくなったときに必要なはずのメソッドがないためにまともに書けない、なんてことがあっちゃ困る。
128デフォルトの名無しさん:2007/11/10(土) 01:26:58
だからその Queue のインターフェース設計した奴の趣向以外の何物でもないっつってんだろーが。
記事書いた奴に聞けよ。
129デフォルトの名無しさん:2007/11/10(土) 05:59:31
JMFを使ってウェブカメラから映像を入力、フレームに出力ってサンプルソースを見つけたんですが
映像を出力じゃなく、静止画を出力する場合どうしたらいいでしょうか?
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25298&forum=12&2
ググリまくって一番有望な情報に辿り着けたと思いきや何を言ってるか90%くらい分かりません。

ちなみに卒業研究で使おうと思っているのですがプログラム専攻ではないので四月からJAVAを始めて未だにフレーム、リスナー系、スレッドくらいしか理解していません・・・
検索結果がほぼ分からない段階で無謀なのは分かっているのですがどうしても作りたいんです。

どなたかサンプルソースを書いてもらえないでしょうか??
「プログラムを実行したらカメラに写っている静止画をフレームに表示」のみでいいので・・・
それを自分なりに検索して理解して使いこなせるようになりたいと思います。

どなたかよろしくお願い致しますm(_ ___)m
130デフォルトの名無しさん:2007/11/10(土) 06:14:01
動画からサムネール作ろうとやったことがあるが、幾らまでなら出せる?
131デフォルトの名無しさん:2007/11/10(土) 06:46:48
>>129
卒業研究はキャプチャした静止画を得るプログラムを作ることなのか、得られた静止画を使うことなのか?
プログラム専攻ではないということなので、静止画を使うことだと思うのだが、
慣れないプログラミングなんかで本来の研究が時間切れになるよりも、
自腹を切るなり研究費を使うなりして出来合いのものを探して使った方がいいんじゃないか?
そういうプログラムは商用プログラムとかならありそうだが。
一生懸命探せばフリーのものとかがあるかもしれないし。
132デフォルトの名無しさん:2007/11/10(土) 07:57:53
>幾らまでなら出せる?


               な  に  コ  イ  ツ


133デフォルトの名無しさん:2007/11/10(土) 08:12:22
テラパッドでソース書いています
自分はタブ使ってづらして書くんですが
改行すると、次の行の先頭に戻ってしまいます
どうやれば前行の先頭位置になりますか?
134118:2007/11/10(土) 08:24:09
>>126
ありがとうございます
たしかに今回の使用方法以外を考えると必要かも

>>127
詳しくありがとうございます
なんかわかってきました

>そのときに必要なものだけ適当に書けばいいってもんじゃない。
>後で誰かがそのクラスを使いたくなったときに必要なはずのメソッドがないために
>まともに書けない、なんてことがあっちゃ困る。

感動した。こんなこと本に書いてない。けど、これでjavaの理解が深まった気がした。

>>128
やっと私めの理解があなたに追いつきました。
たしかにその通りです。
135デフォルトの名無しさん:2007/11/10(土) 08:35:02
>>133
ソフトの使い方は板違い
terapadにオートインデントの機能があるならヘルプとかを参照にして有効にする
ないのならオートインデントのあるエディタや統合開発環境に移行
136デフォルトの名無しさん:2007/11/10(土) 09:18:46
>>129
まあググってみなよ。
そのページのキーワード、FrameGrabbingControlやBufferToImageあたりを加えてググれば、
それなりのコードが見つかるよ。とりあえずいくつか見つけたので、示してあげよう。
ttp://www.javareference.com/mvnforum/viewthread?thread=398
デバイス取得までの流れは、ここが詳しかった。初心者には冗長に感じるかもしれないけど。
ttp://www.javaworld.com/javaworld/jw-05-2001/jw-0504-jmf2.html

そういやJMFをアプレットで使おうとしたんだけど、これ、
クライアントのカメラをアプレットから使うためには、
exeのインストーラを各クライアントで実行しないとダメなのね。
メンドイ。
137デフォルトの名無しさん:2007/11/10(土) 11:19:07
テキストファイルの内容をキーマクロで整理するソフトを作りたいのですが、どなたかアドバイスお願いします。

@テキストファイルを一行ずつ読み込みLinkedListに格納。
AフレームにLinkedList内容とチェックボックスを表示。
Bキーマクロでチェックボックスon off操作。(Onで維持、Offで削除)
C別キーマクロでLinkedList内の行移動指定。
C上記を反映させてテキスト出力。

BとCで詰まっていて、どうコードを書いて良いのかも分かりません……。
138デフォルトの名無しさん:2007/11/10(土) 12:01:40
一行ずつチェックボックスを表示して、何かキーを押すことでon,off(そのまま/削除)の切り替えや行移動やテキスト出力をさせるということ?
139デフォルトの名無しさん:2007/11/10(土) 12:14:53
>>138
はい、その通りです。

チェックボックスだけなら何とか分かるんですが……。
それにフォーカスの移動や行移動を加えるともう何が何だか……。
140デフォルトの名無しさん:2007/11/10(土) 12:27:10
それなら、手軽に済ませたいならJTable使うのはどうかな?
0列目にチェックボックス表示して、2列目にその行の内容。
確かボーダーを表示しない設定がJTableにあったから、それ使って行の高さも変更したら違和感はなくなるかと。
あとはActionMap取得してそれに各Actionを設定すればok。
141デフォルトの名無しさん:2007/11/10(土) 12:28:27
ぐは、1列目にその行の内容、の間違いです。
142デフォルトの名無しさん:2007/11/10(土) 13:40:08
ひまだから、エディタとブラウザつくってるんだけど、ブラウザは
だいぶ実用的になってきた。とりあえず、エロサイトみててもカモフラージュできる
機能をつけた。

おもしろいよ。GUIプログラミング。もうちょっとGUI関係充実してくれないかな。。Java。
SwingHackっていう本よんでるんだけど、結構役立つよ。JavaのGUIも
今が力のいれどころだとおもうんだけどな〜。これですばらしいSwing拡張機能でもできたら
GUI関係もだいぶJavaが増えるような気がするんだけど。。Javaの技術者も5年前にくらべれば
格段に増えたろうし。。クライアントJavaの復権とかありそうだけどな。。

いや、質問じゃないんで聞き流してもらって結構です。ハイ。
143デフォルトの名無しさん:2007/11/10(土) 13:41:55
Javaプログラマの悩みとして、GUI設計のシステムがWinAPI一色っていう
ところもあるんじゃないかな。GUIまで手を広げられればだいぶ仕事の選択の幅も増えるよね。
144デフォルトの名無しさん:2007/11/10(土) 13:45:35
yahooオク専用のブラウザとか面白いよね。兄ちゃんが
IEにyahooオク専用の機能つけてくれとかいってきたから
「それは無理だ」っていったけど、自作ブラウザなら
それも可能。兄ちゃんに聞いてみてYahooオク専用のブラウザを
作ってあげようかな。

すれ違い失礼。awt/swingすれもちゃんとあるんだね。そっちに移動します。
145デフォルトの名無しさん:2007/11/10(土) 14:29:33
>>140
ありがとうございます。
テーブルを試して一度組んでみます。
146デフォルトの名無しさん:2007/11/10(土) 15:11:12
int a=10, b=3, c=4;
a,b,cに対してC言語で書くと
printf( "%d%d%d", a, b, c );
という風に並べて表示するようにしたいのですが
System.out.println( a + b + c );
とかくと17と表示されます。
暫定的に
System.out.println( a +""+ b +""+ c );
としてるのですが
もっとスマートなやり方ってありませんか?
147デフォルトの名無しさん:2007/11/10(土) 15:14:37
System.out.printf
148デフォルトの名無しさん:2007/11/10(土) 15:15:02
System.out.printf( "%d%d%d", a, b, c );
149デフォルトの名無しさん:2007/11/10(土) 15:24:01
System.out.println( "" + a + b + c );
150デフォルトの名無しさん:2007/11/10(土) 15:30:41
System.out.println(new StringBuilder(a).append(b).append(c));
151デフォルトの名無しさん:2007/11/10(土) 15:39:24
ちょっとマジ?!
マジに System.out.printf ってあるんだ?!

うぉー今知ったよ!!!!
152137:2007/11/10(土) 16:04:37
JTableで複数行を表示させるやり方をお願いしたいです。。
表示させるテキストファイルに<br>が仕込んであるので、そこで改行するようにできないでしょうか。
153デフォルトの名無しさん:2007/11/10(土) 16:06:06
"<html>AAA<br>BBB<br>CCC"
154デフォルトの名無しさん:2007/11/10(土) 16:15:52
>>153
それをしたら枠の中で改行してしまいました。
改行に合わせて枠が広がるようにしたいんですけど、どこを弄ったらできるのか……。
155デフォルトの名無しさん:2007/11/10(土) 18:31:30
>>152
JScrollPaneにJTextArea貼ったようなTableCellRenderer作るってのはダメ??
156デフォルトの名無しさん:2007/11/10(土) 18:47:37
throwsはなくてもあっても見た目以外は同じというのは本当ですか?
157デフォルトの名無しさん:2007/11/10(土) 19:13:30
RuntimeException/Error 系の throws 節記述については、コードや javadoc を見る人間に
明示する以外の目的はない。これを見た目以外同じと表現するのはまぁかまわないだろう。

それ以外の例外は、throws 宣言していないと throw 出来ない、サブクラスでオーバーライド
する時に throw 出来る例外を勝手に追加できない、などの制約が出てくるので、見た目以外
同じというのは間違い。
158デフォルトの名無しさん:2007/11/10(土) 19:15:00
処女と非処女はあそこの締まり具合以外は一緒というのは本当ですか?
159デフォルトの名無しさん:2007/11/10(土) 19:15:58
ありがとうございます。
あやうくhttp://www5c.biglobe.ne.jp/~ecb/java/11_06.htmlの
ホームページにだまされるところでした。
160デフォルトの名無しさん:2007/11/10(土) 19:25:40
>>159
それはまさに >>157 の上 2 行の意図でそう書いていると思う。
161デフォルトの名無しさん:2007/11/10(土) 19:52:37
157の3行目のthrow 出来る例外を勝手に追加できないとは、基底クラスがなんでも
追加できるってことですか?
162デフォルトの名無しさん:2007/11/10(土) 20:01:17
>>161
スーパークラスで throws 宣言されている例外のサブクラス以外は、オーバーライド先で
throw できない (RuntimeException/Error除く)。

public class A{
  public void hoge() throws IOException{…}
}

public class B extends A{
  public void hoge() throws SocketException{…}  // ←OK
}

public class C extends A{
  public void hoge() throws SQLException{…}  // ←コンパイルエラー
}
163デフォルトの名無しさん:2007/11/10(土) 20:22:45
ありがとうございます。
あやうくhttp://www5c.biglobe.ne.jp/~ecb/java/11_05.htmlの
ホームページにだまされるところでした。
164デフォルトの名無しさん:2007/11/10(土) 20:24:48
awtでlabel内の文字を改行するにはどうしたら良いですか?
165デフォルトの名無しさん:2007/11/10(土) 20:27:06
>>163
べつにおかしなこと書いて無い気がするが
166デフォルトの名無しさん:2007/11/10(土) 20:30:21
>>164
AWT の Label クラスはそんなことでけまへん。
編集不可/スクロール不可の設定した TextArea 使うとか、GridLayout で Label を縦に並べるとか、
カスタムで作るとかしてください。
167デフォルトの名無しさん:2007/11/10(土) 20:31:52
http://www5c.biglobe.ne.jp/~ecb/java/01_08.html
これをみてもおかしくないというのか?
168デフォルトの名無しさん:2007/11/10(土) 20:32:24
>>166
解りました。ありがとうございます。
169デフォルトの名無しさん:2007/11/10(土) 20:35:32
個人の解説ページなんて大抵は俺様メモなんだかからどうでもええがな。
170デフォルトの名無しさん:2007/11/10(土) 20:35:59
>>167
>モーニング娘。の中で1番目にかわいいのは後藤真紀だと思います
言語の解説サイト作ってる人ってそういうのが多い気がする
171デフォルトの名無しさん:2007/11/10(土) 20:50:29
いや、亀井絵里だろ
172デフォルトの名無しさん:2007/11/10(土) 21:17:52
java.util
インタフェース Iterator
は手動でIteratorインターフェイスをタイピングしたものと同じものですか?
173デフォルトの名無しさん:2007/11/10(土) 21:23:03
Japanese OK.
174デフォルトの名無しさん:2007/11/10(土) 21:26:56
>>172
>手動でIteratorインターフェイスをタイピングしたもの

って何?
interface OreOreIterator {
boolean hasNext();
Object next();
void remove();
}
みたいなやつのこと?
175デフォルトの名無しさん:2007/11/10(土) 21:28:31
>>174
それのことです
176デフォルトの名無しさん:2007/11/10(土) 21:30:25
同じ・違うの定義が良くわからんが、
とりあえずいえる事は、まったく互換性はないよ
177デフォルトの名無しさん:2007/11/10(土) 21:51:59
public static int[][][] copyArray(int[][][] copy){
int returnArray[][][] = new int[copy.length][][];

for(int k=0; k<copy.length; k++){
returnArray[k] = new int[copy[k].length][];

for(int j=0; j<copy[k].length; j++){
returnArray[k][j] = new int[copy[j].length];

for(int i=0; i<copy[k][j].length; i++){
returnArray[k][j][i] = copy[k][j][i];
}
}
}
return returnArray;
}
三次元配列をコピーするメソッドを作ったのですが、うまく動きません。
どこが悪いのか教えてください。
178デフォルトの名無しさん:2007/11/10(土) 21:52:18
陰線処理にを1方向からだけでなく
2方向から行うにはどうすればいいですか?
179177:2007/11/10(土) 21:57:05
申し訳ありません、投稿してからも考えていたら解決しました。
呼び出し方の方が悪かったようです。
ありがとうございました。
180デフォルトの名無しさん:2007/11/10(土) 23:31:34
前スレでキーイベントの溜まりすぎについて質問してから
EventQueueについて調べていたのですが、
API仕様を読んでもいまいち理解できず、実用例も見つからず、
普段から動いている別スレッドであるという事しか分かりませんでした。

EventQueueの使い方、もしくは実用例を教えてください。
181デフォルトの名無しさん:2007/11/11(日) 02:38:36
>>137
自分の場合、DefaultTableCellRendererの機能を使って、JEditorPaneに貼り付けたhtmlを表示させた。
JEditorPaneをgetPreferredSize()して、それをsetRowHeight()する。
>> Dimension d = JEditorPane.getPreferredSize();
>> JTable.setRowHeight(row, d.height);
182デフォルトの名無しさん:2007/11/11(日) 03:04:13
凄腕のjava使いになるにはどうしたらいいですか?
183デフォルトの名無しさん:2007/11/11(日) 03:20:13
JScrollPaneに乗せたJTextAreaに大量の文字列をAppendすると
勝手に一番下までスクロールした状態になってしまうのですが
そうさせないような良い案があったら教えてください
184デフォルトの名無しさん:2007/11/11(日) 03:39:37
>>182
人に聞く前に自分で解決できる男になることだ
185デフォルトの名無しさん:2007/11/11(日) 09:17:34
>>182
消えろゆとり
186185:2007/11/11(日) 09:20:37
JAVA初心者です。
intとかpublicなどの用語の読み方が分らないのですが、
検索出来るサイト、あるいは専用の辞書などはあるのでしょうか。

よろしくお願い致します。
187186:2007/11/11(日) 09:21:22
すみません、いきなり誤爆してしまいました。
188デフォルトの名無しさん:2007/11/11(日) 09:30:00
誤爆したと見せかけて親切な人のマジレスを期待する。
さすがゆとり技w
189デフォルトの名無しさん:2007/11/11(日) 09:35:36
>>181
ありがとうございます。
早速試してみます。
190デフォルトの名無しさん:2007/11/11(日) 09:56:13
ディファインで検索してみて
191デフォルトの名無しさん:2007/11/11(日) 11:22:12
>>183
viewPortじゃね?
192デフォルトの名無しさん:2007/11/11(日) 13:28:46
>>183
appendした後で元に戻せばいいんじゃない

Point p = scrollPane.getViewport().getViewPosition();
大量のappend
scrollPane.getViewport().setViewPosition(p);
193デフォルトの名無しさん:2007/11/11(日) 13:30:53
>>186
そういうのはこっち向きかな

情報処理用語の読み方を確認するスレ
http://pc11.2ch.net/test/read.cgi/tech/1056173956/l50
194デフォルトの名無しさん:2007/11/11(日) 13:51:59
publicすら読めないってどれだけゆとり馬鹿なんだよ。
中学の英語からやり直せ。
195デフォルトの名無しさん:2007/11/11(日) 13:53:29
>>191,192
こんなものがあったのですね・・
早速試してみます、ありがとうございました
196デフォルトの名無しさん:2007/11/11(日) 16:20:51
>>186
intはintegerで調べる
あとは英和辞書で調べるがよろし
197デフォルトの名無しさん:2007/11/11(日) 16:42:36
あいえぬてー
198デフォルトの名無しさん:2007/11/11(日) 16:45:43
Schema スシィーマ
199デフォルトの名無しさん:2007/11/11(日) 16:47:07
volatile ヴォラティレ
200デフォルトの名無しさん:2007/11/11(日) 16:47:58
Integer.parseInt インテガードットパルスイント
201デフォルトの名無しさん:2007/11/11(日) 17:07:13
ドイツ語っぽくなってないかw
202デフォルトの名無しさん:2007/11/11(日) 17:34:25
char チャー
203デフォルトの名無しさん:2007/11/11(日) 17:40:38
integer:インテジャー
int:イント
character:キャラクター
char:チャー
public:パブリック
204デフォルトの名無しさん:2007/11/11(日) 17:48:17
411 名前:ねぇ、名乗って[sage] 投稿日:2007/11/11(日) 17:34:13 ID:YbBOdUMW0
モームスって負の連鎖に陥ってるじゃん。
曲がよくない→売れない→良い人材が集まらない→さらに人気聚落
まさにハロカスパイラル
逆にAKBは好循環に入りつつあるよね。
曲もいいし、これから知名度もあがれば良い人材が集まるだろう。
あとはもう倍々ゲームですよ。

412 名前:ねぇ、名乗って[sage] 投稿日:2007/11/11(日) 17:35:18 ID:YbBOdUMW0
つんくPはもう才能が枯渇して昔のように良い曲は作れない。
小室哲哉と同じ道を歩んでいる。
そもそも1アーティスト(アイドル)と1作曲家という1vs1体制っていうのはもう古いんだよな。
これは一人の作曲家に頼りきりだからそいつが落ち目になるとアーティストまで一緒に落ち目になる。
多くの作曲家を周りにはべらせて良い曲だけ採用するという浜崎方式が最も賢い。
AKBもこれを踏襲している。

413 名前:ねぇ、名乗って[sage] 投稿日:2007/11/11(日) 17:35:57 ID:YbBOdUMW0
ここだけの話、AKBはまだ全然フルパワーを出してない。
本当に売りたいならゴールデンの歌番組にガンガン出るはずだろ。
CMだってほとんど見かけないしな。

414 名前:ねぇ、名乗って[sage] 投稿日:2007/11/11(日) 17:36:30 ID:YbBOdUMW0
>>413
その通り。
秋元先生がまだ時期尚早と見て意図的に力を抑えてるんだよな。
AKBは10年計画のアイドルだし焦る必要はなにもない。焦っているのはモーヲタだけ。

415 名前:ねぇ、名乗って[sage] 投稿日:2007/11/11(日) 17:37:08 ID:YbBOdUMW0
モー娘。はもう将来性が無いからな。
今や過去の栄光にしがみついて延命を図ってるだけのグループ。
AKBはまだこれからってかんじだ。
徐々に上り調子なのが素人の目にも明らかである。
205デフォルトの名無しさん:2007/11/11(日) 18:14:28
Javaに限ったことじゃないけど、enumっていろんな読み方する人いるよなー
206デフォルトの名無しさん:2007/11/11(日) 18:22:40
エナム
207デフォルトの名無しさん:2007/11/11(日) 18:23:46
enumはイーナムだな。
208デフォルトの名無しさん:2007/11/11(日) 18:25:44
エノムだと思ってたんだが間違ってるの?
209デフォルトの名無しさん:2007/11/11(日) 18:31:04
enum (C予約語) [いにゅーむ] [いーなむ] [いなむ] [えなむ] [えにゅむ]
"ENUMeration" の略。 char と同じで変な風に略すからとても読みにくい。

だってさ〜
やっぱたくさんあるね。

けどエノムって・・・どうしたらoになるんだろw
210デフォルトの名無しさん:2007/11/11(日) 18:37:32
GNU
211デフォルトの名無しさん:2007/11/11(日) 18:47:48
javaの参考書を買おうと思っているんですが
ArrayListだとかスレッドの事やよく使うクラスライブラリの説明なんかが
載ってるのってありますかね?
212デフォルトの名無しさん:2007/11/11(日) 18:50:07
StrutsをつかったWEBサイトの開発しています。(DBにはoracleを利用しています)
質問ですなんが、
リクエストをまたがってのトランザクション制御はjavaで可能でしょうか?

Aさんが編集画面を開いているとき、Bさんはその編集画面を開けないような制御を
自前のテーブルフィールドの利用ではなく、oracleの行ロックを利用して行いたいです。

C/Sアプリなどでは、クライアントでコネクションを維持できるので、普通にできるのですが、
WEBシステムではその辺りは不可能なのでしょうか?
なにか、既存のライブラリがあったりしませんか?


既存ライブラリがない場合の善後策として考えたのが、
「コネクションプールを利用して、コネクションオブジェクトをセッションに保持するとC/Sアプリのように利用できないか?」です。
しかし、利用者が行ロックを取得した状態で、放置した場合、そのコネクションはどうなるのかが分かりません。
セッションは指定時間で無効状態になりますが、内部のオブジェクトはどのような挙動を示すのでしょうか?
javaは初めてなので、試してみようにも関連項目の設定などがよく分からない状況です。

どうかよろしくお願いします。
213デフォルトの名無しさん:2007/11/11(日) 18:52:33
gaussの消去法を使って逆行列を求めるプログラム

行列の∞ノルムを計算するプログラムを教えてください
214デフォルトの名無しさん:2007/11/11(日) 19:37:43
アップロードしたデータのファイルサイズを操作(圧縮?)する事は可能ですか?
21567:2007/11/11(日) 20:00:43
>>69
returnでうまく行きました。
レスありがとうございました。
216デフォルトの名無しさん:2007/11/11(日) 20:11:20
Abstractクラスってどういうときに使うのですか?
217デフォルトの名無しさん:2007/11/11(日) 20:18:11
>>212
セッションに保持できるのはシリアライズ可能なオブジェクトのみです。
java.sql.Connectionはjava.io.Serializableを実装していないので、無理。
JDBCドライバによっては、Connectionの実装クラスがSerializableを実装する可能性も
なくはないですが…期待しない方がいいでしょう。

残念ながら、自力で実装して下さい。
実装するなら、編集画面を開いたまま放置されるケースも忘れずに。
218デフォルトの名無しさん:2007/11/11(日) 21:11:11
219デフォルトの名無しさん:2007/11/11(日) 21:31:43
>>217
ありがとうございます。

ちなみに、ドライバはojdbc14.jar を利用します。
可不可はそれのリファレンス見ればOKですか?

一般的にWEBで前述のような制御はどうやってるんでしょうか?
排他フラグを設けて自前でしかない?
220デフォルトの名無しさん:2007/11/11(日) 21:49:47
>>219
自前でするしかない。
そして、どう上手く実装できたにせよ、次は
編集画面を開いたままウィンドウを閉じたり、ブラウザの履歴戻ったりされる問題に直面するが、
大抵はいかのような「解決策」で逃げる。
・「ウィンドウを閉じるな、戻るな」とユーザに注意する。
 それを強制するために、JavaScriptでエロサイトまがいの嫌な動作をするページを作る。
・「ウィンドウを閉じたり戻ったりした場合はサポート外」と仕様書に書いて逃げる。
・タイムアウト時間を設ける。比較的マシ。
221デフォルトの名無しさん:2007/11/11(日) 22:07:58
>>220
ありがとうございました。

それにしても、需要のありそうな基本機能なのに
まだライブラリ整備されていないとは・・・
やっぱり技術的に難しいのかな・・・
222デフォルトの名無しさん:2007/11/11(日) 22:20:47
J2MEをインストールしたいのですが、個人情報を入力しないといけないのですか?
223デフォルトの名無しさん:2007/11/11(日) 22:26:06
>>221
Webアプリは楽観的ロックが主流だ
224デフォルトの名無しさん:2007/11/11(日) 22:46:45
うん。需要は無いので永久に整備されないな。
225デフォルトの名無しさん:2007/11/11(日) 23:19:46
質問よろしいですか?
専門学校の選択科目でJAVAの授業があって、そこでJAVAの勉強をしているのですが。
スーパークラスのメソッドを「this.」で呼び出すのと「super.」で呼び出すのとでは動作に違いはあるのでしょうか。

実際にやってみればいいのでしょうが、学校にも自宅にも環境を揃えて実行に耐えられるPCが無いので出来ずじまいなんです。
(学校のは開いている実習室が無いので座学のみですが)

どうかよろしくお願いします。
226デフォルトの名無しさん:2007/11/11(日) 23:23:47
>>225
サブクラスが将来そのメソッドをオーバーライドしたときに動きが変わる。
227デフォルトの名無しさん:2007/11/11(日) 23:26:25
同じ名前のメソッドが自分のクラスにあったら、this ではスーパークラスのメソッドを呼べないだろう

class A {
 void foo(){ System.out.println("A.foo"); }
}
class B extends A {
 void foo() { System.out.println("B.foo"); }
 void bar() { super.foo(); }     // A.fooを呼ぶ
 void baz() { this.foo(); }       // B.fooを呼ぶ
}
228デフォルトの名無しさん:2007/11/12(月) 00:19:50
Image〜で取得した画像は背景扱いになるのでしょうか?
229デフォルトの名無しさん:2007/11/12(月) 00:26:16
Image〜っていうのは具体的にどのクラスorメソッドのことだ

背景扱いってどういう意味?
230デフォルトの名無しさん:2007/11/12(月) 05:54:26
すみません、下記のアドレスで公開されているJavaを実現したいのですが、
オーダーメイドで作るとなるとどれ位の価格になるのでしょうか?

Converting TrueType Font into EPS
ttp://vision.kuee.kyoto-u.ac.jp/~nob/doc/truetype/truetype.html

大体の相場が判る方がいらっしゃったら教えて頂けませんか。会社でも個人で
も、実現して頂けるなら、お金を払って良いと思っています。と言っても何十
万とかは出せませんが。

当方はJAVAを始めプログラミングには全く縁が無く、JDK6をインストールして
上記のサイトのソースをコピーしてコンパイルしようとした所でエラーが出て、
そこから全く訳が分からなくなりました。

正直に言ってプログラムを専業としているわけでも趣味とするわけでもないの
で、これ一つのために基礎からプログラミングを覚える時間と労力を費やすこ
とはできそうにないのです。

(技術系の掲示板に書き込むようなことではないかもしれませんので、スレ違
いであったら御指摘ください)
231デフォルトの名無しさん:2007/11/12(月) 08:47:16
5万でよければやりますよ(笑)
232デフォルトの名無しさん:2007/11/12(月) 10:05:01
まぁ、まずホームページのオーナーに聞くのが早いんじゃないか?
後はうまく宿題にしたてて宿題スレに投げてみるとかw
233デフォルトの名無しさん:2007/11/12(月) 12:26:08
>226
どういった感じで変わるのでしょうか。

>227
なるほど、納得です。ありがとうございました。
234デフォルトの名無しさん:2007/11/12(月) 12:55:38
>>233
その二つのレスが共存してるのが意味分からん
235デフォルトの名無しさん:2007/11/12(月) 15:02:49
superって書けるのはコンストラクタ内だけで、なおかつ一番最初のみだよな?
236デフォルトの名無しさん:2007/11/12(月) 15:16:57
http://itpro.nikkeibp.co.jp/article/COLUMN/20060927/249181/?P=2&ST=develop
ここ見てJavaを1から勉強してるんですが、
クラスメソッドとインスタンスメソッドの使い分けがいまいちピンとこないです。
誰かうまいこと教えてくださいませ
237デフォルトの名無しさん:2007/11/12(月) 15:44:15
staticメソッドを使う場合は大きく分けてこの3通り。
1.Mathクラスみたいな、オブジェクトを利用しない『ユーティリティクラス』のメソッド(Cなどの関数と同じ役割)
2.そのクラスのオブジェクトの生成に関する操作(Singletonなどのほか、Integer型などのvalueOfとかもこういう系統)
3.main(最初はオブジェクトは存在しないから当たり前)

オブジェクトを作らなくても使える代わりに、適切にオブジェクトを作ったほうが簡潔になることが多いから分かんなかったらインスタンスメソッド。
他にもいくつか使い道はあるけど、きちんと使い分けるにはデザインパターンを勉強すればいいと思う。
238デフォルトの名無しさん:2007/11/12(月) 15:48:49
>>236
237さんが既に説明してるけど、別の観点で。

インスタンスのメンバ変数にアクセスするようなメソッドはインスタン
スメソッドに、メンバ変数をアクセスしないものはクラスメソッドに。
最初はこういう使い分けだけ覚えてればOKだと思う。

239デフォルトの名無しさん:2007/11/12(月) 15:57:50
ときどき迷うんだけど、インスタンス変数を使用しないが自分のクラスの
他のstaticメソッドからは呼ばれることのないprivateメソッドはどっちにする?
240デフォルトの名無しさん:2007/11/12(月) 16:14:11
>>237-238
ありがとうございます。
>>237さんの使い分けの説明ですが、なぜそう使い分ければOKなんですか?
あと関係ないですけど、変数宣言の型でなぜStringは大文字で、intは小文字で始まってるんでしょう?
何か意味があるんですか?
241デフォルトの名無しさん:2007/11/12(月) 16:18:43
言語仕様と慣例
Stringはクラスだけどintはクラスじゃないから
242デフォルトの名無しさん:2007/11/12(月) 16:45:20
ボタンを押すことでPanelとLabelを表示させるようにしているのですが、上手くいきません。
白紙のフレームにボタンを設置し、それを押してボタンを消去してからPanelとLabelを表示させようとしているのですが、
真っ白のままになってしまいます。
さらに、フレームの端…ウィンドウの大きさを変える部分をクリックすると、なぜかPanelとLabelが表示されます。

解決するにはどうすればよいでしょうか?
243デフォルトの名無しさん:2007/11/12(月) 17:11:11
FileChannelを使って、
 1.Fileにバイナリデータを書き込み
 2.同じFileをいったんcloseした後、再度開いて書き込んだデータを読み込み
 3.同じFileを最後に削除
ということを試しているのですが、削除ができません。
2の読み込みの部分を、データのappendみたいなことをしてから、
channelをcloseしてファイルを削除することはできます。
何か足りないのでしょうか?書いてみたコードは下記の通りです。

public void example(){
  byte[] bytes1 = {0x41, 0x42, 0x43};
  File file1 = new File("C:/temp/test.txt");
  RandomAccessFile raf1 = new RandomAccessFile(file1, "rw");
  FileChannel ch1 = raf1.getChannel();
  ByteBuffer buffer1 = ByteBuffer.wrap(bytes1);
  ch1.write(buffer1);
  ch1.close();
  raf1.close();
  
  File file2 = new File("C:/temp/test.txt");
  RandomAccessFile raf2 = new RandomAccessFile(file2, "rw");
  FileChannel ch2 = raf2.getChannel();
  MappedByteBuffer buf = ch2.map(FileChannel.MapMode.READ_ONLY, 0, ch2.size());
  byte[] data = new byte[(int)buf.capacity()];
  buf.get(data);
  buf = null;  
  ch2.close();
  raf2.close();

  file2.delete(); // data[0]〜data[2]に値は入っているが、deleteできない
}
244デフォルトの名無しさん:2007/11/12(月) 17:27:58
>234
226さんの答えが良くわからなく、他にも問題があるのかと思ったからです。
メソッド名に気をつければ問題ない、「super.」を使ってスーパークラスのメソッドを呼び出すようにする。
と言うことでよろしいでしょうか。
245デフォルトの名無しさん:2007/11/12(月) 17:31:35
基本的にstaticにできるところはそうするべきだろ。
246デフォルトの名無しさん:2007/11/12(月) 18:04:27
>>243
MappedByteBufferがガベージコレクトされるまでアンマップできないから閉じられない、んだったと思う
247デフォルトの名無しさん:2007/11/12(月) 20:03:37
>>244
相当、頭悪いな
superがthisがじゃなくて、どのクラスに定義したメソッドを実行したいかなんだよ。
thisはそのクラスが定義したメソッドまたはそのスーパークラスのメソッド
superだとスーパークラスのメソッドが実行されるだけ
ただし、2つ以上オーバーライドされてしまうと、親の親を呼び出す仕組みはない
248248:2007/11/12(月) 20:06:15
本に載ってるプログラムを入力したのですが、
コンパイルした時にエラーになります。
どうしてでしょうか。

public class sample17 {
public static void main(String[] args) {
int i=args.length;
if(i==0) System.out.println("引数は0個です。");
else if(i%2==0)
System.out.println("因数の数は偶数です。");
else
System.out.println("引数の数は奇数です。");
}
}



C:\Source>javac sample17.java
sample17.java:9: \65373 は不正な文字です。

^
sample17.java:10: \65373 は不正な文字です。

^
sample17.java:11: ';' がありません。
^
エラー 3 個
249デフォルトの名無しさん:2007/11/12(月) 20:09:39
ifの後っ{←つけないとだめじゃない?
250243:2007/11/12(月) 20:09:43
>>246
レスありがとうございます。
BugParadeに、こんな記述を見つけたんですが、コレですかねぇ。。。
ttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4715154

>State:Closed, will not be fixed

って、あーた。。。('A`)
とりあえずcommentにいくつかworkaroundになりそうなものがあるので
試してみます。。。
251248:2007/11/12(月) 20:12:29
>>249
付けてみましたが、ダメでした。
252デフォルトの名無しさん:2007/11/12(月) 20:16:19
}が全角になってる。}と}は違う文字。
253デフォルトの名無しさん:2007/11/12(月) 20:16:33
>>248
コピペしていじんないでやってみたけど、普通に結果でたよ
254248:2007/11/12(月) 20:31:08
>>252
もう一度チェックしてみます。
255248:2007/11/12(月) 20:33:56
>>252
すべて半角ですが、ダメです。
256デフォルトの名無しさん:2007/11/12(月) 20:35:24
プライベートJREでぐぐっても碌に引っかからないんだけど
最近はJavaが必ず入ってることを前提として大丈夫なのかな?
257248:2007/11/12(月) 20:41:37
JDK 5.0 Update 13をインストールしました。
本にそれをダウンロードしろと書いてあったので…。

他のプログラムは普通に動くのですが、原因がわかりません。
超初心者なので、初歩的な部分を見落としてるかも知れません…。
258デフォルトの名無しさん:2007/11/12(月) 20:44:17
>>255
最後の}が全角じゃね?
259248:2007/11/12(月) 20:45:47
>>258
いえ、半角です。
260248:2007/11/12(月) 20:47:28
>>258
いえ、童貞です。
261248 ◆z8PaG7o8aU :2007/11/12(月) 20:49:07
荒らしがいるのでトリップを付けました。
262デフォルトの名無しさん:2007/11/12(月) 20:50:35
全角}でコンパイルすると同じエラー(\65373 は不正な文字です)が出るよ。
考えられるのは、
1.確認ミス。
2.テキストエディタの変更が保存されていない。
3.確認しているファイルとコンパイルしているファイルが異なる。
こんなもんかな。
263デフォルトの名無しさん:2007/11/12(月) 21:02:58
fillRectで描画した長方形を移動させた後に
fillOvalで描いた円を二手に移動させるにはどうすれば良いですか?

________○→→→→→→○ 
□→→→→→→□
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄○→→→→→→○
(左の□は右の□の位置になったら消える)
(左の○は右の□が消えてから描画されて右の○まで動く)
こんな感じです
264デフォルトの名無しさん:2007/11/12(月) 21:10:03
何がやりたいのか今一わからないんだけど
それは透明の縦棒に□と○2つがくっついて表示非表示させるだけ
って考えていいなら作りやすいんじゃないかい
265デフォルトの名無しさん:2007/11/12(月) 21:11:54
KeyEvent.VK_UP
KeyEvent.VK_DOWN
KeyEvent.VK_LEFT
KeyEvent.VK_RIGHT
上記の定数の数値って分かりますか?
266デフォルトの名無しさん:2007/11/12(月) 21:14:45
ん?数値や文字列の定数はJavaDocに一覧化されるはずだから、載ってないか?
267デフォルトの名無しさん:2007/11/12(月) 21:19:17
>>265
java初心者の俺が答えてみる

System.out.println("KeyEvent.VK_UP:" + KeyEvent.VK_UP);
System.out.println("KeyEvent.VK_DOWN:" + KeyEvent.VK_DOWN) ;
System.out.println("KeyEvent.VK_LEFT:" + KeyEvent.VK_LEFT) ;
System.out.println("KeyEvent.VK_RIGHT:" + KeyEvent.VK_RIGHT) ;

結果

KeyEvent.VK_UP:38
KeyEvent.VK_DOWN:40
KeyEvent.VK_LEFT:37
KeyEvent.VK_RIGHT:39
268デフォルトの名無しさん:2007/11/12(月) 21:23:48
>>265
数値で比較すんなよな、その定数で比較しとけよ
269デフォルトの名無しさん:2007/11/12(月) 21:28:00
270248 ◆z8PaG7o8aU :2007/11/12(月) 21:29:10
>>262
何度もアドバスありがとうございました。

もう一度最初から入力し直した所、うまく行きました。
原因がはっきりしないのですが、ひょっとしたら全角のスペースを
使っていたのかもしれません。
271デフォルトの名無しさん:2007/11/12(月) 21:30:56
>>269
だから透明な横の無限線は低速で上に動いてるんじゃねの?
表示しない点をFPSで管理して、□や○はそれを基準に描画すればいいじゃん。
272デフォルトの名無しさん:2007/11/12(月) 21:37:32
それぞれ2次元の速度ベクトルを持たせたほうが楽だと思うよ
273デフォルトの名無しさん:2007/11/12(月) 21:41:55
>>266-268
調べてみたら思いっきり載ってましたorz
低レベルな質問に答えて頂きありがとうございました
274デフォルトの名無しさん:2007/11/12(月) 21:43:12
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆【一番クリックした国が優勝】参加者求ム!☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

 イギリス人天才プログラマが運営する前代未聞の無料ブラウザゲーム、http://clickclickclick.com/
 ただひたすらクリックし、国別の総クリック数を世界中で競い合う!
 究極にバカバカしくそして意味がなく、ひたすら時間の無駄でなんの得にもならない、だがそれが(・∀・)イイ!

 ライバルはハンガリー、そして台湾!! GAME2から参戦し、現在GAME27開催中!
 VIPで発祥し現在2ch全土から結集したクリック兵達で日本チームは戦っている!
 意味のない事に全力を傾ける、それが2ちゃんねるクオリティ!!

 独自のクリックツール開発競争も熱く、各国のプログラマが全力で優秀な兵器開発をしている!!
 日本の技術力の高さを世界に見せつけてやろうぜ!
 プログラマ、Flashゲーム製作者、動画職人、AA職人、絵師、DJ、wiki編集blog編集者、データ分析者etcも募集中!
 ツール放置参加もできるので、PCのスペックに自身のある奴、CPUに空きのある奴、時間が余ってる奴もぜひ参加してくれ!

 本スレッド
 【簡単多重】一番クリックした国が優勝【8砲門】
 http://wwwww.2ch.net/test/read.cgi/news4vip/1194741194/l50
 ※落ちているときはここから1発検索
 http://www.clickjapan.jp/find2ch.php

 日本チームの有志によるまとめサイトポータル
 http://www.clickjapan.jp/ 
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
275デフォルトの名無しさん:2007/11/12(月) 21:57:13
>>231さん、>>232さん、御返事ありがとうございます。>>230です。

>>232さん
> まぁ、まずホームページのオーナーに聞くのが早いんじゃないか?

言われるまで気づきませんでした。よく探してみたらメールアドレスも掲載さ
れていましたので、ダメモトでメールを出してみます。

>>231さん
五万円が大体の相場なのでしょうか? JAVAプログラムを覚えるための労力と
時間を金銭に換算するなら、別に釣り合わない金額ではないです。個人的には。

ただ、上に書かせて頂きましたように、まずは制作者様に連絡を取ってみよう
と思いますので、依頼は制作者様の返事を待ってからで宜しいでしょうか? 
(二股をかけるようで申し訳ない)

メール欄に書かれているアドレスは当分使えるのですよね? 依頼する事にな
った時は、どうかお願い致します。
276デフォルトの名無しさん:2007/11/12(月) 22:18:23
FPSっていうのがイマイチわからないので
速度ベクトルっていうので検索してみます
277デフォルトの名無しさん:2007/11/12(月) 22:31:58
それ、両方セットで使う概念だよw
定期的に位置ベクトルに対して速度ベクトルを加算するの
その間隔を一定に保つことがたぶん>>271の言うFPS
278デフォルトの名無しさん:2007/11/12(月) 22:50:34
速度ベクトル→速さ+方向
279デフォルトの名無しさん:2007/11/12(月) 23:09:42
\65378は不正な文字ですとかでるときは
全角使ってるときだよ。全角スペースとか}の全角とか。
これは特定しやすいエラーだよ。

http://www.mclab.ics.ritsumei.ac.jp/lecture/java/tips004.html
280デフォルトの名無しさん:2007/11/12(月) 23:13:39
JAVAとSQLを勉強しようと思い、JDBC経由でローカルのMYSQLをSELECTする
プログラムを作りました。(コピペです)
DELETEするプログラムを自前で追加したのですが、
DELETE対象のRowが存在しない場合の判断をどう行っていいかわかりません。
存在しない場合、"対象データがありません"とメッセージを出力したいのです。
SELECTの場合はexecuteQueryを実行して、ResultSetのnextメソッド?がfalseだったら、という判断で
で実現できたのですが、DELETEの場合、executeUpdateの戻り値にResultSetを設定できないようなので。
よろしくお願いします。
281デフォルトの名無しさん:2007/11/12(月) 23:17:27
select以外のsqlにResultSetなんて要らないと思うんだが。
executeUpdateは変更のあったレコード件数のはずだから
0が帰ってくれば消しに行ったけどなかったよって意味になる
282デフォルトの名無しさん:2007/11/12(月) 23:25:35
stmt = con.prepareStatement("DELETE FROM MYTABLE WHERE ID=?");
stmt.setInt(1, id);
int count = stmt.executeUpdate();
if(count == 0){
  System.out.println("削除対象が存在しません");
}
283デフォルトの名無しさん:2007/11/12(月) 23:39:03
>>281,282
ありがとうございます。
API仕様のWEBドキュメントを見つけて
executeUpdateの戻り値はINTで行数カウントが
返ってくる事がわかりました。
executeUpdateはおまじない程度にしか思っていなかったのですが
java.sqlパッケージのPreparedStatementインタフェースのexecuteUpdateメソッドだって
理解を深めたらおのずと調べ方もわかりました。
ありがとうございました。



284デフォルトの名無しさん:2007/11/12(月) 23:42:31
SQLを触るたびにヒアドキュメントが欲しくなる。
iBatisとJDBC4に規格的な親和性がないのは悲しすぎる。
285デフォルトの名無しさん:2007/11/13(火) 00:06:04
DB 周りのフレームワークと称して独自言語並の設定ファイル記述させるのはやめてください。
286デフォルトの名無しさん:2007/11/13(火) 00:47:13
アプレットでできることって、Ajaxでもできるんですかね?
工数的にはどのくらい差がありますか?それと技術者ってすぐにあつまりますかね?
287デフォルトの名無しさん:2007/11/13(火) 00:49:02
どちらも技術者は少ない。後者はギークが集まるかもな。保守性無視で。
288デフォルトの名無しさん:2007/11/13(火) 01:30:39
日本語音声認識システムJulianをJavaから利用したくていろいろと調べています.
最初はJulius for SAPIにアクセスできるDLLを自分で作って・・とか考えていたんですが
どうも自分には難しくて挫折していました.

ttp://julius.sourceforge.jp/index.php?q=juliankit.html
で,いろいろと考えた結果↑以下のJulian記述文法音声認識実行キットをJavaから動かして,
その結果をJavaで処理できるのではないかと思い至りました.

が,ProcessBuilderでコマンドラインのプログラムを呼び出せるのは分かったんですが
継続的に処理を待ち続けて,プログラムの出力があるたびにJavaのほうで処理を受ける方法が
分からなくて悩んでおります.

Julian記述文法音声認識実行キットは
C:\>bin\julian.exe -C testmic.jconf
のような形で実行すると,最初数行システム起動処理が標準出力として出力され
その後,マイクでの音声入力を待ち,定義ファイルの内容にしたがって
音声入力があるたびに認識処理を行い,

<s> リンゴ を 3 個 ください </s>

といったような認識結果の出力を行います.

このときに,「リンゴ」と「3個」という認識結果をJavaで取得し,
apple()メソッドに3という引数を渡して呼び出し,その後また音声認識処理を待ち続ける
といったようなことをやりたいのですが
ProcessBuilderを利用してプログラムを実行した後,音声入力が行われるたびごとの
認識結果をJavaのプログラムで取得し続ける方法はありませんでしょうか?
ヒントなりとでも頂ければ幸いです.
よろしくお願いします.
289デフォルトの名無しさん:2007/11/13(火) 01:39:18
ProcessBuilder#start の戻り値の Process から getInputStream で標準出力を取れるんじゃない?
290デフォルトの名無しさん:2007/11/13(火) 01:55:24
>>288
標準入力 System.in からそのプログラムが吐く文字列読み込むプログラム作って

C:\>bin\julian.exe -C testmic.jconf | java YourProgram

でも良いんじゃねーの。そのコマンドが一回ごとに終了してしまうならダメだけど。
291デフォルトの名無しさん:2007/11/13(火) 10:20:28
Formatter で日付を処理する時ってタイムゾーンの指定はできんのかね?
どうやっても JST (JVM のデフォルトタイムゾーン) でしか返って来ないんだが。
DateFormat 使って変換した文字列を %s で埋め込むしかないのかな。
292デフォルトの名無しさん:2007/11/13(火) 10:31:08
Locale指定すればいいだろ
293デフォルトの名無しさん:2007/11/13(火) 10:35:46
それだと JST の時刻が英語圏の表記でフォーマットされるだけですが。
294デフォルトの名無しさん:2007/11/13(火) 10:39:36
だったらタイムゾーン指定しろ
まずはSimpleDateFormatterのドキュメント嫁
295デフォルトの名無しさん:2007/11/13(火) 10:48:09
if(Toolkit.getDefaultToolkit().getSystemEventQueue().peekEvent() != null)
{
while(Toolkit.getDefaultToolkit().getSystemEventQueue().peekEvent() != null)
{
if(Toolkit.getDefaultToolkit().getSystemEventQueue().peekEvent().getID() == InvocationEvent.INVOCATION_DEFAULT)
break;
try{
Toolkit.getDefaultToolkit().getSystemEventQueue().getNextEvent();
}catch(InterruptedException ef){System.out.println(ef);}
}
}
結局上記の様にすることでKeyEventの溜まりすぎを防ぐことができました。
前スレでアドバイス下さった方、ありがとうございました。
296デフォルトの名無しさん:2007/11/13(火) 10:54:47
>>294
SimpleDateFormatter なんてクラスは標準 API にありませんね。java.text.* パッケージの
クラスのどれかと勘違いしてませんか? java.util.Formatter の事ですけど。
297デフォルトの名無しさん:2007/11/13(火) 11:14:40
勘違いは>>296だろたんなるFormatterに何を期待しているんだか。
298デフォルトの名無しさん:2007/11/13(火) 11:18:32
>>291
TimeZone 指定した Calendar 使うんじゃダメなんか?
299デフォルトの名無しさん:2007/11/13(火) 11:28:34
>>296
ああ、勘違いしていたよ。
java.util.Formatterでは不可能。

ていうか使い方がおかしいのでAPIの所為にスンナ、ボケ
300デフォルトの名無しさん:2007/11/13(火) 11:38:59
>>298
( ゚Д゚) おお、Calendar を渡せることをすっかり忘れていました。どうもありがとうございます。

>>297,299
にほんにきてなんねんになりますか?
301デフォルトの名無しさん:2007/11/13(火) 11:43:44
>>280
executeUpdateのintの戻り値が削除された行数
302デフォルトの名無しさん:2007/11/13(火) 11:46:44
第1段落3行目
> byte、BigDecimal、および Calendar などの共通 Java タイプがサポートされます。

その後の概要の一番初めに Calendar を使った解説が…(−人

>>301
>>281-283
303デフォルトの名無しさん:2007/11/13(火) 11:51:25
>>300
敗者の上から目線の一種だね
304デフォルトの名無しさん:2007/11/13(火) 11:59:53
何か勘違い指摘されたのすっげー根に持ってる人が居座ってるみたいなんすけど。
305デフォルトの名無しさん:2007/11/13(火) 12:14:06
>>300
たぶんあなたがJavaをやっている年数よりは長いんじゃないw
306デフォルトの名無しさん:2007/11/13(火) 12:16:42
在日は氏ね
307デフォルトの名無しさん:2007/11/13(火) 12:41:25
JTextFieldのようなものを作っています

getKeyChar()で半角英数は取得できました
しかし全角の日本語を一度に2文字以上打ち込むと
打ち込んだ文字列の最後の文字しか取得できません
文字列全てを取得する方法はないでしょうか
308デフォルトの名無しさん:2007/11/13(火) 12:42:39
>>307
JTextFieldを使う
309243:2007/11/13(火) 14:01:36
>>250でもありますが、
delete前にSystem.gc()入れたら、
削除できるようになった。。。

channelをcloseしてからリネームして、
deleteOnExit()しろなんて方法もあるみたいなんですが、
VMを長期間稼働させる環境だとそれも使えないからなぁ。。。

deleteしたいファイルには、MappedByteBuffer使っちゃダメってことなんでしょうかね。
310デフォルトの名無しさん:2007/11/13(火) 17:01:30
311デフォルトの名無しさん:2007/11/13(火) 17:59:17
比較的大きなコード (ソースコードでおよそ1.2MB程度) を書いています.
これまで動的変数(メソッド内でint i; などのように宣言した組み込み型の
変数)を多用していたのですが,これらの多くをクラスのメンバ変数に変更
したところ,処理が非常に遅くなってしまいました.
処理速度が落ちる解釈として,
(1)動的変数はレジスタに割り当てられるのに対し,メンバ変数はヒープ領域に取られるから.
(2)メンバ変数へのアクセスは「クラスへの参照→メンバへの参照」のように参照段階が増えるから.
を考えておりますが,実際にはどちらのほうが効いているのでしょうか?
あるいは重要な別の原因が考えられるようでしたら,お教えください.
最適化のための参考にさせていただきたいと考えております.
312デフォルトの名無しさん:2007/11/13(火) 18:07:12
書き直しの際に発生したバグ。
変数をあちこちで使い回した為、ループがおかしくなっているとか。
313デフォルトの名無しさん:2007/11/13(火) 18:10:36
>>312
いえ,処理内容・結果とも変更前と変わらないことは確認済みです.
全く同じ処理を行ったときにパフォーマンスが低下する現象です.
314デフォルトの名無しさん:2007/11/13(火) 18:21:16
>>311
昔の話ですが…(最近の最適化では数値が違うかも)
ローカル変数からインスタンス変数やクラス変数に変えれば、遅くなる。差は2倍強。
ローカル変数でも最初の3個?はレジスタに割り振られるが、差は10%。
というのをどこかで見た気がします。

まあ、動作が変わらないってなら、巨大なベンチマークをしたということで…。
315デフォルトの名無しさん:2007/11/13(火) 18:21:21
>>311
一般には体感するほど遅くなることはないはず。
Profilerで調べてみることをお勧めします。

316デフォルトの名無しさん:2007/11/13(火) 18:50:50
>>313
どうやって変らない事が確認できるんだかしりたいですね

そもそも組み込み型(プライベート変数の事かい?)からメンバ変数に変更した経緯が意味解らん。
その上で
(1) 関係ない。
ヒープ領域を使うか否かは変数がプリミティブ型かオブジェクト型かの話
レジスタというのは意味不明だが、スタックのことを言っているとしても、それがパフォーマンスに体感的に低下する事はない
(2)メンバ変数へのアクセスは〜の影響もない
参照段階がどうこうってのは何を根拠に話しているんだ?
俺が知っているJavaの本では読んだ事もないし、聴いた事もない。
317デフォルトの名無しさん:2007/11/13(火) 18:52:01
>>311
あと、比較的大きなコード(1.2MB)というのは1つのクラスが・・・なのか?
もし、そうだとすれば、根本的に何もかもおかしいと思うが・・・
318デフォルトの名無しさん:2007/11/13(火) 18:58:39
知らないこと、検証してないこと、自分の常識では理解できないことを、…以下略。
(ああ、私は質問主じゃないですよ)
319デフォルトの名無しさん:2007/11/13(火) 18:59:20
jarじゃね
ありえないだろ
320デフォルトの名無しさん:2007/11/13(火) 18:59:57
>>311
結果出るまで数日かかるようなよっぽどの数値解析アルゴリズムを、20 世紀の
化石 PC でも使って走らせてなければ、レジスタ使う使わない程度でそんな体感
分かるほど変わるわけないだろう。ヒープ使いまくりで GC とエクステンション
走りまくりとか、単なるバグとかの方がよっぽど濃厚。

レジスタやらインスタンス変数アクセスだと主張したいなら、せめてそう断定するに至った
プロファイラの結果くらい出せ。生半可が思い込みで始めるパフォーマンス論が一番危ない。
321デフォルトの名無しさん:2007/11/13(火) 19:01:26
ああ
でも線形解析程度でえれえ時間差ある
322デフォルトの名無しさん:2007/11/13(火) 19:02:07
Vecmath使うといいのかな
323デフォルトの名無しさん:2007/11/13(火) 19:02:39
動的変数 = ローカル変数
組み込み型 = プリミティブ型
メンバ変数 = インスタンス変数

で良いのかな。
324デフォルトの名無しさん:2007/11/13(火) 19:03:54
"メンバ変数"や"組み込み型"はJavaでも普通に使うだろ
325デフォルトの名無しさん:2007/11/13(火) 19:05:49
通じるけど使わない。
C++ 上がりが多い職場ならどうか知らんけど
326デフォルトの名無しさん:2007/11/13(火) 19:09:17
通じるのはメンバ変数くらいだな
組み込み型ってなにを何処に組み込むんだ?
動的変数ってのも矛盾してるだろ、動的だから変数じゃねーのか?w
327デフォルトの名無しさん:2007/11/13(火) 19:12:34
多分エンバグじゃね?

スレッド拘束で保ってたスレッドセーフが破られたに500ペリカ

きっとループの終わり頃に、別スレッドがiを0に設定していると予想w
328デフォルトの名無しさん:2007/11/13(火) 19:14:23
>>326
言語組み込み
作ったり消えたり
329デフォルトの名無しさん:2007/11/13(火) 19:16:29
>>326
Cでいうautoの事では?
330デフォルトの名無しさん:2007/11/13(火) 19:18:25
>>313
一応言っておくけど、処理結果が変わらない事とバグが混入してい無い事とはイコールじゃ無いよ。
後はマシン自体が遅くなってるとか。変更前の処理を今動かしてみて遅かったらそれ。

#ところで、最適化はまだ早いんじゃ無い?
331311:2007/11/13(火) 19:18:42
多数のご指摘ありがとうございます.
いま手が離せない状況ですので,とりあえず
曖昧な表現だけ訂正させていただきます.

>>317
もちろん複数のクラスの合計のサイズです.

変数の種類の表現については>>323さんのご推察の通りです.
混乱させる表現で申し訳ありません.
332デフォルトの名無しさん:2007/11/13(火) 19:19:00
結論としては>311がバグを仕込んだという事で終了
333デフォルトの名無しさん:2007/11/13(火) 19:20:38
>>311
全体で1.2MBって大きなプログラムなの?
334デフォルトの名無しさん:2007/11/13(火) 19:20:56
Javaを8年やってるけど、
組み込み変数って聴いたことないし、わからない。
335デフォルトの名無しさん:2007/11/13(火) 19:25:34
1.2MB=12582912文字
嘘くせえええええええ
336デフォルトの名無しさん:2007/11/13(火) 19:29:10
どうせコピペばかりの糞コードでライン数が膨らんでるんだろw
337デフォルトの名無しさん:2007/11/13(火) 19:30:31
>動的変数(メソッド内でint i; などのように宣言した組み込み型の変数)

と書いてあることから、

>メンバ変数

は、ラッパークラスであるとエスパー
338デフォルトの名無しさん:2007/11/13(火) 19:35:26
マモリリークしてディスクスワップ & ページフォルト発生してんじゃないかと。

あとインスタンス変数を参照するより new でヒープ割り当てる方がよほど遅い。
ローカル変数 (スタック変数) からインスタンス変数へ切り替えたって事は
ループの奥底でこんな事になってんじゃないかと。

for(…){
  while(…){
     for(…){
       for(…){
         MyClass a = new MyClass();   // 元は int x, y, z, …
         MyClass b = new MyClass();
         MyClass c = new MyClass();
         …
>>333
状況や分野によりけりだけど 2〜3 人が 1〜 2 ヶ月程度かけて書く量かな。
嫌 OO のコピペ厨なら 1 週間って所だが。
339デフォルトの名無しさん:2007/11/13(火) 19:37:14
組み込み型 : 言語自体に組み込まれた型(キーワードで使える)
プリミティブ型 : 組み込みの値型
Javaでは同じだけど、C#ではstringやobjectキーワードがあって
StringやObjectはプリミティブ型でない組み込み型だったりする
340デフォルトの名無しさん:2007/11/13(火) 19:39:20
プリミティブ型って名前を考えると値型に限定するのはおかしいんじゃないか?
341311:2007/11/13(火) 19:40:48
>>338
ご指摘の「nestしたloopの底でのnew実行」という状況が
起きている可能性は充分考えられます.
実際の最適化の作業はもう少し先にやるつもりですが,
そのときの参考にさせていただきます.
どうもありがとうございます.
342デフォルトの名無しさん:2007/11/13(火) 19:47:32
>>338
一日ひとりで、202950文字〜676500文字打ち込むということになるな。
343デフォルトの名無しさん:2007/11/13(火) 19:49:03
>311の釣り宣言はまだですか?

まじで釣りって言ってくださいwww
344デフォルトの名無しさん:2007/11/13(火) 19:52:34
とすると、Javaにおける組込型って
基本データ型ぐらいかな?

クラスはすべて言語仕様ではなく標準APIライブラリという位置づけだからね。
java.lang.Objectは微妙?
345デフォルトの名無しさん:2007/11/13(火) 19:56:32
微妙というか、参照型という組み込み型
346デフォルトの名無しさん:2007/11/13(火) 19:57:16
ないものを論じても仕方ないだろ
java.langパッケージでfinalなクラスは組み込まれているといえない事もないし、そもそも定義できない
347デフォルトの名無しさん:2007/11/13(火) 20:16:43
プロファイル取れって言われても無視するのに>>338には5分で反応するのな
いま手が離せないって言ってたのはどこ行ったんだか
なんでそんなミエミエの嘘つくのかねぇ

>>316
>そもそも組み込み型(プライベート変数の事かい?)からメンバ変数に変更した経緯が意味解らん。
オブジェクト指向とか聞いた事も無いんだろうさ
ソースをぐちゃぐちゃにした挙句どこが悪くなったのかわからなくなったってのが経緯

>>343
釣りじゃ無くて真性なんだろw
自分のケツもふけない奴が最適化とかw
348デフォルトの名無しさん:2007/11/13(火) 20:19:46
ソース改変によるパフォーマンス劣化の説明理由が欲しかったのでは。
349デフォルトの名無しさん:2007/11/13(火) 20:22:21
>311は顧客への言い訳の為、徹夜作業をしております。
申し訳ありませんが、許してあげてください。
350デフォルトの名無しさん:2007/11/13(火) 20:34:24
>>348
パフォーマンス劣化について調べるにはまず、どこでどれくらいパフォーマンスが落ちているか、を調べるよね。
で、問題の場所を変更前ソースと比べたり、問題が発生する最小限のコードを書いたりして原因を探る。
原因は分ったけど、何故そうなるのか分らないって段階になって>>348の質問になると思う。
でも>>311は何をしたか、のみ書いていて、何が原因か、は触れていない。
>>341の書き込みを見るに、多分原因を突き止めていない。
何がどうなっているのか分らないままじゃ、掲示板に書き込んでも上手く説明する事すらできないと思うんだけど、>>311は今その状態。
351デフォルトの名無しさん:2007/11/13(火) 20:44:27
何をしたかすら理解してない気もするけどな
352デフォルトの名無しさん:2007/11/13(火) 20:57:14
そんな難しくないから、単にプロファイル取ればいいだけなのにな
353デフォルトの名無しさん:2007/11/13(火) 20:59:34
Javaは手動インラインよりおとなしく小さな関数にした方が速かったりするよな
HotSpotってやつか?
354デフォルトの名無しさん:2007/11/13(火) 21:02:48
意味解らず発言すると恥かくよ、遅いけど
355デフォルトの名無しさん:2007/11/13(火) 21:07:46
はぁ?
356デフォルトの名無しさん:2007/11/13(火) 21:19:52
HotSpotと小さな関数は何も関係しないだろ
357デフォルトの名無しさん:2007/11/13(火) 21:20:34
HotSpotコンパイルでループぶん回す程度のボトルネックなら時期に解消されるから
糞コード書いてもプログラムには影響ないと思う。
358デフォルトの名無しさん:2007/11/13(火) 21:25:05
バッファの確保部だけをメソッド化するだけで速くなったりする
359デフォルトの名無しさん:2007/11/13(火) 21:26:17
353 じゃないけどインライン展開は HotSpot が最適化する手段の一つなんだから関係なくはないでしょ。
360デフォルトの名無しさん:2007/11/13(火) 21:28:38
そうか?
少なくともHotSpotのアルゴリズムを考慮してまでコーディングするなんて聞いたことねーな。
361デフォルトの名無しさん:2007/11/13(火) 21:30:01
はぁ?
362デフォルトの名無しさん:2007/11/13(火) 21:31:50
ダイナミックリコンパイルの存在もあるし、
小手先の最適化は意味ないから普通に作れってことだな
363デフォルトの名無しさん:2007/11/13(火) 21:34:43
ム板ってカリカリしてる奴多いよな
364デフォルトの名無しさん:2007/11/13(火) 21:42:43
>>363
マ板がなかったころはもっと酷かった
365デフォルトの名無しさん:2007/11/13(火) 21:47:22
10倍早く動くコードを書くことを考えるよりも、10倍早く読めるコードを書けと
366デフォルトの名無しさん:2007/11/13(火) 21:59:06
>>365
同意するけど「速く」な。
367デフォルトの名無しさん:2007/11/13(火) 22:18:47
プロファイルをとるってのは具体的にどうやるんですか?
368デフォルトの名無しさん:2007/11/13(火) 22:27:24
NetBeans入れてプロファイラをインスコして設定して開始。
369デフォルトの名無しさん:2007/11/13(火) 22:44:27
NetBeans が必要なんですね (´・ω・`)
370デフォルトの名無しさん:2007/11/13(火) 22:45:38
ごめ。俺が知ってるやりかたってだけ。
Eclipseにもあるよ。
371デフォルトの名無しさん:2007/11/13(火) 22:55:11
IDE からじゃなくても単体のプロファイラもあるでよ。
372デフォルトの名無しさん:2007/11/13(火) 22:59:02
JFileChooserを使ってファイルを保存するときに、
選択されたファイルタイプに応じて拡張子を付けて保存ということをしたいんですが、
どのファイルタイプが選択されていたか調べる方法はありますか?
373デフォルトの名無しさん:2007/11/13(火) 23:11:03
374デフォルトの名無しさん:2007/11/13(火) 23:11:18
あるURL以下に存在する全てのファイル名を取得するには
どうすればいいですか?
375デフォルトの名無しさん:2007/11/13(火) 23:12:04
>>372
URLConnection.guessContentTypeFromStream() でいくつかのファイルタイプは分かる。
376デフォルトの名無しさん:2007/11/13(火) 23:12:31
ローカルなら File.listFiles で
377デフォルトの名無しさん:2007/11/13(火) 23:13:04
>>374
HTML のリンクをたどれ。それ以外は無理。
378デフォルトの名無しさん:2007/11/13(火) 23:15:47
>>374
あるURL以下を全てリストしてくれるページを作る。
379デフォルトの名無しさん:2007/11/13(火) 23:17:32
ああ、保存時か。>>375 はキャンセル。
380デフォルトの名無しさん:2007/11/13(火) 23:30:12
JTableに関してご教授願います。
現在、MyTableModel にてヘッダ行を定義しています。
JTable table = new JTable();
table.setModel(new MyTableModel());
とすれば、指定したヘッダは表示されます。

ここまでは良いのですが、単一選択のみを許可しようと次のコードを追加しました。
table.getSelectionModel().setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
すると、ヘッダ行が「A、B、C」と指定しなかった場合のデフォルトになってしまいました。
この現象はどうして起こるのでしょうか?
回避方法等があればお願いします。
381デフォルトの名無しさん:2007/11/13(火) 23:41:55
話し戻すがjdkにプロファイラ付いてるだろ。
まだ、実験ツールだっけ?
382デフォルトの名無しさん:2007/11/13(火) 23:42:52
>>380
直接、JTable の setSelectionMode(int) ではどうでしょう?
383デフォルトの名無しさん:2007/11/13(火) 23:46:06
結果データをHTMLに変換しないと使いにくいみたいな紹介記事があったな。
コレステロールの溜まってる血管が見付かりやすいのが一番だ。
384デフォルトの名無しさん:2007/11/13(火) 23:48:17
>>382
試していますが、それでも一緒でした。
どうにも理解していないのがTableModelとColumnModelの関係です・・・orz
385デフォルトの名無しさん:2007/11/14(水) 00:33:29
JDBCで予約語かどうか判別するAPIってありませんか?
386デフォルトの名無しさん:2007/11/14(水) 00:53:43
NetBeansはコストパフォーマンス高いよね
長年愛用してるけど
最近はUMLも使えるし
最新の機能は自分でカスタマイズするしかないようだけど
IDEの性能としてもだいぶ追いついてきてる
387デフォルトの名無しさん:2007/11/14(水) 00:56:29
NetBeansいいね。
特に6.0はβ版だけど完成度高い
ただ、Eclipseよりもマシンスペック要求するんだよな
388デフォルトの名無しさん:2007/11/14(水) 02:18:16
>>385
自己レス
見つからないので作っちゃいました
389デフォルトの名無しさん:2007/11/14(水) 02:35:46

SQL 使うアプリ作ったョー (・∀・)
 ↓
でも入力値に予約語が入ってるとクエリーの SQL が壊れちゃう (・ω・` )
 ↓
入力値から予約語見つけてエスケープすれば良いか ヽ(´ー`)ノ


なんて事を >>385 がやらかしていないかお母さんは心配です。
390デフォルトの名無しさん:2007/11/14(水) 02:54:09
BCELで解析するソフトウェアを作ってるんだけど
メソッド名にたまに予約語使ったのがあったんで
見つけたら別名に書き直すようにしようと思った訳です
391デフォルトの名無しさん:2007/11/14(水) 09:36:05
XML の Schema 定義から javadoc みたいな HTML を吐き出すツールがあったと思うんだけど
誰か知らない?
392デフォルトの名無しさん:2007/11/14(水) 10:13:47
日本語でおk
393sage:2007/11/14(水) 12:02:21
jmfってmacosxじゃ使えないんだよね?
394デフォルトの名無しさん:2007/11/14(水) 12:03:09
漠然とした質問で申し訳ないのですが
値渡しというものはどういう場面で使うものなのでしょうか?
395デフォルトの名無しさん:2007/11/14(水) 12:04:58
どのような場面で使うも何も、メソッドに引数を渡す時には常に使っているんだが・・・
396デフォルトの名無しさん:2007/11/14(水) 12:14:49
>>395
え?そうだったんですか?
ということは知らないうちにつかっていたんですね・・・
言葉と説明だけではいまいち理解ができなかったので
どういう場面でつかってるかわかれば多少理解できるかなと思ったのですが
まだわからないのでもう少しいろんなサイトまわってきます
397デフォルトの名無しさん:2007/11/14(水) 12:27:17
Javaには、値渡し以外の渡し方はないので、どういう場面でも決して使われない
調べても無駄かと

調べるなら「参照渡し」「名前渡し」でぐぐるといいかもしれん
398デフォルトの名無しさん:2007/11/14(水) 12:34:09
>>396
どんな説明を受けたんだ?
調べるならばJavaのメモリモデルに関して調べるといい。
スタックとヒープの違いとそれぞれの使われ方、インスタンス変数とローカル変数がそれぞれどんな風にメモリにマッピングされるか、その辺りを調べてみるといい
深い話までは理解する必要はないけど、大雑把には理解しておくべき話
399デフォルトの名無しさん:2007/11/14(水) 12:52:34
>>397-398
参考になります。どうもありがとうございます。
早速教えていただいた単語を元に調べてみたいと思います。
400デフォルトの名無しさん:2007/11/14(水) 13:04:52
参照渡し/値渡しネタは思い出したように調べてみるがいつもモヤっとしたまま終わってしまう。
C++ の参照渡しなんてポインタ渡しのシンタックスシュガーでしかないし。てかどの言語の
参照渡しも結局はアドレスでやり取りしてんのを言語レベルで隠蔽してるだけじゃんと思うんだが。
401デフォルトの名無しさん:2007/11/14(水) 13:11:49
>>400
専門用語の定義にケチつけるなんて暇人だな、ぐらいにしか思えんが。
402デフォルトの名無しさん:2007/11/14(水) 13:11:57
・オブジェクト型、プリミティブ型にかかわらず仮引数を書き換えても呼び出し側の実引数の値は変わらない。
・プリミティブ型はその値を、オブジェクト型はその参照の値(アドレスのようなもの)を、渡しているだけだから。
・ただしオブジェクト型の場合、中身を書き換えれば可変になる。(リストを渡して中身を追加みたいなことはできる。)

これだけ分かればそんなに深い話は分かんなくても理解できるだろ。
403デフォルトの名無しさん:2007/11/14(水) 13:14:19
>>400
結局のところそういうことだろーが、考え方が逆なんじゃね?
CやC++のポインタが異端で、コピーではなくメモリアドレスで関数に渡す方法を総じて参照渡しって言うんだろ。
そう考えると、ポインタはそれより一つ低レベルなところでの処理だな。
404デフォルトの名無しさん:2007/11/14(水) 13:19:07
メモリアドレスより低レベルってなんだよ
電子回路を考えるのか?
405デフォルトの名無しさん:2007/11/14(水) 13:25:09
>>402
間違ってはいないと思うが、メモリモデルを理解できていないと理解しにくいと思われ
なんで呼び出し側の実引数が変らないの?
変った方が便利じゃん。
って話になる。
406デフォルトの名無しさん:2007/11/14(水) 13:45:24
JAVAでログ実相作ってるんだけどさ、ロガーのなかで
DBにアクセスしてメッセージとりにいかなきゃあかんのよ。
で、そのときに当然例外飛んでくるんだけどさ、
これはどやってログに出力するの?
いま作ってるロガーでえらー出力させたら
無限にエラーになるよね?
プロはこういうときどうやってんの?
407デフォルトの名無しさん:2007/11/14(水) 13:49:50
独自のLoggerを作っているの?
408デフォルトの名無しさん:2007/11/14(水) 13:49:55
>>406
log4j使え
研究とかで自前で作っているのであればソース嫁

実際問題、ログ出力時の例外処理は握りつぶすしかないだろうな
ログにかけようが書けまいが、アプリは実行できなきゃいけないだろ、通常は。
409デフォルトの名無しさん:2007/11/14(水) 13:54:45
>>403
結局行き着くところは、参照の値渡しを言語上どう書けるかでしかないんだよな。
Java でも C でも参照の参照 (ポインタのポインタ) 渡せば原理も出来ることも同じなんだし。
じゃあ何が違うのというと言語上どう書けるかという事にしか行き着かない。
問題は呼び出し先の結果がパラメータにどう反映されるか理解することでしょ。
どう暗黙的に動くか/書けるかじゃなくて。

といつもここら辺でもやもやして忘れることにしている。
410デフォルトの名無しさん:2007/11/14(水) 13:57:52
>>406
Exception eを取得できるんだったら、

StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw));
String msg = sw.toString();

なんてやって、msgをログに吐いてやるとか。
411デフォルトの名無しさん:2007/11/14(水) 14:03:17
>>406
「DB 障害でメッセージが取得できませんでした: 参照できなかったメッセージコード %1$s」
みたいな固定メッセージ + SQLException のスタックトレース吐くくらいしか出来ることはないだろ。

昔、某メーカー製の独自糞フレームワークが一度 DB 系の障害起こすと無限ループ的に
ログ吐きまくり + パーティションフルになると今度は OutOfMemory でまくりという、まさにそれと同じこと
やってたよ。
412406:2007/11/14(水) 14:10:12
>>407-411
即レスありがとうです。
やぱし基本握りつぶしですね。

>>407-408
フォーマットのとこではつかうけど、DBアクセスまではしてくれないので・・・>log4j
413406:2007/11/14(水) 14:15:01
>>407-411
即レスありがとうです。
やはり基本握りつぶしですね。

>>407-408
内部では使うんですが、DBアクセスまではしてくれないので・・>>log4j
って、生log4jを直接呼べばおkってことですかね。
いろいろ解決っぽいです。ありがとうございました。
414406:2007/11/14(水) 14:16:16
ぐは、2重してる。ごめんなさい;;
415デフォルトの名無しさん:2007/11/14(水) 14:24:51
>>412
log4jはJDBC経由でログ吐けるだろ
416デフォルトの名無しさん:2007/11/14(水) 14:27:23
>>415
それ DB にログを格納できるってだけじゃん。
任意のメッセージ取ってくるなんて機能ねーだろ。
417デフォルトの名無しさん:2007/11/14(水) 14:30:59
毎回アクセスして、DBからメッセージを取るのかよ
起動時に全部取得してキャッシュすりゃ解決じゃねーか
418デフォルトの名無しさん:2007/11/14(水) 17:24:28
GlassFishとTomcatの違いについて教えていただけないでしょうか。
いろいろwebを漁ってみた結果、
Tomcatはservlet containerを含むapplication server、
GlassFishはservlet container以外にもいろいろ付属したapplication server
という認識なんですがどうでしょうか。
あとJBossは内部にTomcatを含んでいるようですが、GlassFishもTomcatを含んでいるのでしょうか。それとも独自のservlet containerとapplication serverを持っているのでしょうか。
よろしくお願いします。
419デフォルトの名無しさん:2007/11/14(水) 18:20:39
違いも何も別のものだろ
作っているところが違うという事でいいか?
後は対応しているJavaEEの仕様が違う。
Tomcatは厳密に言えばAppサーバーといえないしな
420デフォルトの名無しさん:2007/11/14(水) 18:25:25
厳密に言うアプリケーションサーバの定義を教えてください
421デフォルトの名無しさん:2007/11/14(水) 18:32:47
J2EE(最近はJavaEEか?)の仕様を満たすサーバー
422デフォルトの名無しさん:2007/11/14(水) 18:43:21
>>421
根拠は?JCPがそう規定してるのか?
423デフォルトの名無しさん:2007/11/14(水) 19:00:49
>>421
>違いも何も別のものだろ
>作っているところが違うという事でいいか?
作ってるところが違っても、同じ仕様を満たすなら、別物というほどでもないと思います。

>後は対応しているJavaEEの仕様が違う。
そのへんを詳しく。あるいは参考になるページを教えていただけますか。

>Tomcatは厳密に言えばAppサーバーといえないしな
どういった点でそう判断されましたか?
今のところ、アプリケーションサーバの厳密な定義はないと思いますし、Webを見る限りではTomcatはアプリケーションサーバーに分類されてると思います。

>>421
その定義だとJava以外の言語用のアプリケーションサーバーは存在できなくなります。
あえていうなら、J2EEアプリケーションサーバーでしょうか。


で、>>418の続きなんですか、GlassFishにはTomcatは含まれておらず、servlet containerもapplication serverも独自実装という理解でいいでしょうか。
GlassFishをダウンロードしてみたのですが、いまいち分かりませんでした。
424デフォルトの名無しさん:2007/11/14(水) 19:13:36
GlassfishはSun主導のオープンソースプロジェクトで作られている。
TomcatはApache Software Foundationで作られている。

GlassfishはJavaEE仕様完全準拠のフルスタック。
Tomcatは基本的にWebコンテナ+JNDIサービスのみ。

GlassfishにTomcatそのものがそのまま含まれているわけではない。
ただし、両者には共通するコードは多く含まれている。

両者ともオープンソースソフトウェアなので、コードの再利用が認められているからだ。
俺はTomcatは「アプリケーションサーバ」でいいと思うよ。
425デフォルトの名無しさん:2007/11/14(水) 19:41:01
スレ違いかもしれませんが質問を。
JavaでPNGをロードするコードを探しています
PNGファイルをJavaで解析しているコードという意味で、Appletで読み込みをしたいという意味ではありません

というのも、iアプリでPNGを扱いたいのですが、元から入ってる画像ロードクラスではPNGが対応していないのです
なのでPNGのファイル構造を解析して1ドットずつ画像を取得しなければなりません
libpngのソースを移植するというのを最終手段としては考えていますが、もしJavaで書かれたコードがあれば教えていただけると幸いです
426デフォルトの名無しさん:2007/11/14(水) 19:56:26
SunのJREならSPIで対応されてるから、その手の開発動機は起きない気が。
そのSPIがPure Javaで出来てるなら、Open JDKで覗けるのかな?
427デフォルトの名無しさん:2007/11/14(水) 20:31:42
>>425
javapng
http://code.google.com/p/javapng/
PNGをdecodeして読み込むためのライブラリみたい

PNG encoder
http://www.objectplanet.com/pngencoder/
readじゃなくてwriteのほうだけど、ソースを読んでPNGの構造を理解する助けにはなる
かも
428デフォルトの名無しさん:2007/11/14(水) 20:34:00
デフォで入ってるでしょ
429418:2007/11/14(水) 20:37:12
>>424
どうもありがとうございます。
>GlassfishはJavaEE仕様完全準拠のフルスタック。
>Tomcatは基本的にWebコンテナ+JNDIサービスのみ。
こういう回答をまってました。
最近はservlet containerと言わずにweb containerというんですか?

>GlassfishにTomcatそのものがそのまま含まれているわけではない。
>ただし、両者には共通するコードは多く含まれている。
どのあたりが共通しているか、わかるようでしたら教えてください。
servlet container と web server のあたりはどうでしょうか?
# ダウンロードして中身をみても、よくわかんないんですよね。
# JBossはTomcat6を持ってきてると書いてあるから分かりやすいんですが。

430デフォルトの名無しさん:2007/11/14(水) 21:02:37
>>429
どこまで人任せ?
431デフォルトの名無しさん:2007/11/14(水) 21:24:22
システム構成の層分けの知識が追いついてないのに背伸びしすぎじゃないか?
432デフォルトの名無しさん:2007/11/14(水) 21:30:12
要約すれば、もっと勉強してから質問しろ、ということかね
無駄に偉そうだしwww
433デフォルトの名無しさん:2007/11/14(水) 21:33:29
>>429
そもそもJavaEEが何かってのを考えてごらん
Servlet/JSPはJavaEEを構成する一要素に過ぎない

とりわけGlassfishが実装しているJavaEE 5はServlet 2.5, JSP2.1の仕様に対応している
そのほか、EJB,JPA,JMS,JTA,JSTL,JSF,JAXP,JAX-RPC,JAX-WS,StAX,JavaMail,JAF等々の仕様をまとめてひとつのプラットフォームとして規定したのがJavaEE。

つまり、>>424が言っているとおり、
Servlet/JSPの仕様を満たしているのがTomcat
JavaEEの仕様を満たしているのがGlassfish

Tomcat6はServlet 2.5, JSP 2.1の仕様を満たしている
JavaEE5でもServletは2.5、JSPは2.1に対応している
じゃあServlet/JSPの仕様が共通なんだ、というのがわかるよね。
434デフォルトの名無しさん:2007/11/14(水) 21:35:40
こういうスレで明確な線引きはしないほうがいいんだが、
初心者歓迎つっても質問の初心者は歓迎しませんよって感じだな。
何が分からないか分からない人のヒアリングの場ではない。
435デフォルトの名無しさん:2007/11/14(水) 21:38:36
>質問の初心者
うまいこといったなw
確かに質問が下手だと、いろいろな解釈ができてしまうから腹がたつ
436デフォルトの名無しさん:2007/11/14(水) 21:45:09
>>427
ありがとう
中身みてみますね
437デフォルトの名無しさん:2007/11/14(水) 22:03:14
>>433
>>429はそういうことを聞きたいんじゃないと思う。
どこが同じ仕様なのか聞きたいんじゃなくて
どの部分のコードが同じなのか聞きたいんだろ?

>>429
実装部分のAPIリファレンスをダウンロードしてみて、
org.apacheから始まるパッケージの部分はTomcatと同じコードが
含まれていると考えていい。jasperとかcatalinaとかあるから。

Servletコンテナとも、Webコンテナとも言うね。
どちらも指しているものはほぼ同じ。
Webコンテナといった場合の方が、Servlet処理系だけでなく
JSPコンテナやHTTPサーバを含んでいるという意味合いが強い。
438418:2007/11/14(水) 22:10:22
>>433
>つまり、>>424が言っているとおり、
>Servlet/JSPの仕様を満たしているのがTomcat
>JavaEEの仕様を満たしているのがGlassfish

これはわかりやすい説明。なるほど、合点が行きました。
ありがとうございました。

あと、「GlassFishはTomcatのコンテナとwebサーバーは使ってない」であってますか。
Tomcat, JBoss, GlassFishの性能を評価しなくちゃいけなくて、でもJBossはTomcat6を内部に持っているからTomcatと同じと見なせてテストを省略できるとして、
もしGlassFishがTomcatを使ってたらこれも省略できるかなーと思ってたんですが、そういうわけにもいかないですね。

結局、TomcatとGlassFishでどのコードが共通なのか分からずじまいです。
439418:2007/11/14(水) 22:11:47
>>437
>実装部分のAPIリファレンスをダウンロードしてみて、
>org.apacheから始まるパッケージの部分はTomcatと同じコードが
>含まれていると考えていい。jasperとかcatalinaとかあるから。
ははあ、そういう方法がありましたか。
これはいいヒントになります。ありがとうございました。
440デフォルトの名無しさん:2007/11/14(水) 22:15:42
>>438
>でもJBossはTomcat6を内部に持っているからTomcatと同じと見なせてテストを省略できるとして、

あるあ・・・・・・ねーよwwww
441デフォルトの名無しさん:2007/11/14(水) 22:21:50
こんな奴が評価するなんて・・・・ねーよwwww
しかも、ソースは2chかよwww
442デフォルトの名無しさん:2007/11/14(水) 22:36:55
なんか性能評価と機能評価がごっちゃになってるな。
Tomcat一択でいいだろ、素人ならBestよりBetterだ。
より完璧な環境より、ワークアラウンド情報が豊富な環境の方が運用しやすい。
443デフォルトの名無しさん:2007/11/14(水) 22:47:02
すみません、
いろいろとググッたのですが
分からなかったので質問させて頂きます

JAVAからruntime.execでUnixコマンドを
実行した際に、

java.security〜 exception execute

と叱られます。

ポリシー設定ファイルは、readとwriteの指定のみですが

出来ればポリシー設定ファイルは変更せずに
Unixコマンドを実行したいのですが
何か方法はございますでしょうか?

宜しくお願い致します。
444デフォルトの名無しさん:2007/11/14(水) 22:50:53
Appletでないなら、普通にできたと思うが。
Appletでやりたいのならあきらめろ。
445デフォルトの名無しさん:2007/11/14(水) 22:56:08
JNIで通すとかlocalhostサーバにコマンド実行を頼むとか?
446デフォルトの名無しさん:2007/11/14(水) 23:01:27
>>443
まあ、やれない方が自然だわな
shとかかませば出来るかしれんけど
Appletからじゃ出来るのは問題
447デフォルトの名無しさん:2007/11/14(水) 23:04:06
>>443
All パーミッション与えとけ。
448デフォルトの名無しさん:2007/11/14(水) 23:08:53
皆さんありがとう!
449デフォルトの名無しさん:2007/11/14(水) 23:19:09
セキュアにしたいってのと、特定のユーティリティを利用したいってのは、
運用を考えたときの当然の悩みだと思うけど、何でポリシーへの追記まで制限すんの?
無理なやり方はセキュリティホールの温床になると思うんだけど。
450443です:2007/11/14(水) 23:21:32
皆様すみません、
このソースはサーブレットですが、
何か妙案ございますでしょうか?

ちなみに、processbuilderでも叱られました…
451443です:2007/11/14(水) 23:23:52
追伸ですが
777権限のシェルでも同じ内容で
叱られてしまいました…

度々すみませんです。
452デフォルトの名無しさん:2007/11/14(水) 23:30:21
0111(OS) & 0110(Java) の答えは 6 だと思うのだが違うのか?
453443です:2007/11/14(水) 23:37:23
確かに、セキュアに反した事だと思いますので、
運用面を含め調べてみます。

ありがとうございました。
454デフォルトの名無しさん:2007/11/14(水) 23:43:28
同一ドメインで動くものならポリシーいじればいいやん。
455デフォルトの名無しさん:2007/11/15(木) 00:20:35
phpからjavaのプログラムを実行して、その返り値を
phpに受け取らせたいです。
どのように書けばいいか、教えて頂けませんでしょうか?
456デフォルトの名無しさん:2007/11/15(木) 01:24:55
>>455
それはphpの質問じゃないのか?
外部プログラムを実行してその結果を受け取るのは
そのプログラムがjavaプログラムであるかないかによらない
457デフォルトの名無しさん:2007/11/15(木) 01:32:04
http://118.16.21.156/cc.java
sockを使ったプログラムを勉強中なのですが
上述のソースをEclipseで実行すると下記のようなエラーがでます
解決法を教えていただけませんか?
Exception in thread "Thread-0" java.lang.NullPointerException
at cc.ChatClient_GUI$Sender.checkAsyncExec(ChatClient_GUI.java:77)
at cc.ChatClient_GUI$Sender.run(ChatClient_GUI.java:63)
at java.lang.Thread.run(Unknown Source)
ちなみに鯖側のソースですが正常に動作します(telnetにて確認済み)
http://118.16.21.156/cs.java
458デフォルトの名無しさん:2007/11/15(木) 01:38:25
web制作板で誘導されてプログラム板へ来たのですが、
illustrator10でjavascriptを利用する際の質問はどのスレに行けばいいのでしょうか…?
それともここのスレでも大丈夫ですか…?
459デフォルトの名無しさん:2007/11/15(木) 01:40:18
>>457
Senderのdisplayに何も代入してないじゃん
460デフォルトの名無しさん:2007/11/15(木) 01:53:44
>>459
レスありがとうございます
Senderのコンストラクタに
this.app=app;
this.display=display;
と追加し133行目をnew Thread(new Sender(in,this,display)).start();
と書き換えてみましたがうまくいかないようです
ブレイクポイントをSender近辺に設定してデバッグ中ですがよくわからないです・・・
461デフォルトの名無しさん:2007/11/15(木) 02:23:28
>>458
多分どこも持って行くところがないと思う。
462デフォルトの名無しさん:2007/11/15(木) 02:37:18
>>458
ツールと言語の名前だけ聞けばWeb制作板で間違いないと思う。
というよりJavaとJavaScriptは全くの別物
とりあえず、『Illustrator JavaScript』でググレばいいと思う
色々情報載ってるよ
Illustratorという名前に惑わされず
普通にJavaScript勉強すればそのうちわかるんじゃとは思うが
とりあえず先にいったとおり
ここは『Java』スレであって『JavaScript』スレでないのでスレ違いです
463デフォルトの名無しさん:2007/11/15(木) 03:56:38
javaからリモートサーバのphpの変数の値を受け取りたいんですが如何すれば良いでしょうか
javaから同じくjavascriptの場合についても教えてください
お願いします
464デフォルトの名無しさん:2007/11/15(木) 03:58:29
>>230 , >>275 で質問させて頂いた者です。
オーナーの方の返事を待つ間、少しでも自分でやってみようと思います。
製作を他の方に依頼するのは頑張った後でも遅くはないと考え直しました。
それでコンパイルしようとすると、次の、

GlyphVector glyph = Font.createGlyphVector(

部分で以下のようなエラー情報が返って来ます。

>static でない メソッド createGlyphVector
>(java.awt.font.FontRenderContext,java.lang.String)
>を static コンテキストから参照することはできません。
>= Font.createGlyphVector(
>     ^

Javaの道さんのところのFAQによると、(http://www.javaroad.jp/faq/faq_error1.htm#q7

「明示的にオブジェクトを指定してメソッド、変数を参照すれば、エラーにはなりません」

とのことですが、この「明示的にオブジェクトを指定」をどのようにすれば良いのか判りません。
リンク先のサンプルをそのままコピーして当該部分に貼り付けたのですが駄目でした。

やり方を御存知の方がいらっしゃったら、どうか御教示ください。お願い致します。
環境は WindowsXP_SP2 及び JDK_1.6.0_03 です。
465デフォルトの名無しさん:2007/11/15(木) 04:16:31
>>464
Fontのインスタンスを作ってから呼べってこと。
Font font = new Font(...);
GlyphVector gv = font.createGlyphVector(...);
466デフォルトの名無しさん:2007/11/15(木) 04:16:37
>>463
URL クラスを使ってその PHP の URL からテキストでも XML でも何でもダウンロードしる。

>>464
Font font = new Font("Dialog", Font.PLAIN, 12);  // ←グリフを取得したいフォント
GlyphVector glyph = font.getGlyphVector(...);
467デフォルトの名無しさん:2007/11/15(木) 04:18:19
つか、>>230のリンク先小文字じゃない?
468デフォルトの名無しさん:2007/11/15(木) 04:24:43
phpの内部の変数の値を参照したいんだけど
javascriptも同じで
URLでコンテンツダウンロードするだけで値を参照できるかな
469デフォルトの名無しさん:2007/11/15(木) 04:28:00
まあできなかったから聞いてるんだけどね
470デフォルトの名無しさん:2007/11/15(木) 04:33:20
>>468
何がしたいか分からん。PHP が作った HTML の中に入ってる文字を取り出したいならコンテンツ
ダウンロードして文字列解析しろ。HTML 内の JavaScript がはじき出す情報が欲しいなら難しい。
標準では無理。Mozilla の PINO か何か使え。
471デフォルトの名無しさん:2007/11/15(木) 04:34:37
>>464
大雑把に言うとメソッドを実行するには二つの方法があります。
1. オブジェクトからメソッドを実行する方法
2. クラスからメソッドを実行する方法
用語はともかく、二つの方法があるということを抑えればOKです。

それでなぜそのエラーが出るかというと
1の方法で実行しないといけないメソッドを2の方法で実行しているからです。

付け焼刃でどうにか実現でき・・・るかもしれませんが、
急がば回れで入門サイトを見て一から勉強したほうが早いかもしれないかもしれないかも
472デフォルトの名無しさん:2007/11/15(木) 04:45:33
>>470
さんきゅ
それが聞きたかった
やりたい事は参照それ以上は言う必要ないべ
PINOねPHPは無理そうだね
473デフォルトの名無しさん:2007/11/15(木) 04:47:51
こんな短時間にたくさんの返答を頂けて感激しています。ありがとうございます。 m(_ _)m
>>230さんに指摘された通り、一部小文字を間違えて大文字で表記していました。スミマセン。
それで教えて頂いた方法を試しているのですが、この間違いのせいかイマイチ上手く行きません。
また、ごく一部をのみを掲載さしたのがマズかったかと思い、当該部分を前後を含めて書き込みたいと思います。
>>230のリンク先のサンプルから変更したのは、参照したいフォントをインストールされているものにしたのと、
クラス名を加えたくらいです。このままコンパイルすると、今度は「シンボルが見付けられない」と出ます。
教えて貰った方法でも色々と試してみますが、広い範囲を見て別のやり方が有れば宜しくお願いします。

import java.awt.Font;
import java.awt.Shape;
import java.awt.font.FontRenderContext;
import java.awt.font.GlyphVector;
import java.awt.geom.AffineTransform;
import java.awt.geom.PathIterator;
import java.awt.geom.Rectangle2D;
import java.io.FileInputStream;

public class eps{
public static void main(String args[]){
FileInputStream fin = new FileInputStream( "MSgothic.ttf" ); //参照したいフォント
Font font = Font.createFont( Font.TRUETYPE_FONT, fin );
fin.close();
GlyphVector glyph
= font.CreateGlyphVector(
new FontRenderContext(new AffineTransform(), false, false),
"some text" //抽出したい文字列
);
}
}
474デフォルトの名無しさん:2007/11/15(木) 04:52:10
Font font = new Font("MS ゴシック", Font.PLAIN, 12);
で良いんじゃないかと。
475デフォルトの名無しさん:2007/11/15(木) 04:59:54
スミマセン。またポカやからかしました。
上の「 = font.CreateGlyphVector( 」は大文字ではなく小文字で、「 = font.createGlyphVector( 」でした。
それで、そのままコンパイルしようと「キャッチかスロー宣言をしなければならない」とでるので、
Javaの道さんのサンプルを参照して、次のようにしました。
そうするとやっばり「シンボルが見付けられない」と出てきました。

import java.awt.Font;
import java.awt.Shape;
import java.awt.font.FontRenderContext;
import java.awt.font.GlyphVector;
import java.awt.geom.AffineTransform;
import java.awt.geom.PathIterator;
import java.awt.geom.Rectangle2D;
import java.io.FileInputStream;

public class eps{
public static void main(String args[]){
try {
FileInputStream fin = new FileInputStream( "MSgothic.ttf" ); //参照したいフォント
Font font = Font.createFont( Font.TRUETYPE_FONT, fin );
fin.close();
} catch (java.io.IOException e) {
e.printStackTrace();
}
GlyphVector glyph
= font.createGlyphVector(
new FontRenderContext(new AffineTransform(), false, false),
"some text" //抽出したい文字列
);
}
}
476デフォルトの名無しさん:2007/11/15(木) 05:02:49
大文字と小文字を別文字として扱うのに慣れてなくてワヤワヤになっています。
御迷惑ばかりかけて本当にスミマセン。
477デフォルトの名無しさん:2007/11/15(木) 05:23:56
import java.awt.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.io.*;

public class eps{
  public static void main(String args[]){
    try {
      FileInputStream fin = new FileInputStream( "MSgothic.ttf" ); //参照したいフォント
      Font font = Font.createFont( Font.TRUETYPE_FONT, fin );
      fin.close();
      GlyphVector glyph = font.createGlyphVector(
      new FontRenderContext(new AffineTransform(), false, false),
      "some text" //抽出したい文字列
      );
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}
478デフォルトの名無しさん:2007/11/15(木) 06:06:39
>>477さん、どうもありがとうございました。この部分は上手くコンパイルできました。
元の部分をいじらなくても try とcatch で括るだけで何とかなるのですね。勉強になりました。
他にもワヤワヤになってしまった私の書き込みにレスを下さった皆様方に心から感謝します。

それで、今迄質問していたのはリンク先のソースの前半部分だけで、後半部分を付け足すとまた、

シンボルを見つけられません。
シンボル: 変数 glyph
場所  : eps の クラス
    Shape outline = glyph.getOutline();
            ^

と出て来てコンパイルできません。前半部分と同じように

    try {
    ●●●●●●
    } catch (Exception e) {
      e.printStackTrace();
    }

で括れば良いのかと思って色々な部分に同文を挿入しているのですが、逆にエラー箇所が増えたりします。
教えて貰ってばかりで申し訳ないのですが、同じようなやり方でどこかを括れば良いのでしょうか?
今一度お知恵をお貸し下さい。お願い致します。(以下に二度に分けてサンプルを引用します)
479デフォルトの名無しさん:2007/11/15(木) 06:07:28
//↓サンプルの前半部分
import java.awt.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.io.*;

public class eps{
  public static void main(String args[]){
    try {
      FileInputStream fin = new FileInputStream( "MSgothic.ttf" ); //参照したいフォント
      Font font = Font.createFont( Font.TRUETYPE_FONT, fin );
      fin.close();
      GlyphVector glyph = font.createGlyphVector(
      new FontRenderContext(new AffineTransform(), false, false),
      "some text" //抽出したい文字列
      );
    } catch (Exception e) {
      e.printStackTrace();
    }
//↑サンプルの前半部分
480デフォルトの名無しさん:2007/11/15(木) 06:09:06
//↓サンプルの後半部分
    Shape outline = glyph.getOutline();
    PathIterator iter = outline.getPathIterator(null);
    int type;
    float coords[] = new float[6];      //Postscript の newpath を発行
    while (!iter.isDone()) {
      type = iter.currentSegment(coords);
       switch (type) {
        case PathIterator.SEG_CLOSE :   //Postscript の closepath を発行
        case PathIterator.SEG_CUBICTO :  //Postscript の curveto を発行
        case PathIterator.SEG_LINETO :  //Postscript の lineto を発行
        case PathIterator.SEG_MOVETO :  //Postscript の moveto を発行
        case PathIterator.SEG_QUADTO :  //2 次 B スプラインを Postscript の curveto に変換して発行
      }
      iter.next();
    }
    switch (iter.getWindingRule()) {
      case PathIterator.WIND_EVEN_ODD :   //Postscript の eofill を発行
        break;
      case PathIterator.WIND_NON_ZERO :   //Postscript fill を発行
        break;
      default :
                         //エラー
        break;
    }
  }
}
//↑サンプルの後半部分
481デフォルトの名無しさん:2007/11/15(木) 06:14:56
全部tryでくくっちゃえばいいよ。
482デフォルトの名無しさん:2007/11/15(木) 06:16:06
いい加減つまらんコンパイルエラーくらい自力で何とかしろ。
おまえのプログラムをデバッグするスレでも立ててそっちでやれ。
483デフォルトの名無しさん:2007/11/15(木) 06:24:26
>>481さん、上手く行きました! ありがとうございます。

本当に皆さんのお蔭です。ド素人の質問にこんなにも丁寧に答えて頂いて感激しました。
心から感謝いたします。本当に本当にありがとうございました。重ねて御礼申し上げます。

>>482さん、申し訳ありません。以後このような事がないように気を付けます。
484デフォルトの名無しさん:2007/11/15(木) 13:06:59
StreamTokenizerクラスのwordCharsで「'」(半角クオート)を指定したい時はどうすればよいでしょうか?
StreamTokenizerクラスのオブジェクトstがあるとして
st.wordChars(''',''');
とやってもまぁエラーになります。
ダブルクオートで囲ってもだめでした。
485デフォルトの名無しさん:2007/11/15(木) 13:09:10
"\'"
486デフォルトの名無しさん:2007/11/15(木) 13:30:31
>>485
ありがとうございます!
487デフォルトの名無しさん:2007/11/15(木) 21:38:53
たとえば public static String A(){...}と、static public String A(){...}
では 意味がちがってくるのでしょうか?よろしくお願いします
488デフォルトの名無しさん:2007/11/15(木) 21:48:30
アクセス修飾子、static、finalなどの修飾子に並びは関係ないぞなもし。
おいらはpublic static finalの出現順になるように統一してるよ。
ちなみにNetBeansのコード補完もこのスタイル。
psfi<半角スペース>と打つと、private static final intに変換される。
489デフォルトの名無しさん:2007/11/15(木) 21:54:38
>>488
  早速の返答 さんきゅうです!
490デフォルトの名無しさん:2007/11/15(木) 22:04:54
バイトコード表現ではカノニカライズされてるみたいだけど
最初からこの並びを意識した方がコードの共有には有利かもね

http://sdc.sun.co.jp/java/docs/j2se/1.5.0/ja/docs/ja/api/java/lang/reflect/Field.html#toGenericString()
491デフォルトの名無しさん:2007/11/16(金) 00:30:21
>>487
例えば、メソッドの修飾子なら、
ttp://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.4.3
にあるように、"it is customary, though not required"ではあるけれど、
複数の修飾子が出現する場合の順序が一応JLSで示されている。
くさってもJLSなので、JLSに書かれてあるのならJLSに合わせておくのが無難。
492デフォルトの名無しさん:2007/11/16(金) 14:51:05
cloneの意味が全然理解できないのですけれど
newでインスタンスを作るのとcloneでインスタンスをつくるのとの
比較を交えて頭のチョット弱めの人でもわかる詳しい解説をよろしくおねがいできなかったでしょうか?
493デフォルトの名無しさん:2007/11/16(金) 15:00:08
new = 白紙
clone() = コピー
494デフォルトの名無しさん:2007/11/16(金) 15:15:37
似たようなオブジェクトをいくつも作る時とか(Prototype)、
可変なデータを持つオブジェクトの中身が意図せず変わることを防ぐためにコピーするとか。(防衛的コピー)
あとcloneの代わりにstaticファクトリメソッドやコピーコンストラクタを使うこともある。
495デフォルトの名無しさん:2007/11/16(金) 15:28:35
>>492
newは中身空っぽの新しいオブジェクトを作る
cloneは元のオブジェクトと同じ中身のコピーを作る

newは自分が指定したクラスのオブジェクトを作る
cloneは元のオブジェクトと同じクラスのオブジェクトを作る

newは何もないときでも新しいオブジェクトを作れる
cloneはコピー元となるオブジェクトが必要

newはコンストラクタを呼び出す
cloneはコンストラクタを呼び出さない

newは予約語
cloneはメソッド名
496デフォルトの名無しさん:2007/11/16(金) 16:25:16
Stringでいうsubstrのように、
int配列の途中から最後までの部分配列を作る方法を教えてください。
497デフォルトの名無しさん:2007/11/16(金) 16:29:40
Arrays.copyOfRange
498デフォルトの名無しさん:2007/11/16(金) 16:30:18
int[] b = Arrays.copyOfRange(a, from, to);
499デフォルトの名無しさん:2007/11/16(金) 16:42:44
ありがとうございます。試してみます。
500デフォルトの名無しさん:2007/11/16(金) 20:24:40
アニメーションとボタンを作りたいんですが
イメージとしては
http://up.mugitya.com/img/Lv.1_up40091.bmp.html
こんな感じです。

アニメーションをパネルに設置して、フレームに入れればいけるとは思うのですが、
パネルに設置する方法がいまいちよくわかりません。
どなたか教えていただけるとありがたいです。

説明分かりにくくて申し訳ないですが、よろしくお願いします。
501デフォルトの名無しさん:2007/11/16(金) 20:47:49
Lpanel = new JPanel() ;    Rpanel = new JPanel() ;
JSplitPane spane = new JSplitPane() ;
spane.setLeftComponent(Lpanel) ;
spane.setRightComponent(Rpanel) ;

// Lpanelにボタン類を配置してRpanelで描画するとか
502デフォルトの名無しさん:2007/11/16(金) 20:51:38
>>500
panel.add(animationCanvas);
503デフォルトの名無しさん:2007/11/16(金) 20:53:31
>>501
ありがとうございます。SplitPaneなるものがあるとは知りませんでした。

申し訳ありませんが、ついでにもう一ついいですか?
http://www.ipc.hokusei.ac.jp/~z00104/java/anim.html
の例2のぱらぱらアニメーションを作ったとして
これをSplitPaneの右に配置する方法を教えていただきたいのですが
504デフォルトの名無しさん:2007/11/16(金) 21:06:06
Rpanel extends JPanel{
505デフォルトの名無しさん:2007/11/16(金) 21:12:06
誤爆したorz

class PaintPanel extends JPanel {
 public void paint(Graphics g) {
    //描画したい処理
}}   // PaintPanel Rpanel = new PaintPnel() ;
506デフォルトの名無しさん:2007/11/16(金) 21:16:28
>>505
あーなるほど、試してみます。
有難うございました。
507デフォルトの名無しさん:2007/11/16(金) 21:23:15
>>505
なんどもすみません、描画したい処理ってのは
init(){
からを描けばいいんですか?
508デフォルトの名無しさん:2007/11/16(金) 23:08:06
度々申し訳ありません。>>230で質問し、助けて頂いた者です。 m(_ _)m
>>230のリンク先で公開されている
TrueTypeフォントのアウトラインを取得してEPS形式に変換するJAVAは、
掲示板の皆さんのお蔭でコンパイルできました。それで、その時、
「あれ? コンパイルはできたけどEPSファイルが出力されないぞ?」
と思い、EPSファイルでの保存は別なんだと遅ればせながら気付きました。

それでJAVAへの道さんでファイルの入出力を勉強しまして、

 FileOutputStream fos = new FileOutputStream("test.eps");
 BufferedWriter bw = new BufferedWriter(osw);
 String msg = "%!PS-Adobe-2.0 EPSF-1.2\n%%BoundingBox: 0 0 20 20\ngsave\n\ngrestore\nshowpage";

のようにすればEPSファイルを出力できることが判りました。

そこで質問なのですが、出力したEPSファイルの中に、
変換されたアウトライン情報(>>479-480で得た情報)を書き込むためにはどうすれば良いのでしょうか?
JAVAへの道さんの言う「オブジェクトのシリアライズ」もしくは「パイプ入出力」のことかと思って、
色々と入出力のやり方を試しているのですが、いまいち上手く行きません。

質問ばかりで申し訳ないのですが、どうか御教示願います。
509デフォルトの名無しさん:2007/11/16(金) 23:10:12
import java.io.*;
public class InOut {
public static void main(String args[]){
System.out.println("作成したいファイルを入力してください");
try{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();

PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(str)));
pw.println("これから");
System.out.println("入力よろ");
pw.println(br.readLine());
}catch(IOException e){
System.out.println(e);
}
}
}
最近javaをはじめたのですがファイル出力するプログラムを作ったのですが、ファイルは作成されるけど
文字が出力されません。おかしい点を指摘して欲しいです!
よろしくおねがいします
510デフォルトの名無しさん:2007/11/16(金) 23:12:14
>>509
最後に pw.close();
511デフォルトの名無しさん:2007/11/16(金) 23:17:58
>>510
うあああーーーー!
そういう事でしたか。ありがとう^^
512デフォルトの名無しさん:2007/11/16(金) 23:19:07
>>508
まずEPSファイルの仕様を調べて、んでその仕様通りに書き込めばいいだろう
自動的にEPS形式で出力してくれるような超便利メソッドは無い
513デフォルトの名無しさん:2007/11/17(土) 00:47:51
>>512
どうもです。あの少し誤解が有るようですが、
>>479-480のクラスでTruTypeフォントのアウトラインを取得し、
それをEPS(PostScript)形式に変換しています。
その変換結果の外部ファイルへの出力(書き込み)の仕方がよく判らないのです。

最初は「拡張子の.classを.epsに書き換えればよいのかな?」と思っていたのですが全然違うようですし。

JAVAを勉強し初めて一週間もたたないので用語が適切かどうか判らないのですが、
「オブジェクトの実行結果を再利用したい」ということになるのでしょうか。
もしくは「メソッドの結果を出力したい」になるのかも。
ど素人なのでトンチンカンなことを言っていたらスミマセン。
514デフォルトの名無しさん:2007/11/17(土) 00:53:53
>それをEPS(PostScript)形式に変換しています。 

どこで変換してるの?
479-480 のサンプルコードでは、その部分がコメントで省略されてるように見えるが。
515デフォルトの名無しさん:2007/11/17(土) 00:59:53
情報を小出しにするアホはほっとけ。
516デフォルトの名無しさん:2007/11/17(土) 01:04:48
>>514
そ、そうなんですか !?
確かにサイト上で公開されていたオリジナルのコードにはコメントが付いていませんが、
コメントを付けないと「';' がありません」というエラー表示が出て来てコンパイルできないので、
てっきり作者様のコメントの付け忘れかと・・・・。
ひょっとして私の素人考えでとんでもないミスをしているのでしょうか。

>>515
すみません。前に>>482さんに叱られたので短くするように努めたつもりなのですが・・・
お気に触ったなら申し訳ありません。
517デフォルトの名無しさん:2007/11/17(土) 01:20:06
>>516
君がコメントアウトした部分は実コードじゃなくて 「この処理は自分で考えろ」 という意味。
Postscript のフォーマット知らないでそのファイルを作るコード書けるわけないじゃん。
518デフォルトの名無しさん:2007/11/17(土) 02:15:47
>>517
そうだったのですか・・・。全く思いつきもしませんでした・・・・。
素人考えで作者様に無礼をしたのを始め、スレ汚しをしてまったことを皆様にお詫びします。
もっと勉強してから出直して来ます。御指導ありがとうございました。
519デフォルトの名無しさん:2007/11/17(土) 05:58:46
JDK 5.0 Update 14
Windows Offline Installation, Multi-language

が、インストールできません。XPなのですが

data1.cabは壊れています。
ネットワークエラー、読み取りエラーの可能性があります。

みたいな事がでて中止になってしまいます。

何回もアンインストール、ダウンロードしてもダメなのですが
どうしたらよいのでしょうか?
520デフォルトの名無しさん:2007/11/17(土) 06:34:48
あきらめる。
壊れていないものをダウンロードできるまでがんばる。
別のダウンロードアプリを試してみる。
お札を貼る。
521デフォルトの名無しさん:2007/11/17(土) 07:10:47
ん〜、諦めたくないです・・・

こういうことって結構あるんですか?

javaの開発ツールを何とかして使いたいのですが;
522デフォルトの名無しさん:2007/11/17(土) 08:42:06
当然アンチウィルス切って落としたんだろうな?
基本から見直した方が良い。
実測96kbpsで途中で何度も回線ぶった切れてDLしたファイルでも問題なくインストール出来てるぞ。
523デフォルトの名無しさん:2007/11/17(土) 09:05:56
一度ブラウザのキャッシュを全部クリアして再ダウンロードすれ。
ダウンロードしたらファイルサイズくらい確かめろ。
524デフォルトの名無しさん:2007/11/17(土) 09:40:18
C:\Documents and Settings\ユーザ名\Local Settings\Temp
以下のファイルを消してみるとか。
以前同じ現象になった時これで直った。
525デフォルトの名無しさん:2007/11/17(土) 12:26:53
HTMLのフォームでファイルをPOSTする代わりをJavaにさせたいのですが、どのような方法を用いるのがよいでしょうか?
できれば標準ライブラリのみで行いたいです。
サーバー側にはPHPでアップロードしたファイルを移動するスクリプトのみ置いています。
526デフォルトの名無しさん:2007/11/17(土) 12:36:04
アプレットでやろうと思ってるなら、クライアントのセキュリティポリシー変えない限りは無理です。
アプリケーションでやろうと思っているなら URLConnection クラス使って multipart/form-data 形式で
送ってください。
527デフォルトの名無しさん:2007/11/17(土) 12:39:09
>>525
>できれば標準ライブラリのみで行いたいです。
commons の HttpClient を使えば簡単なのに。
528デフォルトの名無しさん:2007/11/17(土) 13:32:37
>>526
アプリケーションでやろうと思っています。
単純に以下のようにやってみましたが結果は変わりませんでした。
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.setDoOutput(true);
con.setRequestProperty("Content-Type", "multipart/form");
DataOutputStream out = new DataOutputStream(con.getOutputStream());
// ファイル書き込み
out.close();
この他にもContent-Disposition,name,filenameなども書き込んでみましたがだめでした。
もしよろしければ引き続きご教示ください。

>>527
そうなのですが、今回は自分で実装してみたかったんです。わがまま言って申し訳ありません。
529デフォルトの名無しさん:2007/11/17(土) 13:37:16
>>528
multipart/form-data の場合にどういふうにデータが送られるかわかってる?
RFCを読めとまでは言わないが、ちゃんと調べろよ。
530デフォルトの名無しさん:2007/11/17(土) 14:44:25
Content-Lengthに送るデータ長をセットしないと…
531530:2007/11/17(土) 14:45:10
あ、ごめん
532521:2007/11/17(土) 15:36:33
マカフィー消してましたし
ファイルサイズも合っていましたが、ダメでした・・・

C:\Documents and Settings\ユーザ名\Local Settings\Temp
以下のファイル消してもインストールできませんでした;

頑張りまつ。
533デフォルトの名無しさん:2007/11/17(土) 16:13:32
java.io.Readerで読み込む場合、サロゲートペアというものはどうやって判断すればいいのでしょうか?
Shift_JISと同じ感覚で、D800〜DFFFが検出されたら、無条件に次のcharとセットとしてよいのですか?
534デフォルトの名無しさん:2007/11/17(土) 16:19:23
最初のcharがD800〜DBFFで、次のcharがDC00〜DFFFだったかと思うが、
そんなに気にするようなもんかね
535デフォルトの名無しさん:2007/11/17(土) 16:37:33
判定したいなら Character クラスにそれ用のメソッドがある。
536デフォルトの名無しさん:2007/11/17(土) 16:48:55
>>534
なるほど、後続文字にも領域指定があるんですね。
サロゲート・ペアのペアってなんだろうと思っていたんですが意味がわかりました。
全ての文字を上位サロゲートで比較し、真なら後続を下位サロゲートと比較、
そこで否を返したらIOExceptionでも投げた方がよさそうですね。

>そんなに気にするようなもんかね
Vistaで第四水準漢字が登場してるから準備はしとくべきかと。
537デフォルトの名無しさん:2007/11/17(土) 16:51:49
System.out.println()はSystem側からみるとoutメソッドですが、
println側からみるとoutクラスとAPIで見る限りのっていたのですが。
どうなっているのですか?
詳しい方お願いします。
538デフォルトの名無しさん:2007/11/17(土) 16:56:16
out はメソッドでもクラスでもありません。
out は System クラスのフィールドであり、そして out は println() メソッドを持っています。
539デフォルトの名無しさん:2007/11/17(土) 16:59:59
>>537
out は System クラスのフィールドで、println は PrintStream クラスのメソッドだ。

class System {
 public static PrintStream out;
}
class PrintStream {
 public void println(String s) { ...... }
}

みたいな感じ。
例えば

PrintStream x = System.out;
x.println("Hello");

のようなこともできる。
540デフォルトの名無しさん:2007/11/17(土) 17:07:04
538さん有難う御座います。
そうしますと、A.B.CとなるとAクラス中にあるBクラスの中にあるCメソッドという考え方は
間違っているのですか?
541デフォルトの名無しさん:2007/11/17(土) 17:14:02
>>540
Aクラス内のBクラスのCメソッドかもしれないし、
AクラスのBフィールドのCメソッドかもしれないし、
AパッケージのBクラスのCメソッドかもしれないし、
変数AのBフィールドのCメソッドかもしれないし

場合による
542デフォルトの名無しさん:2007/11/17(土) 17:36:53
java以前の別のところの基礎ができてない八が最近多いな。
543デフォルトの名無しさん:2007/11/17(土) 17:38:06
interfaceAをClassBとimplimentsしているとき、
interfaceAの型に入れたClassBのインスタンスはinterfaceの中の
メソッドしかつかえませんか?
544デフォルトの名無しさん:2007/11/17(土) 17:42:33
>>543
基本はそう
ClassBにキャストすればClassBのメソッドを呼べないこともない
545デフォルトの名無しさん:2007/11/17(土) 17:48:41
Some.class.isAssembleFrom(Other.class)

とした時に 「メソッド isAssembleFrom(Class) は raw 型クラスに属しています。
総称型 Class<T> への参照はパラメータ化される必要があります。」 と警告が
出るのですが、これはどう直せば良いのでしょうか?
546デフォルトの名無しさん:2007/11/17(土) 17:54:49
あるファイルと同じオーナーやパーミッション(属性)を持つファイルを作るには
どうしたらいいんでしょうか?

ファイルを編集して保存するとき、一旦テンポラリに保存してからリネームするようにして
安全性を向上させたいんですけど、そうするとファイルの属性が変わっちゃうのに気づいて
困っています。

OS依存になりそうなんで、 Java だけでは無理だったりしますか?
547デフォルトの名無しさん:2007/11/17(土) 17:57:33
>>545
1. Java1.4 でコンパイルする (できるなら)
2. @SuppressWarnings("unchecked") (型信頼性の低下等)
3. 宣言等で総称型に対応させる。
548デフォルトの名無しさん:2007/11/17(土) 18:00:58
>>545
isAssignableFromだよね?
その書き方でその警告は出ないはずだがな
 Class someClass = Some.class;
 Class otherClass = Other.class;
 someClass.isAssignableFrom(otherClass);
などとやってるのなら
 Class<?> someClass = Some.class;
 Class<?> otherClass = Other.class;
 someClass.isAssignableFrom(otherClass);
とすればいいんじゃない
549デフォルトの名無しさん:2007/11/17(土) 18:01:11
ScheduledThreadPoolExecutorをある時間が来たら終了させるには
shutDounNow()を使うしかないんでしょうか?
shutDown()だけでは終了しなかったので質問させてもらってます
550デフォルトの名無しさん:2007/11/17(土) 18:05:52
>>546
今のところJavaだけでは無理
ファイルのオーナーとかそういうものは扱えない

こういうのはどうだろう
(1) 現在のファイル内容をテンポラリにコピー
(2) ファイルに書き込み
(3) テンポラリ削除

2で失敗した場合
(3') テンポラリから元の内容をコピーし戻して復元
551デフォルトの名無しさん:2007/11/17(土) 18:11:32
>>549
shutdownは別に現在実行中のタスクをキャンセルしたりしないから
単に新規タスクの受付を停止して、現在実行中のタスクが終わるまで待ってからスレッドを片付けるだけ
shutdownNowは実行中のタスクもキャンセルさせる
552デフォルトの名無しさん:2007/11/17(土) 18:14:53
>>547 >>548
メソッド名間違えてました orz
それと Class 直接じゃなくて宣言された変数使ってました orz
<?> で良いんですか。Class クラス扱おうとするとこの警告ばかりでて困ってました。ありがとうございます。
553デフォルトの名無しさん:2007/11/17(土) 18:17:57
>>532
こういうPC関連の問題は、原因の切り分けが重要。
まずはインストールファイルがおかしいのか、PCがおかしいのかを特定しろ。
ダウンロードしたファイルを別のPCにインストールして、同じエラーが出たらファイルに原因、成功すればPCに原因がある。
もしPCが原因なら、ユーザーを切り替えて/新設してインストールしてみるとか、
JREのバージョンを最新にしてみるとかetc・・・。
554デフォルトの名無しさん:2007/11/17(土) 18:32:12
javaのインストーラはjdkのバージョン調べて更新してるだけだからそれでだめならファイルそのものも、そのファイルを落とした環境のせいって事になるな。

>>532にはOSクリーンインストールした方が早い気ガス。
555デフォルトの名無しさん:2007/11/17(土) 18:33:09
>>553
何とかインストールできました!

根気強くフォルダを変えながら
落とす→削除を繰り返したらできました。

原因はよくわかりません;
レスくれた方々ありがとうございました。
556デフォルトの名無しさん:2007/11/17(土) 18:39:29
>>554
クリーンインストールってインストールCD必要ですよね?

お金に余裕があるときに検討してみます。
557デフォルトの名無しさん:2007/11/17(土) 18:49:52
>>550
ありがとうございます。やっぱり Java では無理な感じですね。

元々安全性を向上させようってのがアプリや PC のクラッシュを視野に入れて
いるので、その方法だと 2 でそういう事態が発生した場合にやっぱりファイルが
壊れた状態になってしまいますんで、望んだ結果にはなりません。あと、 2 で
アプリが捕捉できる失敗した場合、 3' も失敗することが多いんじゃないかと思います。
558デフォルトの名無しさん:2007/11/17(土) 18:55:06
>>551
shutDownNow()しないと
上記のExecutorを生成したThreadが何時までも残って
待機ループがかかったままになっちゃうんだよね
やっぱりこれしかないのかな
559デフォルトの名無しさん:2007/11/17(土) 18:56:10
ファイルの共有を目的にしてるのかな?
それならストリームを共有するなり読み込んだ変数を共有する方が早い
560デフォルトの名無しさん:2007/11/17(土) 19:02:31
>>557
3' が失敗したら、元のバックアップがここに残ってるから手で復元してねっていうエラーメッセージを出すとか
Javaだけで出来るのはそれくらいじゃないかなぁ。
あとはNIO2を待つか、JNIを使うか…
561デフォルトの名無しさん:2007/11/17(土) 19:18:18
>>556
メーカー製でインストールCDないならHDDの別パーティションにデータ入ってるだろ。
それをCDに焼け。

お前さんはここよりwindows板行った方が良い。
562デフォルトの名無しさん:2007/11/17(土) 19:24:02
JDK 程度でクリーンインストールなんて勧めんなよ。
563デフォルトの名無しさん:2007/11/17(土) 19:27:45
JDKが問題なんじゃなくて>>556の環境に問題があるのに読んでて分からんのか?
564デフォルトの名無しさん:2007/11/17(土) 19:38:56
だからその程度で素人にクリーンインストール勧めんなよ。おまえリセット世代か?
てか環境に問題ってのも所詮お前の伝聞推測だろ。
565デフォルトの名無しさん:2007/11/17(土) 20:51:07
Velocityにはwhile文がありませんが、任意の回数だけループしたい場合はどうすればいいでしょうか。
<select name="month">
#for($i=1; $i <=12; $i++)
<option value="${i}">${i}</option>
#end
</select>
ということがしたいです。
566デフォルトの名無しさん:2007/11/17(土) 20:57:28
Windowsは、多少壊れてるくらいがちょうど良い
567デフォルトの名無しさん:2007/11/17(土) 21:01:38
$velocityCountっていうループカウンタがあるから、
new byte[15]みたいなやんちゃをすればできそうだ。
Velocityは有限要素に対する繰り返し処理しかサポートしない方針だから
breakとかもたぶんないんだろうな。
568デフォルトの名無しさん:2007/11/17(土) 21:05:16
>>567
ありがとうございます。
velocityのテンプレートで new とかできましたっけ?
569デフォルトの名無しさん:2007/11/17(土) 21:06:01
Veocity は知らんけど、この手のは XSL みたいに再帰呼び出しとかで
任意回数ループ実現すんじゃないのか?
570デフォルトの名無しさん:2007/11/17(土) 21:16:40
なんだ、範囲演算子がつかえるんじゃないか。
[1..12]でいけるみたいだぞ。
571デフォルトの名無しさん:2007/11/17(土) 21:27:37
>>570
それだ!ちょーさんくす
572デフォルトの名無しさん:2007/11/17(土) 22:13:02
web.xml において、
<servlet>
<servlet-name>service1</servlet-name>
<servlet-class>service1Servlet</servlet-class>
</servlet>
<servlet>
<servlet-name>service2</servlet-name>
<servlet-class>service2Servlet</servlet-class>
</servlet>
<servlet>
<servlet-name>service3</servlet-name>
<servlet-class>service3Servlet</servlet-class>
</servlet>
と書くのがめんどくさいので、なんかもっと簡単に書ける方法はありませんか。
たとえば正規表現使って
<servlet>
<servlet-name>service(.*)</servlet-name>
<servlet-class>service${1}Servlet</servlet-class>
</servlet>
とか。
573デフォルトの名無しさん:2007/11/17(土) 22:25:14
javaからOLEを利用するためのライブラリを教えてください
574デフォルトの名無しさん:2007/11/17(土) 22:30:50
分かったからいいです
575デフォルトの名無しさん:2007/11/17(土) 22:32:36
>>572
ループで文字列生成していくのが一般的です
576デフォルトの名無しさん:2007/11/17(土) 22:39:34
>>572
invokerつかやいいんでは?
577572:2007/11/18(日) 00:04:19
>>575
つまりweb.xmlにはそういう便利機能がないということでしょうか。

>>576
invokerは使うなと言われています。セキュリティ的によろしくないとか。
578デフォルトの名無しさん:2007/11/18(日) 00:32:47
今どきはFront Controller Patternを使うから、たくさんのservletを
書き並べる必要もないし、web.xmlにそんな機能はいらないでしょ。
579デフォルトの名無しさん:2007/11/18(日) 10:51:47
でも、フレームワークの設定ファイルに同じ事を書くんだったら、web.xmlでもいい気がしてきている。
580デフォルトの名無しさん:2007/11/18(日) 15:30:57
RMI のリモートオブジェクトって毎回 Naming.lookup() で取得した方が良いのか
最初に取得して使いまわした方が良いのかどっちが良いんでしょうか?

使いまわしてると RMI レジストリや RMI サーバ再起動したり構成変わったときに
変更が反映されますか?
581デフォルトの名無しさん:2007/11/18(日) 18:32:37
>>580
どっちでも同じ
サーバが再起動してそれがクライアントに反映されるって意味が解らん。
インターフェイス周りは動的に変更できないし、鯖の処理が変っただけならば当然変るだろ?
だけど、シリアライズとかの問題もあるから普通は鯖を変えたらクライアントも再起動するんじゃないか?
582デフォルトの名無しさん:2007/11/18(日) 19:01:39
あなたのコードを「賢く」するデザインパターンJavaプログラミング
http://www.jbook.co.jp/p/p.aspx/2978901/s/~6b19cf0ce
勝った奴いる?
5章の後半で意味がわからなくなってきたんだけど、
最後までわかった奴いる?
かったひとおったら感想きかせて
583デフォルトの名無しさん:2007/11/18(日) 19:15:18
>>582
マルチ死ね。
584デフォルトの名無しさん:2007/11/18(日) 19:16:51
>>583
マルチ死ね。
585デフォルトの名無しさん:2007/11/18(日) 19:24:48
>>581
あーすみません、リモートオブジェクトのサーバが切り替わったり (同じインターフェースで
別サーバから rebind() されたり)、レジストリだけ死んでた時にクライアントからはどういう
動きになるんだろうと疑問に思った次第です。よくよく考えると聞きたかったのは結局↓です。

リモートオブジェクトの接続先ってクライアント側のインスタンスが固定的に持っているのか、
それともメソッド呼び出すたびにレジストリに接続先を問い合わせるのか、(前者のような気が
するけど) どっちなんでしょうか?
586デフォルトの名無しさん:2007/11/18(日) 19:34:09
>>585
前者。
変った事がクライアントで解るのであれば、再度レジストするというのはあると思う。
鯖が死んだ場合、クライアントではリモートオブジェクトの実行時に例外が発生する(試してみてくれ)。
したがって、例外をcatchしたならば代替鯖(あれば・・・だけど)へ再度投げなおすというのはクリティカルなシステムならば充分にある話。

どっちかといえば、フレームワークのような部分だけどRMIを用いた有名なフレームワークって聞いたことないな。
587デフォルトの名無しさん:2007/11/18(日) 19:37:14
>>586
ありがとう、イメージがわいた。
588デフォルトの名無しさん:2007/11/18(日) 19:46:59
大学に入ってから物忘れがひどいのですが
これはガーベジコレクションが働いているのでしょうか
589デフォルトの名無しさん:2007/11/18(日) 19:47:41
WaitForMultipleObjects() に相当するものってありますか?
複数のオブジェクトのどれかに notify() が来るまで待ちたいんですけど。
590デフォルトの名無しさん:2007/11/18(日) 20:36:37
>>589
java.util.cocurrent.CountDownLatch
591デフォルトの名無しさん:2007/11/18(日) 21:10:45
>>590
API リファレンス見てみましたけどそれって全部の通知が来るまで待ちませんか?
592デフォルトの名無しさん:2007/11/18(日) 21:26:02
>>591
// 並行処理するメソッド
void doThreadMethod() {
  // 処理
  latch.countDown();
}
// 監視スレッド
void doMultiThreadWorks() {
  //すべてのスレッドのインスタンス変数で共有させる
   CountDownLatch latch = new CountDownLatch(1);
  // 各スレッドの起動
  WorkerThread thread1 = new WorkerThread(latch);
  WorkerThread thread2 = new WorkerThread(latch);
  caunt.await(); // どれかが終了するまでブロック
}




593デフォルトの名無しさん:2007/11/18(日) 21:29:26
ロガーを使ってない人と使ってる人はどちらがおおいとおおもいですか?
594デフォルトの名無しさん:2007/11/18(日) 21:30:29
caunt.await() ってなんだw
latch.await() ですorz

追記
各並行処理をさせているメソッドだけど、1つ目が終了しても処理は続行されるんで注意するべし
定期的に getCount() を呼んで他のスレッドが処理を終わらせたかをチェックするべし。
595デフォルトの名無しさん:2007/11/18(日) 21:32:42
ロガーってのはJDK付属のデフォルトLoggerのことか?
それともLog4j等のAPIも含めての話か?

含めての話ならば使ってないシステムはウンコだろ
簡単なサンプルとかユーティリティでもない限り、ログを吐かずにどうやって開発するのか不明
596デフォルトの名無しさん:2007/11/18(日) 21:33:33
>>592
アッー
count 1 で作ったものを共有すればいいんですかー、ありがとうございます。
597デフォルトの名無しさん:2007/11/18(日) 21:39:15
ロガーを含めてです。
システムは自作のアプリケーションです。
ぜひアドバイスお願いします。
598デフォルトの名無しさん:2007/11/18(日) 21:43:32
>>597
2〜3のクラスで構成される程度のプログラムならイラネ
アプリケーションというくらいならばログくらい埋めて置くべき
てか、System.out.printlnと書くところをLoggerを使えばいいだけ
書く手間はほとんど変らない。
Loggerなら後で出力したくないならば設定できる。
後から消すとか面倒だろ?

Sysout変りに使う程度ならばJDKのLoggerで充分
599デフォルトの名無しさん:2007/11/19(月) 01:42:34
>>598
いままでほとんど炉がー使ってなかったけど、そんなに手軽なのか。
今度からprintlnの代わりに使うことを検討してみるわ。
600デフォルトの名無しさん:2007/11/19(月) 01:48:15
LoggerのFINEとFINERとFINESTの使い分け方がわからね〜
誰か教えてくれ
601デフォルトの名無しさん:2007/11/19(月) 01:59:49
602デフォルトの名無しさん:2007/11/19(月) 02:16:36
というか英語の意味まんまじゃね?
603デフォルトの名無しさん:2007/11/19(月) 02:24:12
質問です。

XML処理で、生成したDocumentBuilderインスタンスを、処理負荷の低減のために

public class Hoge {
 private static DocumentBuilder db = dbf.newDocumentBuilder();
 ...
 public static Document getDocument(InputStream in) {
  return db.parse(in);
 }
}

みたいに全てのHogeインスタンス間で再利用したいのですが、Javadocには
「DocumentBuilderがスレッドセーフである保証はない」と書かれています。

ならば、スレッドごとにDocumentBuilderを生成して、個々のHogeインスタンスに
に外から差し込んでやれば良いということになりますが、Hogeクラスの利用者に、
内部でDOMを使っていることを意識させるようなコードにしたくありません。

Hogeインスタンス自身が、自分をアクセスするスレッドを識別して、
そのスレッドごとに一つだけDocumentBuilderインスタンスを生成するような
テクニックはないでしょうか。
#synchronizedを使う以外の方法で。
604デフォルトの名無しさん:2007/11/19(月) 02:33:58
ThreadLocal
605602:2007/11/19(月) 02:45:15
>>604
ありがとうございます。それで解決できそうです。
606デフォルトの名無しさん:2007/11/19(月) 03:10:24
質問です
ウェブカメラを使ったプログラムを作成したいのですが
(録画、メールで画像転送など)
Javaでは難しいでしょうか?
やはりCの方が無難でしょうか?
607デフォルトの名無しさん:2007/11/19(月) 08:06:28
>>606
JavaでもCでも難しい、以上
608デフォルトの名無しさん:2007/11/19(月) 11:23:43
そんな難しくないだろ。

モーション JPEG で流れてくるカメラならただ保存するだけじゃん。
609デフォルトの名無しさん:2007/11/19(月) 12:12:24
超簡単です
ストリーミングなんかもやりやすいです
610デフォルトの名無しさん:2007/11/19(月) 14:07:14
JavaMediaFrameworkとか使えばいいんじゃまいか?JMFで具ぐれ
611デフォルトの名無しさん:2007/11/19(月) 15:22:47
javaでフローチャート書くライブラリってないかな?
他の言語なら見つかるんだけど。
612デフォルトの名無しさん:2007/11/19(月) 15:27:14
てかjava使うときにフロー書くか?
613デフォルトの名無しさん:2007/11/19(月) 15:32:57
Java 設計でフロー書きたいんじゃなくて Java から使えるライブラリ探してんだろ。
難儀だが Eclipse のモデリングフレームワークでも調べてみたらどうだ。
614デフォルトの名無しさん:2007/11/19(月) 15:33:37
アクティビティ図ならたくさんありそう
615デフォルトの名無しさん:2007/11/19(月) 15:34:48
JasperReportsで2つほど質問です。
JasperReportsを使ってExcelを作成してるプログラムがあるんだけど、
 1.セル幅を超えると値が切れてしまう。
 2.セルの表示形式を「文字列」に設定したい。

ググってみてもヒットしない状態。。
方法知っている人いたら御教授おねがいします。
616デフォルトの名無しさん:2007/11/19(月) 15:42:51
615追記

1で、「列幅を広げる」は最終手段。
2は値が数列「00052」みたいな場合、「52」ってなってしまうので。。。
先頭に「'」をつけるのは最終手段。。。

Javaもしくはjrxmlで設定可能な方法がわからん。。
617デフォルトの名無しさん:2007/11/19(月) 16:11:43
java でeclipse を使ってコンパイルして実行しようとしています。Enumeration
という記述にエラーが出ているのですが
何がわるいのでしょうか・・・。 javaの6.0を使っています。もうEnumeration
はサポートされていないのでしょうか?

618デフォルトの名無しさん:2007/11/19(月) 16:14:20
何らかの流れ図は書くけど、フローチャートは書かんな。
学校ならまだしも。
619デフォルトの名無しさん:2007/11/19(月) 17:10:56
>>617
変数名にenumを使ってるんじゃないの?
620デフォルトの名無しさん:2007/11/19(月) 17:22:39
UML使った方がよくね
621デフォルトの名無しさん:2007/11/19(月) 17:45:12
OOPやテストファーストを習得すると、フローチャートを書くことはほとんどなくなるからな。
622デフォルトの名無しさん:2007/11/19(月) 17:55:42
ただフローチャートのロジックもたまにほしくなるときもある
残しておいて欲しくはあるね
623デフォルトの名無しさん:2007/11/19(月) 18:05:24
UMLのなかにフローチャートはなかったっけ?あんだけあるんだから一つぐらい似たようなのがあるんじゃないか?
624デフォルトの名無しさん:2007/11/19(月) 18:11:36
ある事はある
625デフォルトの名無しさん:2007/11/19(月) 18:12:20
アクティビティ図あたりで代用
626デフォルトの名無しさん:2007/11/19(月) 18:17:05
あんなもん意思疎通のための落書きみたいなもんなんだから
フローチャートを適当に UML っぽく書いときゃ良いんだよ。
627デフォルトの名無しさん:2007/11/19(月) 18:22:37
フローチャートは自分の頭の整理に使える
628611:2007/11/19(月) 18:23:51
今、シナリオライタ用エディタ作ってて箱書きの画面作るのにいわゆる"フローチャート
"を描画しなきゃいけないんだよ。

それでjavaから使えるライブラリがないか調べてたんだけど
java以外の言語ならいくつも見つかったんだけどjavaだけ見つからなくて聞いてみた。

eclipse周りか・・・あれeclipseに依存してなかったっけ?
とりあえず調べてみる。ありがとう。
629デフォルトの名無しさん:2007/11/19(月) 18:24:21
Tomcatについての質問ですが、
インストールし、Start.batを実行した後
 http://localhost:8080/に繋げようとしたのですが
つなげることができません。

会社のPC等で
ポート8080があいていないと繋げることができないのでしょうか?
630デフォルトの名無しさん:2007/11/19(月) 18:28:11
OOOSDK使うよろしあるよ
631デフォルトの名無しさん:2007/11/19(月) 18:30:12
>>629
まず logs の下の catalina.out を見ろ。失敗してるなら大抵そこに何か出てる。
そこが大丈夫そうならコマンドプロンプトから netstat -a と打ってローカルの 8080 で LISTEN してる
奴がいるか確認しろ。パーソナルファイアウォールとか入れてるなら一度気ってみれ。
632デフォルトの名無しさん:2007/11/19(月) 18:40:37
>>631
ありがとうございます。

8080はLISTENされてませんでした。

ウィルスバスターは自分の権限で切れないようになっていますので
管理者の方が戻ってきたら聞いてみようと思います。
633デフォルトの名無しさん:2007/11/19(月) 21:45:25
>>607-610
ありがとうございます
少し気が楽になりました
ちょっと調べてきます、
634デフォルトの名無しさん:2007/11/19(月) 22:56:02
>>628
Swingベースのグラフ描画ライブラリがいくつかあるので、それ使ってみたら?
JungとかJGraphとかあるよ。グラフって言っても、XYグラフじゃなくてグラフ理論のグラフね。
Jungはこの辺が参考になる。
ttp://www.techscore.com/tech/Others/Jung/index.html

EclipseベースでGEFとかUML2とか触るよりはとっつきやすいと思う。
635デフォルトの名無しさん:2007/11/19(月) 23:00:40
>>628
GEF使えばいいんじゃねーの
俺は使ったことないがな.
http://codezine.jp/a/article.aspx?aid=40
636デフォルトの名無しさん:2007/11/19(月) 23:02:53
500ですが、また質問させてください。
http://updas.net/up/download/1195480783.zip/attatch

とりあえずアニメーションを別クラスで作って、メインクラスでaddしたいんですが
うまいこと行きません。

↑はとりあえず自分なりに描いてみたソースです。
稚拙なものですが、Passを入れておきました。javaです。

お手数ですがどうすればアニメーションが表示されるようになるか
ご教授お願いします。
637628:2007/11/20(火) 00:26:43
thx!
JGraph使ってみる。
638デフォルトの名無しさん:2007/11/20(火) 01:27:16
JGpaphって初めて知ったけどなかなか良さそうだね
でもフローチャートくらいならJGraph使わなくても簡単に作れそうだな
639デフォルトの名無しさん:2007/11/20(火) 11:18:06
>>636
何したいのかよくわからんかった。Applet として作りたいのか、swing
使いたいのか。いろいろなところから切り貼りしてるの?

とりあえず、applet としては animation だけで動いているよ。
あと、animation なら swing.Timer が楽だと思う。
640636:2007/11/20(火) 12:36:01
>>639
最終的に、数値を入力さして、結果を計算するときと、数値が全部入力されてないとき
にアニメーションを数回動かしたいんです。(口が開いているのと閉じている絵です)

http://up.mugitya.com/img/Lv.1_up40590.jpg.html

色分けしてみました。
最終的にはJFrame(全体)に三つのJPanelを配置して身体に関するプログラムを作成したいんです。
その一部として、とりあえずJFrameにアニメーションをaddしたJPanelを配置してみたいんです。

説明が下手ですみません・・・
641デフォルトの名無しさん:2007/11/20(火) 12:56:09
シェイプを拡張して作った方がはやそう
642デフォルトの名無しさん:2007/11/20(火) 17:47:09
そういや俺今スプライトクラス作ってる。
643デフォルトの名無しさん:2007/11/20(火) 19:10:07
スプライトクラスって何?
644デフォルトの名無しさん:2007/11/20(火) 19:23:22
class Splite {
Rectangle rectangle;
Image image;
void draw(){…}
}
たぶんこういうの
645デフォルトの名無しさん:2007/11/20(火) 19:25:26
なるほど
646デフォルトの名無しさん:2007/11/20(火) 19:35:04
すまん人の書いたプログラム見ててわからないんだけど
>for(String s:wordList)
これかっこの中どういう意味?初歩的すぎてか調べにくくて
647デフォルトの名無しさん:2007/11/20(火) 19:37:04
648デフォルトの名無しさん:2007/11/20(火) 19:43:09
わかりました
649デフォルトの名無しさん:2007/11/20(火) 23:01:37
http://sakuratan.ddo.jp/uploader/source/date59661.zip

上記のHogeSrv内でクラスDBAccessのインスタンスを作って、
そのメソッドsetAccountDataで
DBAccessクラスのprivate変数idとpasswordに
データベースから検索した値を格納するプログラムなのですが、
setAccountData内で呼び出しているsetId,setPasword
の直後ではちゃんとidとpassに値が格納されているのに、
setAccountData後にHogeSrv内でidとpassを呼び出すとnull
になってしまいます。
本当に色々試したのですが、どうしても分からないのでどこが悪いか、
どなたか教えてください。
650デフォルトの名無しさん:2007/11/20(火) 23:11:17
ココに書き込んでる人でeclipse使いってどのくらいいます?
どうもとっつきにくいねこれ・・・
651デフォルトの名無しさん:2007/11/20(火) 23:14:04
え〜?なんで?

最強に使いやすいじゃん
652デフォルトの名無しさん:2007/11/20(火) 23:17:53
んじゃ、どのIDEが使いやすいっての?
自分はNetBeansに乗り換え中だけど。
653デフォルトの名無しさん:2007/11/20(火) 23:22:06
おれもnbのが好きだけど、エンタープライズ用途だとeclipseのが有利じゃないかな
プラグインが充実してるってのが一番の理由。

nbはエディタ的には例外catchを今のtryブロックに埋め込むって動作がサポートされればなぁ。
654デフォルトの名無しさん:2007/11/20(火) 23:23:55
>>649
cd.setId(cd.getResults(1, 1));
cd.setPassword(cd.getResults(1, 2));



this.setId(cd.getResults(1, 1));
this.setPassword(cd.getResults(1, 2));

じゃないの?
655デフォルトの名無しさん:2007/11/20(火) 23:27:22
>>650
ノシ
基本的にはEclipse使ってるけど,
たまにNetBeansも使う
656649:2007/11/20(火) 23:33:06
>>654
なるほど!ありがとうございます出来ました!!
何だかんだで今日のPM6時からやっていて
今までどうしても分からなかったので激しく助かりました!!
もう半泣きでしたが、これでやっと眠れます。
めんどくさい内容なのでスルーされるかと思いましたが、
ちゃんとしたレスをくれて本当にありがとうございました!
657デフォルトの名無しさん:2007/11/20(火) 23:34:51
大体何が Net なんだよ。
網豆って何だよ。
658デフォルトの名無しさん:2007/11/20(火) 23:51:39
>>653
6.0はサポート済
JavaEE関連だと確かにEclipseは色々充実。
でも、GUI周りとかはNetBeansは最強だし、TomcatやGlassFish使う分にはnbも充分機能する
何はともあれ6.0サイコー。

自分の中じゃ
NetBeans6.0 = Eclipse3.3 > Eclipse3.2 >>> NetBeans5.5 >>>>>>>> JBuilder
659デフォルトの名無しさん:2007/11/21(水) 00:02:21
最後は間違いないなw
660デフォルトの名無しさん:2007/11/21(水) 00:21:49
Javaだけで見るとnbもeclipseも大して変わらないけど、C++とかruby使い出すと全部一緒に出来るeclipseが断然有利。
Javaしか使わないならどっち使うかは個人の趣味かな。
661デフォルトの名無しさん:2007/11/21(水) 00:46:39
質問なのですが
package ccc;
//import ccc.cns_other;
public class cns_main{
public static void main(String args[]){
cns_other cns = new cns_other();
}
}
このようにして、importのコメントアウトをはずして、newを使わずにcns_otherの
コンストラクタを呼び出す方法はあるのでしょうか?
662デフォルトの名無しさん:2007/11/21(水) 00:50:42
さっぱり意味がわからない
importと、newを使わずにコンストラクタを呼び出すことの間にどういう関係があると思ったの?
なんでnewを使いたくないの?
663デフォルトの名無しさん:2007/11/21(水) 00:54:49
静的クラスにする。
664デフォルトの名無しさん:2007/11/21(水) 00:56:57
>>662さん
importは使います。
665デフォルトの名無しさん:2007/11/21(水) 01:01:53
JMFに関して質問してもよろしいでしょうか?

JMFで一つのカメラからキャプチャする事は可能なのですが
複数のカメラからキャプチャしようとすると失敗してしまいます。

現在は
Player player1 = Manager.createRealizedPlayer(new MediaLocator("vfw://0"));
Player player2 = Manager.createRealizedPlayer(new MediaLocator("vfw://0"));

このようにプレイヤーを生成して表示させています。
ediaLocatorの設定がおかしいのだとは思いますがなにかいい方法はありますでしょうか?
666デフォルトの名無しさん:2007/11/21(水) 01:02:03
なにがやりたいのかさっぱりわからん
667デフォルトの名無しさん:2007/11/21(水) 01:03:17
>>666>>661へ、な。
668デフォルトの名無しさん:2007/11/21(水) 01:03:19
やっぱりNetBeansが一番性に合ってるな
むかしはVisualCafeとか使ったけどカスタマイズが今一むずかった
eclipsはもう少しデフォルト機能をふやしてもいいような気がするし
3.n(いくつだったか忘れた)位から使ってる
669デフォルトの名無しさん:2007/11/21(水) 01:06:28
>>666

やりたいことは、複数のカメラからキャプチャして録画を行いたいと思っています。
new MediaLocator("vfw://0")を二つ作ってしまうと

java.io.IOException: Could not connect to capture device
java.io.IOException: Could not connect to capture device

となってしまいます
670デフォルトの名無しさん:2007/11/21(水) 01:11:30
>>661
どうしてnewを使いたくないのか述べよ
671デフォルトの名無しさん:2007/11/21(水) 01:13:11
new を使いたくない意図が今一分からん
672デフォルトの名無しさん:2007/11/21(水) 01:17:12
エスパーが通るよ
public class cns_other {
  public cns_other() {
   // なんかの処理
  }
}
を次のように書き換える
public class cns_other {
  public static void doSomething() {
   // なんかの処理
  }
}
で、mainは
cns_other.doSomething();
でnewをせずに、コンストラクタwが呼べる。

正解だったら俺スゲーwwww
673デフォルトの名無しさん:2007/11/21(水) 01:18:37
リフクレションでコンストラクタ呼べば一応できるな
674デフォルトの名無しさん:2007/11/21(水) 01:25:15
いまだにリフレクションを理解していない俺に三行で説明してくれ。
675デフォルトの名無しさん:2007/11/21(水) 01:28:25
クラスはメタ情報を持っている
メタ情報にはそのクラスがどんなメソッドを持っているかなどが含まれる
それらのメタ情報を使い、静的なコードではなく動的な形でメソッド等を使用できる

例えば、nameというフィールドを見つけたならば、getNameというメソッドを探して取得するなど
676デフォルトの名無しさん:2007/11/21(水) 01:32:09
クラスローダーってどういうときに使うもの?
何が起こるの?
677デフォルトの名無しさん:2007/11/21(水) 01:37:13
通常の開発では意識する必要はない。
使うのは特殊なフレームワークを実装する時など。

最近だとクラスのデータを呼び出される前にいじる時に使われる事が多い。
特定のメソッドの内容を書き換えてモックとして使用したり、デバック時にロギングを仕込んだり・・・
後は実行環境(ローカル)にないクラスだが、それをどっかから取得して使うとか。

何が起こるかって?
クラスがロードされるんだよ
678デフォルトの名無しさん:2007/11/21(水) 01:38:01
意識せずとも使ってるよ
679デフォルトの名無しさん:2007/11/21(水) 01:39:26
どうしてSwingって糞重くて使えないの?
680デフォルトの名無しさん:2007/11/21(水) 01:39:54
クラスローダにはクラスをアンロードしたりリロードする機能が必要と感じるのだがどうか
681デフォルトの名無しさん:2007/11/21(水) 01:42:52
>>680
アンロードは必要なほどクラスが多いのか?
リロードはHotDeployとか幾つか試みがあるよ
だけど、Hogeをリロードすると既に生成されていたHogeのインスタンスをどうするか?って問題が出るから限定された状況でしか使用できない
682デフォルトの名無しさん:2007/11/21(水) 01:44:07
Javaは静的な言語だから美しい(性的な意味で)
683デフォルトの名無しさん:2007/11/21(水) 01:44:10
>>679
V2C使ってるけど糞重くて使えないとは思わない
684デフォルトの名無しさん:2007/11/21(水) 01:45:52
>>679
てめーの実装が糞だから
685デフォルトの名無しさん:2007/11/21(水) 01:50:00
>>681
クラスメソッドのテストしたいときに、クラスをロード直後の状態に戻したいことがあって
テストケースの中でJavassistを使ってクラスを生成することで代替している
そうするとクラスローダにテストで使ったクラスのごみが沢山できてしまう
686デフォルトの名無しさん:2007/11/21(水) 12:09:42
宿題スレの方で課題を投げている者なのですが、あと少しで完成するかもしれないので
こちらで質問をさせてください。
(課題内容の方はこちらです。http://pc11.2ch.net/test/read.cgi/tech/1191108260/790

条件に沿ってトーラスを二つ表示するプログラムを組んでいるのですが、
現在、Shape3Dのトーラスを使用して、二つ表示されるようになっています。
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29893

これらをShape3Dのトーラスを使用せず、
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29892
ttp://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/95.java
これらのソースを使用して、トーラスを二つ描画したいのですが、どうすれば良いのでしょうか?
687686:2007/11/21(水) 12:46:14
宿題スレの方がやってくれていましたorz
ご迷惑をおかけしました。
688デフォルトの名無しさん:2007/11/21(水) 13:48:49
String.valueOf(int)
Integer.toString(int)

どっち派が多いんだぜ?
689デフォルトの名無しさん:2007/11/21(水) 13:59:28
>>688
参考までに。
public static String valueOf(int i)
> この表現は 1 つの引数を持つ Integer.toString メソッドによって返されるものとまったく同じです。
690デフォルトの名無しさん:2007/11/21(水) 14:00:30
>>688
Stringにしたいときはたいていprintxx系を使うときだから、ほとんど使わない。
強いて言えば下かな。
691デフォルトの名無しさん:2007/11/21(水) 14:02:05
int a=1,b=2,c=3;
hoge(""+a+b+c);

こういう場合って計算順序が
hoge(((""+a)+b)+c);
っていうように前方からみたいに決まっていますか?
文字列"123"としたいのですが、
計算順序が決まっていなくて環境によって"6"みたいになると困るので教えてください。
692デフォルトの名無しさん:2007/11/21(水) 14:06:56
>>691
+は左から結合していくと決まっているので安心して使ってくれ
693デフォルトの名無しさん:2007/11/21(水) 15:08:33
>>692
レスありがとうございます。
地道に全部括弧で括るのも読みづらくて仕方ないので安心しました。
694デフォルトの名無しさん:2007/11/21(水) 15:12:59
後から見た人間が優先順位で迷うような書き方はやめたほうが良い。
695デフォルトの名無しさん:2007/11/21(水) 15:41:07
無限ループの中で、ServerSocketのaccept()メソッドを使ってクライアントからの接続を待機しているのですが、
いきなりイベントなどでServerSocketのclose()メソッドを呼び出すとエラーになります。

どうすればちゃんと動くようになるのでしょうか?
696デフォルトの名無しさん:2007/11/21(水) 15:49:33
チラ裏:

最新のJDKでも、WindowsのNFS依存の問題で、
java.io.File#canRead()と、canWrite()は
まともな値を返さないのね。。。
とりあえず、FISとFOSを使って回避したけど、
なんか気持ち悪いな。。。
697デフォルトの名無しさん:2007/11/21(水) 15:50:58
どういう「ちゃんと動く」を期待しているのか書かないと、そりゃそーだとしか答えようがないのだが。
698デフォルトの名無しさん:2007/11/21(水) 16:02:16
>>697
このエラーについて、ちょっと調べてみました・・・

プログラムをそのまま動かすことはできるのですが、SocketException が発生するので気持ち悪いです。
これを発生しないようにすることはできるのでしょうか?
699デフォルトの名無しさん:2007/11/21(水) 16:06:15
コマンドライン引数であたえられた文字列を
縦書きに出力するって言う問題でて詰まりです。

一応プログラム中で指定すれば縦表示は出来るのですが
与えられた〜が無理です。ヘルプお願いします。
700デフォルトの名無しさん:2007/11/21(水) 16:09:27
>>698
外からサーバソケットをクローズする前にフラグを立てれ。
IOException が発生した時にそのフラグが立っていれば 「正常終了」

private ServerSocket serverSocket = ...;
private boolean gracefulClose = false;

public void close(){
  gracefulClose = true;
  serverSocket.close();
}

public void run(){
  try{
    while(true){
      Socket socket = serverSocket.accept();
      …
    }
  } catch(IOException ex){
    if(! gracefulClose){
      throw ex;
    }
  }
  return;
}
701デフォルトの名無しさん:2007/11/21(水) 16:10:43
>>699
日本語でおながいします。
702デフォルトの名無しさん:2007/11/21(水) 16:11:52
>>699
そりゃ単純に文字列の入力の問題なんじゃないの?
"標準入力 java"でググってみな。
703デフォルトの名無しさん:2007/11/21(水) 16:15:56
>>700
なるほど・・・
catchの中でthrowを使うのは初めてです。
ありがとうございました。
704デフォルトの名無しさん:2007/11/21(水) 16:21:30
学校で外部データから読み込んでプログラミングする宿題がでたんですが
学校では読み込めたものが家では読み込めなくなっていました。

Data A = new Data("test.txt",0);
↑こういう文字列で学校では普通に読み込んでました
バージョンチェックしたところ学校では1.6.0、家のパソコンは1.6.0_03でした。
わかる方いましたら宜しくお願いします。
705デフォルトの名無しさん:2007/11/21(水) 16:22:12
ちなみに本例外発生は仕様です。
ServerSocket.close
> このソケットを閉じます。 現在 accept() でブロックされているすべてのスレッドが SocketException をスローします。
706699:2007/11/21(水) 16:24:48
解決しました。どうもです
707デフォルトの名無しさん:2007/11/21(水) 16:24:52
>>704
コンソールには、どんなエラーなり例外なりが出てるか。
708デフォルトの名無しさん:2007/11/21(水) 16:33:01
>>704
カレントディレクトリに本当にそのファイルがあるのか?
System.out.println(new File("test.txt").exists());
で確認すれ。
709デフォルトの名無しさん:2007/11/21(水) 16:34:48
>>707

test1.java:9: シンボルを見つけられません。
シンボル: クラス Data
場所 : test1 の クラス
Data A = new Data("test.txt",0);

こんな感じです。
710デフォルトの名無しさん:2007/11/21(水) 16:40:10
>>709
trueと表示されました。
711デフォルトの名無しさん:2007/11/21(水) 16:42:39
Data.java というファイルが必要とか言うことは無いの?
712デフォルトの名無しさん:2007/11/21(水) 16:43:41
コンパイルエラーかよ orz
その Data クラスとやらは学校から持ってきてんのか?
713デフォルトの名無しさん:2007/11/21(水) 16:55:41
>>711->>712
Data.javaというファイルがないと無理って事ですね。
すいません、持ってきてないです。
明日学校で調べてみたいと思います。

しょうもない質問ですいません。
有難う御座いました。
714デフォルトの名無しさん:2007/11/21(水) 17:35:57
初心者がスーパーハカーになれる、おすすめのサイト教えて。
将来的にはWebで使っていきたい。
715デフォルトの名無しさん:2007/11/21(水) 17:37:02
氏ねw
716デフォルトの名無しさん:2007/11/21(水) 17:40:57
Google
717デフォルトの名無しさん:2007/11/21(水) 17:41:10
>>714
スレ違い
718デフォルトの名無しさん:2007/11/21(水) 17:42:44
初心者が大歓迎されなかった件について
719デフォルトの名無しさん:2007/11/21(水) 17:57:42
初心者ですらないからな
720デフォルトの名無しさん:2007/11/21(水) 18:29:53
もうこのやり取り秋田
初心者大歓迎なんつっても中味はム板
721デフォルトの名無しさん :2007/11/21(水) 19:14:35
ゲーム作りたい!っと思っているんですけど、
CとC++、どっちの言語がいいですかね。

(みんなC++はCを覚えてからって言うんですけど・・・)
722デフォルトの名無しさん:2007/11/21(水) 19:19:28
>>721
スレタイ
723デフォルトの名無しさん:2007/11/21(水) 19:20:21
初心者のためのプログラミング言語ガイド Part6
http://pc11.2ch.net/test/read.cgi/tech/1193132235/
724デフォルトの名無しさん:2007/11/21(水) 20:13:19
JavaDBの中でユーザを設定できるDBってありませんか。
本番は商用DBを考えてますが、CD一枚でデモできればと考えています。
725デフォルトの名無しさん:2007/11/21(水) 20:27:05
Stringの文字数を得るのはどうするのが定石ですか?
lengthはコードポイント単位ですよね。
726デフォルトの名無しさん:2007/11/21(水) 20:29:43
String.codePointCount()
727デフォルトの名無しさん:2007/11/21(水) 20:48:28
コードポイント操作はCharSequenceでサポートしてくれたらよかったのに。
自分でもカウントできるけどcharAtを経由するのはコストが勿体無いお化け。
728デフォルトの名無しさん:2007/11/21(水) 21:38:55
>>724
H2
729デフォルトの名無しさん:2007/11/21(水) 21:47:13
725です。
> lengthはコードポイント単位
はコードユニット単位でした、すみません。

>>726
ありがとうございます。
文字列全体の長さが欲しいときは
str.codePointCount(0, str.length())
とするんですかね。
730デフォルトの名無しさん:2007/11/21(水) 22:46:41
>>729
気休めの薬。

Unicode 4.0 の補助文字のサポート Supplementary Char
ttp://www.javainthebox.net/laboratory/J2SE1.5/MiscAPI/SupplementaryChar/SupplementaryChar.html
731デフォルトの名無しさん:2007/11/21(水) 23:44:06
jp.co.foo.common
jp.co.foo.product01
jp.co.foo.product02
com.bar.*

上記のようなpackage構成で、product01とproduct02からcommon内の
classを使用したいがために、common内のclassをpublicにしてしまうと
com.barなpackageからも見えてしまうよね。

このような、管理上の理由で社内においてはpackageを分けたいけど、
社外には使わせたくない場合、何か定番なやり方ってあるものなのかしら。
732デフォルトの名無しさん:2007/11/21(水) 23:50:48
>>731
社外にJar(バイナリ)を提供しなければいいじゃん
ちなみに、勝手に使っても変更の可能性もありますし、保証しませんので自己責任でってのがEclipseのプラグインでの対応

一応、SE7の新機能の1つとしてパッケージのアクセス制御的なものは予定されているらしいが。
733デフォルトの名無しさん:2007/11/22(木) 00:05:28
>>732
すいません。説明足らずでした。

jp.co.foo.product01や02は、部品として売り物にしたいと
たくらんでいるのです。
(product01や02内のいくつかのclassをpublicにし、com.bar内から
好きに使用してもらいたいな、と)

生のclassを直接さわらせる以上、1つのpagkageにまとめるしかないんですね。

開発tool側で何とかできるか試行錯誤してみます。

ありがとうございました。
734デフォルトの名無しさん:2007/11/22(木) 00:30:43
Scanner scanner = new Scanner(System.in);
String a;
double b,c;
double max = 0;
while(scanner.hasNext()){
a = scanner.next();
b = scanner.nextDouble();
c = scanner.nextDouble();

if(max < c / b){
maxman = a;
max = c/b;
}
}

sysout(maxman);

というコードなのですが、

John 100 100
Bill 100 200
みたいなコンソールの入力を受けて、前者/後者の数字の数が一番大きかった人を出力したいのですが、エラーっぽいのが出てうまくいきません。どうしたらいいんでしょうか?
735デフォルトの名無しさん:2007/11/22(木) 00:36:04
> エラーっぽいの
その内容をまずよく見ることだな
736デフォルトの名無しさん:2007/11/22(木) 00:40:37
それか自分がエスパーになることだな。
737デフォルトの名無しさん:2007/11/22(木) 00:40:38
>>733
要は実装をクローズにしたいならばMS系で実装しろ、ということだ
commonパッケージにどんな技術が詰め込まれているかはしらないが、
そのパッケージを利用しようとする奴らは、そんな製品買わずとも自分で作れるかオープンソースから拾ってこれるだろうな
738デフォルトの名無しさん:2007/11/22(木) 00:42:12
javaだしね。何気にOSS多い。
739デフォルトの名無しさん:2007/11/22(木) 00:42:52
エラーっていうか、明確なエラーじゃなくて、なんか処理がとまる(?)んですよね。
デバッグで一行ずつ進めていっても途中で止まる・・・
740731,733:2007/11/22(木) 00:49:04
>>737
> 要は実装をクローズにしたいならばMS系で実装しろ、ということだ
そういうことですよね。

たいしたものではないんですけど、保証できないものは
見せないにこしたことはないかな、と。
741デフォルトの名無しさん:2007/11/22(木) 00:49:18
だから何?としか言いようがないぞ。
それじゃ状況が伝わらない。
742デフォルトの名無しさん:2007/11/22(木) 00:49:57
>>739
743デフォルトの名無しさん:2007/11/22(木) 00:53:24
>>740
パッケージプライベートにして new の代わりにリフレクション使って構築しろ。
インターフェースだけ公開しておけば良い。
744デフォルトの名無しさん:2007/11/22(木) 00:53:32
>>740
使う側の自己責任が原則
勝手に使うならば使っていいけどサポート対象外でいいんじゃね?

そんな独自フレームワーク使わされた事あるけど、問題あってもソースは開示しねーわ、バグだらけだわ、使いずらいわ、糞高いわ、最悪だった思い出
745デフォルトの名無しさん:2007/11/22(木) 00:53:49
ですよね・・・

要するにwhileから抜け出せなくて出力できないってことです・・・
よくわかんない質問ですいません
746デフォルトの名無しさん:2007/11/22(木) 00:54:37
>>745
CTRL+Z を押せ。
747デフォルトの名無しさん:2007/11/22(木) 00:55:19
>>743
リフレクション使って使用された時はどうするの?
言語仕様的に完全に隠蔽する事はできないんだよ
結局のところpublicだろうがなんだろうが、売るならばサポート対象はどこまでかを明確にするだけの話
748デフォルトの名無しさん:2007/11/22(木) 00:58:43
>>747
御高説どうも。
責任範囲の明確化を設計に反映するだけの話だが伝わらなかったのか?
749デフォルトの名無しさん:2007/11/22(木) 00:59:46
>>745
aがexitだったらbreakするとかどうにでもなるだろ……
750デフォルトの名無しさん:2007/11/22(木) 01:17:14
>>748
インターフェイスが責任の範囲なんて聞いたことがないが?
751デフォルトの名無しさん:2007/11/22(木) 01:17:47
そもそもコードがでたらめすぎる。
752デフォルトの名無しさん:2007/11/22(木) 01:18:26
>>745
753デフォルトの名無しさん:2007/11/22(木) 01:19:55
>>748
この場合、「責任範囲の明確化を設計に反映」するには通常の手段ではアクセスできないような作りにする必要があると思う。
言語仕様で規定されているやり方で取得できるのなら「責任範囲の明確化を設計に反映」できていないんじゃないかな。
>>747に伝わらなかったのもしょうがないと思うよ。
754デフォルトの名無しさん:2007/11/22(木) 01:35:28
>>750
君はドキュメントにどの機能を使っていいか/悪いかの責任範囲記述したら
あとは全部 public のコンクリートクラスで提供するのかい? そんな馬鹿なことはしないだろう。
やって良いこと/悪いことはインターフェースに適切に反映されなければならない。
どうしても反映しきれない時にはべからず集で逃げるのだが、なるべくそれは避けるべき。

>>753
ドキュメントは 「リフレクション使った場合は保証せず」 というしごく常識的な一言で済む。
誰もインターフェースだけで責任範囲を明示するとは言っていない。
755デフォルトの名無しさん:2007/11/22(木) 01:42:44
ImageiconオブジェクトをPostgresに登録、出力するにはどうすればいいですか?
また、画像をそのものと、画像から作ったImageiconではデータベースからの取り出しはどちらが速いですか。
756デフォルトの名無しさん:2007/11/22(木) 01:43:07
>>753
Reflection 使ってアクセス制限破るのは通常の手段とは言わないと思う。
757デフォルトの名無しさん:2007/11/22(木) 01:57:47
>>755
ImageIcon をそのまま保存
 → ObjectOutputStream 使ってシリアライズして得たバイナリを保存

画像そのものを保存
 → 元のファイルをのバイナリを読み込んで保存
 → プログラムで描画した結果なら ImageIO.write() でいったん PNG か何かでファイル化

データの汎用性考えたら一般的な画像ファイルの形式が良い。ImageIcon そのままじゃ
圧縮かかってるかも分からんし (やったことない)。あと数 kB 程度なら BYTEA 型で良いが
数十 kB 超えるようなら OID 型 (BLOB) 使ったほうがいい。
758731,733:2007/11/22(木) 02:22:35
みなさん、ありがとうございました。
あげていただいたkeywordで調べてみると、興味深い世界が広がっていました。

754さんの
> ドキュメントは 「リフレクション使った場合は保証せず」 というしごく常識的な一言で済む。
も、非常に魅力的です。

明日もうちょっと調べてみようと思います。

ではおやすみなさい。
759デフォルトの名無しさん:2007/11/22(木) 02:22:40
Map<String, Integer>
と書いたときの、<String, Integer>の部分は何と呼ばれてますか。
型名 = クラス名 + ???
760デフォルトの名無しさん:2007/11/22(木) 02:30:35
pair

hash, element

key, value

generics
761デフォルトの名無しさん:2007/11/22(木) 02:57:35
質問の仕方が悪かったようです。
Map<K,V>の「<K,V>」の部分、あるいはList<E>の「<E>」の部分のことを一般に何と呼んでいますか。
「keyとvalue」とか「要素」とかではなく、文法上あるいは言語仕様での呼び方です。
762デフォルトの名無しさん:2007/11/22(木) 03:20:59
パラメータ化された型とか。
763デフォルトの名無しさん:2007/11/22(木) 04:33:25
ジェネリック型とか総称型とか
764デフォルトの名無しさん:2007/11/22(木) 07:03:59
>>761
だから念のため generics も書いておいたんだよ
765デフォルトの名無しさん:2007/11/22(木) 13:21:54
ある一定の円の中に点をランダムに配置するにはどうすれば良いのでしょうか?
766デフォルトの名無しさん:2007/11/22(木) 13:24:28
x = Math.random();
y = Math.sqrt(r*r - x*x);
767デフォルトの名無しさん:2007/11/22(木) 13:25:14
あぁ円周上だ orz
768デフォルトの名無しさん:2007/11/22(木) 13:26:24
x = Math.random();
y = Math.random(Math.sqrt(r*r - x*x));
これでいいのかな
769デフォルトの名無しさん:2007/11/22(木) 13:27:33
連投スマソ

x = r * Math.random();
y = Math.random(Math.sqrt(r*r - x*x));

こうですね
770デフォルトの名無しさん:2007/11/22(木) 13:30:49
>>769
ありがとうございました。
早速プログラム作ってきます。
771デフォルトの名無しさん:2007/11/22(木) 13:31:57
なんかダメポだな。どういうギャグだ。

もっと素直にやった方がいいよ。

theta = 2*Math.PI*Math.random();
x = r*Math.cos(theta);
y = r*Math.sin(theta);

とか。

772デフォルトの名無しさん:2007/11/22(木) 13:35:11
773デフォルトの名無しさん:2007/11/22(木) 13:36:53
もっと素直にやった方が良いよ

do{
x = r * Math.random();
y = r * Math.random();
}while(x * x + y * y > r * r);

とか
774デフォルトの名無しさん:2007/11/22(木) 13:38:31
1/4円ですよね?
775デフォルトの名無しさん:2007/11/22(木) 13:39:48
間違えた

do{
x = r - 2 *r * Math.random();
y = r - 2 * r * Math.random();
}while(x * x + y * y > r * r);
776デフォルトの名無しさん:2007/11/22(木) 13:40:45
theta = 2.0 * Math.PI * Math.random();
a = r * Math.random();
x = a * Math.cos(theta);
y = a * Math.sin(theta);
777773:2007/11/22(木) 13:42:23
>>776
サンクス。俺も書こうと思ったが、円周と読み違えていた。
778デフォルトの名無しさん:2007/11/22(木) 13:45:24
779デフォルトの名無しさん:2007/11/22(木) 14:00:33
>>776
円の中心に近づくほど点の密度が高くなるぞ。
780デフォルトの名無しさん:2007/11/22(木) 14:10:02
>>779
どういう意味で一様かという問題だよね。(元々指定は無いが)
極座標で一様で、xy 座標では一様ではないな。
xy 座標で一様にするなら

>>775 的に (775 は円外だわな)

x = -r + 2*r*Math.random();
y = -r + 2*r*Math.random();
if( x*x+y*y<r*r )
do something;

という感じかな。

781デフォルトの名無しさん:2007/11/22(木) 14:50:44
theta = 2.0 * Math.PI * Math.random();
a = r * Math.sqrt(Math.random());
x = a * Math.cos(theta);
y = a * Math.sin(theta);
で、一様にならない?
782デフォルトの名無しさん:2007/11/22(木) 15:13:31
783781=779:2007/11/22(木) 15:33:45
>>782
一様分布にするために、Math.sqrtしてみたんだけど間違っていますか?
784デフォルトの名無しさん:2007/11/22(木) 17:26:18
θの変化に対する面積変化の比を
半径に対する位置で逆比にしたんですね
785デフォルトの名無しさん:2007/11/22(木) 18:05:26
jsp内で(hoge.jsp)
<jsp:useBean id="Flag" class="java.lang.Boolean" scope="session" />

<%
try{
if(Flag!=true){
%>
って書くと「useBeanのクラス属性 java.lang.Boolean の値が無効です」というエラーが出るのですが、原因は何なのでしょうか?

サーブレットでは
HttpSession session=req.getSession();
session.setAttribute("Flag",true);
ServletContext sc=getServletContext();
RequestDispatcher rd=sc.getRequestDispatcher("/hoge.jsp");
rd.forward(req, res);

というような記述があり、サーブレットを介してこのページに来ると処理が変わるようにしたいのです。
786デフォルトの名無しさん:2007/11/22(木) 18:11:29
Boolean にデフォルトコンストラクタが定義されてないからだと思う。
class の代わりに type にしたら良いんじゃないか。
あるいは <jsp:useBean>, スクリプトレットの代わりに JSTL 使って
↓のように書いたほうが良いんじゃないか。

<c:if test="${Flag}"> … </c:if>
787デフォルトの名無しさん:2007/11/22(木) 18:54:28
>>786
ありがとうございます、言われたあたりをググってみたのですが
Booleanは引数有りのコンストラクタだけが定義されてるからダメなのですね。

Boolean Flag=(Boolean)session.getAttribute("Flag");
if(!Flag){


これで何とか出来ることは出来たのですが、
typeの使い方がイマイチ分からず、単純にclassをtypeにすると
javax.servlet.ServletException: java.lang.InstantiationException: bean isLogin not found within scope
というエラーになってしまいます。
typeを使う場合ってどう書いたら良いのでしょうか?orz
788デフォルトの名無しさん:2007/11/22(木) 19:18:02
>>783
それで密度が一様になるのかい?

a = r√X
θ = 2πY

として、X:0から1, Y:0から1で積分したときに円の面積の公式と一致するかい?
789デフォルトの名無しさん:2007/11/22(木) 19:28:24
四角で点を描画してから円で切り取れば?
790デフォルトの名無しさん:2007/11/22(木) 19:36:11
>>789
それいいね
791デフォルトの名無しさん:2007/11/22(木) 20:28:04
Javaによるアルゴリズム事典はめちゃくちゃ役に立ちました。
792デフォルトの名無しさん:2007/11/22(木) 21:24:21
Apache License 2.0とLGPLを混在させる場合は、
最低限LGPLをバイナリだけ留めればくっつけても大丈夫ですか?
793デフォルトの名無しさん:2007/11/22(木) 22:03:46
javaの場合LGPLをどう解釈するかがそもそも問題だな。
Apache License 2.0とGPLの組み合わせはアウトだが。

LGPLはどうなんだろうね。
794デフォルトの名無しさん:2007/11/23(金) 00:47:38
Windowsに限定しちゃうかも知れないけど、
%USERPROFILE%\Local Settings\Application Data
↑のディレクトリの中に変なGUID名のディレクトリが作られてて
中を見るとJ2SDK5.0のインストーラみたいなのが入ってる。

うちの環境にはJDK6も入ってるけど、5系だけゴミ?があるので気になります。
これって削除しちゃっていいのかな?
795デフォルトの名無しさん:2007/11/23(金) 01:05:36
http://www.groovy-number.com/java/sample/GossipMaker.html
このページの

System.out.printf("%s!! %s %s!?%n", M00(L00), M00(L01), M00(L02));


%s!! %s %s!?%n
の部分が分かりません。

%はたぶん、エスケープ文字だとは思うのですが、
捜し方が悪いのかエスケープ文字\の事しか見つからずで、
なにかヒントだけでもあれば…
796デフォルトの名無しさん:2007/11/23(金) 01:05:58
>>794
5.0アンインストールしたの?
Windowsのクリーンアップウィザードは使ったの?

削除してトラぶるくらいならば残しておいていいと思うが・・・
復元できる自信あるなら削除汁
797デフォルトの名無しさん:2007/11/23(金) 01:08:04
>>795
String.format() のドキュメント嫁

5.0で導入された拡張フォーマットという奴だ。
, M00(L00), M00(L01), M00(L02) の部分が文字列として%sに置き換わる
798デフォルトの名無しさん:2007/11/23(金) 01:08:42
799デフォルトの名無しさん:2007/11/23(金) 01:09:16
>>794
削除するとアンインストールが出来なくなる
いらないんだったらアンインストールしてから(すでにしてるなら)
削除すれば問題ない

問題あるのはアンインストールしたのに
それらのファイルがなくならないJavaの仕様
800デフォルトの名無しさん:2007/11/23(金) 01:37:37
http://java.sun.com/javase/ja/6/docs/ja/api/java/util/Formatter.html

%sはsがたぶんストリングという事で、
ああ、!!と!?はふつうに文字なのか…
でnは改行と。

理解できました!ありがとやんした。
801デフォルトの名無しさん:2007/11/23(金) 01:44:43
検索掛けて分かりましたが、%sとか%nとかって「変換指定」と呼ばれててC言語とかではメジャーなものみたいですね。
802デフォルトの名無しさん:2007/11/23(金) 03:24:40
ファイルの名前の変更(拡張子の追加)をしたい。
JFileChooser filechooser = new JFileChooser();
filechooser.addChoosableFileFilter(new javax.swing.filechooser.FileFilter()
{
public boolean accept(File file) {
if(file.isDirectory()) return true;
return file.getName().toLowerCase().endsWith(".jpg");
}
public String getDescription() {
return "JPEGファイル(*.jpg)";
}
});
int selected = filechooser.showSaveDialog(filechooser);
if (selected == JFileChooser.APPROVE_OPTION){
File file = filechooser.getSelectedFile();
String fileName = file.getName();
int i = 0;
for(; i< fileName.length(); i++) {
if(".".equals(fileName.charAt(i))) break;
}
if(i == fileName.length()) {
File newFile = new File(fileName + ".jpg");
file.renameTo(newFile);
}
}
こんなコードを書いてみました。しかし、file.renameTo(newFile);の部分が常にfalseを返してファイルの名前を変更してくれません。
どうしたらよいでしょうか?

Win XP
javac 1.6.0
803デフォルトの名無しさん:2007/11/23(金) 03:35:05
どっかでそのファイル開きっぱなしにしてるんじゃないのか?
804デフォルトの名無しさん:2007/11/23(金) 04:00:36
javaからcabochaを使うにはどうすればいいのでしょうか?
805デフォルトの名無しさん:2007/11/23(金) 04:02:07
質問です。

メソッドの引数部分の評価される順序は左から右と決まっていますか?
例えば、
public class MethodArgOrder {
public static void main(String[] args) {
int i=0;
method(++i, ++i, i++, ++i, ++i);
}
static void method(int num1, int num2, int num3, int num4, int num5) {
System.out.format("%d, %d, %d, %d, %d%n", num1, num2, num3, num4, num5);
}
}
というようなプログラムを実行した場合、環境によらずに必ず
1, 2, 2, 4, 5
と出力されるんでしょうか?
806802:2007/11/23(金) 04:07:22
>>803
いいえ。ファイルは新規作成しています。

すいません。1行目の書き方が悪かったようなので1行目だけを下の文に脳内変換してください。
新しいファイル、例えばそのフォルダ内にはない「hoge」ファイルを作ろうとしたとき、そのファイルの拡張子が何も指定されていない場合は".jpg"にしたいと考えています。
807デフォルトの名無しさん:2007/11/23(金) 04:09:01
>>805
仮にそういう出力になったとしても、その書き方は自分を苦しめるだけ。

というか、そんなに気になるなら言語仕様読めよ。と。
808デフォルトの名無しさん:2007/11/23(金) 04:18:29
>>805
ちょっと前にも演算子の結合性に関して環境によらずうんぬんっていう質問があったな
評価順序が自分で分からないような書き方はするな
ワンライナー主義はどうしても詰めて書かざるをえない時以外は弊害でしかない
>>807の言うように言語仕様を手軽にwebで読めるんだから質問する前に読め
809デフォルトの名無しさん:2007/11/23(金) 04:26:19
>>805は例として出してるんだろうから、良く無い書き方云々は関係ないじゃん
言語仕様嫁ってそりゃそうだろうけど、なんだかなあ
810デフォルトの名無しさん:2007/11/23(金) 04:34:06
>>805
まあ、javaはある環境での評価順序が他の環境で異なる順序になったのでは、
マルチプラットホームの名が廃るので、その手のことに関しては、
ひとつの環境での結果は他の環境でも同じになるように仕様で明確になっている。
どちらにせよjavaを勉強している身ならば言語仕様嫁は基本だと思う。
811デフォルトの名無しさん:2007/11/23(金) 04:37:15
例として出したとしても質問しているからにはそういう書き方をする気満々な気がするけどな
それとも参考書とかがそういう書き方なのか?
812デフォルトの名無しさん:2007/11/23(金) 04:44:25
>>806
存在しないfileをnewFileにリネームはできないと思うよ。
file.renameTo(newFile);じゃなくて単にfile = newFile;にして、
>>802のコード以降の部分でfileを生成すればいい。
File#renameToはファイルの名前を変更するメソッドであって、
Fileクラスのインスタンスがもつ抽象パス名を変更するメソッドではないと思う。
813デフォルトの名無しさん:2007/11/23(金) 05:06:19
>>806
file => "C:\hogehoge\foo" だとしたとき、
newFile => "foo.jpg"となるのでは?(だからrename失敗)
newFile = new File(file, filename + ".jpg"); でうまくいくかも
814812:2007/11/23(金) 06:06:37
ディレクトリのことを忘れてたorz
既にfileが存在していているのなら、>>813でうまくいくと思う。
renameToに失敗したのはnewFileとfileが違うドライブのパスだからだと思う。
それとも、newFileが既に存在しているからか。
もしrenameToの時点でまだfileに対応するファイルが存在していないのなら、
>>813のようにnewFileを生成したあとで、fileにnewFileを代入して、
拡張子が付いていたfileともども、fileとしてファイルを作ればいいと思う。
815デフォルトの名無しさん:2007/11/23(金) 06:17:18
foo.jpgっていうフォルダが出来てるんじゃね?
816デフォルトの名無しさん:2007/11/23(金) 10:49:31
>>796, >>799
レス,txhです。アンインスコ済みだったので消しちゃいました。

ふぅ、やっとデフラグができるw
817デフォルトの名無しさん:2007/11/23(金) 11:20:45
>>805
>メソッドの引数部分の評価される順序は左から右と決まっていますか?
決まっている。

15.7.4 Argument Lists are Evaluated Left-to-Right
In a method or constructor invocation or class instance creation
expression, argument expressions may appear within the parentheses,
separated by commas. Each argument expression appears to be fully
evaluated before any part of any argument expression to its right.
818デフォルトの名無しさん:2007/11/23(金) 14:52:51
>>812,>>813,>>814,>>815
ありがとうございます。できました。
>>813,>>814の言われるとおりファイルパスが間違っていました。
以下のように書き換えたところできました。
File newFile = new File(file.getPath().substring(0, file.getPath().length() - 1 - i), fileName + ".jpg");
最後に質問にお答えいただいたみなさま本当にありがとうございました。
819デフォルトの名無しさん:2007/11/23(金) 15:22:12
>>818
出来たなら無駄足になるが、>>813 はうまくいかなくて、
new File(file.getParentFile(), filename + ".jpg"); にする必要がある。

ま、getParentFile は親ディレクトリが無いときなどに null になるので、
直で引数に埋め込むのはどうかと思うけど。
820デフォルトの名無しさん:2007/11/23(金) 15:54:16
Javaでコード書いてるといつのまにかnullチェックばかりになってるのな
なんとかならんのかな
821デフォルトの名無しさん:2007/11/23(金) 15:58:11
こらこら、Cで書こうが同じだろ。
Design By Contractはプログラム設計の基本ルールだよ。
822デフォルトの名無しさん:2007/11/23(金) 15:58:17
とにかくメソッドの引数のnullチェックをきっちりやってたら
他のnullチェックは減る気がする
823デフォルトの名無しさん:2007/11/23(金) 16:17:34
NullPointerExceptionをcatchして継続処理書くのと
nullチェック処理しながらプログラム書くのと
どっちがいいの?
824デフォルトの名無しさん:2007/11/23(金) 16:21:05
ぬるぽはキャッチしちゃダメ
すごく遅くなるよ
825デフォルトの名無しさん:2007/11/23(金) 16:28:54
RuntimeExceptionは補足したらだめ。
運用する上で起こりえる例外がException
それが起こりえなければRuntimeExceptionだ。

(でもisParsableみたいなのが無くてNumberFormatException食らうのは困りもの)
826デフォルトの名無しさん:2007/11/23(金) 17:20:36
おまいらそんなに null 値で挙動変えるようなプログラム書いてるのか?
ファイルや DB、ホストみたいなシステム間 I/F はしゃーないけど
Java どうしの呼び合いならなるべく null 不許可 + assert の方向で設計しないか。
827デフォルトの名無しさん:2007/11/23(金) 17:24:43
単純に説明する場合、public, protectedはぬるぽ、privateはassertって伝えてる。
別にassertは引数チェックだけに使うわけじゃないけど、事は足りるかなと。
828デフォルトの名無しさん:2007/11/23(金) 17:24:53
外に見せるものは別にしても、クラス内部でフィールドのnullチェックとかは普通にやるだろ
829デフォルトの名無しさん:2007/11/23(金) 17:29:41
NullObjectパターンの真価は、C出身の人には伝わりにくいよね。
getFooList()みたいなメソッドで対象が無いときにnullを返す人が多い。
0要素のオブジェクトを返せば for (String s : bar.getFooList()) とか書けるのに。
830デフォルトの名無しさん:2007/11/23(金) 17:30:05
null入れたくないフィールドはセッターの方でガードするしな
831デフォルトの名無しさん:2007/11/23(金) 17:30:34
NumberFormatExceptionは拾いたくなけど拾うしかないという意味でしょうか?
832デフォルトの名無しさん:2007/11/23(金) 17:31:12
たぶんそう
833デフォルトの名無しさん:2007/11/23(金) 17:32:25
Javaの数値チェックはライブラリ使わなきゃそうなるね。
C#でいうとこのTryParseがあるべきなんだけど。
文字列整数化ってコスト高いと思うんだけど、サポートせんのかね?
834デフォルトの名無しさん:2007/11/23(金) 17:33:38
つうか手動チェック不可能なのにランタイム例外飛ばされるのはどうなんだ
まあよく使うからあえてそうやってるんだろうけど
835デフォルトの名無しさん:2007/11/23(金) 17:34:42
文字列で別の型のリテラル表現を書いてて、それをパースするんだから
用途から考えてパース処理はシステム間I/Fのはずなんだけどね。
836デフォルトの名無しさん:2007/11/23(金) 17:37:59
標準のは
あらかじめ失敗したら0入れてくれっていうオプションで
Parseできないですよね絶対例外出ますよね
金融系の用途が多いからそういう設計になってるのかな
837デフォルトの名無しさん:2007/11/23(金) 17:40:22
ParseResult result = tryParse(str);
if (result.succeed()) value = result.getValue();
無理矢理C#みたいにやるならこんな感じ?
出力引数欲しいね
838デフォルトの名無しさん:2007/11/23(金) 17:44:42
ParseResult<E>で受けてラップオブジェクトを返す仕様かな。
その仕様でもNumberFormatExceptionを囲うより効率が良さそうに思える。
839デフォルトの名無しさん:2007/11/23(金) 17:48:55
// 配列dのleftからrightまでの間のデータ列をクイックソートする
static void quick_sort(int[] d, int left, int right) {
if (left>=right) {
return;
}
int p = d[(left+right)/2];
int l = left, r = right, tmp;
while(l<=r) {
while(d[l] < p) { l++; }
while(d[r] > p) { r--; }
if (l<=r) {
tmp = d[l]; d[l] = d[r]; d[r] = tmp;
l++; r--;
}
}
quick_sort(d, left, r); // ピボットより左側をクイックソート
quick_sort(d, l, right); // ピボットより右側をクイックソート
}

このクイックソートが途中で止まります・・・何がおかしいでしょうか?
840デフォルトの名無しさん:2007/11/23(金) 17:55:00
超自己解決スマン
841デフォルトの名無しさん:2007/11/23(金) 18:39:39
初心者で申し訳ないのですがコンパイルが上手くいきません。『'javac' は、
内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファ
イルとして認識されていません。』と表示されるので環境変数PATHが間違えて
いるのかと思い確かめても間違えていないように思えます。参考にしている
本はJavaのe本という本でJDKのサンプルプログラムは機動します。拙い文章
ですがどなたか教えて下さい。
842デフォルトの名無しさん:2007/11/23(金) 19:00:44
しね
843デフォルトの名無しさん:2007/11/23(金) 19:01:52
実際にプロセスがパスを通すのは自身が起動された後じゃねかな?
バッチファイルの中でPATHを設定してないかい?
844デフォルトの名無しさん:2007/11/23(金) 19:13:17
>>841
サンプルプログラムが java コマンドで起動するなら、
それは(通常、パスは通ってる)システムにコピーされた java.exe で動いてるハズ。

間違えてないように思える、というのは思えるだけで気のせい。
落ち着いて一つ一つ確認していきましょう。

それでもダメなら、確認手順をここに晒して点検かね
845デフォルトの名無しさん:2007/11/23(金) 19:33:11
>>843,844
ご指摘ありがとうございます。後で試してみます。
846デフォルトの名無しさん:2007/11/23(金) 19:58:07
今やれカス
847デフォルトの名無しさん:2007/11/23(金) 20:00:17
1.パスがやっぱり間違ってる。
2.javaインストールフォルダ\binにjavacが入ってない

俺は2だったけどな。一度マイコンピュータからクリックしていって
javaインストールフォルダのbinフォルダにjavacというファイルがあるかどうか調べたほうがいい。

848デフォルトの名無しさん:2007/11/23(金) 20:55:04
ドキュメントを検索するのが面倒だったのでこんなの作ったというか、借りてみた。
テキストエディッタにコピペ、ローカルに.htmlで保存して、ブラウザのお気に入りにリンクさせてみた。

リンク、検索機能を追加
http://www.google.co.jp/intl/ja/searchcode.html

<!-- SiteSearch Google -->
<center>
<form method=get action="http://www.google.co.jp/search">
<table bgcolor="#FFFFFF"><tr valign=top><td>
<a href="http://www.google.co.jp/">
<img src="http://www.google.com/logos/Logo_40wht.gif"
border="0" alt="Google" align="absmiddle"></a>
</td>
<td>
<input type=text name=q size=31 maxlength=255 value="">
<input type=hidden name=ie value=UTF-8>
<input type=hidden name=oe value=UTF-8>
<input type=hidden name=hl value="ja">
<input type=submit name=btnG value="Google 検索">
<font size=-1>
<input type=hidden name=domains value="http://java.sun.com/javase/ja/6/docs/ja/api/"><br>
<input type=radio name=sitesearch value=""> WWW を検索
<input type=radio name=sitesearch value="http://java.sun.com/javase/ja/6/docs/ja/api/" checked> http://java.sun.com/javase/ja/6/docs/ja/api/ を検索
</font>
</td></tr></table>
</form>
</center>
<!-- SiteSearch Google -->
849デフォルトの名無しさん:2007/11/23(金) 22:09:55
文字のエンコードについて質問です。

InternetExplorerではEUC-JPでちゃんと表示できるWEBページを、
Javaでbyte配列からEUC-JPでStringにすると、@が文字化けしてしまいます。
これは何故なんでしょうか?また、どうすれば@を表示できるでしょうか?
850デフォルトの名無しさん:2007/11/23(金) 22:23:39
丸付き文字はIBM拡張だっけ?
そのeuc-jpなストリームをUTFにエンコードすればいい。

NIOで出来ると思う。
851デフォルトの名無しさん:2007/11/23(金) 22:26:12
>>849
http://www.ingrid.org/java/jserv/i18n/corruptedchar.html
ここ読めば解決するんじゃね?

何にしろ質問の内容があいまいで、たぶん誰も正確に答えられない
852デフォルトの名無しさん:2007/11/23(金) 22:27:24
>>849
化けるのは @ が機種依存文字だから。
Java の EUC-JP は JIS X 0208 と JIS X 0212 をサポートしてるけど、
InternetExplorer の @ は JIS X 0208 にも JIS X 0212 にも含まれない、いわゆるIBM拡張文字。

x-eucJP-Open だったら @ も使えるはず。
853デフォルトの名無しさん:2007/11/23(金) 22:37:34
>>850,852
13区はNEC拡張じゃなかったか? どーでもいい話だけど。
854デフォルトの名無しさん:2007/11/23(金) 22:37:35
EUC-JPの変換テーブルが対応してないんじゃない?
EUC-JP, EUC_JP_Solaris, EUC_JP_LINUXが試せるから、
それらのどこかで変換できれば儲けもの。

CP51932がCP932と互換してるから、そっちが指定できれば確実だけど。
855デフォルトの名無しさん:2007/11/23(金) 22:43:19
問題は俺らは解決する知識を持ってるが質問自体が曖昧で具体的にどうしたいのか分からないから解決策を提示できないってことだな。

>>849はまず具体的に何をしてどうなったかをレスした方が良いよ。
856デフォルトの名無しさん:2007/11/23(金) 22:45:17
ありがとうございます。

>>850
@は普通のEUC-JPじゃないんですね。
>>852
"x-eucJP-Open"で表示できました。
857デフォルトの名無しさん:2007/11/23(金) 22:45:33
>>854
CP51932 って、Javaで使えたっけか?
858デフォルトの名無しさん:2007/11/23(金) 22:46:10
そういえばCP932ってMS932とは別物じゃなかったけ?
859デフォルトの名無しさん:2007/11/23(金) 22:50:12
>>858
CP932だとIBMのコードページ932になるんじゃなかったか?
860デフォルトの名無しさん:2007/11/23(金) 22:52:48
>>856
文字集合と文字コードの扱いはVMの実装依存だから必ずしもそれで解決してるわけじゃないよ。
確実にやるには自前でやるしかない。
861デフォルトの名無しさん:2007/11/23(金) 22:54:06
>>859
じゃあWIndows-31Jで指定すれば安全か。
862デフォルトの名無しさん:2007/11/23(金) 22:55:56
>>858
そうなんだ。こら失態ですな。
863デフォルトの名無しさん:2007/11/23(金) 22:58:05
>>859
一貫性とかないみたいね。

x-IBM942 のエイリアスに cp942 があって、
windows-1250 のエイリアスには cp1250 がある、みたいに。
864デフォルトの名無しさん:2007/11/23(金) 23:11:04
互換性を保障するならUTF-8にしとけば間違いがない。
UTF-8とUTF-16(BOMあり, BE, LE)は、言語レベルのサポート義務があるから
BOM周りの実装が疎かでも問題にならないUTF-8が最強。

DB用で最強な文字セットは別にあるかもだけど。
865デフォルトの名無しさん:2007/11/23(金) 23:28:49
866デフォルトの名無しさん:2007/11/23(金) 23:30:16
それはSun JVMが、だ。

全てのJVMが、はこっち。
http://java.sun.com/javase/ja/6/docs/ja/api/java/nio/charset/Charset.html
867デフォルトの名無しさん:2007/11/23(金) 23:55:28
>UTF-8が最強

禿堂
868デフォルトの名無しさん:2007/11/24(土) 00:15:20
BOM付きのUTF-8をたまにで良いので思い出してあげてください。
869デフォルトの名無しさん:2007/11/24(土) 00:16:37
むしろBOMあるからUTF-8
870デフォルトの名無しさん:2007/11/24(土) 00:23:08
ないと思ってる奴の方が多いんだよ。
871デフォルトの名無しさん:2007/11/24(土) 00:25:15
BOMは無視するコードだから、UTF-8からすれば無いのも同然。
自動判別時の情報としては有用だけど、普通は指定するから情報は足りてる。
872デフォルトの名無しさん:2007/11/24(土) 00:29:57
待て待て、BOMはUTF-8であることを示すだけじゃなく
バイトオーダという情報を含んでるんだぞ
873デフォルトの名無しさん:2007/11/24(土) 00:31:40
>BOMは無視するコード
プッ
874デフォルトの名無しさん:2007/11/24(土) 00:31:50
しかし UTF-8 の BOM はバイトオーダの情報は持っていない。
875デフォルトの名無しさん:2007/11/24(土) 00:37:32
アプレットについて質問です。

http://wisdom.sakura.ne.jp/system/java/awt/Gjava8.html
ここにあるサンプルをhtmlに挿入してみたところ、
左上にXみたいなマークが出るだけで表示されません。
Eclipseで実行すると見れるのですがappletviewerで表示すると
「アプレットが初期化されていません。」と出ます。
どうしてでしょうか??

ちなみにブラウザはFireFoxでjre1.6です
876デフォルトの名無しさん:2007/11/24(土) 00:38:44
BOMで識別できるんだよ。文字セット指定しなくても。
FE FF (16BE)
FF FE (16LE)
EF BB BF (UTF8)

そしてそれらの文字は出力上、無視するという動作をする
877デフォルトの名無しさん:2007/11/24(土) 00:40:53
みんな分かっとるがな
878デフォルトの名無しさん:2007/11/24(土) 00:42:12
あきらかに分かってない奴がちらほらしとるがな
879デフォルトの名無しさん:2007/11/24(土) 00:49:32
HTMLの記述は
<html>
<head>
<title>てすと</title>
</head>
<body>
<applet code="test.class" width="500" height="500">
</applet>
</body>
</html>
これだけです
880デフォルトの名無しさん:2007/11/24(土) 00:55:47
俺のESPによると、コンパイルしてないかclassファイルの位置がおかしいかのどちらか。
ちゃんとjavacでコンパイルした?
881デフォルトの名無しさん:2007/11/24(土) 01:04:32
はい、コンパイルはちゃんとやってあります。
書き忘れていたのですが、コマンドプロンプトから実行すると
java.lang.NoClassDefFoundErrorが出ます。
882デフォルトの名無しさん:2007/11/24(土) 01:18:00
>>875のソースをコンパイルして、>>879をコピペしたHTMLをブラウザ、アプレットビューアーで見たけどちゃんと見れたよ。
883デフォルトの名無しさん:2007/11/24(土) 01:20:12
>>881
プロンプトから実行というのは java.exe でしょうか?
public static void main(String) が無いクラスは起動しないですよ

ためしにもっと簡単なAppletをメモ帳で書いて、コンパイルし、
appletviewer で実行して、一連の流れを検証してみるのがお勧めです。

「アプレットが初期化されていません」は実行クラスの名前解決以前の問題ですので…
884デフォルトの名無しさん:2007/11/24(土) 01:21:54
行儀よくpackageを指定してて、test.classではアクセス不能とか?
885デフォルトの名無しさん:2007/11/24(土) 01:23:21
これはだめかもわからんね
886デフォルトの名無しさん:2007/11/24(土) 01:24:32
質問です
継承元のクラスで定義されたメソッドの内容を
そのサブクラスのいくつかで、それぞれちょっと改変したい場合は何かいい方法ないでしょうか?
追加する場合にはsuperで済むのですが、追加ではなく改変ですし
その継承元のクラスで定義したメソッドでは、そのクラスの変数を使っているので
オーバーロードとかじゃうまくないかなぁ、と思いまして。
それでも元クラスではメソッドをabstractなどして、その変数はprotectedして
各サブクラスで定義する方法が一番ましなんでしょうか?
887デフォルトの名無しさん:2007/11/24(土) 01:28:20
>>886
改変される部分を別のメソッドにしとく。テンプレートメソッドってやつ。

protected にしたい変数への操作も、意味のある protected メソッドに
切り出しておいて、変数自体は private なままにしとくのがおすすめ。
888デフォルトの名無しさん:2007/11/24(土) 01:28:21
派生クラスでオーバーライドするための専用のprotectedメソッドを定義しとくといいよ
必要なフィールドの値はその引数で渡すか、protectedなアクセサを定義
889デフォルトの名無しさん:2007/11/24(土) 01:30:37
改変なんか考えるな
共通な部分だけ継承元のクラスに入れて
abstractにしておく
違う部分は継承してから
それぞれの方で定義しろ
890デフォルトの名無しさん:2007/11/24(土) 01:30:45
>>887
テンプレートメソッドですか、恥ずかしながら初めて知りました
ぐぐりつつもがんばってみます
ありがとうございました
891デフォルトの名無しさん:2007/11/24(土) 01:31:00
なんだかよくわからんがテンプレートメソッドでどうよ
892デフォルトの名無しさん:2007/11/24(土) 01:32:10
みんな全く同じことを言ってるなw
893デフォルトの名無しさん:2007/11/24(土) 01:34:18
なるほど、みなさん同じことを言ってるんですかw
調べつつやってみます
皆さんありがとうございますm(__)m
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;

public class Sample1 extends Applet
{
String str = "矢印キーを押してください";

public void init()
{
addKeyListener(new KeyAdapter()
{
public void KeyPressed(KeyEvent e)
{
int k = e.getKeyCode();
switch(k){
case KeyEvent.VK_UP: str = "上を押しました"; break;
case KeyEvent.VK_DOWN: str = "下を押しました"; break;
case KeyEvent.VK_LEFT: str = "左を押しました"; break;
case KeyEvent.VK_RIGHT: str = "右を押しました"; break;
default: str = "ちゃんと矢印キーを入力してください"; break;
}
repaint();
}
});
}
public void paint(Graphics g)
{
g.drawString(str,200,200);
}
}
895875:2007/11/24(土) 01:37:26
解決しました!皆さんありがとうございました。
>>884
Eclipseで書いていて
packageを書いていたためにできなかったみたいです。

896デフォルトの名無しさん:2007/11/24(土) 01:40:30
お、よかったよかった。
俺のESP能力もまだまだ現役だな。
897デフォルトの名無しさん:2007/11/24(土) 01:41:17
JTextArea で行間を設定する方法ありましたら教えていただきたいです
898デフォルトの名無しさん:2007/11/24(土) 02:05:32
俺のESPはまだまだだな。

>>894
KeyPressed→keyPressedじゃ無い?
899デフォルトの名無しさん:2007/11/24(土) 02:36:04
>>898
楽目的でAdapter使うとやるなぁ

Java5からのおまじない
ttp://www.atmarkit.co.jp/fjava/javatips/183java065.html
900デフォルトの名無しさん:2007/11/24(土) 02:46:46
>>894
ありがとうございました。
Kを小文字に変えたら矢印キーが反応するようになりました。
しかし、Kが大文字でもコンパイルが通ったのはなんでだろう?
901デフォルトの名無しさん:2007/11/24(土) 02:52:09
自分でメソッド定義したから。
以下>>899にループ
902デフォルトの名無しさん:2007/11/24(土) 05:05:09

みんなは
@Override
ちゃんと書いてる?
903デフォルトの名無しさん:2007/11/24(土) 05:39:17
>>902
書いてます。
904デフォルトの名無しさん:2007/11/24(土) 07:49:01
>>902
@Override から書きはじめると、Eclipseがいい感じに補完してくれる。
905デフォルトの名無しさん:2007/11/24(土) 08:38:21
当然使ってる。
906デフォルトの名無しさん:2007/11/24(土) 10:20:40
@Overideの話題が出たので便乗。
スーパークラスのメソッドをオーバーライドする時に使用する、これは基本。
で、
インターフェイスで定義されたメソッドや抽象クラスで定義された抽象メソッドをサブクラスで実装する場合、@Overrideを付ける派?付けない派?

俺は付ける派。
@Overrideのドキュメントを読む限りはつけないほうがいいと感じるかもしれないけど、仕様としてつけてもエラーとならないし、メソッドのオーバーライドとスーパークラスに実装があるかは別の概念だと思うから

結論は出さないって前提でどう思うよ?
907デフォルトの名無しさん:2007/11/24(土) 10:29:23
抽象メソッドには付けない派、ただ、サブクラスで必ずオーバーライドが必要な普通のメソッドには付けてる。
908デフォルトの名無しさん:2007/11/24(土) 10:34:01
インタフェイスで定義されたメソッドに@Overrideがつけられるようになったのは、
1.6からだよね。1.5だと使えない。
どうせなら、@Implementを作ってほしかった。
909デフォルトの名無しさん:2007/11/24(土) 11:04:21
質問です
マウスのボタンを押しっぱなしにしてる間は定期的に処理を繰り返すというようなswing用の
ボタン型コンポーネント(例えばスクロールバーの上下ボタン)を作りたいのですが、単純に
mousePressed → 別スレッド起動
mouseReleased, mouseExited → スレッド停止フラグを立てる
という実装で問題ないでしょうか?

気になっているのは
(1)他にスレッドを停止させるべきイベントはないか
(2)スレッドが停止フラグ以外に確認するべき条件はないか
(3)もっとシンプルな方法を見落としてないか
の3点です
910デフォルトの名無しさん:2007/11/24(土) 11:32:55
>>908
結局のところOverrideとImplementsの違いって注釈的な表現は難しいんだよね。
確か、本質的な意味としては@OverrideOrImplements なんだけど今更変えられないしなぁって開発陣のBlogに書いてあった

あとこんなパターンがありえる
interface Foo {
  void foo();
}
interface Bar extends Foo {
  @Override
  void foo();
}
911デフォルトの名無しさん:2007/11/24(土) 11:51:08
Genericsについての質問です。
import java.util.*;
public class Ex1 {
   public static void main(String[] args) {
      Map<String,Object> map = new HashMap<String,Object>();
      map.put("key1", "FOO");
      map.put("key2", new Integer(123));
      map.put("key3", new ArrayList<String>());
      String val1 = (String)map.get("key1");
      int val2 = (Integer)map.get("key2");
      List<String> val3 = (List<String>)map.get("key3"); // warning: unchecked cast
   }
}
これをコンパイルするとこんなwarningが出ます。
Ex1.java:10: warning: [unchecked] unchecked cast
found : java.lang.Object
required: java.util.List<java.lang.String>
List<String> val3 = (List<String>)map.get("key3");
^
1 warning
なぜでしょうか。StringやIntegerだとキャストできて、List<>だとできないのが謎です。
912デフォルトの名無しさん:2007/11/24(土) 12:24:01
>>902
自分では書いてないが、保存するときにeclipseが勝手に付けてくれる
913デフォルトの名無しさん:2007/11/24(土) 12:27:22
>>909
スレッドの代わりに javax.swing.Timer を使う手もある
914デフォルトの名無しさん:2007/11/24(土) 12:41:44
>>911
コンパイルしたら型パラメータ情報は無くなるから、
あるオブジェクトが List か Set かは判定できても、
List<String> か List<Integer> かを判定することは出来ない。

もしその map の "key3" に Set<String> が格納されていたら、
キャスト時に失敗して ClassCastException が発生するが、
List<Integer> が格納されてたとしても、それは判らないので、
(警告は出るものの) キャストは通ってしまう。

List の内容を変更しないのなら
List<?> val3 = (List<?>)map.get("key3");
とすればいいが、内容を変更する必要がある場合は、
@SuppressWarnings("unchecked") を付けて警告を黙らせるか、
新しい List に内容をコピーしてからいじくるしかない。
915デフォルトの名無しさん:2007/11/24(土) 12:55:54
List<?> val3 = (List<?>)map.get("key3");
List<String> val4 = (List<String>)val3;
これはOK?
916デフォルトの名無しさん:2007/11/24(土) 12:57:37
>>904
> @Override から書きはじめると、Eclipseがいい感じに補完してくれる。
NetBeansも6.0rc1からいい感じに補完してくれるようになった.
917デフォルトの名無しさん:2007/11/24(土) 12:58:57
>>909
スレッドを一つだけ常時起動しておき、
フラグを立ててそのスレッド内のループで関数を実行するかどうかを切り替えるようにするという手もある
918デフォルトの名無しさん:2007/11/24(土) 13:02:26
>>911
原因と対策は>914を参照

一般的に異なる型のKeyとValueをMapに保持させるのはいただけない。
結局の所、どのキーにはどんな型が入っていてと意識せざるを得ないからね。
Mapを使うのではなく、
class HogeValues {
  private String key1;
  private int key2;
  private List<String> key3;
 // ゲッター・セッター省略
}
というようなクラスを定義するべき。
キーが可変?
可変で、かつ不特定の型を格納するって時点でなんかがおかしいと思う
919デフォルトの名無しさん:2007/11/24(土) 13:10:42
>>909
Java6でOKならばSwingTimerは使わない方がいい。
変りにSwingWorker という並行処理専用のクラスを使用すると、スレッドをほとんど意識せずに裏方処理をさせられる。

class UpDownWorker extends SwingWorker {
  @Override
  public Object doInBackground() {
     // ここに並行に処理をおこなう内容を記述
    // ループさせながら順次アニメーションさせるなど
    // このメソッドはEDTで実行されるので直接コンポーネントを操作してOK     }
  @Override
  protected void done() {
    // 処理が終わったときに呼ばれるメソッド
    // ボタンをアクティブに戻すとか
  }
}
使う側
UpDownWorker worker = new UpDownWorker();
worker.execute();  // ←処理が終了までブロックされずに、すぐ制御が戻る

ちなみにworkerからは実行結果を取得したり、例外が発生したらそれを検知したり、キャンセルをかけられたりと色々な機能があるよ。
920デフォルトの名無しさん:2007/11/24(土) 13:19:57
>>915
むり
List<?> val3 が List<String> と List<Integer> のどちらなのかは判定できない
921デフォルトの名無しさん:2007/11/24(土) 13:22:31
>>919
>  // このメソッドはEDTで実行されるので直接コンポーネントを操作してOK     }

ダウト
922デフォルトの名無しさん:2007/11/24(土) 13:25:05
C#とちがって総称型情報捨てるというかObjectにしちゃうもんなjavaは。
923デフォルトの名無しさん:2007/11/24(土) 13:26:20
List<Object>
にしときゃ良かったんでね?
924デフォルトの名無しさん:2007/11/24(土) 13:26:53
>>922
下位互換重視だからいたしかたあるめぇ
925デフォルトの名無しさん:2007/11/24(土) 13:35:36
C#も触ってるとJavaのジェネリックは混乱するよなあ
926デフォルトの名無しさん:2007/11/24(土) 13:37:03
混乱するか?
そもそも別の機能だしな
927デフォルトの名無しさん:2007/11/24(土) 13:45:42
Genricsって邪魔な機能だよね?いらないよね?
928デフォルトの名無しさん:2007/11/24(土) 13:54:31
Genericsはあったほうが便利
ついていけないなら使わなければいいだけ
929909:2007/11/24(土) 14:29:25
>913,917,919,921
ありがとうございます.
気になっていたのは,なんらかの手違いで起動させたスレッドに終了命令を送れなくなって
裏スレッドを量産してしまう可能性がないかということでした.
とりあえずはTimerを使う方向で考えてみます.
930デフォルトの名無しさん:2007/11/24(土) 14:40:40
>>919
裏方処理なのに、EDTで実行される、とか書いてて違和感なかった?
931デフォルトの名無しさん:2007/11/24(土) 15:13:13
JScrollPaneにJTextAreaを乗せています。
これをコマンドプロンプトみたいに表示文字数が表示可能領域を超えた場合、自動で下にスクロールしてくれる機能を付けたいのですがどうすればよいのでしょうか?
932デフォルトの名無しさん
スクロールアウトとスクロールバーで流すのとは全く別の処理なわけだが、
文脈から考えてスクロールアウト実装したいって意味だよな・・・。

JScrollPaneが勝手にやってる気がするが具体的には何したいの?