2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 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制約とかで出来てもいい。

416 :デフォルトの名無しさん:2006/12/30(土) 04:44:31
Java SEとJava EEの違いを教えてください。
はてな、ウィキペディアを見ましたが分かりませんでした。


417 :デフォルトの名無しさん:2006/12/30(土) 04:46:12
大雑把に言えば
EE:サーバ用
SE:パソコン用
ME:携帯用

418 :デフォルトの名無しさん:2006/12/30(土) 10:16:14
EE : サーバサイドアプリ(Webアプリケーション)
SE : 単体アプリ(バッチ〜GUIアプリ)


419 :デフォルトの名無しさん:2006/12/30(土) 18:55:25
servletとappletの連携ってどうやったら出来るの?

420 :デフォルトの名無しさん:2006/12/30(土) 19:55:48
>>415
MathContextの問題があるしな。
うまく遺憾と思う

421 : :2006/12/30(土) 20:25:49
JFrameの右上にある×印を押したときと同じ動作をするボタンを作りたいんですけど、何を呼べばいいのですか?
setDefaultCloseOperationで設定した動作をするようにしたいんです。

422 :デフォルトの名無しさん:2006/12/30(土) 20:36:54
>>419
どのような連携を望んでいるのかよく分かりませんが
サーブレットからJSPにパラメータを埋め込んでappletにパラメータを渡すという事でしょうか。


>>421
processWindowEvent(WindowEvent e)で如何でしょうか。

423 :デフォルトの名無しさん:2006/12/30(土) 20:47:52
>>422
appletからservletへのパラメタを渡す、あるいはその逆、
sessionを使用した処理などです。

424 : :2006/12/30(土) 20:58:04
>>422
そういうふうに自分でイベント発生できるとは知りませんでした。
望みどうりできました。どうもありがとうございました。

425 :デフォルトの名無しさん:2006/12/30(土) 20:59:58
>>422
HTTPの枠組みでできること、以上の機能は、標準にはない。
javax.servlet.*に依存する機能をアプレット側でも使いたいなら、
自分で作り込む必要がある。

426 :デフォルトの名無しさん:2006/12/30(土) 21:21:58
>>423
ソケット通信や
WEB上のファイル(servletのコントロール下にある)を介在してやりとりするというのは如何でしょうか。

427 :デフォルトの名無しさん:2006/12/30(土) 21:49:57
>>426
それじゃ>>423の言うSessionは利用できないだろう。


428 : :2006/12/30(土) 22:28:36
メニューというのは実質的には JPopupMenu が割り当てられたボタンのことです。
「ボタン」が押されると JPopupMenu が表示されます。「ボタン」が JMenuBar 上にあれば、そのメニューはトップレベルウィンドウです。
「ボタン」が別のメニュー項目であれば JPopupMenu は「プルライト」メニューです。

とJavaDocに書いてあるんですけど、右クリックしたときに表示されるポップアップメニュー用にのJPopupMenuのインスタンスを、メインメニューのJMenuにも割り当てて共有することはできるのですか?


429 :デフォルトの名無しさん:2006/12/30(土) 22:34:08
失礼しました。最後ミスタイプしてました。

メニューというのは実質的には JPopupMenu が割り当てられたボタンのことです。
「ボタン」が押されると JPopupMenu が表示されます。「ボタン」が JMenuBar 上にあれば、そのメニューはトップレベルウィンドウです。
「ボタン」が別のメニュー項目であれば JPopupMenu は「プルライト」メニューです。

とJavaDocに書いてあるんですけど、右クリックしたときに表示されるポップアップメニュー用のJPopupMenuのインスタンスを、メインメニューのJMenuにも割り当てて共有することはできるのですか?
つまり
JPopupMenu popup = new JPopupMenu();
popup.add(new JMenuItem("copy");
...
..
setComponentPopupMenu(popup);

JMenu menu = new JMenu("edit");
menu.add(popup)
という感じでJPopupMenuをJMenuに直接割り当てて共有したいんです。でもJMenuにはJPopupMenuをaddできないみたいなんです。


430 :デフォルトの名無しさん:2006/12/31(日) 09:24:03
>>427
アプレットでセッション使う方法なんてそもそもあるの?

431 :デフォルトの名無しさん:2006/12/31(日) 19:16:38
URL url = new URL("servletのURL");

これでOK

432 :デフォルトの名無しさん:2006/12/31(日) 19:19:03
スタンドアロンでという意味だと思うが・・・
セッションってかCookieだよな

433 :デフォルトの名無しさん:2006/12/31(日) 19:38:59
スタンドアロンでセッションを利用できるわけが無い。
そもそも何に使用するの?
appletとservletの連携だろ?javaapplicationとしてのappletとservletとの
連携の話だろ?だったら>>431でいいじゃん。

434 :デフォルトの名無しさん:2006/12/31(日) 19:48:51
ああ、なるほど、間近のレスしか読んでなかった。

435 :デフォルトの名無しさん:2006/12/31(日) 22:26:42
コンテキストとはどういう意味なんでしょうか?



436 :デフォルトの名無しさん:2006/12/31(日) 22:37:43
その場みたいな。カレントみたいな。

437 :デフォルトの名無しさん:2007/01/01(月) 08:01:08
実行環境一式みたいな。
 コンテキストスイッチ→タスク切り替え
 実行時コンテキスト→変数やメソッドのスコープ
とかって使われる。

438 :デフォルトの名無しさん:2007/01/01(月) 11:09:09
Javaアプリの起動とかを高速化する方法ってあるのかな?
重くて重くてorz

439 :デフォルトの名無しさん:2007/01/01(月) 11:23:17
質問。
いまJavaで何か作ったらclassファイルが作成されてさらにそっからJavacコマンドで動かしてるけど
javac使わずに普通のEXEファイルみたいに使用することは不可能なんですかね?

ie上で動かすアプレットならいけるとは思うのですが。単独で動かすことは不可能なんですかね?

440 :デフォルトの名無しさん:2007/01/01(月) 11:28:58
>>439
jar + Launch4j


441 :デフォルトの名無しさん:2007/01/01(月) 16:37:39
>>438
プロファイラでどこがボトルネックか調査した?

442 :JAVAはじめました:2007/01/01(月) 18:04:15
はじめましてJAVAはじめました。
本当に初心者なのであんまり難しく言われるとわからないのですが、
「はじめてのJAVAプログラミング(SHUWA。SYSTEM)」という本を買ってみました。
本の通りにやっているのですが、はじめのソースコードがコンパイルできません(涙)。
いろいろ設定を変えてみてもいつも「’javac‘はコマンドとして認識されていません」と出てきてしまいます。
本に付属していた「Java2SDK、 Standard Edition1.4.0」をインストールしたのですが…
エラーメッセージから考えるとjavacのコマンドが認識されていない(そのままなんですけどね;ω;)って事なんですよね?
PCが壊れてるのかな〜?どなたか解決の糸口を教えてください。

443 :デフォルトの名無しさん:2007/01/01(月) 18:05:48
同じく初心者の俺が応対しよう

環境変数、パスの設定をしなさい
           ――終――

444 :デフォルトの名無しさん:2007/01/01(月) 18:06:52
>>442
>>1を読むことだ。

445 :デフォルトの名無しさん:2007/01/01(月) 18:10:48
JDK7を入れなさい
ttp://download.java.net/download/jdk7/binaries/jdk-7-ea-bin-b04-windows-i586-14_dec_2006.exe

446 :435:2007/01/01(月) 18:24:14
>>436,437さん
レスありがとうございます。

実行環境一式というと、例えばグラフィックコンテキストだったら
・描画領域
・色
・フォント
などの情報を指すのでしょうか?

447 :デフォルトの名無しさん:2007/01/01(月) 18:25:18
1が押されたときにx=1;をして、
1以外のキーが押されたときにy=1;をしたいのですが
どうやって書けばいいのでしょうか?
if(KeyPressed){
if(key=='1'){
x=1;
}
if


の後を教えてください

448 :デフォルトの名無しさん:2007/01/01(月) 18:29:16
(key!='1'){
y=1;
}
}

449 :デフォルトの名無しさん:2007/01/01(月) 18:30:31
普通はelseを使うけどね
if(KeyPressed){
if(key=='1'){
x=1;
}
else{
y=1;
}
}


450 :447:2007/01/01(月) 19:35:29
なんか「1以外のキーが押されてるとき」ではなく、「1が押されていないとき」
に反応してるっぽいのですが・・・・

451 :デフォルトの名無しさん:2007/01/01(月) 20:02:39
押されてないという情報もkeyに入ってるのか。じゃあ
if(key=='2'||key=='3'||key=='4')
って感じで想定してるキーを全部書けば?

452 :デフォルトの名無しさん:2007/01/01(月) 20:16:49
KeyPressedはちゃんと働いてるのか?

453 : 【大吉】 :2007/01/01(月) 20:40:11
Hello world

454 :デフォルトの名無しさん:2007/01/01(月) 20:49:00
>>447
keyPressedとkeyTypedの違い分かってる?

455 :447:2007/01/01(月) 21:25:53
わかりません。keyTypedというものを知りませんでした。
調べてきます

456 :447:2007/01/01(月) 21:53:48
ざっとみてきたけどわかりませんでした。
keyTypedって何ですか?

457 :JAVAはじめました:2007/01/01(月) 22:16:08
>>442です。

分かりました…pathのc:¥がc;¥だったです(苦笑)。コンパイル→実行できました。

458 :デフォルトの名無しさん:2007/01/01(月) 22:19:16
>>456
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/event/KeyEvent.html

459 :デフォルトの名無しさん:2007/01/01(月) 22:55:09
質問です。
今日友達から.jarのファイルをもらったんですけど、これはJavaのファイルですよね?
これを起動したいんですが、WinRAR入れてて中身がzipのように解凍できるだけで、
ソフトの起動の方法がわかりません。
jarファイルはどのように扱えばいいのでしょうか?

460 :デフォルトの名無しさん:2007/01/01(月) 22:57:04
>>459
http://java.sun.com/j2se/1.3/ja/docs/ja/tooldocs/solaris/java.html

461 :デフォルトの名無しさん:2007/01/01(月) 22:58:04
>>459
やさしくあつかってください

462 :デフォルトの名無しさん:2007/01/01(月) 23:05:11
>>459
友達に扱い方を聞いた方が早いし確実。

463 :デフォルトの名無しさん:2007/01/01(月) 23:16:40
>>459
JRE

464 :デフォルトの名無しさん:2007/01/01(月) 23:49:49
winrarの設定でjarを外せ

465 :459:2007/01/02(火) 08:01:26
>>464 出来ました。サンクスです。

466 :デフォルトの名無しさん:2007/01/02(火) 20:30:41
質問です。
戻り値の型がobject型のメソッドを呼んで、その値を受け取った際、
この値の元の型を判断し、それに変換してくれるようなメソッドはありませんか?

467 :デフォルトの名無しさん:2007/01/02(火) 20:46:40
ありません

468 :デフォルトの名無しさん:2007/01/02(火) 20:47:39
>>466
キャストの代わりをするメソッドが欲しいってこと?なら言語仕様上ありえないよ。
オブジェクトの型は、getClass()で取得はできるけど。

469 :デフォルトの名無しさん:2007/01/02(火) 20:59:17
>>466
通常、Object型が返ると言うことは
何が入ってくるか分からない

それを何かにしたいということは
その後に行う操作が何通りかに決まっているということだろ?
なら自分でそういうベタな分岐作ればいいんじゃない?
↑のgetClassか、instanceofとかで。

470 :デフォルトの名無しさん:2007/01/02(火) 22:24:56
Commons Modelerで下のようなコードを書いたのだがMbeanとして登録されない。
間違いを教えてください。

MbeanTest test = new MbeanTest();


ObjectName name = new ObjectName("test.MbeanTest:name=tests");

Registry registry = Registry.getRegistry(null, null);

registry.registerComponent(test, name, null);

471 :466:2007/01/02(火) 22:48:50
>>467さん、>>468さん、>>469さん
回答どうもありがとうございます。
そういうメソッドは存在しないのですね…。
勉強になりました。

今回はinstanceofが使えそうなので、そちらで試してみます。
ありがとうございました!

472 :デフォルトの名無しさん:2007/01/03(水) 00:13:01
C++でオブジェクト指向やデザパタの勉強してこれからJavaの勉強しようと考えるんですが
ジェネリクス、リフレクション、アノテーションなんかを詳しく説明した初心者向けのおすすめ本ってありませんか?
C++くらいしか知らないんでリフレクションとアノテーションあたりにすごいわくわくするんです。

473 :デフォルトの名無しさん:2007/01/03(水) 00:14:42
やさしいJAVAは、無いな

474 :デフォルトの名無しさん:2007/01/03(水) 00:24:46
.equals()を使って比較する場合に否定演算子は使えませんか?
BufferedReaderを使って文字を入力させる際に文字が入力されていなければ終了させたいのですが

while(s = br.readLine()!=null)では上手く動作してくれないので
while((s = br.readLine()).equals(null))の逆をやりたいです。
これだとnull以外が入力された場合は終了になってしまうので。
どうかよろしくお願いします。

475 :デフォルトの名無しさん:2007/01/03(水) 00:32:57
>>474
> while(s = br.readLine()!=null)では上手く動作してくれないので
演算子の結合順序を調べろって話じゃなくて?

> .equals()を使って比較する場合に否定演算子は使えませんか?
普通に !foo.equals(bar) すりゃいい。
けど、今回の話とは関係ないね。

476 :デフォルトの名無しさん:2007/01/03(水) 00:36:45
>>475
レスありがとうございます。
確か文字列は参照型として扱われるので上記の文は使えなく
.equalsを使って比較するという話を聴いたことがありまして…。

477 :デフォルトの名無しさん:2007/01/03(水) 00:49:14
>>472
そういうのは初心者向けじゃないから
そういうの抜きで勉強汁
そしたら、どうして導入されたのかがよく分かるはずだ

478 :デフォルトの名無しさん:2007/01/03(水) 01:31:19
>>476
equals 使うのは同じ内容かを比較する時で、
同じ参照値か、を比較したいなら == か != でやる。

で、null は参照値なので null との比較は == か != でやる。

479 :デフォルトの名無しさん:2007/01/03(水) 01:55:10
Effective Javaを読む前にデザインパターンを読んだほうがいい?

480 :デフォルトの名無しさん:2007/01/03(水) 02:16:56
初心者ですが
最近、JAVAよりC++の方が簡単なような気がするのですが
気のせいでしょうか?

481 :デフォルトの名無しさん:2007/01/03(水) 02:17:30
>>478
レスありがとうございます。
その方法ではできなかったので少し探していたらendsWith(String)という便利そうなものを発見。
本文中にif(s.endsWith(".")) break;を入れてとりあえずは解決しました。
ありがとうございます。

482 :デフォルトの名無しさん:2007/01/03(水) 02:25:43
>>481
> while(s = br.readLine()!=null)
while((s = br.readLine()) != null)

483 :デフォルトの名無しさん:2007/01/03(水) 03:51:31
質問なんですが、
創るjavaの454ページのソースを打ち込んだんですが、
76行目のところで、シンボルがなんたらというエラーがでるのですが、
これそのまま打ち込めばできるの?
持っていて読破した方おしえてください。
よろしく。
ほかのスレにも書いてしまいました。
すいません。
なんか気になって眠れなくて。
今からなんとか寝ます。おやすみなさい


484 :デフォルトの名無しさん:2007/01/03(水) 09:39:17
2D画像の描画について質問なのですが、ビットマップにマスク用ビットマップを使用して別のビットマップを指定位置に貼り付ける(Win32APIのMaskBlt()な感じです)方法はどういったやり方があるのでしょうか?
drawImageはマスク指定できないようですし、クリップしようにもビットマップからShapeへの変換がわからず‥‥

485 :デフォルトの名無しさん:2007/01/03(水) 11:45:45
>>483

手打ち?ここからサンプルダウンロードできるんじゃない?

http://book.mycom.co.jp/support/bookmook/tukurujava/


486 :デフォルトの名無しさん:2007/01/03(水) 12:43:32
Java applet+Webサービスのフレームワークってありますか?

487 :483です:2007/01/03(水) 15:43:53
485さんへ
サンプルはダウンロードしました。
それも試してだめだった......
やはり間違いなのかな?


488 :デフォルトの名無しさん:2007/01/03(水) 16:09:48
>>483
本を持っていない人でも答えられるように、ソースの該当箇所をプリーズ。
>>485からダウンロードしたサンプルのファイル名の方がよりいいけど。

489 :デフォルトの名無しさん:2007/01/03(水) 16:12:45
>>484
実行環境によるけど、png とかで半透明情報つけておいて、
そのまま drawImage すりゃ、完全に透明なピクセルは表示されない。

490 :484:2007/01/03(水) 18:09:40
>>489
プログレスバー系の処理したいので、透過画像を使うと応用効かないのでできるだけ避けたいのですが。
JDKでは用意されてなくて自前でマスクから演算するしかないのかな‥‥

491 :デフォルトの名無しさん:2007/01/03(水) 19:06:29
>>490
java.awt.image.IndexColorModel 使ってみるとか。

既存のAPI調べたり工夫したりする知恵がないなら自力で実装しちゃう方が早いと思う。
応用きかないけど。

492 : :2007/01/03(水) 19:59:20
Swingコンポーネントで、MOUSE_PRESSEDイベントを受け取ったコンポーネントで必ずMOUSE_RELEASEDイベントを受け取るようにするにはどうすればいいのですか?

493 :デフォルトの名無しさん:2007/01/03(水) 20:11:18
>>492
基本的に無理。
マウスカーソルがアプリの領域外に出ると JNI とか使わないとイベント取れないし。

マウスカーソルがコンポーネント外に出ちゃっただけで
アプリの領域内にあるならなんとかできるかもしらんけど。
アプリ全体とか、MOUSE_PRESSED されたコンポーネント覚えておいて、
次にきた MOUSE_RELEASED を必ず覚えたコンポーネントに投げるとか

494 :483です:2007/01/03(水) 20:26:06
SearchSample_2.java
です。
guiのdatabaseフォルダーのなかに入っています。
エラーは77行目の ResultSet rs = ps.executeQuery();
の部分です。
よろしくです。


495 :デフォルトの名無しさん:2007/01/03(水) 21:08:06
>>494
ダウンロードしたソースだと問題なくコンパイルできたぞ。
スペースが全角になっていないか、行末に「;」がちゃんとあるか、
クラス名は正しく書いているか、importを正しく書いているか、もう一度確認してみたら?

496 :デフォルトの名無しさん:2007/01/03(水) 22:24:37
JSPページの中で、下記のようにJSPタグを用いて、nameの値を表示しています。
<jsp:getProperty name="data" property="name"/>

現状、nameが空文字だった場合、もちろん何も表示されません。
そこで、nameが空文字だった場合、"---"と表示するようにしたいのですが
JSPの中でどのようにコーディングしたらいいのでしょうか?

下記のように書いてためしたのですけど、やはりだめでした。ちょっと無茶くちゃかな。。
<% String answer = %>
<jsp:getProperty name="faqData" property="answer"/>
<% ;
if(answer.equals("")){
 out.println("---");
}
%>

そもそも、スクリプトレットとJSPタグを用いて、コーディングは
できないのでしょうか。

497 :483です:2007/01/03(水) 23:40:09
ありがとうございます。
また再度やってみます


498 :デフォルトの名無しさん:2007/01/04(木) 00:48:10
同一プロセス内で複数のJava仮想マシンが動作したためにエラーになりました。
って出るんだけど、どうしたら直るの?

ガイシュツならごめんなさい。

499 :デフォルトの名無しさん:2007/01/04(木) 00:53:34
>>498
ググれ。もしくはJavaをインストールし直せ。

500 :デフォルトの名無しさん:2007/01/04(木) 01:08:58
Timerクラスとかを使用して、ある一定時間同じ事を繰り返すなどの、
バックグラウンド動作ってJavaでできるの?

501 :デフォルトの名無しさん:2007/01/04(木) 01:15:55
にだ

502 :デフォルトの名無しさん:2007/01/04(木) 01:58:36
>>500
cron みたいのを言ってるなら、できない事はないけど。
素直に cron とかタスクスケジューラとか使った方が良いとは思う。

503 :デフォルトの名無しさん:2007/01/04(木) 02:32:22
Java6.0って何が変わったんですか?
ただのfixですか?

504 :デフォルトの名無しさん:2007/01/04(木) 02:47:43
>>503
http://java.sun.com/javase/ja/6/webnotes/index.html
http://java.sun.com/javase/ja/6/webnotes/features.html

505 :デフォルトの名無しさん:2007/01/04(木) 03:33:38
>>503
にとっては、fixくらいの意味にしかならない可能性大。

506 :デフォルトの名無しさん:2007/01/04(木) 04:26:01
eclipseで、メソッドやクラスの上にマウスを置くと、ポップアップ(?)みたいなjava.docのヒントが
表示されるようにしたんですが、

デフォルトだとヒント表示域が狭くて、F2を押してスクロールさせなきゃいけないんですが
このヒント表示域を広げる方法ってありますか?

507 :デフォルトの名無しさん:2007/01/04(木) 04:35:05
>>502
チャットサーバみたいなものをJavaで作成して、
サーバは常時起動していて、1時間間隔でサーバ管理者に
「サーバは動いてますよ」というメールを送るというような動作を想定しています。

508 :デフォルトの名無しさん:2007/01/04(木) 04:43:00
>>507
Mbeanのノティフィケーション使え。

509 :デフォルトの名無しさん:2007/01/04(木) 04:55:48
>>508
Timerクラスでは実現できないのでしょうか?

510 :デフォルトの名無しさん:2007/01/04(木) 09:56:28
>>509
お勧めしないのには理由がある。
・プログラムがとまってしまったら自力で復帰しなくてはいけない。
・メールを送信していない間にも負荷がかかる。

Timerでも実現は出来る。好みの問題

511 :デフォルトの名無しさん:2007/01/04(木) 11:34:22
JREについて質問です。
OS: LINUX FedoraCora5
JRE5.0をインストールしたいのですが
SUNとJPackageのどちらを利用すべきでしょうか。

512 :511:2007/01/04(木) 11:39:21
っていうかfedoraのスレで聞いたほうがいいですよね。
すいませんでした。

513 :デフォルトの名無しさん:2007/01/04(木) 13:50:56
すみません、質問させてください。
swingで作成した画面AとBがあり画面AからBを開くことができます。
このBを開くときに同時にAを閉じることはできるのですが、
Aは閉じないで(隠す)Bを閉じるときにAも閉じるという処理を行いたいのです。
人に聞いたところdestroy()を使えばできるようなことを言われたのですが
BでAに対しての処理を行う方法がわかりません。

わかりづらい文で申し訳ないのですが
知っている方がいらしたらご教授願います。

514 :デフォルトの名無しさん:2007/01/04(木) 14:34:04
ここしか質問スレなかったから、擦れ違い気味の質問しますね。
javaのアプリが重いので、高速化したいんですが、
javaの設定で変わりますか?
adobe readerの場合、apiを削除したら起動が早くなるんですが、そんなかんじのやつ・・・。

515 :デフォルトの名無しさん:2007/01/04(木) 14:43:06


516 :デフォルトの名無しさん:2007/01/04(木) 14:43:58
検索したら、他によさそうなのがあったから、こっちで探します。
http://pc10.2ch.net/test/read.cgi/prog/1160918783/312n-

517 :ぴゅあ:2007/01/04(木) 16:28:41
>>513
Aは閉じないでBを閉じる
あたりのフレーズでググってみてはいかがでしょうか?

518 :513:2007/01/04(木) 16:30:04
>>517
さっそくの回答ありがとうございます!
自己解決しました

519 :513:2007/01/04(木) 16:51:54
>>517
回答ありがとうございます。
ですが重要なのは「Bを閉じるときにAも閉じる」ということなので
そのフレーズでは十分な検索結果は得られませんでした。

>>518
感謝レスの代行ありがとうございます。
ですが未だ解決していませんので
もう少し続行させていただくと助かります。

質問自体に問題があるようでしたらその旨
おっしゃっていただければ以降はあきらめますので
お願いします。

520 :デフォルトの名無しさん:2007/01/04(木) 17:42:01
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Main extends JFrame{
 public static void main (String args[]){
  new Main();
 }
 // コンストラクタ
 public Main(){

  省略
  bt.addActionListener(new AL());
 }
 class AL extends ActionListener{
  
  public void actionPerformed (ActionEvent e){
   ボタンを押した時の動作
  }
 }
}

といったプログラムで、ボタンを押した際の動作を終えたら、また最初の画面に戻るようにしたいのですが、どのようにしたらいいものか解らないでおります。どなたかご教授頂けないでしょうか。宜しくお願い致します。

521 :デフォルトの名無しさん:2007/01/04(木) 18:07:33
ボタンを押し終えたら閉じるようにすればいいんじゃないの?

522 :デフォルトの名無しさん:2007/01/04(木) 18:16:32
>>520
何が分からないのかが良く分からない・・・。
「ボタンを押した時の動作」ってところに
「最初の画面に戻る」って内容を書けばいいんじゃないの?

処理はしてるのに再描画がされないって事???

523 :520:2007/01/04(木) 18:19:01
実は最初の画面が

1. 単語を覚える
2. 単語を登録する
3. 終了

というようになっておりまして、
登録してある単語が一巡したら、
また、最初の画面に戻るようにしたかったのです。
CUIですと、do 〜 while なんかで
ループさせるようにすれば戻れると思うのですが、
GUIのプログラムはどうしたらよいうのかと
困っている次第です。


524 :デフォルトの名無しさん:2007/01/04(木) 18:20:58
>>513
子に対して親を閉じる機能を使わせたいという事でしょうか。
インターフェースクラスやイベントリスナー等で検索すると良いかもしれません。
(親自身を子に渡し、閉じる事も出来ますが)

525 :デフォルトの名無しさん:2007/01/04(木) 18:22:52
>>523
不明な個所は「イベントドリブン」という事でしょうか?

526 :デフォルトの名無しさん:2007/01/04(木) 18:24:21
>> 522

その「最初の画面に戻る」って内容を
どのように書いたらできるのか解らずにおります。
例えば、
  public void actionPerformed (ActionEvent e){
   new Main();
  }
としてみたのですが、そうすると当然のことながら
新しいウインドウが立ち上がってしまいました。



527 :デフォルトの名無しさん:2007/01/04(木) 18:26:19
>>524
「初期メニュー」「単語を覚える」、「単語を登録する」それぞれをMainの子ウィンドウクラスにして切り替えればいいやん

528 :デフォルトの名無しさん:2007/01/04(木) 18:27:02
>>520
setVisible(false)?
こういうこと?

それとも
dispose()?

setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE)


