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

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

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

1 :秩父りお:02/09/25 17:56
JAVA初心者の方はこちらのスレで質問をしましょう。そして誰か教えてあげてください。

なお、ソースを貼るときには、半角空白が消える仕様のため、タブ1つを全角空白2つに
置換してから投稿しましょう。わからないときはどこがどうわからないのか?、動かな
いときはどこがどう動かないのか?なぜそう判断したのか、エラーメッセージや結果な
どと一緒にお書き下さい。雑誌や宿題などの疑問を質問するときは出展を明記したほう
が解決が早いです。

関連情報は >>2-10 あたりにあります。 (一部 dat落ちやHTML化待ち)


JavaScriptの質問はWeb製作板へどうぞ。
web制作管理
http://pc.2ch.net/hp/

パソコンの基本操作に関しては、PC初心者板や、各OS板などで質問しましょう。
パソコン初心者@2ch掲示板
http://pc.2ch.net/pcqa/

上級者の方で教える技術が無い方は下記スレでダベりましょう。
初心者無視! Java相談室 その9
http://pc3.2ch.net/test/read.cgi/tech/1021555964/


基本的にsage進行でおねがいします。また煽り厨は放置でお願いします。
http://pc.2ch.net/tech/kako/1026/10266/1026601774.html

2 :秩父りお:02/09/25 17:57
【初心者・ネタ】Java質問・相談スレ【大歓迎】
http://pc.2ch.net/tech/kako/1021/10218/1021817147.html
【初心者】Java質問・相談スレ2【大歓迎】
http://pc.2ch.net/tech/kako/1023/10233/1023319551.html
【初心者】Java質問・相談スレ3【大歓迎】
http://pc.2ch.net/tech/kako/1024/10248/1024885660.html
【初心者】Java質問・相談スレ4【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1026601774/
【初心者】Java質問・相談スレ5【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1028096225/
【初心者】Java質問・相談スレ6【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1029774594/

3 :デフォルトの名無しさん:02/09/25 18:02
さっそく質問なんですけど

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class religion extends Applet {
public void init() {
Choice cicShopping;
int intSum;

cicShopping = new Choice();
cicShopping.addItem("ボールペン ");
cicShopping.addItem("万 年 筆 ");
cicShopping.addItem("シャープペン");
add(cicShopping);
}
}

上の状態で、
"ボールペン "を選んだ時、 intSum = intSum + 100;
"万 年 筆 "を選んだ時、 intSum = intSum + 300;
"シャープペン"を選んだ時、 intSum = intSum + 200;
と言う機能を追加したいのですが、どうしたらよいでしょうか。
どなたか教えてくださいませんか。

4 :3が埋めそうなので先に:02/09/25 18:04
Java 2 プラットフォーム API 仕様
http://java.sun.com/j2se/1.3/ja/docs/ja/api/index.html

Javaについてのよくある質問と回答集。
Java House ML Topics
http://java-house.etl.go.jp/ml/topics/

Java言語規定 目次
http://www.y-adagio.com/public/standards/tr_javalang/index.htm

Java(TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.3/ja/docs/ja/index.html

Java 2 プラットフォーム API 仕様
http://java.sun.com/j2se/1.3/ja/docs/ja/api/index.html

Java(TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.3/ja/docs/ja/index.html

Java言語規定
http://www.y-adagio.com/public/standards/tr_javalang/index.htm
http://java.sun.com/docs/books/jls/second_edition/html/j.title.doc.html

「僕以外の人も、同じ疑問を持ったはず」と思えるような質問があります。
http://java-house.etl.go.jp/ml/topics/
http://www.gimlay.org/~javafaq/
http://www.javaworld.com/columns/jw-tips-index.shtml

サルにはわかるヒアリングJava入門(マルチランゲージ対応)
http://www.asahi-net.or.jp/~rc4t-ishr/Saru/index.html

5 :デフォルトの名無しさん:02/09/25 18:08
>>3
ちょっとまて、時間をくれ

6 :デフォルトの名無しさん:02/09/25 18:12
>>3
いきなり
Choice cicShopping;
int intSum;
の宣言位置が変だぞ。
それから、ItemListenerについて調べて見ろ。

7 :3:02/09/25 18:13
>>6
本を見てやったんだけど。。。
ちょっと調べてみます

8 :デフォルトの名無しさん:02/09/25 18:16
どっかにディレクトリやファイルをコピーする
API落ちてたら教えてください

9 :デフォルトの名無しさん:02/09/25 18:21
どっちが本スレなんだよ!!

10 :デフォルトの名無しさん:02/09/25 18:30
2ch名物スレ分裂おめ

11 :デフォルトの名無しさん:02/09/25 18:33
>>8
Javaスレ8にいけ

12 :test:02/09/25 18:52
テーハミング

13 :are:02/09/25 19:14
>>6
おまえも不親切なやつだなぁ

14 :6:02/09/25 19:24
>>13
あはははは、そうか?十分ヒントは示したつもりだったが。

lecture.ecc.u-tokyo.ac.jp/~cichiji/cp-01-06-4.html

いまググってみたが、このページ、すごくわかりやすいぞ。


15 :こっち推奨でひとつ:02/09/25 20:08
http://pc3.2ch.net/test/read.cgi/tech/1032944246/l50

16 :デフォルトの名無しさん:02/09/25 20:24
            o
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無事に  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /   モララーより      /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
              ☆ チン  
                        マチクタビレタ〜
        ☆ チン  〃  ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ヽ ___\(\・∀・)< 新スレに移動して下さい
             \_/⊂ ⊂_)_ \__________
           / ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
        |  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :|
        |            . .|/
【初心者】Java質問・相談スレ8【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1032944246/l50

17 :デフォルトの名無しさん:02/09/25 20:32
敢えて age てみるテスト

18 :デフォルトの名無しさん:02/09/25 23:04
age

19 :デフォルトの名無しさん:02/09/26 03:39
public class reiligion extends Applet implements ItemListener {
Choice cicShopping;
TextField answer;
int price[] = {100, 300, 200};
int sum = 0;
public void init() {
cicShopping = new Choice();
cicShopping.addItem("ボールペン");
cicShopping.addItem("万年筆");
cicShopping.addItem("シャープペン");
cicShopping.addItemListener(this);
add(cicShopping);
answer = new TextField(8);
answer.setText("0");
add(answer);
}
public void itemStateChanged(ItemEvent ie) {
String A;
if (ie.getSource() == cicShopping) {
sum += price[cicShopping.getSelectedIndex()];
A = String.valueOf(sum);
answer.setText(A);
}}}


削除以来出しとけよ
普通チョイスじゃなくてボタンだぞ

20 :デフォルトの名無しさん:02/09/26 11:46
            o
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無事に  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /   モララーより      /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
【初心者】Java質問・相談スレ8【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1032944246/l50


21 :デフォルトの名無しさん:02/09/26 16:01
age

22 :デフォルトの名無しさん:02/09/26 16:19
終われっ!

23 :デフォルトの名無しさん:02/09/26 16:35
age

24 :デフォルトの名無しさん:02/09/27 00:36
負けるな。あげ。

25 :デフォルトの名無しさん:02/09/27 00:40
スレタイトルに機種依存文字使ってるからsageでいいよ。
これがWindowsスレならともかく。

26 :デフォルトの名無しさん:02/09/27 01:35
>>26
Mozillaで@読めますが、何か?

27 :デフォルトの名無しさん:02/09/27 05:18
>>26
ねえ、機種依存文字についてなにか勘違いしてない?
http://www.aa.wakwak.com/~yuk/izon.html

28 :デフォルトの名無しさん:02/09/27 05:32
>>26
もともと文字コードはJISなどの規格で定められているわけですが、
JISでは文字を割り当てていない領域がありまして、
この空白の領域に各メーカーが勝手に外字を追加しました。
この領域に追加された文字を一般には機種依存文字などと呼んでおります。

この領域は、もともと統一の規格で定められているものではないので、
この領域に各メーカーが割り当てた文字は、
機種によっては、別の文字が表示されたりしますし
何の文字も表示されないこともあります。

Mozillaは単なるソフトにすぎません。
機種依存文字となんの関係もございません。

29 :デフォルトの名無しさん:02/09/27 05:38
ただソフトウェアで機種依存文字の処理を行なって、
多機種間での文字の変換をおこなうソフトもございます。

たとえばMSNのMessengerは、
Windows版のMessengerからマッキントッシュ版のMessengerに
機種依存文字を送った場合、ソフトウェアで処理をおこなうことで、
送信側と受信側で同じ文字を表示するようでございます。
それではどうぞ以下のスレへ合流ください。

【初心者】Java質問・相談スレ8【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1032944246/l50

30 :デフォルトの名無しさん:02/09/27 11:54
            o
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無事に  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /   モララーより      /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
【初心者】Java質問・相談スレ8【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1032944246/l50


31 :デフォルトの名無しさん:02/09/27 14:19
8よりレスが多くなったらこっちを本スレにするんですかね?

32 :デフォルトの名無しさん:02/09/27 17:15
>>31 あげんなよ。スレの番号がずれてるから8推奨。

33 :デフォルトの名無しさん:02/09/27 17:17
漏れら極悪非道のageブラザーズ!
今日もネタもないのにageてやるからな!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧   ∧_∧    age
 (・∀・∩)(∩・∀・)    age
 (つ  丿 (   ⊂) age
  ( ヽノ   ヽ/  )   age
  し(_)   (_)J

34 :デフォルトの名無しさん:02/09/27 19:19
>>26は、
機種依存じゃなくてフォント依存だって言いたいんじゃないか?
Macでも、ソフトとフォントの組み合わせによっては、
まる1を読み書きできるわけだし。

35 :デフォルトの名無しさん:02/09/27 19:41
            o
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無事に  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /   モララーより      /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
【初心者】Java質問・相談スレ8【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1032944246/l50

36 :デフォルトの名無しさん:02/09/29 23:16
漏れら極悪非道のageブラザーズ!
今日もネタもないのにageてやるからな!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧   ∧_∧    age
 (・∀・∩)(∩・∀・)    age
 (つ  丿 (   ⊂) age
  ( ヽノ   ヽ/  )   age
  し(_)   (_)J


37 :デフォルトの名無しさん:02/09/29 23:39
Cで言うargv[0]に相当する機能はどう実現すればいいのでしょうか?

38 :はじるす:02/09/29 23:39
//Kadai3b.java
public class Kadai3b{
public static void main(String a[]){
String s="GPIB-022.70V",ds;
ds=s.substring(@);
Double dd=A;
double d=B;
System.out.println(d);
}
}

文字列"GPIB-022.70V"から文字列"-022.70"を取り出して、
その文字列をDouble オブジェクトにして、それをdouble型実数数値に変換して数値に表示したいのですが、
@〜Bにあてはまる文がわからないです、、、、
どなたか教えていただけないでしょうか…



39 :デフォルトの名無しさん:02/09/29 23:47
>>37
実行クラスのディレクトリを取りたいなら無理。実行クラス自身の名前を取りたいなら
main() で分かるだろう。

>>38
String str = "GPIB-022.70V";
int start = str.indexOf('-');
int end = str.lastIndexOf('V');
str = str.substring(start, end);
double d = Double.valueOf(str).doubleValue();

40 :デフォルトの名無しさん:02/09/29 23:50
>>39
例えば>>39さんはそのプログラムの設定ファイルを保存したいときどうします?

41 :デフォルトの名無しさん:02/09/30 00:01
>>40
コマンドラインから設定ファイルを指定してもらうような作りにしておく。
設定変更時の上書き保存ももちろんそのファイルに対して行う。シェル作れば
毎回指定する手間が省けるし、いろいろな設定ファイルのバリエーションを
作っておけばデバッグも楽になる。

大抵は省略時も考えて優先順位つけてやるけどな。
1)コマンドラインで指定されたファイル
2)ユーザディレクトリの○○というファイル
3)カレントディレクトリの○○というファイル

ちなみにサーブレットなら ServletContext#getRealPath() で Web アプリ
ケーションルートが取れるんだが、活用せずにディレクトリハードコードする
バカも多い。

42 :デフォルトの名無しさん:02/09/30 00:15
>>41
とりあえず、getProperty("user.home")に設定ファイル(設定用オブジェクトをシリアライズしたもの)を生成することにします。要はどのOSにも存在するディレクトリが欲しかったんで。


43 :デフォルトの名無しさん:02/09/30 00:19
>>42
その "設定" が実行環境で唯一のものかユーザごとのものか注意せいよ。

ってか >>35 は見たよな?

44 :デフォルトの名無しさん:02/09/30 00:31
>>43
ほーい。助かりました。
なお、見てませんでした。


45 :デフォルトの名無しさん:02/09/30 00:34
>>41

そのgetRealPathって曲者だから気を付けた方がいい。
webコンテナの実装によっては常にnullを返したりする。

46 :デフォルトの名無しさん:02/09/30 00:49
>>45
後学のためにそのコンテナ教えてくれ。

47 :45 :02/09/30 00:54
>>46
俺が知ってるのでは、BEAのWeblogic

48 :45 :02/09/30 00:57
そうだ、ついでになるが、cocoonがその仕様のために
weblogicで動かなくて、何か対策してたはず。
cocoonのMLさがしてみれ

49 :デフォルトの名無しさん:02/09/30 01:01
>>45
そうか、俺は Tomcat, WebSphere, JRun しか使ったことが無いから知らなかった。
ありがとう。

50 :デフォルトの名無しさん:02/09/30 11:04
            o
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無事に  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /   モララーより      /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
【初心者】Java質問・相談スレ8【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1032944246/l50


51 :デフォルトの名無しさん:02/10/03 23:01
漏れら極悪非道のageブラザーズ!
今日もネタもないのにageてやるからな!
 ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧_∧   ∧_∧    age
 (・∀・∩)(∩・∀・)    age
 (つ  丿 (   ⊂) age
  ( ヽノ   ヽ/  )   age
  し(_)   (_)J

52 :デフォルトの名無しさん:02/10/04 07:00
ageんな

53 :デフォルトの名無しさん:02/10/04 08:11
age

54 :デフォルトの名無しさん:02/10/04 11:02
            o
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無事に  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /   モララーより      /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
【初心者】Java質問・相談スレ8【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1032944246/l50


55 :デフォルトの名無しさん:02/10/04 15:48
あげパン

56 :デフォルトの名無しさん:02/10/05 10:48
            o
            /  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /
           /   このスレは無事に  /
           /  終了いたしました    /
          / ありがとうございました  /
          /                /
         /   モララーより      /
         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄/
  ∧_∧  /                /∧_∧
 ( ・∀・) /                /(・∀・ )
 (    )つ               ⊂(    )
 | | |                   | | |
 (__)_)                  (_(__)
【初心者】Java質問・相談スレ8【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1032944246/l50


57 :デフォルトの名無しさん:02/10/05 23:46
age

58 :デフォルトの名無しさん:02/10/06 13:21
age

59 :名無しさん@Emacs:02/10/06 15:00

FontをDialogInputとMonospacedの2種類を表示したいんですけど、おなじフォントが表
示されてしまいます。

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

public class TestApplet extends Applet {

 public void paint(Graphics g) {

  Font f1 = new Font("DialogInput", Font.BOLD, 20);
  Font f2 = new Font("Monospaced", Font.BOLD, 20);

  g.setFont(f1);
  g.drawString("Hello", 20, 100);

  g.setFont(f2);
  g.drawString("Hello", 20, 200);
 }
}



60 :デフォルトの名無しさん:02/10/06 15:05
誰かこっち削除依頼出して。

このスレは重複スレです。質問はこちらにどうぞ。
【初心者】Java質問・相談スレ8【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1032944246/


61 :デフォルトの名無しさん:02/10/06 16:09
あげ

62 :デフォルトの名無しさん:02/10/07 10:11


63 :デフォルトの名無しさん:02/10/12 08:44
再利用しろよ

64 :デフォルトの名無しさん:02/10/12 08:46
なぁさ、せっかくマルチプラットフォームの言語なのにタイトルに機種依存文字使うなよ・・・。

65 :デフォルトの名無しさん:02/10/12 11:18
JavaWebStartに関する設定がサーバにされているかのように振る舞わせるためのCGIをください。

66 :デフォルトの名無しさん:02/10/12 11:25
はやくください。

67 :デフォルトの名無しさん:02/10/13 23:25
javaプログラミングの直接な質問ではないのですが
現在、javaでデータベースアプリケーションを作成しています。
そこで音声で画面の読み上げを行わなければいけないのですが、
今使っているスクリーンリーダー(2000リーダー)ではjavaアプリケーションは
認識しないようなのです。
何か良い解決策(読ませる方法でも、他の方法でも良いです)はないでしょうか?


68 :デフォルトの名無しさん:02/10/14 00:07
>>67
読ませてやればよい。

69 :デフォルトの名無しさん:02/10/14 00:45
>>67 昔のViaVoiceにはJavaインターフェースがあったね。今のは知らない。
放置スレsage

70 :69:02/10/14 00:54
http://www-106.ibm.com/developerworks/ibm/library/i-voice/
Speech for Java currently supports US English, UK English, Brazilian, Portuguese, French, German, Italian, and Spanish completely, and Japanese for recognition only.
日本語は認識だけか...

71 :デフォルトの名無しさん:02/10/16 05:48
へぼい質問ですいません。
W2kPro(SP3)に
J2SDK1.4.1
J2ME_WTK1.0.4
をインストールし、
K2Toolbar を起動させようとしたら、
ブルーバックで死ねます(泣

なにか対処・確認点等ありますか…


72 :デフォルトの名無しさん:02/10/16 17:33
>>71
ageんなゴルァ

73 :デフォルトの名無しさん:02/10/17 01:32
>>71 ちょっとまて、それ以前にJ2MEってJ2SDK1.4.1に対応したのあるのか?

74 :71:02/10/17 02:33
>>73
システム要件が「1.3以上」だったので大丈夫かと思っていたのですが、
ご指摘を踏まえて J2SDK 1.4.0 にしたところ、解決しました。
ありがとうございます。


75 :デフォルトの名無しさん:02/10/17 23:39
本で調べても分からなかったのでお尋ねします。
スーパークラスのstaticメソッドをオーバーライドして、
サブクラスで非staticメソッドを定義するとコンパイルエラーになりますが、
スーパークラスの非staticメソッドをオーバーライドして、
サブクラスでstaticメソッドを定義して、コンパイルが通るようになりますか。


76 :デフォルトの名無しさん:02/10/17 23:42
>>75
試せよ。(藁

77 :デフォルトの名無しさん:02/10/17 23:43
>>75
さっさと試せば?と。

って言うか仕様的に激しく問題ありそうな予感。

78 :デフォルトの名無しさん:02/10/17 23:44
>>75
本スレはこっち
http://pc3.2ch.net/test/read.cgi/tech/1034303501

79 :デフォルトの名無しさん:02/10/17 23:44
っつか、
>staticメソッドをオーバーライドして
できません。
ネタ?

80 :デフォルトの名無しさん:02/10/17 23:49
>>79
いや、お前はもうちょっと文章読んでやれ。

81 :初心者:02/10/18 07:26
ゲームを作りたいと思っているのですがjavaでジョイパッドをつかえるのでしょうか?

82 :デフォルトの名無しさん:02/10/18 07:29
>>81
真面目にやる気ならネイティブコードとDirectXの使える言語をチョイスすべきかと。

なんか昔対応するとかしたとか聞いたことあるけどどうなんだろうね?(Java Game API?)

83 :初心者君:02/10/18 14:09
Java暦1ヶ月の初心者です。

今Servlet+JavaBeans+JDBC+JSPに携わっているのですが、JavaBeansのプロパティにデータを入れるのに悩んでいます。

たとえば映画データベースがあったとして、
一つ目のテーブルは映画テーブルだとします。
映画ID、タイトル

二つ目のテーブルは俳優テーブルだとします。
俳優ID、俳優、俳優の誕生日、俳優の出身地、映画ID

俳優テーブルの映画IDは映画テーブルの外部キーです。すなわち各映画には複数の俳優情報が存在します。

これで各映画のBeansを作るときにひとつのBeanに複数ある俳優情報をどう格納するかがわかりません。
Beansは最終的にはJSPで使われます。


素人考えだと、以下の方法が思いつきましたが、なんか正しくないような気がします。
1)Stringの2重配列を作る
2)俳優Beansをつくって、映画Beansに格納する(これじゃ、Beansじゃないような..)

では、よろしくお願いします。


84 :デフォルトの名無しさん:02/10/18 14:12
>>83
VectorとかMapとかは?

85 :デフォルトの名無しさん:02/10/18 14:17
まず、

あげんな。

本スレはこっち
http://pc3.2ch.net/test/read.cgi/tech/1034303501

>>2)俳優Beansをつくって、映画Beansに格納する(これじゃ、Beansじゃないような

それでいいじゃん。Collectionとか配列を使うの。わかった?
ちなみにJavaBean仕様としてもまったく問題ありません。

ところでその設計に問題あり。
それでは俳優はひとつの映画にしか出れない。
当然俳優は複数の映画に出ることが考えられるよね?
設計を変更しましょう。

86 :デフォルトの名無しさん:02/10/18 14:18
>>85
いや、同じ俳優を映画毎に登録するのだ。

87 :デフォルトの名無しさん:02/10/18 14:27
配役によって振る舞いが違ったりするし。

88 :初心者君:02/10/18 14:45
すみません、今度はsageました。

>それでいいじゃん。Collectionとか配列を使うの。わかった?
>ちなみにJavaBean仕様としてもまったく問題ありません。
ということはJSPでは、

<jsp:useBean id="映画" scope=".." class=".."/>
....
<jsp:useBean id="俳優" scope=".." class=".."/>
....

みたいにuseBeanが立て続けに宣言されることになるんですね。

いろいろサンプルをさがしまわったんですけど、どこも一つしかuseBeanが宣言されて
なくて...

あと仕様的には俳優は一つの映画にしか出ないことになっています。



89 :デフォルトの名無しさん:02/10/18 15:10
単純にタグライブラリを使わないで考えるなら、

俳優 actor = movie.get俳優();

でいいだろ。
タグライブラリで上と同じことやりたいのならJSTLを使おう。

>>あと仕様的には俳優は一つの映画にしか出ないことになっています。
了解しました。


90 :897:02/10/18 15:59
>>89
自己レス。

ごめんCollectionとかでやれって自分で逝ったよね。

<%
Collection actorCollection = movie.get俳優();
Iterator iterator = actorCollection.iterator();
俳優 actor = null;

while(iterator.hasNext()) {
   actor = (俳優)iterator.next();
   %>
actorを適当に出力。
   <%
}
%>

91 :初心者君:02/10/18 23:28
>>89さん、ありがとうございます。

あとJSTLはまったくいじったことありません。
ちょっとJakartaサイトをのぞいてみます。


92 :デフォルトの名無しさん:02/10/18 23:35
>>91
Jakartaプロジェクト徹底研究という別冊参考にした方が早いかも。

93 :デフォルトの名無しさん:02/10/29 22:54
JavaWebStartに関する設定がサーバにされているかのように振る舞わせるためのCGIをください。

94 :デフォルトの名無しさん:02/10/29 23:11
大学の研究室ではLINUXを使ってネットワークの勉強をしています。
ネットワークプログラミングなどで、よく接続先のコンピュータを表すために、LANで繋がれた各コンピュータの名前を指定します。
で、家に帰って続きをやろうとすると、自宅にはLANは構築されてなく、マシンも一台しかなく、しかも、windowsです。
DOSプロンプトを二つ開けば、2台ある、というふうにみなせるらしいですが、その時各プロンプトを指定する、なにか名前のようなものはあるのでしょうか?

95 :デフォルトの名無しさん:02/10/29 23:15
>>94
1) 片方の DOS 窓のプログラムでサーバソケットを開く
2) もう片方の DOS 窓のプログラムからコンピュータ名 localhost で接続する
3) 双方のプログラムで通信する
4) (゚д゚) ウマー

96 :デフォルトの名無しさん:02/11/04 22:41
2ch名物スレ分裂おめ

97 :デフォルトの名無しさん:02/11/05 18:45
>>96 しんでこい

98 :デフォルトの名無しさん:02/11/05 18:48

 |  パソオタ キモイ!
 \____  ________________/
    /||ミ  V
   / ::::||
 /:::::::::::||____
 |:::::::::::::::||       ||
 |:::::::::::::::||│ /  ||
 |:::::::::::::::|| ̄\   ガチャッ
 |:::::::::::::::||゚ ∀゚)   ||
 |:::::::::::::::||_/    ||
 |:::::::::::::::||│ \   ||
 |:::::::::::::::||∧ ∧∩ ..||
 |:::::::::::::::|| ゚∀゚)/  .||
 |:::::::::::::::||∧ ∧∩ ..||
 |:::::::::::::::|| ゚∀゚)/ ..||


99 :助けて!:02/11/07 19:08
JAVAアプレットがあるWEBページをブラウザで印刷しようと
するとアプレットの部分が黒く印刷されてしまいます。

どうにかならないですか?

※ガイシュツ質問すまそ。

100 :デフォルトの名無しさん:02/11/07 19:10
>>99
それ以前にここはプログラム板です。

101 :助けて!:02/11/07 19:14

>>100

 失礼しますた。現在製作中のJAVAアプレット&HPがありまして、
 それの画面を印刷するボタンをつけようと思ってるんですが、
 JAVAでそのボタンを作ったらいいのか、JAVAScriptで作ったら
 いいのか、はたまた簡単な解決方法があるのかどうかと思いまして、
 質問した次第でございます。

 作るとしたらどんなプログラムソースになるか教えてください。



102 :デフォルトの名無しさん:02/11/07 20:07
JavaAppletで印刷するしかないね。JavaScriptでは
アプレット内に描画されている内容を知ることはできないから。

103 :助けて!:02/11/07 21:42

 >>102

 ありがとうございます。

 できえば、印刷のサンプルプログラムを教えていただければ
 幸いです。(印刷プログラム作った事が無いもんで…)

104 :デフォルトの名無しさん:02/11/09 13:58
サーブレットでArrayListを使っているのですが同期を取らなければいけないと
いうことですが、取る範囲について迷っています。
ArrayList内にシーケンス番号とデータを入れたクラスをいくつも格納してあるの
ですが、このデータを書き換える場合、for文でArrayListを回してシーケンス番号
が一致したものを取り出し、データを書き換えて、さっきまでArrayに入っていた
古いクラスは消して新しいデータをAddするという感じになるのですが、この
一連の動作全てに排他処理を掛けています。これだとすごい遅くなるような気が
するのですが他にいい方法ってないものなのでしょうか?


105 :デフォルトの名無しさん:02/11/09 15:27
>>104
marutiposutodesuka ?


106 :デフォルトの名無しさん:02/11/09 17:14
>>104
Map使えよ。

