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

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

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

1 :デフォルトの名無しさん:2006/12/11(月) 14:00:52
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下の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 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。

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

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

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

次スレは>>980あたりで。

2 :デフォルトの名無しさん:2006/12/11(月) 14:10:13
2ゲット禁止

3 :デフォルトの名無しさん:2006/12/11(月) 18:40:43
4様

4 :デフォルトの名無しさん:2006/12/11(月) 20:32:09
なんか今日javaアップデートなるものがあり、
実行したら空ループ(数秒間固まらせる目的)がとてつもなく遅くなったんだけど、何が起きたん?

5 :デフォルトの名無しさん:2006/12/11(月) 20:43:24
空ループじゃなくてThread.sleep()とか使いなよ

6 :デフォルトの名無しさん:2006/12/11(月) 23:51:46
Javaで複数結果の帰ってくるselect文のストアドプロシージャ(オラクル)をよんで
ResultSetに入れようとしています。
オラクルのストアドはselect文が書けないので、カーソルを返すしかないのでしょうか?
また、カーソルをストアドに宣言するとエラーになります。
パッケージの宣言句に書くと大丈夫でした。
これはオラクルの決まりなのでしょうか?

よろしくお願いします。

7 :デフォルトの名無しさん:2006/12/12(火) 00:40:21
-------------
  private string key=null;
public void test0{
test1();
test2();
}
public void test1{
URL url = new URL(親ページ);
URLConnection uc = url.openConnection();
key=uc.getHeaderField("Set-Cookie");
}
public void test2{
URL url = new URL(子ページ)
URLConnection uc = url.openConnection();
uc.setDoOutput(true);
uc.setRequestProperty("Cookie",key);
OutputStream os = uc.getOutputStream();
略)・・・・ページ内容取得
}
------------
 上記の場合に、
 IE などで言えば、親ウィンドウが開かれたままの状態、子ウィンドウも開かれている状態
 にするには、どのようにすればいいのでしょうか。
親ページの form 情報を子ページが必要としているケースなどを想定しています。


8 :デフォルトの名無しさん:2006/12/12(火) 00:43:20
違うかな?

java.sql.Statement#getResultSet()
java.sql.Statement#getMoreResults(int)
java.sql.Statement#getUpdateCount()


9 :デフォルトの名無しさん:2006/12/12(火) 01:19:38
JavaでUnixに設定している環境変数をキー指定で取得したいのですが、
どうすればいいのでしょうか?


10 :デフォルトの名無しさん:2006/12/12(火) 01:30:55
>>9
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/System.html#getenv(java.lang.String)
古い(1.4以前)のJavaでは非推奨で、nullが返ってくる処理系もあったような気がするので注意。
今の1.5なら大丈夫。

11 :デフォルトの名無しさん:2006/12/12(火) 01:52:43
>>4
原因はよく分からんが、JDK1.5.0_10のupdateにかかったんじゃないのか?
JDK6は昨日午後リリースだと思うが、まだupdateにはかかってないよな??

12 :デフォルトの名無しさん:2006/12/12(火) 02:16:25
助けてください。下のが出てコンパイル出来ないんです。どうしてですか?

C:\java>javac Hello.java
'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

13 :デフォルトの名無しさん:2006/12/12(火) 02:19:58
>>12 ネタかな?


cd c:\java\bin
javac Hello.java  ※ Hello.javaのパスをちゃんと指定する事。


やっぱネタだよな。

14 :デフォルトの名無しさん:2006/12/12(火) 02:25:38
>>13
> cd c:\java\bin

ってお前こそネタだよな?

15 :クリスマスは一人:2006/12/12(火) 02:49:15
cd c:\java\bin
だめだ。勝てない。神だ
12はとっととパス通せよ。
環境設定が間違っているんだよ


16 :デフォルトの名無しさん:2006/12/12(火) 06:59:09
>>10
ありごとうございます、いけました。

17 :デフォルトの名無しさん:2006/12/12(火) 16:14:19
JMenuBarの高さを取得したいのですがどのメソッドを呼べばいいのか分かりません。
下記を試しましたが結果は「0」でした。

JMenuBar.getHeight()
JMenuBar.getY()
JMenuBar.getBounds().getHeight()
JMenuBar.getSize().height
JMenuBar.getSize().getHeight()
JMenuBar.getVisibleRect().getHeight()

18 :デフォルトの名無しさん:2006/12/12(火) 16:26:50
>>17
setVisible(true)の前で呼んでました
逝ってきます

19 :デフォルトの名無しさん:2006/12/12(火) 19:53:44
画像を表示→画像内でmousePressedされたらmouseReleasedの位置に表示を変更、というプログラムです。
現在、初期の表示はされるのですが表示位置を変えることができていません。
デバッグ文を噛ませてみたところどうやらマウスからの反応が返ってこないようなのですが、どこが悪いのでしょうか?

http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28955

20 :デフォルトの名無しさん:2006/12/12(火) 22:51:40
switch文でcase1とかcase2とかで表すじゃないですか?
これを整数を求めるために0以上にしたいんですが、
switch文であらわす方法はありますか?

21 :sabu:2006/12/12(火) 23:00:30
以下のプログラムを
1、計算クラス 2、表示クラス 3メインクラス
になるよう修正してください。

class Test12{
public static void main(String args[])}

int c=10;
int d=20;
int e=30;
int sum=0;

sum=c+d+e;
System.out.println("合計は"+sum+"です");
}
}

この問題について教えてもらいたいのですが、
1、計算クラス 表示クラス メインクラスというのは何なのでしょうか?
クラスは知っているのですが、これはまったく分からないです。

どのように変更すればこの問題の答えは出るのでしょう。
詳しい方宜しくお願いします。

22 :デフォルトの名無しさん:2006/12/12(火) 23:01:54
計算するクラス、表示するクラス、mainを持ったクラスのことじゃないか?

23 :sabu:2006/12/12(火) 23:03:56
ArrayList クラスを使用して5つの要素を追加して、要素を
1つずつ表示させてください。

という問題の答え 分かりましたらお願いします。
大変申し訳ないのですが、宜しくお願いします。

24 :デフォルトの名無しさん:2006/12/12(火) 23:16:10
>>21>>23
糞して寝ろ

25 :デフォルトの名無しさん:2006/12/13(水) 01:13:19
>>19
表示位置を変えたいなら x,y の値を更新した後に描き直せ

26 :デフォルトの名無しさん:2006/12/13(水) 01:17:53
>>23
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/ArrayList.html
を読む
あとはぐぐる

27 :デフォルトの名無しさん:2006/12/13(水) 09:06:54

質問です。

RandomAccessFileのreadLineメソッドを使って
●●.datファイルから読み出した文章を
Stringに代入してSystem.out.printlnでDOS窓に表示することはできるのですが
それをsetTextでテキストフィールドに表示することが何故かできません。
System.out.printlnで表示した際、たとえばそれが「kznisikoro」という文字列であった場合
「 k z n i s i k o r o」といった風に半角一文字ずつ空白が入るのが少し気にはなっているのですが…。
「 」を0、「k」を1、「 」を2、「z」を3、「 」を4、「n」を5とした場合(datファイル内でのファイルポインタの位置です)