529 :デフォルトの名無しさん:2007/01/04(木) 18:27:44
安価ミス >>523

530 :デフォルトの名無しさん:2007/01/04(木) 18:28:19
>>526
「単語を覚える」画面を描画を行うメソッドを作成し
actionPerformedの中で呼んでみては如何でしょうか。

どのような画面かよく分かりませんが
JTextFieldやJLabelの初期化、repaintやvalidateTreeなど

531 :デフォルトの名無しさん:2007/01/04(木) 18:32:04
>>526
・今までのJFrameを殺して新しくJFrameを起動する
・JFrameの状態を遷移させる
どちらも貴方の条件を満たせそうですが実装方法は異なります。
お好きな方を選んでみては如何でしょうか。

532 :デフォルトの名無しさん:2007/01/04(木) 18:37:58
>登録してある単語が一巡
この意味が分からなかった俺はアホなのだろうか。

533 :520:2007/01/04(木) 18:50:03
メニュー
ttp://pds.exblog.jp/pds/1/200701/04/93/a0094093_18444094.jpg
レベル選択
ttp://pds.exblog.jp/pds/1/200701/04/93/a0094093_1845921.jpg
単語
ttp://pds.exblog.jp/pds/1/200701/04/93/a0094093_18452250.jpg
意味
ttp://pds.exblog.jp/pds/1/200701/04/93/a0094093_18453498.jpg

説明が解りづらかったようで申し訳ありません。
このような感じになっております。
みなさまに頂いたアドバイスを参考に色々と
調べてみたいと思います。どうもありがとうございました。
また、質問させて頂く事もあるかと思いますが、
そのときはよろしくお願い致します。

534 :デフォルトの名無しさん:2007/01/04(木) 19:32:50
JavaでのMIDIに詳しい方、教えてください。


過去のJavaPressの記事 の
http://cappuccino.jp/keisuken/java/JavaSound/
の中の
MidiKeyboard.java ( MIDIキーボード・記録 )
っていのをコンパイルしたけど、
jreのバージョンによって、音が鳴ったり鳴らなかったり。


## java -version:1.5.0_07 SimpleMidiKeyboard
として起動すると、ちゃんと音が鳴るのだが、

## java -version:1.5.0_10 SimpleMidiKeyboard
だと、動作しているが、音はならない。
なんでだろ??

535 :ぴゅあ:2007/01/04(木) 19:44:55
VMのバージョンが問題ではないでしょうか?

536 :デフォルトの名無しさん:2007/01/04(木) 20:10:15
>>534
バージョンUPして鳴らなくなっているのは問題だな

537 :520:2007/01/04(木) 21:05:23
度々、申し訳ありません。

class Test1 extends JFrame{

 public static main (String args[]){
  new Test2();
 }

 class Test2{
  〜
 }
}

といったようにクラスの中にクラスを書けば
新しいウィンドウが開かずに遷移させることが解ったのですが、

class Test1 extends JFrame{

 public static main (String args[]){
  new Test2();
 }
}

class Test2 extends JFrame{
  〜
}

とクラスを分けて書くと新しいウィンドウが開いてしまいます。
どうすればクラスを分けて書いたときに遷移させることができるのか
教えて頂けないでしょうか。宜しくお願い致します。



538 :デフォルトの名無しさん:2007/01/04(木) 21:09:38
>>537
クラスの中にクラスとかそういう問題じゃなくて
継承元のクラスの違いじゃないのか?

539 :デフォルトの名無しさん:2007/01/04(木) 21:11:12
>>537
Swingはよく知らんがJFrameじゃなくてJPanelを継承とか

540 :デフォルトの名無しさん:2007/01/04(木) 21:30:34
HelloWorldアプリケーションを作成したいのですが、
ファイル名HelloWorld.javaで
テキストフォルダの中身は
public class HelloWorld
{
public static void main(String args[])
{
System.out.println("Hello Java World !");
と入力し

コマンドプロンプトで
javac HelloWorld.javadeでコンパイルし、
java HelloWorld.javaと入力すると
Exception in thread "main"java.lang.NoClassDefFoundError:HelloWorld
というエラーがでてうまく行きません。

ttp://javafaq.jp/S002.html#S002-08
このサイトを見て
java -classpath . HelloWorld
と入力するとうまく行くので
CLASSPATHの設定がおかしいと思うのですが
CLASSPATHは環境変数で
.;C:\j2sdk1.6.0\lib\tools,jar と設定しており
ドットも入っている筈なので何が原因かわかりません

>>1のwikiも見たのですが
クラスパスの設定のしかたの項目の
コマンドプロンプトでset CLASSPATH=%CLASSPATH%;.とやっても改善されず
クラスパスの設定方法は?へのリンクをクリックすると
サーバーが見つからないと出て、八方塞の状態です
プロンプトの再起動もしています。OSはXPでバージョンはJDK1.6です
いったい何が間違っているのでしょうか?

541 :デフォルトの名無しさん:2007/01/04(木) 21:31:32
>>537
JFrameは1つにしてgetContentPaneだけ差し替えれば?

542 :デフォルトの名無しさん:2007/01/04(木) 21:33:35
>>540
実行ファイルはjavaではなくclassファイルという事で宜しいかな?

543 :ぴゅあ:2007/01/04(木) 21:35:58
>>540
windowsを再インストールしてみるとか

544 :デフォルトの名無しさん:2007/01/04(木) 21:45:24
>>540
j2seはよくわからないんだけど、
mainを拡張しないでい〜んだ
エントリポイントってどこになるの?

545 :540:2007/01/04(木) 21:59:02
>>540
そうです

>>544
すいません
C,C++ならほんの少しわかるのですがJavaは今日から勉強を始めたため何を聞かれているのかわかりません

546 :デフォルトの名無しさん:2007/01/04(木) 22:04:45
>>545
とりあえず「set classpath」の結果をコピペしてみ

547 :デフォルトの名無しさん:2007/01/04(木) 22:05:06
プログラムが出来るようになりたいと思い本を買ってのですが最初っから意味不明です
どうか教えてください
下に本文を書きます


ソースコードをコンパイルする
コードを作成したら、次にコンパイルという作業を行ないましょう。
この作業を行なうには、コンパイラと呼ばれるソフトウェアを使います。
コマンドプロンプトを起動して、ソースファイルを保存したディレクトリに移動してください。
そして、次のように入力します。

javac sample1.java

すると、ソースコードがバイトコードと呼ばれる形式に変換され、
sample1.classという名前のファイルが作成されます。
このファイルはクラスファイルと呼ばれます。


>ソースファイルを保存したディレクリに移動してください。
とはどういう意味ですか?

548 :デフォルトの名無しさん:2007/01/04(木) 22:15:13
>>547
コマンドプロンプト開いてhelp cdと打て。
それ読んでわからなかったらPC一般板かWindows板へどうぞ

549 :デフォルトの名無しさん:2007/01/04(木) 22:15:34
コマンドプロンプトで
cd ソースファイルを保存したディレクリ

550 :540:2007/01/04(木) 22:19:51
set classpath
の結果はCLASSPATH=.;C:\j2sdk1.6.0\lib\tools,jar
でした

551 :デフォルトの名無しさん:2007/01/04(木) 22:20:07
すいません
ディレクトリの時点でわかりません
僕にプログラムは速すぎますかね?

552 :デフォルトの名無しさん:2007/01/04(木) 22:27:55
Java初心者です。
FileReaderクラスを使ってテキストを1文字ずつ読み込みたいんですが、
改行を無視するにはどうすればいいんでしょうか?

553 :デフォルトの名無しさん:2007/01/04(木) 22:28:09
明日書店に行って、ディレクトリについて調べてみれ
そして一歩ずつレベルアップしれ

554 :デフォルトの名無しさん:2007/01/04(木) 22:30:11
Java初心者です。
FileReaderクラスを使ってテキストを1文字ずつ読み込みたいんですが、
改行を無視するにはどうすればいいんでしょうか?

555 :デフォルトの名無しさん:2007/01/04(木) 22:31:08
ダブった…スマソ

556 :デフォルトの名無しさん:2007/01/04(木) 22:32:13
>>534
あー俺もなった
原因は1.5.0_10にはsoundbank.gmがデフォルトで入っていないかららしい
ここから落として説明通りにやるか
ttp://java.sun.com/products/java-media/sound/soundbanks.html
1.5.0_07\lib\audio\soundbank.gm をディレクトリ構造そのまま
1.5.0_10\lib以下にコピペすればいけると思う

557 :540:2007/01/04(木) 22:35:02
>>551
ディレクトリはフォルダの事です
cdはチェンジディレクトリの略でプロンプトで今どこのフォルダにいるのか変えるって感じですね

558 :デフォルトの名無しさん:2007/01/04(木) 22:36:42
>>554
読んだ文字が改行だったら無視したら良いんじゃないの?

559 :デフォルトの名無しさん:2007/01/04(木) 22:43:13
>>534

丁度話題になってた。
ttp://pc10.2ch.net/test/read.cgi/gamedev/1130373830/

560 :デフォルトの名無しさん:2007/01/04(木) 23:01:30
>>558
すみません、その方法がわからないんです…

561 :デフォルトの名無しさん:2007/01/04(木) 23:06:33
>>550
C:\j2sdk1.6.0\lib\tools.jarじゃないのか?ピリオドがカンマになってるぞ

562 :デフォルトの名無しさん:2007/01/04(木) 23:08:39
読み込んだ文字と改行文字 '\n' が等しいかどうか調べればいいんじゃないの

563 :デフォルトの名無しさん:2007/01/04(木) 23:46:18
<SCRIPT language="JavaScript">
<!--
var image= new Array();
image[0]='000.jpg';
image[1]='001.jpg';
image[2]='002.jpg';
image[3]='003.jpg';
image[4]='004.jpg';
image[5]='005.jpg';
function randimage(){
x=Math.floor(Math.random() * image.length);
imgframe.src=image[x];
t=setTimeout('randimage()',rtime);
}
//-->
</SCRIPT>

<IMG src="000.jpg" id="imgframe">


↑ブラウザの更新するたびにランダムに画像を変更したいんですけど
上記のようにすると最初に000.jpgが表示されその次にランダムの画像に切り替わるんです。
つまり更新するたびに最初は000.jpgその次にランダムの画像という風になります。
最初にランダムの画像を出すにはどうすればいいでしょうか?


564 :デフォルトの名無しさん:2007/01/04(木) 23:55:02
>>563
>>1-2

565 :デフォルトの名無しさん:2007/01/05(金) 00:01:08
JavaScriptは受け付けてません。

# imgタグの吐き出し自体をスクリプトでやればいんじゃね?

566 :デフォルトの名無しさん:2007/01/05(金) 00:03:16
# >>565
# DOM使ってcreateElementからimg要素生成してappendChildのほうがスマートじゃね?

567 :デフォルトの名無しさん:2007/01/05(金) 01:38:13
ttp://www.atmarkit.co.jp/fjava/javatips/index.html
ここのJava TIPSが理解できません。
ひょっとしていやがらせチップス集なんでしょうか?


568 :デフォルトの名無しさん:2007/01/05(金) 02:27:28
> よって、複数の同じタイプの変数を受け渡す場合、変数ごとの意味にこだわらずに、
>1つの配列にして扱うと、モジュール強度が高く効率の良いメソッドになります。

俺もこれは理解できないなと思った。
何か、やってることにたいし無理矢理意味の後付しただろ、これ。

見通しや、保守性を考えたらインターフェースの項目の意味は重要だろ。
例に挙げているのは、チェックと設定の対象という意味のある固まりだろ?
Cなら構造体を使うような場面だ。

569 :デフォルトの名無しさん:2007/01/05(金) 03:10:46
どう考えても思いつきで記事かいてるとしか思えん。
めちゃくちゃだ。


570 :デフォルトの名無しさん:2007/01/05(金) 04:15:06
>>567
理解は出来る。
ただ俺がそのコード書いたら先輩に殺される。

571 :デフォルトの名無しさん:2007/01/05(金) 05:20:13
気が狂ってるとしか思えんtips集だな

572 :デフォルトの名無しさん:2007/01/05(金) 10:16:27
>>567
@IT だからねぇ……

573 :デフォルトの名無しさん:2007/01/05(金) 11:26:15
ふつうデータクラス作るだろ…

574 :デフォルトの名無しさん:2007/01/05(金) 13:57:28
改行について教えて頂けますでしょうか?

出力する際に改行を入れたいと思い

\n
\r
\n\r

といった文字列を入力してみたのですが、
そのまま出力されてしまい、改行にはなっていません。
コーディングはUTF-8を使っているのですが、
それが問題なのでしょうか?
もしUnicodeで改行を出力するにはどうしたらよいのでしょうか?
よろしくお願い致します。









575 :デフォルトの名無しさん:2007/01/05(金) 14:05:16
キーボード上で \ と n を続けて押したと言う意味であってる?>文字列を入力

576 :デフォルトの名無しさん:2007/01/05(金) 14:14:53
そういうことだとおもいます。

System.out.println("test"+ "\n" + "test");
 
例えば、このように入力しても、

test\ntest

というように出力されてしまうのです><

577 :デフォルトの名無しさん:2007/01/05(金) 16:11:22
JFrameの画面上にJPopupMenuを表示して
JFrameをrepaintするとJPopupMenuが消えてしまいます。
JPopupMenuを消さずにJFrameを再描画する方法はありますでしょうか。

JPopupMenu.setDefaultLightWeightPopupEnabled(false);にしております。


578 :577:2007/01/05(金) 16:50:38
public class PopupMenuTest extends JFrame implements Runnable {
private Thread repaintThread = null;
public PopupMenuTest() {
setSize(800, 600);
JPopupMenu.setDefaultLightWeightPopupEnabled(false);
GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
DisplayMode fullMode = new DisplayMode(800, 600, device.getDisplayMode().getBitDepth(), device.getDisplayMode().getRefreshRate());
device.setFullScreenWindow(this);
device.setDisplayMode(fullMode);
addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON3) {createPopup().show(PopupMenuTest.this, e.getX(), e.getY());}}});
setVisible(true);
if (repaintThread == null) {repaintThread = new Thread(this);repaintThread.start();}
}
public void run() {
while (repaintThread != null) {
System.out.println("repaint");repaint();
try {Thread.sleep(10000);} catch (Exception e) {}
}
}
private JPopupMenu createPopup() {
JPopupMenu popupMenu = new JPopupMenu();
JMenu menu1 = new JMenu("menu1");
menu1.add(new JMenuItem("TEST"));
popupMenu.add(menu1);
return popupMenu;
}
public static void main(String[] args) throws Exception {new PopupMenuTest();}
}