107 :106:02/11/09 17:18
線形検索が問題になるなら
1.二分検索しろ(Collections#binarySearch())。
2.ハッシュ法使え(HashMap,HashSet)。

1は馬鹿には意味を理解するのがちょっと難しい(このレベルの
馬鹿って意外に多いのよね・・・)ので、2の方が無難。

108 :デフォルトの名無しさん:02/11/09 17:19
下記のようなプログラムを書いたのですが、エラーが出てしまいました。
マルチスレッドで送信元のスレッドから各スレッドに別々の変数を受け渡す
方法はないでしょうか?
public class sampleL{
public static void main(String args[]){

sampleM samplem = new sampleM();
Thread th = new Thread(samplem);
for(int p=0;p<3;p++){
th.start(p); <-ここでエラーが出ます。
}
}
}
class sampleM extends Thread {
public void run(int p){
System.out.println(p);
}
}

109 :デフォルトの名無しさん:02/11/09 17:21
ラムダ関数タンハァハァ
http://www.faireal.net/articles/6/01/

110 :デフォルトの名無しさん:02/11/09 17:24
>>108
1.run()がなんで引数取ってるのよ?オーバーライドに
 なってないから、start()してもコールされないよ。
2.sampleM extends Threadなのに、なんでsamplem.start()
 コールしないの?

111 :110:02/11/09 17:32
スレッド間でデータ渡すのは、pipeとかファイルとかソケットとか
共有メモリとか。そこまではJava関係無いぞ。一般的なマルチスレ
ッド/マルチプロセスプログラミングの範疇。Javaでどうやるかは、
探してみて。

112 :108:02/11/09 17:39
>>110
2.はごめんなさい。implements Runnableとすべきでした。

run()に引数をとれないということは、マルチスレッドをした時、
別々の変数を直接受け渡すことができないと言う事でしょうか?

113 :110:02/11/09 17:46
>>112
あんたがしたいのはこういうことだね。あんたのレベルなら
何でコレだと動くのかを理解すれば、多少勉強になるはず。
start()をコールしたらすぐrun()がコールされるわけじゃな
いということを理解しているかな?
start()コール
→JVMがOSに依頼してスレッドを生成
→生成されたスレッドがRunnable#run()をコール

class Test extends Thread{
 private val;
 public Test(int val){this.val = val;}
 public void run(){System.out.println(val);}
}

public class Main{
 public static void main(String args[]){
  Thread t = new Test(5);
  t.start();
 }
}

114 :108:02/11/09 18:05
>>113
ありがとうございます。勉強します。

115 :110:02/11/09 18:08
class Test2 extends Thread{
 public int val;public volatile boolean inited = false;
 public void run(){
  synchronized(this){
   inited =true;
   try{
    while(true){
     wait();System.out.println(val);
    }
   }
   catch(InterruptedException e){}
  }
 }
}
public class Test {
 public static void main(String args[]){
  Thread t = new Test2();
  t.start();
  while(!t.inited)Thread.yield();
  for(int i = 0; i < 3 ; i++){
   syncrhonized(t){t.val=i;t.notify();}
  }
  t.interrupt();
 }
}

116 :110:02/11/09 18:09
すまん、ちょっとちがうみたいだな。コンパイルもしてないので
動くかどうかワカランケド。スレッド間でデータ渡すなら、同期処理
を行わんといかんよ。ストリームにしておくと、ストリームバッ
ファで同期されるからラクチンだけど、直でデータ渡すにはスレッド
状態変更を自力でやらんとイカンののでちょと面倒。
Threadはnewしてstart()するだけなら猿でもできるけど、ちゃんと
使いこなすのはややこしいから、勉強した方がいい。

117 : :02/11/09 19:03
ServletとJspでお勧めの本が有ったら教えて下さい。

118 :デフォルトの名無しさん:02/11/09 19:46
>>116
ごちゃごちゃ言わんとjavaco.orgにある恋はオブジェクト指向聞かせるべし。
嫌でもスレッドの大切さがわかる。

119 :デフォルトの名無しさん:02/11/09 20:39
SwingでWindowsのLookAndFeelを使わずに、
Altキーを押すと、メニューにフォーカスを移すには
どうすればいいんでしょう?

120 :デフォルトの名無しさん:02/11/09 21:28
ものすごく基本的なことなんですが、
他の.javaファイルにあるクラスを利用したい場合、どうしたらよいのですか?
同じ.javaに含まれるクラスのメソッドなどを利用する方法はわかるのですが・・・
教えてください。

121 :デフォルトの名無しさん:02/11/09 21:31
>>120
いや、普通に。とだけ。

122 :デフォルトの名無しさん:02/11/09 21:38
「。とだけ」ってなんですか???

123 :デフォルトの名無しさん:02/11/09 21:40
>>122
御願いします。砕けた日本語も勉強してクダサイ。

124 :デフォルトの名無しさん:02/11/09 21:42
>>119
WindowsのLook and FeelじゃないのにWindowsと同じようなUIにするなよ。

125 :デフォルトの名無しさん:02/11/09 22:24
>>120
あなたはGUIとか必要な時
どうしてたんですか?

126 :デフォルトの名無しさん:02/11/09 22:26
>>125
1ファイルに出来ると思うが。
classファイルはいくつか出来るかもしれんが。

127 :108:02/11/09 22:54
>>115,116
ありがとうございます。かなり進展する事ができました。
もう少しいろいろと勉強します

>>118
スレッドの大切さはわかっているつもりです。

128 :デフォルトの名無しさん:02/11/09 23:32
気持ちはわかるが、アセンブラ学んだ方がいいよ。

129 :デフォルトの名無しさん:02/11/10 01:24
>>125
意味不明

130 :!125:02/11/10 01:33
>>129
SwingやAWTをつかうって言うこと=ほかのクラスをつかうということ
だといいたいんじゃないかな?

つうか、ほかのクラスのメソッドがつかえるのにクラスが使えないって
いっている意味がわからんが>>120

131 :デフォルトの名無しさん:02/11/10 01:48
同一ファイルのクラスにはアクセスできるが・・・ってことでしょ。

同一パッケージ内のクラスにはクラス名で直接アクセスできるが
同一パッケージ内でないクラスにはパッケージ名で完全修飾するか
importしなければならない、ってこと



132 :デフォルトの名無しさん:02/11/10 03:02
>>124
別に独自のlook and feelを作りたいんだろうからアリじゃない?

133 :デフォルトの名無しさん:02/11/10 14:07
mpeg使いたいんですけど、ライブラリとかどっから落とせばいいんでしょうか


134 :デフォルトの名無しさん:02/11/10 14:10
>>133
jmfのWindows依存版

135 :デフォルトの名無しさん:02/11/10 14:58
>>134
ありがとうございます


136 :デフォルトの名無しさん:02/11/10 19:57
Java で書かれたアプリケーション Myster を日本語化したいのですが、
各ソース群を書き換えた後の、 Jar ファイルへのコンパイルの仕方を教えてください
開発環境は MacOS X 10.2.1 + Developer Tools です。

137 :デフォルトの名無しさん:02/11/10 19:59
JMF2.1.1bについてくるJMFstudioで、
transferでキャプチャしたデータを送信して、
それを止めると、けっこう頻繁にブルースクリーンが出ます。
解決策はありますでしょうか。
OSはWindows SP3, JDK 1.4.1です。

138 :デフォルトの名無しさん:02/11/10 20:54
文字列をgetBytesというのを使ってバイトに変換したいんですが
文法はどのようにすればいいのでしょうか?

139 :デフォルトの名無しさん:02/11/10 20:57
>>138
"str".getByte();

って言うかリファレンス読まないなら死ね。


140 :デフォルトの名無しさん:02/11/10 21:06
他力本願のライブラリだのみな言語をやると
そのリファレンスを読むという行為までもが他力本願となる。

人は堕落すると歯止めがきかない。


141 :デフォルトの名無しさん:02/11/10 21:09
>>140
それ言われるとなんか省みるところが大きいな。
インテリセンス無い開発環境なんぞつかっとれっか!とか。

そうそう、この前VBスレに

VBでID3タグ編集ツール作ってますがID3タグを編集するライブラリ無いですか?

とか恐ろしいこと言ってる奴がいたよ。

142 :デフォルトの名無しさん:02/11/10 21:20
>>141
それおまえが作っているのとちゃうのかと。

ライブラリあれば便利なのは確かだけど、
コンピューターは所詮0と1の組み合わせで動いていることを
忘れてはいけないと思う今日この頃。



143 :デフォルトの名無しさん:02/11/10 21:22
>>139
すいません、リファレンスよんでみたのですがいまいち意味がわからなくて・・
変数の中身をバイトにしたいときはたとえば
int temp = mojiretu.get.Byte();
ということでしょうか?
"str".getByte(); だと分かりやすいんですが
リファレンスには public byte[] getBytes() と書いていて
いまいち意味がつかめませんでしたTT

144 :デフォルトの名無しさん:02/11/10 21:22
>>142
あんなアホと一緒にせんといてくれ。
昨日はDHCPパケットの送受信が出来るクラス書いたよ。何に使うかは知らんが。

145 :143:02/11/10 21:23
あ、お礼忘れてました

ありがとうございます〜

146 :デフォルトの名無しさん:02/11/10 21:23
>>143
まず、あんたが考えているような大それたことはやめて言語仕様をゆっくり理解しなされ。

文法も知らずに作文が出来るわけがない。


147 :デフォルトの名無しさん:02/11/10 21:24
>>143
試行錯誤しろよ。都合の悪いレスは全部無視か?

148 :デフォルトの名無しさん:02/11/10 21:41
>>146
ゆっくり行きたいのは承知してるんですが
ちょっと急いでかないとやばい状況なのでTT

>>147
140さんですか?
無視ってわけじゃないんだけど、いちおうリファレンスよみました
頭悪くてすいません・・、試行錯誤もしてみました
あと言い訳なんですが、今日朝8時からずっとやってきて
さすがに疲れてきたので、詰まってるところを聞いてみようかと・・
だめですかね?

149 :デフォルトの名無しさん:02/11/10 21:44
なんか最近度を越した馬鹿が増えたな。
単に初心者というだけじゃなくて。

150 :デフォルトの名無しさん:02/11/10 21:45
そんなあなたに、
http://www.forte.com/

151 :デフォルトの名無しさん:02/11/10 21:47
そんなあなたに、
http://www.javascript.com/

152 :デフォルトの名無しさん:02/11/10 21:47
Javaなんて所詮、精度低いFacadeだと思った方がいいぞ。

153 :デフォルトの名無しさん:02/11/10 21:51
>>148
正直、今の学校なり会社やめて違う道を探すべきだと思われ。
時間の無駄。

154 :デフォルトの名無しさん:02/11/10 21:54
>>152
コアAPIの枯れてる所以外は厳しいね。

グラフィックス関係の拡張ライブラリのWin用実装つかうとよ、くOSが
おちるんだけど、ちゃんと試験してないのかもね。Windowsは種類いっ
ぱいありすぎるし。sample起動しただけでWin2000おちるってナンデ?

155 :デフォルトの名無しさん:02/11/10 21:56
>>154
厨:そんなこと言ったらどの処理系にもクソサードパーティのクソライブラリはあります。

156 :154:02/11/10 21:57
>>155
Sun謹製のPIでそれはどうかと思ったのよ。

157 :デフォルトの名無しさん:02/11/10 22:01
>>156
さっさとライブラリ名出せや。
肝心なところ全部伏せて言いがかりなんぞ誰にでも出来る。

俺はお前の弱みを4つ握っている。ダメだよ。お前は。問題だ。


ほら。

158 :154:02/11/10 22:06
>>157
Java3D Ver1.2 DirectX版

159 :デフォルトの名無しさん:02/11/10 22:12
Java質問相談スレF と11があるがなにか違うの?
ただの重複にしては両方伸びてるような

160 :デフォルトの名無しさん:02/11/10 22:16
11 が本スレ。こっちはただの重複。
細かいことを気にしない人が多い模様。

161 :デフォルトの名無しさん:02/11/10 22:18
>>160
そっか アリガトン

162 :デフォルトの名無しさん:02/11/11 01:56
JFrameでsetLocation(0,0)とすると、一発目にウインドウ表示させたときはちゃんと画面右上に表示されるんですけど、
同じウィンドウもう一つ表示させるとちょっと右にずれます。3個目を表示させるとまた右上に戻ります。

windowsでやれば正しく表示されるのですが、Linuxだとこうなってしまいます。
Linuxでも正しく表示させるにはどうしたらよいのでしょう?ちなみにvine2.1です。

163 :デフォルトの名無しさん:02/11/11 01:59
とおりすがりだけど、

さんざんでかいこといっていた>>157
5分後にライブラリを提示した>>158
無視するのはどうかとおもう。

164 :デフォルトの名無しさん:02/11/11 02:02
最新版使え。じゃだめ?


165 :デフォルトの名無しさん:02/11/11 02:04
電卓をJAVAで作りたいんですけど、参考になるようなソース教えてください

166 :デフォルトの名無しさん:02/11/11 02:20
>>165
http://www.google.com/search?hl=ja&ie=Shift_JIS&q=java+swing+%93d%91%EC&lr=lang_ja

167 :デフォルトの名無しさん:02/11/11 03:20
>>165
そんなの10分でできる(藁

168 :デフォルトの名無しさん:02/11/11 03:29
そのうち9分はSun One Studioが立ち上がるのを待つ時間。

169 :デフォルトの名無しさん:02/11/11 04:40
オブジェクト・クラスをロックする、アンロックするって簡単に
言うとどういうことなんでしょうか?

170 :デフォルトの名無しさん:02/11/11 05:43
>>169
ヨクワカランが、同期の話か?マルチスレッド Java synchronizedあたりでググレ。

171 :デフォルトの名無しさん:02/11/11 08:30
>>170
クラスのアンロックだからstaticなメソッドって言う制約がいると思われ。クラスの

172 :デフォルトの名無しさん:02/11/11 10:51
最近の度が過ぎた厨どもは
卒論におわれる大学生どもだと思われ(禿藁

173 : :02/11/16 15:07
せっかくなんで質問します。
Java Appletでスロットゲームを作ってるのですが、
3つのドラムをそれぞれ独立して動かしたいのですが、
どうすればいいでしょうか?
後、WAVEとかの音声を流したいのですが、どうすればいいでしょうか?

174 :デフォルトの名無しさん:02/11/16 16:40
スレッド
AudioClip

175 :デフォルトの名無しさん:02/11/16 17:17
>>174
結局3つのドラムは動作の同期ととらないとイカンと思うから、
スレッド分けないほうがいいと思うけどね。



176 :デフォルトの名無しさん:02/11/16 17:45
>>175
?管理するクラス作れば?
それにJavaで同期って簡単だと思われ。

177 :デフォルトの名無しさん:02/11/20 02:57
javaでIP取得できますか?
ローカルのIPはできるんですが
自分のリモートホストが取得できません。
javaメッセンジャの作者もなんかサイトからひっこ抜いてるみたいです。
http://www15.u-page.so-net.ne.jp/jk9/masanori/
↑java メッセンジャ

178 :デフォルトの名無しさん:02/11/20 03:14
http://www.rsch.tuis.ac.jp/~mizutani/online/software-basic/inetaddress.html
環境依存っぽい。

179 :177:02/11/20 03:19
レスありがとうございます。
そのページも参照しました。いろいろ試してみましたが、無理でした。

180 :デフォルトの名無しさん:02/11/20 09:52
>>177
127.0.0.01

181 :しろうと:02/11/20 20:16
せっかくなんで質問します。 検索条件を選択して、「検索」ボタンを押すと
DBから引っ張ってDBの項目を表示する簡単なプログラムなのですが、
javalangNullPointerというエラーが1回目の検索に必ず出ます。
無視してもう一回「検索」ボタンを押せば、表示されます。
また、検索ボタンを連打するとたまにでます。
この原因は何が考えられますか?

182 :デフォルトの名無しさん:02/11/20 20:19
>>181
インスタンスへの参照がセットされていない変数に対して何か操作を行った。

183 :デフォルトの名無しさん:02/11/23 20:32
バイト単位で文字を切り出す方法を教えてください。

184 :デフォルトの名無しさん:02/11/23 20:37
>>183
String#getBytes()

後は煮るなり焼くなり。

185 :デフォルトの名無しさん:02/11/25 03:20
よくCollectionのちゅーとりあるサイトにいくと

Set set = new HashSet();
もしくは
List list = new ArrayList();
みたいなのを見かけるんですけど、なんでわざわざインタフェースにインスタンスを割
りあてるんでしょうか?



186 :デフォルトの名無しさん:02/11/25 03:32
まぁインターフェースの範囲で完結できるものについてはインターフェースを
使うっつー慣例というか方針というか好みだな。あとで ArrayList を Vector
に換えたくなっても new してるところだけで済むし。

187 :デフォルトの名無しさん:02/11/25 04:11
じゃあObject object = new HashSet()にしたほうがいいんじゃないですか?

188 :デフォルトの名無しさん:02/11/25 04:13
interface じゃないし、インタフェイスが異なるし。

189 :デフォルトの名無しさん:02/11/25 04:13
>>187
その参照どうやって使うつもりよ(ワラ

190 :デフォルトの名無しさん:02/11/25 07:01
new InputStreamReader( System.in )
てなかんじで、実行時に、 "java *** < file"
でファイルを読み込ませてるんですが、もし "java ***"
というふうに入力ファイルを指定されなかった場合にも処理をしたいのですが、どうしたらよいのでしょう?


191 :デフォルトの名無しさん:02/11/25 07:02
>>190
何をどう処理したいのかまったく分かりません。

192 :デフォルトの名無しさん:02/11/25 07:04
>>190
FileReader使えよ。

193 :デフォルトの名無しさん:02/11/25 07:26
>192,191
FileReader使いました!どうも!


194 :デフォルトの名無しさん:02/11/25 07:38
>>190

ファイルのリダイレクトだろっ。
でも、もしもファイルが指定されなかったらblockingで一生待ち続けて
しまうから、それの回避方法を知りたかったんだと思うぜよ。


195 :デフォルトの名無しさん:02/11/25 07:40
>>194
寝てな。

196 :デフォルトの名無しさん:02/11/25 16:19
データベースから年、月、日のデータを取得して
くっつけて"20020101"みたいな表示にしたいのですが、
データ型が数値型なので、そのままくっつけると
"200211"になってしまいます。
なにかうまい方法はありませんか。


197 :デフォルトの名無しさん:02/11/25 16:32
>>196
java.text.DecimalFormatを使用すれ。

下の方が早いけど。
if (mm < 10) mmStr = "0" + mm;

198 :196:02/11/25 17:28
なるほど。
確かに下の方が楽そうですね。
ありがとう。
勉強になりますた。


199 :2行:02/11/25 17:34
>>196
Object[] args = {new Integer(yy), new Integer(mm), new Integer(dd)};
String dt = MessageFormat.format("{0,number,0000}{1,number,00}{2,number,00}", args);

200 :デフォルトの名無しさん:02/11/25 17:49
>>196
1行
Integer.toString(yy*10000+mm*100+dd)

201 :デフォルトの名無しさん:02/11/25 17:51
200の続き。
200で挙げたのが恐らく一番効率良いけど、
DB側でフォーマットするのもありじゃない?


202 :196:02/11/25 18:03
こんなに色々方法があったとは。。。
>199の方法はぜんぜん知らなかったし、
>200の方法は思いつかなかったっす。

>DB側でフォーマットするのもありじゃない?

やり方のわからん厨です。ていうか、新米プログラマーです。(スマソ


203 :デフォルトの名無しさん:02/11/26 00:28
Integer.toString(yy*10000+mm*100+dd)
だめじゃん

204 :デフォルトの名無しさん:02/11/26 00:29
統合しました。


【統合】Java開発環境スレ

  http://pc3.2ch.net/test/read.cgi/tech/1038118138/

205 : :02/11/26 01:02
もしもし、ちょっと質問なんですよ。

レルムのロールって、ログインした後でもServlet内で取得できるんですか?
ロール毎に画面を変えたいのですけど。

206 :ダイナミックコンポジッション:02/11/26 02:08
XNap の文字化け対策 http://xnap.sourceforge.net

UNICODEのファイル名をJavaで引っこ抜くと、濁点のついた文字等が
3バイトコードになってしまうのですが、2バイトコードとして扱うには
どういった仕組みが必要になりますか。

宜しくご教授お願いいたします。


がぎぐげご -> か゛き゛く゛け゛こ゛


207 :デフォルトの名無しさん:02/11/26 06:40
>>206
自力で置換。

208 :ダイナミックコンポジッション:02/11/26 07:20
このソースの使い道、ありますでしょうか。

public static void doSomethingPerCharacter(String string) {
BreakIterator boundary = BreakIterator.getCharacterInstance();
boundary.setText(string);
int start = boundary.first();
for (int end = boundary.next(); end != BreakIterator.DONE;
start = end, end = boundary.next()) {
String c = String.substring(start, end);
doSomething(c);
}
}


209 :ダイナミックコンポジッション:02/11/26 07:22
public static String raw2String(String raw, String encoding)
throws UnsupportedEncodingException {

return (new String(raw.getBytes("8859_1"), encoding));
}


210 :デフォルトの名無しさん:02/11/26 08:02
あるでしょ。
なにするのかシランケド。

211 :デフォルトの名無しさん:02/11/26 08:52
>>210
3バイトコードを2バイトコードに変換したいのです。
どいうったアルゴリズムをとれば問題を回避できるか、、、

212 :デフォルトの名無しさん:02/11/26 12:18
行きは、UNICODEのファイル名をJavaで認識する際に
1文字ずつ区切って取り出す処理をかまして、バイトコードの長さを見る
そこで3バイトの長さのものだけを変換テーブルの処理にかける
そろった文字列をストリングに格納してISO-8859-1のバイトデーターとして
クライアントに送信するのはどうでしょうか。
帰りは、ISO-8859-1の生をそのまま表示(Shift-JIS表示)で
文字列をそのままUNICODEに照らし合わせれば、サーバーのファイル名と一致する、、、
はたしてそうなるでしょうか、、、
変換テーブルという処理がツギハギ的であまり美しくないということも。

すべて妄想の域をでません。どなたか助け舟を宜しくお願いします。


213 :デフォルトの名無しさん:02/11/26 15:27
自分はaddKeyListenerを使ってキー入力するアプレットを作ったのですが、
キー入力の部分をクラスに分ける作業がうまくいきません。
initメソッドでキー入力クラスのコンストラクタに引数としてthisを渡し、
コンストラクタの中では
public KeyInput(Applet app)
{
  addKeyListener(this);
  if(app!=null){app.requestFocus();}
}
と記述したのですが、シンボルを解決できないというエラーが出ます。
どうか、皆さんのお力を貸してください。
それから、クラス名の後にimplements KeyListenerと記述しているのですが、
これでいいのでしょうか?

214 :デフォルトの名無しさん:02/11/26 17:45
>>213
public KeyInput(Applet app)に戻り値の型がない。
というかこれはもしかしてclassかい?

215 :213:02/11/26 18:41
>>214
いえ、コンストラクタです。
クラスのほうは、
class KeyInput implements KeyListener
{
  static protected boolean key_up,key_down,key_left,key_right,key_shot;
  private Graphics off_g;

  public KeyInput(Applet app)
  {
    addKeyListener(this);
    if(app!=null){app.requestFocus();}
  }    
〜〜〜
という感じになっています.             


216 :214:02/11/26 19:01
もしかして、implemntsするメソッドをaddKeyListener()と思ってない?
addKeyListener()メソッドは、Appletが持っているメソッドなので、
app.addKeyListener(this);
と書かないと、
this.addKeyListener(this);
と書いた事になる。
当然KeyInputにaddListener()は存在しない(もしかして有るの?)ので、
メソッド名の解決が出来ずにコンパイルエラーになるのが原因かと。

217 :213:02/11/26 19:05
>>216
コンパイラ通りました!!感動しました!ありがとうございました!


218 :事務系プログラマ:02/11/26 23:42
おまえらインプリメンツをどういう時に使うか
具体的に教えてください。


219 :デフォルトの名無しさん:02/11/26 23:47
>>218
あ?実装のことか?プログラムを書くこと実装するという。

220 :事務系プログラマ:02/11/26 23:49
>>219
んあー
うそこくでねー

221 :事務系プログラマ:02/11/27 00:07
聞き方が悪かったかー
インターフェイスの使い道が分からないんでゲロ
何に使うの?誰か教えレ


222 :厨房:02/11/27 00:18
コンパイルされた.classファイルから元のソースファイル.javaに戻すことってできますでしょうか。

223 :デフォルトの名無しさん:02/11/27 00:18
>>222
デコンパイラあったと思うけど。

224 :デフォルトの名無しさん:02/11/27 00:19
>>221
あるクラスにあるインターフェースがあることを保証したいとき。

225 :デフォルトの名無しさん:02/11/27 00:35
>>223
ありがとうございます。

226 :デフォルトの名無しさん:02/11/27 02:23
ごめんなさい。
とても馬鹿な質問です。
JDKって一体どれをダウンロードすればよろしいのでしょうか?
英語だらけの上にダウンロードページにも同じようなものがたくさんあるので、全くわかりません。

227 :デフォルトの名無しさん:02/11/27 06:39
>>226
「Japanese」「日本語版」って文字を探して、それを押せ

228 :デフォルトの名無しさん:02/11/27 18:43
すいません。便乗で2点質問なんですが、

・Javaで開発するために落としてくるファイルは、
http://java.sun.com/j2se/1.4.1/ja/download.html
ここの〜JREは不用で、〜SDKだけを落とせば良いんですか?

・あと、ここを見ると、
http://www.sekine-lab.ei.tuat.ac.jp/~kanamaru/Programming/winfree.html
1.41には深刻なバグがあると書かれているんですが、
1.40を落とした方がいいんでしょうか?

開発環境を使う予定のOSはWindows98SEです。

229 :デフォルトの名無しさん:02/11/27 18:43
>>228
JREだけでいいっす。

230 :228:02/11/27 18:46
>>229
>JREだけでいいっす。

そうなんですか?
じゃあSDKは何の為のものなんですか?
今両方ダウンロードしてきたんですが、
EXEファイルなので実行するのが恐いです。

231 :デフォルトの名無しさん:02/11/27 18:50
>>230
>EXEファイルなので実行するのが恐いです。

プログラムとかほざく前に今使ってるOSとかもうちょっと基礎的なスキル上げろや。


232 :228:02/11/27 18:54
変な人に当たっちゃったなあ・・
もういいです。さようならー

233 :デフォルトの名無しさん:02/11/27 19:07
開発しるならJDKを落としる!

234 :デフォルトの名無しさん:02/11/27 19:12
謙虚さのかけらもないバカはさっさと死ねよ>>232

235 :デフォルトの名無しさん:02/11/27 19:13
荒れてるなぁ…

236 :デフォルトの名無しさん:02/11/27 19:22
>>229はへんなひとで、>>228は無知なひとだけど
>>231はへんなひとではないとおもう
言葉づかいは乱雑ですけれど

乱雑な言葉づかいがいやならば、2ちゃんねるなどで質問をされるより
Java Houseというメーリングリストがあるのでそちらをご利用なさっては
いかがでしょうか

>>228
SDKはJREをも含んでいるので、SDKをインストールすれば
JREをインストールする必要ありません。

あと>>232のような人が読んで不快になるような言動は
質問をするときはつつしまれたほうが
貴方自身にとって有意義な回答が得られるかとおもいますよ

237 :デフォルトの名無しさん:02/11/27 19:23
>>236
お人好し、死ぬべきだ。

238 :デフォルトの名無しさん:02/11/27 19:27
>>237
タイトル読めるか?

239 :デフォルトの名無しさん:02/11/27 19:27
>>237
>>236はお人好しに見えるが
じつはJavaHouseの荒廃を企む悪人かもしれないと
好意的に解釈してみるテスト。

240 :デフォルトの名無しさん:02/11/27 19:28
>>238
初心者と素人とバカはちがうだろう。

241 :デフォルトの名無しさん:02/11/27 19:29
「大歓迎」ってのはからかって遊ぶためでしょ?

242 :デフォルトの名無しさん:02/11/27 19:32
じゃ俺も>>237はひろみちゅたんであると仮定してみるテスト

243 :デフォルトの名無しさん:02/11/27 20:06
だいあもんどかきたいんだけどどこがちがうかわかりません。
おしえてください。

import java.applet.Applet;
import java.awt.Graphics;
import java.lang.Math;

public class rei extends Applet {
public void paint(Graphics g) {
int k,j,x1,y1,x2,y2,r=100;
double rd=3.14159/180;
for (k=0; k<=14; k++) {
x1=(int)(r*Math.cos(k*22.5*rd)+100);
y1=(int)(r*Math.sin(k*22.5*rd)+100);
for(j=k+1; j<=15; j++) {
x2=(int)(r*Math.cos(k*22.5*rd)+100);
y2=(int)(r*Math.sin(k*22.5*rd)+100);
g.drawLine(x1,y1,x2,y2);
}}}}

244 :デフォルトの名無しさん:02/11/27 20:06
228が言ってる「1.41の深刻なバグ」とは何なんでしょうか?
JavaHouseにもそんなの上ってなかったんですが、どこかで報告されてるの?

245 :デフォルトの名無しさん:02/11/27 22:23
一部のビデオカードでOSを巻き込んで落ちるとか。

246 :244:02/11/28 00:01
>>245
ありがと。Swing使わなければ大丈夫ですね。

247 :デフォルトの名無しさん:02/11/28 00:43
>>243 体が1秒以上、ソースを見ることを拒否いたしました。

248 :デフォルトの名無しさん:02/11/28 14:26
JAVAアプレットで後からGUIコンポーネントのボタンを追加したのですが
なぜかボタンをつけた後、キー入力がきかなくなってしまいました。

どうやらボタンがキーイベントを勝手に奪っているようなのですが
ボタンとキー入力を両立させたい場合、どんな処理をしたらいいでしょうか?


249 :デフォルトの名無しさん:02/11/28 14:52
んなわけない

250 :248:02/11/28 16:38
簡易バージョンを作って試してみてもダメでした。

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

public class Key_Button extends Applet implements KeyListener{
String keyname;//表示用の「keyname」変数
Button rstbt = new Button("リセット");//ボタン用意
Bset freset = new Bset();
public void init()
{
addKeyListener(this);// キー入力にアプレット自身が対応
requestFocus();//フォーカスもらっとけ
keyname = "";//keynameの中身を空にしておく
add(rstbt);//ボタンを画面にセット
}

public void paint(Graphics g)//描画関数呼び出し
{
g.drawString(keyname+"が押されたよ",50,25);//何が押されたか表示
}

public void keyTyped(KeyEvent e){}


251 :248:02/11/28 16:39

public void keyPressed(KeyEvent e)//キーが押された時の処理
{
switch(e.getKeyCode())
{
case KeyEvent.VK_UP:keyname = "上";break;//breakは下まで抜ける命令
case KeyEvent.VK_DOWN:keyname = "下";break;
case KeyEvent.VK_RIGHT:keyname = "右";break;
case KeyEvent.VK_LEFT:keyname = "左";break;
default:keyname = "違";//それ以外のキー
}
repaint();
}

public void keyReleased(KeyEvent e){} // 離されたときは何もしない

class Bset implements ActionListener{
public void actionPerformed(ActionEvent e){
if (e.getSource() == rstbt) keyname = "消";
repaint();
}
}
}

252 :248:02/11/28 16:44
あ、今とっさに気がついて
アクションイベントをeからaにしてみましたけどダメでした。

class Bset implements ActionListener{
public void actionPerformed(ActionEvent a){
if (a.getSource() == rstbt) keyname = "消";
repaint();
}
}

253 :248:02/11/28 16:49
さらに修正(汗)まことにスマンカッタ
public void init()
{
addKeyListener(this);// キー入力にアプレット自身が対応
requestFocus();//フォーカスもらっとけ
keyname = "";//keynameの中身を空にしておく
add(rstbt);//ボタンを画面にセット
rstbt.addActionListener(freset);//●この行入れ忘れ
}

これでボタンはきくようになったけど、やっぱりキーは反応しませんでした


254 :デフォルトの名無しさん:02/11/28 17:08
そのやりかたでは無理だす

255 :デフォルトの名無しさん:02/11/28 17:44
4 階調と16 階調で量子化する際には,X0<X1<X2<X3<X4,
Y0,Y1,Y2,Y3 をどうしたらいいのですか?教えてください。お願いします。


256 :デフォルトの名無しさん:02/11/28 17:57
  ∧ ∧     ┌────────
  ( ´ー`)   < シラネーヨ
   \  (    └───/|────
    \ \_____/./
      \       /
        ∪∪ ̄∪∪

257 :デフォルトの名無しさん:02/11/28 19:21
>>256
ならレスすんな低脳

258 :JPS ◆M0LaMzf5rY :02/11/28 20:08
JBuilderをダウソしたんですが、JavaSDKのV1.3ってJAVA2なんですか?
Java1と2って意識する必要あるんでつか?

259 :デフォルトの名無しさん:02/11/28 20:14
yes
実装が違います

260 :デフォルトの名無しさん:02/11/28 20:14
  ∧ ∧    ┌────────
  ( ´ー`)   < シラネーヨ
   \  (    └───/|────
    \ \_____/./
      \       /
        ∪∪ ̄∪∪

261 :デフォルトの名無しさん:02/11/28 20:16
ここは重複スレなんで、
質問は↓へお願いします。

【初心者】Java質問・相談スレ12【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1037407642/

262 :JPS ◆M0LaMzf5rY :02/11/28 20:18
みんなはJava2やってるの?
実装違うんだったら、両方覚えないとだめなんでつか?

263 :デフォルトの名無しさん:02/11/28 20:19
  ∧ ∧    ┌────────
  ( ´ー`)   < シラネーヨ
   \  (    └───/|────
    \ \_____/./
      \       /
        ∪∪ ̄∪∪

264 :デフォルトの名無しさん:02/11/28 20:20
シラネーヨって、ずいぶん懐かしいな。

265 :デフォルトの名無しさん:02/11/28 20:23
>>262
Java2でいいよ

266 :デフォルトの名無しさん:02/11/28 20:28
>>262
jdk1.1 レベルに対応したもの(MSJVM用Appletとか)を
作りたいとかでなければ Java2 だけでいーんじゃないかなぁ。

267 :デフォルトの名無しさん:02/12/07 02:23
javacでコンパイルできません。
「コマンド名かファイル名が間違っている」と言われますが、
確認しても間違っていない場合、どのような原因が考えられますか?

268 :デフォルトの名無しさん:02/12/07 02:27
パスが通ってない

269 :祐樹:02/12/09 14:19
JTreeについての質問です!!各ノードのアイコンを意識的に変えたいのですが
よくわかりません。一応DefaultTreeCellRendererで開いている枝と閉じている枝
、葉の区別はできるのですが、自分の指定したものを別で変えたいと思っています。
恐れ入りますが、ご存知の方ご教授お願いします!

270 :デフォルトの名無しさん:02/12/09 14:46
>>269
http://java.sun.com/j2se/1.3/ja/docs/ja/api/javax/swing/JTree.html

JTree を使用して複合ノード (たとえば、グラフィックアイコンおよびテキストの両方を持つ
ノード) を表示するには、TreeCellRenderer をサブクラス化し、
setCellRenderer(javax.swing.tree.TreeCellRenderer) を使用してツリーにそれを使用する
ことを指示します。複合ノードを編集するには、TreeCellEditor をサブクラス化し、
setCellEditor(javax.swing.tree.TreeCellEditor) を使用します。


こうだろうと思ったらもろに説明がありました。
DefaultがあるならCustomも当然できるはずなわけで。


271 :祐樹:02/12/09 14:52
ありがとうございます。
早速、試したいと思います。

272 :デフォルトの名無しさん:02/12/09 15:53
Stringの内容を、先頭から一文字ずつasciiコードに変換してint[]に詰めたいのですが、
ascii、ord系のメソッドはないものでしょうか。

273 :デフォルトの名無しさん:02/12/09 16:11
>>272
asciiコード:7bit
int:32bit

割と不思議。

String#getBytes()じゃ君は満足しないだろうしなぁ。


274 :デフォルトの名無しさん:02/12/09 17:00
>>272
UTF-16からASCIIへ変換するって、どう変換が必要なのか
小一時間....

もしStringに\u0080以上が含まれていないなら、
array[i] = str.charAt(i);

275 :272:02/12/10 00:22
すいません!豪快にボケかましました!・゚・(ノД`)・゚・。

半角の文字列のASCIIを取り出したいっていう意味だったんでつ・・・。
(任意の文字列をTCPPacketで射出するモノを書いてました)
charAtでマンマ出てきますね。ショボーン

276 :デフォルトの名無しさん:02/12/10 00:23
javaでゲーム作りたいんだけどアプレットのgraphicsオブジェクト(だっけ?)
はめちゃ重。MFCのGDIくらい重くて画面ジャンジャン書き換えるのは無理でした。
そこでDirectXみたいに高速描画できるクラスとかのセットを教えてください


277 :デフォルトの名無しさん:02/12/10 01:01
JDBCについて質問

MySQLと通信するためには、最初に
Class.forName("org.gjt.mm.mysql.Driver");
とクラスをロードしますが、なぜ import してはだめなのでしょうか。

importしてgetConnectionしてみたら例外吐いて死んでしまいましたが
なぜそうなるのか理由がいまひとつよくわかりません。

278 :デフォルトの名無しさん:02/12/10 01:10
>>277
システムへの JDBC ドライバの登録は、そのドライバ自身のクラスがロード
されたときに行われる。クラスのロードは import しただけでは行われない。
new などでクラスを直接参照する、forName() で参照するなどが行われて
初めてロードされる (この JDBC ドライバのやり方はハゲしく糞だと思うが)。

279 :デフォルトの名無しさん:02/12/10 01:14
>>278
(゚∀゚)サンクスコ
そういうわけだったのね。大人の事情なのかな

280 :276:02/12/10 01:33
だれか〜
よろ

281 :デフォルトの名無しさん:02/12/10 11:43
>>276
SWT使ってろ。
いっとくがAWTとは使い方違うからな。

282 :デフォルトの名無しさん:02/12/10 14:26
>>276
良く知らんけど OpenGL ほとんど直叩きできるような API セットがあったよ。
アルカイダとか何とかいう 3D ゲームで使ってた。

283 :デフォルトの名無しさん:02/12/10 14:27
Arkanae だった

http://arkanae.tuxfamily.org/en/

284 :デフォルトの名無しさん:02/12/10 17:33
>>278
別にクソだとは思わないが。
遅延ローディングのこと考慮してるか?

285 :デフォルトの名無しさん:02/12/10 19:04
>>284
ところでDriverManagerなんだけど

setLoginTimeout
データベースに接続しようとしているときに、ドライバが待つことのできる最長の時間を秒数で設定します。

getLoginTimeout
データベースにログインしているときに、ドライバが待つことのできる最長の時間を秒数で取得します。

ログイン中のタイムアウト時間とログイントライ時のタイムアウト時間
いったいどっちなんだYO

286 :デフォルトの名無しさん:02/12/10 19:14
>>284 素人の素朴な疑問なんだけど
なんで例外で落ちるの?
getConnectionする瞬間にJDBCクラス確定してロードしても
いいんじゃないの?

287 :デフォルトの名無しさん:02/12/10 19:24
何がインポートされたかわからない ってことか

288 :デフォルトの名無しさん:02/12/10 19:56
JAVAメールで以下の文章を送信すると

山アです。
18〜24の恋人募集中
     ↓
山燭任后
18殖横瓦領・擁臀乎

こうなってしまいます。
どうしたら良いですか??

"〜"については
Cp943Cで読み込むことでなんとかなりました。

289 :デフォルトの名無しさん:02/12/10 21:12
ユニコードってやつかいな?

290 :デフォルトの名無しさん:02/12/11 00:04
あーもう
日付が9時間ずれるのなんとかならんかな
同じコードなのにWindowsだと0時で
Linuxだと9時ってなんだよ!
ロケールがどっちにどう間違ってるんだろう・・・
混乱してきたね


291 :デフォルトの名無しさん:02/12/11 00:09
JDIまたはJPDAについて分かりやすい解説のあるHPを教えてください。
検索エンジンでは、なかなかないです。

292 :デフォルトの名無しさん:02/12/11 00:12
>>290
System.out.println(new GregorianCalendar());
であたりを付け、

Calendar.setTimeZone(TimeZone value)
で設定してはどう?

293 :デフォルトの名無しさん:02/12/11 00:29
>>276
VolatileImage関係を使えばどうか

294 :290:02/12/11 01:25
>>292
調べた結果、Linuxマシンは
GMT時刻にニホンの時間を設定してました

295 :デフォルトの名無しさん:02/12/11 01:47
>>284
考慮してるよ。まぁいわゆるエセファクトリ形式になっているのはありがたいのだが…

・でもなぜソレが Class#forName() なわけ?
・DriverManager.loadDriver(String beanName) とかにしなかった理由は?
・Driver サブクラスが static イニシャライザの中で自身を登録するのが美しいか?
・JDBC が出た頃は既に Java Beans 構想は完成してたろ?

というわけ。JDBC 1.0 の頃の API リファレンス見ると設計者自体から香ばしい
香りがプンプンだったし。

296 :288:02/12/11 11:48
>>289
JISじゃなくてユニコードで送れってことですか??
msg.setContent(message,"text/plain; charset=\"UTF-7\"");
としたらUnsupportedEncodingException出ちゃった。あんぽ・・・・。

297 :デフォルトの名無しさん:02/12/11 11:51
>>296
>UTF-7
WIndowsNT暗いじゃないの?

298 :288:02/12/11 12:59
>>297
そうなんですか?対応していないメーラーがあるとかなんとか。。。
Shift_JISだと化けないで送れるんだけどなぁ・・・。

299 :デフォルトの名無しさん:02/12/11 14:28
質問です
〜ソース〜
double hoge[][];
int tekitou,tekitou2;
for(int i=0;i<3;i++){
hoge =new double[tekitou][tekitou2];
↑ここでhoge[i]みたいな、繰り返すたびに別にnewで作りたいんですが
どうすればいいんでしょうか?
}

hoge[i] =new double[tekitou][tekitou2]
みたいな書き方をしてみると一応コンパイルは通るのですが実行でエラーでした
こういう場合の対応として何かいい方法とかありませんでしょうか?
よろしくお願いします


300 :デフォルトの名無しさん:02/12/11 14:42
>>299
>hoge[i] =new double[tekitou][tekitou2]

次数おかしくないか?

301 :デフォルトの名無しさん:02/12/11 14:51
いままで普通に[]を多様してたんですが、
要素数が不定の配列を扱う場合、ArrayList等を使った方が・・・いや、使うべきなんでしょうか。

perlみたいに大きさが可変な配列があったら嬉しいんですが、ほんの小〜さなものを扱うのにも
importしてnew ArrayListしないといけないのがチョットとか思いまして。

302 :デフォルトの名無しさん:02/12/11 14:55
>>301
書き方が悪かったです
たとえばfor文の
i=0のとき
hoge0 =new hoge[tekitou][tekitou2]
i=1のとき
hoge1 =new hoge[tekitou][tekitou2]
みたいに、まわすたび別の配列を作りたいってことです
わかりづらくてすみません

303 :302:02/12/11 14:56
>>302
すみません
レス相手間違えました>>300さんです

304 :JB7チュートリアル:02/12/11 14:59
はじめまして、つい先日JBuilder7 personalを落とし、
JAVAの世界に飛び込んだばかりの初心者です。
早速ですがヘルプのチュートリアルにある「FirstApplet」で質問です。

C:\JBuilder7\samples\Tutorials\FirstApplet\classes

↑ここにある「GoodEveningApplet.html」をIE+MicrosoftVMという環境で
IEの「開く」からHTMLページを開いて実行すると灰色のまま何も表示されま
せん。 しかしエクスプローラからHTMLファイルをダブルクリックして開く
とちゃんと動きます。

また、チュートリアル通りに自分で作った「FirstApplet」の場合、
「IEの開く」でも「エクスプローラーからHTMLファイルをダブルクリック」
でも灰色のまま何も表示されません。

モジラやOperaで実行した場合は問題無く動作します。
何故こういう現象が起こるのかを知りたいです。

ちなみにIEの「ツール」「インターネットオプション」「セキュリティ」
の設定を「JAVA 低」にしてもダメでした。
宜しくお願い致します。(^^;

305 :JB7チュートリアル:02/12/11 15:24
肝心なこと書き忘れました(汗
私の環境は windows98SE + IE6 SP1 です。

IEでもjava1.4.1plug-inを使うと正常に実行出来ました。
同じ現象が起こる方、この原因がお解りになる方が
いらっしゃいましたら情報をお願い致します。


306 :デフォルトの名無しさん:02/12/11 16:01
>>305
IEのJavaは1.1.8相当。

307 :デフォルトの名無しさん:02/12/11 16:01
>>305
IEのJavaは1.1.8相当。

308 :304 JB7チュートリアル:02/12/11 16:33
>>306

チュートリアルではIEのJAVAは1.1.5という設定で書かれて
いました、このせいで動かない部分が出ちゃったってこと
ですね(^^; 動作しない原因が解ってホッとしました、
ありがとうございました〜!

IEの対応JAVAが変わったせいで使えなくなってしまうとは
ちょっと恐いな・・w

309 :デフォルトの名無しさん:02/12/11 16:33
>>308
じゃあやめれば?

310 :デフォルトの名無しさん:02/12/11 18:37
>>307
実は 1.1.4 相当だが。

311 :デフォルトの名無しさん:02/12/12 13:54
>>299
コレクションつかったら?


312 :デフォルトの名無しさん:02/12/12 14:32
date型で引き算ってできないでしょうか?
たとえば2002年12月8日-2002年11月10日=28みたいな
やっぱりintに変換して計算するしかないのでしょうか?

313 :デフォルトの名無しさん:02/12/12 14:38
>>312
longにして引き算してまたDate

314 :312:02/12/12 15:07
dateをlongに変換するにはどうしたらいいんですか?
longになるのは戻り値がミリ秒で帰ってくるのしかないのですが。

315 :デフォルトの名無しさん:02/12/12 15:30
servletではなく、
classから、JSPをdispatchするってことはできるのでしょうか?

316 :デフォルトの名無しさん:02/12/12 15:59
>>314
ミリ秒にして引き算してまたDate

317 :299:02/12/12 16:37
>>311
ちょっとそれについて調べてみたんですが使い方がいまいちよくつかめませんでした
「こんなふうに使える」というのを教えてもらえたらすごく助かります
以下が私のしたいことです

forでまわすたびに2次元配列の変数を新しいもので宣言したい
forの繰り返し回数はファイルで読んでいるのでわからない。
もし3回だとしたら
array1 ,array2, array3みたいにforを抜けた後でも残しておきたい

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


318 :デフォルトの名無しさん:02/12/12 17:08
おまえらWEBのポストのときに
%88%A5%8F
とかなっているときに、元の文字に戻すやり方を教えてください。
おながいします。

319 :デフォルトの名無しさん:02/12/12 17:15
>>318
%dd

のddを16進10進変換するだけです。

320 :デフォルトの名無しさん:02/12/12 17:15
>>318
%dd

のddを16進10進変換するだけです。

321 :デフォルトの名無しさん:02/12/12 17:44
>>318
URLDecoder使えよ

322 :デフォルトの名無しさん:02/12/12 18:41
>>318

URLデコードしてくれるコンポーネントまたは関数があるはず。
URLデコードで検索すればこういうコンポまたは関数の使い方とか
コンポまたは関数を配布してるサイトが見つかるっぽい。

JAVAのことは全然知らないけど。(ぉぃ

あと319-320は相手にしないほうがいいかも知れない。

323 :デフォルトの名無しさん:02/12/12 19:46
>>317
double[][] hoge;
ArrayList lst = new ArrayList( LOOP_COUNT )
for(int i=0; i < LOOP_COUNT; i++){
 hoge = new double[ ... ][ ... ];
 ...
 lst.add(hoge);
}
こんな感じで、
要素にアクセスしたいときは、
hoge = (double[][])lst.get(アクセスしたい要素のindex);
こんなかんじかのう・・・。

君の言うとることが今ひとつ伝わらない。
>>302なんかを読むとかなり勘違いしているように思われる。
素直に3次元にしてみるのが一番手っ取り早いのではないか?

リストを使ってみたがこれがわからんと言うのは無しで

324 :デフォルトの名無しさん:02/12/12 22:18
わかってない人間が3次元配列なんか使うと
ひどい目にあうのでやめといた方がいいかと。

325 :デフォルトの名無しさん:02/12/12 22:29
>>323
レスありがとうございます。
ArrayListを調べてます。ありがとうございました。


326 :デフォルトの名無しさん:02/12/12 23:49
ちょっとまてオマイラー。日付引き算できるクラスあるやろー。
おもちゃにしてないで、ちゃんと教えてやんなよ。

327 :デフォルトの名無しさん:02/12/13 07:02
っていうか、すでに初心者の相談スレは13が立ってるのに
未だに7に書き込みがある時点で何かが間違っているような

328 :デフォルトの名無しさん:02/12/13 09:14
7がまだ300台なのになんで13があるんだ?
ちなみに今日は13日の金曜日だ。

329 :318:02/12/13 14:05
レス有難うございました。
結局1.4のURLDecoderのソースをコピーして貼り付けて使うことにしました。

330 :デフォルトの名無しさん:02/12/13 14:07
>URLデコードしてくれるコンポーネントまたは関数があるはず。
>URLデコードで検索すればこういうコンポまたは関数の使い方とか
>コンポまたは関数を配布してるサイトが見つかるっぽい。

>JAVAのことは全然知らないけど。(ぉぃ

>あと319-320は相手にしないほうがいいかも知れない。

ライブラリ厨晒しage

331 :デフォルトの名無しさん:02/12/13 14:31
>>330
最近の子ってURLデコードもできないのか・・・他人事とはいえ鬱だ。

332 :デフォルトの名無しさん:02/12/13 17:24
http://headlines.yahoo.co.jp/hl?a=20021213-00000016-dwj-biz

333 :デフォルトの名無しさん:02/12/13 17:41
ジャバウォックとジャバネットたかたの作り方を教えて下さい。
宜しくお願い致します。

334 :MK:02/12/14 00:21
FTPサーバつくりたいんですが、仮想ディレクトリって
どう実装させればいいですか??知ってる方いらしたら教えてください。

335 :デフォルトの名無しさん:02/12/14 00:57
>>334
どうもこうも。適当にここ!と決める。

336 ::02/12/15 16:23
サーバ側でPASVモードのときに行う処理は
何ですか??教えてください

337 :デフォルトの名無しさん:02/12/15 16:29
>>336
何ですかと言われても。

338 :デフォルトの名無しさん:02/12/15 21:25
Swing がフランス・パリで流行中

http://news.msn.co.jp/articles/snews.asp?w=308808

339 ::02/12/15 21:30
ServerSocketで待機しているんですが、
接続後にListを贈りたいんですがそうしたらいいんですか??


340 :デフォルトの名無しさん:02/12/15 21:30
>>339
何のだよ。

341 ::02/12/15 21:31
FTPサーバの仮想ディレクトリのListです

342 ::02/12/15 21:33
FTPサーバの仮想ディレクトリのLIST
なんですけど…

343 :デフォルトの名無しさん:02/12/15 21:34
>>342
RFC読んでみれば?

344 ::02/12/15 21:35
はい。呼んでみてはいるんですけど、なかなか理解できないんですよ

345 :デフォルトの名無しさん:02/12/15 21:42
クライアントが指定してきた IP とポートに接続してファイルリストを垂れ流す
PASV なら自分が新しいサーバソケットを開いて接続を待つ

346 :デフォルトの名無しさん:02/12/16 12:57
円グラフを描いて,それをjpegファイルとして保存したいのですが。
どのようにすればよいでしょうか。

347 :デファルトの名無しさん:02/12/16 13:24
try〜catchの上手な使い方がいまいちよくわからん

例えばファイルに無限に書き続けるというとき
例外が起こったら適切に処理をするように書くと
for(;;){ try{ File f = new File("/hoge");{
try{ for(;;)f.write(hoge);
}catch(Exception e){f.close();} }
}catch(Exception e){} }
大雑把に言って、こういう感じで書いてるけど
try〜catchが2重になるのがなんだかいやだ

348 :デフォルトの名無しさん:02/12/16 13:28
>>346
PNGにしとけ

349 :デフォルトの名無しさん:02/12/16 13:41
>>347
File に write って有ったか?
しっかし無限に書き込むってすげーな。ちょっと感動。

350 :デファルトの名無しさん:02/12/16 13:47
>>349
いや、あくまでたとえ話で

無限ループするルーチン前提での話
組み込み分野って言えばいいかな

要は
コンストラクタでも例外が発生するようなものの
インスタンスを作って処理していくときに
例外が発生したらとりあえず終了処理して
もう一度インスタンス作り直してまたループ
というのがやりたいんだけど
結局2重に覆う必要があるってことかな

351 :デフォルトの名無しさん:02/12/16 13:56
>>350
情報少ないからアレだけど、
多分アンタのやり方が悪いだけだと思われ。

352 :デファルトの名無しさん:02/12/16 13:57
>>351
そうだね。もう少しがんばってみるよ

353 :デフォルトの名無しさん:02/12/16 14:03
>>350の設計がいいかどうかは別にして、
tryがネストするのは別に珍しいことじゃないと思うが。

354 :デフォルトの名無しさん:02/12/16 14:40
本当に申し訳ないです。
ソフトをつくってみたいのですが、どうすればつくれますか?
まず最初は何をして、何を準備して、勉強したらいいですか?
とんでもないかんちがいしてたらごめんなさい。

355 :デフォルトの名無しさん:02/12/16 15:30
まずSunのサイトにいきJDKをダウンロード。
http://java.sun.com/j2se/1.4.1/ja/download.html
あるいは書店に行きCD-ROMに最新のJDKが収録されているJavaの入門書を購入。

JDKを手に入れたらそれをインストールし、パスなどの環境を設定する。

インストールの方法は下のページに載っているので、
下のページのなかから自分の使っているOSを選んでクリック。
http://java.sun.com/j2se/1.4.1/ja/install.html

あとは入門書や、初心者向けのサイトに載っているような
簡単なプログラムをテキストエディタを用いて入力して保存。

保存したテキストファイルをJavaコンパイラを用いてコンパイルし、
コンパイルが終ったら実行。


おそらく初心者向けと思われるサイト。
http://www.hellohiro.com/appli.htm
http://www.wakhok.ac.jp/~tatsuo/prog2002/3shuu/kougi.html
http://java.sun.com/docs/books/tutorial/getStarted/cupojava/index.html(英語)

356 :デフォルトの名無しさん:02/12/16 15:42
アプレットでタイピングソフトを作ろうとしているのですがプログラム経験
が少なくどうやっていいのか分かりません。googleで検索してもなかなかい
いものがなく困ってます。初歩的なものでいいのでフリーのソースが載って
いるwebページを教えて下さい。学校の課題でかなり焦ってます。

357 :デフォルトの名無しさん:02/12/16 15:45
補足すると
>>355のJDKとは下のページでいうSDKのことです。
使っているOSがWindowsならWindowsのSDKをダウンロードというわけです。
http://java.sun.com/j2se/1.4.1/ja/download.html

判らない言葉があればコンピュータ用語辞典などを使うとよろしいかと。
http://yougo.ascii24.com/
http://nttcom.e-words.ne.jp/
http://www.google.co.jp/

358 :デフォルトの名無しさん:02/12/16 15:46
>>356
課題は自力でやりましょう。

359 :デフォルトの名無しさん:02/12/16 15:51
http://www.google.co.jp/search?hl=ja&ie=UTF-8&oe=UTF-8&q=keyDown+Applet+java&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja

360 :デフォルトの名無しさん:02/12/16 15:51
>>354

プログラミング初心者ならdelphiのほうがいいかも・・
JAVAはパスやらコマンドプロンプトやら初心者には
つらい面が多いっす。

http://www.borland.co.jp/delphi/personal/
delphi6 personal

361 :デフォルトの名無しさん:02/12/16 15:53
>>360
Delphi の宣伝で age るのヤメレ

362 :デフォルトの名無しさん:02/12/16 16:11
JavaはもともとUNIXのSunから生まれたものなので、
DOSの経験すらなく最初につかったパソコンがWindowsやMacだと、
コンパイルの時点で挫折するかもしれないというのなら同意。

でもパスの設定などは、
プログラミング自体と比べたらさほど難しいことではないと思う。
まあ初心者はJavaやDelphiなど手をださず、
JavaScriptでもやってなさいってこった。

>>356
下のサイトのkadai601とKeyTestが、それぞれ参考になるとおもう。
ちょっと単純すぎてかえって参考にならないかもしれないが。

http://web.sfc.keio.ac.jp/~wadari/2z/java/note06.html
http://www.wakhok.ac.jp/~tatsuo/kougi97/5shuu/jisshuu.html

363 :デフォルトの名無しさん:02/12/16 16:28
>UNIXのSun
ワラタ

364 :デフォルトの名無しさん:02/12/16 16:33
>>362
で、Delphiにパスの設定ユーザに強制させる場面なんてあったっけか?

365 :デフォルトの名無しさん:02/12/16 16:41
>>363
>UNIXのSun
SunといえばUNIXってほどの意味。
Unixで名を馳せたSunというほどの意味な。
お分かり?

>>364
Javaもパスの設定はする必要はないよ?
なにか勘違いしてない?

366 :デフォルトの名無しさん:02/12/16 16:47
パスの設定しないと使いにくいだろうがウ"ォケ

367 :デフォルトの名無しさん:02/12/16 16:52
>>366
もともとコマンドライン入力の時点で使いやすくはないのです。
でもそんなJava初心者の皆様もIDEの類をつかわれると、
きっと幸せになれますよ。

【統合】Java開発環境スレ
http://pc3.2ch.net/test/read.cgi/tech/1038118138/l50


368 :デフォルトの名無しさん:02/12/16 18:51
すみません、どなたか教えてください。

FileクラスのrenameTo()メソッドで
falseが帰る時、考えられる原因はなんでしょうか?

369 :デフォルトの名無しさん:02/12/16 19:14
そのファイルへのアクセス権を持っていない。
そのファイルがそもそも存在しない。

370 :デフォルトの名無しさん:02/12/16 21:55
Javaコンパイラを何にしようか迷っています。
sunは嫌いなのでそれ以外でお勧めコンパイラ&実行環境教えてください。
#個人の好みということは分かっています。参考にしようと思ってるだけです。

371 :デフォルトの名無しさん:02/12/16 21:59
いきなりですが、下のスレッドとpaintを使って右を押したり左を押したりしたら、それに合わせて
自分が移動するゲームを作成しようとしてるのですが
public void run() {
int intX=0;//移動幅

while (th == Thread.currentThread()){

if (boo_Left){
intX = -5;
}
else if (boo_Right){
intX = 5;
}
else {intX = 0;}

if (0<intPosX+intX && intPosX+imgIcon.getWidth(this)+intX<this.getWidth()) {
intPosX = intPosX+intX;
repaint();
}
try{
Thread.sleep(14);
} catch(InterruptedException e) {}

}
}

public void paint(Graphics g) {
g.drawImage(imgIcon, intPosX, this.getHeight()-imgIcon.getHeight(this), this);
}

動かすたびに、ひどく点滅して見難いです 点滅しない方法を教えてください

372 :アフォ学生 ◆ZrbomZ0t3. :02/12/16 22:14
repaint()を呼び出すたびに描画が最初から行われるから
でわかる?

373 :デフォルトの名無しさん:02/12/16 22:28
repaint()はまずいということですか..
Imageのメソッドもっかい見てきます

374 :デフォルトの名無しさん:02/12/16 22:43
>>372
素直にダブルバッファって言うヒント与えてやった方が良くないか?

なんか意味不明だぞ。>>812って。

375 :デフォルトの名無しさん:02/12/16 22:56
そうだな。>>812は確かに意味不明だな…。

376 :デフォルトの名無しさん:02/12/16 23:06
JAVAを表示する仕組みを誰か説明してください。
それかそんなのが書いてあるページないですか?

377 :デフォルトの名無しさん:02/12/16 23:07
>>376
無いだろう。

378 :デフォルトの名無しさん:02/12/16 23:07
>>376

激 し く 意 味 不 明

379 :デフォルトの名無しさん:02/12/16 23:08
812の意味不明コメントに期待しつつ
俺は寝る

380 :デフォルトの名無しさん:02/12/16 23:08
System.out.println("JAVA");
これの解説すんの?

381 :デフォルトの名無しさん:02/12/16 23:27
boolean配列をまとめてxorして、違う値の有無を確認したいですけど
boolean[] a=new boolean[20];
boolean[] b=new boolean[20];
for(int i=0;i<a.length;i++){
if(a[i]!=b[i]){
System.out.println("jugemu jugemu");
}
}
てやるしかないですか?
boolean配列をintにしてから
if(a^b==0){}
みたいにできるとうれしいのですが、
boolean配列をintにする方法がわかりません。
どうすればいいのでしょうか?
アドバイスお願いします。

382 :デフォルトの名無しさん:02/12/16 23:28
>>381
boolena x;
int a = (x)?1:0;

とかは?

383 :デフォルトの名無しさん:02/12/16 23:31
いや、配列のままを数値化すればfor文をまわさなくていいかなと。
0110を6に変換とか。
そういう方法ありますか。



384 :デフォルトの名無しさん:02/12/17 00:00
JREとSDKの違いって何ですか?

385 :デフォルトの名無しさん:02/12/17 00:07
>>370
コンパイル速度重視ならjikesがオススメ。
ただし日本語がそのままでは通らなかったと思うので
コンパイル前にnative2asciiをかます必要があったかも。

386 :デフォルトの名無しさん:02/12/17 00:10
>>385
レスありがとうございます。
さっきjikes落としました。
日本語に関しては-encodingで指定できるようなったらしいです。

でjikesだけでいいと思ったらSDKがいるっぽい。
#えらいサイズ小さかったし。
今SDKをDL中です。

387 :デフォルトの名無しさん:02/12/17 00:10
>>383
ないです。そもそもJavaのboolean型は数値型にキャストは出来ません。
よって、boolean[]も当然数値化は自分でやらなくてはなりません。

388 :デフォルトの名無しさん:02/12/17 00:26
>>383
BitSetってクラスがある。もしくは、ビット演算。
変換することを考えているのなら、最初から、booleanの配列にしなければ、
後が楽かも。(もちろん楽ではない可能性も)

389 :デフォルトの名無しさん:02/12/17 12:20
>>370
【IBM JDK 1.1/1.3】 (要ユーザ登録)
http://www-105.ibm.com/developerworks/tools.nsf/dw/java-devkits-byname?OpenDocument&Count=100
http://gcc.gnu.org/java/

>>384
JREはJavaのプログラムを実行するために必要なもの
Javaヴァーチャルマシンとかをひとまとめにしたものだよ

JDKは、JREにJavaプログラムを開発するためのツールを足しあわせたやつ
開発するためのツールっていうのは、Javaのコンパイラとかね

390 :デフォルトの名無しさん:02/12/17 16:33
オーム社の「基礎からわかるTCP/IP Javaネットワークプログラミング」という
書籍を用いてJavaの勉強をしています。
しかし、序盤でキーボードからの入力を受け取ってそのまま画面に出力、
及びファイルに入力を格納するというプログラムが
コンパイルは成功するのに いざ実行すると
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at Writefile.main(Writefile.java:10)
のように表示されて終了してしまいます。
このエラー(例外?)は何を示しているんでしょうか?
わかる方いましたらご教授お願いします。


391 :デフォルトの名無しさん:02/12/17 16:47
うーんと。 java.lang.ArrayIndexOutOfBoundsException: 0
というのは、配列の範囲外を参照しようとしたときに発生。

たとえば0から100までの配列があった場合などに、
101番目にアクセスしようとした場合とか。
-1番目にアクセスしよとした場合ね。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/lang/ArrayIndexOutOfBoundsException.html

392 :390:02/12/17 17:00
解答ありがとうございます。
プログラム中ではwhile文でboolean型変数contを判別してループしています。
ピリオドが行頭にあれば終了という形で。

byte[] buff = new byte[1024];
boolean cont = true;

while (cont){
try{
int n = System.in.read(buff);
System.out.write(buff,0,n);
if(buff[0] == '.') cont = false;
else outfile.write(buff,0,n);
}
catch(Exception e){
System.exit(1);
}
}

この場合は配列の0〜nまでを読み込んでいるんだと思うんですが、
nが配列の範囲外を参照しているんでしょうか・・・?



393 :デフォルトの名無しさん:02/12/17 17:41
>>392
ざっと見た感じだけど、そのコードには問題がなさそう

394 :デフォルトの名無しさん:02/12/17 17:55
import java.io.*;

public class InputTest {
 static FileOutputStream outfile;

 public static void main(String[] args) {
  try {
   outfile = new FileOutputStream("InputTest.txt");
  } catch (Exception e) {
   System.out.println(e);
  }

  //>>392のコードを挿入。

 }
}
//こういうコードで試してみたけど>>390の例外は発生しないなあ
//なにか他に問題があるとおもわれ。

395 :デフォルトの名無しさん:02/12/17 19:56
昨日自分を横に動かしたら画面がちらちらすると質問したものです
374さんのダブルバッファと言う単語から下のように少し変えたのですが

Image imgIcon,offScreenImage;
Graphics offScreenG;
  これらが変数で
public void init() {
offScreenImage = createImage(this.getWidth(),this.getHeight());
offScreenG = offScreenImage.getGraphics();}
/**スレッドの開始 */
public void run() {
int intX=0; //移動幅
while (th == Thread.currentThread()){
if (boo_Left){intX = -5;}
else if (boo_Right){intX = 5;}
else {intX = 0;}
if (0<intPosX+intX && intPosX+imgIcon.getWidth(this)+intX<this.getWidth()) {
intPosX = intPosX+intX;
repaint();}
try{Thread.sleep(14);
} catch(InterruptedException e) {}} //繰り返し
}
public void paint( Graphics g ) {
offScreenG.drawImage(imgIcon, intPosX, this.getHeight()-imgIcon.getHeight(this), this);
g.drawImage(offScreenImage,0,0,this);}
public void update(Graphics g){
paint(g);}

こうしたのですが、今度は移動させたら元の自分画像の残骸が残ってしまいまして
updateで消去されると見たのですが消去されてないようです
どこが間違ってるのでしょうか?醜くてほんとにすみません

396 :デフォルトの名無しさん:02/12/17 20:25
いっそSwingを使っては?
あれならばデフォルトでダブルバッファも実装されているし。
もしAppletなどを作っているのなら仕方がないけど。

397 :デフォルトの名無しさん:02/12/17 20:31
すいません。上の見難くて。訳わかんないですよね
すいません。。アプレットです。

398 :デフォルトの名無しさん:02/12/17 20:44
paint()の処理を、
まず最初に真っ白なり真っ黒なり背景用の画像なりを塗りつぶしてから
キャラを描画するように記述しては?


・・・めんどくさいのでコード読んでないのでまちがってたらごめん、


399 :デフォルトの名無しさん:02/12/17 20:56
ああ。いまコード読んでみた。
たぶん>>398の方法で解決するとおもう。

まず最初に真っ白なり真っ黒なり背景用の画像なりで、
offScreenImageを塗りつぶしたあとで
offScreenG.drawImage(imgIcon, intPosX, this.getHeight()-imgIcon.getHeight(this), this);
してから
g.drawImage(offScreenImage,0,0,this);ね。


update()はpaint()を呼び出しているだけだから、
offScreenGの内容は消去されないよ。
なので自分で塗りつぶす処理を書く必要があるわけです。
ゲーム作成がんばってね。

400 :デフォルトの名無しさん:02/12/17 21:05
>>398
>まず最初に真っ白なり真っ黒なり背景用の画像なりを塗りつぶしてから

これこそがちらつく原因なんですよ。と。

401 :デフォルトの名無しさん:02/12/17 21:20
>>400
いやオフスクリーンに背景やimgIconを描画してから
それをまとめて表のスクリーンにコピーすれば大丈夫じゃない?

っと。

402 :デフォルトの名無しさん:02/12/17 21:23
>>401
ダブルバッファですな。読みが浅かった。スマソ。

403 :デフォルトの名無しさん:02/12/17 21:24

public void paint( Graphics g ) {

offScreenG.drawImage(imgIcon, intPosX, this.getHeight()-imgIcon.getHeight(this), this);

g.drawImage(offScreenImage,0,0,this);
}

public void update(Graphics g){

offScreenG.setColor(Color.WHITE);
offScreenG.fillRect(0,0,this.getWidth(),this.getHeight());

paint(g);
}

こういう感じでやってみました。
updateでオフスクリーンを全て白で塗りつぶし
paintでオフスクリーンに移動後の自分画像を表示しオフスクリーンの画像を
描写しました

オフスクリーンの画像はupdateで全て消去されるものだと思い込んでたので
消さなければいけないと、思いつかず悩んでました

見難いコードまで読んでもらい的確なアドバイス有難うございます
ゲームがんばります^。

404 :デフォルトの名無しさん:02/12/17 23:52
お馬鹿な質問かもしれませんが、classファイルからもとのjavaファイルにどうにかして戻せますか?


405 :デフォルトの名無しさん:02/12/17 23:54
JFrameを最前面に持ってきたいのですが,
APIReferenceで "front"も"raise"もひっかかりません。
どうすればよいですか?

406 :デフォルトの名無しさん:02/12/18 00:19
>>404
完全に戻すのは無理だが jad 使え

407 :デフォルトの名無しさん:02/12/18 00:20
>>392
int n = System.in.read(buff); で -1 が帰ってきてると思う

408 :デフォルトの名無しさん:02/12/18 00:21
>>404
decompiler か逆コンパイラあたりで検索すればいくつかツールが見つかります。

409 :デフォルトの名無しさん:02/12/18 00:21
MIDPです。
Stringで2002/12/24
とある文字列をdate型に直すにはどうしたらいいでしょうか?


410 :デフォルトの名無しさん:02/12/18 00:34
>>404
Javaは実行時に例外が発生したときは、
何と言う名前のクラスの何と言うメソッドのどの箇所で例外が発生したかを
画面に表示することができることからもわかるように
コンパイルずみのclassファイルのなかにも
メソッド名を始めとした色々な情報が保存されています。

このJavaの特性を利用すれば、
かなりのところまでjavaファイルを復元することが可能のようです。
http://www.google.com/search?lr=lang_ja&hl=ja&ie=eucjp&oe=eucjp&q=%B5%D5%A5%B3%A5%F3%A5%D1%A5%A4%A5%EB+java

>>405
JFrameの親クラスであるjava.awt.FrameのtoFront()
http://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/swing/JFrame.html

411 :デフォルトの名無しさん:02/12/18 00:45
>>409
とりあえずこんなところでどうでしょう。
モバイルとかあっちのほうはよくわかりません。すまそ。
http://www.google.com/search?lr=lang_ja&hl=ja&ie=eucjp&oe=eucjp&q=yy%2Fmm%2Fdd+java+date

412 :409:02/12/18 00:55
うーやっぱわかりません。すいません。
MIDPで日付を扱うのに情報が無さ過ぎる…

413 :405:02/12/18 00:56
>>410
>JFrameの親クラスであるjava.awt.FrameのtoFront()
すいません。できませんでした。
当方RXVTを使っていまして,DOS窓からはできたのでRXVT固有の問題のようです。
スレ違い失礼しました。

414 :デフォルトの名無しさん:02/12/18 00:57
>>412
MIDP 1.0 正式版には API マニュアルが提供されていません。 しかし、Java2 Micro Edition Wireless Toolkit の doc\api フォルダ以下に API マニュアルが含まれています。

にDateクラス無いの?

415 :409:02/12/18 01:02
date(long time-mill sec)でもいけるのですが元データがStringで

2002/12/14 とかなのでこれをmill secに変換する方法がわからないので質問しました。
うるう秒?とかまで考え出すと日付を与えてdate型を構築する方法がないとどうしようもなさそうなので…

416 :デフォルトの名無しさん:02/12/18 01:04
>>415
calenderクラスはない?

417 :デフォルトの名無しさん:02/12/18 01:05
darだ

418 :409:02/12/18 01:07
calenderも
void set(int field, int value)
Sets the time field with the given value.
void setTime(Date date)
Sets this Calendar's current time with the given Date.
protected void setTimeInMillis(long millis)
Sets this Calendar's current time from the given long value.
と言うことなんですよ…


419 :デフォルトの名無しさん:02/12/18 01:10
Calendar.set(year + 1900, month, date)はMIDPには無いのか・・・。



420 :デフォルトの名無しさん:02/12/18 01:10
くださらに質問ですが、JAVAによってどのようなサービスを顧客に提供することができるのでしょうか?

421 :デフォルトの名無しさん:02/12/18 01:12
CLDCにローカライズ関係のクラスがないから自分でやるしかないよね。
グレゴリオ暦とかで検索するとうるう年の処理とかひっかかるよ。

422 :デフォルトの名無しさん:02/12/18 01:12
>>409
逆にdate型にしなきゃいけない理由を聞いてみたい。

423 :デフォルトの名無しさん:02/12/18 01:13
>>422
日付をインクリメントしたいとかじゃないの?

424 :409:02/12/18 01:17
String 2002/12/22
とかで記録された日付が現在の日付から何日進んでいる/遅れているか知りたいからです。
うるう年とかの処理がややこしそうでdate(yyyy/mm/dd)とかでできれば楽なんだろうなって
だけど無理そうですね…

425 :デフォルトの名無しさん:02/12/18 02:21
SimpleDateFormat sd = new SimpleDateFormat("yyyy/MM/dd");
ParsePosition p = new ParsePosition(0);
Date d = sd.parse("2002/12/18", p);
やってみそ。

426 :425:02/12/18 02:26
ごめん。バカでした。MDPなんですね。

427 :デフォルトの名無しさん:02/12/18 09:09
appletでタイピングソフトを作りたいのですが参考になるソースどっかにありませんか??
教えてください。


428 :デフォルトの名無しさん:02/12/18 09:09
>>427
死ねクソマルチ。

429 :デフォルトの名無しさん:02/12/18 09:27
ji

430 :bloom:02/12/18 09:33

http://www.agemasukudasai.com/bloom/

431 :デフォルトの名無しさん:02/12/18 11:21
変数は、初期化しなくていいんですか?
宣言すれば同時に初期化?

432 :デフォルトの名無しさん:02/12/18 11:22
>>431
初期化は必須。
コンパイルしたときにエラーが出なければとりあえずOK。


433 :デフォルトの名無しさん:02/12/18 11:26
>>431
インスタンス変数はデフォルトで 0, null, false 等で初期化される。
ローカル変数は初期化しないとコンパイラに怒られる。

434 :デフォルトの名無しさん:02/12/18 11:40
半角スペースと全角スペースをデリミタにして文字列strから
トークンを切り出したいのですが、以下の方法でやっても
うまくいきませんでした。
分かりにくいですが "  " 内には半角スペースと全角スペースが入っています。

String delim = "  "; // デリミタに全角半角スペースを指定したつもり
StringTokenizer st = new StringTokenizer(str, delim);
while (st.hasMoreTokens()) {
println(st.nextToken());
}

アドバイスお願いできませんか?

435 :デフォルトの名無しさん:02/12/18 11:51
>>434
Pattern#splitじゃだめ?

436 :689:02/12/18 13:12
String delim = "[ | ]"; // 半角空白と全角空白のどちらかを示すregex
String[] parts = new String(str).split(delim);

こんなんでいかが?

437 :デフォルトの名無しさん:02/12/18 16:03
今月から始めた初心者です。
自宅で勉強しようと思い、初歩的なところまではうまくいっていたのですが、
DBを使用するところでつまづいています。
DBへの接続からということで、以下のソースでコンパイルは正常なのですが、
実行時エラーとなり以下のメッセージが表示されてしまいます。
「Exception in thread "main" java.lang.NoClassDefFoundError:dbaccess

import java.net.*;
import java.sql.*;
class Dbaccess {
  public static void main(String args[]) {
    try {
      //JDBCドライバをロードする
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      //データベースに接続する
      String url = "jdbc:odbc:TESTDB";
      String user = "";
      String pass = "";
      Connection con = DriverManager.getConnection(url,user,pass);
      System.out.println("データベースに接続しました");
      //データベースから切断する
      con.close();
      System.out.println("データベースを切断しました");
    } catch (Exception e) {
      System.out.println("例外 " + e + " が発生しました");
    }
  }
}

環境は「JDK1.3.1 OS:WinXP、DB:Access」です。
ODBCへの登録へは書籍を参考に行っています。
どなたかアドバイス頂けませんでしょうか?

438 :437:02/12/18 16:03
すいません、sage忘れました...

439 :デフォルトの名無しさん:02/12/18 16:33
>>437
コントロールパネルでデータベース登録した?

440 :437:02/12/18 16:37
>>439
「ODBCドライバ登録」のことではないのですか?
書籍には「ドライバ(JDBC−ODBC)はJDKに含まれる」と
あったので、ODBCの登録以外はしていません。

441 :デフォルトの名無しさん:02/12/18 16:41
>>440
http://pc3.2ch.net/test/read.cgi/tech/1040150533/1-2

442 :U ◆CZtFsGiu0c :02/12/18 16:57
>>437
メッセージをよく読みましょう。dbaccessっていうあなたが作成した
クラスが見つからない、と言っています。おそらく

java dbaccess

とかやって起動したんでしょ? クラス名は大文字小文字区別するから
ちゃんと合わせないととダメだよ。

443 :441:02/12/18 16:57
あとファイル名の大文字小文字も間違ってるから、Dbaccess.javaにしとけ。

444 :437:02/12/18 17:07
>>441
ありがとうございました。
どうやらCLASSPATHの設定が悪かったようです。
書籍と環境を若干変えてやっていたので、気がつきませんでした。
442さんも参考になりました。
今回は違う原因でしたが、以後は気をつけるようにします。

445 :デフォルトの名無しさん:02/12/18 17:23
java用のコンパイラコンパイラを探しているのですが、javacc というツールの他、cup,jflexというツールを発見しました。
これら二つの間に性能の違いなどはあるのでしょうか?どちらを使うのがベターなのでしょうか?
よろしくおねがいします。

446 :デフォルトの名無しさん:02/12/18 20:47
>>407
そこには気がつかなかった。まだまだ勉強しなければ...
tnx.

447 :434:02/12/18 23:07
>>435
>>436
ありがとうございます。うまくいきました。

448 :デフォルトの名無しさん:02/12/19 00:22
class a
{
pubic static void main(String args[])
{
String str="java";

char ch=str.charAt(2);

System.out.println(str+"の3番目の文字は"+ch+"です");
}
}
どうですか?

449 :デフォルトの名無しさん:02/12/19 11:00
どうでしょう・・・・。
ってなにが?

450 :デフォルトの名無しさん:02/12/19 18:58
Javaに疲れました。
やる気キボンヌ

451 :デフォルトの名無しさん:02/12/19 19:46
 ∬
つ旦

452 :デフォルトの名無しさん:02/12/20 09:28
いただきまーす ズザザザー
 ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (´´
     ∧∧    )      (´⌒(´
  ⊂(゚Д゚⊂⌒ ̄`つ≡≡≡(´⌒;;;≡≡≡
        ̄⌒ ̄  (´⌒(´⌒;;


453 :デフォルトの名無しさん:02/12/20 10:54
茶がぬるい!

454 :デフォルトの名無しさん:02/12/20 23:16
お茶が空中に浮いてるぞ。

455 : :02/12/21 02:27
StrutsのValidaterなんだけど、
Formの複数のプロパティー値を比較して妥当性を検証したい場合は
どうすればいいんでしょうか?

まぁvalidateメソッドに実装するという手もありますが、これは避けたい。

456 :デフォルトの名無しさん:02/12/22 12:01
sが文字列だとして
  if (s != null && s.equals("hoge"))
の代わりに
  if ("hoge".equals(s))
と書くのは読みにくいでしょうか?
特に読みにくいわけでないのなら使いたいのですが

457 :デフォルトの名無しさん:02/12/22 12:07
自分しか見ないソースなら自由に使えばいいし、
複数人で見るソースならその人たちに聞く必要があるだろう。
俺自身は別に問題ないと思うが。

458 :デフォルトの名無しさん:02/12/22 12:08
>>456
俺は、

if(s.equals("hoge")を

「sが"hoge"ならば」

と、読むので

「"hoge"がsならば」

と言うのはどうもなじめないです。


459 :デフォルトの名無しさん:02/12/22 12:10
>>456
それってsがぬるぽのとき例外にならないの?

460 :デフォルトの名無しさん:02/12/22 13:12
>>459
ならないよ。

461 :デフォルトの名無しさん:02/12/22 13:37
いや、ヌルポになるよ。

462 :デフォルトの名無しさん:02/12/22 13:39
すまん、見間違えた。ヌルポにはならない。

463 :デフォルトの名無しさん:02/12/22 14:07
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>459

  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>461

  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>462

464 :459:02/12/22 14:28
(゚∀゚)グッド!

465 :デフォルトの名無しさん:02/12/22 23:13
アプレットを作成しています。ボタンを押したときに次の画面へ遷移する
ようにしたいのですが、どのように書けばいいのでしょうか?ボタンを
押したら、今表示されているボタンをなくして次の新しい画面を表示する
にはどうしたらいいでしょうか?Java歴浅いです。教えていただけ
ませんか。以下のように今書いています。

public class FlowLayoutApplet extends Applet implements ActionListener {
    Button b1,b2,b3,b4;

   public void init(){
    setLayout(new GridLayout(2,2));
    b1=new Button("書籍一覧");
    b1.addActionListener(this);
    add(b1);
    b2=new Button("売上集計");
    b2.addActionListener(this);
    add(b2);
    b3=new Button("発注処理");
    b3.addActionListener(this);
    add(b3);
    b4=new Button("注文受付");
    b4.addActionListener(this);
    add(b4);
   }

   public void actionPerformed(ActionEvent ae) {
   }
}

466 :デフォルトの名無しさん:02/12/22 23:16
>>465
Stateパターンを使えってんだろぼけぇ!

467 :デフォルトの名無しさん:02/12/23 00:28
>>465 次の画面とは何でしょうか?次のURL?

468 :465:02/12/23 00:37
>>467
次の↓のような画面です。465で書きました「書籍一覧」ボタンを押したら
以下の画面を表示させるにはどうしたらいいのでしょうか?

class SecondScreen extends Applet {
  public void init() {
    setLayout(new GridLayout(1,2));
    Button c1=new Button("洋書");
    add(c1);
    Button c2=new Button("和書");
    add(c2);
  }
}

469 ::02/12/23 00:55
こんな所からすいませんが、ちょっと教えてください。
セキュリティガードというのは、fusianasan と名前欄に書いて書き込むといいんですか?
でもそれを書くとIPアドレスが出てしまうんですが。
本当にこれで大丈夫なんでしょうか?

470 :デフォルトの名無しさん:02/12/23 01:12
>>469
ああ。本人確認のため、君以外の環境からは見えてないから心配はいらない。

471 ::02/12/23 01:20
それでは他のひとの目にはなんて名前ででるんですか?

472 :デフォルトの名無しさん:02/12/23 01:21
>>471
名前欄に何も書かないのと同じ状態。名前を強制される板では_になる。

473 :デフォルトの名無しさん:02/12/23 01:24
>でもそれを書くとIPアドレスが出てしまうんですが。
もう手遅れっぽい。哀れ。

>>468
2つの画面の土台となるクラスを作る。
土台となるAppletクラスは、レイアウトをCardLayout辺りにして、
ActionListenerもimplementsしておこう。
ボタンを押すアクションを捕らえたら、その土台のAppletクラスで、
次の画面に変えてあげましょう。

(゚∀゚)委譲を使うとStateパターンっぽくできそう。この展開を読むとは、やるな>466

474 ::02/12/23 01:30
473さん、どういうことですか?
だまされてるんですか?
初心者なんですよ。教えてください。



475 :465:02/12/23 02:12
>>473
>ボタンを押すアクションを捕らえたら、その土台のApplet
>クラスで、 次の画面に変えてあげましょう。
レスありがとうございます。この次の画面に変える処理というのは
どうやってやればいいのか教えていただけませんか。
↓のように捕らえることはできましたが、ここからどうやって画面を
切り替えたらよいのかわかりません。ご教授していただけませんか。

public void actionPerformed(ActionEvent ae) {
    if(ae.getSource()==b1) {
SecondScreen ss=new SecondScreen();
    }
}

476 :デフォルトの名無しさん:02/12/23 05:08
>>475
人の話を聞かないタイプですね。嫌われますよ。

477 :デフォルトの名無しさん:02/12/23 07:52
>>474
みんな答えてくれてないので、マジレスを・・・

それは、確認&個人情報保護をするもので、fusianasanと書くことによって、
個人情報がサーバ側で完全に保護されます。
住所などを特定の人だけに公開する事も可能です。

ためしにメール欄にfusianasanと書いて、本文に自分の住所や電話番号を書いて投稿して見て下さい。
投稿したPCのIPだとそれが見えるのですが、串を通して見るとその部分が抜けて空白になっているのがわかります。
但し、自分の住所や電話番号でしか空白にならないので、違う人の住所を書くと、
不特定多数の人にその住所が見れてしまい、場合によってはタイーホになるので注意してください。

で、一度でも上記の方法で名前、住所、電話番号を投稿すれば、サーバ側でそのデータが保護され、次からはfusianasanと記入しなくても自動的に保護されます。
2ちゃんねるを見るのなら、常識ともいえる手法です。
アダルト板なんかに行くと、IDとして自分のIPが特定の文字列に置き換えられて表示されますね!
そのIDから個人情報が盗まれる事件が起きてこのような機能が追加されたのです。
サーバ側に保護命令をだしておいたら、IDから個人情報が盗まれる心配もありません。

っていうか、俺だったら保護されてなかったら怖くて2ちゃんなんかに来れないよ・・・




478 :デフォルトの名無しさん:02/12/23 08:04
↑失礼!
「メール欄」じゃなくて「名前欄」だ・・・
メール欄に書いても意味ねーや・・・
個人情報丸晒しになっちゃう・・・

早く気づいてよかった・・・

479 :デフォルトの名無しさん:02/12/23 08:17
>>477
>>474みたいなアホに親切にしても何もいい事ねーよ。
マジレスすんなボケ。ほっとけ。

480 :デフォルトの名無しさん:02/12/23 12:02
串って何ですか.

481 :デフォルトの名無しさん:02/12/23 12:04
>>480
36

482 :デフォルトの名無しさん:02/12/23 12:34
>>474は既にIP抜かれてアポーンしているかもしれんが、新たな犠牲者製造すんなよ。>>477-479


483 :デフォルトの名無しさん:02/12/23 13:07
>>482
>既にIP抜かれてアポーン

で、IPアドレスごときで何が出来るって?

484 :デフォルトの名無しさん:02/12/23 13:58
>>483には何もできないが、なにか?

485 :デフォルトの名無しさん:02/12/25 00:05
>>480
日本語読めますか?↓
【初心者】Java質問・相談スレF【大歓迎】

486 :デフォルトの名無しさん:02/12/25 06:08
>>485
初心者・・・大歓迎。

487 :デフォルトの名無しさん:02/12/26 00:41
97 =a
98 =b
のように文字を数字(10進)
またはその逆をするにはどうしたらいいのでしょうか?

488 :デフォルトの名無しさん:02/12/26 00:45
>>487
int num = 'a';
char ch = (char)num;


489 :デフォルトの名無しさん:02/12/26 01:04
// int num , String str
str = Integer.toString(num, 10);
num = Integer.parseInt(str, 10);

490 :デフォルトの名無しさん:02/12/27 01:54
リフレクトとセキュリティーapiで
privateのフィールドを操作できるようなことを
以前聞いた事があるのですが、具体的な方法が分りません。
教えていただけないでしょうか。

491 :デフォルトの名無しさん:02/12/27 02:48
>>490

import java.lang.reflect.*;
public class test{
 public static void main( String[] args ) throws Exception {
  Class hogeClass = Class.forName( "hoge" );
  Field hoe = hogeClass.getDeclaredField( "hoe" );
  hoe.setAccessible( true );
  hoge h = new hoge();
System.out.println( "hoe " + h.getHoe() );
  hoe.setInt( h, 12 );
System.out.println( "hoe " + h.getHoe() );
 }
}
class hoge{
 private int hoe;
 public int getHoe(){ return this.hoe; }
}

セキュリティAPIの使い方はよー知らんけど
hoe.setAccesible( true ) で SecurityException 食らった場合に
セキュリティ API が関係するんじゃないっすかねぇ?

492 :デフォルトの名無しさん:02/12/27 11:39
JAVAを勉強中のものです。
XMLについて質問です。
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
public class HelloWorldXSLT {
public static void main( String[] args) {
try {
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer =
factory.newTransformer(new StreamSource("helloworldxslt.xsl"));
transformer.setOutputProperty("encoding","Shift_JIS");
transformer.transform(new StreamSource( "helloworldxslt.xml"),
new StreamResult(System.out));
} catch(Exception e) {e.printStackTrace();}}}
にてXMLファイルの変わりに
static String xmlData = "<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>
<xsl:stylesheet xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" version=\"1.0\"><xsl:template match=\"/\"><html><head><title>Hello World</title></head><body><h1>XSLTでHello World</h1>
<table border=\"1\"><tr><td>NO</td><td>言語</td>
<td>メッセージ</td></tr><xsl:for-each select=\"data/item\">
<tr><td><xsl:value-of select=\"no\"/></td><td>
<xsl:value-of select=\"lang\"/></td><td>
<xsl:value-of select=\"message\"/></td></tr></xsl:for-each></table>
</body></html></xsl:template></xsl:stylesheet> ";
というデータを渡してHTMLを出力したいです。
いろいろやってみたのですが浅学ゆえ分かりません。
何か良い方法はないでしょうか?

493 :492:02/12/27 11:43
xmlData部分を間違えました。すみません。
正しくは

static String xmlData = "<?xml version=\"1.0\" encoding=\"Shift_JIS\" ?>
<data><item><no>1</no><lang>日本語</lang>
<message>こんにちわ 世界</message></item><item><no>2</no>
<lang>英語</lang><message>Hello World</message></item>
</data>";

です。

494 :デフォルトの名無しさん:02/12/27 11:45

System.out.println(>>492-493);


495 :デフォルトの名無しさん:02/12/27 12:03
>こんにちわ 世界
って電波ですか?

496 :デフォルトの名無しさん:02/12/27 12:29
>>495
ワラタ。

497 :(´・ω・`):02/12/27 16:15
class shobon
{
public static void main(String args[])
{
System.out.println("(´・ω・`)ショボーン");
}
}
どうですか?

498 :デフォルトの名無しさん:02/12/27 16:42
>>497
public classにした方が平和で良いよ。

499 :デフォルトの名無しさん:02/12/27 19:51
つかえねーな、ここ。

500 :デフォルトの名無しさん:02/12/27 20:19
>>492
ドキュメントをあさると吉。
もう読んだ。でもわからんとか言うなよ。

501 :デフォルトの名無しさん:02/12/27 20:28
>>499
まぁ廃棄スレだし。

502 :492:02/12/28 00:53
>>500
ドキュメントはあさった。そんな例は見あたらなかった。
PHPとかPerlならこんなの簡単にできるんだけどな。

503 :デフォルトの名無しさん:02/12/28 02:21
APIのjavadocもマトモに読めない奴がえらそうだなオイ(ワラ

transformer.transform(new StreamSource(new StringReader(xmlData)),
new StreamResult(System.out));

504 :503:02/12/28 02:26
Javaのプログラム内部でXML文字列を直書きするって、すごい
馬鹿なことだということは、覚えておいた方がよし。

505 :デフォルトの名無しさん:02/12/28 03:14
>>503で偉そうに言ってた割には大した事ないみたいだね。
>>504書かなきゃ良かったのに(プ

506 :デフォルトの名無しさん:02/12/28 03:46
>>504
それいっちゃJSP内にスクリプトレット埋め込むのも、
Servlet内にHTMLタグ入れるのも馬鹿になっちまう。
最近はstrutsやJSPカスタムタグライブラリがあるからどうにかなるけど。

507 :デフォルトの名無しさん:02/12/28 03:58
好意的に解釈するなら、直書きは隠蔽すべし。ともとれるかな

508 :デフォルトの名無しさん:02/12/28 04:25
>>503=>>504=>>507

509 :デフォルトの名無しさん:02/12/28 05:52
>>508
いちいち書かなくてもみんな分かってるよ。

510 :デフォルトの名無しさん:02/12/28 10:15
>>507
だな。

511 :リナ:02/12/29 00:00
下記の場所に魚が泳ぐアプレットを置いておきました。
これをアプリケーションとしても実行できるように変えたいでのですが
どなたか教えていただけないでしょうか?
http://www2u.biglobe.ne.jp/~xelloss/fish.lzh
分かりましたら、javaのソースをUPしていただけたら幸いです。
どうかよろしくお願いします。。

512 :デフォルトの名無しさん:02/12/29 00:32
>>511
氏ね

513 :デフォルトの名無しさん:02/12/29 00:47
>>511
このスレでは、長そうなソース、手間のかかる事は
嫌われる傾向があるような気がする。なんとなく。
こうやったけどできなかった、どうすればいい。とか、
これってどうやんの。ってな質問に変えてくれる?



514 :デフォルトの名無しさん:02/12/29 01:14
>>511
FishApplet の中に以下のメソッドを追加してコンパイル、java FishApplet
で起動すると NullPointerException が出るので後は自分で何とかせれ。
アプリケーションで getDocumentBase() や getCodeBase() は使えない
(AppletStub 作ればできない事はないが説明すんのめんどくさい)。

public static void main(String[] args){
  final FishApplet a = new FishApplet();
  final Frame f = new Frame("Fish");
  f.setLayout(new BorderLayout());
  f.add("Center", a);
  f.pack();
  f.show();
  a.init();
  a.start();
  f.addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e){
      a.stop();
      a.destroy();
      f.dispose();
      System.exit(0);
    }
  });
  return;
}


515 :492:02/12/29 23:13
>>503
多謝多謝。動きました。
XML文字列でやろうと思ったのは
データベースから取り出した結果をXMLデータにして
XSLファイルをテンプレート的に使いたかったから。
ソース内にHTMLタグを書き込むのはどうも抵抗があるもので。

516 :デフォルトの名無しさん:02/12/31 23:33
今年イチネンたくさんお世話になりありがとうございました。
来年も宜しくお願いします。

517 :デフォルトの名無しさん:03/01/03 23:41
保全あげ

518 :デフォルトの名無しさん:03/01/04 00:17
JAKARTAのECS(Element Construction Set)使っている人っている?
これってJAXPとかとどう違うの?...っていうか、
「JAXPはXML、ECSは汎用」ってだけの違い、なの?


519 :デフォルトの名無しさん:03/01/05 18:45
Stringがどのエンコードかを調べるにはどうすればいいんでしょうか?

具体的にはShift_JIS、EUC混じりのファイル名をディレクトリ単位で取得して
そのファイル名がShift_JISならEUCに変換したいんです。
よろしくお願いします

520 :デフォルトの名無しさん:03/01/05 18:55
>>519
Stringは一律unicodeでは?

521 :デフォルトの名無しさん:03/01/05 19:14
Stringになった時点でunicodeになってる。
つまり元の文字コード情報は失われてる。

> 具体的にはShift_JIS、EUC混じりのファイル名

JNIつかって直アクセスしないと無理っしょ...

522 :519:03/01/05 19:37
そうなんですか。
ありがとうございました。

523 :デフォルトの名無しさん:03/01/05 19:42
>>521
JNI 使って何にアクセスすれば「元の文字コード情報」が判るんで?

524 :デフォルトの名無しさん:03/01/05 20:40
>>521
え?
>Stringになった時点でunicodeになってる。
>つまり元の文字コード情報は失われてる。

どうやってさ。どうやって元の文字コードから、勝手に同じ文字シーケンスの
Unicodeエンコード文字列に変換できるんだYO。そんな機能があったら複数の
エンコードの共存ができないだろ。
ていうか、文字って言ったって、中身はただのバイト配列なんだから...

例えばソースとなる文字列が"MS932"で、それを Stringにしたとしても、
「Unicodeとしてはバケてて読めない文字」だが「MS932としては同じバイト列」なんじゃないの?
勝手に失わせるな。

525 :524:03/01/05 20:47
>>523
>JNI 使って何にアクセスすれば「元の文字コード情報」が判るんで?
関係無いと思う。
ていうか、文字のエンコードっていうのは、ただのバイト列を「と、みなす」と
しているだけなので、そんな「ただのバイト列」である文字をマシン側からは
「人間はこれをどう読んでいるか」判定する事はできない。(※1)

強いて言うならあらかじめエンコードの違う文字列のファイル別にフォルダを分けて、
それぞれのファイル名を取得する際に、
「このフォルダ以下はShift_JIS」とか「ここはISO-8859-1」とか意識して、

File fFoo = {どこぞのフォルダの某ファイル};
String sName = new String(fFoo.getName().getBytes(),"ISO-8859-1");
とかエンコード掛けなおしてから、また新たに文字シーケンスを構築して、
リネーム汁。

※1・どこかに「このファイルの名前のエンコードはアレです」って情報があれば、
   それを取り出して使えばいい。


526 :524:03/01/05 20:51
>>524 自己レス・補足

>どうやってさ。どうやって元の文字コードから、勝手に同じ文字シーケンスの

例えばその文字列がただのバイト列(byte[])としてあった場合、それを、

String sBar = new String(バイト列);

のようにして文字シーケンスに変換した場合は、「プラットフォーム固有の」
エンコードによって処理される。

527 :デフォルトの名無しさん:03/01/05 20:56
>>526
ついでに言うと、「これからそのシーケンスにエンコードされる」文字が、
もし、そのエンコードの「面」になかった(文字自体が定義されてなかった)場合、
Stringになった時点で"?(という文字)"になってしまいます。

528 :デフォルトの名無しさん:03/01/05 20:58
>>524
バカ発見。と。

529 :デフォルトの名無しさん:03/01/05 21:00
>>528
ホントだ。オマエガナー。

530 :521:03/01/05 21:00
こりゃまた粘着に絡まれちゃった(;´Д`)
519さんの目的は文字コードの変換なのに・・・(;´Д`)

531 :デフォルトの名無しさん:03/01/05 21:01
文字のエンコードって、誤解している香具師が多いね。

532 :デフォルトの名無しさん:03/01/05 21:04
>>530
え? >>521-527 の言ってる事で正しいんじゃないの?
漏れも間違ってる?
漏れ仕事でJavaApサーバ使ったシステム構築やったけど、その辺結構慎重に調べたよ。

533 :521:03/01/05 21:06
>>530
>>519は、

>具体的にはShift_JIS、EUC混じりのファイル名をディレクトリ単位で取得して
>そのファイル名がShift_JISならEUCに変換したいんです。

って言ってるから、先のように答えたんだが。

534 :523:03/01/05 21:06
>>521
あ、うにこーどにする前のファイル名をJNIで取ってくるのか。

ファイル名のエンコーディングって "file.encoding" だっけ?

でも EUC/SJIS.txt みたいなメチャクチャなパスだと大変そうだね。
JISAutoDetectみたいな漢字コード自動判定も短い文字列だと誤判定多そうだし。

535 :デフォルトの名無しさん:03/01/05 21:07
って言うかそんな環境依存丸出しのコードわざわざjavaで書かんでも。

536 :デフォルトの名無しさん:03/01/05 21:09
っつーか、一つのファイルシステムに SJIS と EUC を共存(?)させるような無茶した時点でアレなわけで…
どの言語でもイヤな処理だと思われ…

537 :521:03/01/05 21:10
> うにこーどにする前

ポイントはそこです。だからJNIせざるを得ない。
今ちょっと見たけど生ファイル名をバイト列で取り出す方法は
無いみたいね。

538 :521:03/01/05 21:10
>>536
ぶっちゃけ、そう言われてしまえばそうなんだが...(笑

539 :デフォルトの名無しさん:03/01/05 21:13
>>537
file.encoding でエンコードされてんだったら
file.encoding に ISO-8859-1 指定するとか出来るかも?

540 :521:03/01/05 21:16
>>539
519が想定している状況では複数のエンコーディングが混ざってるのよ。
java.io.Fileってそれを扱えたっけ?

541 :デフォルトの名無しさん:03/01/05 21:16
なんでAPIをオーバライドするっていう発想が無いのでつか。>537



542 :521:03/01/05 21:17
>>541
おお、そんな方法があるのですか。教えてください。

543 :デフォルトの名無しさん:03/01/05 21:18
>>541
で、どうやるの?できるの?そんなこと。

544 :デフォルトの名無しさん:03/01/05 21:18
でも環境依存バリバリならそれが動くプラットフォームもガッチリ固定だから、
JNI使ってもバチは当たらないかも。

Write once , Run only here.

545 :524:03/01/05 21:21
失礼、間違えた。>>533 は俺。>>521では無い。

で、>>541 あのな、別に継承するのはいいんだが、java.io.Fileのソース見たか?
全部書くのか?お前。

546 :デフォルトの名無しさん:03/01/05 21:23
っつーか、メソッドのオーバーライドで解決するような問題とも思えないんだけど…

547 :デフォルトの名無しさん:03/01/05 21:26
安直なJNIによる解決の前に、もっと他にできないかって考えるのが大事でつ。

548 :521:03/01/05 21:28
生バイト列でのファイル名でアクセスができればいいんだけど、
現状では用意されていないように思える(ちゃんと調べてない)

541は結局手順を示さないし、ネタっぽいですね・・・がっかり。

549 :デフォルトの名無しさん:03/01/05 21:32
>>547
で、クラスライブラリのソース改造か、おめでたすぎるが。


550 :デフォルトの名無しさん:03/01/05 21:42
ファイル名程度の長さで Shift_JIS かどうかをきちん判別できるっけ?
結構失敗しそうだが。

551 :デフォルトの名無しさん:03/01/05 21:44
うにこーどに変換しないだけなら >>539 でいけそうかも…
jdk1.4 のソースしか調べてないけど。

っつーか new String(byte[]) って毎回 System.property の file.encoding チェックしてるみたいなんだけど…
そーゆーモンなんだろうか?(ちゃんと PrivilegedAction と AccessContoroller.doprivileged() 使ってるし…)

552 :デフォルトの名無しさん:03/01/05 21:46
>生バイト列でのファイル名でアクセスが
そもそもシステム標準でないエンコーディングのファイル名なんてあるの?
普通に文字化けしてるハズじゃん

553 :デフォルトの名無しさん:03/01/05 21:47
>>550
せめて JIS と SJIS とか JIS と EUC とかだったら何とかなるような気もするけど…

554 :デフォルトの名無しさん:03/01/05 21:58
>>552
そもそも以下略は519に言ってあげて頂戴よ

555 :デフォルトの名無しさん:03/01/05 22:00
>>551
> うにこーどに変換しないだけなら >>539 でいけそうかも…
ディレクトリ内のファイル一覧をgetするときに
ファイル別に指定できるの?

556 :デフォルトの名無しさん:03/01/05 22:05
>>555
ファイル別に何を指定するんだろ?

557 :デフォルトの名無しさん:03/01/05 23:05
import java.io.*;

/*
* >>539 さんの云うとおりに組んでみた。
* linux の e2fs 環境で動かしてみたら上手くいったYO!
* "あいうえお"というファイルが
* ?¢?????¨??: \ua4\ua2\ua4\ua4\ua4\ua6\ua4\ua8\ua4\uaa
* てな具合に表示されますた。EUC の生コードが出てるみたいですね。
*/

public class ListNativeFiles {
  public static void main(String[] args) {
    System.setProperty("file.encoding", "ISO-8859-1");
    File f = new File((args.length < 1) ? "." : args[0]);
    String[] list = f.list();
    for (int i = 0; i < list.length; i++) {
      String s = list[i];
      System.out.print(s + ": ");
      for (int j = 0; j < s.length(); j++) {
        System.out.print("\\u" + Integer.toHexString(s.charAt(j)));
      }
      System.out.print('\n');
    }
    System.exit(0);
  }
}

558 :デフォルトの名無しさん:03/01/05 23:25
IEやOperaネットやっててjavaを含むウインドウが開けなくなってしまいました。
全くのパソコン音痴なので原因がサッパリわかりません。PCを再セットアップするしかないんでしょうか?

厨な質問で申し訳ないんですがどなたか解決方法を教えてください。おねがいします

559 :デフォルトの名無しさん:03/01/05 23:29
◆◇◆◇◆最新情報◆◇◆◇◆
http://yahooo.s2.x-beat.com/linkvp/linkvp.html


560 :デフォルトの名無しさん:03/01/05 23:29
>>558
板違い

561 :デフォルトの名無しさん:03/01/05 23:57
IBMのライブラリで、文字コード系のライブラリがあったような気がするぞ。

562 :デフォルトの名無しさん:03/01/06 00:56
Java初心者です。
やや趣旨からズレてしまうかも知れないですがよろしくお願いします。

CLASSPATHを通してjavaコマンドで実行をすることに成功しました。
ですが、この状態ではjavacへのPathが通っていないようです。
win2000を使用しているのですが、javacでPathを通すための変数は何処になるのでしょうか?

563 :デフォルトの名無しさん:03/01/06 00:58
>>562
ちゃんと再起動したかい?

564 :デフォルトの名無しさん:03/01/06 00:59
>>562
はい、再起動を行いjavaでのPathは通るようになりました。

565 :デフォルトの名無しさん:03/01/06 01:07
インストーラがなにもかもやってくれなかったのかな。
ごめん、よくわからない…。

566 :デフォルトの名無しさん:03/01/06 01:07
>>562
コンパネの「環境」にパスを通すところがあったはず。確か。
多分、今はJREにしかパスが通っていないんだろう。
JDKのbinディレクトリにパスを通すべし。
ちなみに再起動しなくても、新しいコンソール開けば大丈夫だよ。

567 :デフォルトの名無しさん:03/01/06 01:09
>>566
神!

568 :デフォルトの名無しさん:03/01/06 01:12
javaの参考書で疑問があったので宜しくお願いします
import java.io.*;
class sample7
{
  public static void main(String args[])throws IOException
  {
  System.out.println("あなたは男性ですか?");
  System.out.println("YまたはNを入力してください。");
  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
  String str=br.readLine();
 →char res=str.charAt(0);
  if(res=='Y'||res=='y'){
  System.out.println("あなたは男性ですね。");
  }
  else if(res=='N'||res=='n'){
  System.out.println("あなたは女性ですね。");
  }
  else{
  System.out.println("YかNを入力してください。");
  }
  }
}
上記でCompileできたんですが
矢印の部分を「char res=str」に置き換えてもいけるんじゃないかと
思ってやってみたら、コンパイルできません。
入力時はたとえ数字だとしても、文字としての数字なんですよね?
strには文字列が格納されていて、charってのは一文字しか入らないから?
誰か理由をお願いします。

569 :デフォルトの名無しさん:03/01/06 01:15
>>568
resはchar型の変数。
strはString型の変数。
代入できないのはあたりまえ。

570 :デフォルトの名無しさん:03/01/06 01:16
>>566
ありがとうございました。
自分の質問の日本語におおきな誤りがあったようです。
正しくは「javacを任意のフォルダへ通す方法」を聞きたかったようです。
日本語すらできない奴がプログラム言語っておかしいですね。出直してきます。

win2000ではコンパネ→システム→詳細→環境変数でPathの設定ができました。

571 :デフォルトの名無しさん:03/01/06 01:20
>>570
「任意のフォルダへ」ってどういうこと?
とりあえず、javacはJDKをインストールしたフォルダの、
binディレクトリを探して、そのフォルダをPath環境変数にくっつけて
みれば出来ると思うよ。
場所が分からなければ、「javac」というファイルを検索してみよう。

572 :571:03/01/06 01:25
ふと思ったんだけど、ひょっとして
javacコマンドが実行できないんじゃなくって、
javacするときにクラスパスが通っていないってことを言いたかったの?

573 :MVC ◆J2EE/XIRXY :03/01/06 01:26
>>569
×  strはString型の変数。
○  strはStringクラスのメゾッド。

Javaには、文字列を扱うデータ型はネーヨ!ボォケ!

574 :573:03/01/06 01:27
鬱だ・・・
トリップさらしてしまった・・・

575 :デフォルトの名無しさん:03/01/06 01:29
>>571
javaファイル作成後classファイルの生成までは上手くできたのですが、
毎回それらのファイルが保存されているディレクトリへ移動してコンパイル、
実行することが面倒なのでどこかの変数にディレクトリのPathを通し、一々cdコマンドを使わないで
javac hoge.java
としたかっただけです。本当にお騒がせしました。

576 :デフォルトの名無しさん:03/01/06 01:32
>>575
なるほどね。
javac -sourcepath (パス名) hoge.java で出来たと思うよ。
詳しくはJDKのコマンドリファレンスを見てね。

577 :デフォルトの名無しさん:03/01/06 01:34
>>573
とりあえず、煽りが目的ってことでよろしいですか?

578 :デフォルトの名無しさん:03/01/06 01:35
>>575

EclipseかJcPad使えよ、タコォ

579 :MVC ◆J2EE/XIRXY :03/01/06 01:36
>>573

おっけーです。

580 :569:03/01/06 01:38
>>579
じゃ、まー適当に煽ってスレを盛り上げてください。
おいらはもう寝ます。おやすみ。

581 :デフォルトの名無しさん:03/01/06 08:53
>>557
あ、ちなみに今回は上手くいったみたいだけど
ファイルシステム自体が うにこーど でファイル名持ってる場合は
System.setProperty("file.encoding", "ISO-8859-1");
しても無意味っぽいので。
WinNT系とかで NTFS 使ってる場合とか(?) (MacOSXも(?))

WinNTでFTPサーバやら作ったとき
EUC やら SJIS やらの日本語ファイル名流れてきたらどーしてんだろ?
ま、スレ違いだし どーでもいっか。

582 :デフォルトの名無しさん:03/01/06 09:33
>>581
それはOSの仕事。
だいたい俺はファイル名がバケてるの、見たこと無い。


583 :デフォルトの名無しさん:03/01/06 09:50
訳あって、JAVAを勉強しなくてはならなくなってしまった
のですが、なにから初めていいのかサパーリわかりません。
まったくの初心者なんです。

独学でのお勧めの勉強方法や、本などをを教えてください。



584 :デフォルトの名無しさん:03/01/06 10:43
やだ

585 :デフォルトの名無しさん:03/01/06 10:53
>>583
結城本上下と独習Java、あとはAPI

586 :デフォルトの名無しさん:03/01/06 12:06
>>582
OS の仕事でもないよーな気がするけど。

案外皆してそーやって自分の責任じゃない、
って言ってると >>519 みたいな事態になるのかも。

587 :デフォルトの名無しさん:03/01/06 13:17
アドバイスお願いします。
//サーバーに値を送る
Socket s=new Socket(server,port);
BufferedWriter out=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
out.write(10);
out.close();

//サーバーからの値を読み取る
InputStream is=s.getInputStream();
DataInputStream dis=new DataInputStream(is);
int value=dis.readInt();
System.out.println(value);

s.close();
というのがクライアント側の処理で

588 :デフォルトの名無しさん:03/01/06 13:20
//クライアント側からの値を読み取る
BufferedReader in=new BufferedReader(new InputStreamReader(incoming.getInputStream()));
boolean done=false;
String line=null;
String value=null;
while(!done){
line = in.readLine();
if(line==null){
done=true;
}
else{
value=line;
}
}
a=Integer.parseInt(value);
a=a+5;
//クライアント側に処理した値を送る
OutputStream os=incoming.getOutputStream();
DataOutputStream dos=new DataOutputStream(os);
dos.writeInt(a);

incoming.close();
これがサーバー側の処理なのです。
で、最後のwriteIntのところだと思うのですが
java.net.SocketException: Connection reset by peer: socket write error
のエラーが出てしまいます。何処らへんが原因なのでしょうか?
よろしくおねがいします。

589 :デフォルトの名無しさん:03/01/06 14:22
>>588
考えられる問題は二つ。
ひとつはネットワークなどの問題。(LANケーブルが抜けたとかそういう類のやつね)
ふたつはプログラム自体の構造的な問題。

>>587-588の断片的なソースだけではなんとも申し上げられませんが、、
おそらく後者の問題なのではないかと。

590 :デフォルトの名無しさん:03/01/06 15:14
javaのプログラムの実行時間を計りたいと考えています。
コマンドラインから起動した場合には、
time java プログラム名
で問題ないのですが、ブラウザから起動するサーブレット
の場合はどうすればよいのでしょうか?

わかる方がいましたらよろしくお願いします。

591 :デフォルトの名無しさん:03/01/06 16:31
アプレットでユーザ認証用のウィンドウを作成しています。
Web でよくみられるログイン画面のように、テキストフィールドに入力する文字列を
アスタリスクで表示するには、どのようにすればよいのでしょうか?

592 :デフォルトの名無しさん:03/01/06 16:32
開始時と終了時に java.util.Date() して差を取れ。

593 :デフォルトの名無しさん:03/01/06 16:33
>>591
setEchoChar

594 :デフォルトの名無しさん:03/01/06 16:36
アプレットでユーザ認証用のウィンドウを作成しています。
テキストフィールドに入力された文字を、実際の文字でなくアスタリスクで表示する
にはどのようにすればよいのでしょうか?

595 :デフォルトの名無しさん:03/01/06 16:43
メディアプレーヤーで、unyounyo.mp3ファイルをおよそ10分置きに再生する。
そんなプログラムはJAVAで書けないでしょうか?

596 :デフォルトの名無しさん:03/01/06 16:48
java.util.Timer と java.lang.Runtime.exec

597 :デフォルトの名無しさん:03/01/06 17:04
>>592 System.getCurrentTimeMills() のほうがいいんじゃないか?

598 :デフォルトの名無しさん:03/01/06 17:09
>>590
> で問題ないのですが、ブラウザから起動するサーブレット
> の場合はどうすればよいのでしょうか?

コマンドライン云々と言っているからにはServletに使い慣れていないように見えるのだが。
Servletプログラム動かせる?
コンテナはTomcat?
Servletコンテナ起動していれば、時間を測定するコンパイルしたServletを置いた所定のURIのページを
ブラウザで見るだけで確認できます。
Servletやるならまず先にJSPからユーティリティクラス(自作ライブラリ)を呼び出した方が簡単だと思うんだが。


599 :デフォルトの名無しさん:03/01/06 17:11
>>597
そだね。書いてからそう思った。

600 :デフォルトの名無しさん:03/01/06 17:27
>596たん
>java.util.Timer と java.lang.Runtime.exec
実際どう書くんです?
おしえてぽ。

601 :デフォルトの名無しさん:03/01/06 20:06
すいません今現在ZIP圧縮についてやっているのですが
圧縮についてはうまくいったのですがCRCを要求する解凍ツールにて
解凍をするときにエラーを出してしまいうまくいきません。
java.util.zip.crc32を使用してCRCをセットするようなのですが
セットをする時に
・圧縮前のサイズ
・CRC
・圧縮後のサイズ
が揃っていないとZipEntryに書き込みができませんが、
圧縮後のサイズというのはどのように取得すればよいのでしょうか?

JavaHouseやAPI等もみたのですがわからずに困っています
是非分かる方よろしくお願いします。

602 :601:03/01/06 20:08
すいませんソースです。
try {
File readfile = new File( "c:/CM0001_download.csv" );
File zipFile = new File( "c:/CM0001_download.zip" );

BufferedInputStream bis = new BufferedInputStream( new FileInputStream( readfile ) );
ZipOutputStream zos = new ZipOutputStream( new FileOutputStream( zipFile ) );

ZipEntry entry = new ZipEntry( readfile.getPath() );
zos.putNextEntry( entry ); // entry の書き込み開始

byte buf[] = new byte[1024];
int count = 0;

while( ( count = bis.read( buf, 0, 1024 ) ) != EOF ) {
zos.write( buf, 0, count );
}

bis.close();
zos.closeEntry(); // entry の書き込み終了
zos.close();
}

もしよろしかったらどこにどのように組み込めば
いいか教えて頂けると幸いです・・・

603 :デフォルトの名無しさん:03/01/06 21:16
タブでフォーカスを移動したいのですが、
TextAreaでタブキーを押すと、インデントしてしまいます。
どうすればフォーカス移動できますか?

また、親フレームから子フレームを呼ぶと、
子フレームのほうにフォーカスが出てこないので、
親の方で、childclass.textarea.requestFocus();みたいなことをやって
フォーカスを得ているのですが、皆さんはどうやってますか?

アドバイスお願いします。

604 :デフォルトの名無しさん:03/01/06 21:59
JavaでFlameを使って書いてあるプログラムから、
JavaScriptに情報を送りたいのですがどうしたらいいでしょうか?

605 :KM1:03/01/06 22:50
JDBCを使用して、サーバ(Oracle)からデータを取得し、表示するいうごく簡単なSwingプログラムを作りました。 
表の内容は「NO」「MNAME(メンバー名)」「AGE」の3項目から成り立っています。
データの検索や行の挿入などの付加機能は簡単につけられたのですが、このメンバーを次々と表示するためにNO(ナンバー)で昇順に並び替えました。
押すたびに次のデータが1,2,3...と一件ずつ表示される「Next」と、その逆の「Back」ボタンです。 
ところが何度やってもSQLで全件取得したResultSetであるG_RSがNO.10までのデータしか取得できていません(それ以降を実行しようとするとエラーがcatchされる)。 
ソースではResultSetをわざわざ2つ使っていますが、ひとつでスマートにしようとするとなぜかアドレスと思われる長い数字がドッと表示されるだけなのです……。 どなたか原因が分かる方がいらっしゃいましたらよろしくお願いします……。

606 :KM2:03/01/06 22:54
public class DBSwing extends JFrame implements ActionListener{

  static JTextField text1;
  static JTextField text2;
  static JTextField text3;
  static Statement I_stmt;
  static Statement S_stmt;
  static Statement G_stmt;
  static ResultSet G_RS;
  static ResultSet RS;
  static String G_sql = "";
  static Connection connection;
  static String I_sql = "";
  static String S_sql = "";
  static String S_num = "";
  static String S_age = "";
  static String mnam = "";
  static int I_num = 0;
  static int I_age = 0;

  public static void main(String[] args) throws SQLException{
  /* 自分自身を作成(ルーチン呼び出し) */
  DBSwing wndw = new DBSwing();

607 :KM3:03/01/06 22:56
 try{
    //Thin Driverを用いた接続を行う。
    connection=DriverManager.getConnection("接続情報");
    G_stmt = connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
    G_stmt.setMaxRows(99);
    G_sql = "SELECT NO,MNAME,AGE FROM MEMBERS ORDER BY NO";
    G_RS = G_stmt.executeQuery(G_sql);
    }catch(SQLException err){
      System.exit(1);
    }

    /* 終了処理を追加 */
    wndw.addWindowListener(new WindowAdapter(){
      public void windowClosing(WindowEvent e){System.exit(0);}
    });

    /* ウィンドウサイズと位置を指定 */
    wndw.setBounds( 50, 50, 400, 350);

    /* 実際に表示する */
    wndw.setResizable(false);
    wndw.setVisible(true);
    }

    DBSwing(){
      /*フォントを設定する*/
      Font fnt = new Font("Serif", Font.PLAIN , 13);

608 :KM4:03/01/06 23:02
      /* テキストラベルを作成(略) */
      /* テキストフィールドを作成。 3つあり、上からNO,MNAME,AGE */
      text1 = new JTextField("", 15);
      text1.setHorizontalAlignment(JTextField.LEFT);
      text1.setFont(fnt);

      text2 = new JTextField("", 15);
      text2.setHorizontalAlignment(JTextField.LEFT);
      text2.setFont(fnt);

      text3 = new JTextField("", 15);
      text3.setHorizontalAlignment(JTextField.LEFT);
      text3.setFont(fnt);

/* ボタンを作成 (ボタン3は略)*/
      JButton btn2 = new JButton("前のデータ");
      btn2.setPreferredSize(new Dimension(100,30));
      btn2.addActionListener(this);//アクションイベント
      btn2.setActionCommand("back");

      Border border2 = new BevelBorder(BevelBorder.RAISED);
      btn2.setBorder(border2);
      btn2.setFont(fnt);


609 :KM5:03/01/06 23:04
  public void actionPerformed(ActionEvent e){
  /* ボタンが押された時の処理を書く("next"も略したけど、本当はあり) */
  String action = e.getActionCommand();
if(action.equals("back")){//ボタン2
boolean b_tf = DBSwing.c_back();
if (b_tf = false)
System.out.println("falseでした →" + b_tf);
}
public static boolean c_back(){
try{
S_num = text1.getText();
I_num = Integer.parseInt(S_num);
int come = 1;
int I_num2 = 0;
G_RS.last();
while (G_RS.previous()){
I_num2 = G_RS.getInt("NO");
if (I_num2 == I_num){
come = 0;
System.out.println("I_num2→ " + I_num2);
break;
}
}

610 :KM6(やっちまった):03/01/06 23:08
        I_num2 = 0;
        if (come == 0){
          mnam = "";
          System.out.println("mnam_before→ " + G_RS.getString("MNAME"));
          G_RS.previous();
          S_num = Integer.toString(G_RS.getInt("NO"));
          System.out.println("mnam_after→ " + G_RS.getString("MNAME"));
          S_age = Integer.toString(G_RS.getInt("AGE"));
          mnam = G_RS.getString("MNAME");

          text1.setText(S_num);
          text2.setText(mnam);
          text3.setText(S_age);
          }
        return(true);
      }catch(SQLException err7){
        System.out.println("エラー出ました: " + err7);
        return(false);
      }
    }

    public static boolean c_next(){
      int I_num2 = 0;
      try{
        S_num = text1.getText();
        I_num = Integer.parseInt(S_num);
        int come = 1;
        while (G_RS.next()){
        I_num2 = G_RS.getInt("NO");


611 :KM7:03/01/06 23:10
        if (I_num2 == I_num){
          come = 0;
          System.out.println("I_num (Before) → " + I_num);
          G_RS.next();
          S_age = "";
          S_num = "";
          mnam = "";
          I_num = G_RS.getInt("NO");
          System.out.println("I_num (After) → " + I_num);
          S_sql = "SELECT NO,MNAME,AGE FROM MEMBERS WHERE NO = " + I_num;
          S_stmt = connection.createStatement();
          RS = S_stmt.executeQuery(S_sql);
          RS.next();
          mnam = RS.getString("MNAME");
          S_age = Integer.toString(RS.getInt("AGE"));
          S_num = Integer.toString(RS.getInt("NO"));

          text1.setText(S_num);
          text2.setText(mnam);
          text3.setText(S_age);
          break;
          }
        }
        return(true);
        } catch(SQLException err6){
        System.out.println("エラー出ました: " + err6);
        return(false);
      }
    }
}


612 :板評論家:03/01/06 23:14
ソースALLアップは久しぶりですね。

613 :デフォルトの名無しさん:03/01/07 00:00
>>605-611 Statementクラス使うならPreparedStatementクラス使った方が
かなりパフォーマンスあがると思うぞ。

http://www.atmarkit.co.jp/fjava/rensai/jdbc04/jdbc04_1.html
もし知らなければ是非ともこれを見ておくれ。

マシンのスペックが向上したとはいえSwingはただでさえ遅い遅いと言われている。
このプログラムを使った者が、この遅いのを見ただけで「やっぱりSwingって遅いな」
と思われしまいには「Javaは遅い」と思われては残念だ。

Javaは遅いという迷信を打ち消してくれ

ついでにストアド・プロシージャもどう?



614 :デフォルトの名無しさん:03/01/07 00:01
> Javaは遅いという迷信を打ち消してくれ

$unが握ってる限り無理だと思う

615 :デフォルトの名無しさん:03/01/07 00:40
>>603
TextArea でも CTRL+TAB でフォーカス移動できるやん…てのじゃ不満だろな。
JDK1.4 以降なら Component#setFocusTraversalKeys で
FORWARD_TRAVERSAL_KEYS と BACKWARD_TRAVERSAL_KEYS に
各々 null を割り当ててやればデフォルトのフォーカスコントロールキーが
使われるようになるみたいですけども。

616 :デフォルトの名無しさん:03/01/07 03:01
>>614 Sun MicroSystemsが握っている限り無理だと思う具体的な理由は?
計算機の性能も向上しJVMのバージョンアップするにつれ高速化している。
マシンパワーにもよるが2年前には、体感速度はCとさほど変わらなくなったとも言われている。
Javaアクセラレータによってさらに高速化できる。

617 :デフォルトの名無しさん:03/01/07 03:08
>>616
計算機が速くなったらVMも速度が向上するのは当然
じゃあトータルでPCの速度が2倍になったときVMの速度も2倍になったか?
なってないよな。
同じPCで昔のVMと今のVMと速度比較してみた?遅くなってるよ。
体感的にはCと変わらない?
体感的なんて曖昧な判断基準でモノを言うなんて、プログラマ失格じゃない?


とかいってもオレもJava好きなんだけどね。

618 :デフォルトの名無しさん:03/01/07 04:04
>>617
> 体感的なんて曖昧な判断基準でモノを言うなんて、プログラマ失格じゃない?

ごもっともな意見だが、体感的と言ったのは、JavaPressの記事を見ての事で。

多分、「Javaは遅い」といってAppletがあるページを忌み嫌う人たちに解りやすく
説明するために体感的という言葉を使ったのだと思う。

マシンのクロック数が倍になればVM速度が2倍になるとは限らないのは確か。
(余談だが、Classic Athlon 900MHz と PentiumIII 900MHz では速度が3倍
異なったらしい。Athlonは2次キャッシュがCPUの外側にあったため実際の速度は
PentiumIIIの3分の1、300MHzしかなかったらしい。Thunderbirdから2次キャッシュがCPUの内側に入りPentiumに追いついたらしい)

あとはマシンを入れ替えたときにOSのバージョンが異なるとか。
WindowsならActiveDesktopやエージェントや常駐プログラムの影響とか。
(あまり関係ないか?)

アルゴリズムによっても確かに速度は変わる。
最適化処理の関係上、ループ回数が長いとパフォーマンスの差がかなり縮む。

具体的に確認はしていないけれども、
JDK1.4になってからはパフォーマンスが50%向上したとはニュースで見たのだが...。
JDK1.3と比べてということか。ということは、

1.3よりもっと前の昔のVMは Hot Spot が内蔵されておらず、短いプログラムを動かすときに
最適化処理によるオーバーヘッドがなかったから早かったってことはない?

今のVMはHotspotの最適化処理によりプログラムを起動してから最初は遅く、
Javaは短時間でしか動かないプログラムは遅いが長時間動くプログラムでは速度差が減る、ということか..?
(長時間と言っても数値計算などでは勝てず)

Javaは好きだけどSunとスコットマクリーニが嫌い? 俺はそんな感じです。

619 :デフォルトの名無しさん:03/01/07 06:48
>JDK1.4になってからはパフォーマンスが50%向上したとはニュースで見たのだが...。
>JDK1.3と比べてということか。
GUIとか使わないアプリだと殆ど変わらないと思う。
50%もパフォーマンスが上がるのは VolatileImage とか1.4の新機能の恩恵を受けられる部分だけだと思う。

620 :デフォルトの名無しさん:03/01/07 07:39
>>602
ZipOutputStream 使った圧縮だったらそれで良いと思うが…

621 :KM:03/01/07 08:13
>613
ありがとうございます。
しかし今はパフォーマンス以前にきちんと動作しないので
(掲載したソースはかなりはしょっていますが…ドライバ確認部分とか)
そこを何とかしたかったのですがやはり難しいですかね。

622 :デフォルトの名無しさん:03/01/07 11:51
ちとスレ違いかもしらんけど、XDocletってどうやって使える環境に
するん?

623 :601:03/01/07 12:05
>>620
レスありがとうございます
たしかに圧縮は可能だったのですがLhacaなど(結構たくさん)の特定の解凍ツール
などではCRCをセットしないと解凍できないっぽいんですよ
ですのでもしご存知でしたらお教えください〜

624 :デフォルトの名無しさん:03/01/07 12:24
>>623
プログラムって >>602 のまんまだよね?
ZipEntry に crc, size, compressedsize とかにヘンな値設定してなきゃ
(コンストラクタが勝手に -1 設定するので、そのままにしとけば)
大丈夫だと思うけど。

頭悪いので上手く説明できない。(原因も良くわからんし)
ZIPファイルのフォーマット勉強してください。

625 :デフォルトの名無しさん:03/01/07 12:36
Plug-inを使用したアプレットがブラウザの印刷でちゃんと出てきません。
真っ黒になったり空白になったりアイコン表示になったりします。
ブラウザの印刷でちゃんとアプレットを印刷することは出来ますか?

(環境は OS:Windows98,2000,NT ブラウザ:IE5.0〜6.0 限定です。
ランタイムは1.4.0_02を導入します。)

626 :625:03/01/07 12:42
ブラウザでの印刷が出来ない場合のために
Javaのコードから印刷する手段も一応調査したのですが、
(ToolKitやPrintJobを使用するパターン)

PrintJob prtjob = getToolkit().getPrintJob((Frame)getParent(), "Test",null);
ここで、Plug-inを使用しているために、getParent()でFrameにキャスト出来るオブジェクトが
取れないんです。何か打開策はないでしょうか?

★ここで空のPrintJobインスタンスを作っておいて、
このあとでGraphicsクラスを作る時にアプレットと同じGraphicをコピーすれば大丈夫でしょうか??

627 :デフォルトの名無しさん:03/01/07 15:07
アプレットでユーザ認証の画面を作っています。
認証に失敗した場合にウィンドウにメッセージを追加したいのですが、
ウィンドウの表示内容を更新するにはどのようにすればよいのでしょうか?

628 :デフォルトの名無しさん:03/01/07 15:38
>>627
次のページにジャンプ

629 :デフォルトの名無しさん:03/01/07 16:09
>>627
ウインドウってアプレットの貼り付けてあるブラウザの事?
それとも別ウインドウ(ブラウザの)を起動して表示してもよしなの?

630 :デフォルトの名無しさん:03/01/07 16:23
>>629
同一のウィンドウ内です。
これに関しては、ラベルの内容を書き換えて repaint() することで思うようにできました。

新たに質問なのですが、アプレットからもう1つのアプレットを呼び出すにはどうすればよいのでしょうか?


631 :bloom:03/01/07 16:27


http://www.agemasukudasai.com/bloom/

632 :デフォルトの名無しさん:03/01/07 17:04
>>615さん
レスありがとうございます。
非常に参考になりました。
またまた質問なのですが、
TextAreaでEnterキーを押すとあるメソッドを
実行させたいのですが、これまたできません。
普通に改行されるだけになってしまいます。
対処法はないのでしょうか?


633 :デフォルトの名無しさん:03/01/07 19:10
staticメソッドにsynchronizedをつけたプログラムで
あるスレッドがそれにアクセスしたとき
そのクラスのすべてのインスタンスにロックがかかるの?
それとも部分的にstaticメソッドとstaticフィールドだけとかになるの?
おしえて。

634 :デフォルトの名無しさん:03/01/07 19:11
>>633
synchronized (そのクラス.class) {
}

635 :633:03/01/07 19:16


636 :デフォルトの名無しさん:03/01/07 19:31
>>634
まちがっとる

637 :デフォルトの名無しさん:03/01/07 19:34
印刷プログラムのコーディング内で
印刷に関するアクセス権限を明示的に与えるには
どんな風に記述すればいいんですか?

638 :デフォルトの名無しさん:03/01/07 19:48
>>633

javaの仕様では、「メソッドがインスタンス・メソッドではインスタンス
に関連したロックをして、メソッドがstaticの場合は、そのメソッドが定
義されているクラスを表現したClassオブジェクトに関連したロックが行
われる」とあります。

ということは、クラスのインスタンス全部にロックがかかるのではないの
でしょうか。

639 :633:03/01/07 21:37
うむ。やっぱそうか。ども。

640 :デフォルトの名無しさん:03/01/07 21:47
>>633
http://www.y-adagio.com/public/standards/tr_javalang/8.doc.htm#55408
>8.4.3.5 synchronizedメソッド
>synchronizedメソッドは,実行前にロック(17.1)を取得する。
>クラス (static) メソッドに対しては,そのメソッドのクラスに対するClass(20.3)オブジェクトと関連したロックを使用する。
>インスタンスメソッドに対しては,this(そのメソッドが呼び出されたオブジェクト)と関連したロックを使用する。
>これらのロックは,synchronized文 (14.17)で使用できるものと同じロックとする。
20.3 は java.lang.Class について述べられているので >>634 の理解の仕方で概ね間違いないと思われ。

>>638
ちゃんと仕様を読もう。

641 :デフォルトの名無しさん:03/01/07 21:59
みんなが利用しているアップローダって、全て自作ですか?
どんなの利用しているのか、あとパフォーマンスを教えてください。
出来ればスタンドアロンの環境で1MB のファイルで何msかかるかを、
教えてもらえると嬉しいのですが。
よろしくお願いします。

642 :633:03/01/07 22:16
>>640
>>クラス (static) メソッドに対しては,そのメソッドのクラスに対するClass(20.3)オブジェクトと関連したロックを使用する。
ということは個々のインスタンスにはロックはかからない?
うぎゃーどっちなんだ。

643 :633:03/01/07 22:19
あっClassオブジェクトってのは個々のインスタンスのことかな?
連かきこすまん

644 :デフォルトの名無しさん:03/01/07 22:22
>>633
そのstaticメソッドを呼び出す「全ての」インスタンスにロックはかかる。
しかし、synchronized(this) { しようとしているインスタンスにはロックは
かからない。

645 :デフォルトの名無しさん:03/01/07 22:27
>>642
つまり、ロックが何だか良くわかってない、と。

>>644
わかってる人相手だったら それでも良いと思うけど
わかってない人は ますます混乱する可能性があると思う。

646 :644:03/01/07 22:30
>>645
そだね。しかも、synchronized(this)しようとしているインスタンスってのは、
無茶苦茶だね。インスタンスは1ヶでスレッドが複数なわけだから。しょぼん。

647 :デフォルトの名無しさん:03/01/07 22:48
synchronized static void ...
synchronized void ...

でデッドロックもありうるってことかな

648 :デフォルトの名無しさん:03/01/07 23:00
>>647
ソレが勘違いです。
クラスメソッドはそのクラスを表現するClassインスタンスのモニターを、
インスタンスメソッドは自身のインスタンスが所有するモニターの取得を
試みます。

モニターを取得しようとしているインスタンスが別なので、それだけで
そういったことはおこりません。

649 :デフォルトの名無しさん:03/01/07 23:10
>>648
??
ロック可能なものが複数あるから
デッドロックが起こりうるんじゃないの

650 :615:03/01/07 23:12
>>632
textArea.addKeyListener(new KeyAdapter() {
  public void keyTyped(KeyEvent e) {
    if (e.getKeyChar() == KeyEvent.VK_ENTER) {
      //やりたい処理
    }
  }
});
一応こっちは廃棄スレなんで次からは本スレ↓で質問した方が良いかもよ。
【初心者】Java質問・相談スレ14【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1040150533/


651 :デフォルトの名無しさん:03/01/07 23:23
ようするに、あるクラスのsynchronizedなstaticメソッドの実行中は、
そのクラスのすべてのsynchronizedなstaticメソッドを、
他のスレッドが並行して実行することはできない。
でも、そのクラスのインスタンスのsynchronizedな非staticメソッドは、
他のスレッドも並行して実行することができる。
ってことだよね?

652 :デフォルトの名無しさん:03/01/07 23:39
>>650さん
レスありがとうございます。
そのようにしても、エンターキーを押すと改行されるだけで、
やりたい処理をできません。
keyReleasedもしくはkeyPressedを使えばできるのですが、
漢字変換などをして、決定のためにエンターを押すと、
そのやりたい処理が実行されてしまったり、変なとこで改行が
入ったりと不都合が生じます。
どうすればいいかさっぱりお手上げです。

次から本スレの方に質問させていただきます。

653 :デフォルトの名無しさん:03/01/08 00:12
>>622 俺はDocletを使う時は、Ant使ってるぞ。
XDocletは、申し訳ないがよう知らん。

654 :デフォルトの名無しさん:03/01/08 02:41
javaの初歩的な質問ですがわからないので宜しくお願いします
for文の
for(int i=1;i<=5;i++)
についてなんですが、最後の「i++」を前置インクリメントでも
実行に支障はなかったんですが、後置にする意図はあるんでしょうか?
気になるので宜しくお願いします

655 :デフォルトの名無しさん:03/01/08 02:43
オブジェクト指向学ぶのに、javaって最適ですか?

656 :デフォルトの名無しさん:03/01/08 02:45
●本当に● 支障ないなら いいんじゃねーの

657 :615:03/01/08 06:49
>>652
上手くいかなかったですか。そりゃスマンカッタ。
んでは swing 限定だけども,キーマップを変更するという手はどうでしょう。

Keymap kmap = jTextArea.addKeymap("MyKeymap", jTextArea.getKeymap());
KeyStroke enter = KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0);
kmap.addActionForKeyStroke(enter, new AbstractAction() {
  public void actionPerformed(ActionEvent e) {
    JTextArea tx = (JTextArea)e.getSource();
    // 改行の挿入処理 - 要らなかったら削除してちょ
    tx.replaceSelection("\n");
    // 後やりたい処理 ...
  }
});
jTextArea.setKeymap(kmap);

こんな具合かな。

658 :デフォルトの名無しさん:03/01/08 08:40
>>655
まずC、そしてC++というふうに学ぶのが一番ですね。

659 :デフォルトの名無しさん:03/01/08 09:02
>>658
まぁ、プログラムの勉強したいってんなら C、C++ でいーんだろうけど
オブジェクト指向だったらいきなり Java でもいーのではないかと。
C は言語でオブジェクト指向サポートしてないし、 C++ はアレだし。

660 :デフォルトの名無しさん:03/01/08 11:08
CからJavaをやってみてる者ですが、
interface Xxx を定義して、ファイル名をXxx.javaと付けます。
そして、それを実装するクラスを
class Xxx implements Xxxと定義すると上記のinterfaceのファイル名とかぶってしまいます。
なんか他のソースを見てみると
class XxxImpl implements Xxxとして、ファイル名をXxxImpl.javaと付けてる
のを見かけたんですが、なんか苦肉の策のような気がします。

Cのヘッダファイルのようにパッケージの配下にinterfaceディレクトリを作成し、
class Xxx implements interface.XxxとやるのはJavaでは邪道なのでしょうか?


661 :660:03/01/08 11:14
追加ですが、javaのinterfaceってCのヘッダファイルみたいなもの
という認識でいるんですが、間違ってはいないですよね?


662 :デフォルトの名無しさん:03/01/08 11:15
Javaで利用されるアーカイブについてお聞きしたいのですが、
.jar、.war、.earまではわかりますが、
.sarはどういう目的で使われるアーカイブなんですか?
ご存知の方いらっしゃいましたらご教授ください m(_ _)m

663 :デフォルトの名無しさん:03/01/08 11:19
>>660
基本的にクラス名の重複は推奨されません。

邪道っつーか ヘッダファイルは C の負の遺産の一つなので。
C++ がアレなのもヘッダファイルを引き継いでるのも原因の一つだし。

664 :デフォルトの名無しさん:03/01/08 11:20
>>661
大間違いです。

665 :634:03/01/08 11:42
>>640

概ねじゃなくて、これで正しい。ちゃんと嫁。

>そのメソッドのクラスに対するClass(20.3)オブジェクトと関連したロック

>これは,次のコードと同じ効果をもつ。

>synchronized (Class.forName("BumpTest")) {
> classCount++;
>}

「Class(20.3)オブジェクトと関連した*オブジェクト*のロック」ではないので、
synchronized()する対象は、java.lang.Classのインスタンスそのものになる。

Class#forName(String)は呼び出し元をロードしたClassLoaderを使用するから、
BumpTest.classと置き換えても、等しいjava.lang.Classのインスタンスになる。

666 :660:03/01/08 11:45
>>663
> 基本的にクラス名の重複は推奨されません。
2つのクラスは同じ機能を持っていると思っています。
1つは外部との公開インターフェースを定義する役割−>Cのヘッダと同様?
もう1つは公開インターフェースを実装する役割−>Cのソースと同様?
同じ機能を持っている物に対して別の名前を付けるのは不自然な気がします。

> C++ がアレなのもヘッダファイルを引き継いでるのも原因の一つだし。
privateなメンバ、変数もヘッダに書かなければいけないことでしたら
やり方によってはポインタだけを含めればprivateなメンバ、変数は
ヘッダに書く必要がありません。
それ以外にC++ が「アレ」な意味が思い当たりませんが、他に何かありますか?

>>664
できれば、理由を教えてください。
できれば

667 :デフォルトの名無しさん:03/01/08 11:50
>>666
>2つのクラスは同じ機能を持っていると思っています。
>1つは外部との公開インターフェースを定義する役割−>Cのヘッダと同様?
>もう1つは公開インターフェースを実装する役割−>Cのソースと同様?

抽象化してないのに interface を使おーとしてる、と。
それだったら interface は不要で
class だけ書いて公開部分を public にしてください。

668 :デフォルトの名無しさん:03/01/08 11:58
>>666
>それ以外にC++ が「アレ」な意味が思い当たりませんが、他に何かありますか?
いや、ヘッダを分離しなきゃいかんのがアレだ、と言ってるんだけど。

669 :デフォルトの名無しさん:03/01/08 11:59
>>666
>>664じゃないけど。

C++でabstractなクラスAを継承しているクラスBがあったとして、
クラスAはヘッダファイルみたいなものだと思うのか?

670 :デフォルトの名無しさん:03/01/08 12:43
>>664 >>666 >>669
抽象メソッドがCのプロトタイプ宣言みたいなものだと思い込んでいるとか?
C++のクラス定義もまるで抽象クラスみたいだったな。
実装がグローバル関数みたいになってキモイものだった。
これもC++がアレな理由の一つです。
コンストラクタの記述を省略してメソッド(メンバ関数)使えたのもキモかったような。
ポインタ演算、メモリ、アドレス操作、バッファーオーバフローで苦しむからってのもアレな理由でしょう。

>>667 というか、一つのファイルに複数のクラス入れるのは、
main()メソッドとかJUnit入れたテストクラスを除いて、邪道と思った方がいいんじゃない?


671 :デフォルトの名無しさん:03/01/08 12:52
>>670
総評:お前何にもわかってないだろ?

>コンストラクタの記述を省略してメソッド(メンバ関数)使えたのもキモかったような。

public class afodesuka
{
public static int omae()
{
return 0;
}
}


public class a
{

public static void main(String[] args)
{
afodesuka.omae();
}

}


672 :デフォルトの名無しさん:03/01/08 12:59
なんか程度の低い質問ですいませんが。
着メロの携帯サイトを有料化したいのですがその場合はJAVAなどで
プログラムするのでしょうか。それって一般人でできる方って
いるんでしょうか?どこかの会社に頼むとかなりお金かかるみたい
なので。。詳しい人なら作れるのかなと思いまして・・・:
ちなみにJぽんサイトです。

673 :デフォルトの名無しさん:03/01/08 13:00
>>672
勉強不足すぎ。

674 :デフォルトの名無しさん:03/01/08 13:04
>>673
だとは思いました…

675 :デフォルトの名無しさん:03/01/08 13:12
>>670
デフォルト・コンストラクタ

676 :660:03/01/08 13:20
>>667
> 抽象化してないのに interface を使おーとしてる、と。
そうですね。その「抽象化」っていうのがCしか知らない私には理解できないのです。

いま、xalan-j_2_4_0のソースを見てますが、パッケージ配下に
AttributeList、Locator、XMLFilterなどのinterface群があって、
helpers配下にAttributeListImpl、LocatorImpl、XMLFilterImplなどの
クラス群があります。

これを1つのクラスにしないでinterfaceと*Implクラスに分ける理由が
私には「Cのヘッダファイルみたいなもの」としか思いつきません。


677 :デフォルトの名無しさん:03/01/08 13:21
java.awt.Choiceに入力文字制限をかけたいのですが、
どうすればよいのでしょうか。
プロパティでは、むりですか。

678 :660:03/01/08 13:24
>>669
> C++でabstractなクラスAを継承しているクラスBがあったとして、
> クラスAはヘッダファイルみたいなものだと思うのか?
ええ、ヘッダファイルの中でヘッダファイルをincludeしているような
ものだと思っていますけど、間違ってますか?


679 :デフォルトの名無しさん:03/01/08 13:28
>>678
どっちかと言うとあるクラス群の共通な部分のテンプレートって感じじゃないの?

680 :デフォルトの名無しさん:03/01/08 13:41
>>671 そうじゃぬー。説明がよくなかったのう。
staticだから可能なんだろ。
omae()がstaticでなくても
C++では呼び出す側の
afodesuka afodesuka = new afodesuka();
を省略できるというキモさあったわけだよ。もしかしたら間違ってるかもしれぬ

呼び出される側のデフォルトコンストラクタはわかとる

>>676 モジュールは複数に分けた方が後で何かと苦労しないということで。
上位モジュールが下位モジュールに依存するのではなくて両方とも抽象モジュールに依存するようにすべきという法則ということで。

あるメソッドの引数の型が*Implクラスのスーパークラス(orスーパーインターフェース)だったら
わかるんでない?
そのスーパーインターフェースをXとすると引数の型にはXまたはそれを継承したクラス、インターフェースしか入れられない。



681 :デフォルトの名無しさん:03/01/08 13:44
>>680
>を省略できるという


682 :デフォルトの名無しさん:03/01/08 13:44
>>678 importはincludeしているようなものだけど、微妙。

683 :デフォルトの名無しさん:03/01/08 13:46
>>676
例えば C の void qsort(void *base, size_t num, size_t width, int (*compare)(const void *, const void *));
を考えると compare は Java の interface に近い。

この compare と qsort の関係は
Java だと java.util.Comparator の compare と java.util.Arrays の sort() や java.util.Collections の sort() の関係に近い。

684 :デフォルトの名無しさん:03/01/08 13:46
>>676

AttributeListImpl.javaの1行目

>// SAX default implementation for AttributeList.

が読めないのか?
デフォルト以外の実装を使いたくなって自作するとき、
しかもそれが別のクラスを継承する必要があったりしたら、
Interfaceじゃなきゃ困るんじゃないか?


685 :デフォルトの名無しさん:03/01/08 14:01
>>677
java.awt.Choice で文字制限って? どの部分で?

686 :デフォルトの名無しさん:03/01/08 14:51
>>685
入力可能な文字を半角のみにするとか、ですが
API見るとそれっぽいものがないのですが、

687 :デフォルトの名無しさん:03/01/08 14:56
http://www.xlsoft.com/jp/products/jet
使っている人いたら感想キボンヌ。

688 :デフォルトの名無しさん:03/01/08 15:19
>>687 それを使ってコンパイルすればJavaは遅いとブーブー文句を言われなくなるわけか。

ただではつかえないのが残念。と言うかSunはそれを許さないか。

689 :デフォルトの名無しさん:03/01/08 15:20
>>688
パーソナル版は無料でつ。

690 :660:03/01/08 15:45
>>684
> デフォルト以外の実装を使いたくなって自作するとき、
> しかもそれが別のクラスを継承する必要があったりしたら、
> Interfaceじゃなきゃ困るんじゃないか?
デフォルトの実装が存在するならば、抽象クラスで十分
別の実装が必要ならばオーバライドしてしまえばいい。

ではないですね。Javaでは単一継承しか許さないので破綻しますね。
C++の場合は何とかなってしまいますけど...なるほど、理解しました。

また、くだらない質問ですが、何故「*Impl」なんでしょう?
デフォルトの実装ならば「*Default」、または
インターフェースと同じクラス名の方が私にはしっくりきます。


691 :デフォルトの名無しさん:03/01/08 15:55
>>690
「Default*」 って命名する連中もいる。
例えば javax.swing.tree とか見れば DefaultTreeModel とか DefaultTreeCellRenderer とかあるし。

692 :デフォルトの名無しさん:03/01/08 16:07
忠実なのもいいんだが
長いクラス名は精神を汚染する

693 :デフォルトの名無しさん:03/01/08 16:07
>>690
> ではないですね。Javaでは単一継承しか許さないので破綻しますね。
interfaceなら多重継承できる

694 :デフォルトの名無しさん:03/01/08 16:11
>>693
実装が付いてこないのが難点だな。

695 :デフォルトの名無しさん:03/01/08 16:13
それぞれに抽象クラス(デフォルト実装)を用意できないってことでわ

696 :デフォルトの名無しさん:03/01/08 16:16
>>693
何がいいたいのかよくわからん。
質問の流れ理解してる?

697 :660:03/01/08 16:34
>>691
うぁ、Swing見てませんでした。スイマセン。
要するに何故POSIX関数creatの最後にeが無いんだろうというような
くだらない質問ですね。
各パッケージ間で統一した記法がなされていれば良いみたいですね。

納得したのでこれで消えます。ありがとうございました。

698 :デフォルトの名無しさん:03/01/08 16:36
RedHat7.3 Linux のx windowでJavaアプリ(というかJRUN4.0コンソール swing使用?)を起動したら、

Cannot convert string "<Key>なんたら" to type VirtualBinding
がいっぱいでて、
コンソールの日本語が 四角に化けちゃったんですけど、これはなにが原因でしょう。
7.2で実行した時はこんな事なかったのに・・・


699 :デフォルトの名無しさん:03/01/08 16:46
0を入力するまで演算するプログラムなんですけど

import java.io.*;
class practice2
{
  public static void main(String args[])throws IOException
  {
  BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
1→int res;
  int sum=0;
  do{
  String str=br.readLine();
2→res=Integer.parseInt(str);
  sum+=res;
  }while(res!=0);
  System.out.println("テストの合計点は"+sum+"です。");
  }
}
はCompileできるんですよ。
1を削除して2の部分を
int res=Integer.parseInt(str);
でもいけるかと思ったんですが
Compileできません。どうしてでしょうか?


700 :デフォルトの名無しさん:03/01/08 16:52
>while(res!=0);
ここでつかてるから

701 :699:03/01/08 17:04
>>700
do〜while文内で宣言したものは
条件式(res!=0)には適応できないっていう意味なんですか?

702 :デフォルトの名無しさん:03/01/08 17:06
>>700 while(res != 0) のresはスコープの外側だからね。宣言を内側にすればエラーは当然

703 :デフォルトの名無しさん:03/01/08 17:54
>>676
xalanあたりは特殊ケースじゃないか?
W3Cがinterface群を一律に定めておいて、各々のベンダがこれを実装するようにしているから。
apacheの香具師らが単に独自に作ってたのなら、AtributeListやらはclassになっていたかも。

>>684
一般的には、xalanみたいなのは内部的にXXImplでキャストするようなコードがどこにあるか分からないから、
XXImplだけ1から自作、みたいなのはお勧めできない。

>>690
日本語で言えば「デフォルトの実装」と「実装」の違いだな。ほとんどニュアンスの問題だが…。

704 :IP記録実験:03/01/08 21:27
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/

1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。

27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?

38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。

73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。

705 :デフォルトの名無しさん:03/01/08 22:58
FileInputStreamなどでファイルを読みこむときに絶対パスを指定しない
ようにするにはどうすればいいのでしょうか?

実行中のクラスと同じフォルダ内におけばファイル名のみで可能ですが、
リソースを一箇所にまとめるための方法を教えてください。

実行時にしていするのでなくプログラム上で指定できるよい方法をおしえてください。
よろしくお願いします。

706 :デフォルトの名無しさん:03/01/08 23:13
FileクラスのAPI読め

707 :デフォルトの名無しさん:03/01/08 23:45
>>699
resのスコープがdo〜whileのブロック内だから

708 :デフォルトの名無しさん:03/01/08 23:51
なにを今更

709 :デフォルトの名無しさん:03/01/09 00:20
IP取るようになったらみんな「です・ます」で話すようになるぞ

710 :デフォルトの名無しさん:03/01/09 00:26
ガ━━(゚Д゚;)━━ン!

711 :デフォルトの名無しさん:03/01/09 00:47
>>197
>>99 が気になるところだね。

さっき書き込もうとしたら久々に500errorに遭遇した。一応報告。

712 :デフォルトの名無しさん:03/01/09 00:53
>>245
敗訴した者上告できず

713 :684:03/01/09 01:00
>>703
んなことはどうでもいい。
単にインターフェースの使い道がわからんと言ってたから、
「そういう状況なら必要だ」と言ったまで。
質問よめ

714 :デフォルトの名無しさん:03/01/09 01:12
>>348悪ざない。バカだと。

715 :デフォルトの名無しさん:03/01/09 01:26
このままじゃチョンから訴えられるじゃねーか

716 :デフォルトの名無しさん:03/01/09 01:59
>>657さん
レスありがとうございます!
できました!感謝感激です。
こんな方法があったとはまったく知りませんでした。

本当に丁寧なレスありがとうございます!


717 :デフォルトの名無しさん:03/01/09 02:46
大阪キタ━━━━━━(゚∀゚)━━━━━━ !!!!!

718 :デフォルトの名無しさん:03/01/09 03:33
2、3年か…夢を食べるのは技術か、法律か。

>>92
まっとうな批判なら勝負すればいいんじゃないすかねぇ…

719 :デフォルトの名無しさん:03/01/09 07:46
Hello
end
と出力するプログラム(Hello.java)の動作時間を計りたいので下記のような
プログラムを書いたのですが、endの次に出力するはずの時間がnullになってしまいます。
time java Helloだけ動かすと問題なく出力されるので理由がわかりません。

わかる方がいましたら、教えてください。

public class HelloTime {
public static void main(String args[]){
try{
for(int i=0;i<50;i++){
Process t = Runtime.getRuntime().exec("time java Hello");
BufferedReader reader=new BufferedReader(new InputStreamReader(t.getInputStream()));
String dat =reader.readLine();
while(!dat.equals("end")){
System.out.println(dat);
dat=reader.readLine();
}
System.out.println(dat);
}
}catch(IOException e){
}
}
}

720 :デフォルトの名無しさん:03/01/09 10:33
import java.io.*;
import java.net.*;

class NSlookup {
static void nslookup( String address )
throws IOException
{
//InetAddress addr_1 =
// InetAddress.getHostName( address );
InetAddress addr_2 =
InetAddress.getByName( address );
System.out.println(
"IP-Adresse: " + addr_2.toString() );
}
}



721 :720:03/01/09 10:38
半角空白をTABにしてなくて読みにくいと思いますが
初心者質問です。
javaでnslookupを作っていて、ホスト名をIPアドレスに変換はうまくいくのですが
その逆のIPアドレスからホスト名を引いてもIPアドレスが出るだけでうまく逝かないです
javaのリファレンスを見ても仕様上何の問題も無いはずなのですが・・・


722 :720:03/01/09 10:48
ちなみにエラーが出るのでコメントアウトしてます


723 :デフォルトの名無しさん:03/01/09 11:04
>>720

getHostNameメソッドはstaticでは無いので、それでは呼べないですよ。
そのソースからすると、

addr_2.getHostName()

でいけるのでは?

724 :デフォルトの名無しさん:03/01/09 11:07
>>720
そのプログラムを実行したマシンは、きちんとDNSの設定をしていますか?
もしかしたらそのマシンのDNSの設定の問題かも。

725 :デフォルトの名無しさん:03/01/09 11:18
{
 InetAddress addr_2 =
 InetAddress.getByName( address );
 InetAddress addr_1 = addr_2.getHostName( address );

 System.out.println(
 "IP-Adresse: " + addr_2.toString() );
}

これなら動くでしょう。ただ
>ホスト名をIPアドレスに変換はうまくいくのですが
>その逆のIPアドレスからホスト名を引いてもIPアドレスが出るだけでうまく逝かない
とは別の問題なのでこれでうまくいくとは限りませんが。

なお古いJVMにはバグがあって、
getByNameにIPアドレスを指定した場合、ホスト名が取得できないという現象があります。
お使いのJVMのバージョンは?

あと>>721 タブではなく全角スペースね

726 :デフォルトの名無しさん:03/01/09 11:21
>>725に書いたバグは、1.0のころのものなので、
いまどき1.0のVMを使っているとは少々考え難いですけれど。

727 :デフォルトの名無しさん:03/01/09 11:27
>>719
timeの出力が標準出力じゃないから。
Process#getErrorStream()も使いなされ。

728 :デフォルトの名無しさん:03/01/09 11:30
そもそもJavaのプログラムの実行時間を計るのならtimeは適切ではないと思うけれども。
System.currentTimeMillis()使うとかさ。

729 :デフォルトの名無しさん:03/01/09 11:36
自己つっこみ。
>>725
 InetAddress addr_1 = addr_2.getHostName( address );
の返り値はString型ですよね。ごめん。

730 :723:03/01/09 11:48
>>729

引数にjava.lang.StringがあるgetHostNameメソッドが見つからないんだけど。

731 :IP記録実験:03/01/09 11:55
IP記録実験
http://qb.2ch.net/test/read.cgi/accuse/1042013605/


732 :デフォルトの名無しさん:03/01/09 11:56
>>730
そこもあわせて修正。

733 :デフォルトの名無しさん:03/01/09 12:00
久々に2げと

734 :720:03/01/09 12:49
public static String nslookup( String address ) 
    throws IOException
    {
    //String ip;
    //String host;
    String ret = "";
    InetAddress addr_2 =
    InetAddress.getByName( address );
    //InetAddress addr_1 = addr_2.getHostName();
    
    ret =
    "IP-Adresse: " + addr_2.toString();
    ret += "host or domain: " + addr_2.getHostName();
    return ret;
    }
こんな感じでホストからIPアドレスを引くことが出来ました
唯、IPアドレスからホスト名を引こうとすると妙に遅く
ホストがわかっているIPアドレスからホスト名を出そうとしてもIPアドレスが
出てくるだけです。
なにか見落としがあるんでしょうか?



735 :デフォルトの名無しさん:03/01/09 16:13
>>734
そのプログラムには問題はないとおもう。
上のほうのレスにあったVMのバージョンの問題か、
そのマシンのDNSの設定の問題では?

で、そのプログラムを実行した環境は?
あと無意味に全角スペースを使いまくるのはどうかとおもうよ。

736 :デフォルトの名無しさん:03/01/09 17:19
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────

737 :デフォルトの名無しさん:03/01/09 17:20
Javaに構造体が無いことを今日初めて知ったのですが、
たとえばClass1のMethod1からClass2のMethod2を呼び出し、そこで処理をして
Class1に複数の型のデータを渡したいとき、CならMethod2の返り値にstructを
使って渡せましたが、Javaではそれは出来ないってことですよね。

ということは、Class1からClass2のメンバ変数を直接見ろってことなのでしょうか?
(スミマセン、構造体とクラスが似すぎてて混乱してます・・・)

738 :デフォルトの名無しさん:03/01/09 18:13
>>737

クラスを返せばよい。

739 :デフォルトの名無しさん:03/01/09 18:50
>>737
そこで混乱しているということはC++の経験はないのかな。
たとえばC++のクラスはCの構造体を拡張したものです。

データだけの構造体に関数と
private,protected,publicなどのアクセス制限機能を付け足したものが
クラスであると考えてよろしいかと。

740 :デフォルトの名無しさん:03/01/09 20:07
appletを作成中なのですが
ImageクラスでimgXX= getImage(getDocumentBase(), "xx.gif");
と読み込んだ後
imgXXの高さと幅をしるにはどうしたらよいでしょう?

takasa=imgXX.getHeight(this)としたのですが駄目でして
takasa=imgXX.getHeight(imgXX)としても駄目でした

741 :デフォルトの名無しさん:03/01/09 20:15
>>738-739
サンクスです。
どうも、クラスの中に関数(メソッド)があるのに、それがなーんでクラスを返すネン
みたいな考えに捕らわれてまして・・・。
関数内で、データだけ保持するクラスを生成して値を詰め込めば、それを呼び出し元に
intやchatと同じく返すことができるってことなんでしょうか。ひとまず挑戦してみます。

742 :デフォルトの名無しさん:03/01/09 20:36
>>740
Javaではわりとよくある質問。下のレスなどをご参考に。
http://pc3.2ch.net/test/read.cgi/tech/1040150533/659-664


743 :デフォルトの名無しさん:03/01/09 21:40
あらま、ここまでややこしかったのですか
でもためになりました。有難うございます

744 :デフォルトの名無しさん:03/01/09 22:47
>>741
クラスとインスタンスの違いを理解しませう。
他の言語でプログラミング経験がある人は逆に、
実践をするよりも参考書を読んだ方が良いかも。

745 :デフォルトの名無しさん:03/01/09 23:04
このまま全サーバに導入してしまってもかまわないと個人的には思います。
発言に自己責任が伴うので、くだらない殺人予告や過度の誹謗中傷、ウイルス・ブラクラリンク
などは少なくなるのではないでしょうか。

746 :デフォルトの名無しさん:03/01/10 00:09
sirealizableがよくわかりません。どういうものなのですか?
直列化っていうのがわかりません。

747 :デフォルトの名無しさん:03/01/10 00:10
ファイルに保存とか、ネットワークを通じてインスタンスを送信するとか。

748 :デフォルトの名無しさん:03/01/10 00:13
だいたい漢字どーりの意味です。

749 :デフォルトの名無しさん:03/01/10 00:33
>>746

sirealizableじゃなくて、Serializableです。
インスタンスを生成したときというのはメモリにオブジェクトが存在する
のですが、これはプロセッサのアーキテクチャが異なれば違うわけです。
その、異なるアーキテクチャ間でオブジェクトをやり取りするために一度
オブジェクトをバイトコードに変換して、送っているのです。

750 :デフォルトの名無しさん:03/01/10 00:40
>>746
インスタンスを0と1の直線的な並びに変換できるということ。

具体的にいえば、インスタンスをたとえば、
「0,1,0,1,1,0,1,0,1,1,0,0,1,1,1,0....」というような形式に
変換できちゃったりするわけ。

これを利用すればインスタンスをbyteの配列に変換することが可能になるわけだから、
>>747が言うようにインスタンスをファイルに保存したり、
ネットワーク越しに送信することが可能になるわけです。

それからsirealizableではなくSerializableね。

751 :デフォルトの名無しさん:03/01/10 00:47
どうでもいいけどね

752 :デフォルトの名無しさん:03/01/10 01:50
awtで常にwindowをトップに出しておくようにするにはどうすれば?

753 :746:03/01/10 02:00
みなさまありがとうございます。
なんとなく分かりました。

内部ではバイトコードでやり取りされているわけではないということでしょうか?
知りませんでした。

754 :デフォルトの名無しさん:03/01/10 02:32
>>749>>753
オブジェクトのバイトコード化と
Serializableは別物だとおもいます。

わたしはJavaでバイトコードといえば
http://e-words.jp/w/E38390E382A4E38388E382B3E383BCE38389.html
このようなものを指すと認識しています。

上のほうでクラスとCの構造体の話がでていますが、
データとメソッドを例にしてインスタンスのシリアル化を説明すると、

Serializableを実装したクラスのインスタンスをシリアル化しても、
得られるのはあくまでもシリアル化されたインスタンスの「データ」であって、
「メソッド」すなわちバイトコードがシリアル化されるわけではない、

ということだとおもいます。。

755 :デフォルトの名無しさん:03/01/10 02:37
java.lang.Classのインスタンスをシリアライズしたものは?

756 :名無し募集中。。。:03/01/10 02:43
Java Debug Interfaceの分かりやすい、サイトまたは書籍知りませんか?

757 :デフォルトの名無しさん:03/01/10 03:21
>>754-755
ていうかシリアライズされた物って、ただのメモリ上のイメージ(インスタンスそのもの)じゃないの?
じゃないと「永続化したいBean」をBLOBとかで直接DBにしまう事ができなくならない?


758 :デフォルトの名無しさん:03/01/10 03:33
>>757
>メモリ上のインスタンスそのもの
というがシリアライズされるのはインスタンスのデータだけ。
またクラスによっては、すべてのフィールドがシリアル化されるわけではないのも周知のこと。

759 :デフォルトの名無しさん:03/01/10 03:46
Serializableでシリアル化されたインスタンスを
ファイルなりネットワークなりから読み込んだとしても、

これをふたたびインスタンスに復元するためには
そのシリアル化されたバイト配列が
どういうクラスだったかの情報が必要。

そしてその「どういうクラスだったかの情報」と
「Serializableでシリアル化されたバイト配列」は
まったくの別物である。

このように私は理解しているのですが、
これでよろしいでしょうか?

760 :757:03/01/10 03:57
>>758
>またクラスによっては、すべてのフィールドがシリアル化されるわけではないのも周知のこと。

クラスによっては、と言うより transient宣言されたフィールドね。つーか、普通にあるインスタンスを
永続化(要するにEJBのCMP等)したい場合って、取得するときも当然「そいつの正体」は知ってて取得するよね。
っていうか、表現文字列("V[[java.lang.String"みたいなヤツ)も当然保存されるんだから、
別に元の実体に戻せるじゃん。

761 :デフォルトの名無しさん:03/01/10 04:28
シリアライズされたインスタンスを取得するとき、
つねに「そいつの正体」を知っているとは限らないのではないか?

たとえばhoge.classというserializableを実装した
あるクラスのインスタンスをシリアライズして
それをネットワークを介して他のマシンに送りこんだときなどはどうだろう。

いくらそのシリアルには元のインスタンスのクラス名なども含まれているとはいえ、
これはそのhoge.classのバイトコードがなければ復元不能。

ローカルにしろリモートにしろ、
いずこからhoge.classを読み取ってこれた場合のみ
シリアライズされたデータは復元できる。

762 :760:03/01/10 04:45
>>761
つーかRMIでリモートから取得する時って、どうやる?普通。
受け取り側も対象Classをimportした上でキャストするよね。

そんな「人間が予想もできないオブジェクトがどこからかやってくる」って言う状況が
ちょっと想像できない。ていうか、そうなったら「復元できない」んじゃなくて、
「キャストが」できない。

763 :デフォルトの名無しさん:03/01/10 04:54
どんなオブジェクトも Object#getClass() でクラス名がわかるという事を知らないバカがいる。
クラスローダやリフレクションを知らないバカがいる。


764 :デフォルトの名無しさん:03/01/10 09:27
「通報しますた」のレスにすごい重みが出るのがメリット

765 :デフォルトの名無しさん:03/01/10 09:44
■ログ記録実験の巻■
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

─────────────────────── 2ch-net─
メルマガ登録・解除 http://www.2ch.net/mag.html

http://www.2ch.net/2ch.html / 2ch@2ch.net
───────────────────────────

766 :デフォルトの名無しさん:03/01/10 09:49
■ログ記録実験の巻■
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 138720人 発行日:2003/1/9

年末年始ボケがそろそろ収まり始めた今日このごろのひろゆきです。

そんなわけで、年末に予告したIP記録ですが実験を開始しています。

「2ちゃんねる20030107」
こんな感じで各掲示板の最下部に日付が入ってるんですが、
20030107以降になってるところはログ記録実験中ですー。

んじゃ!

─────────────────────── 2ch-net─
メルマガ登録・解除 http://www.2ch.net/mag.html

http://www.2ch.net/2ch.html / 2ch@2ch.net
───────────────────────────

767 :デフォルトの名無しさん:03/01/10 10:06
>>13
そこまで端的に書かれてみるとかなり怖いものがあるな・・・。

768 :デフォルトの名無しさん:03/01/10 10:40
>>760
readObject()/writeObject()、java.io.Externalizableを使った場合は、
transientで修飾されてなくても自動的にはシリアル化されない。

EJBのCMPは、オブジェクトそのものをシリアル化するものではない。
テーブルのカラムと、EntityBeanのプロパティをマッピングするもの。

>>762
>そんな「人間が予想もできないオブジェクトがどこからかやってくる」って言う状況が
>ちょっと想像できない。ていうか、そうなったら「復元できない」んじゃなくて、

バージョンの異なるアプリ同士で通信を行った場合とかは普通に起こるよ。

>「キャストが」できない。
インスタンスが復元(逆シリアル化)されてる必要があるだろ。
実体がないのにどうやってキャストするのか小一時間…(略

769 :デフォルトの名無しさん:03/01/10 10:42
注目の記事
2審も管理者に賠償命令=「2ちゃんね○」書き込み−東京高裁
 インターネットの低能専用掲示板「2ちゃ○ねる」で「ヤブ医者」などと中傷した匿名の書き込みを、管理者が削除しなかったとして
都内の動物病院と院長が掲示板を管理する守銭奴西○博○氏を相手に損害賠償などを求めた訴訟の控訴審判決が25日、東京高裁であった。
久保内卓亜裁判長は計400万円の支払いと書き込みの削除を命じた1審の東京地裁判決を支持、○村氏の控訴を棄却した。 (ジジ通信)


770 :デフォルトの名無しさん:03/01/10 11:24
2cnねらー100万人×1人カンパ100円=1億円くらい すぐ集まる。





771 :デフォルトの名無しさん:03/01/10 11:50
君たちの年収を教えたまえ。

1年を通じて勤務した給与所得者  
男性2,834万人、女性1,675万人


100万円以下             68万6000人    2.4%
100万円超 200万円以下    117万8000人    4.1%
200万円超 300万円以下    231万1000人    8.1%
300万円超 400万円以下    450万4000人   15.1%
400万円超 500万円以下    517万6000人   18.1%
500万円超 600万円以下    425万3000人   14.9%
600万円超 700万円以下    308万8000人   10.8%
700万円超 800万円以下    229万1000人    9.0%
800万円超 900万円以下    156万7000人    5.5%
900万円超1, 000万円以下    104万9000人    3.7%
1,000万円超 1,500万円以下  198万3000人    6.9%
1,500万円超 2,000万円以下   37万6000人    1.3%
2,000万円超             14万1000人    0.5%

平成13年度 1年を通じて勤務した給与所得者 給与階級別分布 国税庁
http://www.nta.go.jp/category/toukei/tokei/menu/minkan/h13/04.htm


772 :749:03/01/10 12:06
バイトコードというは間違っていました。
それで調べなおしたのですが、フィールドの値をバイトストリームにしているのですね。
ObjectInputStream#readObject()がClassNotFoundExceptionを投げるようになっているので、deserialize
するときにはクラスファイルが配布されている必要があります。
ということは、受け取る側は予想できないオブジェクトを受け取ることはできないのでは?

あと、英語だと"sequence of bytes"という表現があることやストリームでやり取りするので、バイト配列という
表現はおかしいような気がしました。

773 :デフォルトの名無しさん:03/01/10 12:45
2ちゃんねるがアクセスログ記録を始めましたが、あなたの考えは? - Yahoo!投票(左下から投票できます)。
http://dailynews.yahoo.co.jp/fc/computer/2channel/



774 :デフォルトの名無しさん:03/01/10 13:39
>>772
たしかにバイト配列よりもストリームのほうが表現として自然なようです。
レスありがとうございます。

775 :デフォルトの名無しさん:03/01/10 15:07

意味が分かりません

776 :デフォルトの名無しさん:03/01/10 16:35
暴力団に殺人依頼した。管理人を入廷時に射殺する

777 :768:03/01/10 20:50
>>772
>ということは、受け取る側は予想できないオブジェクトを受け取ることはできないのでは?

面倒だしセキュリティ面で危険だが、不可能ではない。

ObjectInputStreamを継承して任意のクラスローダからクラスを解決するようにし、
クラスの解決に失敗した場合に接続相手からクラスファイルを取得して解決する
クラスローダを作って、それを動的にロードするようにすればいい。

ようするに、配布されてなきゃ、相手から貰ってくればいいだけのこと。

778 :デフォルトの名無しさん:03/01/10 22:56
 
 特定の企業への一方的なログ通知が始まっただけで、
 記録そのものはこれまでと何も変わらず、そしてバカは増え続ける一方。

779 :デフォルトの名無しさん:03/01/10 23:01
匿名掲示板もあっけなく崩れ落ちたな。
このまま閉鎖すればいいのに

780 :デフォルトの名無しさん:03/01/10 23:47
>>519
やったYO!! 今日、 俺もあんたと近い現象に巡り合えたよ。
…うれしくねぇ

781 :772:03/01/11 00:03
>>768,777

でも、その場合でも結局相手からもらうものはこちら側で知っていなくてはならないの
では?

782 :デフォルトの名無しさん:03/01/11 00:15
登録された中から、空いてるマシンを使ってなんたら
なんてのJavaであったよね。
なんて名前だったっけ?

783 :デフォルトの名無しさん:03/01/11 00:18
ううん、既存のTripodとかじゃなくて新たにそういうシステムを
作っちゃうの。

どう作るかはわかりませんw

しかし嵐とか不愉快な対策には「こいつがむかつく」と
ひとり1票で投票してきめます。
そしてその人はもうカキコ禁止。

どうやってカキコ禁止にするとかそういうのはわかりませんw

784 :デフォルトの名無しさん:03/01/11 00:26
記録されてる分なにかと現社会より厳しくなった感じします、

785 :デフォルトの名無しさん:03/01/11 00:45
>>781
そういえば
RMIかJINIかについての説明で、
そのあたりの話題がでてきたような。

しかしSerializableも色々と奥が深い…

786 :デフォルトの名無しさん:03/01/11 02:02
javacで以下のメッセージがでてコンパイル出来ません。

Exception in thread "main" java.lang.NoClassDefFoundError:
com/sun/tools/javac/Main

色々ググってみたんですけど、実行時の問題ばかりで的を射ません。
同じソースが実家のPCではコンパイル出来ていたので
環境の問題だと思うんですが。
pathは"PATH=c:\j2sdk1.4.1_01\bin"
CLASSPATHは"set CLASSPATH="(この辺良くわかってない)としたんですけど。
win2000でj2sdk1.4.1_01を入れてあります。
どなたか御判りの方がいましたら御教唆下さい。

787 :デフォルトの名無しさん:03/01/11 02:17
>>786
再インストっぽい。

788 :デフォルトの名無しさん:03/01/11 02:22
>>786 これももう一つのJava質問スレッドの最初のほうに載っていると思う。

コマンドラインで echo %path%
echo %classpath%
またはset
と入力するとパスが通ってるかわかります。
classpath設定するときは、 . (どっと) も入れたほうがいい。でセミコロンで区切る。
javacのコンパイルオプションに-classpathも...。
ま、もう一つのjava質問スレッド、5, 6番あたりだろうか。
なんか一日(24h以内)で同じ質問する人が二人いた。

789 :768:03/01/11 02:32
>>781
うだうだ書いてないで、自分で試してみたら?
少なくとも俺は実装したことあるから、可能なことは確かだ。

java.lang.ClassLoader#findClass(String)
java.io.ObjectInputStream#resolveClass(ObjectStreamClass)
最低この二つのメソッドをオーバーライドすればできるよ。

完全限定クラス名から多少いじれば、ClassLoader#getResource()を
使ってクラスファイルの中身をバイトストリームで取得できる。

あとは、自前プロトコルだろうが、RMIだろうが好きに使えばいいだけ。

790 :デフォルトの名無しさん:03/01/11 02:34
>>786
実は俺も出た事がある。ただし状況が違う。確か、Tomcat4.0上でJSPを動かした時だった。
で、確かサーバ動かしたままJSPを書き換え、ブラウザですぐそのページを見ようとしたら
(つまりJSPをコンパイルさせようとしたら)
なんか500(Internal Server Error)が出てしまい、ログを見たら、
ソレ↑が出ていた。

791 :790:03/01/11 02:36
ちなみにそのJSP内は、「NoClass」になるような要素は無い。(使っていたのはString[]だけ)


792 :デフォルトの名無しさん:03/01/11 02:41
>>791 tools.jar(?)

793 :762:03/01/11 02:45
>>768
>java.io.Externalizableを使った場合は、transientで修飾されてなくても自動的にはシリアル化されない。

実装したら(あるいは実装されたAPI使ったら)、だろ?

>バージョンの異なるアプリ同士で通信を行った場合とかは普通に起こるよ。

だ・か・ら!
「どうしてそういう状況になるのか」が、わからないって言ってんだYO!
バージョンが異なる、というか「送るオブジェクトが変わる」という事が、
事前に知らされずに実装されるのって、どんな状態なのよ。ただ、

>EJBのCMPは、オブジェクトそのものをシリアル化するものではない。

これはもうちょっと詳しく聞きたい。(マジで


794 :デフォルトの名無しさん:03/01/11 03:11
>>793
>バージョンの異なるアプリ同士で通信を行った場合とかは普通に起こるよ
こっちはわかる。とても良く起こる。
詳しい説明が、「Effective Java」に載ってた。立ち読みしてくれ。


795 :786:03/01/11 05:34
結局、再インストで直りました。
なぜか「アプリケーションの〜」からアンインストール
出来なかったんですが直接ファイルとレジストリ消して。
その時点でインスト時に何処かおかしかったみたいです…。
レス下さった方有難う。

余談ですがここって過去スレだったのですね…。

796 :デフォルトの名無しさん:03/01/11 09:22
そんなにデカいのか

797 :デフォルトの名無しさん:03/01/11 09:23
なんで腐れ男はキャップ持ってるんだ?

798 :デフォルトの名無しさん:03/01/11 09:58
======2==C==H======================================================

         2ちゃんねるのお勧めな話題と
     ネットでの面白い出来事を配送したいと思ってます。。。

===============================読者数: 139038人 発行日:2003/1/10

なにやら、連日メルマガだしてるひろゆきです。

そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。

重くなって落ちたりしてもご愛嬌ってことで。。。

んじゃ!

────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50
────────────────────────────

799 :デフォルトの名無しさん:03/01/11 10:51
ずっと記録されてたと思ってた
もっと犯罪予告しておくんだった

800 :デフォルトの名無しさん:03/01/11 11:20
441 名前:47 ◆KbtLZwerNc [sage] 投稿日:02/12/27 09:52 ID:NDSOtdna
ということで、実際にWinnyに追加予定の機能ですが、
(中略)
これにより、読み込みやスレッドを立てている人の匿名性が実現できますし、
BBSを読み書きするだけだったらWinny本体を起動する必要がありません
(適当にブックマーク入れておく必要はありますが)

47氏にがんがってほしいと思った

801 :デフォルトの名無しさん:03/01/11 12:22
やってやれないことはない

802 :デフォルトの名無しさん:03/01/11 12:55
「派」という字が独特ですね

803 :デフォルトの名無しさん:03/01/11 15:43
残念ながら、2chは匿名性以外にも存在価値ができてしまったインターネットです。


804 :デフォルトの名無しさん:03/01/11 15:49
2ちゃんねる知らない人4%と言う事は、
96%の人が、2ちゃんねるの存在を知っていると言う事?

805 :762:03/01/11 16:12
>>793
>実装したら(あるいは実装されたAPI使ったら)、だろ?

readObject()/writeObject()はインタフェースじゃないので、
実装っていう言葉を使うのが変な気がしたから。
java.io.Externalizableは実装だね。

>これはもうちょっと詳しく聞きたい。(マジで

CREATE TABLE persistable (
 id integer primary key,
 data varchar(100)
);

interface Persistable extends EJBObject {
 public Integer getId() throws RemoteException;
 public void setId(Integer id) throws RemoteException;
 public String getData() throws RemoteException;
 public void setData(String data) throws RemoteException;
}

EntityBeanの各オブジェクトは、永続化する先のテーブルの
各レコードと1対1で対応していて、プロパティを操作すると、
それがDBの方の対応するレコードのカラムにも反映される。

テーブルの主キーや、カラムとの対応付けはXMLで指定する。

806 :デフォルトの名無しさん:03/01/11 23:52
ネオむぎを超えるわけない
犯人が17歳以下なら話は別だが

807 :デフォルトの名無しさん:03/01/12 00:03
中国の漬け物ですか?(^_^;)

808 :デフォルトの名無しさん:03/01/12 02:39
逆さ読み?

809 :デフォルトの名無しさん:03/01/12 02:44
止まったのか?

810 :デフォルトの名無しさん:03/01/12 10:12
de?

811 :793:03/01/12 12:05
>>805
なるほどね。産休!>EJB

いや、なんか俺も仕事でServletとか鬼みたいに書いてるんだけど、
実は一度もEJBって使ってないんだよね、これが。(^_^;;
案件にその話がある度に、「なんでそんな重いの使うの??」って話になって、
結局やらずじまい。

つーか、このスレも荒れてきてるね。

812 :793:03/01/12 12:08
つーか今書き込んでから思ったんだけど、>>805の話って、別に
「EJB(EntityBean)の永続化の機構について」の話じゃないな。シリアライズして永続するっていうのは...ていう
話ではない。

...けどその辺は、ま、自分で調べるよ。アリガト。


813 :762:03/01/12 13:01
>>812
CMP(Container Managed Persistence)はEntityBeanの永続化機構だよ。

EJBにはもうひとつ、オブジェクトの活性化/非活性化機構がある。
Stateful SessionBeanで使われるもので、オブジェクトをシリアル化して
一時的なストレージ(DB or ファイル)にスワップアウトするもの。

Stateless SessionBeanとEntityBeanでもejbPassivate()/ejbActivate()は
呼ばれるが、これらは通常はインスタンスプールに入れるために呼ばれ、
シリアル化してスワップアウトするためではない。

これは、Stateful SessionBeanではオブジェクトの状態を保証する必要があるが、
Stateless SessionBeanとEntityBeanでは個々のインスタンスの状態を保証する
必要がないから(EntityBeanなら永続化対象のプロパティはDBから拾えばいい)。

814 :デフォルトの名無しさん:03/01/12 15:25
すいません、ご存知の方がいたら
教えてください。

Javaのメソッドツリーを作成したいんですが、
C言語の関数ツリーのようにツールがどこかに存在しない
でしょうか。
( JavaCCとかも見たんですが、よくわからないので・・・)

815 :デフォルトの名無しさん:03/01/12 15:32
javaの開発環境でJBuilderを使っている人はいますか?

816 :デフォルトの名無しさん:03/01/12 15:35
JBuilderの無料版(Personal)だと、作ったアプリの配布方法が全く
わからないのですが、どなたか配布方法を教えていただけませんか?

817 :デフォルトの名無しさん:03/01/12 15:53
>>816
プロジェクトフォルダ\classes\以下をコピーして配布すれば良し。

818 :デフォルトの名無しさん:03/01/12 15:59
>>817
有難うございます。
早速、友人に見てもらいます...

819 :デフォルトの名無しさん:03/01/12 17:34
>>814
http://java.sun.com/j2se/1.4.1/docs/api/java/lang/Class.html#getMethods()


820 :お茶:03/01/12 18:45
Meのパソでj2sdk1.4.0を導入したんですが
javacでコンパイルができません。
PAHTは調べて
C:\WINDOWS;C:\WINDOWS\COMMAND;C:\J2SDK1.4.0_<version number>\BIN
を通してるんですが間違いですか?
あと気になるのはメモ帳で保存しているのですが、
前使っていたjbuilderのアイコン表示なんです。
よろしくお願いします。

821 :デフォルトの名無しさん:03/01/12 18:51
JAVA環境の場所を再度確認してPATHとあってるか確認せよ
DOS窓でだめなんだよね?

822 :あほぉ:03/01/12 18:53
javaはじめました。クラスというのはCでいう構造体みたいなもの
なのですか?なんだかにてるんで質問してみました。

823 :デフォルトの名無しさん:03/01/12 18:53
コンパイルできないとは?
1)javacが起動しない。
2)コンパイルエラーがでる。
とか色々あるだろ。もっと詳しく書けや。
> C:\WINDOWS;C:\WINDOWS\COMMAND;C:\J2SDK1.4.0_<version number>\BIN
って<version number>は対応した数字を入れているんだろうな?

824 :お茶:03/01/12 18:56
>821
はい、DOS窓でjavac **.java
ってやってダメです…。
なんかMeのパスって少ないんですよね(w
も1回最初からインストールしなおして
やってみるのもいいんですか?

825 :デフォルトの名無しさん:03/01/12 18:56
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ


826 :デフォルトの名無しさん:03/01/12 18:58
たぶんパス設定にミスがあるだけだと思う
ここに設定されてるパス全部コピペしてみ
多分¥がないとか;がないとかだと思うけど

827 :デフォルトの名無しさん:03/01/12 18:58
>C:\J2SDK1.4.0_<version number>\BIN
コレって本当にJDKをインストールしたフォルダのパス?
まさか、本の丸写しで実際と違うとかないよね。

あと、Autoexec.bat に書いてるのに再起動してないとか。


828 :デフォルトの名無しさん:03/01/12 18:59
身障が一名

829 :お茶:03/01/12 18:59
>823
多分javacが起動しないみたいです。
ためしにbinからコンパイルしたんですが、一個エラーがでます。
<version number>は…ちょっと分からないです。
プログラム厨房なのですいません。。

830 :デフォルトの名無しさん:03/01/12 18:59
dos 窓で
echo %path%
して、ここに貼りやい

831 :デフォルトの名無しさん:03/01/12 19:01
>>829
>プログラム厨房

OSの知識すら根本的に・・・。

832 :デフォルトの名無しさん:03/01/12 19:01
>829
だから、エラーの内容は。

><version number>は…ちょっと分からないです。


833 :お茶:03/01/12 19:01
>>826
>>827
本の丸写しでした…

834 :デフォルトの名無しさん:03/01/12 19:03
◆◇◆◇◆最新情報◆◇◆◇◆
http://yahooo.s2.x-beat.com/linkvp/linkvp.html

835 :デフォルトの名無しさん:03/01/12 19:03
>>833
環境変数PATH の意味をぐぐって少し勉強せれ。
簡単だから。

836 :デフォルトの名無しさん:03/01/12 19:03
終了ー

837 :デフォルトの名無しさん:03/01/12 19:04
>>833
そこはインストールしたバージョンによるのだ
エクススローラでフォルダ名確認して修正せよ

838 :デフォルトの名無しさん:03/01/12 19:05
テキストデータには以下のような3列の数字が入ってまして(行は未定)、
 1 3 5
 2 4 0.5
 6 3 0.1
1列目,2列目,3列目をそれぞれ配列x[i],y[i],z[i](iは行数-1になります)に入れて表示したいんですが動きません。
書いたソースの一部を見てください。どこがおかしいですか?
コンパイルはとおりました。
final int size = Integer.parseInt(args[0].substring(0, args[0].indexOf('.')));
try{
FileReader fr = new FileReader(args[0]);
BufferedReader br = new BufferedReader(fr);
String s;
String x[] = new String[size];
String y[] = new String[size];
String z[] = new String[size];

int i = 0;
while((s = br.readLine()) != null){
StringTokenizer st = new StringTokenizer(s);
while(st.hasMoreTokens()){
x[i] = st.nextToken();
y[i] = st.nextToken();
z[i] = st.nextToken();
}
System.out.print(x[i]+' ');
System.out.print(y[i]+' ');
System.out.println(z[i]);
i++;
}

839 :デフォルトの名無しさん:03/01/12 19:05
次の方どうぞ

840 :お茶:03/01/12 19:06
ありがとうございます!
ちょっとチャレンジしてみます

841 :デフォルトの名無しさん:03/01/12 19:11
キタキタキタキタ━━━(゚∀゚≡(゚∀゚≡゚∀゚)≡゚∀゚)≡゚∀゚)≡゚∀゚)≡(゚∀゚≡゚∀゚)≡゚∀゚)≡(゚∀゚≡゚∀゚)≡゚∀゚)
≡(゚∀゚≡゚∀゚)≡゚∀゚)≡(゚∀゚≡゚∀゚)≡゚∀゚))≡(゚∀゚≡゚∀゚)≡゚∀゚)≡(゚∀゚≡゚∀゚)≡゚∀゚)≡(゚∀゚≡゚∀゚)≡゚∀゚))≡(゚∀゚≡゚∀゚)≡゚∀゚)≡(゚∀゚≡゚∀゚)≡゚∀゚)≡(゚∀゚≡゚∀゚)≡゚∀゚)
≡(゚∀゚≡゚∀゚)≡゚∀゚)≡(゚∀゚≡゚∀゚)≡゚∀゚)≡(゚∀゚≡゚∀゚)≡゚∀゚)━━━━!!!!!!!!!

842 :デフォルトの名無しさん:03/01/12 19:21
>>838
動かない、ってのが何を意味しているのかわからないが、
>2 4 0.5
これってのは
2 4 0.5
と表示されるのを期待している?
0. 5の間にスペースがあるから結果は
2 4 0.
になると思う。

843 :デフォルトの名無しさん:03/01/12 19:24
>System.out.print(x[i]+' ');
>System.out.print(y[i]+' ');
半角スペースが二つも入っているけど、元ソースもそうのなの?
文字"列" なら "" で括りなさいよ。

844 :843:03/01/12 19:26
しまった。無し無しスマン。
Proxomitron のフィルタのせいだった。ごめんよ。


845 :838:03/01/12 19:37
レスありがとうございます。
>2 4 0.5
>と表示されるのを期待している?
その通りです。

実際のデータには0.5の間にはスペースはありません。
エラーを見てください。
Exception in thread "main" java.lang.NumberFormatException: For input string: "g
raph"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at Dik.main(Dik.java:7)

846 :デフォルトの名無しさん:03/01/12 19:44
>final int size = Integer.parseInt(args[0].substring(0, args[0].indexOf('.')));
(中略)
>FileReader fr = new FileReader(args[0]);
(中略)
>String x[] = new String[size];

この流れ、何?

847 :デフォルトの名無しさん:03/01/12 19:46
どこぞから来たargs[0]のドット以前parseIntしてるのと、
配列のサイズに何の関連が??

ファイル名が、"3.txt"なのか?

848 :838:03/01/12 19:53
>>847
えっと、3.txtだとか1000.txtだとかにすると動きます。
と言うか普通どう書くのか分からないんですが・・・。どう書くんでしょうか。

849 :デフォルトの名無しさん:03/01/12 19:55
こっちが聞きたいよ…。
君は何がしたいんだ?

850 :デフォルトの名無しさん:03/01/12 19:56
昨日からいるコピペ荒らしができるようなツールが作りたいです。

851 :846-847:03/01/12 20:04
ま、ネタ。という事で。

852 :デフォルトの名無しさん:03/01/12 20:09
>>850
そのコピペ荒しが書き残したage2chスレに逝ってよし。

853 :赤便先生:03/01/12 20:18
// args[0]はたぶんmain(String[] args)とかの物と思われ。
// try-catch略

BufferedReader br = new BufferedReader(
new FileReader(args[0])
);
String s;

while((s = br.readLine()) != null){
StringTokenizer st = new StringTokenizer(s);
while(st.hasMoreTokens()){
System.out.print(st.nextToken()+' ');
}
}

br.close();


854 :デフォルトの名無しさん:03/01/12 20:20
関係無いが、今一瞬....

サーバの負荷が高いので書きこめません。
(25.77 : 目標は 5.00 以下)
--------------------------------------------------------------------------------
もちろん、このページをリロードするのも負荷かかります。

なんてページ出た。初めてだたので、ビクーリしたYO

855 :814:03/01/12 20:23
>819さん、

ありがとうございます!これから試してみます。

856 :デフォルトの名無しさん:03/01/12 20:29
DDTアドレスは、何日保存されるんだろか。

857 :デフォルトの名無しさん:03/01/12 20:32
プ(^_^;)誰が無責任でいいなんて書いたのかな
ちゃんと削除依頼のルールを守って待てばいいだけの事じゃん
強要するのはボランティアに物を頼む態度じゃないんだって最低限の礼儀ぐらいは弁えろよクソガキ君(^_^;)

858 :デフォルトの名無しさん:03/01/12 20:42
大変なんですねぇ・・・頑張ってヽ(´ー`)ノ

859 :デフォルトの名無しさん:03/01/12 20:47
>>814
>y[i] = st.nextToken();
この行で NoSuchElementExceptionException が発生しとる。
ほんで、catch まで飛ぶから何もでない。
因みにこの時、x[i] には一行丸々入ってる。

860 :デフォルトの名無しさん:03/01/12 20:48
× >>814
>>838

861 :デフォルトの名無しさん:03/01/12 21:24
>>859-860

>>846-847 見れ。解決しとる。

862 :デフォルトの名無しさん:03/01/12 22:02


863 :デフォルトの名無しさん:03/01/12 22:47
二次元配列の使用例として授業の配布物に書かれていて、
実際に作って実行しても
うまくいかないのですがどこか間違っているのでしょうか?

二次元配列が良くわからないのですが・・・・


public class pr03{
  public static void main( String[] args ){
  int chukan=0;int kimatu=1;
  int eigo=0;int kokugo=1;int sugaku=2;
  tensu[chukan][eigo]=80;
  tensu[chukan][kokugo]=70;
  tensu[chukan][sugaku]=75;
  tensu[kimatu][eigo]=70;
  tensu[kimatu][kokugo]=90;//
  tensu[kimatu][sugaku]=85;//
  int eigoGoukei=tensu[chukan][eigo]+tensu[kimatu][eigo];
  System.out.println(eigoGoukei);
  }
}

因みにpublic class〜の部分とpublic static〜の部分は配布物には書かれていませんでした・・・・

864 :デフォルトの名無しさん:03/01/12 22:48
>>863訂正

public class pr03{
  public static void main( String[] args ){
  int chukan=0;int kimatu=1;
  int eigo=0;int kokugo=1;int sugaku=2;
  tensu[chukan][eigo]=80;
  tensu[chukan][kokugo]=70;
  tensu[chukan][sugaku]=75;
  tensu[kimatu][eigo]=70;
  tensu[kimatu][kokugo]=90;
  tensu[kimatu][sugaku]=85;
  int eigoGoukei=tensu[chukan][eigo]+tensu[kimatu][eigo];
  System.out.println(eigoGoukei);
  }
}

失礼しました・・・・

865 :デフォルトの名無しさん:03/01/12 22:48
>>863
そもそも配列が宣言されてません。

866 :デフォルトの名無しさん:03/01/12 22:53
>>865
どこを直せば良いのでしょう?


867 :デフォルトの名無しさん:03/01/12 22:58
>>866
その授業の単位取るのあきらめる。 

868 :デフォルトの名無しさん:03/01/12 23:09
>>864
int M = ?;
int N = ?;
int[][] tensu = new int[M][N];

869 :デフォルトの名無しさん:03/01/12 23:10
>>863
>>864
>うまくいかない
とは
どう うまくいかないのか?
丁寧に書かなければ答えてもらえません

この質問の答えは教科書を読めば
わかると思います



870 :デフォルトの名無しさん:03/01/12 23:11
>>869
どっちにしろ。



>>865
どこを直せば良いのでしょう?



だろ?

871 :デフォルトの名無しさん:03/01/12 23:31
↓書き直したらうまくいきました
public class pr03{
  public static void main( String[] args ){
  int chukan=0;int kimatu=1;
  int eigo=0;int kokugo=1;int sugaku=2;
  int n=3;int m=3;
  int [][]tensu=new int [m][n];
  tensu[chukan][eigo]=80;
  tensu[chukan][kokugo]=70;
  tensu[chukan][sugaku]=75;
  tensu[kimatu][eigo]=70;
  tensu[kimatu][kokugo]=90;//
  tensu[kimatu][sugaku]=85;//
  int eigoGoukei=tensu[chukan][eigo]+tensu[kimatu][eigo];
  System.out.println(eigoGoukei);
  }
}

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

872 :( ・∀・):03/01/12 23:34
yahooで2chのアクセスログ記録開始についての投票やってる  
http://dailynews.yahoo.co.jp/fc/computer/2channel/  一番左下
みんなも投票しよう 賛成54% 反対27%

コピペ、スレ建て推奨

873 :デフォルトの名無しさん:03/01/13 00:29
>>863
>二次元配列が良くわからないのですが・・・・
深く考えることはない。ただの "配列の配列" だ。

874 :デフォルトの名無しさん:03/01/13 00:40
>>863
ただのポインタのポインタだ。

875 :デフォルトの名無しさん:03/01/13 03:30
Java流行ってませんねぇ・・・。
もう終焉時ですかね。

876 :デフォルトの名無しさん:03/01/13 04:14
part14の944です。

>>> 944
>>ところでさぁ、可変長配列にVectorっていうのなら連想配列にはHashtableで、
>>連想配列にMapっていうのなら可変長配列にはListっていったほうが対応がよいのだが、どうか。
> 全然対応がよくない。そもそもインターフェースを理解していないあなたは氏ね。

なぜ対応がよくないのかよくわからないので、素の馬鹿なんだとおもいますが。

          |可変長配列 |連想配列|導入バージョン
クラス      |Vector    |Hashtable|1.0
          |ArrayList   |HashMap |1.2
インターフェイス|List      |Map    |

となるので、Vector-MapよりもVector-Hashtable、List-Mapの方が対応がよいと思うのですよ。
どこが間違ってるか指摘おねがいします。



877 :デフォルトの名無しさん:03/01/13 04:17
その対応をしっかりとったとして何がうれしいのか教えてください

878 :デフォルトの名無しさん:03/01/13 05:01
何がうれしいのかと聞かれても困るのだが、対応がよいと思ってたのに対応がよくないと指摘されたからどう対応がよくないのか知りたいのです。

879 :デフォルトの名無しさん:03/01/13 05:20
>>878
そもそも対応がいいだの悪いだのという評価軸が存在しないでそ。
実装を選ぶ基準はその機能。

880 :878:03/01/13 05:22
もとスレで「VectorかMap」という発言があったのですよ。
そう挙げるなら「ListかMap」「VectorかHashtable」のほうが対応がよいのではないか、という話のながれです。

881 :デフォルトの名無しさん:03/01/13 05:25
>>880
そういう話なら、そこで用いるべき正しい名前は「Colleciton」ですな。

882 :デフォルトの名無しさん:03/01/13 05:33
無限ループ内でキーボードからの入力待ちにしておいて
入力したキーワードに応じて異なる処理をさせる場合、
対応させておくキーワードが少ない場合は、if文などで
それぞれ比較していけばいいと思うのですが
その数が多くなるとプログラムが何かすごく見づらく
分かりにくくなってしまいます。
この様な場合、一般的にはどういった方法で処理を行っているんでしょうか?

883 :デフォルトの名無しさん:03/01/13 05:45
>>882
処理を実行するクラスに共通する呼び出しインターフェースを実装させて
文字列(コマンド?)をキーにしてハッシュマップに突っ込んでおく。

入力された文字列でマップから取り出してインターフェースを通じて実行。

つうかコマンドパターンだな


884 :デフォルトの名無しさん:03/01/13 05:58
>>883
レスありがとうございます。
早速作ってみたいと思います。
まだ初めて間もないので分からなくなったらまた聞きに来ます・・・

885 :デフォルトの名無しさん:03/01/13 07:05
次スレ建て終わりました。
しかし書き込む件数もここまで増えると
あいだに誰かはいって代わりに書き込んでもらうか
IP変えるかしないと連続投稿エラーがでますね。

http://pc3.2ch.net/test/read.cgi/tech/1042407622/l50
【初心者】Java質問・相談スレ16【大歓迎】

886 :デフォルトの名無しさん:03/01/13 07:20
前スレの998
http://pc3.2ch.net/test/read.cgi/tech/1040150533/998


>JInternalFrameは、
>バージョン1.3の時、あまり使わないほうが良いとか、
>非推奨とかいう文面をみたことがある。

私の知る限りでは
1.3におけるJInternalFrameは
JInternalFrame内にはりつけたスライダーが
表示されないなどのバグがありました。
1.4では解決しているけど。

1.3のJInternalFrameには、ほかにもなにか問題あるのかな。

887 :878:03/01/13 13:04
>>881
Collectionは「可変長配列」ではないですよね?
逆はただしいですけど。

888 :デフォルトの名無しさん:03/01/13 13:30
>>887
Vector is Collection

889 :デフォルトの名無しさん:03/01/13 14:27
>>887
http://java.sun.com/j2se/1.4.1/docs/api/java/util/Collection.html


890 :デフォルトの名無しさん:03/01/13 14:32
887のいっていることにはなんら問題ないと思うが。

891 :デフォルトの名無しさん:03/01/13 14:48
CollectionにしてもListにしてもただのinterface.
LinkedListとか、実装が可変長配列でないListもある。

892 :デフォルトの名無しさん:03/01/13 16:59
JSPでパッケージに所属していないクラスを使ったらシンボルが
解決できませんってエラーが出た。

こういう場合ってどうすればいい?
Importでパッケージに所属していないクラスを使うと明示的に宣言できない?

893 :デフォルトの名無しさん:03/01/13 17:08
このスレの連中、スキルが低いな。
やっぱり所詮Java厨って事か。
つまらーんところで悩んでるよ(藁

894 :デフォルトの名無しさん:03/01/13 17:26
>>892

とりあえず、エラーの内容を書き込め。

895 :デフォルトの名無しさん:03/01/13 17:28
>>893

>>892はここでも数年に一度出るかでないかのバカだから一緒にしない方が良い。

896 :デフォルトの名無しさん:03/01/13 17:35
JSPのクラスをコンパイルできません。ってエラーが最初に出て
次にエラーの行とシンボルを解決できません。って出ます。
最後にシンボル:クラス Monaって出ます。
Monaクラスは確実に存在してます。
パッケージは宣言していません(Monaクラス)

897 :894:03/01/13 17:40
>>896

アプリサーバは何を使っているのかという情報や、Monaはどこにあるのかという情報
を書かないと分からないだろ。

質問のやり方から勉強してくれ。

898 :山崎渉:03/01/13 18:24
(^^)

899 :デフォルトの名無しさん:03/01/13 22:08
でも前スレがああだしさ。

900 :山崎渉:03/01/15 17:50
(^^)

901 :デフォルトの名無しさん:03/01/16 00:27
Servlet&JSPの勉強をしているんだけど
どーしてもJavaBeansを使うメリットがわかりません。
JSP側で ClassA classA = request.getAttribute("param");
で何がいかんの??

902 :デフォルトの名無しさん:03/01/16 00:37
>>901
で、JavaBeans って何? 教えてください。901さん

903 :901:03/01/16 00:47
実はそもそもそれがよくわかってない
setXXXXX
getXXXXX
implements Serialize
する、、でそれが何?って感じ・・
ただ、JSPからuseBean:getProperteする時リターン値でクラス受け取れないよね?
つまりgetXXXXXのリターン値がオリジナルのクラスだったりしたら都合悪いんでしょ?
Beansっていったいなんなの?

904 :デフォルトの名無しさん:03/01/16 01:04
>>901 struts使えばBeanが非常に便利なものに見えますよ。

JSP/ServletのBeanとBDKのBeanやEJBのBeanと一緒には考えない方がいいと思います。

カプセル化した値をget, setで管理するようなものです。

>つまりgetXXXXXのリターン値がオリジナルのクラスだったりしたら都合悪いんでしょ?
いやそんなことないと思う。

とりあえずサンプルを実際に動かして試してみてはどうでしょう。
そうすれば利用価値がわかります。

905 :デフォルトの名無しさん:03/01/16 01:15
>>903
プロパティという概念がなかったため、そうするしかプロパティへのアクセス制限が出来なかったわけです。



906 :デフォルトの名無しさん:03/01/16 01:16

JavaBeansの利用は
・複数のServletやJSP間で複数のオブジェクトをまとめて共有するのに便利
 (ECサイトのショッピングカートとか)
・値を直接操作しないでカプセル化する
 (なぜカプセル化するのかはJavaではなく、オブジェクト指向の話になるので割愛)

>getXXXXXのリターン値がオリジナルのクラスだったりしたら都合悪いんでしょ
そんなことはありません。

実装レベルで「動けば何でも同じ」と思っている人にはわからないかもしれないが、
設計段階からモノを「オブジェクト」として捉えていれば JavaBeansの利用は自然な事として考えられる。

>JSP側で ClassA classA = request.getAttribute("param");
>で何がいかんの??
に対しては
”JSPの可読性を上げる”
が答えかな。勉強始めたばかりの頃は簡単なソースやサンプルしか見ないから
その利用価値がわかりにくいのかも。


907 :デフォルトの名無しさん:03/01/16 01:18
私もJavaBeansというものがよくわかっていないのですが、
あれはコンポーネント指向とかいうような類のものなのでしょうか

すでに出来合いのBeanを組み立てツールを使っていろいろと組みあわせれば、
ろくにコードを書かなくともアプリが作れるというような。

908 :デフォルトの名無しさん:03/01/16 01:20
>>907
絵空事ッス。
強靭なフレームワークが無いことには役に立たないし、
しょせんそのフレームワーク依存のコンポーネントしか作られません。
でした。

909 :デフォルトの名無しさん:03/01/16 01:28
>>907
実際には同一アプリ内の複数箇所で再利用できる程度に考えていた方がいい。

出来合いの・・・・は現実的ではないね。


910 :デフォルトの名無しさん:03/01/16 07:42
IDEでの使用を前提とした技術だよ。JavaBeans

set〜() get〜()はプロパティとしてIDEのプロパティウインドウに表示させるためのもの。
それ以外はメソッドとして区別する。
Serializeが付いているのはIDEでの編集結果(コントロールの大きさとか値とか)をファイルに保存するため。

911 :デフォルトの名無しさん:03/01/16 08:19
>>910
ここはいつからネタスレになった?

912 :デフォルトの名無しさん:03/01/16 08:43
>>911
間違いを訂正出来ないなら出てくんなよ。

913 :デフォルトの名無しさん:03/01/16 21:08
Excelsior JET 使っている人いますか?

914 :デフォルトの名無しさん:03/01/16 21:36
>>912
間違いも何も書いてることが全部ウソってわかんないの?

915 :デフォルトの名無しさん:03/01/16 21:40
>>914
http://gimlay.org/~javafaq/S132.html
によれば >>910 がそれほど間違ってるとは思えないんだが。

916 :デフォルトの名無しさん:03/01/16 21:56
JavaBeanって言っても、3種類ほどあるわけで。

917 :デフォルトの名無しさん:03/01/16 21:58
一番わかってないのは>>914でした。と。

はい、次。


918 :デフォルトの名無しさん:03/01/16 22:01
>>915
「IDEでこう使える」と「IDEで使うためにある」とは全く違う。
どこをどう読むと「前提とした技術」「〜のためにある」になるんだ???
JCPがひっくり返るぞ。

919 :デフォルトの名無しさん:03/01/16 22:04
>>918
言葉尻じゃん。

920 :デフォルトの名無しさん:03/01/16 22:05
最初からそう書けよ。プププ

921 :デフォルトの名無しさん:03/01/16 22:07
>>920
同意。結局ヒントが与えられないとツッコミすらまともに出来なかった。

922 :デフォルトの名無しさん:03/01/16 22:11
誤認を指摘されて逆切れですか。プププ

923 :デフォルトの名無しさん:03/01/16 22:12
IDEでの使用を前提とした技術→大嘘
IDEでの使用を前提とした技術ではない。

set〜() get〜()はプロパティとしてIDEのプロパティウインドウに表示させるためのもの→大嘘
アクセッサメソッドはカプセル化されたプロパティにアクセスするためにある。

Serializeが付いているのはIDEでの編集結果(コントロールの大きさとか値とか)をファイルに保存するため→大嘘。
HttpSessionは.serファイルとしてファイル化させることがServlet2.2以降の仕様で決まっている。ファイル化するにはjava.io.Serializableを実
装する必要がある。

924 :デフォルトの名無しさん:03/01/16 22:14
粘着って扱い切れない
マジ氏んで欲しい

925 :デフォルトの名無しさん:03/01/16 22:15
>>924
同意。

926 :デフォルトの名無しさん:03/01/16 22:16
>>924==>>925

間違いを認めろよ。今なら「僕はウンコ人間でした。ごめんなさい」で許してやるよ(藁藁藁藁藁

927 :デフォルトの名無しさん:03/01/16 22:19
>>926
正体? 

928 :デフォルトの名無しさん:03/01/16 22:24
>>927
意味不明

929 :デフォルトの名無しさん:03/01/16 22:30
素直に謝れない人間が多いな。

930 :デフォルトの名無しさん:03/01/16 22:35
横槍失礼。
豆を、「JSPがサーブレットから値を受け取る入れ物」的な考え方で使うなら、あんまり意味は無いわな。
でもここでまともにMVC意識するなら、例えばサーブレット(コントローラ)からビジネスロジック(モデル:Beanとして外部に実装)を経由して、
JSP(ビュー)に値を渡す時に、その値とその周辺処理をカプセル化して渡せた方が都合がいいよな。

まして、その値は単純な値(下駄世田のみの)かもしれないし、コンポジションかもしれない。
どっちの場合でも、カプセル化されてれば、JSPはそのメソ使うだけだよな。

ましてサーブレットが返すそのBeanがいくつか内容の異なる実装を持つなら、
Beanのインタフェースだけ決めておいて、そいつを使って、アクセスできれば、
(例えばFlyWeightPatternでぽこぽこ出力されるBean、とか。あんま使わないが)
JSP側はかなり簡単になるよな。

Beanの存在意義って、俺の中ではそんな感じ。憎いアイツって感じ。


931 :デフォルトの名無しさん:03/01/16 22:43
例)
interface IBean {
  public getArgs();
}

class BeanA implements IBean {
  public getArgs() { return "ほげ"; }
}

class BeanB implements IBean {
  public getArgs() { /* なんかDBとかから */ }
}

.... サーブレットは BeanAかBeanBのインスタンスを setAttributeする。

<jsp:useBean id="hoge" class="foo.bar.IBean" />
<%
 // JSPは豆がなんでも気にしない。
 out.println(hoge.getArgs());
%>

これがメリットかね。...って、これだけじゃないが。応用して読み替えてみるべし

932 :930-931:03/01/16 22:45
>>931 自己レス。
スマソ。
public getArgs() { .. } は、
public String getArgs() { ... } とかにでも読み替えてくれ。


933 :デフォルトの名無しさん:03/01/16 22:45
ペイントで書いた絵が表示されなくて困っています
一筆で書かないとダメだと言うことを聞いたことが
あるんですが、どうなのでしょうか?


934 :デフォルトの名無しさん:03/01/16 22:49
>>933
ネタ。あるいは騙されている。

935 :デフォルトの名無しさん:03/01/16 22:55
>>933
一筆じゃないと無理
力の入れ方も均等にな

936 :デフォルトの名無しさん:03/01/16 22:59
また煽り馬鹿が出たが皆気にしないように


>>931 なんかクラスにフィールドがないからBean使うの勿体無いように見える。
> out.println(hoge.getArgs());
<jsp:getProperty> 使ったヤシの方が説明としてわかりやすいと思う。

どうせなら IBeanとかいう、ハンガリアン記法みたいな頭のIははずしてもいいんでない?
C++やC#つかっているわけでもないんだし。

C++やC#の場合は継承も実装もコロンを使うから区別がつきにくい。
が、Javaの場合は継承時にインタフェースを実装しているときはimplements、
クラスを継承しているときはextendsキーワードを使っているので
IをつけようがCをつけようがつけまいがクラスとインターフェースの違いにはさほど困らないでしょう。

937 :933:03/01/16 23:02
>>936
あのぅ…実際はどっちなんですか?

938 :デフォルトの名無しさん:03/01/16 23:16
javaで作ったプログラムを実行するにはどうしたらいいですか?
MS-DOSプロンプトでいいんですよね?

939 :デフォルトの名無しさん:03/01/16 23:27
>>938 コンパイルしたなら実行方法くらいわかるだろ
本読め

940 :デフォルトの名無しさん:03/01/16 23:29
>>938
http://pc3.2ch.net/test/read.cgi/tech/1042407622/2
この辺でも見て頑張ってください。

941 :デフォルトの名無しさん:03/01/16 23:31
本持ってません・・・

942 :デフォルトの名無しさん:03/01/16 23:37
本屋に落ちてるよ

943 :デフォルトの名無しさん:03/01/16 23:38
>>940
ありがとうございます。
今から読んでやってみます。

944 :930-932:03/01/16 23:47
>>936
>>931 なんかクラスにフィールドがないからBean使うの勿体無いように見える。
...あの、レスはありがとうなんだけど、アレってサンプルだからさ。
要するに意味としては、Interface使ってJSP側に「ソレがどこから来た何であるか」を意識させない、つまり
カプセル化の恩恵って部分を書いたつもりなんだけど...。じゃなきゃinterfaceから書かないし。

>どうせなら IBeanとかいう、ハンガリアン記法みたいな頭のIははずしてもいいんでない?
あれは俺のクセです。(笑
ていうか、インスタンス名みて単純にわかるようにしただけ。つーか話の主旨と関係無いよね。
ちなみに、あるInterfaceを実装したクラスについて、

FooImpl

みたいに書くのは、どうかね。俺は嫌い。

945 :930-932:03/01/16 23:52
>>936
><jsp:getProperty> 使ったヤシの方が説明としてわかりやすいと思う。
そういえばそうだな。(笑

ちなみに多態を用いたカプセル(この場合はBean)の運用のメリット示すなら、
本当は<% .. %>等のスクリプトレットを直書きするんじゃなくて、
taglib使って、その中にその周辺Bean(インタフェース)の操作ロジックを隠してしまう方が、
分業度があがるよな。

俺の場合、会社に"HTMLデザイン専門!"なんてヤツはいないので、良く手抜きしてソース汚ししてまつ。
...ホントはね、完全な分離をしたいんだけどさ。

946 :デフォルトの名無しさん:03/01/17 00:12
>>944
漏れも人にサンプル書く時は、"IBar"のような書き方するYO。
>>936はServerSideJavaの知識に乏しい香具師。
厨房相手に先生になりたいだけだから、話そらしてると思われ。


947 :デフォルトの名無しさん:03/01/17 00:13
素朴な疑問なんですが、Stringの長さを取得するメソッドが
getLength()じゃなくてlength()なのは何故ですか?


948 :デフォルトの名無しさん:03/01/17 00:15
>>946
>>936はServerSideJavaの知識に乏しい香具師。
乏しいというか、経験が少ないんだと思う。
オレはどっちかというと、>>930-932の言う事の方がわかる。

関係無いが、さっきなんかCGI落ちたみたい。


949 :936:03/01/17 00:16
>>944 主旨はずしてスマソ

いや気になってしまったのです。

俺もImplはもっと嫌
そこらへんはネーミング倶楽部のスレッドで情報得られるかも。
あとはデザインパターンで使われているような名前使ったり、
クラス名に意味を与えたり...とか。

>>945 より完全に近い分離を実現するならJakarta-strutsとかがいいと思う。
Jakartaという技術評論社の雑誌に使い方が載ってました。
なかなか便利な使い心地です。

ソースを汚している、と思ったらHTMLをXHTMLかしてW3Cのサイトあたりで
HTMLファイルを検証するというのもありです。

950 :デフォルトの名無しさん:03/01/17 00:18
>>947
たまたま。

951 :デフォルトの名無しさん:03/01/17 00:22
>>950
public static String File.getSeparator();
じゃなくて
File.separator;
になってるのもたまたま?
慣れればそんなもんかと思うだろうけど一貫性がないからキモイよぅ。

952 :951:03/01/17 00:23
>>951 コードの部分変だけど脳内変換して読んで。

953 :944-945:03/01/17 00:29
>>949
>より完全に近い分離を実現するならJakarta-strutsとかがいいと思う。

そうね。今は便利だよね。古くは、
JspTemplate -> taglib -> Struts ... ていうか、Strutsもtaglib集だけど。(だけじゃなかったっけ?)
昔、デビッド・ギアリーのCompositeViewパターン(Core J2EE Patterns)についての記事を
雑誌で見たけど、完全な分業をフレームワークとして提供できる(つまり実装されたものとして)ようになると、
きっともうちょっと仕事の線が明確になるんだろうなって思った。
...って、まだStrutsはライブラリをインストールしただけだけど。

>HTMLをXHTMLかしてW3CのサイトあたりでHTMLファイルを検証するというのもありです。
??これって、関係無い話だよね。


954 :デフォルトの名無しさん:03/01/17 00:33
>クラス名に意味を与えたり...とか。
普通与えるだろ。意味の無い名前はサンプル書く時だけ。Prefixは意味じゃないのか?

955 :デフォルトの名無しさん:03/01/17 00:36
>>951
>File.separator;
>になってるのもたまたま?

静的な値は大抵フィールドに定義するだろ。staticに。
メソッドで取得するのは、それが動的なモノだから。あるいは、動的なモノを含んでいるから。

>>947 のケースは、「命名について」そう言ったまで。

956 :944-945:03/01/17 00:43
>>949
念のため言っておくと、XHTMLは「再定義可能なHTML(変な言い方)」でしかなく、
それ自体は、サーバサイドから見たら、ただの構造化されたデータでしかない。
JSPに使われるtaglib等のロジック隠蔽化タグは、それ自体がJ2EE上に標準としてあるエンジンで
解釈されて動的に処理をする。

だから、ちょっと関係無い話だよね。

# ま、もっともXHTMLのパーザがあって、「ロジックを埋め込む」規範があって、
# DTDまで標準になってたら、動的なデータと言えるのかもしれないけど。ただ、そうなると、
# XMLでは無くなるな。

957 :デフォルトの名無しさん:03/01/17 00:45
949は厨房なので、マジレス返さないように。

958 :949:03/01/17 01:02
>>954
>普通与えるだろ。意味の無い名前はサンプル書く時だけ。Prefixは意味じゃないのか?
そういわれるとそうですけど、もっと具体的な意味(具体的過ぎない程度に)を考え、もっと解りやすい名前にするんのす。
ネーミングにこだわるためにポリモーフィズム使うこともあります。スーパーすらスまたはインターフェースの
中身は空ですが後々の拡張のことを考えてこういうものを作ることがあります。

>>953 ある程度出来上がっているのに途中からstrutsやJ2EE使うってのも厳しいですね。
昔はstruts使えなくでJSPでスクリプトレット書いてソース汚しました。
Beanも使わないでrequest.getParameter()ばかり使ってしもた...。

>>956 JSPにXHTMLがどうこうは確かに関係ない話だった。スマソ。
そもそもJSP自体がXMLになっているということを忘れてた。
XHTMLとかの話だと、HTMLファイルをJSP化する前の、
デザイナーがやることに関する話でしたね。



959 :デフォルトの名無しさん:03/01/17 01:18
>>955
なるほど。良く分かる説明ありがとうございました。
ってことはStringがlength()なのも納得いきます。

960 :デフォルトの名無しさん:03/01/17 01:28
俺は逆だな。
interface には prefix はつけず、実装クラスに Impl の suffix をつける。
利用するときには Impl クラスはコード上で現れず、
もっぱら interface に対してプログラミングするのだから。

961 :901:03/01/17 01:53
ここ見たけど、やっぱりjavaBeanわかんない
皆の意見の「Bean」のところを全部「クラス」に置き換えても
全部意味が通じるんとちゃうの?

クラスとJavaBeansの違いは何??

自分も最初
>>910
というイメージをしていたんだけど、これが大嘘だというから始末が悪い・・

最近「Beansにしとけばツール一発でWEBサービス作成してくれるツール」
とか、あるみたいだけど、結局クラスならなんでもWEBサービスにしてくれるっぽいんですけど・・・

まったく間違っていたら申し訳ないが
Beansってのは「アクセッサメソッドを持ってシリアライズ可能」っていうただの「決まり」で
この決まりをJavaで実現すると、setXXXX,getXXXXを実装してimplements Serializeすることになるから
これをJavaBeansと呼んでいる・・ってイメージ?ちがう??

962 :デフォルトの名無しさん:03/01/17 01:56
JRE 1.1.8 の AWT で
ScrollPaneの絵画速度を最適化するのはどういったワザがありますか
JRE 1.3.1 とか 1.4.1 はデフォルトで最適化されているそうですので

963 :デフォルトの名無しさん:03/01/17 02:06
>>955
Singletonパターンでよく使うgetInstance()なんかの説明にはなってませんね。

964 :デフォルトの名無しさん:03/01/17 02:12
>>962
えーと、JRE 1.1.8 の ScrollPane が「最適化」されてない、
ってゆーのであれば 1.3.1 や 1.4.1 でなされている
「最適化」とやらと同じ事してやれば良いだけのような…

965 :デフォルトの名無しさん:03/01/17 02:34
>>961
まったく間違っていたら…
より後の部分が実は一番真相に近い。が、
JavaではないBeanというものがあるのかどうかは???

966 :デフォルトの名無しさん:03/01/17 04:48
部品として使うクラスをBeanと呼ぶことにしてるだけのような。


967 :デフォルトの名無しさん:03/01/17 04:54
オブジェクト指向にせよ、デザインパターンにせよ、
決まりを守ることで成り立ってる。

968 :966:03/01/17 06:13
Beanっていうのは、コードの書き方じゃなくて、設計パターンに近いということですな。

969 :れん:03/01/17 06:30
早朝からすみません。
Javaはリトルエンディアンで設計されているんでしょうか?
どうも自信がなくて、よろしくお願いします

970 :デフォルトの名無しさん:03/01/17 08:20
>>963
ハァ?
>素朴な疑問なんですが、Stringの長さを取得するメソッドが
>getLength()じゃなくてlength()なのは何故ですか?
が、たまたまなんだYO!

>Singletonパターンでよく使うgetInstance()なんかの説明にはなってませんね。
それこそ動きを表した意味の命名だろ?

そんな説明求められて無ぇよ。


971 :デフォルトの名無しさん:03/01/17 08:22
>>961
"Bean"を"クラス"に置き換えても意味は通じるが、
"クラス"を"Bean"に置き換える事はできない。

つまり、>>968 正解。

972 :デフォルトの名無しさん:03/01/17 08:22
>>967
大雑把すぎ。

973 :デフォルトの名無しさん:03/01/17 09:07
>>967
デザインパターンは、ただのイディオム。というか再利用の為のTips。
とくに最近聞かれるGoF等のパターンは、OOを前提にしている。(継承や集約も使う)
従って、あなたの言い分は全て間違い。

「デザパタに従って」開発するやつなんて、その勉強してる学生くらい。
デザパタは利用し、応用しなきゃ意味が無い。

974 :デフォルトの名無しさん:03/01/17 09:23
java.util.Mapの全要素をループする方法を教えてください。

975 :デフォルトの名無しさん:03/01/17 09:38
>>974
イテレーター取得して後は定石。enumeatorだっけ?Mapは。気持ち悪いならSet取得してイテレータか。

976 :デフォルトの名無しさん:03/01/17 09:39
>>973
GoFの本にも書いてあることだけどな。

977 :デフォルトの名無しさん:03/01/17 10:22
>>901
901さん、

JavaBeans specification
http://java.sun.com/products/javabeans/docs/beans.101.pdf

を読んでみてはいかが?

978 :デフォルトの名無しさん:03/01/17 10:23
Java3っていつでるの?

979 :デフォルトの名無しさん:03/01/17 10:34
明後日。

980 :デフォルトの名無しさん:03/01/17 10:56
いつも通り開発が遅れる予感。

981 :デフォルトの名無しさん:03/01/17 12:16
>>965 >>923の条件に加え、マニフェストファイルにBeanであること記述すれば
それだけでBeanになる。
すると>>910のようなBeanになる。

982 :デフォルトの名無しさん:03/01/17 12:22
>>973
話の流れからいうと>>967のいうデザインパターンは
JavaBeanにおけるデザインパターかも……。

983 :デフォルトの名無しさん:03/01/17 13:52
埋め

984 :デフォルトの名無しさん:03/01/17 13:52
埋め

985 :デフォルトの名無しさん:03/01/17 13:52
デザインパターかも

986 :デフォルトの名無しさん:03/01/17 13:53
埋め

987 :デフォルトの名無しさん:03/01/17 14:11
ビット演算子で質問
論理和 '|' と 排他的論理和 '^' の
働きの違い教えて下さい
簡単なサンプルソース書いてもらえると 嬉しいです

988 :デフォルトの名無しさん:03/01/17 14:14
>>987 数理論理学を勉強汁!
OR
x y | z
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 1

XOR
x y | z
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 0

989 :デフォルトの名無しさん:03/01/17 14:38
>987 >988に蛇足して主な用途。

OR:
ビットで表されたデータの合成に使う。
下記の例はpushedButtonのBUTTON1ビットとBUTTON2ビットのどちらかが1であるとき、の意。
if(pushedButton & (BUTTON1|BUTTON2) != 0)
※ BUTTON1,BUTTON2 は 1,2,4,8,・・・のどれか

XOR:
X ^ Y ^ Y == X であることを利用して、非常に簡単な暗号として使ったり、
画像処理(ANDマスクと組み合わせる)に使ったり。

990 :デフォルトの名無しさん:03/01/17 14:44
>>973
言葉足らずだった。
クラスのロールというものを考えたとき、
クラスにモデル上・設計上の決まりを守らせることで OO は成り立つ。
「契約による設計」 といってもいいけど。

991 :デフォルトの名無しさん:03/01/17 14:49
埋め

992 :デフォルトの名無しさん:03/01/17 14:49
埋め

993 :デフォルトの名無しさん:03/01/17 14:50
続きはこちらで
http://pc3.2ch.net/test/read.cgi/tech/1042407622/

994 :デフォルトの名無しさん:03/01/17 14:51
埋め

995 :デフォルトの名無しさん:03/01/17 14:51
埋め

996 :デフォルトの名無しさん:03/01/17 15:22
996

997 :デフォルトの名無しさん:03/01/17 15:39
埋め

998 :デフォルトの名無しさん:03/01/17 17:22
オレの精神テンションは今!INPRISE時代に戻っているッ!
マイクロソフトと初めて提携を結んだあの当時にだッ!
冷酷!残忍!そのオレがJBuilder8をリリースするぜッ!

999 :デフォルトの名無しさん:03/01/17 17:52
いいのかな・・・

1000 :デフォルトの名無しさん:03/01/17 17:53
     ∧,,∧    / ̄ ̄ ̄ ̄ ̄
    ミ゚ー゚ミ   < パート16 http://pc3.2ch.net/test/read.cgi/tech/1042407622/
   /旦 ̄ ̄/ヽ \_____
  ノ  ̄ ̄ ̄ヽ /
  ~~~~~~~~~~~~
初心者スレにはAA使おうぜ

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

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

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