try{RandomAccessFile raf=new RandomAccessFile("ac.dat","r");
String rr="";
raf.seek(1);
rr=raf.readLine();
System.out.println(rr);
Tf.setText(rr);

このようにコーディングすると、「k」という文字だけはテキストフィールドに表示されるのですが…。

28 :デフォルトの名無しさん:2006/12/13(水) 10:17:05
>>27
setText ってのが AWT だったら、プラットフォームによっては
文字列の中に '\0' があったらそれを終端とみなすかもしらん。

後は、ac.dat の中身を16進のダンプリストにしたり
RandomAccessFile#readLine() でどーゆー風に変換されるか調べてみるぐらいしか。

29 :デフォルトの名無しさん:2006/12/13(水) 10:49:48
ttp://www.teu.ac.jp/chiit/Image/?cmd=read&page=%C2%E84%B2%F3
を参考にして、
台形に歪んでしまった画像を長方形に直す作業を行いたかったんですが、
ソースがなくなっちゃってました。

このソース、もしくはこのソースの代わりになるものありませんか?

30 :デフォルトの名無しさん:2006/12/13(水) 11:40:35
>>28
そこで言う\0とはStringをcharで配置する時に出来る空白(ac.datはwriteCharsで書き込んでいるので、そうだと思うのですが)
>「 k z n i s i k o r o」といった風に半角一文字ずつ空白が入るのが少し気にはなっているのですが…。
>「 」を0、「k」を1、「 」を2、「z」を3、「 」を4、「n」を5とした場合(datファイル内でのファイルポインタの位置です)
ここで言う「 」のことでしょうか?

>setText ってのが AWT だったら、プラットフォームによっては

>後は、ac.dat の中身を16進のダンプリストにしたり
>RandomAccessFile#readLine() でどーゆー風に変換されるか調べてみるぐらいしか。
で、ここらへんで仰ってることに関しては、正直殆ど意味が分かりません。
すいません素人で…。

31 :デフォルトの名無しさん:2006/12/13(水) 17:03:41
googleの辞書機能をJava側から勝手に使うツールを作ったことある人います?
翻訳結果HTMLから結果を取り出す方法はわかっているのですが、
googleに接続すると403が返ってきてしまうので、前例があるか知りたいのです。

FireFoxのプラグインにあるから、できてもいいはずなんですけど。
ユーザエージェントとか見てはじいているのかな?
ちなみに、ブラウザに直接翻訳用のURLをぶち込んでも、ちゃんと結果は表示されます。
ttp://translate.google.com/translate_t?text=PEN&langpair=en|ja

32 :31:2006/12/13(水) 17:24:25
あと、複数のbyte[]を1つのbyte[]にする一番良い方法ってなんですかね?
今はbyte[]をリストにつっこんで、最後にループで回しながら結合してます。
理想としては、サイズに気にせずにbyte[]を追加できて、
getByte()とかして、結合したbyte[]が取れるとうれしいんだけど。作るしかないかな。

33 :デフォルトの名無しさん:2006/12/13(水) 17:43:06
ByteArrayOutputStreamでいいんじゃ無いか?

34 :デフォルトの名無しさん:2006/12/13(水) 17:45:31
>31
HTTPのリクエスト、ブラウザ名とか偽装すれば良いかも?

憶測ですいません

byteからByteにしてSystem.arraycopyしたら・・・んん、違うな。
やっぱなんでもない。

35 :31:2006/12/13(水) 18:07:38
>>33
こんな簡単な方法が。。。おかげさまであっさりできました。
ByteArrayOutputStreamって、Streamって書いてあったので無視してましたが、
器の役目もあるんですね。

>>34
System.arraycopyでできそうですね。
ByteArrayOutputStreamのソースを見たら、中でarraycopyを使ってました。

36 :デフォルトの名無しさん:2006/12/13(水) 20:30:43
classのアクセス制御にpublicとデフォルトがあってprivateがないのは何故なのですか?

37 :デフォルトの名無しさん:2006/12/13(水) 20:36:45
誰からもアクセスできない=使えないクラスに用はないから。

38 :デフォルトの名無しさん:2006/12/13(水) 20:49:33
public->どこからでもクラスを使える
デフォルト->同じパッケージ内でクラスを使える
private->同じソースファイル内でクラスを使える
こうするのが普通だと思うのですが・・・

39 :デフォルトの名無しさん:2006/12/13(水) 20:50:58
じゃあお前が提案してそういう言語でも作れば?

40 :デフォルトの名無しさん:2006/12/13(水) 20:55:25
>>36,38
内部クラスについてはprivateはある。その場合、>>38のようなアクセス制御になる。
ただしトップレベルクラスについてはprivateは許されない。その理由は>>37のとおり。

41 :デフォルトの名無しさん:2006/12/13(水) 20:59:44
今読んでいる本で
public static void main(String[] args){
    TurtleFrame f; // 1
    f = new TurtleFrame();
    ...
}
1の時点でfにはnullが代入されていると書いてあるのですが本当なのでしょうか?
ローカル変数もデフォルト値で初期化されるのでしょうか?
前に読んだ本ではインスタンス変数とstatic変数だけがデフォルト値を持つと書いてありました

あと
new int[][] {{2,5,4,2},{2,2,4,1},{1,3,4,2}}
が4×3の配列と書いてあったのですが、3×4ではないのですか?

42 :デフォルトの名無しさん:2006/12/13(水) 21:02:03
>>41
ローカル変数の初期化に関して、あなたは正しい。
そんな本は、書名さらした上で捨ててしまえ。

43 :デフォルトの名無しさん:2006/12/13(水) 21:08:04
セッションの管理方式をstatelessにしたビジネスロジックを実装したいのですが、
しかし、ユーザ認証時に認証した事を示すSESSION-IDをどうしても発行・管理をしたいと
考えています。これを、EJB+DBだけで実現する簡単な方法はないでしょうか?
DBにUDDIを各ユーザ毎に登録したとして、それの期限をどうやって判定するかとか
その辺が頭の中で想像できていないと思ってます。
 もし、そんなことじゃなくてこうしやがれボケとか何かあればなんでもいいので教えてください。

44 :デフォルトの名無しさん:2006/12/13(水) 21:08:13
配列の方は4×3と言うのであっていますか?
>>41では配列のサイズは[3][4]になるので
3×4と言うのが正しいというのは違いますか?
この本、まだ40ページくらいしか読んでないけど不安です

45 :デフォルトの名無しさん:2006/12/13(水) 21:39:55
失礼します。挿入法による整列のJavaのプログラムInsertSortを完成させよ。配列aにデータが入っていて,その個数をnとする。
/* データが1個のときは整列済みと解釈できる */ iを2からnまで,1つずつ増やしながら,以下を繰り返す。
w = a[i-1]とする.jをi-2から0まで以下を繰り返す。もし a[j] > w なら,a[j+1] = a[j]とする。そうでなければ,a[j+1]=wとして,繰り返しを終える。
以下のコードをベースに変更して、挿入法による整列をやってみたんですが、全く能力不足でできません。どなたかヨロシクお願いします。

public class SelectionSort {
public static void main(String args[]) {
int a[] = {9, 29, 17, 31, 19, 4, 22, 8, 12, 26};
int n = 10;
for (int i=n; i>=2; i--) {
int k = 0;
for (int j=0; j<i; j++)
if (a[j] > a[k])
k = j;
{
int w = a[i-1];
a[i-1] = a[k];
a[k] = w;
}
}
for (int i=0; i<n; i++)
System.out.print(a[i]);
System.out.println("");
}
}

46 :45:2006/12/13(水) 21:49:06
一応こんな感じでやってみたんですが、いうまでもなくエラーが出ます。よろしくお願いします。

public class InsertSort {
public static void main(String args[]) {
int a[] = {9, 29, 17, 31, 19, 4, 22, 8, 12, 26};
int n = 10;
for (int i=2; i<=n; i++) {
int w = a[i-1];

for (int j=0; j<(i-1); j++)
if (a[j]>w){
a[j+1]=a[j];
}
else{
a[j+1]=w;
}
}
System.out.print(a[i]);
System.out.println("");
}
}

47 :デフォルトの名無しさん:2006/12/13(水) 22:05:03
>>45
ttp://lecture.ecc.u-tokyo.ac.jp/~cichiji/cp-05/cp-05-06-3.html
ttp://lecture.ecc.u-tokyo.ac.jp/~ueda/cp05/prog9.html
ttp://www.sist.ac.jp/~suganuma/cpp/2-bu/7-sho/Java/sort_j.txt
ttp://www.sm.rim.or.jp/~shishido/ssort.html
ttp://www.inf.fh-flensburg.de/lang/algorithmen/sortieren/insert/insertionen.htm

48 :45:2006/12/13(水) 22:28:06
>>47
そのあたりは調べたんですが、いざ自分でコードを書くと分からなくなってしまって。。。
コード書いていただけませんか?自分勝手ですいません。

49 :デフォルトの名無しさん:2006/12/13(水) 23:10:32
>>45 みたいな方が↓を作ったのかな(´ω`)
ttp://blog.livedoor.jp/dqnplus/archives/870664.html
ttp://www.youtube.com/watch?v=I7W4ameEDBE

50 :45:2006/12/13(水) 23:23:51
>>49
???

51 :45:2006/12/13(水) 23:25:43
★★ Java の宿題ここで答えます Part 59 ★★で聞く事にします。どうも

52 :デフォルトの名無しさん:2006/12/14(木) 01:14:34
ここ数件の質問って全部学生さん?

このレベルで質問してたらプロは無理だろ・・・

53 :デフォルトの名無しさん:2006/12/14(木) 09:25:40
>>43
最終リクエスト時間をDBにブチ込んで監視とか?

54 :デフォルトの名無しさん:2006/12/14(木) 17:05:09
g.drawImage()で表示している画像のある一部分にマウスポインタが来た場合に
フラグを立てて何か別の処理をしたいのですが、どうすればいいのでしょうか?
ググってみたところmouseEnterdとかmouseMovedが使えそうな雰囲気なのですが、
ある区画に入った時点でイベントが発生するような具体的な書き方について悩んでいます。
アプレットに入った時点で、というならmouseEnterd内にそのまま書けば良さそうに思えますが。。。

55 :デフォルトの名無しさん:2006/12/14(木) 17:11:11
>>52
高卒のお前は知らんかもしれんが、大学の場合
人文とかの専門外のやつでも一般教養科目としてプログラミングは普通にやるぞ。

56 :デフォルトの名無しさん :2006/12/14(木) 17:31:18
あの、このサイトをローカルで保存して回線つなげてない状態で
このサイトのJavaを起動してもエラーがなるんですが。。。。
なので、このJavaをローカルで保存して回線つなげなくても
使えるようにする方法を教えてください・・・・・
ttp://pedantic.jp/pangya/?siid=simulation_tomahawk

57 :デフォルトの名無しさん:2006/12/14(木) 17:40:26
マルチな上に
『パソコンの使い方』の範疇の質問するな

58 :デフォルトの名無しさん:2006/12/14(木) 17:44:44
>>54
マウスカーソルが動いた時のイベントを拾ってカーソル座標取得
取得した座標が特定範囲内ならフラグを立てる

ってのはどう?

59 :デフォルトの名無しさん:2006/12/14(木) 17:57:58
JARに動画ファイルを含めて再生させようとすると失敗します。
JARの外に動画ファイルがある場合は問題はないのですが。

要約したソース
URL url = getClass().getResource("/resources/test.mpg");
Player player = Manager.createRealizedPlayer(url);
Component component = player.getVisualComponent();

発生した例外
javax.media.NoDataSourceException: Cannot find a DataSource for: jar:file:/C:/java/workspace/aaa/test.jar!/resources/test.mpg

JAR内のイメージファイルを読み込んで表示させてみた所、問題なし。


60 :58:2006/12/14(木) 18:04:18
>>58
それでいけそうです!何か変に難しく考えていました。
ありがとうございました!

61 :デフォルトの名無しさん:2006/12/14(木) 18:51:22
>>59
残念ながらサポートされてないっぽい。

ttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4651708
>State In progress, request for enhancement

62 :デフォルトの名無しさん:2006/12/14(木) 18:53:26
flame上でshowdocumentと同様の動作をするものがありますか?

63 :デフォルトの名無しさん:2006/12/14(木) 19:00:37
>>61
ありがとうございます。

64 :デフォルトの名無しさん:2006/12/14(木) 19:02:02
質問があります。

テキストファイルを編集するプログラムを書きたいと思っています。そこでそのファイルを行単位でスキャンして、先頭がある文字列の行だけ書き換えたいのですが、そのようなクラスは用意されているのでしょうか?

テキストファイルが10万行とかなので、テンポラリファイルを使用せずに実現したいです。わかる人いらっしゃったら教えてください。お願いします。

65 :デフォルトの名無しさん:2006/12/14(木) 19:08:22
>>64
>そのようなクラス
は無いです
普通にシーケンシャルに読んで、行頭チェックして、新規ファイルに
ある文字列のとき:書き替え出力
それ以外:そのまま行出力

66 :64:2006/12/14(木) 19:14:23
>>65
ありがとうございます。

なるほど、ということは既存ファイルの書き換えということもできないということですか??

67 :デフォルトの名無しさん:2006/12/14(木) 19:17:14
>>66
書き替えもできるけど
その場合は、書き替え後の行が書き替え前の行と同じバイト数でないと意味無いでしょ?
そういう特殊な条件?

68 :64:2006/12/14(木) 19:19:50
>>67
ああ、その行だけ削除して新しい行に置き換えるというような操作はできないわけですね?

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

69 :デフォルトの名無しさん:2006/12/14(木) 21:26:08
その行だけ削除ってファイルはいったいどんな状態に…

70 :デフォルトの名無しさん:2006/12/14(木) 21:42:36
>>69
その行だけ削除すんでしょ。
次の行の先頭から終端までを、削除される行の先頭にコピーしてファイルの長さを縮める。

テンポラリ使うのと比べて処理時間は凄く遅くなるだろうけど、
ディスクスペースに空きがない、とかなら仕方ないのかも?

71 :デフォルトの名無しさん:2006/12/14(木) 21:43:21
×次の行の先頭から終端までを
○次の行の先頭からファイル終端までを

72 :デフォルトの名無しさん:2006/12/14(木) 22:08:03
テンポラリをディスクに書き込まなくてもオンメモリでやれば
せいぜい10MB程度でしょ

73 :デフォルトの名無しさん:2006/12/14(木) 23:03:32
sed でもあれば一行で済むな。

74 :デフォルトの名無しさん:2006/12/15(金) 04:59:06
drawLineメソッドでCanvasに線をかくことが出来ますが、
その線を点の集合として得るにはどうしたらいいでしょうか?

75 :デフォルトの名無しさん:2006/12/15(金) 07:30:52
>>74
http://pc8.2ch.net/test/read.cgi/tech/1161139809/255

76 :hj:2006/12/15(金) 07:48:45
javaのJPSでレーザープリンタでハガキに印刷したいです。
ソフト側で"厚紙指定"みたいにしないとプリンタ側で
印刷がうまく定着しない、とR社の人に言われました。

JPSのserviceUI.printDialogで出てくる印刷ダイアログの、
プリンタ名の横のプロパティボタンが押せれば、OS側の
プリンタドライバのプロパティ画面が出ると予想してるの
ですが(そこで"厚紙指定"する)、なぜかこいつが無効に
なっている。このボタンって、押せるようにならないんですか?
PrintRequestAttributeSetで直に"厚紙指定"のようなことは
できなさそうなので…。

詳しい人教えてください。

77 :デフォルトの名無しさん:2006/12/15(金) 14:19:02
UNIX秒数(例えば1165813252)から年月日時分秒を取り出したいのですが

long sec; //秒数が入っている
Calendar calendar=Calendar.getInstance();
calendar.setTimeInMillis(sec*1000);

とすると

setTimeInMillis(long) は java.util.Calendar で protected アクセスされます

と言われます。確かにAPI仕様ではprotected voidが返ることになっていますが
どうすればこのエラーを回避することができるのでしょうか?
というか、もっと楽な方法があったりするのでしょうか?


※すいませんが、iアプリなのでCLDCでお願いいたします

78 :デフォルトの名無しさん:2006/12/15(金) 14:23:51
>>77
calendar.setTime(new Date(sec * 1000));

79 :77:2006/12/15(金) 14:32:42
>>78
素早い回答ありがとうございます
こんなところにnewを入れるのがjavaの特徴的なところでしょうか


ついでにAPI仕様のコンストラクタにDate(long date)
って書いているけどDate(long millis)とか書いてほしいのは俺だけですか?

80 :デフォルトの名無しさん:2006/12/15(金) 14:58:01
> javaの特徴的なところ
詳しくは知らんけど、クラスのサイズ小さくするため、とかで
ライブラリ全体を見て重複するメソッドを削ってったらそうなっただけじゃないかね?

> Date(long millis)
確かに。BugDatabase に報告してくれたら嬉しい。

81 :デフォルトの名無しさん:2006/12/15(金) 16:51:17
何故Javaにはstaticローカル変数がないのですか?

82 :デフォルトの名無しさん:2006/12/15(金) 17:28:24
>>81
必要ではないから。

83 :デフォルトの名無しさん:2006/12/15(金) 17:35:12
>>82
どうか理由を・・
何か便利なやり方があるのですか?

84 :デフォルトの名無しさん:2006/12/15(金) 17:42:07
staticなローカルって、そのクラスの全インスタンスで常に値が保持される変数?
それって private static ではだめなんかね?
違いはスコープぐらいしか思いつかないんだけど・・・

85 :デフォルトの名無しさん:2006/12/15(金) 19:12:14
SunのStudio Enterprise8を使っています。
アプレットをhtmlファイルとしてインターネット上で使用するにはどうしたらいいのでしょうか?
ヘルプを読んでもいまいちそれらしい説明がなく…orz

86 :デフォルトの名無しさん:2006/12/15(金) 19:47:29
ttp://www.kab-studio.biz/Programing/JavaA2Z/Word/00001070.html
>このstaticローカル変数は、C++言語では、メンバ関数(Javaのメソッドに当たるもの)であっても
>同様に機能するため、インスタンスに関係なくひとつだけ存在することになり、
>オブジェクト指向とは合わない存在と言える。
>そのためか、Javaの言語仕様には存在しない。

87 :デフォルトの名無しさん:2006/12/15(金) 20:38:58
>>85
質問が良く分からないがコンバートの事?


88 :デフォルトの名無しさん:2006/12/15(金) 21:55:34
●●はabstractです。インスタンスを生成することはできませんって言われています
このエラーの解決方法って分りますか
無茶を言ってすいません

89 :デフォルトの名無しさん:2006/12/15(金) 21:56:55
そのクラスを継承してabstractとなっているメソッドを実装する。
classではなくinterfaceである場合は全部がabstractメソッド。

90 :デフォルトの名無しさん:2006/12/15(金) 22:19:17
>>89
迅速なレスありがとうございます
interfaceで作っています
全部がabstracメソッド・・・少し詳しく調べてきます

91 :デフォルトの名無しさん:2006/12/15(金) 23:12:25
super();
とだけ書いてあるメソッド?は何をしているのでしょうか。
super()というメソッドは、ソースのどこにも定義されていないのです。
そもそも、メソッドならばその前にクラス名が付くと思いますし…
Javaのこういうアバウトなところが苦手です。

92 :デフォルトの名無しさん:2006/12/15(金) 23:20:47
それは親クラスのコンストラクタだ。全然アバウトじゃない。

93 :デフォルトの名無しさん:2006/12/15(金) 23:22:06
>>91
スーパークラスのコンストラクタ。
超基本的な所も調べない貴方が苦手です。

94 :デフォルトの名無しさん:2006/12/15(金) 23:25:47
>>91
> super();
> とだけ書いてあるメソッド?は何をしているのでしょうか。
親クラスの引数ゼロ個のコンストラクタを呼んでる。

> Javaのこういうアバウトなところが苦手です。
自分で調べようとせずに、言語の所為にしようと
一生懸命に御託ならべる初心者は苦手です。

95 :デフォルトの名無しさん:2006/12/15(金) 23:48:44
java.lang.NoClassDefFoundErrorのエラーを解決出来ません
public static void main(String args[]) throws IOExceptionとmainメソッドはおいています
コンパイルは出来るのですが
解決のためのアドバイスをどうかお願いします


96 :デフォルトの名無しさん:2006/12/15(金) 23:54:10
怯えてないでソースと叩いたコマンドラインを晒してみ。

97 :デフォルトの名無しさん:2006/12/15(金) 23:55:33
>>95
クラスが見つからんと言われてるわけだから、クラスパス関連見直すとか、
大文字小文字間違って無いか確認とかしてみたら良いんじゃないだろか?

98 :デフォルトの名無しさん:2006/12/16(土) 00:15:37
>>96
お気持ちは嬉しいですが、ここで晒していいのかな・・・
初めての来たので、どこまで晒していいか分らないのですが、とりあえず作りました
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28980

>>97
全角スペース確認終えたので、文字チェック始めます


レスありがとうございました

99 :デフォルトの名無しさん:2006/12/16(土) 00:20:06
package private なクラスの main ってOKだっけ?忘れたけど。

100 :デフォルトの名無しさん:2006/12/16(土) 00:44:28
意味合いからしてダメな気がする。>package scope

101 :デフォルトの名無しさん:2006/12/16(土) 01:45:27
くだ質ですがお願いします・・・。
byte配列を決まったサイズにして切り出すにはどうしたら良いのでしょうか。

byte[] trim(byte[] b, int size) {
byte[] buf = new byte[size];
if(b.length > size) {
System.arraycopy(b, 0, buf, 0, buf.length);
} else {
System.arraycopy(b, 0, buf, 0, b.length);
}
return buf;
}

入力byte[]が指定サイズより短い場合は0フィルにしたいと思って、
上の用に書いてみたのですが、いささかスマートじゃない気がします。
入力バイトが何バイトかに関わらず、決まった長さのbyte配列を返したいのですが。
Byteクラスにもそれらしきメソッドが無かったので・・・。

102 :デフォルトの名無しさん:2006/12/16(土) 01:57:16
プログラムをコンパイルしたら、シンボルを解決できませんと
いうエラーが大量に出てきました。
これはどうやって解決すれば良いのでしょうか?
サンプルプログラムなのでプログラムには問題ないと思うのですが・・・

103 :デフォルトの名無しさん:2006/12/16(土) 01:59:52
>>102
コードの一部しかコピーしてないんじゃ?

104 :デフォルトの名無しさん:2006/12/16(土) 02:00:58
>>102
全角スペース入ってね?

105 :デフォルトの名無しさん:2006/12/16(土) 02:02:43
>>102
コードを見せてごらん

106 :デフォルトの名無しさん:2006/12/16(土) 02:20:13
これです。他にもあるのですが全部同じエラーが出ます。
package servlet;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class CheckServlet extends ExServlet {

public void doExecute(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException, Exception
{
String id = super.sessionCheck(request, response);
RequestDispatcher dispatcher = request.getRequestDispatcher("/insert.jsp");
dispatcher.forward(request, response);
}
}

107 :デフォルトの名無しさん:2006/12/16(土) 02:22:43
>>106
J2EE入れてる?
J2SEしか入れてないとか?

108 :デフォルトの名無しさん:2006/12/16(土) 02:32:14
J2EEの説明↓
http://e-words.jp/w/J2EE.html
サーブレットはJ2EE入れてないと動かない。

109 :デフォルトの名無しさん:2006/12/16(土) 02:35:44
それを入れてコンパイルを実行すれば上記のエラーは解消するのですか?

110 :デフォルトの名無しさん:2006/12/16(土) 02:37:12
少なくとも入れなければ解消しない。

111 :デフォルトの名無しさん:2006/12/16(土) 02:44:49
入れてコンパイルしてみます

112 :デフォルトの名無しさん:2006/12/16(土) 03:23:54
このコードが通らないんですけどなんでだめなんでしょう。
どなたか教えていただけませんか。

public class Bar<T>
{
public int Say()
{
T hoge = new T();
return 1;
}
}


113 :デフォルトの名無しさん:2006/12/16(土) 04:04:10
>>112
型パラメータでnewすることはできない。
genericsの制限についてはここらへんを読むとよいかも。
ttp://www-06.ibm.com/jp/developerworks/java/050218/j_j-jtp01255.html

114 :デフォルトの名無しさん:2006/12/16(土) 05:51:08
すいません。かなりレベル違いの質問なんですが、
.javaをワードパッドで関連付けしてしまったんですが、このまま放っておいても大丈夫でしょうか?

regeditで、 HKEY_CLASSES_ROOT を探しても、.javaが見つからないんですけど、
JDK(?)を入れて、関連付けしたほうがいいですか?
答えて頂けると助かります。

115 :デフォルトの名無しさん:2006/12/16(土) 09:27:23
>>114
好きなエディタで編集すれば良い。
問題ないよ。

116 :デフォルトの名無しさん:2006/12/16(土) 12:35:11
>>115
レスありがとうございます。
放っておいていいものか、悩んでました。
すっきりしました。ありがとう。

117 :デフォルトの名無しさん:2006/12/16(土) 14:26:42
このサイトにあるjavaソースをEclipseで実行したいんですが、
どう動かしたらよいかわかりません。
実行方法を教えてください。
ttp://www.ics.kagoshima-u.ac.jp/~fuchida/edu/algorithm/sort-algorithm/

118 :デフォルトの名無しさん:2006/12/16(土) 15:03:17
>>117
http://www.atmarkit.co.jp/fjava/rensai2/eclipse01/eclipse01.html

119 :デフォルトの名無しさん:2006/12/16(土) 15:35:22
eclipseってjavaで動作しますか?

120 :117:2006/12/16(土) 15:36:31
>>118
情報ありがとうございます。
サイトに掲載されているjavaソースは、Eclipseで作成済みで動作を実行
させるだけなのですが、それがうまくいきません。
例えば、Bubblesortを実行させようとしてもsorttestに設定されているエラーメッセージ
が出るだけです。
実行→構成および実行で何か設定をしたりするとか、あるいは、Javaソースを
自分で追加する必要があるんでしょうか。
サイト掲載のソースを使えば、掲載されているAppletのような動きをすると
思ったのですが。うまくいかないので、実行する順序を教えてください。

説明が悪くてすみません。

121 :118:2006/12/16(土) 16:18:14
>>120
自分のEclipseは英語版だけど
・ソースを全部ダウンロード
・Fileメニュー->New->Project->Java Projectを選択->Next->Project nameを適当に入力->Finish
・作ったプロジェクトにソースを全部ドラッグ&ドロップ
・Runメニュー->Run->Java Appletを右クリック->New->AppletにSortAppletかSortApplet2を入力->Runボタンを押す
これでできた。

122 :デフォルトの名無しさん:2006/12/16(土) 16:55:41
構文解析をして
文字列の "(12 + 2.34) * 11.23e4 / sin(1.2)"等を数式として計算させたいのですが
参考になるサイトや便利なライブラリはありますか?

123 :118:2006/12/16(土) 17:05:45
>>122
http://lts.online.fr/dev/java/math.evaluator/

124 :117:2006/12/16(土) 17:15:24
>>118
自分のEclipseは日本語版で
実行->実行->サーバーで実行かBeanで実行しか出てきません。
BubbleSortとかでするからでしょうか。

125 :デフォルトの名無しさん:2006/12/16(土) 18:14:45
Javaの特徴と課題、プログラミングの作成を行う場合に注意したいと考える事項について教えてくださいm(__)m
情報の授業でレポート(A4で2枚程)を書かなければいけないのですが、pcの苦手な私には何を書いたら良いのか分からなくて困っています。
簡単にでも良いのでどなたか教えていただけないでしょうか??


126 :デフォルトの名無しさん:2006/12/16(土) 18:20:41
特徴->ミスを犯しにくい
課題->教育的すぎて面白くない.C++のようにもっと変態的にすべき
注意->長時間せず休憩をはさむ

127 :118:2006/12/16(土) 18:38:54
>>124
>実行->実行->サーバーで実行かBeanで実行しか出てきません。
http://www.hellohiro.com/eclipse.htm
このページの中の
http://www.hellohiro.com/img/eclipse7.gif
この画像のようなJavaアプリケーションやJavaアプレットは無いという事ですね?


128 :デフォルトの名無しさん:2006/12/16(土) 19:48:16
>>125
初心者向けのJavaの本でもよめば書いてあると思うよ^^

129 :118:2006/12/16(土) 19:54:56
>>125
http://ja.wikipedia.org/wiki/Java%E8%A8%80%E8%AA%9E

130 :デフォルトの名無しさん:2006/12/16(土) 20:10:25
>>125
すまん・・・・分かっているとは思うんだが・・・・
PCが苦手で何故情報に・・・・
理論だけやってきてる人なんてそうそういないと思うんだが・・・

131 :デフォルトの名無しさん:2006/12/16(土) 20:11:49
125です!!

126さん>>128さん>>129さん
ありがとうございます

132 :デフォルトの名無しさん:2006/12/16(土) 20:13:31
>>130
その昔、「マスコミ関係に就職したいんです」といって、筑波大学情報学類に入学した強者がいたそうな。

133 :デフォルトの名無しさん:2006/12/16(土) 20:24:19
>>132
就職を見据えて大学を選んでいる部分は慧眼だね
その人に情報の適性があったかはともかく・・・・
先読みする能力がプログラムにもいかせられればいい方向に・・・

# 手の付けられないくらいインターフェース定義だけしまくってしまって
# 肝心の実装ができ上がらないと言う状況も想像できる・・・・

134 :デフォルトの名無しさん:2006/12/16(土) 21:11:49
125みたいにマルチするやつはどんな道を進んでもいい方向にはいかないよ
人に迷惑をかける前に自ら存在を消すのが人類への最大の貢献だ

135 :デフォルトの名無しさん:2006/12/17(日) 00:43:28
メソッド内のローカル変数をActionPerformedに渡す方法って無いですかね。
ボタンを押すと文字列をファイルに出力するようにしたいんですが、
ActionPerformed内にファイル出力の処理を記述するので、どうしてもその文字列がActionPerformedでも必要になります。

問題のメソッド(簡略化
void str(String str) {
  String s2 = str:
}

actionPerformedの内容

BufferedWriter writer = null;
try {
writer = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(log.log), "SJIS"));
writer.write(s2, 0, s2.length());
writer.newLine();
} catch (Exception e) {
e.printStackTrace();
}
try {
if(writer != null) {
writer.flush();
writer.close();
}
} catch (Exception e) {
}

問題のメソッドのs2をActionPerformedからでも呼び出せるようにしたいんですが、無理……ですかね。
良ければ回答おねがいします。

136 :デフォルトの名無しさん:2006/12/17(日) 00:55:30
>>135
いずれにせよ str メソッドが呼び出されるとすれば
actionPerformed 内になりそうなんですが。
String str はどこから取得?

137 :デフォルトの名無しさん:2006/12/17(日) 01:03:32
質問させてください。

JSpinner spin = new JSpinner();
int i = spin.getValue();

戻ってくるのがオブジェクトなんで入らないんです。。
どうやって変換すればよろしいのですか?

138 :135:2006/12/17(日) 01:16:36
>>136
ごめんなさい、あまりに大雑把でした。

まず、Javaアプレットを使ってチャットもどきのようなものを作成しようと思い、
そのチャットログの保存を目的としています。

String strはチャットのログ自体の文字列で、他のメソッドがサーバーから受け取った情報を渡されています。
メソッドstrはチャットログの「整形と表示」を担当しています。
本来は
void chatLog(name, message) { です。

整形処理は以下のように行っています。

StringBuffer sb = new StringBuffer(name);
sb.append(" > ");
sb.append("\n");
sb.append(chatLogOutput.getText());
String s = sb.toString();

チャットのログがあまり貯まりすぎるとチャット欄再描画の際に重くなるので、
文字列の長さが一定以上になると文字列を削減するようにしています。
ですが、それではチャットログの完全な保存が出来ないため、文字列削減処理の前にstrをs2に保存しています。

String s2 = str;
if(str.length() > 2000)
str = str.substring(0, 1000);

そしてs2を保存する事によって全てのログが保存できる、と考えているのですが、
ActionPerformedからs2を呼び出せないと全てが水の泡になってしまうのです。

どうにかならんでしょうか、という話です。

139 :137:2006/12/17(日) 01:23:57
事故解決
toString+Integer.parseInt()


140 :デフォルトの名無しさん:2006/12/17(日) 01:24:29
もっそい単純な話、プロパティに持たせようよ。
Swingはイベントキューで同期するからトリガがひとつならそれで問題なし。

141 :135:2006/12/17(日) 02:10:13
>>140
仰られていることが十分に理解できていないのですが、すいません、AWTで作っています。
プロパティに持たせるとはどのようにするのでしょうか?
一応ぐぐってプロパティがどういう物かは分かったのですが、これとプログラムを結びつける方法がさっぱり分かりません。
すごく初歩的なことを聞いてるんだと思いますが、よろしければご教示ください。

142 :デフォルトの名無しさん:2006/12/17(日) 02:28:24
>>137=139
それ最悪。
Integerでキャストしろ。

143 :デフォルトの名無しさん:2006/12/17(日) 04:05:01
まさに事故解決・・・・

144 :デフォルトの名無しさん:2006/12/17(日) 08:34:44
チェックボックスを表示するだけのプログラムです。
チェックボックスクラスのインスタンスを複数個の配列にしたいのですが、どうもうまくいきません。
なんとなくnewが二つあるからおかしいのかな…と思うのですが、
具体的にどう直せばいいのでしょうか?

http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=28989

145 :デフォルトの名無しさん:2006/12/17(日) 09:07:43
add(cb[0])とか追加すればいいんじゃない?

146 :144:2006/12/17(日) 09:55:59
サンクスコ!それであっという間に解決しましたorz

147 :デフォルトの名無しさん:2006/12/17(日) 10:46:47
>>138
えーと
メッセージの受信スレッドが居てその中で chatLog() が呼ばれてる、って事なのかな。
ActionListener は何を契機に呼び出されるんでしょう?
どうもプログラムの構成がつかめない・・

140氏が言ってるのは
・s2 を保存するための private 変数と、アクセスするための getter/setter を用意する
・chatLog() で setter 経由で s2 を保存する
・actionPerfomed() で getter 経由で s2 を取得する
って事だと思われます。

148 :デフォルトの名無しさん:2006/12/17(日) 11:47:59
Generic の↓の違いはなに?

ArrayList<String> list1 = new ArrayList();
ArrayList list2 = new ArrayList<String>();
ArrayList<String> list3 = new ArrayList<String>();

個人的に cast が減ることよりも <String> って書く方が EoD から遠い


149 :135:2006/12/17(日) 15:18:57
>>147
望んでいた処理ができそうです。

>>140さん、
>>147さん、
分かりやすい説明ありがとうございました。


150 :デフォルトの名無しさん:2006/12/17(日) 16:57:26
>>148
俺も最初そう思った。
HashMap<String, ArrayList<HogeHoge>> listMap = new HashMap<String, ArrayList<HogeHoge>>();
とか書いて、「このやたら長い1行はいったい何だ?」と思った。
でも、1度書いてしまえば、
for(HogeHoge hoge : listMap.get("foo")){
 //
}
って書けるし、ちょっとは幸せになったのかもしれないよ?1.4だとこうだし。
for(Iterator iter = ((ArrayList)listMap.get("foo")).iterator(); iter.hasNext(); ){
 HogeHoge hoge = (HogeHoge) iter.next();
 //
}
そもそもJavaでEoDは限界があるというのなら、同意する。

151 :デフォルトの名無しさん:2006/12/17(日) 17:34:10
EoDは、プログラムの安全性を高める意味も含めてEoDだ。
コレクションが間違った使われ方されるのを減らせるだろ?
一人でプログラムを全部書く日曜プログラマには関係ないかもしれんがな。

152 :デフォルトの名無しさん:2006/12/17(日) 18:25:11
でもどうせ Generics 対応をうたうなら
後方互換性を多少切り捨ててでも
erasure なんて導入しないで欲しかった。

153 :デフォルトの名無しさん:2006/12/17(日) 20:07:18
>>150

for(HogeHoge hoge : listMap.get("foo")){
 //
}

これは確かに楽だと思う。便利なのも認める。
でも、これを使うために

HashMap<String, ArrayList<HogeHoge>> listMap = new HashMap<String, ArrayList<HogeHoge>>();

を書く方が鬱に感じるのは時代遅れですか!

Listは一時的に値を格納するローカル変数で良く使うけど
別のインタフェースへガンガン渡していくような使い方はあまりしないしなぁ。

>> 151

> コレクションが間違った使われ方されるのを減らせるだろ?

それは部品を提供する側のインタフェース設計の問題と思うけど。
間違った使われ方されないように、されても問題が分かるように作るべきじゃないかなぁ。
安全性といわれると、今までGenericの無かった1.4までのプログラムは
安全じゃなかったということにはならないし。

たしかに想定外の使い方しまくる人も結構いるけどさ(笑)
ビビルというか、焦るよね。

154 :デフォルトの名無しさん:2006/12/17(日) 20:08:53
んなことねーよ、Generics登場前のコレクションは
ループの中でinstance ofしないのは糞というコードチェッカーもあった。

155 :デフォルトの名無しさん:2006/12/17(日) 20:47:51
tiger の generics はかなり制限が多いから
安全性なんてたかが知れてるよ。
バイトコードには型情報入ってないんだから。
限られた状況でIDEの入力補完が期待できたり、
限られた範囲で型チェックしてくれる程度。
それでもないよりはマシ。

156 :デフォルトの名無しさん:2006/12/17(日) 23:20:38
>>153
型推論させたら?
public static <K,V> Map<K,V> newHashMap() {
return new HashMap<K,V>();
}
上記ネタは↓から
疑似typedefアンチパターン
ttp://www-06.ibm.com/jp/developerworks/java/060310/j_j-jtp02216.shtml

157 :デフォルトの名無しさん:2006/12/18(月) 00:11:48
javaでrandom()を使って乱数を作ろうと思うんですが、

C言語みたいに "a" + 1 = bってのは保障されてないんでしたっけ?
任意の桁だけ[0-9a-z]で生成したいんですけど・・・。

7a3y1jとか6a8x5dとか、au92r3みたいにバラバラでもいいかなと。

158 :デフォルトの名無しさん:2006/12/18(月) 00:26:20
C言語が保障してるんじゃなくて文字コードが保障してるんだが。
UnicodeもASCIIの部分はそのまんまだよ。

159 :デフォルトの名無しさん:2006/12/18(月) 00:39:32
>>158
あ、C言語じゃなくてASCII側が保障してるんですね

スレ違いだったかもしれませんけど有難うございました。

160 :デフォルトの名無しさん:2006/12/18(月) 05:32:07
>>156
どうしてコンストラクタは型推論しないの?

161 :156:2006/12/18(月) 18:44:01
>>160
ごめん、云っている意味がわかんない。
Genericsの仕様のことについて? それとも私が156で書いたコードについて?

162 :デフォルトの名無しさん:2006/12/18(月) 19:04:41
以下のような簡単なプログラムをつくりましたが、実行するとエラーになってしまいます。
public class UrlDecode {
public static void main(String[] args) {
try {
// "%91S%95%94" は、"全部"を SHIFT_JIS で URLEncode したもの
System.out.println("decoded: " + java.net.URLDecoder.decode("%91S%95%94", "SJIS"));
}
catch (Exception e) { e.printStackTrace(); }
}
}

C:\>java UrlDecode Exception in thread "main" java.lang.UnsupportedClassVersionError: UrlDecode (Unsupported major.minor version 49.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)

環境はWindowsXP(SP1)。Java環境は以下の通りです。
C:\>java -version
java version "1.4.2_07"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_07-b05)
Java HotSpot(TM) Client VM (build 1.4.2_07-b05, mixed mode)

エラーメッセージの意味がいまいち掴めないのですが、何がダメでどうすれば動くようになるんでしょうか?

163 :デフォルトの名無しさん:2006/12/18(月) 19:09:35
>>161
160じゃないけど、Genericsの仕様についてじゃないかと。
public static <K,V> Map<K,V> newHashMap()
ってシグネチャで型推論できるんだから、
public HashMap<K,V>()
ってシグネチャのコンストラクタでも型推論できたっていいだろう、
って俺も思った。型の自明さで言えば、コンストラクタの方が
staticメソッドよりもより明らかな訳だし。

164 :162:2006/12/18(月) 19:10:16
ちょっと調べたんですが、コンパイルした環境より実行する環境のJavaバージョンが古いと出現するエラーだということでした。
でも同じマシンでコンパイルして、実行しています。
ますますわかりません。

165 :デフォルトの名無しさん:2006/12/18(月) 19:15:54
>>164
javac -version して、コンパイラのバージョンも調べてみたら。
後は、パスの順番の問題だろう。

166 :163:2006/12/18(月) 19:17:11
genericsの型推論の件でググってみたら、こんなのを見つけた。
ttp://forum.java.sun.com/thread.jspa?threadID=668411&start=0&tstart=0
ちっと読んでみるわ。

167 :デフォルトの名無しさん:2006/12/18(月) 19:22:15
JAVAソケットプロプログラミングでUDPのTTLを設定したのですが、
どうすればいいのでしょうか?
DatagramSocketImplのsetTimeToLive(int ttl) を使えばできそうなのですが、
インスタンスを生成できません。。。
やりたいのは
DatagramSocket socket = new DatagramSocket(SERVER_PORT);
を生成して、
socketのTTLを2とか3に設定することです。

168 :デフォルトの名無しさん:2006/12/18(月) 19:23:13
>162
49.0ってことはコンパイラはJDK5.0使ってる。
たぶんPATHがおかしいのではないか。

169 :162:2006/12/18(月) 19:47:36
>>165,168
ありがとうございます。
PATHをJDK5.0の方に通して

C:\>java -version
java version "1.5.0_08"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_08-b03)
Java HotSpot(TM) Client VM (build 1.5.0_08-b03, mixed mode, sharing)

となるようにしました。
ですが相変わらず先ほどのエラーのままです。
困りました。。。

170 :デフォルトの名無しさん:2006/12/18(月) 20:11:13
なんでそうなるっw

171 :デフォルトの名無しさん:2006/12/18(月) 20:54:24
で、結局

Generic の↓の違いはなに・・・

ArrayList<String> list1 = new ArrayList();
ArrayList list2 = new ArrayList<String>();
ArrayList<String> list3 = new ArrayList<String>();


172 :デフォルトの名無しさん:2006/12/18(月) 21:47:58
swingでGUIプログラムを組んでるんですが
やっぱりウィンドウの描画は描画専門クラスにして
イベントはイベント専門クラス
各コンポーネントはstaticにするのが定石なんですか?



173 :デフォルトの名無しさん:2006/12/18(月) 22:56:38
>>172
staticって、シングルトンかstaticメソッドのみのクラスにするってこと?
コンポーネントのレイヤーによるけどあまり多くはやらないな。
いろいろ作ってみて思ったことはこんな感じ。

・イベント処理は、StrutsのActionみたいな感じで作ると楽。いわゆるコントローラ?ただしStruts同様statelessで。
ここでは、UIからパラメタ取得してドメインオブジェクトのメソッド実行をする。
・イベント処理の結果を画面に反映させる処理は、UIに書いた方が楽。具体的には内部無名クラスに直書き。
無理してコントローラに書くとインタフェースが複雑になる。
・SwingのActionインタフェースは、例外処理とかログ出力とか考えると機能不足。
継承したり独自のActionクラスを作ったりAOPしたりといったカスタマイズが要る。
・Actionのディスパッチは、DI的にすると作りやすい。
GUI部分は、public Action getAction(String key)のようなメソッドを持つコンテナだけを知っている。
・DI的なコンテナはシングルトンで。他にシングルトンは作らない。
・モデルオブジェクトの管理もDI的なコンテナに任せる。
・とあるUIでデータ更新→それに合わせて別のUIでも更新、といった処理は、イベントとして処理。
そのためのイベント処理の枠組みを、DI的なコンテナに実装する。

とか思ってたら、Eclipseプラグインの作り方に似てきたような気がしてきた。
Eclipse Platformって面倒くさいけど、Swingの後に作っただけに便利なところは結構あるね。

174 :デフォルトの名無しさん:2006/12/18(月) 23:25:04
Java IDLでのCORBA接続はスレ違いでしょうか?
CORBAスレがほとんどないので質問させてください。

ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/guide/idl/GShome.html
ここを見てCORBAサーバを作成しました。
対抗もJavaで作ると当然うまく接続できるのですが、
他パッケージで作成したアプリでつなごうとして、
ネーミングコンテキストが分からず詰まってしまいました。
(ネーミングサーバの問い合わせにコンテキストのid/kindを文字列で要求されるので…)

上記CORBAサンプルのHelloクラスへ接続する
ネーミングコンテキストのid/kindは何なのでしょうか?
それともPOAはそういう使い方に適さないのでしょうか?

サーバ側のJ2SDK1.4.2、ネーミングサーバはorbdです。

175 :172:2006/12/19(火) 00:10:42
>>173
ありがとう
シングルトンって意味を調べたら
私のしたかった事がわかりました。
デザインパターンの勉強します。


176 :デフォルトの名無しさん:2006/12/19(火) 05:32:33
何回実行されるかという問題ですが、ちんぷんかんぷんなのでよければ教えてください。
 for(a=0; a*a<10)
for(a=0;; a++)

177 :デフォルトの名無しさん:2006/12/19(火) 07:41:35
意味分からん

178 :デフォルトの名無しさん:2006/12/19(火) 07:44:35
ピクセルグラバーって矩形しか抽出できないんですか?

179 :デフォルトの名無しさん:2006/12/19(火) 10:23:32
DI的なコンテナってなに?

180 :デフォルトの名無しさん:2006/12/19(火) 12:31:34
どこで聞けばいいのかわからなかったのでここで質問させてください。
とあるテキストで、分数を約分するというプログラムが紹介されていたのですが
そのアルゴリズム、というか説明で

「約分は、分子と分母の絶対値を比較し、大きい方の値で分子と分母を割っていきます。
割り切れなかったときは値を1減らし、再度割り算を試みます。どちらも余りが0になったときに割り切れたことになるので、
そのときの商を、それぞれの分子と分母の値とします。この繰り返しで、約分を実現します。」

と書いてあったのですが、最大公約数が値の小さい方よりも大きくなることはあるのでしょうか?

181 :デフォルトの名無しさん:2006/12/19(火) 12:44:19
>>180
絶対値化した後なら、当然ない。
その説明を書いた人はユークリッドの互除法を知らないんですかね。


182 :デフォルトの名無しさん:2006/12/19(火) 12:48:13
Javaアプレットで、ボタンを押すとアプレットサイズが変わるようなものを作っているのですが、
HTML側で指定した範囲を超えると、当然ですがはみでた部分が描画されません。
アプレット側から設定を変更するような命令を出すことはできるのでしょうか?

183 :デフォルトの名無しさん:2006/12/19(火) 12:51:02
int[] a;

int a[];
は両方使えるんですか?
何か違いはありますか?

184 :180:2006/12/19(火) 12:51:41
>>181
技術評論社の本格学習Java入門というテキストなんですが、
書店でぱらぱらっと見た限りではよさそうだったんですが
購入してじっくりと見てみると、誤植の多いこと・・
テキスト買い換えることにします。ありがとうございました

185 :デフォルトの名無しさん:2006/12/19(火) 12:54:10
>>183
両方OK。動作上の違いは無し。

186 :183:2006/12/19(火) 12:55:10
>>185
ありがとうございます。^^

187 :デフォルトの名無しさん:2006/12/19(火) 13:12:31
>>174
NamingContext と NamingContextExt の違いのせい。
例題を NamingContext で作り変えて試してみるとか。

188 :デフォルトの名無しさん:2006/12/19(火) 13:48:58
JavaScriptの経験はありますが、Javaは未経験です。
JSのNumber.toFixed()に相当する物はありますでしょうか。
 a = 3.1416;
 b = a.toFixed(2); // 小数点以下2桁までを文字列化して"3.14"を得る
の様な。
Number、Double、String辺りを見ましたが、自分には見付けられませんでした。
TIA.

189 :デフォルトの名無しさん:2006/12/19(火) 14:19:47
>>188
b = new DecimalFormat("#.00").format((double)a);

Java5以降であれば、
b = String.format("%.2f", a);
という感じ。


190 :デフォルトの名無しさん:2006/12/19(火) 15:42:35
質問させていただきます。
複雑な階層構造をもつ任意のフォルダを引数として渡して、その中身をJarにまとめてくれるメソッドを
探していたのですが、どうもJava APIの中にそこまで強力なものはないようです。自分でJarOutputStreamを
使って実装するしかないのでしょうか。
この機能が無いということは、このようなことをしようと思った場合、Jarにまとめたいフォルダの階層が
わかっていて、それに対応したプログラムを毎度書いてやるのが普通なんでしょうか。しかし、プログラマが
必ずしもフォルダの階層構造を知っているとは限りませんし、いちいち対応するというのもどうかと思います。
そこで上記のような強力なメソッドが欲しいわけですが、なにか参考になるページはないでしょうか。

191 :デフォルトの名無しさん:2006/12/19(火) 16:09:34
>>190
階層なんて知らなくても、トップのディレクトリだけ渡して
後は再帰的に漁ってJarにでも何でもまとめればいいんでねの?

192 :デフォルトの名無しさん:2006/12/19(火) 17:00:58
>>190
jarコマンドの機能が欲しかったら、プログラム内でjarコマンドを起動すれば?
sun.tools.jar.Mainでもいいかも。


193 :デフォルトの名無しさん:2006/12/19(火) 18:03:37
質問です。
PHP4あるいは5のurlencode関数で「全部」というSJISの文字列をエンコードすると
%91S%95%94
となります。
コード↓
print(urlencode("全部"));

これをJava組み込みのURLデコードメソッドでデコードすると
?S部
と化けた状態になってしまいます。
コード↓
System.out.println(java.net.URLDecoder.decode("%91S%95%94", "SJIS"));

試しに
System.out.println(java.net.URLEncoder.encode("全部", "SJIS"));
してみたら
%91%53%95%94
となりました。

どうすればPHPでエンコードした値を、Javaで正常に戻すことができるようになりますか?
JavaSDKのバージョンは1.4.2です。


194 :デフォルトの名無しさん:2006/12/19(火) 18:28:00
>>193
このへんが参考になるかと思います。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=8433&forum=12&5

まとめると、「%91S%95%94」というエンコード方法が仕様上間違いなの
で、URLDecoderでも正しく扱えない、と。

回避するとしたら、エンコードされた状態から自力でbyte[]にするしか
ないかなあ。



195 :193:2006/12/19(火) 20:32:39
>>194
ありがとうございます。
やはりbyte[]でシコシコやるしかないかなあと諦めていたら、さすが jakarta。

commons codec で、その悪い仕様でURLエンコードされた文字列をデコードできるとのこと。
http://jakarta.apache.org/commons/codec/
の↓です。
http://jakarta.apache.org/commons/codec/api-release/org/apache/commons/codec/net/URLCodec.html#decode(java.lang.String,%20java.lang.String)

↓のやり取りから発見できました。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25659&forum=12&5


URLエンコード側は別システムでいじれないため、助かりました。

196 :デフォルトの名無しさん:2006/12/19(火) 22:51:13
実数値が扱えない状況でval1 / val2を行ったとき,
小数第一位が5以上であれば,
val1 / val2で割った値を切り上げるrintメソッドを作りました。

public static int rint(int val1, int val2) throws ArithmeticException{
 int rest = val1 * 10 / val2;
 return (rest % 10) < 5 ? val1 / val2 : (val1 / val2) + 1;
}

このメソッドの実行速度をもう少し速めたいのですが,
知恵を拝借できませんでしょうか?

197 :デフォルトの名無しさん:2006/12/19(火) 23:25:01
http://www.javadrive.jp/servlet/response/ResponseSample1.java

ここにあるサンプルソースでどうして
out.println(new String(sb));
と、最後にnewしてるのかわかりません。
教えてください。

198 :デフォルトの名無しさん:2006/12/19(火) 23:44:21
sbはStringBufferだからStringにしてやる必要がある

199 :デフォルトの名無しさん:2006/12/19(火) 23:56:03
そうだが、大抵はtoString()だよな。
どっちにしても、StringBuffer#toString()でnew String()してるから、結局は一緒なんだけど。

200 :デフォルトの名無しさん:2006/12/20(水) 00:32:28
>>196
(val1 * 2 + val2) / (val2 * 2)

201 :デフォルトの名無しさん:2006/12/20(水) 01:33:33
>>187
回答ありがとうございました。

こちらでも試行錯誤していて、
NameComponentのkindアトリビュートに無理やり値を入れたら
解決したんですが、これはいいんだろうか…

String name = "Hello";
NameComponent path[] = ncRef.to_name( name );
path[0].kind = "hoge"; // add
ncRef.rebind(path, href);

NamingContextに変えてみるのも試してみます。

202 :デフォルトの名無しさん:2006/12/20(水) 01:44:09
ここでよく出てくる#の意味を教えてください。
例えば199さんとか


203 :デフォルトの名無しさん:2006/12/20(水) 01:54:14
おしえてあげないよ、ジャン♪

204 :デフォルトの名無しさん:2006/12/20(水) 01:56:54
puclic class Hoge {
 static class A{
  
}

void main() {





205 :デフォルトの名無しさん:2006/12/20(水) 02:07:56
すいませんEnter押しちゃいました

puclic class Hoge {
 static class A{
〜〜〜〜〜  
}

void main() {
while (条件){
 if(条件) {
  enqueue(a);
  A a = new a();
  処理;
 }
}

みたいな感じでwhileループの中でキューに追加しては次々と新しい同名オブジェクトを
生成するプログラムを書いてるんですが、キュー追加後のオブジェクトがゴミとなるため
VMがGCでひどく時間を食うようです。生成するオブジェクトをリンク付きリスト構造でつないで
メモリを再利用できるようにしてゴミを出さないようにできるらしいのですが、よく分かりません。
どなたか簡単な感じで教えていただけませんか?



206 :デフォルトの名無しさん:2006/12/20(水) 02:29:56
>>202
StringBuffer.toString()
って書いたら違和感感じない?

207 :デフォルトの名無しさん:2006/12/20(水) 05:50:26
違和感が湧かん

208 :デフォルトの名無しさん:2006/12/20(水) 07:30:30
以下の、画像を拡大縮小するプログラム(詳細はリンク先)のバグがどうにもとれません。
左上(resize_switch=1)と右上(resize_switch=3)の場合は正常に動作するのですが、左下と右下の処理ができない状態です。
別の処理をかませて見たところ、どうもresize_switchの値を変えるイベント自体が発生していないようで
mouseMovedがおかしいのかもしれません。

http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29001

209 :デフォルトの名無しさん:2006/12/20(水) 09:41:47
>>208
if-else文の構造が間違ってる
↓これだと処理Bは一生実行されない
if(条件A) {
 処理A
}else if(条件A) {
 処理B
}

210 :デフォルトの名無しさん:2006/12/20(水) 10:30:13
int A=1;
int B=2;
・・
switch(C){
case A:
・・
case B:
・・
}

がエラーって言われます。
Cの場合はAとBをマクロで記述すればOKだったのですが、javaではどのように
対処するのが一般的ですか?
とりあえず、if〜elseをダラダラ書けば解決しますが。。

211 :デフォルトの名無しさん:2006/12/20(水) 10:40:18
caseは定数で。

212 :デフォルトの名無しさん:2006/12/20(水) 11:42:54
>>210
final int A = 1;
final int B = 2;

213 :デフォルトの名無しさん:2006/12/20(水) 11:59:41
LinkedListに要素が[moge|,hoge|,hige]
って入っていた場合に、
mogeやhogeの後ろにある"|"だけを消したい場合
はどうすればいいんでしょうか?


214 :デフォルトの名無しさん:2006/12/20(水) 12:31:48
javax.media.Player.getVisualComponent()で取得したComponentのサイズについて質問です。

○JRootPaneにaddするとフルサイズで描画される。
○JPanelにaddするとComponentのデフォルトサイズで描画される。
?JPanelにaddしたComponentのサイズはsetPreferredSizeを変えても変更できない。JButtonは変えられる。
?JPanelへaddImpl(component, null, -1)を使用してもComponentのデフォルトサイズで描画される。

JRootPaneのaddとJPanelのaddは大きく何が異なるのかがよく分かりません。
また箇条書きにした?の項目(特にsetPreferredSizeが無効)がよく分かりません。
一瞬だけsetPreferredSizeが有効になり、repaintでサイズが元通りにされるのかと思ったのですがそういう訳でもなさそうです・・・。
大人しくJRootPane使っとけば正解なのでしょうか。

215 :デフォルトの名無しさん:2006/12/20(水) 18:39:20
GUIについての質問なんですが
1JFrameを継承したMyFrameを作成
2.MyFrameをフィールドとしてJButton button_,JLabel label_および
JTextField textField_を持つ。これら3つはコンストラクタ内でMyFrame内にaddされる
3.MyFrameはFlowLayoutでサイズ400×300とする。
4.textField_に数字を入れてボタンをおすと、数字が素数の場合にはlabel_に
True,素数でなければFalseが表示される。

以下の問題の4の書き方が分からないです。
GUIに先入観があるから難しいのかもしれませんが、ヒントだけでもくださったら
ありがたいです。

216 :214:2006/12/20(水) 18:51:31
>>215
ActionListenerでボタンのイベントを拾う
イベントを受けたら素数のチェックを行う
結果を表示する
って感じでどうでしょうか。

217 :デフォルトの名無しさん:2006/12/20(水) 19:25:27
>>216
ありがとうございます。方針が分からなかったので大変助かりました。

218 :デフォルトの名無しさん:2006/12/20(水) 20:55:32
魚眼カメラからの画像を射影変換させたいのですが、全くわかりません。
サンプルとか持ってる方いませんか。。。

219 :デフォルトの名無しさん:2006/12/20(水) 21:23:34
非常に漠然とした質問で申し訳ないのですが、
ウインドウを複数用意し、中で描画される図・画像が連携して動くようなプログラムは可能でしょうか?
また、二つのウインドウA,Bを用意し、Aに描画されたものと同じものを拡大縮小率を変えてBで描画するといったプログラムは可能でしょうか?

もし可能であれば具体的にどのように設計をすればよいかをご教授くださればと思います。
よろしくお願いします。

220 :デフォルトの名無しさん:2006/12/20(水) 21:41:37
>>219
AとBを持つクラスを作ればおk

221 :デフォルトの名無しさん:2006/12/20(水) 21:59:51
ウインドウをマウスでリサイズするときに
ウィンドウの外に現れる枠を表示する方法を教えて下さい。

222 :デフォルトの名無しさん:2006/12/20(水) 22:04:08
できればawtで表示する方法でお願いします。
もしも無ければswingで表示する方法を教えて下さい。

223 :デフォルトの名無しさん:2006/12/20(水) 23:10:56
javaの数学クラスMathで指定した小数点を四捨五入するメソッドってないの?

224 :デフォルトの名無しさん:2006/12/20(水) 23:20:27
>>223
java.lang.Mathまで限定できているなら、もう一息だ。
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Math.html#round(double)

225 :デフォルトの名無しさん:2006/12/20(水) 23:22:04
#の部分は要らんな。優しすぎて依存しちゃうぞ♥

226 :215:2006/12/20(水) 23:38:05
問い1を解いていたら他にも分からないところが出たので、
丸投げスレでも聞いてみます。
(javaの宿題スレなどで)

227 :223:2006/12/20(水) 23:43:31
>224 サンクス!!本当にここの人たちはやさしいな。
   でも、このfloorは整数にしちゃうつまり小数第1位で四捨五入するんだろ。
   小数第2位や3位で四捨五入するように指定できないの?

228 :デフォルトの名無しさん:2006/12/20(水) 23:55:23
BigDecimal#setScale使え。

229 :デフォルトの名無しさん:2006/12/21(木) 00:04:20
>>227
public static double round2(double val, int digit){
double weight = digit > 0 ? Math.pow(10, digit) : 1/Math.pow(10, -digit);
return Math.round(val / weight) * weight;
}

230 :デフォルトの名無しさん:2006/12/21(木) 00:18:09
>>229
というメソッドが、Commons Mathにあった。
ttp://jakarta.apache.org/commons/math/api-1.1/org/apache/commons/math/util/MathUtils.html#round(double, int)
ところでCommons mathって、結構充実してるんだな。行列計算とかガンマ分布とか。

231 :困ってます:2006/12/21(木) 02:07:19
次のような課題が出たのですが、どうしても解けません。。よろしくお願いします。

数n を入力し、幅 n で高さ n の以下のような直角三角形を2つ並べて画面に表示するプログラムを書け。
これは n が5の場合の例。

S
SS
SSS
SSSS
SSSSS
S
SS
SSS
SSSS
SSSSS


232 :困ってます:2006/12/21(木) 02:18:02
S
SS
SSS
SSSS
SSSSS
S
SS
SSS
SSSS
SSSSS

233 :困ってます:2006/12/21(木) 02:19:49
すいません。Sの並びが逆でした。本当は
S
SS
SSS
SSSS
SSSSS


234 :困ってます:2006/12/21(木) 02:22:28
何度もすいません。上のも違います。左右反対にした形です。入力しても上のように
出てしまいます。

235 :デフォルトの名無しさん:2006/12/21(木) 02:43:14
宿題ならこっちで

★★ Java の宿題ここで答えます Part 59 ★★
http://pc8.2ch.net/test/read.cgi/tech/1165167516/

ただしあっちのスレの>>1をよく読むこと

236 :デフォルトの名無しさん:2006/12/21(木) 03:19:05
質問です。
LG3Dのデスクトップ環境全体の拡大縮小って制御って可能ですか?


237 :デフォルトの名無しさん:2006/12/21(木) 09:17:30
以下のように処理時間を計測して平均をとりたいのですが、ガベージコレクタが動作して時々異常に高い値が出たりして、データが実情とそぐわないものになってしまいます。
何かよい方法がありますでしょうか?よろしくお願いします。


String stringTest;
long beforeTime[]=new long[30];
long afterTime[]=new long[30];
long average=0;
for (int i = 0; i < 30; i++) {
beforeTime[i] = System.currentTimeMillis();
for (int j = 0; j < 10000; j++) {
stringTest = ("a");
stringTest = stringTest + ("b");
stringTest.equals("");
}
afterTime[i] = System.currentTimeMillis();
}
for (int i = 0; i < 30; i++) {
System.out.println(i+":"+(afterTime[i]-beforeTime[i])+"ms");
average+=(afterTime[i]-beforeTime[i]);
}
System.out.println("平均:"+(average/30)+"ms");

238 :デフォルトの名無しさん:2006/12/21(木) 09:27:10
>>237
実情って何?

239 :デフォルトの名無しさん:2006/12/21(木) 09:35:03
まさにそれが実情だわな。

240 :237:2006/12/21(木) 09:39:17
>>238
たとえば、
ほとんどの値が20msくらいなのに、2〜3個だけ突然500msとか時間がかかってしまい、
平均値が一気に跳ね上がってしまうんです。
ガベージコレクタを抜いた平均はきっと20msくらいだと思うんですけど。
どうしたらガベージコレクタで跳ね上がった数字を除いた平均がとれますでしょう。
コード上の改良でも、統計っぽい加工でも、どちらでもかまいませんので、ヒントでもいただけると助かります。
よろしくお願いします。

241 :デフォルトの名無しさん:2006/12/21(木) 09:59:26
時々GCがおきてそれだけ時間がかかるんだから、それが「実情」だって事じゃないの?
恐らく常にGCは起きてるけど、時々FullGCがあった時だけ跳ね上がってるはず。
GCを起きなくしたいのか? それじゃテスト内容が変わっちゃうぜ?
ただ単に跳ね上がった数字をはじきたいだけなら、閾値を超えたら無視するだけのこと。

242 :デフォルトの名無しさん:2006/12/21(木) 10:07:25
つーかガベージコレクタ関係なくね?

243 :デフォルトの名無しさん:2006/12/21(木) 10:07:59
stringTest.equals("");
つーか何してるわけ?

244 :デフォルトの名無しさん:2006/12/21(木) 10:15:28
テストの内容がわかめ

245 :デフォルトの名無しさん:2006/12/21(木) 10:37:10
jdbcの質問です。
192.168.1.93(クライアント)から、192.168.1.2:5432(サーバ)にインストールされたPostgreSQLにアクセスする時(実行時)にエラーを出してしまいます。

実行時エラーログ
org.postgresql.util.PSQLException: Connection refused. Check that the hostname and port are correct and that the postmaster is accepting TCP/IP connections.

ソースコード(問題個所のみ抜粋)
Class.forName("org.postgresql.Driver");//ここは成功
Connection con = DriverManager.getConnection("jdbc:postgresql:hellodb://192.168.1.2:5432/","postgresql","");//ここでエラー

192.168.1.93(クライアント)のノートンFWのログ
日付: 2006/12/21 時刻: 10:20:09
C:\WINNT\system32\java.exe が初めてインターネットにアクセスしようとしています

192.168.1.2(サーバ)のノートンFWのログ
アクセスされた形跡無し。

246 :デフォルトの名無しさん:2006/12/21(木) 10:50:53
ブラウザのロケール情報からWindowsで使われている文字コードを取得することは可能でしょうか。
ja -> MS932 みたいな感じで。

247 :237:2006/12/21(木) 11:04:05
>>返答くれてる方達みんな
ありがとうね!
stringTest.equals("")は、それがないとコンパイラがコンパイル時に最適化してforループ内が実行されない場合があったのでいれてます。テスト内容に意味はありません。分かり難い説明でごめんね。
>>241
カットオフのラインの求め方で何かお勧めの方法はありますでしょうか?
簡単に思いつくのは、一度目はテストとして実行して平均と標準偏差のデータをとり、そこから信頼区間を求めてその信頼区間をカットオフのラインにする方法です。
そして、二回目の実行でカットオフのラインを利用して平均を取り直して値を採用します。

他に何かよい方法やご意見はありますでしょうか?
241様以外の方でも、何かよい方法等が御座いましたらぜひお願いします。

248 :223:2006/12/21(木) 11:07:12
>229 サンクスありがとうかぶっててごめん

249 :245:2006/12/21(木) 11:48:01
自己解決しました。
書き方が間違ってたらしい。

でも、あたらしいエラーが・・・。
org.postgresql.util.PSQLException: FATAL: no pg_hba.conf entry for host "192.168.1.93", user "postgresql", database "hellodb", SSL off
また調べなきゃ・・・。

250 :助けて:2006/12/21(木) 13:32:39
お絵描きをする課題が学校ででたのですがpublic_htmlディレクトリにアップレットのクラスファイルの置き方がわかりません。
どうすればいいのですか?

251 :デフォルトの名無しさん:2006/12/21(木) 16:14:57
ファイル出力について
出力ファイルを指定した後で
Consoleで文字列を打ち出すようにプログラムを組むにはどうしたらいいですか?
空白の行でEnterキー打つまでループするものとします


PrintWriter OutputFile;

OutputFile = FileIo.fWrite("A.txt", false);

(この間です)

OutputFile.close();

252 :デフォルトの名無しさん:2006/12/21(木) 16:26:52
getTimeメソッドを使って処理開始直前と直後の経過時間を調べて処理に要した時間を調べる方法以外に
処理時間を計る方法ないですかね?

分散処理なんかをしていると他のジョブの待ち時間なんかも計測されるみたいなので自分のプロセスだけの時間を調べたいんですが

253 :デフォルトの名無しさん:2006/12/21(木) 18:18:29
みなさんこんにちは。
Windowsのデータソースにcsvファイルを登録して、ResultsetからgetStringで読み込んだところ(ファイル名がテーブル名になるんですね、初めて知りました)、うまく読み込めたと思ったのですが、なんと長い文字列が255バイトで切られてしまいます。
これは、Accessでいうところのテキスト型に決めうちされ、よってフィールドサイズは最大で255ということにされてしまうのでしょうか?
同僚によると、ドライバの仕様だからどうしようもないとのことなのですが。
なんとかならないものでしょうか?


254 :デフォルトの名無しさん:2006/12/21(木) 19:27:23
>>252
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/management/ThreadMXBean.html
これは使えないかな?
俺はよく分からないから「CPU時間」とか「CPU time」とかで検索してみて。

255 :デフォルトの名無しさん:2006/12/21(木) 19:42:48
SwingでDB接続するアプリを開発する際、DB接続パスワードを利用者に
知られないようにするいい方法はありますか?
簡単な暗号化をかけても、jarファイルを配布するわけだから、
javaコードを逆コンパイルされたら暗号化ルーチンがばれて駄目だと思うんですが

256 :デフォルトの名無しさん:2006/12/21(木) 19:45:11
公開鍵暗号

257 :デフォルトの名無しさん:2006/12/21(木) 20:06:05
ダメだろ、認証方式に問題ありだ。
公開鍵方式だろうが、アプリケーションが秘密鍵を持つんだから同じ事。

が、パスワードを知られない方法はパスワードを空にすることです。
無いものは知られようがない。
DBを守るための三層構造だったりするんだけどな。

258 :デフォルトの名無しさん:2006/12/21(木) 20:28:45
何いってんだ?

259 :デフォルトの名無しさん:2006/12/21(木) 22:52:52 ?2BP(0)
Javaでテトリス作る場合、どうやってクラス分けすればいい?

260 :デフォルトの名無しさん:2006/12/21(木) 23:27:56
>>259
落ちてくる基底物体クラス、それを拡張した各物体
画面クラス、キーアダ・・・あぁー面倒になった。


261 :デフォルトの名無しさん:2006/12/21(木) 23:40:17
BitSetをフル活用すればいいと思うよ。

262 :デフォルトの名無しさん:2006/12/22(金) 01:02:11
>>255
いい方法は私が知っている限りないけど、>>257が云っているように三層構造にするのが無難。
要するにクライアントから直接DBアクセスせずに、WebServiceなどを経由して、DBにアクセスする。
こうするとDBにクライアントがアクセスすることはないからパスワードを保存する必要がない。
クライアント<->WebService<->DataAccessComponents<->DBって感じ。

あと注意点としてできればパスワードなどは、String 型のオブジェクトに格納せずにChar型の配列に格納してください。
上記の注意点については、Java 暗号化拡張機能(JCE)の「パスワードベース暗号化の使用」欄に書いてありますが。

263 :デフォルトの名無しさん:2006/12/22(金) 09:37:03
>>255
最終的にはメモリ覗けば分かるんだし、
ある程度のレベルで隠蔽できてれば良いと思う。
それで文句言ってくるようなら、プロンプト出すから勝手に入れろ、で。

264 :デフォルトの名無しさん:2006/12/22(金) 10:03:48
おはようございます。
j2sdk-1_4_2_12-windows-i586-p.exe をダウンロードしたいのですが
見当たりません。
どなたかご存知であればお教え願います。

iアプリの開発にはこのバージョンでないとダメみたいなんです。


265 :デフォルトの名無しさん:2006/12/22(金) 10:11:37
>>264
1.4.2系の最新版(1.4.2_13) じゃなくて 1.4.2_12 なんか?
http://java.sun.com/products/archive/j2se/1.4.2_12/index.html

266 :デフォルトの名無しさん:2006/12/22(金) 10:11:47
すいません。自己解決しました。

267 :デフォルトの名無しさん:2006/12/22(金) 10:16:34
ともったら1.4.2_11でした。
とりあえずこれで乗り切れるとは思うので試してみます。
もし知ってる方が居られましたら、引き続き宜しくお願いします。

268 :デフォルトの名無しさん:2006/12/22(金) 10:17:49
あっ!
レスありがとうございます。
1.4.2_13のほうが間違いなく大丈夫そうですね!
ありがとうございます!

269 :デフォルトの名無しさん:2006/12/22(金) 11:04:03
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29011

のようなメーラーを作ったんですが、
503 Need MAIL command エラーが出ます
何が悪いんでしょうか?

なお、SMTPとアドレスは適当になってますが、実際は正しい(と思われる)のを入れてコンパイルしてます。
(もしかして、SMTPサーバアドレスが違う際に出るエラー?)

270 : :2006/12/22(金) 15:50:11
Swingのイベントディスパイッチスレッドから呼び出されたメソッドの中でRuntimeExceptionが発生してcatchされなくてもアプリケーションは終了しませんよね。 
どんなRuntimeExceptionがキャッチされずに無視されてるか知りたいんですが、個々のイベントリスナーにそれぞれcatch節を書かずに、一括してRuntimeExceptionをcatchできる方法はありませんか?

271 :デフォルトの名無しさん:2006/12/22(金) 16:03:08
>>270
1.5 以降なら Thread#setUncaughtExceptionHandler() やら
Thread#setDefaultUncaughtExceptionHandler() やらでハンドラをセットするとか
それより前なら ThreadGroup#uncaughtException をオーバーライドしてEDSを登録するとかしてみれば
キャッチできるかもしんない。試してないからわからんけど。

272 :デフォルトの名無しさん:2006/12/22(金) 19:51:34
えーと、ぶっちゃけBlancoってどうよ?>All

仕様書からソースを自動生成、っつーのは結構好みだし、Apache commons CSVがまだsandboxだから、漬かってみるのも面白いかも、と思っているのだが、使ったことある人、いる?
http://hp.vector.co.jp/authors/VA027994/blanco/blanco.ja.html


273 :223:2006/12/22(金) 20:47:33
Checkbox c1 = new Checkbox();
でc1にチャックが入っているかどうかを取得するメソッドってなんですか?


274 :デフォルトの名無しさん:2006/12/22(金) 21:16:46
>>273
美人のお姉さんのチャックの世話なら嬉しいがね
ttp://java.sun.com/j2se/1.3/ja/docs/ja/api/java/awt/Checkbox.html#getState()

275 :デフォルトの名無しさん:2006/12/23(土) 04:34:54
JavaBeanのプロパティ一覧を取得する方法ってあるでしょうか?
というのも、あるBeanからfor文を使って簡単にデータ連結させたいのです。
例えば↓のようなBeanがあったとして、@の方法ではなく、Aのような方法で
Beanを操作したいのです。
class HogeBean implements Serializable
 String col1;
 String col2;
 String col3;
   ・
   ・

@
s = HogeBeanInstance.getCol1 + HogeBeanInstance.getCol2 ・・・
A
for( Object property: HogeBeanInstance.getProperties )
 s += property.toString()

276 :デフォルトの名無しさん:2006/12/23(土) 05:03:28
>>275
つ Introspector & BeanInfo

277 :デフォルトの名無しさん:2006/12/23(土) 05:10:07
& PropertyDescriptor

278 : :2006/12/23(土) 10:20:48
>>271
どうもありがとうございます。試してみました。
で、たしかに一回目のやつはUncaughtExceptionHandlerでcatchできるけど、しかしそれでもSwingのイベントスレッドは死んでしまって、
あらたなスレッドが生成されてそれが処理に当たるみたいなので、何回もUncaughtExceptionHandlerをセットしなくてはいけないみたいです。難しい。

279 :デフォルトの名無しさん:2006/12/23(土) 10:39:17
ビックカメラのサイトで注文しようとしたら猛烈に遅いじゃねえか
さすがアホjaverの作る物は低品質だな

280 :デフォルトの名無しさん:2006/12/23(土) 10:39:54
冬休みに入った途端構ってチャンか

281 :デフォルトの名無しさん:2006/12/23(土) 10:56:31
ssh(sftpとかshellとか)を使ってみたいのですが、
おすすめクラスライブラリってありますか?
jschとかみつけたのですが、ドキュメントが無いみたいorz
Ganymedってのも見つけました。
できれば日本語でわかるのがいいんです。


282 :デフォルトの名無しさん:2006/12/23(土) 10:59:11
遅いどころじゃないな。「混み合ってます」ばっかりだぞ。
こんなゴミよく納品できたな。

283 :デフォルトの名無しさん:2006/12/23(土) 10:59:50
>>279
Javerなんて言葉始めて聞いたよ。

284 :デフォルトの名無しさん:2006/12/23(土) 11:01:37
とりあえずビックカメラのサイトでも見てくれ。びっくりの低品質だ

285 :デフォルトの名無しさん:2006/12/23(土) 11:02:32
>>284
改善して欲しいならビッグカメラのサポート窓口とかに苦情書いた方が良いんじゃね?

286 :デフォルトの名無しさん:2006/12/23(土) 11:47:24
Javaは糞鯖が嫌いです

287 :デフォルトの名無しさん:2006/12/23(土) 12:06:51
>>281
Javaでライブラリ漁りたいなら、英語は必須。
jschはexapmlesにサンプルがあるので、それとJavadocを読みながら使い方調べるしかない。

288 :デフォルトの名無しさん:2006/12/23(土) 14:40:48
システムを開発する上でデザインパターンを意識するものなのですか?

289 :デフォルトの名無しさん:2006/12/23(土) 15:08:29
>>288
する。ってか、自分でオリジナルを編み出すより楽だし、
デザパタを知っている他の人にもわかりやすくなるし。

290 :デフォルトの名無しさん:2006/12/23(土) 15:50:00
デザパタ知らない奴には「ファイルが増える」と不評だけどね。

291 :デフォルトの名無しさん:2006/12/23(土) 16:29:47
そういうときはバグが増えるよりはマシだろって返答するな

292 :デフォルトの名無しさん:2006/12/23(土) 17:36:58
>>283
脱線するけど、何が適当なんだろう。
Javian? Javist? Javan?

293 :デフォルトの名無しさん:2006/12/23(土) 18:09:10
Javanist

294 :デフォルトの名無しさん:2006/12/23(土) 18:20:30
nはどこから涌いてきたんだ

295 :デフォルトの名無しさん:2006/12/23(土) 18:24:46
>>287
ソースにコメントがないのでjavadocはどうなのかわかりませんが、
もう少し調べてみます。
日本語はほとんどあきらめてます。
(もしかしたらと思って聞いてみました)


296 :名無しさん@恐縮です:2006/12/23(土) 19:20:32
教えてください。
ファイル名はManで、
ピーっという音と文字化けのようなものが表示され、
コンパイルできません。
原因はなんでしょうか??お願いいたします。
class Air{
public void takeoff(){
System.out.println("fly ");
}
}
class Con extends Air{
public void takeoff(){
System.out.println("It files fast ");
}
}
class Man{
public static void main(String args[]){
 Air flyer[]={new Air(),new Con()};
  for(int i=0; i<flyer.length;i++){
    flyer[i].takeoff();
  }
}
}
正常にコンパイルされると出力結果は、
fly It files fast になるそうです。


297 :デフォルトの名無しさん:2006/12/23(土) 19:38:58
>>296
ttp://beefway.hp.infoseek.co.jp/prog/filename.html
ttp://www2.biglobe.ne.jp/~sota/ffftp-qa/qa-37.html

298 :名無しさん@恐縮です:2006/12/23(土) 19:45:38
↑確認してみたんですが、不備はないですね。

おそらく、プログラミングのミスではないかと思っているのですが、
どうでしょうか??

299 :デフォルトの名無しさん:2006/12/23(土) 19:50:08
>>298
そういわず>>297を確認して欲しい。メンドイとかそういうのは抜きに。

300 :名無しさん@恐縮です:2006/12/23(土) 20:00:44
そもそも、コンパイル時にピーっという音がでることはあるのでしょうか?


301 :デフォルトの名無しさん:2006/12/23(土) 20:10:32
>>296
ファイル名は
Man?
Man.java?

ま、まさかそんな・・・

302 :名無しさん@恐縮です:2006/12/23(土) 20:12:51
Manです。

303 :名無しさん@恐縮です:2006/12/23(土) 20:14:30
javac Man.javaでいいんですよね。

で、java Man

304 :デフォルトの名無しさん:2006/12/23(土) 20:30:11
もうこの問題は解決したのかな?


305 :デフォルトの名無しさん:2006/12/23(土) 20:31:08
全角

306 :名無しさん@恐縮です:2006/12/23(土) 20:42:54
初めの文字は、全角になってます⇒Man

307 :デフォルトの名無しさん:2006/12/23(土) 20:51:06
ネタ確定ですか?

308 :名無しさん@恐縮です:2006/12/23(土) 20:56:29
まちがっているのでしょうか?

309 :名無しさん@恐縮です:2006/12/23(土) 21:00:19
Man 最初は、半角の大文字ですね。

310 :デフォルトの名無しさん:2006/12/23(土) 21:04:48
string以外全角つかうな

311 :デフォルトの名無しさん:2006/12/23(土) 21:37:11
「すでに作成されて存在するjarの中の.classが間違いなく、
この.javaから生まれたものである。」

ということを確認するにはどうすればよいですか?

最新版のjarと、最新版のソースの在りかは
プログラマから聞いていたのですが、
念のため、バージョンの整合を確認したいのです。

そのプログラマは、20日に死にました。
当方、java初心者というか、プログラマですらないので、
わかりません。よろしくお願いします。

312 :デフォルトの名無しさん:2006/12/23(土) 21:38:39
>>296
Man.java のコンパイルが成功したら
Air.class Con.class Man.class
の3つのファイルが作成される

これをふまえて>>297をよく読む

313 :デフォルトの名無しさん:2006/12/23(土) 21:41:04
\a

314 :デフォルトの名無しさん:2006/12/23(土) 21:41:30
>>311
人殺しに教える知識はない。

315 :デフォルトの名無しさん:2006/12/23(土) 21:51:09
\an でbeepが鳴ってんの?

316 :デフォルトの名無しさん:2006/12/23(土) 21:56:29
Mの2バイト目は\なのか

317 :311:2006/12/23(土) 22:07:37
>>314
知らないなら、出て来るな!

プログラマ名人なら、これぐらい簡単ですよね。たぶん。
お願いします。

318 :デフォルトの名無しさん:2006/12/23(土) 22:09:57
お前は読めないのか?

319 :デフォルトの名無しさん:2006/12/23(土) 22:13:09
>>317
コンパイルしてdiff

320 :デフォルトの名無しさん:2006/12/23(土) 22:13:43
>>311
classから逆コンパイルする方法はあるけど完全に元に戻るわけではない。
もう一度コンパイルしてclassを比較してみたらどうだ?

321 :デフォルトの名無しさん:2006/12/23(土) 22:16:48
どのみちプロに頼むんだろうから
その人に聞けば?

322 :デフォルトの名無しさん:2006/12/23(土) 22:20:17
GUIDみたいのは入ってないのか?

323 :デフォルトの名無しさん:2006/12/24(日) 00:01:52
GUILDには入ってます

324 :デフォルトの名無しさん:2006/12/24(日) 00:47:01
もうやめたほうがいい。


325 :311:2006/12/24(日) 01:12:44
>>319
>>320
なるほど!!
と思い試してみました。
んで、すべて一致を確認しました。
ありがとうございます。

んで、死んだプログラマの代わりに
これから一部ソースを修正して、
月曜までに修正版リリースを作らなければなりません。
人に聞いた方法で
EclipseのBuild.xml右クリック->実行->Antだと、
修正ファイル以外までもがリビルドされてしまいました。
ヤバイ。

これから、やり方調べますが、
心優しい人が居たら、また教えてください。

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


326 :デフォルトの名無しさん:2006/12/24(日) 07:02:58
>>314ではないが、そのプログラマが氏んだ理由が知りたい・・・
仕事と無関係な事故/病氏ならともかく仕事関係での圧迫による鬱氏その他だとしたら・・・
>>314と同じ事を言いたくなるかも

327 :デフォルトの名無しさん:2006/12/24(日) 10:20:04
>>325
葬式を優先してやれよ・・・。

328 :デフォルトの名無しさん:2006/12/24(日) 10:23:18
>>326
理由を言うわけないし、言ったとしてもその亡くなった人を悪く言うだけだろ
進んで利用されるなんて馬鹿ばっかりなスレだな

329 :デフォルトの名無しさん:2006/12/24(日) 10:59:25
んじゃ2泊3日の旅行行ってくる。
お前ら頑張れよw

330 :デフォルトの名無しさん:2006/12/24(日) 12:37:24
javaの実行時にプロンプトを表示しないようにするにはどうすれば
いいですか?
swingアプリなので出るとダサイ


331 :デフォルトの名無しさん:2006/12/24(日) 12:40:33
>330
javaw.exe

332 :330:2006/12/24(日) 12:43:59
>>331
サンクス

333 :デフォルトの名無しさん:2006/12/24(日) 13:23:09
>>330
オラクルに謝れ!

334 :デフォルトの名無しさん:2006/12/24(日) 13:37:53
SE6になってスプラッシュウィンドウが搭載されたけど
jarはまだヒープサイズとか埋め込めない仕様なの?

335 :デフォルトの名無しさん:2006/12/24(日) 14:15:13
Cを基本を齧ったことあるんですがそういう人間がJAVAを勉強するのにお勧めなサイト・本などはありませんか?

336 :デフォルトの名無しさん:2006/12/24(日) 14:18:55
かじった程度じゃ普通のJava入門書・サイトでいい。

337 :デフォルトの名無しさん:2006/12/24(日) 16:13:02
java勉強していいことある?

338 :デフォルトの名無しさん:2006/12/24(日) 16:15:37
>>337
ドカタになれるよ。

339 :デフォルトの名無しさん:2006/12/24(日) 16:20:46
Linuxだとnioでepoll使うようになったらしいけど
jettyとかは更に爆速になってたりするの?

340 :デフォルトの名無しさん:2006/12/24(日) 17:16:04
最近派遣会社の案件紹介とか転職サイトとか見なくなったからアレだけど
数年前は猫もしゃくしもJavaだった。

もち募集されてたのは「勉強しました」程度じゃなく
「Javaによるシステム開発Prjいくつこなして経験何年です」の経験者だが

今はどうなの>all
ま、触っとく事自体が損、って事はないんじゃない?

341 :デフォルトの名無しさん:2006/12/24(日) 18:37:10
>>340
仕事は選べるし、まだ食る。

342 :デフォルトの名無しさん:2006/12/24(日) 18:42:09
>>341
thx

343 :デフォルトの名無しさん:2006/12/24(日) 23:54:05
コアjavaを基礎読み終わって、
応用をやっているのだが、難しいというより、
いらないなと思うところが多いのだが、
セキュリティー、国際化、AWTの高度な機能はいらないと思う。
後javabeansも使ってないので....
どう思いますか?
仕事で使わないのだが....
まあ、一通り読んだけど


344 :デフォルトの名無しさん:2006/12/25(月) 00:23:42
>>343
実際現場で必要にならない部分までいる/いらないは判断できないかと・・・
とりあえず勉強だけしといて、実際現場でお客様から要望されたら、「あ、それ一応やってます」
って言える程度でいいんじゃない?

実際Javaとかは拡張しすぎて「いらないんじゃない?」と思う部分も多々あるとは思います。

345 :デフォルトの名無しさん:2006/12/25(月) 00:25:10
お前は使わなくても他の人は使うかも知れないだろが

346 :デフォルトの名無しさん:2006/12/25(月) 00:54:05
>>343
必要になった時に覚えればいいと思うので、
そういうのがあるんだなぁぐらいでいいのでは?
と言ってみるテスト

347 :デフォルトの名無しさん:2006/12/25(月) 15:04:31
GraphicsDevice setFullScreenWindowにてフルスクリーン表示をしているときに
JOptionPane を表示するといかんともしがたい状態になるのですが
(私の環境ではsetFullScreenWindowで指定した画面上に
JOptionPaneのボタンの部分のみ描画されている状態になる)
この現象は人によって異なるのでしょうか。

348 :347:2006/12/25(月) 16:20:57
自己解決しました。
フルスクリーンにセットするパラメータをJFrameからJWindowに変更したら表示されました。


349 :デフォルトの名無しさん:2006/12/25(月) 20:49:21
質問です。

class Oya{
 int d=10;
 void print(){
  System.out.println(d);
 }
}
class Kodomo estends Oya{
 int d=100;
 void print(){
  System.out.println(d);
 }
}
class Test{
 public static void main(String[] args){
  Oya oya = new Kodomo();
  System.out.println(oya.d);
 }
}
と定義して、Testを実行すると"10"が表示されます。
またTestクラスを変更し、

class Test{
 public static void main(String[] args){
  Oya oya = new Kodomo();
  oya.print();
 }
}
とした場合は"100"が表示されます。
なぜこのような違いが出るのかを、誰か説明していただけません
でしょうか?

350 :デフォルトの名無しさん:2006/12/25(月) 21:13:41
nilぽ

351 :デフォルトの名無しさん:2006/12/25(月) 21:21:04
うるせーバカ!

352 :デフォルトの名無しさん:2006/12/25(月) 22:23:42
>>349
変数はオーバライドできない。
スーパクラスとサブクラスに同名の変数があった場合、サブクラスのインスタンスには両方の変数が存在する。
そのクラスなら、Kodomo型のオブジェクトには、OyaのdとKodomoのdが両方存在している。
変数の参照は、オーバライドがないので変数の型に従う。つまり、
Oya型の変数 oyaに対して oya.d としたら、Oyaクラスのdを指し、
Kodomo型の変数kodomoを定義して、kodomo.dとしたら、それはKodomoクラスのdを指す。
メソッドの中で変数を参照する場合、自身のクラスで定義された変数を最初に参照する。
だから、Kodomo#print()ではKodomoクラスのdを参照するし、
Oya#print()ではKodomoクラスのdを参照する。
なお、Kodomoクラスのメソッドでも、super.dとすれば、Oyaクラスで定義されたdを参照できる。

353 :352:2006/12/25(月) 22:25:19
10行目間違い
誤:Oya#print()ではKodomoクラスのdを参照する。
正:Oya#print()ではOyaクラスのdを参照する。

354 :349:2006/12/25(月) 23:39:48
>>352
ありがとうございました。
整理して考えてみます。

355 :デフォルトの名無しさん:2006/12/26(火) 10:57:17
kodomo と oya くらいは英語名にしてはどうかと思うんだ。

356 :デフォルトの名無しさん:2006/12/26(火) 11:11:44
SWTアプリケーションで、iTextを用いて自分で作ったPDFのプレビューをしたいのだけど、JPedal↓以外に選択肢はあるでしょうか?
http://journal.mycom.co.jp/articles/2006/08/25/jpedal/
JPedalはまさに欲しかったモノなのだが、日本語に対応していないのと、ライセンスが(Lがついてない)GPLなのがネック。
無制限配布OK、もしくは数千円程度でクライアントライセンスが購入できれば有償でもいいので、他に選択肢を御存知の方はいらっしゃいますか?

一応、「Java COM bridgeを使えばOK」という製品は見つけたが、これは正直使いたくない。
バッチで呼び出せればPDFから画像に変換して表示、というのも選択肢の一つだと思うが、この点も併せどなたか情報をお持ちの方がいらっしゃれば、御助言を頂ければ幸いです。
以上、よろしくお願いします。


357 :デフォルトの名無しさん:2006/12/26(火) 11:59:43
JWindowを表示している時に キーイベントを発生させると何処で拾えるのでしょうか
下記いずれもイベント拾えず・・・。

JWindow.addKeyListener(this);
JWindow.getContentPane().addKeyListener(this);
Component[] com = JWindow.getComponents();
for (int i = 0; i < com.length; i++) {
com[i].addKeyListener(this);
}
JWindow.getRootPane().addKeyListener(this);
JWindow.createRootPane().addKeyListener(this);

358 :デフォルトの名無しさん:2006/12/26(火) 12:13:51
>>356
JPedalの有償版、配布無制限のOEMライセンスだと $USD 7,500もするんだね。
商用品だとそんなもんか。

359 :デフォルトの名無しさん:2006/12/26(火) 12:17:15
>>357
なんかフォーカスをとってくるメソッドなかったっけ
でもInputMap使った方がいいんじゃね

360 :デフォルトの名無しさん:2006/12/26(火) 15:07:52
すいません、教えてください
String型の変数にClassそのものの名前が入っています
それを実行させる方法はありますか?

以上、よろしくお願いします。


361 :デフォルトの名無しさん:2006/12/26(火) 15:30:22
>>360
リフレクション(reflection)てやつを使う。

「java リフレクション」で探せば
いくらでもサンプルソースが転がってる。

362 :デフォルトの名無しさん:2006/12/26(火) 15:35:34
>>361
リフレクションなぞつかわなくとも、
AnyType foo = (AnyType) Class.forName("クラス名").newInstance();
でいいじゃないか。


363 :デフォルトの名無しさん:2006/12/26(火) 15:38:14
>>362
でも、リフレクション使わないと型が分からないから、「実行」させることは出来ないのでは?

364 :デフォルトの名無しさん:2006/12/26(火) 15:50:43
>>363
なるほど。言われてみればその通りだ。
できるのはインスタンス化までか。

365 :デフォルトの名無しさん:2006/12/26(火) 16:34:05
>>359
回答ありがとうございます。
inputMap&AcionMapで実現できました。

366 :デフォルトの名無しさん:2006/12/26(火) 18:36:56
>>362
ん?これもリフレクションじゃないの?

>>363
instance of で調べてキャストすればいいのでは?

367 :デフォルトの名無しさん:2006/12/26(火) 19:41:10
>>366
メソッド・プロパティを探しはじめたらリフレクションらしい。

instance of では未知のクラスの未知のメソッドは呼べないと思われ。

368 :デフォルトの名無しさん:2006/12/26(火) 19:55:17
>>366
java.lang.reflect のAPIを使って無くてもリフレクションと呼べるの?

369 :デフォルトの名無しさん:2006/12/26(火) 19:57:56
>>368
呼ぶ。java.io やら java.nio 使って無くても入出力すりゃIOだし。

370 :ぴゅあ:2006/12/26(火) 20:19:30
あいかわらずバカばかりだなwww

371 :デフォルトの名無しさん:2006/12/26(火) 20:21:46
一番馬鹿っぽい人が来たwww

372 :デフォルトの名無しさん:2006/12/26(火) 20:43:29
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/guide/reflection/index.html
ここのパフォーマンスの拡張読むと、Class.newInstance も
リフレクションの一部ってことになるのかな。

一般的にはどうなんだろう。
名前からインスタンス作成するだけだと
語感(はねかえす)にそぐわない気もしなくも無い。

373 :デフォルトの名無しさん:2006/12/26(火) 23:16:05
リフレクションに決まってんだろ。アホか

374 :デフォルトの名無しさん:2006/12/26(火) 23:18:39
リフレクションだな

375 :デフォルトの名無しさん:2006/12/27(水) 00:07:01
リフレクション=反映

376 :デフォルトの名無しさん:2006/12/27(水) 15:17:09
質問です。
readLine()で読み込んだ文字列をsplit()で分割したいのですが、
配列の先頭に何も格納されません。[1]以降にはきちんと格納されています。
具体的にはsplit(" +")で1個以上の空白で分割したいのですが…
どなたかよろしくお願いいたします。

377 :デフォルトの名無しさん:2006/12/27(水) 15:33:23
>>376
public static void main(final String[] args) {
for (String s : "1 2 3 5".split(" +")){
System.out.println(s);
}
}

↑こうしてみたら、↓こうなったがね。

1
2
3
5

これじゃだめ?

378 :360:2006/12/27(水) 15:40:24
みなさん、ありがとうございます

リフレクションで調べて自分なりに書いてみました
さらに質問になり申し訳ないのですが

実行時、メソッドに与える引数を呼び出し元自身にしたく
色々なのサイト見たのですが、どこもStringやIntegerのものしかなく
以下のようにしてみましたが

import java.lang.reflect.Method;

---------------------------------------------------

Object[] param = {this};
Class c = Class.forName("HogeHoge");
Class[] paramType = new Class[param.length];

for (int i = 0; i < param.length; i++) {
  paramType[i] = param[i].getClass();
}

Method method = c.getMethod("HogeRun", paramType);
param[0] = this;
return method.invoke(c, param);

結果は
java.lang.IllegalArgumentException: object is not an instance of declaring class
で手詰まりです

どなたかよろしくお願いします il||li _| ̄|○ il||li



379 :デフォルトの名無しさん:2006/12/27(水) 15:44:29
Tabとか入ってるのかな。
split("\\s+")でどう?

380 :360:2006/12/27(水) 16:05:54
>param[0] = this;
これ間違えです
いりません il||li _| ̄|○ il||li

381 :ぴゅあ:2006/12/27(水) 16:44:51
object is not an instance of declaring class
というメッセージでググってみるとか

382 :デフォルトの名無しさん:2006/12/27(水) 16:55:32
>>378
どうせソースとスタックトレース晒すなら行の情報までだせば良いのに。

HogeRun がクラスメソッドじゃないのに、
Method#invoke の第一引数に Class のインスタンス渡してるのが原因じゃないかね?
インスタンスメソッドの場合、第一引数には HogeHogeクラスのインスタンスを与えないと失敗する。

383 :デフォルトの名無しさん:2006/12/27(水) 16:56:03
>>378
次からはどの行で出たエラーか明記した方が反応が早くなるよ。

method.invoke() で出たと仮定すると、
呼び出したいメソッドがインスタンスメソッド(非static method)なのにも関わらず、
invoke の第一引数に Class オブジェクトを渡したせいだと思う。

ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/lang/reflect/Method.html#invoke(java.lang.Object,%20java.lang.Object[])
ここの IllegalArgumentException の項を読むとよろしげ。

上記であてはまらないようなら、もう少し詳しい説明
(呼び出したいメソッドのパラメータ型とか)がないと分からない。

384 :376:2006/12/27(水) 17:27:57
>>377,379
ありがとうございます。

どうやら文字列の先頭に空白があると駄目なようです。
trim()を使うことにより解決することができました。ありがとうございました。

385 :デフォルトの名無しさん:2006/12/28(木) 02:05:47
質問があります。

VMが実行毎にバイトコードをコンパイルしているのを、
最初の実行でコンパイルしてどこかに保存しし
次からそれを使う方が速度が上がるし効率的だと思うのですが
そうしないのはどうしてですか?


386 :デフォルトの名無しさん:2006/12/28(木) 08:17:47
>>385
バイトコード検査できなくなるからじゃないかな。
バイトコード検査後にネイティブに変換したものをファイルに保存したとして、
そのファイルが後で不正な修正を受けていないという保証は得られないし。

387 :デフォルトの名無しさん:2006/12/28(木) 12:49:39
メモリにはキャッシュされてるよな。
あと確か6.0からこの機能が実装されるとか聞いた記憶があるんだが、先送りになったんだっけ?

388 :デフォルトの名無しさん:2006/12/28(木) 12:56:20
>>387
いや、6.0 で有名なのは VM 共有だから、>>385 が言ってるのとは違うと思うけど。

>>385 が言ってるようなのは IBM の VM が実装してるとか聞いた。5、6年前に。
他の VM で採用されてないなら、実は大して速くならない、とか理由があるんじゃね?

389 :デフォルトの名無しさん:2006/12/28(木) 13:11:33
正直JITの時間はたいしたことない、て事なんかな?

390 :デフォルトの名無しさん:2006/12/28(木) 13:48:41
セキュアなバスにストレージがあれば、>>386みたいな心配はいらないのかな。
昨今のビデオ周りみたいに。

391 :デフォルトの名無しさん:2006/12/28(木) 14:01:56
すみませんプログラムの勉強をしようと思って無料で使えるみたいなので
Javaをダウンロードしてインストールしたのですが
Pathの設定でC:\Program Files\Java\j2re1.4.2_13\bin
としてコマンドプロンプトでjavacと打ち込んでも認識されません
環境設定は正確に打ち込んだと思うのですが、何度やってもだめでした
プログラムを語る以前の問題かもしれませんが・・・
うまくいかない原因何か考えられるでしょうか?

392 :デフォルトの名無しさん:2006/12/28(木) 14:05:05
jdkの方って設定いらなかったっけ?

393 :ぴゅあ:2006/12/28(木) 14:06:27
やはりわちきがいないとこのスレは駄目ですね

394 :デフォルトの名無しさん:2006/12/28(木) 14:32:58
>>391
とりあえず>>1の中段をよく読む
ディレクトリの名前もよく見る

395 :デフォルトの名無しさん:2006/12/28(木) 14:36:17
J2SE Runtime Environment 5.0のことで聞きたいのですが
Updateされるたびに前にUpdateされた6や7がプログラムに残っているのですが
最新のUpdateバージョンだけ残して残りの古いものはアンインストールしても
よろしいのでしょうか?

396 :391:2006/12/28(木) 14:53:24
>>392
>>394
ありがとうございます。
なんか、落とすの間違えてたみたいです、sdkというのをダウンロードしていませんでした。
ダウンロードサイト英語ばかりでよくわからなかったです・・・
sdkインストールしてPath設定したら、うまく認識できました。
先は長そうですが...がんばってJavaマスターします。


397 :デフォルトの名無しさん:2006/12/28(木) 14:55:12
>>395
消しちゃってOk。
というかその辺不便だよな。自動アップデートついたのはいいけど、
旧バージョン残したままなんてディスクの無駄だ。
それに、VMに穴がある場合残したままだとよくない。
せめて、設定で旧バージョンは自動で消えるように選択できればいいのに。

398 :395:2006/12/28(木) 15:10:11
>>397
返答ありがとうございます。
なるほど、旧バージョンは残ってしまう形になっていたのですか。
今からアンインストールしようと思います。

399 : :2006/12/28(木) 17:28:03
ユーザーがJTreeのNodeを単にマウスでクリックしたのと制御キー(Alt)をおしながらクリックしたのかの区別を
TreeSelectionListenerのvalueChangedで知りたいんですけど、どうすればいいのですか?


400 :デフォルトの名無しさん:2006/12/28(木) 17:40:55
>>399
KeyListenerも継承したJTreeを実装する

401 :デフォルトの名無しさん:2006/12/28(木) 18:09:07
>>399
KeyListenerも継承したJTreeを実装する

402 :デフォルトの名無しさん:2006/12/28(木) 18:36:54
>>400
お答えどうも有り難うございます。
KeyListenerのKeyPressedの中でAltが押されたかを調べてflagを立てて、
SelectionListerのvalueChangedの中でそれを調べれば確かに分かります。
でもその場合、別のコンポーネントにフォーカスがあって、その後にALTを押しながらJTreeのノードをクリックした場合にvalueChangedの中でAltの検知に失敗してしまいます。

MouseEventだとAltが押されてるかわかるので、それを利用できないか考えてみます。
しかしTreeSelectionEventのほうがMouseEvenより先に発生してるんですよね。JTreeの場合。

403 :デフォルトの名無しさん:2006/12/28(木) 19:47:44
>>402
getInputMap()

404 :デフォルトの名無しさん:2006/12/28(木) 20:32:01
質問です。

PDFファイルからテキストのみを抽出したいのですが
iTextで可能でしょうか?

PDFBoxを使ってみたのですが不要な半角スペースが
入ってしまいうまくできませんでした。

WebでiTextを調べるとPDF生成ばかりでテキスト抽出
の方法が分かりませんでした。

教えてください。よろしくお願いいたします。

405 :デフォルトの名無しさん:2006/12/28(木) 21:20:13
Threadのjoin()メソッドで停止させたスレッドを、
ボタンをクリックして任意に復帰させたいのですが、
notify()メソッドでは使だめなのでしょうか?

調べてみたのですが良くわからなかったので、
スレッドの復帰のさせ方をどなたか教えて下さい。

406 :デフォルトの名無しさん:2006/12/28(木) 21:34:05
スレッドはそもそもjoinでは停止しないんだが。
しかもnotifyなんか全然関係ないし、何がしたいのか。

407 :デフォルトの名無しさん:2006/12/28(木) 21:36:25
>>405
何を言っているのかわからん

408 :405:2006/12/28(木) 21:58:19
ボタンをクリックする事により、
スレッドのON/OFFができる。

上記のような処理を実現したいのです。

409 :デフォルトの名無しさん:2006/12/28(木) 22:12:53
>>408
ttp://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/misc/threadPrimitiveDeprecation.html

410 :405:2006/12/29(金) 03:12:31
>>409
何とか理解できました、ありがとうございます....

411 :デフォルトの名無しさん:2006/12/29(金) 08:01:55
演算子オーバーロードってまだ出来ないの?

412 :デフォルトの名無しさん:2006/12/29(金) 09:55:25
c++みたいなのじゃなけりゃ欲しいけどな。
BigDecimalとかかなり面倒だし。

413 :デフォルトの名無しさん:2006/12/29(金) 13:23:18
C++の演算子オーバーロードって評判悪いの?

414 :デフォルトの名無しさん:2006/12/29(金) 16:49:48
まだないんですね。

415 :デフォルトの名無しさん:2006/12/29(金) 23:02:44
BigDecimalとかは演算子オーバーロードの対象する計画はあるみたいだね
独自定義は糞設計防止のためにさせないほうがいいと思うけど、interface制約とかで出来てもいい。

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

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)