579 :577:2007/01/05(金) 17:21:37
フルスクリーン時に現象が発生するようです。
すいません。Swingスレッドで聞いてきます。


580 :デフォルトの名無しさん:2007/01/05(金) 17:33:41
MySQLからexcuteQueryで抜き出したデータをprintlnで表示させたいんですが

while ( result.next() ) {

String msg = result.getString("id");
} out.println(msg);

をForループ文に書き換えって可能ですか?
msgの変数部分を配列に変えたいので、For文に書き換えたいたいのですが。
よろしくお願いします。

581 :デフォルトの名無しさん:2007/01/05(金) 17:37:24
for( ;result.next(); )

582 :580:2007/01/05(金) 17:45:51
>>581

String[] msg;

for ( i = 0; result.next(); i++ ) {

msg[i] = result.getString("id");
out.println(msg[i]);
}
でokですか?何か違う気もするけど


583 :513:2007/01/05(金) 18:06:48
>>524さん
回答ありがとうございます。
524さんの回答に従い検索したのですが、
ほとんどが自ウィンドウのイベントを取得するプログラムで
他のウィンドウに関連しての物を見つけることができませんでした。

重ね重ね申し訳ありませんが、よろしければ参考ページなども
教えていただけないでしょうか。


584 : :2007/01/05(金) 21:30:58
日本語のJDK6のJavaDocはどこからダウンロードすればいいのですか?

585 :デフォルトの名無しさん:2007/01/05(金) 21:35:17
すんません。クラスAで Jlabel 形式の変数JLBを定義しました。
自分で新たにクラスBを作成してこのクラスから変数JLBに適当なテキストをセットするにはどのように書けばいいですか、、、

クラスBを定義するところから教えてもらえませんか、、
クラスA内で処理すればできるんですが。Bからやろうとするとどうすればいいのか思いつきませんでした。

586 :デフォルトの名無しさん:2007/01/05(金) 21:39:43
>>584
たぶんまだない
リファレンスの英語は中学生英語レベルだしそんなに難しくないだろ?
語彙の問題はあるかもしれんが

587 : :2007/01/05(金) 21:44:00
>>586
まだですか。教えてくれてありがとうございました。

588 :デフォルトの名無しさん:2007/01/05(金) 21:52:51
>>585
import javax.swing.*;
public class A {
private JLabel label = new JLabel();
public static void main(String[] args) {
B b = new B(new A().label);
try{Thread.sleep(3000);}catch(Exception e){}
b.changeText("もげ");
}
}
class B extends JFrame {
private JLabel label;
public B(JLabel label) {
this.label = label;
setDefaultCloseOperation(EXIT_ON_CLOSE);
label.setText("ほげ");
add(label);
pack();
setVisible(true);
}
public void changeText(String text) {
label.setText(text);
}
}


589 :デフォルトの名無しさん:2007/01/05(金) 21:56:06
iアプリを作りたいと思い
これからJavaを学びたいのですが
何から手をつけていいかわかりません。
おすすめの本がありましたら
教えてください。

590 :デフォルトの名無しさん:2007/01/05(金) 22:00:40
>>588
ありがとうございますーーーー
今からこれコピーして意味理解します。
本当にありがとう。

591 :585:2007/01/05(金) 22:06:04
なんどもすんません、、

this.label = label;

のthisというのはどこから持ってきたんでしょうか。。

ぐぐってもthisではほかの結果が多すぎて探せんです・・

592 :デフォルトの名無しさん:2007/01/05(金) 22:13:01
java this でぐぐれ

593 :デフォルトの名無しさん:2007/01/05(金) 22:15:29
java this だとだめでしたが
java this 変数。でそれっぽいのが出てきました。ちょっと読んでみます。。

しっかし俺の買った本なんでsuperのっててthis載ってないんだ、、orz

594 :デフォルトの名無しさん:2007/01/05(金) 22:38:03
thisは自インスタンスじゃああああああああああああ

595 :デフォルトの名無しさん:2007/01/05(金) 22:47:56
>>591
オブジェクトのフィールドやメソッドなどのメンバには
(オブジェクト変数名).(メンバ名)
でアクセスするのが文法だが、
自インスタンスのメンバに限り
「(オブジェクト変数名).」が省略できる
省略しない時に、thisをつける

596 :デフォルトの名無しさん:2007/01/06(土) 01:07:19
Linux上にroot権限で作成したファイルをJavaから消せるのでしょうか?
root権限がないから消せないとか考える必要があるのでしょうか?
よろしくお願い致します。

597 :デフォルトの名無しさん:2007/01/06(土) 01:21:56
>>590
要はクラスBでクラスAで作成されたインスタンスにアクセスしたいなら、
クラスBに何らかの形でそのインスタンスのリファレンスを渡してやればいい。
B側でこのリファレンスを使って、そのインスタンスのメソッドなりフィールドに(アクセス権があるなら)アクセスできる。

>>588ではBのコンストラクタの引数としてラベルのリファレンスを与えている。
他にもBにラベルのリファレンスを受け取るメソッドを作ってA側でセットする方法もある。
>>588ではコンストラクタ内でテキスト変更をするだけでなく、後から変更できるようにするメソッドのために、
渡されたラベルのリファレンスをBのインスタンス変数として保持して、それを使っている。

Aの方にラベルのテキストを変更するメソッドを実装しておき、
BにはラベルのリファレンスではなくA自身のリファレンスを与えておいて、
BはAにテキスト変更のメソッド呼び出しだけをして、
実際の変更はラベルを保持しているA自身にやってもらう手もあるかも。

他にもいろいろと方法はあるかと。

598 :デフォルトの名無しさん:2007/01/06(土) 01:30:05
>>596
root権限で作成されていても他のユーザも変更可能なパーミションなら削除できるんじゃまいか。
もしroot権限でしか削除不能なパーミションなら、JVMをroot権限で実行すれば消せると思うが。
このあたりはrmでファイルを消すのと扱いは変わらないと思う。

599 :デフォルトの名無しさん:2007/01/06(土) 03:36:30
Javaド素人です。

クリップボードの内容を取得するプログラムが欲しいので色々探してみたところ、
ttp://wisdom.sakura.ne.jp/system/java/awt/Gjava56.html
のサンプルコードを見つけたので、コンパイルしてみたのですが、何故か
public App65() {
の部分で
「メソッドの宣言が不正です。戻り値の型が必要です。」
と表示されてしまいます。
自分で色々弄ってみたのですが、解決しませんでした。お助け願います。

また、if文の分岐条件内の「!」には何の意味があるのでしょうか?
良ければこれも教えてください。

600 :デフォルトの名無しさん:2007/01/06(土) 03:55:44
>>599
このサンプルはコンパイルを通らない間違ったサンプルだ。
通らないものをそのまま載せてる点でこのサイトは信用できないよ。
クラスの名前とコンストラクタの名前を一致させれば通る。
testとApp65のどちらかに統一する。もちろんソースファイルの名前もそれに一致させる。

!は論理否定。!に続く条件式の否定を意味する。

601 :デフォルトの名無しさん:2007/01/06(土) 03:59:22
mainの中でもApp65を使ってるし、クラス名をApp65にする方が修正が楽っぽい。
ファイル名もtest.javaから変更汁

602 :デフォルトの名無しさん:2007/01/06(土) 06:21:00
Unicode表現の2バイトのバイト列をcharに変換したいのですが
方法がわかりません。

char -> byte[] なら一旦Stringに直して
String.valueOf(c).getBytes();
みたいにできるんですが。

これの逆をどなたか教えてください。

603 :デフォルトの名無しさん:2007/01/06(土) 06:34:32
String str = new String(bytes, charsetName);
// str の assert 処理
char c = str.charAt(0);

でどうか。

604 :602:2007/01/06(土) 07:03:20
>>603

サンクスです。ばっちりできました。


605 :デフォルトの名無しさん:2007/01/06(土) 09:02:59
588のソースの

一番下のメソッドの引数(String text)
のtextってどこからでてきたものなんでしょうか('A`)
JFrameクラスの中に存在する変数ってことでいいんでしょうか?


606 :606:2007/01/06(土) 09:07:51
すんません、ぜんぜん違いますね、自己解決しました。

607 :デフォルトの名無しさん:2007/01/06(土) 09:58:19
public Test(){
setSize(200,200);
setVisible(true);
btn=new Button("test");
btn.addActionListener(this);
add(btn);
}

public void actionPerformed(ActionEvent ae){
repaint();
btn.setBackground(Color.YELLOW);
}

public void paint(Graphics g2){
if(im==null){
im=btn.createImage(getWidth(),getHeight());
g=im.getGraphics();
}
g.setColor(c);
g.fillOval(50,50,220,220);
g2.drawImage(im,0,0,this);
}

608 :607:2007/01/06(土) 10:00:35
上のソースコードを実行すると、
ボタンを押したときに背景が黄色にはなるんですが、
赤丸が描画されません。
何処をどう直せばいいのでしょう。

609 :607:2007/01/06(土) 10:28:28
getWidth,getHeightの前にbtn付け忘れてました。でも解決してません。
まじでわからんorz

610 :デフォルトの名無しさん:2007/01/06(土) 10:55:55
>>607
g.setColor(c);
このcって何色?

611 :607:2007/01/06(土) 11:31:06
赤です。

Color c=Color.RED;
で、フィールドで指定しています。

612 :デフォルトの名無しさん:2007/01/06(土) 11:33:52
uncorrelated=あんどう=ヤフーチャットパソコンなんでも相談室常連 のようなカス2ch匿名投稿者のために

<発信者情報>同意なしで開示へ ネット被害で業界が新指針
 インターネット上のプライバシー侵害や名誉棄損について総務省と業界団体は、情報を書き込んだ発信者の同意がなくても
被害者に発信者の氏名や住所などを開示する方針を固めた。これまでは発信者が開示を拒否すれば、誰が悪質な情報を流したか
被害者側には分からず、泣き寝入りするケースが多かった。業界団体は新たなガイドライン(指針)を年明けに作り、来春から導入する。【ネット社会取材班】(毎日新聞)
[記事全文]


2ch七田スレっド匿名投稿者 uncorrelated=あんどう プログラマー たなべまり●やり逃げ男
認知せず 彼女は私生児として子供を養育中。絶対に許すな。
2ch匿名投稿者に絶対に負けるな。社会が変わるまで徹底抗戦!!

どんどん情報集まっています。花見写真も随時配信予定。


uncorrelated=あんどう  社会的制裁はこれからですよ。神様はちゃんと見ております。
たなべまり●の人生をめちゃくちゃにした男 


613 :デフォルトの名無しさん:2007/01/06(土) 11:57:33
Graphicsクラスのオブジェクトを他のクラスのメソッドに渡して
drawImageを実行させたくて、引数のImageObserverが必要なんですが、
Graphicsクラスのオブジェクトから描画対象のComponentオブジェクトを得る方法ってありますか?

614 :デフォルトの名無しさん:2007/01/06(土) 12:26:02
PDFをiTextを使って読み込んで、ある特定の文字列を置換したいのですがどのようにしたらいいのでしょうか。。
自分なりに調べてみたのですが解りませんでした。。
お手数おかけしますがよろしくお願い致します。

615 :デフォルトの名無しさん:2007/01/06(土) 15:29:54
>>600-601
ファイル名とクラス名をApp65にすることで無事コンパイルできました。
!についても納得です。
ご親切にありがとうございました。

616 :ぴゅあ:2007/01/06(土) 17:28:33
>>615
解決してなによりです

617 :デフォルトの名無しさん:2007/01/06(土) 22:52:02

前略
Container contena = frame.getContentPane();
JPanel jp = new JPanel();

JLabel display = new JLabel("0" ,RIGHT);

GridLayout glayout = new GridLayout(4,4);
jp.setLayout(glayout);
JButton a1 = new JButton("1");
JButton a8 = new JButton("7");

JButton a16 = new JButton("16")
中略
jp.add(a1)

jp.add(a16);
contena.add(display,BorderLayout.NORTH);
contena.add(jp,BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);

のようにソースを書いたんですが、ラベルの文字が左寄せに戻ってしまいます。
どうすればいいですか('A`)

618 :デフォルトの名無しさん:2007/01/06(土) 23:59:56
public class Test extends JFrame{
private JPanel panel;
private JLabel display;
private int btnArray=16;

public Test(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setSize(400,400);

Container contena=this.getContentPane();

panel=new JPanel();
panel.setLayout(new GridLayout(4,4));

display=new JLabel("0");

JButton[] btn=new JButton[btnArray];
for(int i=0; i<btn.length; i++){
btn[i]=new JButton(Integer.toString(i));
panel.add(btn[i]);
}

contena.add(display,BorderLayout.NORTH);
contena.add(panel,BorderLayout.CENTER);
display.setHorizontalAlignment(JLabel.RIGHT);

this.pack();
this.setVisible(true);
}
}

619 :デフォルトの名無しさん:2007/01/07(日) 00:02:14
>>618
ありがとうございます。
できればなんで617だとダメだったのかも教えてもらえんでしょうか

620 :デフォルトの名無しさん:2007/01/07(日) 00:02:45
>>617
上のでどうでしょ?

621 :デフォルトの名無しさん:2007/01/07(日) 00:07:04
いや、俺も初心者なんでそこまでは^^;

ひょっとしたら組み込む時に、
JLabelのHorizontalAlignmentってのが初期化されるのかも?

ああ、試してないけど、JLabelのコンストラクタの所
JLabel display=new JLabel("0",JLabel.RIGTH);
ならいけるのかな?

622 :デフォルトの名無しさん:2007/01/07(日) 00:13:59
すんません、>>618 での
main メソッドはどう書けばいいんでしょうか('A`)

623 :デフォルトの名無しさん:2007/01/07(日) 00:16:52
617の時。余計なボタンとかパネルとか定義してないときは
ちゃんと右寄せになってたんですけどね、、ラベルの文字。

追加したら左寄せになっちゃって。なんでかなーと、、

コンパイルエラー出るたびに何で、何での繰り返しですわ。。
その何でがわからんうちは初心者脱出できないんでしょうけど、、


624 :デフォルトの名無しさん:2007/01/07(日) 00:24:19
>>622、623
mainメソッドの中身は
new Test();
これだけです。

コンパイルエラーで駄目な所を教えてくれる間はまだ幸せだという事に、
あなたもきっと気づく時が来ます。
実は607で書き込んだものですが、未だに問題が解決しないorz

625 :デフォルトの名無しさん:2007/01/07(日) 00:47:16
618で動きました。ありがとうございます
もうちょっとさっきの原因調べてみます。。

って、、また新たな質問が。。
メソッド同士の関係がいまいちワカリマセン。
メインメソッド内で定義した変数は他の(同クラス)メソッドでそのまま使うことは無理なんでしょうか。
あと、メインメソッドっていったい何?って感じになってきてしまいましたorz



626 :デフォルトの名無しさん:2007/01/07(日) 01:04:10
自己解決しましたorz

627 :デフォルトの名無しさん:2007/01/07(日) 01:52:17
ファイル操作で、delete()を使ってファイルを削除したいのですが、
簡単なサーバを起動して、ファイルを削除した後、
サーバを起動したまま、消したファイルをまた作り、
消そうとすると、ミスします。

これが何故なのかがわからない状態です。
どうかご存知の方がいましたら、よろしくお願いします。

628 :デフォルトの名無しさん:2007/01/07(日) 01:55:10
ミスってナーに?

629 :デフォルトの名無しさん:2007/01/07(日) 02:02:23
>>628
ファイルが削除できていないというミスです・・・。

630 :デフォルトの名無しさん:2007/01/07(日) 02:06:36
横からすみません。
中置記法を逆ポーランド記法に変換するプログラムを作ってます。
普通の二項演算子のみを扱うものならば出来たのですが、
ここから単項演算子を扱えるようにするにはどのように改良すればいいのでしょう?

一見、改良しなくてもマイナスくらいならいけそうな実行結果が出るのですが。。。

631 :デフォルトの名無しさん:2007/01/07(日) 02:14:44
>>627
消したファイルを作った時に、きちんと close してる?
開いたままのやつを消そうとすると失敗するよ。

632 :デフォルトの名無しさん:2007/01/07(日) 02:24:45
>>631
レスありがとうございます。

消したファイルを作成するときは、プログラム上ではなく、
フォルダ上で右クリック > 新規作成 > テキスト ドキュメント > 〜
と作成しています。

633 :デフォルトの名無しさん:2007/01/07(日) 02:25:50
>>630
具体的なコードが分からないので改良法も含めて何ともいえないが、
マイナスがうまくいってそうな結果になってるのは、
単項演算子として働いているのでなく、
数値の一部の負記号として扱われているからじゃないか?

634 :デフォルトの名無しさん:2007/01/07(日) 02:27:57
>>633
そんな気もするのですが。。。
例えば
A=-(B+C*D)/E→ABCD*+E/-=
って合ってますよね?



635 :デフォルトの名無しさん:2007/01/07(日) 03:04:29
>>634
演算子の優先順位の設定にもよるとは思うけど、
ABCD*+(unary-)E/=
かも。A=(B+C*D)/-EとかA=(-B+C*D)/Eみたいなのもちゃんと解釈できてる?
あと、単項演算子のマイナスと二項演算子のマイナスを区別していないと、
スタックから何個被演算子を取ってくるべきか分からなくなるよ。

636 :デフォルトの名無しさん:2007/01/07(日) 03:08:41
635のスタックからうんぬんは、
後置記法をスタックマシンで解釈するとき、ということで

637 :デフォルトの名無しさん:2007/01/07(日) 03:20:43
A=(B+C*D)/-E→ABCD*+/E-= (さっきのと違いますねorz)
A=(-B+C*D)/E→AB-CD*+E/= 

となりました。

単項演算子の - の場合、その前には左カッコ'('か演算子がくる、
右カッコ')'か文字であれば二項演算子の - とわかる。
これを用いて判別して、単項演算子のほうは(unary-)、みたいな表記にする

という方針で改良していけばよいでしょうか?

638 :デフォルトの名無しさん:2007/01/07(日) 03:31:24
>>637
A=(B+C*D)/-Eの正しい解釈はたぶんABCD*+E(unary-)/=だろうね。
結果はEで割ってから単項マイナスするABCD*+/E-=と変わらないけど。

単項マイナス、加減乗除、代入演算子、括弧だけの式の解釈なら、
単項演算子と二項演算子のマイナスの区別はそれでいけそうな気がする。
確証はないけど。

その手の式の解釈なら演算子順位文法の利用がパーザの手動構築では便利かも。
既にjavaの話題から離れてしまってるね^^;

639 :デフォルトの名無しさん:2007/01/07(日) 03:59:51
単項演算子と二項演算子のマイナスの区別は、
前に項があったら二項、なかったら単項だよ。

640 :デフォルトの名無しさん:2007/01/07(日) 04:45:56
書き込みねーぞてめーら

641 :デフォルトの名無しさん:2007/01/07(日) 05:01:15
test

642 :デフォルトの名無しさん:2007/01/07(日) 07:56:37
>>639
前に項があるってのはこの場合前に')'かアルファベットがあるってことじゃないのか

643 :デフォルトの名無しさん:2007/01/07(日) 09:32:23
まあそうだけど、そういう認識だとプログラムがすっきりしないような。
必ずしもデザパタ使う必要は無いけど、
インタプリタパターンあたりの話は理解しておいた方が良くない?

644 :デフォルトの名無しさん:2007/01/07(日) 15:12:20
実はインストールなのですがすみませんが教えてください。よろしくお願いします。

当方はすでに数回ほどEclipseを触ってみるために一度JAVA関係を
インストールしたのでしたが、少なくとも現在までに、Windows2000において

 J2SE Runtime Environment 5.0 Update2   ・・・(*1)
 Java 2 Rintime Environment, SE v1.4.2_03
 Java 2 Rintime Environment, SE v1.4.2_06
 Java 2 SDK, SE v1.4.2_03

までのインストールが行なわれたようでした(「アプリケーションの追加と削除」で確認)。

ここで、今回 Tomcat、Axis らをインストールして準備し、JAVA_HOME 環境変数が
上記の JRE(*1) には当たっていたものの、Tomcat を起動したところ、
 -----
 M:\apache-tomcat-4.1.34\bin>startup
 JAVA_HOME\bin\jdb.exe is missing
 The JAVA_HOME environment variable may not be defined correctly
 This environment variable is needed to run this program
 NB: JAVA_HOME should point to a JDK not a JRE
 Using CATALINA_BASE: ..
 Using CATALINA_HOME: ..
 Using CATALINA_TMPDIR: ..\temp
 Using JAVA_HOME: C:\Program Files\Java\jre1.5.0_02
 ファイル -Dsun.io.useCanonCaches=false が見つかりません
 -----
というエラーメッセージが出て起動が中断しました。
 -Dsun.io.useCanonCaches=false
という名前のファイルはなさそうなのですが、この場合はもう一度SDK等をダウンロードして
新しい環境を構成するべきでしょうか?またその場合は、現在のSDK等は一旦アンインストール
するべきでしょうか?ご指導のほどよろしくお願い致します。

645 :デフォルトの名無しさん:2007/01/07(日) 15:15:59
>>644
あ、、もしかすると
>JAVA_HOME should point to a JDK not a JRE
でしたか、、すみません、JRE(*1)ではだめだったんですね・・・。

ということは、JDK をインストールしないといけないということでしたか・・

646 :デフォルトの名無しさん:2007/01/07(日) 15:21:34
この場合、以前の SDK のインストール先のディレクトリーがわかれば、そこに
 JAVA_HOME 環境変数
を当てればいいのかとは思うのですが、実はこれを探してみたのですが、どこにあるのか
わかりませんでした・・

その場合は、「アプリケーションの追加と削除」で一旦アンインストールした上で、
SDK の最新版
 j2sdk-1_4_2_13-nb-5_0-win-ml.exe
を改めてインストールした方がいいでしょうか?

647 :デフォルトの名無しさん:2007/01/07(日) 15:26:23
>>646
eclipse入ってるならeclipseのディレクトリ内にJDK入ってるはずだぞ

648 :デフォルトの名無しさん:2007/01/07(日) 15:31:37
>>647
さっそくどうもありがとうございます、、今すぐにその中を探してみます

649 :デフォルトの名無しさん:2007/01/07(日) 15:38:36
今みましたところ、 *SDK* の名のつくものは
\org.eclipse.sdk.win32_2.1.2\
\org.eclipse.hyades.sdk.nls1_2.1.2\
が見つかりましたが、これらは J2SE SDK ではないようでした、やはり改めて最新版を
インストールしたほうがいいでしょうか・・・

その場合は、現在の SDK は一旦アンインストールしてからにするべきでしょうか・・・


650 :デフォルトの名無しさん:2007/01/07(日) 15:47:22
それとも、J2SE SDK はアンインストールしないで重ねて最新版をインストールしたほうが
いいでしょうか?その方が Eclipse に対して問題を生じないでしょうか?
この辺のことをやったことがないのであちこち見て回ったのですがわからないのでした。

651 :デフォルトの名無しさん:2007/01/07(日) 15:57:43
みなさんありがとうございます。
とりあえず、単項演算子はマイナスだけ、あとは二項演算子の+*/-=とアルファベット
だけを使うってことにして、作ってみます。

>>637に書いた方針でいこうと思うのですが、
改良前の時点で、
A〜Z → 5
= → 0
( → 4
) → 1
+と− →2
*と/ →3
のように、優先順位を数値にしています(数が大きいほど優先度が高い)

ここもいじる必要あります・・よね??


652 :デフォルトの名無しさん:2007/01/07(日) 16:28:08
javaでウインドウを作ってそこに指定したURLのページを表示させることは可能でしょうか?

653 :デフォルトの名無しさん:2007/01/07(日) 16:35:43
>>652
つ JEditorPane

ただし HTML3.2 相当なので、あまり使い物にならない。

654 :デフォルトの名無しさん:2007/01/07(日) 16:38:36
>>649
Eclipse\JDK150ってディレクトリないのか?

655 :デフォルトの名無しさん:2007/01/07(日) 16:52:30
>>654
たびたびどうもです、、
現在 Eclipse の構成は

C:\Program Files\eclipse-SDK-2.1.2-win32
eclipse
features
plugins
readme
workspace

となっていましたが、これらの中で *SDK* を検索しましたがないようです・・

どうして目に見える場所に SDK ディレクトリがないのかはまだわからないのですが、
一度現在の SDK を 「アプリケーションの追加と削除」 でアンインストールしても
Eclipse などの動作がおかしくなることはなければ、一回やってみようかと思います。

特に問題が起きる心配はないでしょうか?


656 :デフォルトの名無しさん:2007/01/07(日) 17:06:02
>>647,654
でたらめ書くなボケ。

>>655
ずいぶんと古いJDKを使ってるね。特に理由がなければ最新の物を使った方がいいよ。
>>1のwikiに書いてあるここから
ttp://java.sun.com/j2se/1.5.0/ja/download.html
「JDK 5.0 Update 10」というのをダウンロードして、インストールし直すといい。
古いのは消さなくてもいいけど、ディスク容量が気になるなら消してもいい。

インストールが終わったら、デフォルトではC:\Program Files\Java\jdk1.5.0_10というディレクトリに
インストールされるので、環境変数JAVA_HOMEにそのディレクトリのパスをセットする。
これでTomcatが動くようになる。

あと、Eclipseのバージョンもひどく古い。2.1.2って3年も前の物だよ。
最新は3.2.1。面倒くさかったら、All-In-One-Eclipseってのがあるから
それをインストールすると、一通りプラグインが入るので便利。
ttp://aioec.sourceforge.jp/

657 :デフォルトの名無しさん:2007/01/07(日) 17:10:45
java.applet.AudioClipでWAVを再生する時に音量(ボリューム)ってどうやって制御するの?

658 :デフォルトの名無しさん:2007/01/07(日) 17:16:00
>>657
できない
javaの外側のOS等の機能で制御するしかない

659 :657:2007/01/07(日) 17:48:58
>>658
javax.media.Playerで再生してGainControlで制御するしかないっすかね。



660 :sage:2007/01/07(日) 18:01:59
質問します。
以下のようなソースで
getContentPane();というメソッドがありますがこのメソッドを利用するときは
JApplet ap = new JApplet();
Container cnt = ap.getContentPane();
のようにオブジェクトを作成して利用しなくてもいいのでしょうか?

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

public class Sample_2 extends JApplet
{

public void init()
{
Container cnt = getContentPane();
JLabel lb = new JLabel("Welcome Swing!");
cnt.add(lb);
}
}

661 :デフォルトの名無しさん:2007/01/07(日) 18:14:14
継承してるから要らないんじゃね?と知ったかしてみる>>660

662 :660:2007/01/07(日) 18:18:18
>>661
まじで教えてください!
どこでオブジェクト作成されているんですか?
javadocを見てもわかりません。

663 :デフォルトの名無しさん:2007/01/07(日) 18:22:00
>>656
いろいろすみません。ありがとうございます。

>「JDK 5.0 Update 10」というのをダウンロードして、インストールし直すといい。
>古いのは消さなくてもいいけど、ディスク容量が気になるなら消してもいい。

ということは、古いバージョンがPCの中にどんどん積みあがって行っても
Eclipse には影響しないということなのですね、わかりました。

>All-In-One-Eclipse

わかりました、これを入れてみようと思います。

助かりました。何かありましたらまたよろしくお願い致します。
ではまた。

664 :660:2007/01/07(日) 18:49:09
OK!
解決したよ。フハハハハハ

665 :デフォルトの名無しさん:2007/01/07(日) 20:56:57
すみません…ファイル入出力でお聞きしたいことが。。。なにぶんjavaが初めてで。

ファイル xyz.txt に

123 345 654\n
32 90 3\n


といった数値データが入っています。
それを変数 x y z にそれぞれ前から値を入れていって
x+y+zや、x*y*zなど処理をして出力といったことをしたいのです。。。

cだとfscanf(file,"%d%d%d\n",&x,&y,&z)!=EOF)でやるのと同じなのですが
aplletにしないとならず。
ご助言お願いします。


666 :デフォルトの名無しさん:2007/01/07(日) 21:33:41
>>665
Stringのスプリットとか
ストリングトークナイザーとかで切り分けて 数値に変換

appletをどう使いたいのかは不明

667 :デフォルトの名無しさん:2007/01/07(日) 23:27:31
>>666
ありがとうございます。読み込みはなんとかできました。
Java3Dで点の集合を表示したくて…うまくいかずどなたか御指導願えるとありがたいです。

Point3d[] vertex = new Point3d[10000];

try {

//file read
FileReader file = new FileReader("hoge.dat");
BufferedReader buff = new BufferedReader(file);
StreamTokenizer st = new StreamTokenizer(buff);


st.whitespaceChars(',', ',');

// token 処理
while(st.nextToken() != StreamTokenizer.TT_EOF){
x=st.nval;
if(st.nextToken()==StreamTokenizer.TT_NUMBER)
y=st.nval;
if(st.nextToken()==StreamTokenizer.TT_NUMBER)
z=st.nval;
vertex[count]=new Point3d(x, y, z);

//System.out.println(vertex[count].x + " " + vertex[count].y + " " + vertex[count].z);
count++;
}

file.close();
}

668 :デフォルトの名無しさん:2007/01/07(日) 23:28:59

catch(Exception e){
System.out.println("Exception: " + e);

}


/* PoiintArrayクラスを使って物体の形状を作成 */
PointArray geometry = new PointArray(vertex.length, GeometryArray.COORDINATES);
geometry.setCoordinates(0, vertex);


/* 各頂点ごとに色を指定 */

/* 作成したGeometryを元に物体を作成 */
Shape3D shape = new Shape3D(geometry);

objTrans.addChild(shape);
objRoot.compile();
return objRoot;

という感じなのですが
ファイルから座標は読み込めているのに、ぬるぽが出てしまいます。
座標を配列で手入力しているときは出てくるのですが。。。。お願いしますorz

669 :デフォルトの名無しさん:2007/01/07(日) 23:30:07
vertex[0]={0 ,0,0}
vertex[1]={1 ,1,0}

のようにすると表示される、ということです

670 :デフォルトの名無しさん:2007/01/08(月) 00:22:02
これの意味が文法的に分かりません。

Thread app = new Thread(){
public void run(){
何やら記述;
}
};
app.start();

インスタンスを作ると同時にThreadクラスの中身を書いているんでしょうか?
Threadクラス独自の書き方なのでしょうか?

671 :デフォルトの名無しさん:2007/01/08(月) 00:24:43
JAVA初心者です。
申し訳ありませんが教えてください。
コンパイルして、クラス名を打ち込んでいるのに実行されません。
設定は一通りやっています。
パスも通してます。coldntopenになります。

672 :デフォルトの名無しさん:2007/01/08(月) 00:30:25
>>671

coldntopenってなんじゃ?

673 :デフォルトの名無しさん:2007/01/08(月) 00:35:29
>670
無名クラスで検索汁

674 :デフォルトの名無しさん:2007/01/08(月) 01:08:14
>>673
ありがとうございます。

675 :デフォルトの名無しさん:2007/01/08(月) 02:16:17
MouseEventについての質問です。
右クリック、左クリック、ホイールクリックの動作によって
それぞれ違う値を返す事はできますか?

676 :質問age:2007/01/08(月) 06:16:05
JNDI を使わないでピュアJavaでMXレコードを引く方法を探しています。
どなたかご存知でしたらサンプルなどご紹介ください。

677 :デフォルトの名無しさん:2007/01/08(月) 06:38:55
すみません質問があります。
.jarにまとめたCUIのプログラムをダブルクリックで一発起動はできないのでしょうか?
GUIを使った場合は起動が可能だったのですがプロンプト上で動くものでは無理なのでしょうか?
java -jar hoge.jarと入力すれば起動できるようにmanifestファイルも記述済みです。

提出用に使いたいのでできれば簡単に動く方が良いと思いまして。

何かしら方法がありましたらご教授頂きたいです。
よろしくお願いします。

678 :デフォルトの名無しさん:2007/01/08(月) 06:41:25
>>671
一応推測だけど

java hoge←クラスファイルに.classはいらないよ?

679 :デフォルトの名無しさん:2007/01/08(月) 06:43:11
>>675
俺は携帯開発しかイベント処理わからないけど携帯ならば大体全部のボタンが使える。
だから使えるんじゃない?
APIとかに載ってるのでは?

680 :デフォルトの名無しさん:2007/01/08(月) 06:57:46
>>677
OSは?
拡張子の関連付けすればいいのでは?

681 :デフォルトの名無しさん:2007/01/08(月) 07:12:46
>>680
OSはXP HOMEのSP2。
普通はコマンドプロンプトが勝手に起動してくれるもんなんですか?
GUIのjar形式ならダブルクリックで問題なく開きます。
今作った奴動かすとプロセスでjavaw.exeが増え続けるだけで全く動きが見られないです。

682 :デフォルトの名無しさん:2007/01/08(月) 07:16:08
>>677
キック用にバッチファイルなりシェルスクリプトなり作って、それをダブルクリックしてもらっては?

683 :デフォルトの名無しさん:2007/01/08(月) 07:20:06
>>682
それいいね。
Windoswだとバッチだよね?
シェルスクリプトなら少し分かるんだけど。
ありがとう。
ちょっくら勉強してくるわ。

684 :682=676:2007/01/08(月) 07:23:36
>>683
解決っぽくとヨカッタ♪

それはそうと、誰かおいらの>>676に答えてくださいまし。
rawソケット扱わなきゃいけないから JNI じゃなきゃできないのかなぁ。。。
だったらJNDI を強制した方が確実だよなぁ。。。

685 :デフォルトの名無しさん:2007/01/08(月) 07:40:23
>>684
力になりたいけど俺にはわかりそうにもないです…。

ちょっと見てみたけどバッチとか全く分からないんだが笑
勝手に終了しちゃうから新しくプロンプト開いてやろうと思ったけどそうしたら処理の一部にならなそうだし。
それなら自動終了しないようにできたりしたらいいなっと。
激しくスレチなのでここらで退散。

686 :682=676:2007/01/08(月) 07:56:58
>>685
以下2行だけ書いたテキストファイルを hoge.bat で保存すればおっけーですヨ。
java -jar hoge.jar
@pause

2行目は結果を表示して一時停止するためのものです。

おいらの方のは
  > nslookup -type=mx yahoo.co.jp
と同じことを Java でどうやったものかな、という相談でした。とりあえず素直に JNDI で
やることにします。どなたかクレバーな方法をご存知でしたら後からでも教えてくださいです。

687 :デフォルトの名無しさん:2007/01/08(月) 08:02:23
>>686
自分もそうやって実行してみたのですがどうも開いた場所がカレントディレクトリにならないようで…。
コマンドプロンプトの作業フォルダ %HOMEDRIVE%%HOMEPATH% が開いた時点でのカレントディレクトリになってまして。
そうしたら話にならないじゃないかとか思いましてね笑

nslookupですか。
最近digとhostと共に覚えましたが(Windowsはコマンド違うんだっけ?)Javaではちょっとわからないです。
力になれずにすみません。

688 :675:2007/01/08(月) 09:37:42
>>679
APIには、
クリックとホイールのスクロールしか書いてありませんでした

このことについて触れているHPも無いようだし
無理という事なんですかね

689 :デフォルトの名無しさん:2007/01/08(月) 11:20:06
JavaのJTextAreaみたいなコンポーネントで特定の文字のフォントだけ変えたり色付けたりしたいんですがそのようなコンポーネントはありますでしょうか?

690 :デフォルトの名無しさん:2007/01/08(月) 11:58:57
Servlet(Struts使用)上でJFreeChart使っています。

ttp://www.fireproject.jp/feature/jfreechart/advanced/simple_servlet.html
この方法でグラフがでるところまではできたのですが、
出力したグラフ上に、日本語が表示しません。

ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=16194&forum=12
上記サイトに、日本語文字化けの対応は書かれてはいるのですが、
表示しない場合の解決法がわかりません。
(一応、上記対応は実施しました。)

日本語が表示しない原因として考えられることは何がありますでしょうか。
あわせて、上記文字化け対応が反映されているかどうかの確認する方法もご教授いただけたらと思います。


691 :690:2007/01/08(月) 12:05:25
書き忘れました。

日本語が表示しないのはlinux上です。

同じアプリをwindows上に載せれば動きます。

692 :デフォルトの名無しさん:2007/01/08(月) 12:12:16
「日本語が表示しない」ってtypoだと思ったら天然だったのか・・・

日本語の勉強からやり直せ。


693 :690:2007/01/08(月) 12:20:48
そのまんま、「日本語が表示しない」のですが。。。

数字や英字は表示します。

694 :デフォルトの名無しさん:2007/01/08(月) 12:32:59
マジかよ…。
「(何者かが)日本語をしない」か、
「日本語が表示されない」のどちらかだろ?

日本語が何を表示しないんだよ。

695 :694:2007/01/08(月) 12:34:06
あー、推敲中に文節が抜けた。
訂正するのもマンドクセ。

696 :690:2007/01/08(月) 12:37:21
JFreeChartで出力したグラフ上に、日本語が表示しません。

これ、日本語おかしいですか?

申し訳ないけど、あなたの言われてることは揚げ足取りにしか見えません。

697 :デフォルトの名無しさん:2007/01/08(月) 12:38:02
主語とか述語とか受動とか、知らないのかな・・・

698 :デフォルトの名無しさん:2007/01/08(月) 12:42:29
>>696
おかしいと思うよ

699 :デフォルトの名無しさん:2007/01/08(月) 12:43:31
揚げ足取りなんて逃げてると、バベルの塔が崩壊するぞ。
客とのコミュニケーションは、プログラマのいちばん大事な仕事だ。

700 :デフォルトの名無しさん:2007/01/08(月) 12:44:17
>>696
おかしいです。

本当にそれが正しい日本語だと思っているのなら、それは大きな問題です。
あなたの言葉は読み手に正しく伝わらない可能性があり、
また、他人の言葉をあなたは正しく解釈できない可能性があるからです。


701 :デフォルトの名無しさん:2007/01/08(月) 12:44:35
っていうか、そのおかしいところの知識が不足している事を指摘できない
中途半端に知ったかってる香具師の多い事多い事w

702 :デフォルトの名無しさん:2007/01/08(月) 12:45:38
こういう人、客やプロジェクトメンバーとちゃんと会話できてるのかな・・・


703 :デフォルトの名無しさん:2007/01/08(月) 13:06:07
>>702
まぁメンバーにはいて欲しくない事は確かだ。

704 :デフォルトの名無しさん:2007/01/08(月) 13:09:56
>>696
文意通りに解釈すると「日本語」が表示しない訳だから
原因は表示を抑止している日本語にあるという事だよな。
ってことはJavaスレッドで質問しても解決しないぜwwwww

705 :デフォルトの名無しさん:2007/01/08(月) 13:22:37
>>696
みんなは意地悪してる訳じゃなくて
貴方の態度・姿勢は、まじめに回答してあげたくなる質問者のそれではありませんよ
という事を教えてくれてるんですよ

706 :デフォルトの名無しさん:2007/01/08(月) 13:40:29
つーかようするにわかんないって言う事を難癖つけてごまかしてるだけだろw

707 :デフォルトの名無しさん:2007/01/08(月) 13:42:23
っつーか就労ビザはあるのか?

708 :デフォルトの名無しさん:2007/01/08(月) 13:47:55
中国人が韓国人を罵倒するスレはココですか?

709 :デフォルトの名無しさん:2007/01/08(月) 14:08:11
まぁまぁ、みんな察してやれよ。
日本語で書かれた入門書やWebサイトが読めないんだから(プゲラ

710 :デフォルトの名無しさん:2007/01/08(月) 14:22:08
>>690
本気で解決策が欲しかったら、そういうのに反論せず、その前に環境を詳しく書け。
Linuxのディストリビューションとバージョン、Javaのバージョンくらいは必須だ。
アプリケーションサーバもあった方がいいが、この場合は多分書いても変わりないだろうな。

711 :デフォルトの名無しさん:2007/01/08(月) 14:25:07
初心者に対して偉そうにするやつは大した能力が無い翔子w

712 :デフォルトの名無しさん:2007/01/08(月) 14:26:29
能力があるんだったら答えてやりなよ、低姿勢で。

713 :デフォルトの名無しさん:2007/01/08(月) 14:27:56
日本語が表示されませんならスッキリ

以下質問
public int getMatchMapIndex(int locX,int locY){
int i=0;

while(i<map.length){
int x=map[i].getX();
int y=map[i].getY();
if(locX==x && locY==y){
return i;
break;
}
i++;
}
}

上記をコンパイルすると"制御が移る事はありません"と駄目だしされるのですが、
どう直せばwhileの中の処理を実行してくれるのでしょうか。
mapはJButtonの配列です

714 :デフォルトの名無しさん:2007/01/08(月) 14:28:20
残念ながらJFreeCharなるもののスキルは無いw

715 :デフォルトの名無しさん:2007/01/08(月) 14:39:11
>>713
break; が余計

716 :デフォルトの名無しさん:2007/01/08(月) 14:40:46
いや待て、break;無くしただけだと「値を返さないパスがある」旨のエラーが出る。
メソッドの最後にreturn i;が要る。

717 :デフォルトの名無しさん:2007/01/08(月) 15:34:08
>>713,716
デバッグをし易くするためにも、旧態然とした表記だが
・変数の宣言は関数の先頭で(この際必ず初期値を入れておく)
・return 文は必ず関数の最後に1回だけ
とした方が良いよ。そうすりゃヘンな値が返ってきた時に
デバッグ出力(またはブレーク)を1箇所書くだけで済む。

718 :デフォルトの名無しさん:2007/01/08(月) 15:39:24
>>717
それは賛同できんな。
そうしないとデバッグしにくくなるのはメソッドサイズがでかくなって
可読性が落ちる場合だからな。
メソッドサイズがせいぜい20行くらいだったら問題にはならん。

719 :デフォルトの名無しさん:2007/01/08(月) 16:03:55
>>717
> (この際必ず初期値を入れておく)
なんで言語仕様に局所変数の代入チェック機能があるのに、
それを壊すようなルールにするかね?

初期値入れるならコンパイルエラー出てからで良いじゃん。

720 :デフォルトの名無しさん:2007/01/08(月) 16:20:46
>>713
for文にするべきかと

721 :デフォルトの名無しさん:2007/01/08(月) 16:30:50
数を含む文字列のリストをソートをするときに、例えば
"X88Y" < "X133Y"
となるようなComparatorって標準又はオープンソースでありますか?
自分で書かないと駄目?

722 :デフォルトの名無しさん:2007/01/08(月) 16:38:25
>>690
「日本語を表示できない」か「日本語が表示されない」かな
この場合「日本語」は操作の対象だから目的語、もしくは受動態の主語
肝心の質問については、分からん

723 :デフォルトの名無しさん:2007/01/08(月) 16:42:33
>>717
デバッグしやすくするという名目で
バグを入れやすくするのは本末転倒だと思う。
>>718 が基本。

724 :デフォルトの名無しさん:2007/01/08(月) 16:46:49
>>717
変数宣言は使用直前が常識でしょ

725 :デフォルトの名無しさん:2007/01/08(月) 16:47:21
>>713
public int getMatchMapIndex(int locX, int locY){
for (int i = 0; i < map.length; i++) {
int x = map[i].getX();
int y = map[i].getY();
if (locX == x && locY == y) {
return i;
}
}
throw new IllegalStateException("no match!");
//or return -1;

726 :725訂正:2007/01/08(月) 16:48:34
>>713
public int getMatchMapIndex(int locX, int locY){
for (int i = 0; i < map.length; i++) {
int x = map[i].getX();
int y = map[i].getY();
if (locX == x && locY == y) {
return i;
}
}
throw new IllegalStateException("no match!");
//or return -1;
}

727 :デフォルトの名無しさん:2007/01/08(月) 17:12:07
>>722
おまいそうとういじめられてるだろw

728 :デフォルトの名無しさん:2007/01/08(月) 17:16:22
と、坊っちゃまが申しております

729 :デフォルトの名無しさん:2007/01/08(月) 17:18:01
哀れなヤツw

730 :デフォルトの名無しさん:2007/01/08(月) 17:21:00
(´・ω・)カワイソス

731 :デフォルトの名無しさん:2007/01/08(月) 17:23:26
もう、日本語が不自由な方はほっといてあげてくれ。
リアクションも含めて痛い

732 :デフォルトの名無しさん:2007/01/08(月) 17:31:53
ていうか流石に釣りだろ
スルー推奨

733 :デフォルトの名無しさん:2007/01/08(月) 17:39:42
たまに、ポリモルフイックに〜みたいな表現を見掛けるのですが、どういう意味なんですか?

734 :デフォルトの名無しさん:2007/01/08(月) 17:42:01
例えばどんな?

735 :デフォルトの名無しさん:2007/01/08(月) 17:49:25
コードは同じなのに違うメソッドの実装が呼ばれる

736 :デフォルトの名無しさん:2007/01/08(月) 17:50:28
今、どこのサイトか覚えて無いのでうろ覚えになりますが、
クラスの設計の話だったと思います

737 :デフォルトの名無しさん:2007/01/08(月) 17:52:47
リロードしわすれてた…

>>735
ありがとうございます
うーん、イマイチわかりません…

738 :デフォルトの名無しさん:2007/01/08(月) 17:57:29
ポリモルフィズム
でぐぐれ

739 :デフォルトの名無しさん:2007/01/08(月) 17:57:55
ポリモルフィズム=多態性、多相性、多様性

利用しているクラスAから見た時、クラスBが抽象的に作られていた場合


  class A{

   public void hoge(B obj){

     obj.hello();

   }

なわけだが、objの実態は


     クラス B
        △
        ├───┬───┐
     クラス C  クラス D  クラス E


だったりして、クラスC〜Eで、メソッドhelloの振る舞いが個別に定義されたりしている
状態のことをポリモフィックだ、とか逝ったりする。

740 :ぴゅあ:2007/01/08(月) 17:59:19
やはり私が回答しないと荒れますね

741 :デフォルトの名無しさん:2007/01/08(月) 18:09:06
>>739
public class C extends B{

  public void hello(){
    System.out.println("こんにちは");
  }
}
public class D extends B{

  public void hello(){
    System.out.println("にーはお");
  }
}
public class E extends B{

  public void hello(){
    System.out.println("ぐーてんもるげん");
  }
}

  B[] objs = new B[]{ new C(), new D(), new E()};

  for(int i=0 ; i < objs.length ; i++){
    objs[i].hello();
  }


結果
  こんにちは
  にーはお
  ぐーてんもるげん

742 :デフォルトの名無しさん:2007/01/08(月) 18:10:58
>>739
あ、多相性ですか
つまり、同じクラスを継承していれば同じように扱う、だけど動作は違う
…みたいな感じですかね大分わかってきました

>>738
調べてみます

743 :デフォルトの名無しさん:2007/01/08(月) 18:14:13
>>741
おお!分かりやすいです!
どうもありがとうございました

744 :デフォルトの名無しさん:2007/01/08(月) 18:17:14
>>743
例は普通の継承だけど、通常はBはinterfaceか、helloメソッドをabstractにした抽象クラス
であったほうがよいでしょう。

745 :デフォルトの名無しさん:2007/01/08(月) 18:20:22
ポリモルフィックでぐぐるとウィルス情報ばっかりなんだな
知らんかった

746 :デフォルトの名無しさん:2007/01/08(月) 18:25:34
>>744
分かりました
覚えときます

>>745
そうなんですよ
正直、ポリモルフィズムで調べればいいことが
分かっただけでも収穫です

747 :713:2007/01/08(月) 18:54:36
みなさんレスありがとうございます。

726のソースコードに直してコンパイルしたらすんなりと通ったのですが、
狙った結果が得られませんでした。
試しにfor文のなかに
System.out.println(i);
と入れてみたら、JButtonの配列数は108なのに、
ループしないで i=0 のまま return にいってしまっているみたいでした。

IllegalStateExceptionを調べたら、不正な時にメソッドが呼び出されると
検出されるそうですが、ありきたりなコードしか書いてない筈なのにorz

748 :デフォルトの名無しさん:2007/01/08(月) 18:59:11
711 :名無しの心子知らず :2007/01/08(月) 18:07:37 ID:z9dqgFU5
21:28:02uncorrelated: ナイスバディーの都合の女が(.∀.)イイ!!
21:28:16seikun_lib: いたいめにあってますものねw

【解説】ナイスバディーのハイカムさん(本名 たな◎まり◎)さんは
都合のイイ女ではありませんでした。本気で結婚を考え出産したようです。
許せませんアンコ 養育費を払っていません。確認済!
uncorrelated: まあ、クルマに乗らないからな・・・
takemaru123: のればいいのに
takemaru123: 彼女とドライブとか
ekaru: 息子とドライブとか〜
uncorrelated: んー・・・都内は、やっぱ不便だよ。
uncorrelated: *** ekaru さんを無視します。

【解説】アンコは、彼女のお父さんと会って
”この件は無かったこととさせていただきます”
茶封筒に3万円だけだったと聞きます  確認済!


749 :デフォルトの名無しさん:2007/01/08(月) 19:00:18
712 :名無しの心子知らず :2007/01/08(月) 18:08:29 ID:z9dqgFU5
uncorrelated=通称 アンコ、餡子 ヤフーチャットパソコンなんでも相談室

http://chat.yahoo.co.jp/c/roomlist2.html?.rmcat=552000138&.dsplist=user
コンピューターとインターネット→ユーザールーム(パソコンなんでも相談室)
やっくん(=通称 アンコ)の身体的特徴

@推定年齢30才
Aメガネをかけている(写真では茶色)
B白髪混じりの頭(2チャンネルの投稿で疲れている?)
C身長160CM台
D痩せ型
E童顔
イメージ写真
http://grape.astron.s.u-tokyo.ac.jp/pub/people/makino/images/g6boxwithmakino-med.jpg
追加情報 一ツ橋大学大学院卒
同じような被害女性を増やしてはいけません。

750 :デフォルトの名無しさん:2007/01/08(月) 20:49:23
百八か…いや、なんでも無い

>>747
配列数も一緒に表示してみた?

751 :713:2007/01/08(月) 21:56:30
>>750
凄く恥ずかしい話ですが、原因がわかりました。簡単でした。
引数に0,0が入っててmap[0]のgetX(),getY()の返り値も0,0、
条件一致 → returnで for文を抜けてたんですね。
715の理由がやっと解った(鬱

しかし今度は、
レイアウトを GridLayout(9,12)に設定してある JPanel に JButton 配列を組み込んでるのに、
ボタンのX座標、Y座標が全部(0,0)っていう新しい問題が orz

Window関係のクラスにヒントがありそうな気がするのでまた悩んできます。
お騒がせしました。

でも、まじで解らなかったらまた来てしまうと思うので、その時はお願いします(汗

752 :デフォルトの名無しさん:2007/01/08(月) 22:53:10
webプログラマのスレがマ板にないのはなぜ??

753 :デフォルトの名無しさん:2007/01/08(月) 22:54:59
あるよ
使用してる技術ごとに分散してるだけ

754 :デフォルトの名無しさん:2007/01/08(月) 23:12:38
>>753 thanks
組み込み系とかはあるのになんでないんだろう
って思ってた。

755 :デフォルトの名無しさん:2007/01/08(月) 23:25:28
Javaの質問ではないかもしれませんが・・・

自分で作ったJavaアプレット付きのHTMLファイルをWindowsの「背景」にしたところ、
あるマシンでは背景でアプレットが正しく動作したのですが、
他のあるマシンではアプレットが表示されるはずの部分が全て灰色になります。

JDK、JREのバージョンはどちらも1.5で、
OSは動くマシンがXP、動かないマシンが2000です。他に大きな違いは思い当たりません。
チェックボックス「Active Desktop に Web コンテンツを表示」はチェックされています。
2000のマシンでもJavaアプレットを動かすには何が足りないのでしょうか?

HTMLファイルはこんな感じです。
<html>
 <head></head>
 <body>
  <applet code="HogeApplet" width="400" height="300"/>
 </body>
</html>

756 :デフォルトの名無しさん:2007/01/08(月) 23:27:12
javaって実行EXEファイルつくれるんですか?

757 :デフォルトの名無しさん:2007/01/08(月) 23:33:36
>>756

.jarなら作れるよ。

758 :デフォルトの名無しさん:2007/01/08(月) 23:37:44
>756
商用のJETしかないんじゃyないかな
http://www.xlsoft.com/jp/products/jet/index.html

unix環境ならgcjあたりでバイナリ作れるけど

759 :デフォルトの名無しさん:2007/01/08(月) 23:43:12
>>755
本当に同じJREで動かしてる?
2000の方はMSのVMだったりしてない?

760 :デフォルトの名無しさん:2007/01/08(月) 23:46:07
windows環境でもmingwやcygwinでgcjを導入できる

761 :デフォルトの名無しさん:2007/01/08(月) 23:53:26
>>759
インターネットオプション > 詳細設定 > Java (Sun) がONで
インターネットオプション > 詳細設定 > Microsoft VM が全てOFFなら
SunのJREで動くはずですよね?

書き忘れましたが、
そのHTMLファイルをIE、Firefoxで開いた場合にはアプレットは動作します。

762 :デフォルトの名無しさん:2007/01/09(火) 01:50:40
>>761
灰色表示ってことはアプレットであることは理解されてるっぽいけど、
Javaコンソールにクラスが見つからないとかセキュリティエラーとかのエラー表示もなし?

763 :デフォルトの名無しさん:2007/01/09(火) 06:38:59
java

764 :デフォルトの名無しさん:2007/01/09(火) 10:31:43


class AA{
void hoge(){
System.out.println("hoge");
}
}

class main{
public static void main(String args[]){
args[0] rr = new args[0];
rr.hoge();
}
}
実行 java main AA
っていうふうにはできないの?どうすればAAのインスタンス生成して
メソッド呼べるの?

765 :デフォルトの名無しさん:2007/01/09(火) 10:35:21
それが出来ると思う理屈が分からん

766 :デフォルトの名無しさん:2007/01/09(火) 10:38:21
やりたいことよくわかんが
AA rr = new AA();
rr.hoge();
とかじゃだめなのか

767 :デフォルトの名無しさん:2007/01/09(火) 11:06:32
>>764
> どうすればAAのインスタンス生成して
AA a = (AA)java.lang.Class.forName("AA").newInstance();

> メソッド呼べるの?
java.lang.Class.forName("AA").getMethod("hoge", null).invoke(a, null);

768 :デフォルトの名無しさん:2007/01/09(火) 11:08:51
>>767
無理。AA も hoge も public が付いてないから失敗する。

769 :デフォルトの名無しさん:2007/01/09(火) 11:16:25
>>764
リフレクションでぐぐればいいと思う。(スレ内検索でもいいかも)

770 :デフォルトの名無しさん:2007/01/09(火) 12:05:20
javaって何?ってレベルなんだけど、
iアプリが作りたいです。
作れるようになるには、このスレのテンプレの流れに沿っていけばいい?
それともiアプリは別物?

771 :764:2007/01/09(火) 12:38:50
ランダムにあるクラスのインスタンスを生成したいの。
その生成したいクラスは、いくつあるのかはわからないという状況


772 :デフォルトの名無しさん:2007/01/09(火) 12:55:58
>>771
あのサンプルコードからその意図を読み取るのは神業すぎるような・・・

つーか、だからそれリフレクションだってば。 ググれ。
クラス名でインスタンス生成できるから、ランダムにクラス名を選択するコード書けばいいし。
もっと詳しいことが知りたければ、ある程度は実際の処理の説明が必要だな。

773 :デフォルトの名無しさん:2007/01/09(火) 16:25:22
>>771
class main {
public static void main(String[] args) throws Exception {
// args[0]で指定された名前のクラスオブジェクトを取得
Class c = Class.forName(args[0]);
// cのインスタンスを生成
Object o = c.newInstance();
// cからhoge()という名前のメソッドを探し出し、インスタンスoのそれを呼び出す
c.getDeclaredMethod("hoge").invoke(o);
}
}
hogeにpublicが付いていないため>>767のgetMethodが失敗するのは代わりにgetDeclaredMethodを使えばいい。
AA,hogeにpublicが付いていないためinvokeに失敗するかどうかは、
mainクラスとAAクラスが同じパッケージに属しているかどうかにかかっている。
>>767ではAAでキャストしているが、クラス名が実行時まで解決できない場合があるので、
生成されたインスタンスはObjectで受け取る。
もし、AAって分かっているなら、こんな面倒をかけなくても普通に>>766のようにできる。

ランダムにいくつかのインスタンスを生成したいなら、c.newInstance()を使って複数回生成すればいい。
生成したインスタンスはObejct配列なりObjectのコレクションなりで管理すればいい。

774 :デフォルトの名無しさん:2007/01/09(火) 16:38:48
もし、バージョンが1.4以下とかだったら、>>767のように、
c.getDeclaredMethod("hoge", null).invoke(o, null);
にして。5では可変引数に変わったのでnullだと警告がたぶん出る。
どちらのバージョンでも通すなら、
c.getDeclaredMethod("hoge", new Class[]{}).invoke(o, new Object[]{});
かな。

775 :デフォルトの名無しさん:2007/01/09(火) 16:52:05
勘違いしてた。インスタンスを複数でなく、生成したいクラスが複数あるのか。
>>772の言うように、Class.forName("クラス名");で複数のクラスオブジェクトを作って、
その中からランダムに選べばいい。

776 :デフォルトの名無しさん:2007/01/09(火) 16:53:41
> どちらのバージョンでも通すなら、
c.getDeclaredMethod("hoge", (Class[])null).invoke(o, (Object[])null);

でも良いね。

777 :デフォルトの名無しさん:2007/01/09(火) 17:05:43
>>776
うん。試しにコンパイルしてみたら、警告メッセージも、
> 非可変引数呼び出しに関しては java.lang.Class[] にキャストしてこの警告を出さないようにします。
> 非可変引数呼び出しに関しては java.lang.Object[] にキャストしてこの警告を出さないようにします。
になるね。余計なオブジェクトを生成しない点ではnullへのキャストの方がいいかも。
個人的にはオーバーヘッドが気にならないなら避けられるキャストは避けちゃうけど。

778 :デフォルトの名無しさん:2007/01/09(火) 17:26:40
自作のJavaソフトウェアを長時間使い続けていると、
メモリ使用量が増え続けていきます。

オブジェクトの参照を全て無くせば、
ガベージコレクトでメモリは解放されていくんですよね?
そういったメモリのことや、オブジェクトの参照がわかるツールはありませんでしょうか?

779 :755:2007/01/09(火) 20:08:14
>>762
Javaコンソールもトレイアイコンも表示されません。
ブラウザで動作させたときは表示されるのですが。

追記
今になって気付いたんですが、
例のHTMLファイルをappletviewerで表示させようとしたところ
何の表示、出力もなくすぐappletviewerが終了してしまいました。
この現象もXPのマシンでは確認できません。

アプレットのソースコードはこんな感じです
public class HogeApplet extends JApplet {
 public void init() {
  this.add(new JLabel("hoge"));
 }
}


780 :デフォルトの名無しさん:2007/01/09(火) 21:34:50
>>778
javadoc

781 :デフォルトの名無しさん:2007/01/09(火) 21:55:40
>>778
つ ぷろふぁいら

782 :デフォルトの名無しさん:2007/01/09(火) 21:58:07
>>758
それなら cygwin で作れるんじゃね

783 :デフォルトの名無しさん:2007/01/09(火) 22:08:18
アプレットの開発をしていて下記のソースで書いたところSDK上のアプレットビューアで
動作しましたがHTMLファイル(JREで動作)で開くと実行エラーが出ます。

FileInputStream inData = new FileInputStream("test.txt");
InputStreamReader readChr = new InputStreamReader(inData);
BufferedReader buffChr = new BufferedReader(readChr);
エラー文
java.security.AccessControlException: access denied (java.io.FilePermission test.txt read)

どのようにすればJREで動作しますか?


784 :デフォルトの名無しさん:2007/01/09(火) 22:22:21
>>778
Java6 なら jconsole じゃね?

785 :デフォルトの名無しさん:2007/01/09(火) 22:23:36
>>783
適切なポリシーが必要。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/security/PolicyFiles.html
後はググる。

786 :デフォルトの名無しさん:2007/01/09(火) 23:50:51
せんせー昨日から初めてとりあえずJDK落として入れてみたんだけど今Javaフォルダをよく見ると
jdk1.6.0
jre1.5.0_10
jre1.6.0
の3つのフォルダができてるんですが
初心者用のWeb見回すとjdk1.5.0をDLして来いとかいてあるんだけど俺の1.6.0で問題ないの?

HelloWorldで練習してて途中でJDKのAPI 仕様ドキュメントを持っておけって書いてあったけど
Webには1.5.0はあるけど1.6.0は見当たらない

もしかして1.6.0って出たばっかでドキュメントも出てないってこと?

787 :デフォルトの名無しさん:2007/01/09(火) 23:58:35
>>786
1.6.0で問題なし。Java6は英語のドキュメントしかないけど
ttp://java.sun.com/javase/6/docs/api/
入門レベルならJava5の日本語ドキュメントでも大丈夫。

788 :デフォルトの名無しさん:2007/01/10(水) 00:39:40
はぁ・・・
もう1.6って・・・
1.5も触ってないのに・・・
ドンドン置いていかれる・・・・

789 :デフォルトの名無しさん:2007/01/10(水) 00:42:49
>>770読んで思ったのだが……。
マジメな話、今、携帯電話のアプリ作るためには何を勉強すりゃいいんだろ?
「少し大きな」位の本屋ではロクな参考書が無い。

http://www.amazon.co.jp/gp/product/4872804961
http://www.amazon.co.jp/gp/product/4756140785

あたりを読むしかないのかな?


790 :デフォルトの名無しさん:2007/01/10(水) 01:28:55
>>779
htmlファイルの方を
<applet code="HogeApplet" width="400" height="300"/>
から
<applet code="HogeApplet" width="400" height="300">
</applet>
にして試してみて。appletviewerはxhtmlを理解しなかったかも。
2000で動かないのもxhtmlになっているからかもしれず。

791 :デフォルトの名無しさん:2007/01/10(水) 01:53:52
>>788
仕事で使ってないからと言って触らなければ置いていかれるだけ。
せいぜい趣味で使ってついていこうや。

792 :デフォルトの名無しさん:2007/01/10(水) 01:58:01
今から趣味で遊ぶとして
Java6とRubyではどちらがいいか?
っと敢えてこのスレで聞いてみるテスト

793 :デフォルトの名無しさん:2007/01/10(水) 02:01:49
>>792
両方。

というか、他人にどっちが良いか聞く前に触ってるようでないとダメのような気もする。

794 :755:2007/01/10(水) 02:03:36
>>790
HTMLファイルを修正したところ、appletviewer上で正しく動作するようになりました。
ありがとうございます! appletタグの書き方には気をつけます。
アクティブデスクトップ上では変化ありません。

795 :デフォルトの名無しさん:2007/01/10(水) 02:05:27
やはりな
オレ逝ったああああああぁぁぁぁ・・・・・

796 :デフォルトの名無しさん:2007/01/10(水) 05:58:40
下記のローカル環境で、リンクにセッションIDを埋め込むテストをしています。
OS WINDOWS XP HomeEdition SP2
IE 6.0
Java 5.0_08
TOMCAT 5.5

ユーザーがcookieを有効にしていないときを想定して、
サーブレットにおいて、response.encodeURLを使って、
リンクにセッションIDを埋め込もうと思っているのですが、
うまくいきません。
とりあえず、cookieが有効か無効かを確認するために
サーブレットにおいて、下記のコードを記述したところ、
結果は、それぞれ、true、falseでしたので、cookieが有効になっているようでした。
request.isRequestedSessionIdFromCookie());
request.isRequestedSessionIdFromURL());

ブラウザの設定で、[インターネットオプション]-[プライバシー]で
すべてのCookieをブロックに設定していて、テストするときは、
IEを立ち上げなおしています。
(IEを立ち上げなおして、設定を確認すると、
すべてのCookieをブロックに設定されています。)

IEのこの設定だけでは、Cookieをブロックできないのでしょうか?
Cookieをブロックするために、ローカル環境での開発において、
なにか特別な設定をする必要がありましたら、教えてください。

よろしくお願いします。

797 :デフォルトの名無しさん:2007/01/10(水) 06:02:10
ちなみに、2chでは、Cookieを有効にしないと書き込めませんが、
上記の設定で、Cookieが無効になっていたため、さきほど、書き込むことが
できませんでした。
だけど、WEB上の他のサイト(Yahoo!など)では、この設定でも
Cookieが有効になっているようで、それらのサイトにアクセスすると、
C:\Documents and Settings\ユーザー名\Cookiesに、きちんとCookieが
格納されます。
どういうことかさっぱりです。。

798 :デフォルトの名無しさん:2007/01/10(水) 07:10:28
>>796
ttp://www.google.com/search?rls=ja&q=IE+%E3%82%AF%E3%83%83%E3%82%AD%E3%83%BC+%E7%84%A1%E5%8A%B9+localhost

799 :デフォルトの名無しさん:2007/01/10(水) 09:27:18
>798
ありがとうございます。参考になりました。

800 :770:2007/01/10(水) 09:29:19
ねー、ここで聞いちゃいけないことだったの?

801 :デフォルトの名無しさん:2007/01/10(水) 09:32:42
>>800
Javaってなにのレベルを克服したらこっちのスレがいいかもな
>CLDC+MIDP+携帯電話用Javaスレッド part 6

802 :デフォルトの名無しさん:2007/01/10(水) 10:14:53
その昔、MSXでBASICはある程度極めてたんだが、それからパソコンから遠ざかってた。
いまからjavaはじめようと思うんだけど全く別物かな。


803 :デフォルトの名無しさん:2007/01/10(水) 10:26:50
>>802
同じ手続き型言語、差異は気の持ちようだ。

804 :デフォルトの名無しさん:2007/01/10(水) 10:53:01
>>803
あり。がんばってみる。

805 :デフォルトの名無しさん:2007/01/10(水) 11:55:09
こんにちわ
javaでボタンを押すと画面を切り替えられるようにするには
どうすればいいのでしょうか?

806 :デフォルトの名無しさん:2007/01/10(水) 12:23:23
永久無料でウルティマオンライン
【無料でUO】Hybrid鯖スレ 9【エミュ】
http://game11.2ch.net/test/read.cgi/mmosaloon/1168386640/

807 :デフォルトの名無しさん:2007/01/10(水) 12:23:43
こんにちわ
javaでボタンを押すと帳票が出力されるようにするには
どうすればいいのでしょうか?

808 :デフォルトの名無しさん:2007/01/10(水) 12:25:47
こんにちわ
どうすればいいのでしょうか?

809 :デフォルトの名無しさん:2007/01/10(水) 12:26:27
こんにちわ
javaでボタンを押すとどうすればいいのでしょうか?


810 :デフォルトの名無しさん:2007/01/10(水) 12:28:28
こんにちわするには
どうすればいいのでしょうか?


811 :デフォルトの名無しさん:2007/01/10(水) 12:38:07
さてと




はい、次の質問は?

812 :デフォルトの名無しさん:2007/01/10(水) 13:03:12
こんにちわ Java 世界

813 :デフォルトの名無しさん:2007/01/10(水) 14:28:06
おじゃましま
javaの学習をしようと思うんですが
JavaEEとJavaSEがあって何を落とせばいいのかわかりません。
JDK6 with NetBeans5.5とJava EE 5 SDK Update 2 の
どちらを落とすのがセオリーですか?
揃えられる物は揃えておきたいのですが…

814 :デフォルトの名無しさん:2007/01/10(水) 14:37:31
JDK6 with NetBeans5.5

Java EE SDK は、サーバサイドアプリの作成に必要な追加環境。

815 :デフォルトの名無しさん:2007/01/10(水) 14:44:23
>>814
ありがとー!

816 :デフォルトの名無しさん:2007/01/10(水) 18:55:06
ど…独楽回しだ…

817 :816:2007/01/10(水) 18:55:54
あ…誤爆だ…

818 :デフォルトの名無しさん:2007/01/10(水) 19:58:00
>>816
「こ」で始まるなら分かるが

819 :デフォルトの名無しさん:2007/01/10(水) 20:38:07
きっと「どくらく」って読んでるんだよ、そっとしておこう。


820 :デフォルトの名無しさん:2007/01/10(水) 20:41:15
>>818
どくらくまわしって読むんだよ
javaやる前にまず日本語から勉強したほうがいいようだな

821 :デフォルトの名無しさん:2007/01/10(水) 21:01:39
か…漢だ

822 :816:2007/01/10(水) 21:30:05
ここ宛のを誤爆しました。
判って遊んでますので、念のため。

か…漢だ… のガイドライン
http://ex13.2ch.net/test/read.cgi/gline/1164849131/

823 :デフォルトの名無しさん:2007/01/10(水) 21:46:59
よ…大学院からやりなおすがな

    ∧__∧
    (`・ω・´)
   .ノ^ yヽ、
   ヽ,,ノ==l ノ
    /  l |
"""~""""""~"""~"""~"

824 :デフォルトの名無しさん:2007/01/10(水) 22:49:05
お勉強始めようと思って
sunのSDKのページに行って5.0(1.5?)落とそうと思ったら
(use 32-bit version for applet and Java Web Start support)
↑このような注意書きがあったんですけど
サーブレット、JSPは出来ないと言うことでしょうか?
当方linuxでEM64環境なのですが、
今のところ1.4か32bit版を使わないといけないのでしょうか?

ちょっとだけ本読んでみたんですけど
自サバなら1.5使った方がよさげだし
やっぱり64bitで32bit使うと、パワーが100%発揮されませんよね?

825 :デフォルトの名無しさん:2007/01/10(水) 23:05:48
>>824
アプレットとか web start 使いたかったら 64bit版じゃなくて 32bit版使ってね、って話でしょ。

826 :デフォルトの名無しさん:2007/01/10(水) 23:22:11
くっそおおおおおおおおおおおおおおおおお
バグだらけで泣けてくる。
何でできないのかがわからん。
HP調べても正解が載っているだけで
何で自分の書き方がダメなのかわからん。


827 :デフォルトの名無しさん:2007/01/10(水) 23:33:03
泣く
諦める
どこまでちゃんと動くのか調べる

828 :824:2007/01/10(水) 23:33:21
>>825
レスありがとうです
appletは恐らく使わないと思われるのですが
web startというのが気になって…

最終的にはwebサーバに組み込んで
DBから読んだり書いたりして動的にページを生成して
サイトを作る予定です。

web startというのが何を指してるのか解らなかったので
サーブレットなどを含むWEB全体の機能が使えないのかと思ってしまいました

よく考えたら”web start JAVA”でググッてみろと…
ttp://www.atmarkit.co.jp/fjava/kaisetsu/javawebstart/javawebstart.html
で解りました。お騒がせしましたOTZ

でも、ちょっと便利そうと言うか、面白そうですねweb start
まあ、私には当分必要ないだろうけど。

829 :デフォルトの名無しさん:2007/01/10(水) 23:57:42
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.text.JTextComponent;
class test {
static JLabel display;
static JTextField TX;
public static void main (String args[]){
JFrame frame = new JFrame("test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container contena = frame.getContentPane();
JPanel jp = new JPanel();
JTextField TX = new JTextField(20);
JButton B1 = new JButton("OK");
actionA1 act = new actionA1();
B1.addActionListener(act);
display = new JLabel("     ");
jp.add(TX);
jp.add(B1);
contena.add(display,BorderLayout.NORTH);
contena.add(jp,BorderLayout.CENTER);
frame.pack();
frame.setVisible(true);
}
}
class actionA1 implements ActionListener{
public void actionPerformed(ActionEvent ae){
String pass = test.TX.getText();
test.display.setText("ok");
}
}
と書くとコンパイルは通りますが実行時にString pass = password.TX.getText();の行のせいでエラーが起きます。どうすればいいですか、、

830 :829:2007/01/10(水) 23:58:44
みす、、String pass = test.TX.getText();のところです

831 :デフォルトの名無しさん:2007/01/11(木) 00:02:46
>>829
> JTextField TX = new JTextField(20);
局所変数宣言して、そっちを初期化しちゃってるから、
static JTextField TX; の方は何も代入されてない状態なんじゃね?

832 :デフォルトの名無しさん:2007/01/11(木) 00:04:01
staticメンバとして
static JTextField TX;

mainの中でローカル変数として
JTextField TX = new JTextField(20);

このとき、
String pass = test.TX.getText();
で参照されるのは未初期化の前者。


833 :デフォルトの名無しさん:2007/01/11(木) 00:10:43
そうなんですか。。
orz
じゃあ、そのローカル変数から文字列を取り出すにはどうすればいいですかね、、、



834 :デフォルトの名無しさん:2007/01/11(木) 00:30:17
mainの
JTextField TX = new JTextField(20);

TX = new JTextField(20);
とする。



835 :デフォルトの名無しさん:2007/01/11(木) 00:50:03
tomcatとapacheを連携させてtJSP/サーブレットを
自宅PCで実行したいと思ってます。
tomcatはダウンロードできましたがとapacheはどこでダウンロードすればいいのか分かりませんでした。
それと、Apache Software Foundationとは何ですか?

836 :デフォルトの名無しさん:2007/01/11(木) 00:56:14
>>835
tomcat と apache の連携を考える人が
apache がどこにあるか分からんてのはありえんと思う。
どこで apache を知ったのか興味がある。

837 :デフォルトの名無しさん:2007/01/11(木) 01:02:48
>>836
apacheは学校で知りました。
連携も資料があるから大体分かりそうなんですけど
ネットでapache探してもどこからダウンロードすればいいのか分からなくて困っています。
ttp://www.apache.jp/dist/httpd/
↑とか見ても何をどうしていいのやら・・・。

838 :デフォルトの名無しさん:2007/01/11(木) 01:12:40
ttp://2sen.dip.jp:81/cgi-bin/up/source/up3687.xxx

void gameTitle()内の
buffer_g = buffer.getGraphics();
の行でNullPointerExceptionエラーがでてしまいます。
ググってみたも同じような例を見つけれませんでした。
どなたかご教授お願いいたします。


839 :デフォルトの名無しさん:2007/01/11(木) 01:39:40

質問
http://vista.jeez.jp/img/vi6844708650.png
こんな感じで、JFrameとかJOptionPaneの終了ボタンを
灰色にするにはどうすりゃいいでしょうか。


840 :デフォルトの名無しさん:2007/01/11(木) 02:04:50
>>837
とにかく入れるだけで、しかもWindowsであるなら
窓の杜(http://www.forest.impress.co.jp/lib/inet/servernt/server/apache.html)から
apache_2.2.4-win32-x86-no_ssl.msi でも選んどけばよろしいかと。
Apache 入れるだけの話なら Web制作板の方が適当だし、
詳しい話にも付き合ってくれると思う。

>Apache Software Foundation とは
ttp://ja.wikipedia.org/wiki/Apache%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2%E8%B2%A1%E5%9B%A3
特にJava関連の良質なプロジェクトが多いので
このスレに出入りするなら今後もお付き合いすることになると思うよ。

841 :デフォルトの名無しさん:2007/01/11(木) 02:07:51
>>838
init() 内で buffer を初期化する前に、gameTitle() が呼ばれちゃってて
buffer_g = buffer.getGraphics(); の時には buffer が null のまんまとか。

842 :デフォルトの名無しさん:2007/01/11(木) 02:10:07
Eclipseでpackage作ってるんですが、何故かエラー吐きます

String pushTitle(String n){

try{
String title;

String rss = n;
DocumentBuilderFactory doc = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = doc.newDocumentBuilder();
URL adress = new URL(rss); // 対象URLの読み込み
InputStream main = adress.openStream(); // 入力ストリームに展開
Document doct = builder.parse(main);

Element root = doct.getDocumentElement();
NodeList btitle = root.getElementsByTagName("title");
Element element = (Element)btitle;
title = (String)element.getFirstChild().getNodeValue();

return title;

} catch(Exception e){
System.out.println("エラー");
}
}

このメソッドは型 String の結果を戻す必要があります。
というメッセージが出るのですが、titleの型はString指定しているのですが、これでも駄目なんでしょうか?

843 :デフォルトの名無しさん:2007/01/11(木) 02:10:12
>>837
http://www.google.co.jp/search?hl=ja&q=apache+%E5%85%A5%E9%96%80+-%22ISBN%22&lr=
http://search.vector.co.jp/search?query=apache
そもそも Apache 関連は板違い。まぁ、がんがれ。

844 :デフォルトの名無しさん:2007/01/11(木) 02:11:42
>>839
たしかAWT/Swingでは無理じゃなかったっけか?

845 :デフォルトの名無しさん:2007/01/11(木) 02:14:39
>>842
> catch(Exception e)
こっちのブロックでも String型の値を return するか、
Error か RuntimeException のサブクラスを throw する必要がある。
もしくはメソッドにthrows節つけてExceptionのサブクラスでもいいけど。

846 :デフォルトの名無しさん:2007/01/11(木) 02:17:05
>>844
どこさがしてもないんですよねー
なんでないんだろ
意味わからんね

847 :デフォルトの名無しさん:2007/01/11(木) 02:18:56
>>845

 言われてみれば確かにcatch側でも戻り値設定しなきゃ無理ですよね^^;
ありがとうございました。
エラー処理はpackageを扱う側でやってるので、catchの中に戻り値設定する方法でやってみます。
エラー自体はお蔭様で消えました。

848 :デフォルトの名無しさん:2007/01/11(木) 02:23:18
>>846
理由は知らん。Unixだと実装できないとか? そーゆー理由かも?

849 :デフォルトの名無しさん:2007/01/11(木) 02:29:36
>>846
その機能が欲しいなら
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4803752
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6199687

あたりに vote しといてくれ。

850 :デフォルトの名無しさん:2007/01/11(木) 02:30:50
>>840
これならできそうです。どうもありがとう。
>>843
板違いでしたか。
あまりよく分かってませんでした、ごめんなさい。

851 :838:2007/01/11(木) 02:35:45
>>841
ありがとうございます。
具体的にはどんなふうに書きかえればいいのでしょうか?
質問ばかりですいません

852 :デフォルトの名無しさん:2007/01/11(木) 02:42:06
>>851
init() の先頭にある
> th = new Thread(this);
> th.start();
を init() の最後にもってくるとか。

853 :838:2007/01/11(木) 02:46:36
>>851
ありがとうございます、コンパイルできました!
本当に助かりました。

854 :デフォルトの名無しさん:2007/01/11(木) 03:02:22
//Bookクラス
class Book
{
//フィールドの宣言
String title;
String author;
int price;

//フィールドの値を返すメソッド
//書名を返す
String getTitle() {
return title;
}
//著者名を返す
String getAuthor() {
return author;
}
int getPrice() {
return price;
}

void setTitle(String title){
t = title;
}
void setAuthor(String author){
a = author;
void setPrice(int price){
p = price;
}
}



855 :デフォルトの名無しさん:2007/01/11(木) 03:03:09
class Hon3
{
public static void main(String args[]) {
Book book1;
book1 = new Book();

book1.title = "基礎JAVA";
book1.author = "山田 洋一";
book1.price = 2400;
System.out.println("title:"+book1.setTitle());
System.out.println("author:"+book1.setAuthor());
System.out.println("price:"+book1.getPrice());
}
}


856 :854,855,856:2007/01/11(木) 03:04:56
以下のようなエラーがでます。
改行の関係で分割して載せました。。どこが悪いか教えてほしいのですが・・
C:\Documents and Settings\t\デスクトップ\java>javac Hon3.java
Hon3.java:27: 式の開始が不正です。
void setPrice(int price){
^
Hon3.java:30: ';' がありません。
}
^
Hon3.java:46: '}' がありません。
^
エラー 3 個

857 :デフォルトの名無しさん:2007/01/11(木) 03:22:12
>>856
setAuthor() が閉じてない。
あるいは setAuthor() 内に setPrice() を
定義しようとしたのかも知れないけど
Java では関数内関数の定義は無理。

# 関数内クラスの定義は可能なので冗長で構わないなら同等のことは出来る

858 :デフォルトの名無しさん:2007/01/11(木) 03:30:34
BufferedReaderなどを使うプログラムでキーボードから入力させるとき、3文字以内に限定し、
4文字以上ならエラーを出し、もう一度聞きなおすにはどうすればいいのでしょうか?


859 :854,855,856:2007/01/11(木) 03:34:27
ありがとう、 }が足りないのは気がついたのですが、まだ残りの二つが・・
式の開始が不正・・・

860 :デフォルトの名無しさん:2007/01/11(木) 03:42:26
>>859
もしかして 854(Book) も Hon3.java に記述してる?
Java は一つのソースファイルに原則一つしかクラス(orインターフェース)定義できないよ。
(クラス内クラスとかなら書ける。)
で、クラス名とソースファイル名が合致してる必要もあり。
854 の内容は Book.java に書く。

861 :854,855,856:2007/01/11(木) 03:42:44
もとい、}をsetAuthorのあとにつけたら、エラーがなぜか増えた・・
C:\Documents and Settings\t\デスクトップ\java>javac Hon3.java
Hon3.java:23: シンボルを見つけられません。
シンボル: 変数 t
場所 : Book の クラス
t = title;
^
Hon3.java:26: シンボルを見つけられません。
シンボル: 変数 a
場所 : Book の クラス
a = author;
^
Hon3.java:29: シンボルを見つけられません。
シンボル: 変数 p
場所 : Book の クラス
p = price;
^
Hon3.java:42: setTitle(java.lang.String) (Book 内) を () に適用できません
System.out.println("title:"+book1.setTitle());
^
Hon3.java:43: setAuthor(java.lang.String) (Book 内) を () に適用できません
System.out.println("author:"+book1.setAuthor());
^
Hon3.java:44: setPrice(int) (Book 内) を () に適用できません
System.out.println("price:"+book1.setPrice());

862 :デフォルトの名無しさん:2007/01/11(木) 03:50:22
>>858
入力の確定はEnter?
であるならば普通に readlLine() して
読み込んだ文字数調べて4以上なら
またやり直すように while 文回せばヨロシ。

863 :デフォルトの名無しさん:2007/01/11(木) 03:52:11
>>861
変数 t とか変数 a とかどこで宣言してるのさ・・
this.title = title だと脳内で読んじまってたよ。

864 :854,855,856:2007/01/11(木) 03:58:22
いや、えーと
t=title; と書いたとこは、 ____ = title;
となってる穴埋めで、他に思いつかなくてついtと書いてしまったのです。
条件としてはsetTitleで出力を行うことなので、悩んでいます。


865 :デフォルトの名無しさん:2007/01/11(木) 04:06:39
宿題ならそれ用のスレに行くヨロシ。

866 :854,855,856:2007/01/11(木) 04:09:01
this title = title;
this author = author;
this price = price;
にしたら、エラーがだいぶ減った・・

ただ、まだ3つありますな、。
C:\Documents and Settings\t\デスクトップ\java>javac Hon3.java
Hon3.java:42: setTitle(java.lang.String) (Book 内) を () に適用できません
System.out.println("title:"+book1.setTitle());
^
Hon3.java:43: setAuthor(java.lang.String) (Book 内) を () に適用できません
System.out.println("author:"+book1.setAuthor());
^
Hon3.java:44: setPrice(int) (Book 内) を () に適用できません
System.out.println("price:"+book1.setPrice());
^
エラー 3 個

867 :デフォルトの名無しさん:2007/01/11(木) 04:11:05
宿題とそれ以外を瞬時に見分ける良い方法を誰か俺に教えて下さい。

パトラッシュ僕疲れたよ。なんだかとっても眠いんだ。

868 :858:2007/01/11(木) 04:11:42
>>862さんありがとうございます。
読み込んだ文字数の調べ方を教えて頂けると助かるのですが


869 :デフォルトの名無しさん:2007/01/11(木) 04:19:56
>>868
String#lengthくらいは知っておいても損はないぞ。
正確にはchar数であって文字数じゃないけどね。

870 :858:2007/01/11(木) 04:25:41
ありがとうございました。詳しく調べてみます


871 :デフォルトの名無しさん:2007/01/11(木) 05:14:48
>>866
宿題スレには宿題スレのルールというものがあるんよ

setTitle, setAuthor, setPriceはどれも値を返さないメソッド
しかもそれぞれ引数を要求する
titleやauthorやpriceを返す別のメソッドを実装してそれをHon3の方で使う

872 :デフォルトの名無しさん:2007/01/11(木) 06:58:23
>>834
亀レスですがありがとう、、
ってか思いっきりケアレスミス、、


873 :デフォルトの名無しさん:2007/01/11(木) 07:10:55
WEB-INF\classes\testapp\Sample.class
この環境におかれているサーブレット(Sample.class)をURLから
直接呼び出そうとしているんですが、うまくいきません。

web.xmlでURLパターンを記している場合、
そのパターンで指定した論理名でアクセスできることは確認しました。
しかし、web.xmlにサーブレットの情報を記述せずに、
下記のアドレスで、直接アクセスしようとすると、ステータスコード404が
返って来ます。今読んでいる本には、サーブレットに直接アクセスできると
書いていたんですが、どうしたらいいのでしょうか?
http://localhost:8080/testapp/testapp.Sample

874 :デフォルトの名無しさん:2007/01/11(木) 07:19:31
あと、web.xmlに↓を記してから(servlet-mappingは記してない)、
http://localhost:8080/testapp/testapp.Sample にアクセスしてみても
404が返ってきます。

<servlet>
<servlet-name>Sample</servlet-name>
<servlet-class>testapp.Sample</servlet-class>
</servlet>

875 :デフォルトの名無しさん:2007/01/11(木) 07:45:10
>>873-874
Servletクラス名直接指定はセキュリティ上の問題が大ありなので、
デフォルトでは無効になっている。

どうしてもというのなら
「InvokerServlet」でぐぐってみろ。




876 :デフォルトの名無しさん:2007/01/11(木) 08:21:42
>>875
いや〜ありがとうございます!
3年ほど前の本で勉強してたので、サーブレットの仕様が変わっちゃったのでしょうかね。

877 :デフォルトの名無しさん:2007/01/11(木) 08:49:16
Invokerのデフォルト仕様が変わったのは
Servletの仕様じゃなくて、Tomcatの仕様変更。


878 :デフォルトの名無しさん:2007/01/11(木) 09:27:46
>>877
TOMCATの変更でしたか。勉強になりました。

879 :デフォルトの名無しさん:2007/01/11(木) 09:52:27
キーボードの特定のキー(例えばAとか↑とか)が押されたら処理を開始するようにするにはどうすればいいでしょうか?


880 :デフォルトの名無しさん:2007/01/11(木) 09:54:10
InvokerServletがデフォルトでオフになったのは、
もう4年以上も昔のことなんだけどな。
ttp://archive.apache.org/dist/tomcat/tomcat-4/archive/v4.1.12/RELEASE-NOTES

881 :デフォルトの名無しさん:2007/01/11(木) 10:51:09
>>880
4.1.12からの変更ですか・・・
この本には、特にweb.xmlにInvokerServletについて、設定を記すべきと書いてないので、
この本ちょっと不親切ですね。。

一応報告ですけど、さきほど、web.xmlにInvokerServletに関する設定を記した結果、
サーブレットを直接呼び出すことができました。
WEB-INFの下のweb.xmlか、%TOMCAT_HOME%\conf\web.xmlの
どちらかのweb.xmlにInvokerServletに関する設定を記述しないといけないようでした。

はじめは、自分の手違いから、両方に記述していたので、うまくいきませんでした。
コンテナ起動時に、タグ名がユニークじゃないというエラーが発生。(Child name 'invoker' is not unique)
ある本で、何かの設定について、
WEB-INFの下のweb.xmlと%TOMCAT_HOME%\conf\web.xmlに同じ設定が
記されていた場合、WEB-INFの下のweb.xmlの設定が優先させるということを
読んだことがあったので、両方記述しても大丈夫だろうと勝手に判断していました。orz
InvokerServletの設定に関しては、どちら一方のweb.xmlに記述しないといけないみたいですね。

882 :デフォルトの名無しさん:2007/01/11(木) 11:20:50
>>879
キーイベントとかインプットマップなど

883 :デフォルトの名無しさん:2007/01/11(木) 13:53:27
質問です。
mainメソッド以外でコマンドライン引数を得るにはどうしたらいいんでしょうか?
よろしくお願いします。

884 :デフォルトの名無しさん:2007/01/11(木) 14:05:48
JSliderを使ってWindowsMediaPlayerみたいに
再生時間を調整できるよにするにはどうしたらいいですか?

885 :デフォルトの名無しさん:2007/01/11(木) 14:13:02
HttpServletRequestの文字コードを簡単に判定する方法ってありませんかね?
うまい方法が見当たらなかったので・・・・

886 :デフォルトの名無しさん:2007/01/11(木) 14:17:15
intをbyte配列にするにはどうすればいいのでしょうか?

887 :デフォルトの名無しさん:2007/01/11(木) 14:59:20
>>886
1.4 以降で一行で書きたいなら
byte[] array = ByteBuffer.allocate(4).putInt( value ).array();

888 :デフォルトの名無しさん:2007/01/11(木) 15:09:06
>>887
すいません。1.3.1でお願いします…

889 :デフォルトの名無しさん:2007/01/11(木) 15:24:59
>>888
ByteArrayOutputStream bout = new ByteArrayOutputStream();
new ObjectOutputStream(bout).writeInt( value );
byte[] array = bout.toByteArray();

エンディアンが違ったらダメだけど。

890 :デフォルトの名無しさん:2007/01/11(木) 15:34:07
>>888
> ttp://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=21438&forum=12&17
static byte[] chgBytes( int i ){
byte[] b = new byte[4] ;

b[0] = (byte)((i >>> 24 ) & 0xFF);
b[1] = (byte)((i >>> 16 ) & 0xFF);
b[2] = (byte)((i >>> 8 ) & 0xFF);
b[3] = (byte)((i >>> 0 ) & 0xFF);

return b;
}
バイトオーダー違うならひっくり返せ。


891 :デフォルトの名無しさん:2007/01/11(木) 15:50:39
>>890
& 0xFF は要らない。

892 :デフォルトの名無しさん:2007/01/11(木) 15:50:38
これを見る限りでは
ttp://java.sun.com/products/java-media/jmf/2.1.1/formats.html

ファイル形式:.wav
サンプル率:44.100kHz
サンプルサイズ:16Bit
チャンネル:ステレオ
は問題なく再生出来そうなのですが再生に失敗します。(下記エラーメッセージ)
Unable to handle format: LINEAR, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 176400.0 frame rate, FrameSize=32 bits
Failed to prefetch: com.sun.media.PlaybackEngine@15c7850
Error: Unable to prefetch com.sun.media.PlaybackEngine@15c7850

また、ステレオ→モノラルにしたファイルは再生が可能です。
ファイル形式:.wav
サンプル率:44.100kHz
サンプルサイズ:16Bit
チャンネル:ステレオ
理由が分かる方、教えて下さい。

893 :892:2007/01/11(木) 17:14:07
すいません、再生できました。
しかし、数回に一度上記のような警告が出ます。
タイミング的なものなのでしょうか・・・。

894 :デフォルトの名無しさん:2007/01/11(木) 18:37:00
prefetch

895 :デフォルトの名無しさん:2007/01/11(木) 18:42:14
よくサンプルプログラムに、複数の.javaソースファイルがあるのを見るのですが、
複数のソースファイルでのプログラミング方法がよく分かりません。
プログラムが長くなると色々不便なので、この分割する方法が知りたいです。
参考URL知りませんか?

896 :デフォルトの名無しさん:2007/01/11(木) 18:43:59
分割する方法の前に、Javaを勉強してください。

897 :892:2007/01/11(木) 18:50:33
複数ファイルを同時に再生すると起こるようなので
各処理をスレッドにて行うようにしたら現象は出なくなりました。
・・・しかし根本的な解決になっていない気がします。

>>894
もう少し・・・・もう少しだけヒントを下さい。
Prefetchable.isPrefetched()、Controller.prefetch()
ここら辺を勉強すれば良いですか?

898 :892:2007/01/11(木) 19:03:58
>>894
助言どおりplayerのprefetchを呼び出したら現象が出なくなりました。
現在、現象を理解できていないのでこれから調査したいと思います。

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

899 :ぴゅあ:2007/01/11(木) 19:33:17
>>895
このあたりを参考にしてみては?
http://www.forest.impress.co.jp/lib/sys/file/fileseprat/jydivide.html

900 :デフォルトの名無しさん:2007/01/11(木) 19:56:02
ランダムの数字を三つ表示し、その三つの数字の平均の数値も表示する。
そのようなプログラムを作りたいのですが、どのようなプログラムなんでしょう?

901 :デフォルトの名無しさん:2007/01/11(木) 21:18:56
>>899
どう見ても違うと思うw
Javaには#includeは無いからファイル分割は
クラス分割につながるんだということを
知らないと・・・・・
>>900
宿題頑張れ

902 :デフォルトの名無しさん:2007/01/11(木) 21:35:50
>>900
ランダムな数字を作る×3
平均値を求める
表示する


903 :888:2007/01/11(木) 22:05:07
>>889
>>890
ありがとうございます。シフトでやりました。

904 :uchu:2007/01/11(木) 22:33:41
Thread.sleep()を使って、あるテキストフィールドに一定時間だけ
文字列aaaを表示して、その後に文字列bbbを表示するには
どうしたらよいでしょうか?

tf.setText("aaa");

// 時間かせぎ
mThread thread = new mThread();
thread.start();
try {
thread.join();
} catch (InterruptedException e1) {
}

tf.setText("bbb");

// 時間かせぎ
mThread thread = new mThread();
thread.start();
try {
thread.join();
} catch (InterruptedException e1) {
}

tf.setText("ccc");
のようなコードを実行すると、bbbが表示されずに、時間稼ぎ処理の
時間のあとにcccが表示されてしまいます。


905 :デフォルトの名無しさん:2007/01/11(木) 22:49:22
>>904
ここを参照
ttp://pc10.2ch.net/test/read.cgi/tech/1126470659/977-

906 :デフォルトの名無しさん :2007/01/11(木) 23:13:29
一度オブジェクト指向のとっかかりとしてJAVAを勉強してC++にうつったんですが
またJAVAの勉強もしようと思い勉強開始しました。
それで、独習JAVAで一通り勉強した頃は、特に気にもしなかったんですがクラス内で
intなりのメンバを定義するときpublic,private,protectedを書かないと
どういう扱いになるんでしょうか。
それと、メソッドには必ずアクセス制御修飾子をつけるであっているでしょうか。


あと、蛇足ですがNetBeansをインストールして、なんとなく使っていて、コマンドライン引数を
取るにはどうしたら良いんでしょうか。スレ違いなのはわかりますし、サーバーとクライアント
をコンソールウィンドウ2つ使ってネットワーキングプログラムの勉強も出来なさそう
(コンソールウィンドウで実行すればコマンドライン引数をとれるのはわかりますが)
で、エディタとして便利という理由でNetBeansを使ってるんですが上記の2点の解決方法
を知ってる方いらっしゃったら教えてください。

907 :デフォルトの名無しさん:2007/01/11(木) 23:15:07
自分で試せば分かることをひとに聞くな

908 :デフォルトの名無しさん:2007/01/11(木) 23:20:15
アクセス修飾子については、掲示板で質問すると言うよりも
言語仕様を調べるとか、書籍で調べるたぐいの質問だな。

909 :デフォルトの名無しさん:2007/01/11(木) 23:42:59
>>906
> public,private,protectedを書かないと
デフォルトの(package private とか言われる)アクセス制御になる。

> それと、メソッドには必ずアクセス制御修飾子をつけるであっているでしょうか。
フィールドと同じ。

> コマンドライン引数を
日本語化してるならプロジェクトのプロパティ開いて、
「実行」ってカテゴリのところに「引数」って項目がある。
サーバーとクライアント操作するならコンソール二つ使った方が早いと思うけど。

910 :デフォルトの名無しさん:2007/01/12(金) 00:28:30
895
中級者向けの本見たら、パッケージを使えば、複数のjavaファイルでプログラムが組めることが分かりました。
絵の多い初心者向けの本しか読んでなかったので・・・。


911 :デフォルトの名無しさん:2007/01/12(金) 00:56:38
895の言っていることがいまいちよく分からないが
自力で何かつかんだ様で何より

912 :ぴゅあ:2007/01/12(金) 01:02:12
>>910
解決したようでなによりです

913 :デフォルトの名無しさん:2007/01/12(金) 01:11:05
Arrays#sort(Object[] a)は配列のクローンを生成するようですが
インスタンスの生成を伴わないソートライブラリはどこかにありませんでしょうか。

914 :デフォルトの名無しさん:2007/01/12(金) 01:15:00
ArraysのAPIを見ると、
static void sort(Object[] a)
とあるんだが。



915 :デフォルトの名無しさん:2007/01/12(金) 01:15:50
内部でクローンを作るという意味です。

916 :デフォルトの名無しさん:2007/01/12(金) 01:34:01
そういう意味か。

http://www.manageability.org/blog/stuff/open-source-java-data-structures-and-algorithms/view

にいろいろ集まってるからあるかもしれん。Commonsのにはなかった。


917 :デフォルトの名無しさん:2007/01/12(金) 01:49:07
>>915
自分で heapsort か quicksort でも実装すれば? 安定じゃないけど。
mergesort は安定だけどインデックスとか参照とかの配列みたいのが1.5本ないとダメだし。
Arrays.sort(Object[]) がダメって事はメモリが余程足りないんだろうから heapsort の方が良いのか?

速度関係ないとか要素数少ないなら bubble sort でも何でも良いけど。

918 :デフォルトの名無しさん:2007/01/12(金) 02:30:04
Object配列のクローンの生成コストってたかが知れてるだろ。
ディープクローンじゃないんだから。
よっぽど要素数が万単位ならわかるけど。


919 :デフォルトの名無しさん:2007/01/12(金) 08:23:51
入力したパスワードを一旦ハッシュ値に置き換えるのってどうやるんですかね?
結構難しいんでしょうか

920 :デフォルトの名無しさん:2007/01/12(金) 08:27:33
java.security.MessageDigestでも使っておけば?


921 :デフォルトの名無しさん:2007/01/12(金) 08:48:08
http://aircross.hp.infoseek.co.jp/java_md5.htm

922 :906:2007/01/12(金) 08:50:05
>>909さん
不慣れな初心者の自分に丁寧なレス、ありがとうございました。

923 :デフォルトの名無しさん:2007/01/12(金) 11:31:31
クッキーについて、確認したいことがあります。よろしくお願いします。

↓この認識であってますでしょうか?

クッキーは、レスポンス時にヘッダ情報の中に格納されて
サーバ側からクライアント側に送信される。
クライアント側からサーバ側へ再びリクエストするときには、
ローカルに保存していたクッキーからデータを読み取り、
リクエストデータのヘッダ情報の中に格納して、サーバへリクエストする。
(たぶん、ここまではあってると思うのですが。。)

jsessionid(これもクッキーである)だけをクライアント−サーバ間で
やりとりするときは、クライアント側でjsessionidを受け取っても
ローカルにクッキーとして保存しないで、ブラウザがjsessionidの情報を
保持している。(?)

↑のように思ったのは、jsessionidだけをクライアント−サーバ間で
やりとりしてるときは、ローカルにクッキーファイルが作成されなかったからです。
では、クライアントはjsessionidをどこで保持しているのだろうと考えた結果、
ブラウザが保持している?と思い至りました。
サーバ側において、jsessionid以外のクッキーを生成し、
レスポンスオブジェクトに格納して、クライアントに送信すると、
ちゃんとクライアント側のローカルでクッキーファイルが保存されるんですが、
そのクッキーファイルを開いてみても、jsessionidに関する情報がないんですよね。。

そもそも、jsessionidについては、他のクッキーとは扱いが違うのでしょうか?

924 :デフォルトの名無しさん:2007/01/12(金) 11:37:11
クッキーの永続化とかセッションクッキーで調べれ

925 :デフォルトの名無しさん:2007/01/12(金) 11:44:05
それはない


926 :デフォルトの名無しさん:2007/01/12(金) 12:12:42
>>924
そのキーワードでぐぐってみました。ありがとうございます!

セッションIDは、セッションクッキー(一時的に使用し、ブラウザを閉じるまで有効)という
ことですね。
だから、もともと、ローカルに保存されるものではない。(イメージとして、ローカルに保存して
おいて、ブラウザを閉じたときに削除するのだろうと思ってました。^^; )

ためしに、他にクッキーを作り、setMaxAge()を設定せずに(あるいは、setMaxAge(-1)を設定して)、
レスポンス情報に格納し、クライアント側に渡したところ、jsessionidと同じく
ローカルに保存されていませんでした。

927 :デフォルトの名無しさん:2007/01/12(金) 12:24:09
めでたし めでたし


928 :デフォルトの名無しさん:2007/01/12(金) 13:25:33
自分で試してみようという意欲のある質問者は好感持てるな。

929 :デフォルトの名無しさん:2007/01/12(金) 13:31:45
ここは質問者も回答者も大人ですね

930 :デフォルトの名無しさん:2007/01/12(金) 14:21:02
セッションにディレクトリのデータが入っていて
filelistを使って出力させるプログラムを作成しているのですが
日本語のフォルダやデータが?で文字化けしてしまいます
うまく表示させるにはどうすればよいでしょうか


// セッションを取得します
HttpSession session = request.getSession(true);
String directory = (String)session.getAttribute("DIRDATA");

//ディレクトリ情報を格納
File filelist[] = new File(directory).listFiles();
PrintWriter pw;
pw = response.getWriter();

//全て出力
for (int i = 0 ; i < filelist.length ; i++) {
if (filelist[i].isFile()){
pw.println("[Data]" + filelist[i].getName() + " : " + filelist[i].length() + "byte");
}else if (filelist[i].isDirectory()){
pw.println("[Folder]" + filelist[i].getName());
}
}

931 :デフォルトの名無しさん:2007/01/12(金) 15:06:14
int i,j;
for(i=0;i<=3;i=i+1){
 〜
for(j=0;j<=2;j=j+1){
  〜
}
}

以上のような構造の場合、この後でSystem.out.println(i+j);などとするとjだけが「初期化されてない」と
エラーになるのですがこれは何故でしょうか?

932 :デフォルトの名無しさん:2007/01/12(金) 15:16:54
>>930

response.setContentType("text/html; charset=Windows-31J");

とか、サーバが動いている文字コードに合わせてやればいいのか?

933 :デフォルトの名無しさん:2007/01/12(金) 15:19:38
for(i = 0; i < n; i++)
JLabel "label"+i = new JLabel();

こんな感じにインスタンス名に変数を含ませたいんですができますか?

934 :デフォルトの名無しさん:2007/01/12(金) 15:20:33
>>932
そのようです
ご返答ありがとうございました

ファイルのダウンロードのほうも直さなきゃ・・・

935 :デフォルトの名無しさん:2007/01/12(金) 15:21:19
>>933
それするくらいなら配列にするとか、
名前付けて、Mapに入れればいいんじゃないか?
系統だって変数を管理したいというのが元々のしたいことなんだから。

936 :デフォルトの名無しさん:2007/01/12(金) 15:44:20
>>931
同じスコープで初期化しないとダメかと思って
int i,j;
{{j=0;}}
for(i=0;i<5;++i){
for(j=0;j<5;++j){
}
}
i=j;
ってやってみたけど、エラーにならなかった。
多分for内で初期化処理は行われない可能性があるからじゃないかな。

なんなら
int i=0,j=0;
for(i=0;i<=3;i=i+1){
 〜
for(j=0;j<=2;j=j+1){
  〜
}
って書けば良いとおもうよ。
}

937 :デフォルトの名無しさん:2007/01/12(金) 16:08:26
>>931
言語規定で決められてるから。

簡単に言うと、for(i=0;i<=3;i=i+1) の i < 5 は定数式じゃないので
i < 5 が true になるときと false になるときの両方を調べる。
i < 5 が true になるときは for(j=0;j<=2;j=j+1) に行けるので j は「確実に代入」になるけど
i < 5 が false になるときは for(j=0;j<=2;j=j+1) に行けないので j は「確実に未代入」となる。
で、i < 5 が true と false になるとき、の両方で「確実に代入」されてないので
j は言語規定により、コンパイル時エラーにしなければならない。
詳しくは以下参照。

16. 確実な代入
http://www.y-adagio.com/public/standards/tr_javalang2/defAssign.doc.html#25980

938 :デフォルトの名無しさん:2007/01/12(金) 16:10:07
>>937
× 簡単に言うと、for(i=0;i<=3;i=i+1) の i < 5 は定数式じゃないので
○ 簡単に言うと、for(i=0;i<=3;i=i+1) の i <= 3 は定数式じゃないので

他も全部脳内修正してくれ。

939 :デフォルトの名無しさん:2007/01/12(金) 16:22:17
行数が不明なテキストを読み込むための配列を作りたいのですが


○○○




EOF

これを読み込むための配列の宣言がわかりません。
どうすればいいですか

940 :デフォルトの名無しさん:2007/01/12(金) 16:33:28
方法1: 最初にファイル末尾まで舐めて行数を数えて、それだけのサイズの
配列を作って、巻き戻して改めて読み直す。
方法2: 適当なサイズにしておき、足りなくなったら適当にサイズの配列を
用意して今までの分を新しい配列の途中までコピーし、続きを読む。
(必要なら、読み終わったらぴったりのサイズの配列にコピーし直す)
方法3: Listを使う。

どうしても配列じゃなきゃダメな場合(APIが要求してるとか速度とか)
でない限りList使え。


941 :デフォルトの名無しさん:2007/01/12(金) 18:13:26
速度ったって、ArrayListであらかじめ領域確保しておけば
よっぽどクリティカルでもない限り、殆ど気にならないレベルだと思うけど

942 :933:2007/01/12(金) 18:13:32
>935
有難うございます。
配列で管理することにしました。

943 :デフォルトの名無しさん:2007/01/12(金) 18:18:52
質問です。
JScrollPaneにLineBorderを適用しようとしているのですが
ScrollBarに付いている上下のボタン(三角印のあるボタン)の凹凸を取り除く方法が分かりません。

Border border = BorderFactory.createLineBorder(Color.BLACK, 1);
JScrollPane.setBorder(border)
JScrollPane.getHorizontalScrollBar().setBorder(border);
JScrollPane.getVerticalScrollBar().setBorder(border);
知っている方がいましたら宜しくお願い致します。

944 :デフォルトの名無しさん:2007/01/12(金) 20:07:55
>>940
ありがとうございました。
ArrayListを使って値を読み込むことはできました
配列を使いたいのはPoint3Dを使いたいからで。。。

ArrayList→Point3D(x,y,z)のそれぞれに値を入れていくことはできるのでしょうか


945 :デフォルトの名無しさん:2007/01/12(金) 20:20:08
どうもStreamTokenizerとか使った方がいいような気が。
つーか情報を小出しにしないで最終的に何がやりたいのかはっきり書いた方がいいぞ。

946 :デフォルトの名無しさん:2007/01/12(金) 20:25:59
>>944
JDKはいくつ?


947 :デフォルトの名無しさん:2007/01/12(金) 20:36:30
JDKは最新のもので1.5.010です
Java3Dで座標点を表示させるプログラムなのですが

x y z
x y z

x y z

というものをPoint3D(x y z)に入れて表示するというプログラムなのですが
このPoint3Dを格納する配列をプログラム側で一回一回指定しなくてはならないのです

Point3D vertex = new Point3D[座標点数];

try {
ファイル読み込み
tokenize vertex[].x=ファイル.nval (略
}
catch {エラー処理}

vertexを表示させる

という流れなのですが
try の中で先に数えようとすると、tryの外のvertexを読み込ませるところでエラーが出てしまうのです


948 :デフォルトの名無しさん:2007/01/12(金) 20:55:41
バージョンを聞いたのは示すコードにgenericsを使っていいかという意味
だったんだけど、1.5なら使えるね。

// import java.util.ArrayList;
// import java.util.List;

List<Point3d> vertices = new ArrayLit<Point3d>();

ファイル読み込みループ:
double x, y, z = ...
Point3d p = new Point3d(x, y, z);
vertices.add(p);
ループ繰り返し

でやれない? 事前に行数数える必要ないよ。

配列にしたければ、ループ出てから
Point3d[] vertexArray = vertices.toArray(new Point3d[vertices.size()]);



949 :デフォルトの名無しさん:2007/01/12(金) 21:08:03
JAVAなどという難解な暗号のような言語をやって何が楽しい?
N−88日本語BASICのほうが、やっていて楽しい。
JAVAを続けててもストレスで剥げるだけだ。やめるべきだ。



950 :デフォルトの名無しさん:2007/01/12(金) 21:17:05
>>948
ありがとうございます!できました!!
もっと精進します

951 :デフォルトの名無しさん:2007/01/12(金) 21:46:09
>>949
あほですか?

BASICの方がストレス溜まるだろ


952 :デフォルトの名無しさん:2007/01/12(金) 21:56:34
難解な暗号を解くことに夢中になって、肝心なプログラミングはまるで進まない。
JAVAとはそういった言語だ。やめるべきだ。

953 :デフォルトの名無しさん:2007/01/12(金) 22:01:51
Java程度が暗号に見える人に何言ってもなぁ。


954 :デフォルトの名無しさん:2007/01/12(金) 22:27:10

【質問】

class Dialog1 extends JDialog {
 jButton.addWindowListener(new CloseListener);
}

class Dialog2 extends JDialog {
 jButton.addWinowListener(new CloseListener);
}

class CloseListener implements WindowAdapter {
 // オーバーライド
 public void windowClosing() {
 }
}

かなり省略してますが
Dialog1クラスとDialog2クラスの「終了ボタン」が押されたときに、
CloseListener.windowClosing()の処理をさせるという感じのコードです。

このままだとDialog1クラスとDialog2クラスの「終了ボタン」の処理が同じになります。
そうではなくて、別々の処理にするにはどうすればいいでしょうか。

WindowAdapterをimplementsしたクラスを別途作れば簡単ですが、
あくまでもCloseListenerクラス内で両方の処理をしたいんです。

無理?


955 :デフォルトの名無しさん:2007/01/12(金) 22:30:48
イベント・オブジェクトからは
イベント発生の出所を取得できる。
これで分岐させられるでしょ?

956 :ぴゅあ:2007/01/12(金) 22:31:35
wc -l [ファイル名]
で取れますよ

957 :ぴゅあ:2007/01/12(金) 22:36:07
>>956>>939へのレスです

958 :デフォルトの名無しさん:2007/01/12(金) 22:37:39
>別々の処理にするにはどうすればいいでしょうか。
>両方の処理をしたいんです。



959 :デフォルトの名無しさん:2007/01/12(金) 22:40:38
>>955
もうちょっとだけkwsk

960 :919:2007/01/12(金) 22:44:08
亀ですがありがとうございます。

961 :デフォルトの名無しさん:2007/01/12(金) 22:50:42
まこと複雑怪奇
BASICなら2行で済む処理を
なぜ何10行もかけなくてはならないのか


962 :ネカマ由紀恵:2007/01/12(金) 22:52:05
>>954>>959

public void windowClosing(WindowEvent e) {
if (e.getSource() instanceof Dialog1) {
// 任意の処理
} else if (e.getSource() instanceof Dialog2) {
// 任意の処理
}
}

こんな感じ。
インスタンスと直接比較しても良いし。
あと、
メソッド再呼び出しが嫌なら
ローカル変数に蓄えたりして。

963 :959:2007/01/12(金) 22:53:38
>>962
そういうことができたのね
サンクス!

964 :デフォルトの名無しさん:2007/01/13(土) 00:23:31
質問です。

マウスを右クリックした時に、キーを何も押さなくても isMetaDown() で true が返ってきます。
マウスを中クリックした時に、キーを何も押さなくても isAltDown() で true が返ってきます。

これはどうなっているのでしょうか??

環境は
java.version 1.6.0
java.runtime.version 1.6.0-b105
こんな感じです。

965 :デフォルトの名無しさん:2007/01/13(土) 00:30:17
1ボタン環境をサポートするためにそうなってるんじゃなかったかね。


966 :デフォルトの名無しさん:2007/01/13(土) 01:47:21
>>949 >>961
おいらも n88-BASIC 経験者だが、あんたは n88-BASIC を作れるのか?
あんたの理屈は「三輪車なら誰でもすぐに乗れるのに、自動車なんか
免許の取得だけでもウン十万もかかる。何故そんな無駄なことをするのか?」
と言っているようなモンだ。

大人しく三輪車に乗っとけ。そもそもスレ違いだ。

967 :デフォルトの名無しさん:2007/01/13(土) 01:49:04
どうでもいいけどn88basicで食える仕事が今の日本にどれだけ・・・

968 :デフォルトの名無しさん:2007/01/13(土) 02:51:11
String id = request.getParameter("id");
String rss = request.getParameter("rss");

try{
Class.forName("org.gjt.mm.mysql.Driver");
Connection users2 = DriverManager.getConnection(
"jdbc:mysql://localhost/db","root","pass");
Statement state2 = users2.createStatement();
int action2 = state2.executeUpdate("insert into rss set" +
"id=\"" + id + "\",adress=\"" + rss +"\"");
state2.close();
users2.close();
out.println("<h3>登録しました。</h3>");

} catch(Exception e){
out.println("出力異常");
}

のソースをServletで作ったんだけど、必ず出力異常の方が出ます。
JSPから値をもらっているのはprintlnで確認したので、明らかにtryの中身で何かが起こっていると
思うのですが原因が判明しません。
どの辺りが間違っているのか見当付きませんか?
よろしくお願いします。

969 :デフォルトの名無しさん:2007/01/13(土) 02:54:39
>>968
なんでスタック・トレースの出力をしないの?

970 :デフォルトの名無しさん:2007/01/13(土) 02:56:03
あ、原因分かった。
MySQLの主キーの設定がおかしかったようですorz
マジごめんなさい。

>>969

 ありがとう。
今回は解決したけど、次回からはそうする。

971 :デフォルトの名無しさん:2007/01/13(土) 09:30:16
n88basicではないけど、制御系だとBASICはふつうにあるよ
アセンブラじゃないだけ助かる。

972 :デフォルトの名無しさん:2007/01/13(土) 10:25:17
サーブレットでファイルのダウンロードを行っているところなのですが
英語のファイルは問題ないのですが日本語ファイルだと文字化けしてしまいます
setHeaderの中のファイル名部分を直接設定しても化けていたので
エンコードが悪いと思うのですがどうすればよいでしょうか

// ファイル読み込み用バッファ
byte buffer[] = new byte[4096];

String fileName = downloadFile.getName();

// 拡張子からcontentTypeを獲得
String contentType = "application/octet-stream";

// contentTypeを出力
response.setContentType(contentType);

// ファイル名の送信(attachment部分をinlineに変更すればインライン表示)
response.setHeader("Content-disposition", "attachment; filename=\""
+ fileName + "\"");

// ファイル内容の出力
ServletOutputStream out = response.getOutputStream();
FileInputStream fin = new FileInputStream(downloadFile);
int size;
while ((size = fin.read(buffer)) != -1) {
out.write(buffer, 0, size);
}
fin.close();
out.close();

973 :デフォルトの名無しさん:2007/01/13(土) 10:32:46
Content-Dispositionヘッダ中のファイル名の扱いはブラウザによって
実装がメチャクチャ。

Firefox
→UTF-8のファイル名をBエンコーディングして書く
filename="=?UTF-8?B?エンコードされたファイル名?="

RFC2231的にはこれ(↑)が正しい。

Windowsで日本語環境のMSIEの場合
→ファイル名はShift_JIS(つーかWindows-31J)にして生で書く。
filename=生ファイル名

MacのSafari
→filename見てくれないみたい。

などなど。


974 :デフォルトの名無しさん:2007/01/13(土) 11:18:26
アセンブラの方が助かるだろ

975 :デフォルトの名無しさん:2007/01/13(土) 11:53:34
>>973
なるほど
それはめんどうくさいかもしれないですね
サファリは見てくれもしないのかぁ・・・
ご返答ありがとうございます

便乗質問で申し訳ないのですが
データではなく指定したフォルダ(と下位ディレクトリ)のダウンロードを
一度にさせることは可能でしょうか?

976 :ぴゅあ:2007/01/13(土) 12:38:42
>>975
このあたりを使ってみては?
http://www.forest.impress.co.jp/lib/inet/servernt/ftp/

977 :デフォルトの名無しさん:2007/01/13(土) 14:41:16
public class Key {
//キーボードの「↑(仮)」を押したら以下の処理を行う
System.out.println("テスト");
}

キーボードからの入力は文字以外のキーがよかったので↑にしたのですが
↓でも←でも→でもかまいませんが、
どのように記述すればいいでしょうか?
条件というほどではありませんが、
キーボードから特定のキーの入力が行われるまで待ってるだけなので
シンプルな命令がいいのですが・・・
どのように書けばいいでしょうか?

978 :デフォルトの名無しさん:2007/01/13(土) 15:26:57
>>977
つ KeyListener

979 :デフォルトの名無しさん:2007/01/13(土) 15:27:51
>>977
GUIアプリケーションならイベントで取れるけど、
コンソールアプリケーションだと JNI とか使わないと一行毎の入力しか取れないと思う。

980 :デフォルトの名無しさん:2007/01/13(土) 16:05:15
>>977
>>979

jlineってライブラリを使えばCUIでも1文字づつ読める。
JNIは、使ってないみたい。

http://jline.sourceforge.net/
//=============================
import jline.ConsoleReader;

public class Main {
public static void main(String[] args) throws Exception {
ConsoleReader r = new ConsoleReader();
int c;
while((c = r.readVirtualKey()) != -1) {
System.out.println(c);
}
}
}


981 :デフォルトの名無しさん:2007/01/13(土) 16:13:53
終了条件-1じゃ終了しねぇーw
the character, or -1 if an EOF is received. って書いてるのに。
というわけで、適当に終了条件を変えてくれ。Ctrl-dなら4。Ctrl-zなら26。

982 :デフォルトの名無しさん:2007/01/13(土) 16:29:17
>>979
>>980
知識不足でよくわからなかったので
>>977のKeyListenerを使いました。
自分で考えてみたのですがここで詰まりましたorz
この先どうすれば実行できるでしょうか?

public class test implements KeyListener{

public void keyPressed(KeyEvent ke) {
}
public void keyReleased(KeyEvent ke) {
                     //ここになんて書いていいかわからないけど
                     //VK=UP(↑)を押すと下のプリントが行われテストと表示される
                     //ここになんて書けばいいんでしょうか?
System.out.println("テスト");
}
public void keyTyped(KeyEvent ke) {
}
}

983 :デフォルトの名無しさん:2007/01/13(土) 16:46:25
javadocに思いっきり書いてあるわけだが。。。
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/awt/event/KeyEvent.html

if (KeyEvent.VK_UP == k.getKeyCode()) {
System.out.println("テスト");
}

984 :デフォルトの名無しさん:2007/01/13(土) 16:47:24
あ、まちがった

if (KeyEvent.VK_UP == ke.getKeyCode()) {
System.out.println("テスト");
}

985 :デフォルトの名無しさん:2007/01/13(土) 16:52:50
KeyListenerの登録について何も考えていない予感…

986 :デフォルトの名無しさん:2007/01/13(土) 17:00:04
>>980
いや native つかってるねぇ……

jar の中から java.io.tmpdir に dll を摘出して、
dll は deleteOnExit しておいて System.load で dll をロードしてる。

987 :980:2007/01/13(土) 17:05:38
>>986
ホントだ。中にdll入ってるw
ある意味勉強になった。

988 :977:2007/01/13(土) 17:06:54
>>984を実装してみたけど
エラーにはならないけど動かないorz

989 :デフォルトの名無しさん:2007/01/13(土) 17:11:36
KeyListener登録しなきゃダメ
でもGUIじゃないと使えない

990 :デフォルトの名無しさん:2007/01/13(土) 17:11:53
>>988
985が言うようにKeyListenerを登録してるのか?

991 :977:2007/01/13(土) 17:18:51
多分オレ根本的な間違いを犯してるんだと思う・・・
よくわかんないけど・・・
public class Game implements KeyListener{

public void init(){
addKeyListener(this);
requestFocusInWindow();
}

public void keyPressed(KeyEvent ke) {

}

public void keyReleased(KeyEvent ke) {
if (KeyEvent.VK_UP == ke.getKeyCode()) {
System.out.println(”テスト”);
}
}

public void keyTyped(KeyEvent ke) {

}


}

じゃだめなのかな?
ちょっと根本的な間違いをしている気がするので
これ以外の部分のソース貼り付けますねorz

992 :977:2007/01/13(土) 17:34:53
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29105
問題なのは45行目くらいからです・・・

993 :デフォルトの名無しさん:2007/01/13(土) 17:40:55
お作法的にいいのかわかんないけど、
S_T_Aクラスのコンストラクタでフォームにリスナを登録すれば、動くと思う。

public S_T_A() {
addKeyListener(new Game());
・・・・
}

994 :デフォルトの名無しさん:2007/01/13(土) 17:41:38
>>977
自助努力しようとする姿勢は認めるが、このままじゃマルチだ。
宿題スレの〆切を延ばしたりせずに何故依頼を撤回しなかったの?

995 :デフォルトの名無しさん:2007/01/13(土) 17:50:15
>>977
う〜ん?なぜ撤回しないのかね君

996 :977:2007/01/13(土) 17:50:51
>>993
試してみます
>>994
宿題スレに依頼はしていますが締め切りを延ばしてもらった後も自力で続けていたのですが、
全く作業が進みませんでした。そこでここで質問させていただきました。
宿題スレの方に頼りっぱなしというのもだめだと思い自力でやろうとしたのですが、
マルチになってしまいましたね・・・
自力でできるかわかんないけど宿題スレのほうは撤回してきます。
申し訳ありませんでした。


997 :デフォルトの名無しさん:2007/01/13(土) 17:54:00
次スレ
【初心者】Java質問・相談スレッド96【大歓迎】
http://pc10.2ch.net/test/read.cgi/tech/1168678303/l50

998 :デフォルトの名無しさん:2007/01/13(土) 17:54:43
謝って済む問題じゃないだろ君。う〜ん

999 :デフォルトの名無しさん:2007/01/13(土) 18:03:12
まぁ今回は許してやれよ
時間的に背っ羽詰まってるみたいだし
宿題スレの方で撤回してきてるし
977にやる気があるなら力になってやろうぜ
ここ初心者スレなわけだし
とりあえず次スレ行くべ

1000 :デフォルトの名無しさん:2007/01/13(土) 18:04:15
>>999
そのとおりよ、みっちゃん

うふふ
さいごのしょうしゃはかなりあかしらかしら〜

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

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

read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)