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; と言う機能を追加したいのですが、どうしたらよいでしょうか。 どなたか教えてくださいませんか。
5 :
デフォルトの名無しさん :02/09/25 18:08
>>3 いきなり
Choice cicShopping;
int intSum;
の宣言位置が変だぞ。
それから、ItemListenerについて調べて見ろ。
>>6 本を見てやったんだけど。。。
ちょっと調べてみます
8 :
デフォルトの名無しさん :02/09/25 18:16
どっかにディレクトリやファイルをコピーする API落ちてたら教えてください
どっちが本スレなんだよ!!
2ch名物スレ分裂おめ
テーハミング
>>13 あはははは、そうか?十分ヒントは示したつもりだったが。
lecture.ecc.u-tokyo.ac.jp/~cichiji/cp-01-06-4.html
いまググってみたが、このページ、すごくわかりやすいぞ。
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
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); }}} 削除以来出しとけよ 普通チョイスじゃなくてボタンだぞ
21 :
デフォルトの名無しさん :02/09/26 16:01
age
終われっ!
23 :
デフォルトの名無しさん :02/09/26 16:35
age
24 :
デフォルトの名無しさん :02/09/27 00:36
負けるな。あげ。
スレタイトルに機種依存文字使ってるからsageでいいよ。 これがWindowsスレならともかく。
26 :
デフォルトの名無しさん :02/09/27 01:35
>>26 もともと文字コードはJISなどの規格で定められているわけですが、
JISでは文字を割り当てていない領域がありまして、
この空白の領域に各メーカーが勝手に外字を追加しました。
この領域に追加された文字を一般には機種依存文字などと呼んでおります。
この領域は、もともと統一の規格で定められているものではないので、
この領域に各メーカーが割り当てた文字は、
機種によっては、別の文字が表示されたりしますし
何の文字も表示されないこともあります。
Mozillaは単なるソフトにすぎません。
機種依存文字となんの関係もございません。
ただソフトウェアで機種依存文字の処理を行なって、
多機種間での文字の変換をおこなうソフトもございます。
たとえばMSNのMessengerは、
Windows版のMessengerからマッキントッシュ版のMessengerに
機種依存文字を送った場合、ソフトウェアで処理をおこなうことで、
送信側と受信側で同じ文字を表示するようでございます。
それではどうぞ以下のスレへ合流ください。
【初心者】Java質問・相談スレ8【大歓迎】
http://pc3.2ch.net/test/read.cgi/tech/1032944246/l50
31 :
デフォルトの名無しさん :02/09/27 14:19
8よりレスが多くなったらこっちを本スレにするんですかね?
>>31 あげんなよ。スレの番号がずれてるから8推奨。
33 :
デフォルトの名無しさん :02/09/27 17:17
漏れら極悪非道のageブラザーズ! 今日もネタもないのにageてやるからな!  ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ∧_∧ ∧_∧ age (・∀・∩)(∩・∀・) age (つ 丿 ( ⊂) age ( ヽノ ヽ/ ) age し(_) (_)J
>>26 は、
機種依存じゃなくてフォント依存だって言いたいんじゃないか?
Macでも、ソフトとフォントの組み合わせによっては、
まる1を読み書きできるわけだし。
36 :
デフォルトの名無しさん :02/09/29 23:16
漏れら極悪非道のageブラザーズ! 今日もネタもないのにageてやるからな!  ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ∧_∧ ∧_∧ age (・∀・∩)(∩・∀・) age (つ 丿 ( ⊂) age ( ヽノ ヽ/ ) age し(_) (_)J
37 :
デフォルトの名無しさん :02/09/29 23:39
Cで言うargv[0]に相当する機能はどう実現すればいいのでしょうか?
//Kadai3b.java public class Kadai3b{ public static void main(String a[]){ String s="GPIB-022.70V",ds; ds=s.substring(①); Double dd=②; double d=③; System.out.println(d); } } 文字列"GPIB-022.70V"から文字列"-022.70"を取り出して、 その文字列をDouble オブジェクトにして、それをdouble型実数数値に変換して数値に表示したいのですが、 ①~③にあてはまる文がわからないです、、、、 どなたか教えていただけないでしょうか…
>>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 さんはそのプログラムの設定ファイルを保存したいときどうします?
>>40 コマンドラインから設定ファイルを指定してもらうような作りにしておく。
設定変更時の上書き保存ももちろんそのファイルに対して行う。シェル作れば
毎回指定する手間が省けるし、いろいろな設定ファイルのバリエーションを
作っておけばデバッグも楽になる。
大抵は省略時も考えて優先順位つけてやるけどな。
1)コマンドラインで指定されたファイル
2)ユーザディレクトリの○○というファイル
3)カレントディレクトリの○○というファイル
ちなみにサーブレットなら ServletContext#getRealPath() で Web アプリ
ケーションルートが取れるんだが、活用せずにディレクトリハードコードする
バカも多い。
>>41 とりあえず、getProperty("user.home")に設定ファイル(設定用オブジェクトをシリアライズしたもの)を生成することにします。要はどのOSにも存在するディレクトリが欲しかったんで。
>>42 その "設定" が実行環境で唯一のものかユーザごとのものか注意せいよ。
ってか
>>35 は見たよな?
>>43 ほーい。助かりました。
なお、見てませんでした。
>>41 そのgetRealPathって曲者だから気を付けた方がいい。
webコンテナの実装によっては常にnullを返したりする。
>>46 俺が知ってるのでは、BEAのWeblogic
そうだ、ついでになるが、cocoonがその仕様のために weblogicで動かなくて、何か対策してたはず。 cocoonのMLさがしてみれ
>>45 そうか、俺は Tomcat, WebSphere, JRun しか使ったことが無いから知らなかった。
ありがとう。
51 :
デフォルトの名無しさん :02/10/03 23:01
漏れら極悪非道のageブラザーズ! 今日もネタもないのにageてやるからな!  ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ∧_∧ ∧_∧ age (・∀・∩)(∩・∀・) age (つ 丿 ( ⊂) age ( ヽノ ヽ/ ) age し(_) (_)J
ageんな
53 :
デフォルトの名無しさん :02/10/04 08:11
age
55 :
デフォルトの名無しさん :02/10/04 15:48
あげパン
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); } }
61 :
デフォルトの名無しさん :02/10/06 16:09
あげ
62 :
デフォルトの名無しさん :02/10/07 10:11
63 :
デフォルトの名無しさん :02/10/12 08:44
再利用しろよ
なぁさ、せっかくマルチプラットフォームの言語なのにタイトルに機種依存文字使うなよ・・・。
65 :
デフォルトの名無しさん :02/10/12 11:18
JavaWebStartに関する設定がサーバにされているかのように振る舞わせるためのCGIをください。
66 :
デフォルトの名無しさん :02/10/12 11:25
はやくください。
67 :
デフォルトの名無しさん :02/10/13 23:25
javaプログラミングの直接な質問ではないのですが 現在、javaでデータベースアプリケーションを作成しています。 そこで音声で画面の読み上げを行わなければいけないのですが、 今使っているスクリーンリーダー(2000リーダー)ではjavaアプリケーションは 認識しないようなのです。 何か良い解決策(読ませる方法でも、他の方法でも良いです)はないでしょうか?
>>67 昔のViaVoiceにはJavaインターフェースがあったね。今のは知らない。
放置スレsage
71 :
デフォルトの名無しさん :02/10/16 05:48
へぼい質問ですいません。 W2kPro(SP3)に J2SDK1.4.1 J2ME_WTK1.0.4 をインストールし、 K2Toolbar を起動させようとしたら、 ブルーバックで死ねます(泣 なにか対処・確認点等ありますか…
>>71 ちょっとまて、それ以前にJ2MEってJ2SDK1.4.1に対応したのあるのか?
>>73 システム要件が「1.3以上」だったので大丈夫かと思っていたのですが、
ご指摘を踏まえて J2SDK 1.4.0 にしたところ、解決しました。
ありがとうございます。
75 :
デフォルトの名無しさん :02/10/17 23:39
本で調べても分からなかったのでお尋ねします。 スーパークラスのstaticメソッドをオーバーライドして、 サブクラスで非staticメソッドを定義するとコンパイルエラーになりますが、 スーパークラスの非staticメソッドをオーバーライドして、 サブクラスでstaticメソッドを定義して、コンパイルが通るようになりますか。
76 :
デフォルトの名無しさん :02/10/17 23:42
>>75 さっさと試せば?と。
って言うか仕様的に激しく問題ありそうな予感。
っつか、 >staticメソッドをオーバーライドして できません。 ネタ?
>>79 いや、お前はもうちょっと文章読んでやれ。
ゲームを作りたいと思っているのですがjavaでジョイパッドをつかえるのでしょうか?
>>81 真面目にやる気ならネイティブコードとDirectXの使える言語をチョイスすべきかと。
なんか昔対応するとかしたとか聞いたことあるけどどうなんだろうね?(Java Game API?)
Java暦1ヶ月の初心者です。 今Servlet+JavaBeans+JDBC+JSPに携わっているのですが、JavaBeansのプロパティにデータを入れるのに悩んでいます。 たとえば映画データベースがあったとして、 一つ目のテーブルは映画テーブルだとします。 映画ID、タイトル 二つ目のテーブルは俳優テーブルだとします。 俳優ID、俳優、俳優の誕生日、俳優の出身地、映画ID 俳優テーブルの映画IDは映画テーブルの外部キーです。すなわち各映画には複数の俳優情報が存在します。 これで各映画のBeansを作るときにひとつのBeanに複数ある俳優情報をどう格納するかがわかりません。 Beansは最終的にはJSPで使われます。 素人考えだと、以下の方法が思いつきましたが、なんか正しくないような気がします。 1)Stringの2重配列を作る 2)俳優Beansをつくって、映画Beansに格納する(これじゃ、Beansじゃないような..) では、よろしくお願いします。
まず、
あげんな。
本スレはこっち
http://pc3.2ch.net/test/read.cgi/tech/1034303501 >>2)俳優Beansをつくって、映画Beansに格納する(これじゃ、Beansじゃないような
それでいいじゃん。Collectionとか配列を使うの。わかった?
ちなみにJavaBean仕様としてもまったく問題ありません。
ところでその設計に問題あり。
それでは俳優はひとつの映画にしか出れない。
当然俳優は複数の映画に出ることが考えられるよね?
設計を変更しましょう。
配役によって振る舞いが違ったりするし。
すみません、今度はsageました。 >それでいいじゃん。Collectionとか配列を使うの。わかった? >ちなみにJavaBean仕様としてもまったく問題ありません。 ということはJSPでは、 <jsp:useBean id="映画" scope=".." class=".."/> .... <jsp:useBean id="俳優" scope=".." class=".."/> .... みたいにuseBeanが立て続けに宣言されることになるんですね。 いろいろサンプルをさがしまわったんですけど、どこも一つしかuseBeanが宣言されて なくて... あと仕様的には俳優は一つの映画にしか出ないことになっています。
単純にタグライブラリを使わないで考えるなら、 俳優 actor = movie.get俳優(); でいいだろ。 タグライブラリで上と同じことやりたいのならJSTLを使おう。 >>あと仕様的には俳優は一つの映画にしか出ないことになっています。 了解しました。
>>89 自己レス。
ごめんCollectionとかでやれって自分で逝ったよね。
<%
Collection actorCollection = movie.get俳優();
Iterator iterator = actorCollection.iterator();
俳優 actor = null;
while(iterator.hasNext()) {
actor = (俳優)iterator.next();
%>
actorを適当に出力。
<%
}
%>
>>89 さん、ありがとうございます。
あとJSTLはまったくいじったことありません。
ちょっとJakartaサイトをのぞいてみます。
>>91 Jakartaプロジェクト徹底研究という別冊参考にした方が早いかも。
JavaWebStartに関する設定がサーバにされているかのように振る舞わせるためのCGIをください。
94 :
デフォルトの名無しさん :02/10/29 23:11
大学の研究室ではLINUXを使ってネットワークの勉強をしています。 ネットワークプログラミングなどで、よく接続先のコンピュータを表すために、LANで繋がれた各コンピュータの名前を指定します。 で、家に帰って続きをやろうとすると、自宅にはLANは構築されてなく、マシンも一台しかなく、しかも、windowsです。 DOSプロンプトを二つ開けば、2台ある、というふうにみなせるらしいですが、その時各プロンプトを指定する、なにか名前のようなものはあるのでしょうか?
>>94 1) 片方の DOS 窓のプログラムでサーバソケットを開く
2) もう片方の DOS 窓のプログラムからコンピュータ名 localhost で接続する
3) 双方のプログラムで通信する
4) (゚д゚) ウマー
2ch名物スレ分裂おめ
97 :
デフォルトの名無しさん :02/11/05 18:45
98 :
デフォルトの名無しさん :02/11/05 18:48
| パソオタ キモイ! \____ ________________/ /||ミ V / ::::|| /:::::::::::||____ |:::::::::::::::|| || |:::::::::::::::||│ / || |:::::::::::::::|| ̄\ ガチャッ |:::::::::::::::||゚ ∀゚) || |:::::::::::::::||_/ || |:::::::::::::::||│ \ || |:::::::::::::::||∧ ∧∩ ..|| |:::::::::::::::|| ゚∀゚)/ .|| |:::::::::::::::||∧ ∧∩ ..|| |:::::::::::::::|| ゚∀゚)/ ..||
JAVAアプレットがあるWEBページをブラウザで印刷しようと するとアプレットの部分が黒く印刷されてしまいます。 どうにかならないですか? ※ガイシュツ質問すまそ。
>>100 失礼しますた。現在製作中のJAVAアプレット&HPがありまして、
それの画面を印刷するボタンをつけようと思ってるんですが、
JAVAでそのボタンを作ったらいいのか、JAVAScriptで作ったら
いいのか、はたまた簡単な解決方法があるのかどうかと思いまして、
質問した次第でございます。
作るとしたらどんなプログラムソースになるか教えてください。
JavaAppletで印刷するしかないね。JavaScriptでは アプレット内に描画されている内容を知ることはできないから。
>>102 ありがとうございます。
できえば、印刷のサンプルプログラムを教えていただければ
幸いです。(印刷プログラム作った事が無いもんで…)
104 :
デフォルトの名無しさん :02/11/09 13:58
サーブレットでArrayListを使っているのですが同期を取らなければいけないと いうことですが、取る範囲について迷っています。 ArrayList内にシーケンス番号とデータを入れたクラスをいくつも格納してあるの ですが、このデータを書き換える場合、for文でArrayListを回してシーケンス番号 が一致したものを取り出し、データを書き換えて、さっきまでArrayに入っていた 古いクラスは消して新しいデータをAddするという感じになるのですが、この 一連の動作全てに排他処理を掛けています。これだとすごい遅くなるような気が するのですが他にいい方法ってないものなのでしょうか?
>>104 marutiposutodesuka ?
106 :
デフォルトの名無しさん :02/11/09 17:14
線形検索が問題になるなら 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); } }
110 :
デフォルトの名無しさん :02/11/09 17:24
>>108 1.run()がなんで引数取ってるのよ?オーバーライドに
なってないから、start()してもコールされないよ。
2.sampleM extends Threadなのに、なんでsamplem.start()
コールしないの?
スレッド間でデータ渡すのは、pipeとかファイルとかソケットとか 共有メモリとか。そこまではJava関係無いぞ。一般的なマルチスレ ッド/マルチプロセスプログラミングの範疇。Javaでどうやるかは、 探してみて。
>>110 2.はごめんなさい。implements Runnableとすべきでした。
run()に引数をとれないということは、マルチスレッドをした時、
別々の変数を直接受け渡すことができないと言う事でしょうか?
>>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();
}
}
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(); } }
すまん、ちょっとちがうみたいだな。コンパイルもしてないので 動くかどうかワカランケド。スレッド間でデータ渡すなら、同期処理 を行わんといかんよ。ストリームにしておくと、ストリームバッ ファで同期されるからラクチンだけど、直でデータ渡すにはスレッド 状態変更を自力でやらんとイカンののでちょと面倒。 Threadはnewしてstart()するだけなら猿でもできるけど、ちゃんと 使いこなすのはややこしいから、勉強した方がいい。
ServletとJspでお勧めの本が有ったら教えて下さい。
>>116 ごちゃごちゃ言わんとjavaco.orgにある恋はオブジェクト指向聞かせるべし。
嫌でもスレッドの大切さがわかる。
SwingでWindowsのLookAndFeelを使わずに、 Altキーを押すと、メニューにフォーカスを移すには どうすればいいんでしょう?
120 :
デフォルトの名無しさん :02/11/09 21:28
ものすごく基本的なことなんですが、 他の.javaファイルにあるクラスを利用したい場合、どうしたらよいのですか? 同じ.javaに含まれるクラスのメソッドなどを利用する方法はわかるのですが・・・ 教えてください。
122 :
デフォルトの名無しさん :02/11/09 21:38
「。とだけ」ってなんですか???
>>122 御願いします。砕けた日本語も勉強してクダサイ。
>>119 WindowsのLook and FeelじゃないのにWindowsと同じようなUIにするなよ。
>>120 あなたはGUIとか必要な時
どうしてたんですか?
>>125 1ファイルに出来ると思うが。
classファイルはいくつか出来るかもしれんが。
>>115 ,116
ありがとうございます。かなり進展する事ができました。
もう少しいろいろと勉強します
>>118 スレッドの大切さはわかっているつもりです。
気持ちはわかるが、アセンブラ学んだ方がいいよ。
129 :
デフォルトの名無しさん :02/11/10 01:24
>>129 SwingやAWTをつかうって言うこと=ほかのクラスをつかうということ
だといいたいんじゃないかな?
つうか、ほかのクラスのメソッドがつかえるのにクラスが使えないって
いっている意味がわからんが
>>120
131 :
デフォルトの名無しさん :02/11/10 01:48
同一ファイルのクラスにはアクセスできるが・・・ってことでしょ。 同一パッケージ内のクラスにはクラス名で直接アクセスできるが 同一パッケージ内でないクラスにはパッケージ名で完全修飾するか importしなければならない、ってこと
>>124 別に独自のlook and feelを作りたいんだろうからアリじゃない?
133 :
デフォルトの名無しさん :02/11/10 14:07
mpeg使いたいんですけど、ライブラリとかどっから落とせばいいんでしょうか
135 :
デフォルトの名無しさん :02/11/10 14:58
136 :
デフォルトの名無しさん :02/11/10 19:57
Java で書かれたアプリケーション Myster を日本語化したいのですが、 各ソース群を書き換えた後の、 Jar ファイルへのコンパイルの仕方を教えてください 開発環境は MacOS X 10.2.1 + Developer Tools です。
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();
って言うかリファレンス読まないなら死ね。
他力本願のライブラリだのみな言語をやると そのリファレンスを読むという行為までもが他力本願となる。 人は堕落すると歯止めがきかない。
141 :
デフォルトの名無しさん :02/11/10 21:09
>>140 それ言われるとなんか省みるところが大きいな。
インテリセンス無い開発環境なんぞつかっとれっか!とか。
そうそう、この前VBスレに
VBでID3タグ編集ツール作ってますがID3タグを編集するライブラリ無いですか?
とか恐ろしいこと言ってる奴がいたよ。
>>141 それおまえが作っているのとちゃうのかと。
ライブラリあれば便利なのは確かだけど、
コンピューターは所詮0と1の組み合わせで動いていることを
忘れてはいけないと思う今日この頃。
143 :
デフォルトの名無しさん :02/11/10 21:22
>>139 すいません、リファレンスよんでみたのですがいまいち意味がわからなくて・・
変数の中身をバイトにしたいときはたとえば
int temp = mojiretu.get.Byte();
ということでしょうか?
"str".getByte(); だと分かりやすいんですが
リファレンスには public byte[] getBytes() と書いていて
いまいち意味がつかめませんでしたTT
>>142 あんなアホと一緒にせんといてくれ。
昨日はDHCPパケットの送受信が出来るクラス書いたよ。何に使うかは知らんが。
あ、お礼忘れてました ありがとうございます~
>>143 まず、あんたが考えているような大それたことはやめて言語仕様をゆっくり理解しなされ。
文法も知らずに作文が出来るわけがない。
>>143 試行錯誤しろよ。都合の悪いレスは全部無視か?
148 :
デフォルトの名無しさん :02/11/10 21:41
>>146 ゆっくり行きたいのは承知してるんですが
ちょっと急いでかないとやばい状況なのでTT
>>147 140さんですか?
無視ってわけじゃないんだけど、いちおうリファレンスよみました
頭悪くてすいません・・、試行錯誤もしてみました
あと言い訳なんですが、今日朝8時からずっとやってきて
さすがに疲れてきたので、詰まってるところを聞いてみようかと・・
だめですかね?
なんか最近度を越した馬鹿が増えたな。 単に初心者というだけじゃなくて。
Javaなんて所詮、精度低いFacadeだと思った方がいいぞ。
153 :
デフォルトの名無しさん :02/11/10 21:51
>>148 正直、今の学校なり会社やめて違う道を探すべきだと思われ。
時間の無駄。
>>152 コアAPIの枯れてる所以外は厳しいね。
グラフィックス関係の拡張ライブラリのWin用実装つかうとよ、くOSが
おちるんだけど、ちゃんと試験してないのかもね。Windowsは種類いっ
ぱいありすぎるし。sample起動しただけでWin2000おちるってナンデ?
>>154 厨:そんなこと言ったらどの処理系にもクソサードパーティのクソライブラリはあります。
>>155 Sun謹製のPIでそれはどうかと思ったのよ。
>>156 さっさとライブラリ名出せや。
肝心なところ全部伏せて言いがかりなんぞ誰にでも出来る。
俺はお前の弱みを4つ握っている。ダメだよ。お前は。問題だ。
ほら。
>>157 Java3D Ver1.2 DirectX版
Java質問相談スレ⑦ と11があるがなにか違うの? ただの重複にしては両方伸びてるような
11 が本スレ。こっちはただの重複。 細かいことを気にしない人が多い模様。
162 :
デフォルトの名無しさん :02/11/11 01:56
JFrameでsetLocation(0,0)とすると、一発目にウインドウ表示させたときはちゃんと画面右上に表示されるんですけど、 同じウィンドウもう一つ表示させるとちょっと右にずれます。3個目を表示させるとまた右上に戻ります。 windowsでやれば正しく表示されるのですが、Linuxだとこうなってしまいます。 Linuxでも正しく表示させるにはどうしたらよいのでしょう?ちなみにvine2.1です。
とおりすがりだけど、
さんざんでかいこといっていた
>>157 が
5分後にライブラリを提示した
>>158 を
無視するのはどうかとおもう。
最新版使え。じゃだめ?
165 :
デフォルトの名無しさん :02/11/11 02:04
電卓をJAVAで作りたいんですけど、参考になるようなソース教えてください
167 :
デフォルトの名無しさん :02/11/11 03:20
そのうち9分はSun One Studioが立ち上がるのを待つ時間。
169 :
デフォルトの名無しさん :02/11/11 04:40
オブジェクト・クラスをロックする、アンロックするって簡単に 言うとどういうことなんでしょうか?
>>169 ヨクワカランが、同期の話か?マルチスレッド Java synchronizedあたりでググレ。
>>170 クラスのアンロックだからstaticなメソッドって言う制約がいると思われ。クラスの
最近の度が過ぎた厨どもは 卒論におわれる大学生どもだと思われ(禿藁
せっかくなんで質問します。 Java Appletでスロットゲームを作ってるのですが、 3つのドラムをそれぞれ独立して動かしたいのですが、 どうすればいいでしょうか? 後、WAVEとかの音声を流したいのですが、どうすればいいでしょうか?
スレッド AudioClip
>>174 結局3つのドラムは動作の同期ととらないとイカンと思うから、
スレッド分けないほうがいいと思うけどね。
>>175 ?管理するクラス作れば?
それにJavaで同期って簡単だと思われ。
177 :
デフォルトの名無しさん :02/11/20 02:57
レスありがとうございます。 そのページも参照しました。いろいろ試してみましたが、無理でした。
せっかくなんで質問します。 検索条件を選択して、「検索」ボタンを押すと DBから引っ張ってDBの項目を表示する簡単なプログラムなのですが、 javalangNullPointerというエラーが1回目の検索に必ず出ます。 無視してもう一回「検索」ボタンを押せば、表示されます。 また、検索ボタンを連打するとたまにでます。 この原因は何が考えられますか?
>>181 インスタンスへの参照がセットされていない変数に対して何か操作を行った。
183 :
デフォルトの名無しさん :02/11/23 20:32
バイト単位で文字を切り出す方法を教えてください。
>>183 String#getBytes()
後は煮るなり焼くなり。
185 :
デフォルトの名無しさん :02/11/25 03:20
よくCollectionのちゅーとりあるサイトにいくと Set set = new HashSet(); もしくは List list = new ArrayList(); みたいなのを見かけるんですけど、なんでわざわざインタフェースにインスタンスを割 りあてるんでしょうか?
まぁインターフェースの範囲で完結できるものについてはインターフェースを 使うっつー慣例というか方針というか好みだな。あとで ArrayList を Vector に換えたくなっても new してるところだけで済むし。
じゃあObject object = new HashSet()にしたほうがいいんじゃないですか?
interface じゃないし、インタフェイスが異なるし。
189 :
デフォルトの名無しさん :02/11/25 04:13
190 :
デフォルトの名無しさん :02/11/25 07:01
new InputStreamReader( System.in ) てなかんじで、実行時に、 "java *** < file" でファイルを読み込ませてるんですが、もし "java ***" というふうに入力ファイルを指定されなかった場合にも処理をしたいのですが、どうしたらよいのでしょう?
>>190 何をどう処理したいのかまったく分かりません。
192 :
デフォルトの名無しさん :02/11/25 07:04
193 :
デフォルトの名無しさん :02/11/25 07:26
>192,191 FileReader使いました!どうも!
194 :
デフォルトの名無しさん :02/11/25 07:38
>>190 ファイルのリダイレクトだろっ。
でも、もしもファイルが指定されなかったらblockingで一生待ち続けて
しまうから、それの回避方法を知りたかったんだと思うぜよ。
196 :
デフォルトの名無しさん :02/11/25 16:19
データベースから年、月、日のデータを取得して くっつけて"20020101"みたいな表示にしたいのですが、 データ型が数値型なので、そのままくっつけると "200211"になってしまいます。 なにかうまい方法はありませんか。
197 :
デフォルトの名無しさん :02/11/25 16:32
>>196 java.text.DecimalFormatを使用すれ。
下の方が早いけど。
if (mm < 10) mmStr = "0" + mm;
なるほど。 確かに下の方が楽そうですね。 ありがとう。 勉強になりますた。
>>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);
>>196 1行
Integer.toString(yy*10000+mm*100+dd)
200の続き。 200で挙げたのが恐らく一番効率良いけど、 DB側でフォーマットするのもありじゃない?
こんなに色々方法があったとは。。。 >199の方法はぜんぜん知らなかったし、 >200の方法は思いつかなかったっす。 >DB側でフォーマットするのもありじゃない? やり方のわからん厨です。ていうか、新米プログラマーです。(スマソ
203 :
デフォルトの名無しさん :02/11/26 00:28
Integer.toString(yy*10000+mm*100+dd) だめじゃん
もしもし、ちょっと質問なんですよ。 レルムのロールって、ログインした後でもServlet内で取得できるんですか? ロール毎に画面を変えたいのですけど。
206 :
ダイナミックコンポジッション :02/11/26 02:08
XNap の文字化け対策
http://xnap.sourceforge.net UNICODEのファイル名をJavaで引っこ抜くと、濁点のついた文字等が
3バイトコードになってしまうのですが、2バイトコードとして扱うには
どういった仕組みが必要になりますか。
宜しくご教授お願いいたします。
例
がぎぐげご -> か゛き゛く゛け゛こ゛
207 :
デフォルトの名無しさん :02/11/26 06:40
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に照らし合わせれば、サーバーのファイル名と一致する、、、 はたしてそうなるでしょうか、、、 変換テーブルという処理がツギハギ的であまり美しくないということも。 すべて妄想の域をでません。どなたか助け舟を宜しくお願いします。
自分はaddKeyListenerを使ってキー入力するアプレットを作ったのですが、 キー入力の部分をクラスに分ける作業がうまくいきません。 initメソッドでキー入力クラスのコンストラクタに引数としてthisを渡し、 コンストラクタの中では public KeyInput(Applet app) { addKeyListener(this); if(app!=null){app.requestFocus();} } と記述したのですが、シンボルを解決できないというエラーが出ます。 どうか、皆さんのお力を貸してください。 それから、クラス名の後にimplements KeyListenerと記述しているのですが、 これでいいのでしょうか?
>>213 public KeyInput(Applet app)に戻り値の型がない。
というかこれはもしかしてclassかい?
>>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();}
}
~~~
という感じになっています.
もしかして、implemntsするメソッドをaddKeyListener()と思ってない? addKeyListener()メソッドは、Appletが持っているメソッドなので、 app.addKeyListener(this); と書かないと、 this.addKeyListener(this); と書いた事になる。 当然KeyInputにaddListener()は存在しない(もしかして有るの?)ので、 メソッド名の解決が出来ずにコンパイルエラーになるのが原因かと。
>>216 コンパイラ通りました!!感動しました!ありがとうございました!
218 :
事務系プログラマ :02/11/26 23:42
おまえらインプリメンツをどういう時に使うか 具体的に教えてください。
>>218 あ?実装のことか?プログラムを書くこと実装するという。
220 :
事務系プログラマ :02/11/26 23:49
221 :
事務系プログラマ :02/11/27 00:07
聞き方が悪かったかー インターフェイスの使い道が分からないんでゲロ 何に使うの?誰か教えレ
コンパイルされた.classファイルから元のソースファイル.javaに戻すことってできますでしょうか。
>>221 あるクラスにあるインターフェースがあることを保証したいとき。
225 :
デフォルトの名無しさん :02/11/27 00:35
226 :
デフォルトの名無しさん :02/11/27 02:23
ごめんなさい。 とても馬鹿な質問です。 JDKって一体どれをダウンロードすればよろしいのでしょうか? 英語だらけの上にダウンロードページにも同じようなものがたくさんあるので、全くわかりません。
>>226 「Japanese」「日本語版」って文字を探して、それを押せ
228 :
デフォルトの名無しさん :02/11/27 18:43
>>229 >JREだけでいいっす。
そうなんですか?
じゃあSDKは何の為のものなんですか?
今両方ダウンロードしてきたんですが、
EXEファイルなので実行するのが恐いです。
>>230 >EXEファイルなので実行するのが恐いです。
プログラムとかほざく前に今使ってるOSとかもうちょっと基礎的なスキル上げろや。
変な人に当たっちゃったなあ・・ もういいです。さようならー
開発しるならJDKを落としる!
謙虚さのかけらもないバカはさっさと死ねよ
>>232
荒れてるなぁ…
>>229 はへんなひとで、
>>228 は無知なひとだけど
>>231 はへんなひとではないとおもう
言葉づかいは乱雑ですけれど
乱雑な言葉づかいがいやならば、2ちゃんねるなどで質問をされるより
Java Houseというメーリングリストがあるのでそちらをご利用なさっては
いかがでしょうか
>>228 SDKはJREをも含んでいるので、SDKをインストールすれば
JREをインストールする必要ありません。
あと
>>232 のような人が読んで不快になるような言動は
質問をするときはつつしまれたほうが
貴方自身にとって有意義な回答が得られるかとおもいますよ
>>237 >>236 はお人好しに見えるが
じつはJavaHouseの荒廃を企む悪人かもしれないと
好意的に解釈してみるテスト。
「大歓迎」ってのはからかって遊ぶためでしょ?
じゃ俺も
>>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); }}}}
228が言ってる「1.41の深刻なバグ」とは何なんでしょうか? JavaHouseにもそんなの上ってなかったんですが、どこかで報告されてるの?
一部のビデオカードでOSを巻き込んで落ちるとか。
>>245 ありがと。Swing使わなければ大丈夫ですね。
>>243 体が1秒以上、ソースを見ることを拒否いたしました。
248 :
デフォルトの名無しさん :02/11/28 14:26
JAVAアプレットで後からGUIコンポーネントのボタンを追加したのですが なぜかボタンをつけた後、キー入力がきかなくなってしまいました。 どうやらボタンがキーイベントを勝手に奪っているようなのですが ボタンとキー入力を両立させたい場合、どんな処理をしたらいいでしょうか?
んなわけない
簡易バージョンを作って試してみてもダメでした。 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){}
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(); } } }
あ、今とっさに気がついて アクションイベントをeからaにしてみましたけどダメでした。 class Bset implements ActionListener{ public void actionPerformed(ActionEvent a){ if (a.getSource() == rstbt) keyname = "消"; repaint(); } }
さらに修正(汗)まことにスマンカッタ public void init() { addKeyListener(this);// キー入力にアプレット自身が対応 requestFocus();//フォーカスもらっとけ keyname = "";//keynameの中身を空にしておく add(rstbt);//ボタンを画面にセット rstbt.addActionListener(freset);//●この行入れ忘れ } これでボタンはきくようになったけど、やっぱりキーは反応しませんでした
そのやりかたでは無理だす
255 :
デフォルトの名無しさん :02/11/28 17:44
4 階調と16 階調で量子化する際には,X0<X1<X2<X3<X4, Y0,Y1,Y2,Y3 をどうしたらいいのですか?教えてください。お願いします。
∧ ∧ ┌──────── ( ´ー`) < シラネーヨ \ ( └───/|──── \ \_____/./ \ / ∪∪ ̄∪∪
JBuilderをダウソしたんですが、JavaSDKのV1.3ってJAVA2なんですか? Java1と2って意識する必要あるんでつか?
yes 実装が違います
∧ ∧ ┌──────── ( ´ー`) < シラネーヨ \ ( └───/|──── \ \_____/./ \ / ∪∪ ̄∪∪
みんなはJava2やってるの? 実装違うんだったら、両方覚えないとだめなんでつか?
∧ ∧ ┌──────── ( ´ー`) < シラネーヨ \ ( └───/|──── \ \_____/./ \ / ∪∪ ̄∪∪
シラネーヨって、ずいぶん懐かしいな。
>>262 jdk1.1 レベルに対応したもの(MSJVM用Appletとか)を
作りたいとかでなければ Java2 だけでいーんじゃないかなぁ。
267 :
デフォルトの名無しさん :02/12/07 02:23
javacでコンパイルできません。 「コマンド名かファイル名が間違っている」と言われますが、 確認しても間違っていない場合、どのような原因が考えられますか?
268 :
デフォルトの名無しさん :02/12/07 02:27
パスが通ってない
JTreeについての質問です!!各ノードのアイコンを意識的に変えたいのですが よくわかりません。一応DefaultTreeCellRendererで開いている枝と閉じている枝 、葉の区別はできるのですが、自分の指定したものを別で変えたいと思っています。 恐れ入りますが、ご存知の方ご教授お願いします!
>>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も当然できるはずなわけで。
ありがとうございます。 早速、試したいと思います。
Stringの内容を、先頭から一文字ずつasciiコードに変換してint[]に詰めたいのですが、 ascii、ord系のメソッドはないものでしょうか。
>>272 asciiコード:7bit
int:32bit
割と不思議。
String#getBytes()じゃ君は満足しないだろうしなぁ。
>>272 UTF-16からASCIIへ変換するって、どう変換が必要なのか
小一時間....
もしStringに\u0080以上が含まれていないなら、
array[i] = str.charAt(i);
すいません!豪快にボケかましました!・゚・(ノД`)・゚・。 半角の文字列の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してみたら例外吐いて死んでしまいましたが なぜそうなるのか理由がいまひとつよくわかりません。
>>277 システムへの JDBC ドライバの登録は、そのドライバ自身のクラスがロード
されたときに行われる。クラスのロードは import しただけでは行われない。
new などでクラスを直接参照する、forName() で参照するなどが行われて
初めてロードされる (この JDBC ドライバのやり方はハゲしく糞だと思うが)。
>>278 (゚∀゚)サンクスコ
そういうわけだったのね。大人の事情なのかな
だれか~ よろ
>>276 SWT使ってろ。
いっとくがAWTとは使い方違うからな。
>>276 良く知らんけど OpenGL ほとんど直叩きできるような API セットがあったよ。
アルカイダとか何とかいう 3D ゲームで使ってた。
>>278 別にクソだとは思わないが。
遅延ローディングのこと考慮してるか?
285 :
デフォルトの名無しさん :02/12/10 19:04
>>284 ところでDriverManagerなんだけど
setLoginTimeout
データベースに接続しようとしているときに、ドライバが待つことのできる最長の時間を秒数で設定します。
getLoginTimeout
データベースにログインしているときに、ドライバが待つことのできる最長の時間を秒数で取得します。
ログイン中のタイムアウト時間とログイントライ時のタイムアウト時間
いったいどっちなんだYO
286 :
デフォルトの名無しさん :02/12/10 19:14
>>284 素人の素朴な疑問なんだけど
なんで例外で落ちるの?
getConnectionする瞬間にJDBCクラス確定してロードしても
いいんじゃないの?
何がインポートされたかわからない ってことか
288 :
デフォルトの名無しさん :02/12/10 19:56
JAVAメールで以下の文章を送信すると 山﨑です。 18~24の恋人募集中 ↓ 山燭任后 18殖横瓦領・擁臀乎 こうなってしまいます。 どうしたら良いですか?? "~"については Cp943Cで読み込むことでなんとかなりました。
ユニコードってやつかいな?
290 :
デフォルトの名無しさん :02/12/11 00:04
あーもう 日付が9時間ずれるのなんとかならんかな 同じコードなのにWindowsだと0時で Linuxだと9時ってなんだよ! ロケールがどっちにどう間違ってるんだろう・・・ 混乱してきたね
291 :
デフォルトの名無しさん :02/12/11 00:09
JDIまたはJPDAについて分かりやすい解説のあるHPを教えてください。 検索エンジンでは、なかなかないです。
>>290 System.out.println(new GregorianCalendar());
であたりを付け、
Calendar.setTimeZone(TimeZone value)
で設定してはどう?
>>276 VolatileImage関係を使えばどうか
>>292 調べた結果、Linuxマシンは
GMT時刻にニホンの時間を設定してました
>>284 考慮してるよ。まぁいわゆるエセファクトリ形式になっているのはありがたいのだが…
・でもなぜソレが Class#forName() なわけ?
・DriverManager.loadDriver(String beanName) とかにしなかった理由は?
・Driver サブクラスが static イニシャライザの中で自身を登録するのが美しいか?
・JDBC が出た頃は既に Java Beans 構想は完成してたろ?
というわけ。JDBC 1.0 の頃の API リファレンス見ると設計者自体から香ばしい
香りがプンプンだったし。
>>289 JISじゃなくてユニコードで送れってことですか??
msg.setContent(message,"text/plain; charset=\"UTF-7\"");
としたらUnsupportedEncodingException出ちゃった。あんぽ・・・・。
>>296 >UTF-7
WIndowsNT暗いじゃないの?
>>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] みたいな書き方をしてみると一応コンパイルは通るのですが実行でエラーでした こういう場合の対応として何かいい方法とかありませんでしょうか? よろしくお願いします
>>299 >hoge[i] =new double[tekitou][tekitou2]
次数おかしくないか?
いままで普通に[]を多様してたんですが、 要素数が不定の配列を扱う場合、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]
みたいに、まわすたび別の配列を作りたいってことです
わかりづらくてすみません
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を使うと正常に実行出来ました。 同じ現象が起こる方、この原因がお解りになる方が いらっしゃいましたら情報をお願い致します。
308 :
304 JB7チュートリアル :02/12/11 16:33
>>306 チュートリアルではIEのJAVAは1.1.5という設定で書かれて
いました、このせいで動かない部分が出ちゃったってこと
ですね(^^; 動作しない原因が解ってホッとしました、
ありがとうございました~!
IEの対応JAVAが変わったせいで使えなくなってしまうとは
ちょっと恐いな・・w
311 :
デフォルトの名無しさん :02/12/12 13:54
312 :
デフォルトの名無しさん :02/12/12 14:32
date型で引き算ってできないでしょうか? たとえば2002年12月8日-2002年11月10日=28みたいな やっぱりintに変換して計算するしかないのでしょうか?
dateをlongに変換するにはどうしたらいいんですか? longになるのは戻り値がミリ秒で帰ってくるのしかないのですが。
315 :
デフォルトの名無しさん :02/12/12 15:30
servletではなく、 classから、JSPをdispatchするってことはできるのでしょうか?
>>311 ちょっとそれについて調べてみたんですが使い方がいまいちよくつかめませんでした
「こんなふうに使える」というのを教えてもらえたらすごく助かります
以下が私のしたいことです
forでまわすたびに2次元配列の変数を新しいもので宣言したい
forの繰り返し回数はファイルで読んでいるのでわからない。
もし3回だとしたら
array1 ,array2, array3みたいにforを抜けた後でも残しておきたい
以上です。よろしくお願いします
318 :
デフォルトの名無しさん :02/12/12 17:08
おまえらWEBのポストのときに %88%A5%8F とかなっているときに、元の文字に戻すやり方を教えてください。 おながいします。
>>318 %dd
のddを16進10進変換するだけです。
>>318 %dd
のddを16進10進変換するだけです。
321 :
デフォルトの名無しさん :02/12/12 17:44
>>318 URLデコードしてくれるコンポーネントまたは関数があるはず。
URLデコードで検索すればこういうコンポまたは関数の使い方とか
コンポまたは関数を配布してるサイトが見つかるっぽい。
JAVAのことは全然知らないけど。(ぉぃ
あと319-320は相手にしないほうがいいかも知れない。
>>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次元にしてみるのが一番手っ取り早いのではないか?
リストを使ってみたがこれがわからんと言うのは無しで
わかってない人間が3次元配列なんか使うと ひどい目にあうのでやめといた方がいいかと。
325 :
デフォルトの名無しさん :02/12/12 22:29
>>323 レスありがとうございます。
ArrayListを調べてます。ありがとうございました。
ちょっとまてオマイラー。日付引き算できるクラスあるやろー。 おもちゃにしてないで、ちゃんと教えてやんなよ。
っていうか、すでに初心者の相談スレは13が立ってるのに 未だに7に書き込みがある時点で何かが間違っているような
7がまだ300台なのになんで13があるんだ? ちなみに今日は13日の金曜日だ。
レス有難うございました。 結局1.4のURLDecoderのソースをコピーして貼り付けて使うことにしました。
330 :
デフォルトの名無しさん :02/12/13 14:07
>URLデコードしてくれるコンポーネントまたは関数があるはず。 >URLデコードで検索すればこういうコンポまたは関数の使い方とか >コンポまたは関数を配布してるサイトが見つかるっぽい。 >JAVAのことは全然知らないけど。(ぉぃ >あと319-320は相手にしないほうがいいかも知れない。 ライブラリ厨晒しage
>>330 最近の子ってURLデコードもできないのか・・・他人事とはいえ鬱だ。
ジャバウォックとジャバネットたかたの作り方を教えて下さい。 宜しくお願い致します。
FTPサーバつくりたいんですが、仮想ディレクトリって どう実装させればいいですか??知ってる方いらしたら教えてください。
サーバ側でPASVモードのときに行う処理は 何ですか??教えてください
ServerSocketで待機しているんですが、 接続後にListを贈りたいんですがそうしたらいいんですか??
FTPサーバの仮想ディレクトリのListです
FTPサーバの仮想ディレクトリのLIST なんですけど…
はい。呼んでみてはいるんですけど、なかなか理解できないんですよ
クライアントが指定してきた 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重になるのがなんだかいやだ
>>347 File に write って有ったか?
しっかし無限に書き込むってすげーな。ちょっと感動。
>>349 いや、あくまでたとえ話で
無限ループするルーチン前提での話
組み込み分野って言えばいいかな
要は
コンストラクタでも例外が発生するようなものの
インスタンスを作って処理していくときに
例外が発生したらとりあえず終了処理して
もう一度インスタンス作り直してまたループ
というのがやりたいんだけど
結局2重に覆う必要があるってことかな
>>350 情報少ないからアレだけど、
多分アンタのやり方が悪いだけだと思われ。
353 :
デフォルトの名無しさん :02/12/16 14:03
>>350 の設計がいいかどうかは別にして、
tryがネストするのは別に珍しいことじゃないと思うが。
354 :
デフォルトの名無しさん :02/12/16 14:40
本当に申し訳ないです。 ソフトをつくってみたいのですが、どうすればつくれますか? まず最初は何をして、何を準備して、勉強したらいいですか? とんでもないかんちがいしてたらごめんなさい。
356 :
デフォルトの名無しさん :02/12/16 15:42
アプレットでタイピングソフトを作ろうとしているのですがプログラム経験 が少なくどうやっていいのか分かりません。googleで検索してもなかなかい いものがなく困ってます。初歩的なものでいいのでフリーのソースが載って いるwebページを教えて下さい。学校の課題でかなり焦ってます。
360 :
デフォルトの名無しさん :02/12/16 15:51
>>360 Delphi の宣伝で age るのヤメレ
>UNIXのSun ワラタ
>>362 で、Delphiにパスの設定ユーザに強制させる場面なんてあったっけか?
>>363 >UNIXのSun
SunといえばUNIXってほどの意味。
Unixで名を馳せたSunというほどの意味な。
お分かり?
>>364 Javaもパスの設定はする必要はないよ?
なにか勘違いしてない?
パスの設定しないと使いにくいだろうがウ"ォケ
368 :
デフォルトの名無しさん :02/12/16 18:51
すみません、どなたか教えてください。 FileクラスのrenameTo()メソッドで falseが帰る時、考えられる原因はなんでしょうか?
そのファイルへのアクセス権を持っていない。 そのファイルがそもそも存在しない。
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); } 動かすたびに、ひどく点滅して見難いです 点滅しない方法を教えてください
repaint()を呼び出すたびに描画が最初から行われるから でわかる?
repaint()はまずいということですか.. Imageのメソッドもっかい見てきます
374 :
デフォルトの名無しさん :02/12/16 22:43
>>372 素直にダブルバッファって言うヒント与えてやった方が良くないか?
なんか意味不明だぞ。
>>812 って。
376 :
デフォルトの名無しさん :02/12/16 23:06
JAVAを表示する仕組みを誰か説明してください。 それかそんなのが書いてあるページないですか?
812の意味不明コメントに期待しつつ 俺は寝る
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にする方法がわかりません。 どうすればいいのでしょうか? アドバイスお願いします。
>>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の違いって何ですか?
>>370 コンパイル速度重視ならjikesがオススメ。
ただし日本語がそのままでは通らなかったと思うので
コンパイル前にnative2asciiをかます必要があったかも。
>>385 レスありがとうございます。
さっきjikes落としました。
日本語に関しては-encodingで指定できるようなったらしいです。
でjikesだけでいいと思ったらSDKがいるっぽい。
#えらいサイズ小さかったし。
今SDKをDL中です。
>>383 ないです。そもそもJavaのboolean型は数値型にキャストは出来ません。
よって、boolean[]も当然数値化は自分でやらなくてはなりません。
>>383 BitSetってクラスがある。もしくは、ビット演算。
変換することを考えているのなら、最初から、booleanの配列にしなければ、
後が楽かも。(もちろん楽ではない可能性も)
389 :
デフォルトの名無しさん :02/12/17 12:20
オーム社の「基礎からわかるTCP/IP Javaネットワークプログラミング」という 書籍を用いてJavaの勉強をしています。 しかし、序盤でキーボードからの入力を受け取ってそのまま画面に出力、 及びファイルに入力を格納するというプログラムが コンパイルは成功するのに いざ実行すると Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at Writefile.main(Writefile.java:10) のように表示されて終了してしまいます。 このエラー(例外?)は何を示しているんでしょうか? わかる方いましたらご教授お願いします。
解答ありがとうございます。 プログラム中では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が配列の範囲外を参照しているんでしょうか・・・?
>>392 ざっと見た感じだけど、そのコードには問題がなさそう
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で消去されると見たのですが消去されてないようです どこが間違ってるのでしょうか?醜くてほんとにすみません
いっそSwingを使っては? あれならばデフォルトでダブルバッファも実装されているし。 もしAppletなどを作っているのなら仕方がないけど。
397 :
デフォルトの名無しさん :02/12/17 20:31
すいません。上の見難くて。訳わかんないですよね すいません。。アプレットです。
paint()の処理を、 まず最初に真っ白なり真っ黒なり背景用の画像なりを塗りつぶしてから キャラを描画するように記述しては? ・・・めんどくさいのでコード読んでないのでまちがってたらごめん、
ああ。いまコード読んでみた。
たぶん
>>398 の方法で解決するとおもう。
まず最初に真っ白なり真っ黒なり背景用の画像なりで、
offScreenImageを塗りつぶしたあとで
offScreenG.drawImage(imgIcon, intPosX, this.getHeight()-imgIcon.getHeight(this), this);
してから
g.drawImage(offScreenImage,0,0,this);ね。
update()はpaint()を呼び出しているだけだから、
offScreenGの内容は消去されないよ。
なので自分で塗りつぶす処理を書く必要があるわけです。
ゲーム作成がんばってね。
>>398 >まず最初に真っ白なり真っ黒なり背景用の画像なりを塗りつぶしてから
これこそがちらつく原因なんですよ。と。
>>400 いやオフスクリーンに背景やimgIconを描画してから
それをまとめて表のスクリーンにコピーすれば大丈夫じゃない?
っと。
402 :
デフォルトの名無しさん :02/12/17 21:23
>>401 ダブルバッファですな。読みが浅かった。スマソ。
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ファイルにどうにかして戻せますか?
JFrameを最前面に持ってきたいのですが, APIReferenceで "front"も"raise"もひっかかりません。 どうすればよいですか?
>>392 int n = System.in.read(buff); で -1 が帰ってきてると思う
>>404 decompiler か逆コンパイラあたりで検索すればいくつかツールが見つかります。
409 :
デフォルトの名無しさん :02/12/18 00:21
MIDPです。 Stringで2002/12/24 とある文字列をdate型に直すにはどうしたらいいでしょうか?
うーやっぱわかりません。すいません。 MIDPで日付を扱うのに情報が無さ過ぎる…
>>410 >JFrameの親クラスであるjava.awt.FrameのtoFront()
すいません。できませんでした。
当方RXVTを使っていまして,DOS窓からはできたのでRXVT固有の問題のようです。
スレ違い失礼しました。
>>412 MIDP 1.0 正式版には API マニュアルが提供されていません。 しかし、Java2 Micro Edition Wireless Toolkit の doc\api フォルダ以下に API マニュアルが含まれています。
にDateクラス無いの?
date(long time-mill sec)でもいけるのですが元データがStringで 2002/12/14 とかなのでこれをmill secに変換する方法がわからないので質問しました。 うるう秒?とかまで考え出すと日付を与えてdate型を構築する方法がないとどうしようもなさそうなので…
darだ
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. と言うことなんですよ…
Calendar.set(year + 1900, month, date)はMIDPには無いのか・・・。
420 :
デフォルトの名無しさん :02/12/18 01:10
くださらに質問ですが、JAVAによってどのようなサービスを顧客に提供することができるのでしょうか?
CLDCにローカライズ関係のクラスがないから自分でやるしかないよね。 グレゴリオ暦とかで検索するとうるう年の処理とかひっかかるよ。
422 :
デフォルトの名無しさん :02/12/18 01:12
>>409 逆にdate型にしなきゃいけない理由を聞いてみたい。
>>422 日付をインクリメントしたいとかじゃないの?
String 2002/12/22 とかで記録された日付が現在の日付から何日進んでいる/遅れているか知りたいからです。 うるう年とかの処理がややこしそうでdate(yyyy/mm/dd)とかでできれば楽なんだろうなって だけど無理そうですね…
SimpleDateFormat sd = new SimpleDateFormat("yyyy/MM/dd"); ParsePosition p = new ParsePosition(0); Date d = sd.parse("2002/12/18", p); やってみそ。
ごめん。バカでした。MDPなんですね。
427 :
デフォルトの名無しさん :02/12/18 09:09
appletでタイピングソフトを作りたいのですが参考になるソースどっかにありませんか?? 教えてください。
429 :
デフォルトの名無しさん :02/12/18 09:27
ji
430 :
bloom :02/12/18 09:33
431 :
デフォルトの名無しさん :02/12/18 11:21
変数は、初期化しなくていいんですか? 宣言すれば同時に初期化?
>>431 初期化は必須。
コンパイルしたときにエラーが出なければとりあえずOK。
>>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()); } アドバイスお願いできませんか?
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への登録へは書籍を参考に行っています。 どなたかアドバイス頂けませんでしょうか?
すいません、sage忘れました...
439 :
デフォルトの名無しさん :02/12/18 16:33
>>437 コントロールパネルでデータベース登録した?
>>439 「ODBCドライバ登録」のことではないのですか?
書籍には「ドライバ(JDBC-ODBC)はJDKに含まれる」と
あったので、ODBCの登録以外はしていません。
>>437 メッセージをよく読みましょう。dbaccessっていうあなたが作成した
クラスが見つからない、と言っています。おそらく
java dbaccess
とかやって起動したんでしょ? クラス名は大文字小文字区別するから
ちゃんと合わせないととダメだよ。
あとファイル名の大文字小文字も間違ってるから、Dbaccess.javaにしとけ。
>>441 ありがとうございました。
どうやらCLASSPATHの設定が悪かったようです。
書籍と環境を若干変えてやっていたので、気がつきませんでした。
442さんも参考になりました。
今回は違う原因でしたが、以後は気をつけるようにします。
445 :
デフォルトの名無しさん :02/12/18 17:23
java用のコンパイラコンパイラを探しているのですが、javacc というツールの他、cup,jflexというツールを発見しました。 これら二つの間に性能の違いなどはあるのでしょうか?どちらを使うのがベターなのでしょうか? よろしくおねがいします。
446 :
デフォルトの名無しさん :02/12/18 20:47
>>407 そこには気がつかなかった。まだまだ勉強しなければ...
tnx.
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に疲れました。 やる気キボンヌ
∬ つ旦
いただきまーす ズザザザー  ̄ ̄ ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (´´ ∧∧ ) (´⌒(´ ⊂(゚Д゚⊂⌒ ̄`つ≡≡≡(´⌒;;;≡≡≡  ̄⌒ ̄ (´⌒(´⌒;;
茶がぬるい!
454 :
デフォルトの名無しさん :02/12/20 23:16
お茶が空中に浮いてるぞ。
StrutsのValidaterなんだけど、 Formの複数のプロパティー値を比較して妥当性を検証したい場合は どうすればいいんでしょうか? まぁvalidateメソッドに実装するという手もありますが、これは避けたい。
456 :
デフォルトの名無しさん :02/12/22 12:01
sが文字列だとして if (s != null && s.equals("hoge")) の代わりに if ("hoge".equals(s)) と書くのは読みにくいでしょうか? 特に読みにくいわけでないのなら使いたいのですが
自分しか見ないソースなら自由に使えばいいし、 複数人で見るソースならその人たちに聞く必要があるだろう。 俺自身は別に問題ないと思うが。
>>456 俺は、
if(s.equals("hoge")を
「sが"hoge"ならば」
と、読むので
「"hoge"がsならば」
と言うのはどうもなじめないです。
>>456 それってsがぬるぽのとき例外にならないの?
いや、ヌルポになるよ。
すまん、見間違えた。ヌルポにはならない。
( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>459 ( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>461 ( ・∀・) | | ガッ
と ) | |
Y /ノ 人
/ ) < >__Λ∩
_/し' //. V`Д´)/
(_フ彡 / ←
>>462
(゚∀゚)グッド!
アプレットを作成しています。ボタンを押したときに次の画面へ遷移する ようにしたいのですが、どのように書けばいいのでしょうか?ボタンを 押したら、今表示されているボタンをなくして次の新しい画面を表示する にはどうしたらいいでしょうか?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) { } }
>>465 Stateパターンを使えってんだろぼけぇ!
>>465 次の画面とは何でしょうか?次のURL?
>>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);
}
}
こんな所からすいませんが、ちょっと教えてください。 セキュリティガードというのは、fusianasan と名前欄に書いて書き込むといいんですか? でもそれを書くとIPアドレスが出てしまうんですが。 本当にこれで大丈夫なんでしょうか?
>>469 ああ。本人確認のため、君以外の環境からは見えてないから心配はいらない。
それでは他のひとの目にはなんて名前ででるんですか?
>>471 名前欄に何も書かないのと同じ状態。名前を強制される板では_になる。
>でもそれを書くとIPアドレスが出てしまうんですが。
もう手遅れっぽい。哀れ。
>>468 2つの画面の土台となるクラスを作る。
土台となるAppletクラスは、レイアウトをCardLayout辺りにして、
ActionListenerもimplementsしておこう。
ボタンを押すアクションを捕らえたら、その土台のAppletクラスで、
次の画面に変えてあげましょう。
(゚∀゚)委譲を使うとStateパターンっぽくできそう。この展開を読むとは、やるな>466
473さん、どういうことですか? だまされてるんですか? 初心者なんですよ。教えてください。
>>473 >ボタンを押すアクションを捕らえたら、その土台のApplet
>クラスで、 次の画面に変えてあげましょう。
レスありがとうございます。この次の画面に変える処理というのは
どうやってやればいいのか教えていただけませんか。
↓のように捕らえることはできましたが、ここからどうやって画面を
切り替えたらよいのかわかりません。ご教授していただけませんか。
public void actionPerformed(ActionEvent ae) {
if(ae.getSource()==b1) {
SecondScreen ss=new SecondScreen();
}
}
>>475 人の話を聞かないタイプですね。嫌われますよ。
>>474 みんな答えてくれてないので、マジレスを・・・
それは、確認&個人情報保護をするもので、fusianasanと書くことによって、
個人情報がサーバ側で完全に保護されます。
住所などを特定の人だけに公開する事も可能です。
ためしにメール欄にfusianasanと書いて、本文に自分の住所や電話番号を書いて投稿して見て下さい。
投稿したPCのIPだとそれが見えるのですが、串を通して見るとその部分が抜けて空白になっているのがわかります。
但し、自分の住所や電話番号でしか空白にならないので、違う人の住所を書くと、
不特定多数の人にその住所が見れてしまい、場合によってはタイーホになるので注意してください。
で、一度でも上記の方法で名前、住所、電話番号を投稿すれば、サーバ側でそのデータが保護され、次からはfusianasanと記入しなくても自動的に保護されます。
2ちゃんねるを見るのなら、常識ともいえる手法です。
アダルト板なんかに行くと、IDとして自分のIPが特定の文字列に置き換えられて表示されますね!
そのIDから個人情報が盗まれる事件が起きてこのような機能が追加されたのです。
サーバ側に保護命令をだしておいたら、IDから個人情報が盗まれる心配もありません。
っていうか、俺だったら保護されてなかったら怖くて2ちゃんなんかに来れないよ・・・
↑失礼! 「メール欄」じゃなくて「名前欄」だ・・・ メール欄に書いても意味ねーや・・・ 個人情報丸晒しになっちゃう・・・ 早く気づいてよかった・・・
>>477 >>474 みたいなアホに親切にしても何もいい事ねーよ。
マジレスすんなボケ。ほっとけ。
480 :
デフォルトの名無しさん :02/12/23 12:02
串って何ですか.
>>482 >既にIP抜かれてアポーン
で、IPアドレスごときで何が出来るって?
>>480 日本語読めますか?↓
【初心者】Java質問・相談スレ⑦【大歓迎】
487 :
デフォルトの名無しさん :02/12/26 00:41
97 =a 98 =b のように文字を数字(10進) またはその逆をするにはどうしたらいいのでしょうか?
>>487 int num = 'a';
char ch = (char)num;
// int num , String str str = Integer.toString(num, 10); num = Integer.parseInt(str, 10);
490 :
デフォルトの名無しさん :02/12/27 01:54
リフレクトとセキュリティーapiで privateのフィールドを操作できるようなことを 以前聞いた事があるのですが、具体的な方法が分りません。 教えていただけないでしょうか。
>>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を出力したいです。
いろいろやってみたのですが浅学ゆえ分かりません。
何か良い方法はないでしょうか?
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>"; です。
>こんにちわ 世界 って電波ですか?
class shobon { public static void main(String args[]) { System.out.println("(´・ω・`)ショボーン"); } } どうですか?
>>497 public classにした方が平和で良いよ。
499 :
デフォルトの名無しさん :02/12/27 19:51
つかえねーな、ここ。
>>492 ドキュメントをあさると吉。
もう読んだ。でもわからんとか言うなよ。
>>500 ドキュメントはあさった。そんな例は見あたらなかった。
PHPとかPerlならこんなの簡単にできるんだけどな。
503 :
デフォルトの名無しさん :02/12/28 02:21
APIのjavadocもマトモに読めない奴がえらそうだなオイ(ワラ transformer.transform(new StreamSource(new StringReader(xmlData)), new StreamResult(System.out));
Javaのプログラム内部でXML文字列を直書きするって、すごい 馬鹿なことだということは、覚えておいた方がよし。
>>504 それいっちゃJSP内にスクリプトレット埋め込むのも、
Servlet内にHTMLタグ入れるのも馬鹿になっちまう。
最近はstrutsやJSPカスタムタグライブラリがあるからどうにかなるけど。
好意的に解釈するなら、直書きは隠蔽すべし。ともとれるかな
>>508 いちいち書かなくてもみんな分かってるよ。
>>511 このスレでは、長そうなソース、手間のかかる事は
嫌われる傾向があるような気がする。なんとなく。
こうやったけどできなかった、どうすればいい。とか、
これってどうやんの。ってな質問に変えてくれる?
>>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;
}
>>503 多謝多謝。動きました。
XML文字列でやろうと思ったのは
データベースから取り出した結果をXMLデータにして
XSLファイルをテンプレート的に使いたかったから。
ソース内にHTMLタグを書き込むのはどうも抵抗があるもので。
今年イチネンたくさんお世話になりありがとうございました。 来年も宜しくお願いします。
517 :
デフォルトの名無しさん :03/01/03 23:41
保全あげ
JAKARTAのECS(Element Construction Set)使っている人っている? これってJAXPとかとどう違うの?...っていうか、 「JAXPはXML、ECSは汎用」ってだけの違い、なの?
519 :
デフォルトの名無しさん :03/01/05 18:45
Stringがどのエンコードかを調べるにはどうすればいいんでしょうか? 具体的にはShift_JIS、EUC混じりのファイル名をディレクトリ単位で取得して そのファイル名がShift_JISならEUCに変換したいんです。 よろしくお願いします
>>519 Stringは一律unicodeでは?
Stringになった時点でunicodeになってる。 つまり元の文字コード情報は失われてる。 > 具体的にはShift_JIS、EUC混じりのファイル名 JNIつかって直アクセスしないと無理っしょ...
そうなんですか。 ありがとうございました。
>>521 JNI 使って何にアクセスすれば「元の文字コード情報」が判るんで?
>>521 え?
>Stringになった時点でunicodeになってる。
>つまり元の文字コード情報は失われてる。
どうやってさ。どうやって元の文字コードから、勝手に同じ文字シーケンスの
Unicodeエンコード文字列に変換できるんだYO。そんな機能があったら複数の
エンコードの共存ができないだろ。
ていうか、文字って言ったって、中身はただのバイト配列なんだから...
例えばソースとなる文字列が"MS932"で、それを Stringにしたとしても、
「Unicodeとしてはバケてて読めない文字」だが「MS932としては同じバイト列」なんじゃないの?
勝手に失わせるな。
>>523 >JNI 使って何にアクセスすれば「元の文字コード情報」が判るんで?
関係無いと思う。
ていうか、文字のエンコードっていうのは、ただのバイト列を「と、みなす」と
しているだけなので、そんな「ただのバイト列」である文字をマシン側からは
「人間はこれをどう読んでいるか」判定する事はできない。(※1)
強いて言うならあらかじめエンコードの違う文字列のファイル別にフォルダを分けて、
それぞれのファイル名を取得する際に、
「このフォルダ以下はShift_JIS」とか「ここはISO-8859-1」とか意識して、
File fFoo = {どこぞのフォルダの某ファイル};
String sName = new String(fFoo.getName().getBytes(),"ISO-8859-1");
とかエンコード掛けなおしてから、また新たに文字シーケンスを構築して、
リネーム汁。
※1・どこかに「このファイルの名前のエンコードはアレです」って情報があれば、
それを取り出して使えばいい。
>>524 自己レス・補足
>どうやってさ。どうやって元の文字コードから、勝手に同じ文字シーケンスの
例えばその文字列がただのバイト列(byte[])としてあった場合、それを、
String sBar = new String(バイト列);
のようにして文字シーケンスに変換した場合は、「プラットフォーム固有の」
エンコードによって処理される。
527 :
デフォルトの名無しさん :03/01/05 20:56
>>526 ついでに言うと、「これからそのシーケンスにエンコードされる」文字が、
もし、そのエンコードの「面」になかった(文字自体が定義されてなかった)場合、
Stringになった時点で"?(という文字)"になってしまいます。
529 :
デフォルトの名無しさん :03/01/05 21:00
こりゃまた粘着に絡まれちゃった(;´Д`) 519さんの目的は文字コードの変換なのに・・・(;´Д`)
文字のエンコードって、誤解している香具師が多いね。
>>530 え?
>>521-527 の言ってる事で正しいんじゃないの?
漏れも間違ってる?
漏れ仕事でJavaApサーバ使ったシステム構築やったけど、その辺結構慎重に調べたよ。
>>530 >>519 は、
>具体的にはShift_JIS、EUC混じりのファイル名をディレクトリ単位で取得して
>そのファイル名がShift_JISならEUCに変換したいんです。
って言ってるから、先のように答えたんだが。
>>521 あ、うにこーどにする前のファイル名をJNIで取ってくるのか。
ファイル名のエンコーディングって "file.encoding" だっけ?
でも EUC/SJIS.txt みたいなメチャクチャなパスだと大変そうだね。
JISAutoDetectみたいな漢字コード自動判定も短い文字列だと誤判定多そうだし。
って言うかそんな環境依存丸出しのコードわざわざjavaで書かんでも。
っつーか、一つのファイルシステムに SJIS と EUC を共存(?)させるような無茶した時点でアレなわけで… どの言語でもイヤな処理だと思われ…
> うにこーどにする前 ポイントはそこです。だからJNIせざるを得ない。 今ちょっと見たけど生ファイル名をバイト列で取り出す方法は 無いみたいね。
>>536 ぶっちゃけ、そう言われてしまえばそうなんだが...(笑
>>537 file.encoding でエンコードされてんだったら
file.encoding に ISO-8859-1 指定するとか出来るかも?
>>539 519が想定している状況では複数のエンコーディングが混ざってるのよ。
java.io.Fileってそれを扱えたっけ?
なんでAPIをオーバライドするっていう発想が無いのでつか。>537
>>541 おお、そんな方法があるのですか。教えてください。
>>541 で、どうやるの?できるの?そんなこと。
でも環境依存バリバリならそれが動くプラットフォームもガッチリ固定だから、 JNI使ってもバチは当たらないかも。 Write once , Run only here.
失礼、間違えた。
>>533 は俺。
>>521 では無い。
で、
>>541 あのな、別に継承するのはいいんだが、java.io.Fileのソース見たか?
全部書くのか?お前。
っつーか、メソッドのオーバーライドで解決するような問題とも思えないんだけど…
安直なJNIによる解決の前に、もっと他にできないかって考えるのが大事でつ。
生バイト列でのファイル名でアクセスができればいいんだけど、 現状では用意されていないように思える(ちゃんと調べてない) 541は結局手順を示さないし、ネタっぽいですね・・・がっかり。
>>547 で、クラスライブラリのソース改造か、おめでたすぎるが。
ファイル名程度の長さで Shift_JIS かどうかをきちん判別できるっけ? 結構失敗しそうだが。
うにこーどに変換しないだけなら
>>539 でいけそうかも…
jdk1.4 のソースしか調べてないけど。
っつーか new String(byte[]) って毎回 System.property の file.encoding チェックしてるみたいなんだけど…
そーゆーモンなんだろうか?(ちゃんと PrivilegedAction と AccessContoroller.doprivileged() 使ってるし…)
>生バイト列でのファイル名でアクセスが そもそもシステム標準でないエンコーディングのファイル名なんてあるの? 普通に文字化けしてるハズじゃん
>>550 せめて JIS と SJIS とか JIS と EUC とかだったら何とかなるような気もするけど…
>>552 そもそも以下略は519に言ってあげて頂戴よ
>>551 > うにこーどに変換しないだけなら
>>539 でいけそうかも…
ディレクトリ内のファイル一覧をgetするときに
ファイル別に指定できるの?
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
IBMのライブラリで、文字コード系のライブラリがあったような気がするぞ。
562 :
デフォルトの名無しさん :03/01/06 00:56
Java初心者です。 やや趣旨からズレてしまうかも知れないですがよろしくお願いします。 CLASSPATHを通してjavaコマンドで実行をすることに成功しました。 ですが、この状態ではjavacへのPathが通っていないようです。 win2000を使用しているのですが、javacでPathを通すための変数は何処になるのでしょうか?
564 :
デフォルトの名無しさん :03/01/06 00:59
>>562 はい、再起動を行いjavaでのPathは通るようになりました。
インストーラがなにもかもやってくれなかったのかな。 ごめん、よくわからない…。
566 :
デフォルトの名無しさん :03/01/06 01:07
>>562 コンパネの「環境」にパスを通すところがあったはず。確か。
多分、今はJREにしかパスが通っていないんだろう。
JDKのbinディレクトリにパスを通すべし。
ちなみに再起動しなくても、新しいコンソール開けば大丈夫だよ。
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型の変数。
代入できないのはあたりまえ。
>>566 ありがとうございました。
自分の質問の日本語におおきな誤りがあったようです。
正しくは「javacを任意のフォルダへ通す方法」を聞きたかったようです。
日本語すらできない奴がプログラム言語っておかしいですね。出直してきます。
win2000ではコンパネ→システム→詳細→環境変数でPathの設定ができました。
>>570 「任意のフォルダへ」ってどういうこと?
とりあえず、javacはJDKをインストールしたフォルダの、
binディレクトリを探して、そのフォルダをPath環境変数にくっつけて
みれば出来ると思うよ。
場所が分からなければ、「javac」というファイルを検索してみよう。
ふと思ったんだけど、ひょっとして javacコマンドが実行できないんじゃなくって、 javacするときにクラスパスが通っていないってことを言いたかったの?
573 :
MVC ◆J2EE/XIRXY :03/01/06 01:26
>>569 × strはString型の変数。
○ strはStringクラスのメゾッド。
Javaには、文字列を扱うデータ型はネーヨ!ボォケ!
鬱だ・・・ トリップさらしてしまった・・・
>>571 javaファイル作成後classファイルの生成までは上手くできたのですが、
毎回それらのファイルが保存されているディレクトリへ移動してコンパイル、
実行することが面倒なのでどこかの変数にディレクトリのPathを通し、一々cdコマンドを使わないで
javac hoge.java
としたかっただけです。本当にお騒がせしました。
>>575 なるほどね。
javac -sourcepath (パス名) hoge.java で出来たと思うよ。
詳しくはJDKのコマンドリファレンスを見てね。
>>573 とりあえず、煽りが目的ってことでよろしいですか?
>>575 EclipseかJcPad使えよ、タコォ
>>579 じゃ、まー適当に煽ってスレを盛り上げてください。
おいらはもう寝ます。おやすみ。
>>557 あ、ちなみに今回は上手くいったみたいだけど
ファイルシステム自体が うにこーど でファイル名持ってる場合は
System.setProperty("file.encoding", "ISO-8859-1");
しても無意味っぽいので。
WinNT系とかで NTFS 使ってる場合とか(?) (MacOSXも(?))
WinNTでFTPサーバやら作ったとき
EUC やら SJIS やらの日本語ファイル名流れてきたらどーしてんだろ?
ま、スレ違いだし どーでもいっか。
>>581 それはOSの仕事。
だいたい俺はファイル名がバケてるの、見たこと無い。
583 :
デフォルトの名無しさん :03/01/06 09:50
訳あって、JAVAを勉強しなくてはならなくなってしまった のですが、なにから初めていいのかサパーリわかりません。 まったくの初心者なんです。 独学でのお勧めの勉強方法や、本などをを教えてください。
やだ
>>583 結城本上下と独習Java、あとはAPI
>>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 のエラーが出てしまいます。何処らへんが原因なのでしょうか? よろしくおねがいします。
>>588 考えられる問題は二つ。
ひとつはネットワークなどの問題。(LANケーブルが抜けたとかそういう類のやつね)
ふたつはプログラム自体の構造的な問題。
>>587-588 の断片的なソースだけではなんとも申し上げられませんが、、
おそらく後者の問題なのではないかと。
javaのプログラムの実行時間を計りたいと考えています。 コマンドラインから起動した場合には、 time java プログラム名 で問題ないのですが、ブラウザから起動するサーブレット の場合はどうすればよいのでしょうか? わかる方がいましたらよろしくお願いします。
591 :
デフォルトの名無しさん :03/01/06 16:31
アプレットでユーザ認証用のウィンドウを作成しています。 Web でよくみられるログイン画面のように、テキストフィールドに入力する文字列を アスタリスクで表示するには、どのようにすればよいのでしょうか?
開始時と終了時に java.util.Date() して差を取れ。
594 :
デフォルトの名無しさん :03/01/06 16:36
アプレットでユーザ認証用のウィンドウを作成しています。 テキストフィールドに入力された文字を、実際の文字でなくアスタリスクで表示する にはどのようにすればよいのでしょうか?
メディアプレーヤーで、unyounyo.mp3ファイルをおよそ10分置きに再生する。 そんなプログラムはJAVAで書けないでしょうか?
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からユーティリティクラス(自作ライブラリ)を呼び出した方が簡単だと思うんだが。
600 :
デフォルトの名無しさん :03/01/06 17:27
>596たん >java.util.Timer と java.lang.Runtime.exec 実際どう書くんです? おしえてぽ。
すいません今現在ZIP圧縮についてやっているのですが 圧縮についてはうまくいったのですがCRCを要求する解凍ツールにて 解凍をするときにエラーを出してしまいうまくいきません。 java.util.zip.crc32を使用してCRCをセットするようなのですが セットをする時に ・圧縮前のサイズ ・CRC ・圧縮後のサイズ が揃っていないとZipEntryに書き込みができませんが、 圧縮後のサイズというのはどのように取得すればよいのでしょうか? JavaHouseやAPI等もみたのですがわからずに困っています 是非分かる方よろしくお願いします。
すいませんソースです。 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に情報を送りたいのですがどうしたらいいでしょうか?
JDBCを使用して、サーバ(Oracle)からデータを取得し、表示するいうごく簡単なSwingプログラムを作りました。 表の内容は「NO」「MNAME(メンバー名)」「AGE」の3項目から成り立っています。 データの検索や行の挿入などの付加機能は簡単につけられたのですが、このメンバーを次々と表示するためにNO(ナンバー)で昇順に並び替えました。 押すたびに次のデータが1,2,3...と一件ずつ表示される「Next」と、その逆の「Back」ボタンです。 ところが何度やってもSQLで全件取得したResultSetであるG_RSがNO.10までのデータしか取得できていません(それ以降を実行しようとするとエラーがcatchされる)。 ソースではResultSetをわざわざ2つ使っていますが、ひとつでスマートにしようとするとなぜかアドレスと思われる長い数字がドッと表示されるだけなのです……。 どなたか原因が分かる方がいらっしゃいましたらよろしくお願いします……。
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();
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);
/* テキストラベルを作成(略) */ /* テキストフィールドを作成。 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);
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");
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); } } }
ソースALLアップは久しぶりですね。
> Javaは遅いという迷信を打ち消してくれ $unが握ってる限り無理だと思う
>>603 TextArea でも CTRL+TAB でフォーカス移動できるやん…てのじゃ不満だろな。
JDK1.4 以降なら Component#setFocusTraversalKeys で
FORWARD_TRAVERSAL_KEYS と BACKWARD_TRAVERSAL_KEYS に
各々 null を割り当ててやればデフォルトのフォーカスコントロールキーが
使われるようになるみたいですけども。
>>614 Sun MicroSystemsが握っている限り無理だと思う具体的な理由は?
計算機の性能も向上しJVMのバージョンアップするにつれ高速化している。
マシンパワーにもよるが2年前には、体感速度はCとさほど変わらなくなったとも言われている。
Javaアクセラレータによってさらに高速化できる。
>>616 計算機が速くなったらVMも速度が向上するのは当然
じゃあトータルでPCの速度が2倍になったときVMの速度も2倍になったか?
なってないよな。
同じPCで昔のVMと今のVMと速度比較してみた?遅くなってるよ。
体感的にはCと変わらない?
体感的なんて曖昧な判断基準でモノを言うなんて、プログラマ失格じゃない?
とかいってもオレもJava好きなんだけどね。
>>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とスコットマクリーニが嫌い? 俺はそんな感じです。
>JDK1.4になってからはパフォーマンスが50%向上したとはニュースで見たのだが...。 >JDK1.3と比べてということか。 GUIとか使わないアプリだと殆ど変わらないと思う。 50%もパフォーマンスが上がるのは VolatileImage とか1.4の新機能の恩恵を受けられる部分だけだと思う。
>>602 ZipOutputStream 使った圧縮だったらそれで良いと思うが…
>613 ありがとうございます。 しかし今はパフォーマンス以前にきちんと動作しないので (掲載したソースはかなりはしょっていますが…ドライバ確認部分とか) そこを何とかしたかったのですがやはり難しいですかね。
ちとスレ違いかもしらんけど、XDocletってどうやって使える環境に するん?
>>620 レスありがとうございます
たしかに圧縮は可能だったのですがLhacaなど(結構たくさん)の特定の解凍ツール
などではCRCをセットしないと解凍できないっぽいんですよ
ですのでもしご存知でしたらお教えください~
>>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を導入します。)
ブラウザでの印刷が出来ない場合のために Javaのコードから印刷する手段も一応調査したのですが、 (ToolKitやPrintJobを使用するパターン) PrintJob prtjob = getToolkit().getPrintJob((Frame)getParent(), "Test",null); ここで、Plug-inを使用しているために、getParent()でFrameにキャスト出来るオブジェクトが 取れないんです。何か打開策はないでしょうか? ★ここで空のPrintJobインスタンスを作っておいて、 このあとでGraphicsクラスを作る時にアプレットと同じGraphicをコピーすれば大丈夫でしょうか??
627 :
デフォルトの名無しさん :03/01/07 15:07
アプレットでユーザ認証の画面を作っています。 認証に失敗した場合にウィンドウにメッセージを追加したいのですが、 ウィンドウの表示内容を更新するにはどのようにすればよいのでしょうか?
>>627 ウインドウってアプレットの貼り付けてあるブラウザの事?
それとも別ウインドウ(ブラウザの)を起動して表示してもよしなの?
630 :
デフォルトの名無しさん :03/01/07 16:23
>>629 同一のウィンドウ内です。
これに関しては、ラベルの内容を書き換えて repaint() することで思うようにできました。
新たに質問なのですが、アプレットからもう1つのアプレットを呼び出すにはどうすればよいのでしょうか?
631 :
bloom :03/01/07 16:27
632 :
デフォルトの名無しさん :03/01/07 17:04
>>615 さん
レスありがとうございます。
非常に参考になりました。
またまた質問なのですが、
TextAreaでEnterキーを押すとあるメソッドを
実行させたいのですが、これまたできません。
普通に改行されるだけになってしまいます。
対処法はないのでしょうか?
633 :
デフォルトの名無しさん :03/01/07 19:10
staticメソッドにsynchronizedをつけたプログラムで あるスレッドがそれにアクセスしたとき そのクラスのすべてのインスタンスにロックがかかるの? それとも部分的にstaticメソッドとstaticフィールドだけとかになるの? おしえて。
>>633 synchronized (そのクラス.class) {
}
?
637 :
デフォルトの名無しさん :03/01/07 19:34
印刷プログラムのコーディング内で 印刷に関するアクセス権限を明示的に与えるには どんな風に記述すればいいんですか?
638 :
デフォルトの名無しさん :03/01/07 19:48
>>633 javaの仕様では、「メソッドがインスタンス・メソッドではインスタンス
に関連したロックをして、メソッドがstaticの場合は、そのメソッドが定
義されているクラスを表現したClassオブジェクトに関連したロックが行
われる」とあります。
ということは、クラスのインスタンス全部にロックがかかるのではないの
でしょうか。
うむ。やっぱそうか。ども。
みんなが利用しているアップローダって、全て自作ですか? どんなの利用しているのか、あとパフォーマンスを教えてください。 出来ればスタンドアロンの環境で1MB のファイルで何msかかるかを、 教えてもらえると嬉しいのですが。 よろしくお願いします。
>>640 >>クラス (static) メソッドに対しては,そのメソッドのクラスに対するClass(20.3)オブジェクトと関連したロックを使用する。
ということは個々のインスタンスにはロックはかからない?
うぎゃーどっちなんだ。
あっClassオブジェクトってのは個々のインスタンスのことかな? 連かきこすまん
>>633 そのstaticメソッドを呼び出す「全ての」インスタンスにロックはかかる。
しかし、synchronized(this) { しようとしているインスタンスにはロックは
かからない。
>>642 つまり、ロックが何だか良くわかってない、と。
>>644 わかってる人相手だったら それでも良いと思うけど
わかってない人は ますます混乱する可能性があると思う。
>>645 そだね。しかも、synchronized(this)しようとしているインスタンスってのは、
無茶苦茶だね。インスタンスは1ヶでスレッドが複数なわけだから。しょぼん。
synchronized static void ... synchronized void ... でデッドロックもありうるってことかな
>>647 ソレが勘違いです。
クラスメソッドはそのクラスを表現するClassインスタンスのモニターを、
インスタンスメソッドは自身のインスタンスが所有するモニターの取得を
試みます。
モニターを取得しようとしているインスタンスが別なので、それだけで
そういったことはおこりません。
>>648 ??
ロック可能なものが複数あるから
デッドロックが起こりうるんじゃないの
ようするに、あるクラスのsynchronizedなstaticメソッドの実行中は、 そのクラスのすべてのsynchronizedなstaticメソッドを、 他のスレッドが並行して実行することはできない。 でも、そのクラスのインスタンスのsynchronizedな非staticメソッドは、 他のスレッドも並行して実行することができる。 ってことだよね?
652 :
デフォルトの名無しさん :03/01/07 23:39
>>650 さん
レスありがとうございます。
そのようにしても、エンターキーを押すと改行されるだけで、
やりたい処理をできません。
keyReleasedもしくはkeyPressedを使えばできるのですが、
漢字変換などをして、決定のためにエンターを押すと、
そのやりたい処理が実行されてしまったり、変なとこで改行が
入ったりと不都合が生じます。
どうすればいいかさっぱりお手上げです。
次から本スレの方に質問させていただきます。
>>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って最適ですか?
●本当に● 支障ないなら いいんじゃねーの
>>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++というふうに学ぶのが一番ですね。
>>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では邪道なのでしょうか?
追加ですが、javaのinterfaceってCのヘッダファイルみたいなもの という認識でいるんですが、間違ってはいないですよね?
662 :
デフォルトの名無しさん :03/01/08 11:15
Javaで利用されるアーカイブについてお聞きしたいのですが、 .jar、.war、.earまではわかりますが、 .sarはどういう目的で使われるアーカイブなんですか? ご存知の方いらっしゃいましたらご教授ください m(_ _)m
>>660 基本的にクラス名の重複は推奨されません。
邪道っつーか ヘッダファイルは C の負の遺産の一つなので。
C++ がアレなのもヘッダファイルを引き継いでるのも原因の一つだし。
>>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のインスタンスになる。
>>663 > 基本的にクラス名の重複は推奨されません。
2つのクラスは同じ機能を持っていると思っています。
1つは外部との公開インターフェースを定義する役割->Cのヘッダと同様?
もう1つは公開インターフェースを実装する役割->Cのソースと同様?
同じ機能を持っている物に対して別の名前を付けるのは不自然な気がします。
> C++ がアレなのもヘッダファイルを引き継いでるのも原因の一つだし。
privateなメンバ、変数もヘッダに書かなければいけないことでしたら
やり方によってはポインタだけを含めればprivateなメンバ、変数は
ヘッダに書く必要がありません。
それ以外にC++ が「アレ」な意味が思い当たりませんが、他に何かありますか?
>>664 できれば、理由を教えてください。
できれば
>>666 >2つのクラスは同じ機能を持っていると思っています。
>1つは外部との公開インターフェースを定義する役割->Cのヘッダと同様?
>もう1つは公開インターフェースを実装する役割->Cのソースと同様?
抽象化してないのに interface を使おーとしてる、と。
それだったら interface は不要で
class だけ書いて公開部分を public にしてください。
>>666 >それ以外にC++ が「アレ」な意味が思い当たりませんが、他に何かありますか?
いや、ヘッダを分離しなきゃいかんのがアレだ、と言ってるんだけど。
>>666 >>664 じゃないけど。
C++でabstractなクラスAを継承しているクラスBがあったとして、
クラスAはヘッダファイルみたいなものだと思うのか?
670 :
デフォルトの名無しさん :03/01/08 12:43
>>664 >>666 >>669 抽象メソッドがCのプロトタイプ宣言みたいなものだと思い込んでいるとか?
C++のクラス定義もまるで抽象クラスみたいだったな。
実装がグローバル関数みたいになってキモイものだった。
これもC++がアレな理由の一つです。
コンストラクタの記述を省略してメソッド(メンバ関数)使えたのもキモかったような。
ポインタ演算、メモリ、アドレス操作、バッファーオーバフローで苦しむからってのもアレな理由でしょう。
>>667 というか、一つのファイルに複数のクラス入れるのは、
main()メソッドとかJUnit入れたテストクラスを除いて、邪道と思った方がいいんじゃない?
>>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ぽんサイトです。
674 :
デフォルトの名無しさん :03/01/08 13:04
>>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に入力文字制限をかけたいのですが、 どうすればよいのでしょうか。 プロパティでは、むりですか。
>>669 > C++でabstractなクラスAを継承しているクラスBがあったとして、
> クラスAはヘッダファイルみたいなものだと思うのか?
ええ、ヘッダファイルの中でヘッダファイルをincludeしているような
ものだと思っていますけど、間違ってますか?
>>678 どっちかと言うとあるクラス群の共通な部分のテンプレートって感じじゃないの?
>>671 そうじゃぬー。説明がよくなかったのう。
staticだから可能なんだろ。
omae()がstaticでなくても
C++では呼び出す側の
afodesuka afodesuka = new afodesuka();
を省略できるというキモさあったわけだよ。もしかしたら間違ってるかもしれぬ
呼び出される側のデフォルトコンストラクタはわかとる
>>676 モジュールは複数に分けた方が後で何かと苦労しないということで。
上位モジュールが下位モジュールに依存するのではなくて両方とも抽象モジュールに依存するようにすべきという法則ということで。
あるメソッドの引数の型が*Implクラスのスーパークラス(orスーパーインターフェース)だったら
わかるんでない?
そのスーパーインターフェースをXとすると引数の型にはXまたはそれを継承したクラス、インターフェースしか入れられない。
682 :
デフォルトの名無しさん :03/01/08 13:44
>>678 importはincludeしているようなものだけど、微妙。
>>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() の関係に近い。
>>676 AttributeListImpl.javaの1行目
>// SAX default implementation for AttributeList.
が読めないのか?
デフォルト以外の実装を使いたくなって自作するとき、
しかもそれが別のクラスを継承する必要があったりしたら、
Interfaceじゃなきゃ困るんじゃないか?
>>677 java.awt.Choice で文字制限って? どの部分で?
686 :
デフォルトの名無しさん :03/01/08 14:51
>>685 入力可能な文字を半角のみにするとか、ですが
API見るとそれっぽいものがないのですが、
>>687 それを使ってコンパイルすればJavaは遅いとブーブー文句を言われなくなるわけか。
ただではつかえないのが残念。と言うかSunはそれを許さないか。
>>684 > デフォルト以外の実装を使いたくなって自作するとき、
> しかもそれが別のクラスを継承する必要があったりしたら、
> Interfaceじゃなきゃ困るんじゃないか?
デフォルトの実装が存在するならば、抽象クラスで十分
別の実装が必要ならばオーバライドしてしまえばいい。
ではないですね。Javaでは単一継承しか許さないので破綻しますね。
C++の場合は何とかなってしまいますけど...なるほど、理解しました。
また、くだらない質問ですが、何故「*Impl」なんでしょう?
デフォルトの実装ならば「*Default」、または
インターフェースと同じクラス名の方が私にはしっくりきます。
>>690 「Default*」 って命名する連中もいる。
例えば javax.swing.tree とか見れば DefaultTreeModel とか DefaultTreeCellRenderer とかあるし。
忠実なのもいいんだが 長いクラス名は精神を汚染する
>>690 > ではないですね。Javaでは単一継承しか許さないので破綻しますね。
interfaceなら多重継承できる
それぞれに抽象クラス(デフォルト実装)を用意できないってことでわ
>>693 何がいいたいのかよくわからん。
質問の流れ理解してる?
>>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できません。どうしてでしょうか?
>while(res!=0); ここでつかてるから
>>700 do~while文内で宣言したものは
条件式(res!=0)には適応できないっていう意味なんですか?
702 :
デフォルトの名無しさん :03/01/08 17:06
>>700 while(res != 0) のresはスコープの外側だからね。宣言を内側にすればエラーは当然
>>676 xalanあたりは特殊ケースじゃないか?
W3Cがinterface群を一律に定めておいて、各々のベンダがこれを実装するようにしているから。
apacheの香具師らが単に独自に作ってたのなら、AtributeListやらはclassになっていたかも。
>>684 一般的には、xalanみたいなのは内部的にXXImplでキャストするようなコードがどこにあるか分からないから、
XXImplだけ1から自作、みたいなのはお勧めできない。
>>690 日本語で言えば「デフォルトの実装」と「実装」の違いだな。ほとんどニュアンスの問題だが…。
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などでファイルを読みこむときに絶対パスを指定しない ようにするにはどうすればいいのでしょうか? 実行中のクラスと同じフォルダ内におけばファイル名のみで可能ですが、 リソースを一箇所にまとめるための方法を教えてください。 実行時にしていするのでなくプログラム上で指定できるよい方法をおしえてください。 よろしくお願いします。
FileクラスのAPI読め
>>699 resのスコープがdo~whileのブロック内だから
なにを今更
IP取るようになったらみんな「です・ます」で話すようになるぞ
ガ━━(゚Д゚;)━━ン!
>>197 >>99 が気になるところだね。
さっき書き込もうとしたら久々に500errorに遭遇した。一応報告。
>>703 んなことはどうでもいい。
単にインターフェースの使い道がわからんと言ってたから、
「そういう状況なら必要だ」と言ったまで。
質問よめ
このままじゃチョンから訴えられるじゃねーか
716 :
デフォルトの名無しさん :03/01/09 01:59
>>657 さん
レスありがとうございます!
できました!感謝感激です。
こんな方法があったとはまったく知りませんでした。
本当に丁寧なレスありがとうございます!
大阪キタ━━━━━━(゚∀゚)━━━━━━ !!!!!
2、3年か…夢を食べるのは技術か、法律か。
>>92 まっとうな批判なら勝負すればいいんじゃないすかねぇ…
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() ); } }
半角空白をTABにしてなくて読みにくいと思いますが 初心者質問です。 javaでnslookupを作っていて、ホスト名をIPアドレスに変換はうまくいくのですが その逆のIPアドレスからホスト名を引いてもIPアドレスが出るだけでうまく逝かないです javaのリファレンスを見ても仕様上何の問題も無いはずなのですが・・・
ちなみにエラーが出るのでコメントアウトしてます
723 :
デフォルトの名無しさん :03/01/09 11:04
>>720 getHostNameメソッドはstaticでは無いので、それでは呼べないですよ。
そのソースからすると、
addr_2.getHostName()
でいけるのでは?
724 :
デフォルトの名無しさん :03/01/09 11:07
>>720 そのプログラムを実行したマシンは、きちんとDNSの設定をしていますか?
もしかしたらそのマシンのDNSの設定の問題かも。
{
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 タブではなく全角スペースね
>>725 に書いたバグは、1.0のころのものなので、
いまどき1.0のVMを使っているとは少々考え難いですけれど。
>>719 timeの出力が標準出力じゃないから。
Process#getErrorStream()も使いなされ。
そもそもJavaのプログラムの実行時間を計るのならtimeは適切ではないと思うけれども。 System.currentTimeMillis()使うとかさ。
自己つっこみ。
>>725 InetAddress addr_1 = addr_2.getHostName( address );
の返り値はString型ですよね。ごめん。
>>729 引数にjava.lang.StringがあるgetHostNameメソッドが見つからないんだけど。
久々に2げと
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の設定の問題では?
で、そのプログラムを実行した環境は?
あと無意味に全角スペースを使いまくるのはどうかとおもうよ。
======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 ────────────────────────────
Javaに構造体が無いことを今日初めて知ったのですが、 たとえばClass1のMethod1からClass2のMethod2を呼び出し、そこで処理をして Class1に複数の型のデータを渡したいとき、CならMethod2の返り値にstructを 使って渡せましたが、Javaではそれは出来ないってことですよね。 ということは、Class1からClass2のメンバ変数を直接見ろってことなのでしょうか? (スミマセン、構造体とクラスが似すぎてて混乱してます・・・)
738 :
デフォルトの名無しさん :03/01/09 18:13
739 :
デフォルトの名無しさん :03/01/09 18:50
>>737 そこで混乱しているということはC++の経験はないのかな。
たとえばC++のクラスはCの構造体を拡張したものです。
データだけの構造体に関数と
private,protected,publicなどのアクセス制限機能を付け足したものが
クラスであると考えてよろしいかと。
appletを作成中なのですが ImageクラスでimgXX= getImage(getDocumentBase(), "xx.gif"); と読み込んだ後 imgXXの高さと幅をしるにはどうしたらよいでしょう? takasa=imgXX.getHeight(this)としたのですが駄目でして takasa=imgXX.getHeight(imgXX)としても駄目でした
>>738-739 サンクスです。
どうも、クラスの中に関数(メソッド)があるのに、それがなーんでクラスを返すネン
みたいな考えに捕らわれてまして・・・。
関数内で、データだけ保持するクラスを生成して値を詰め込めば、それを呼び出し元に
intやchatと同じく返すことができるってことなんでしょうか。ひとまず挑戦してみます。
742 :
デフォルトの名無しさん :03/01/09 20:36
あらま、ここまでややこしかったのですか でもためになりました。有難うございます
>>741 クラスとインスタンスの違いを理解しませう。
他の言語でプログラミング経験がある人は逆に、
実践をするよりも参考書を読んだ方が良いかも。
このまま全サーバに導入してしまってもかまわないと個人的には思います。 発言に自己責任が伴うので、くだらない殺人予告や過度の誹謗中傷、ウイルス・ブラクラリンク などは少なくなるのではないでしょうか。
746 :
デフォルトの名無しさん :03/01/10 00:09
sirealizableがよくわかりません。どういうものなのですか? 直列化っていうのがわかりません。
ファイルに保存とか、ネットワークを通じてインスタンスを送信するとか。
だいたい漢字どーりの意味です。
749 :
デフォルトの名無しさん :03/01/10 00:33
>>746 sirealizableじゃなくて、Serializableです。
インスタンスを生成したときというのはメモリにオブジェクトが存在する
のですが、これはプロセッサのアーキテクチャが異なれば違うわけです。
その、異なるアーキテクチャ間でオブジェクトをやり取りするために一度
オブジェクトをバイトコードに変換して、送っているのです。
>>746 インスタンスを0と1の直線的な並びに変換できるということ。
具体的にいえば、インスタンスをたとえば、
「0,1,0,1,1,0,1,0,1,1,0,0,1,1,1,0....」というような形式に
変換できちゃったりするわけ。
これを利用すればインスタンスをbyteの配列に変換することが可能になるわけだから、
>>747 が言うようにインスタンスをファイルに保存したり、
ネットワーク越しに送信することが可能になるわけです。
それからsirealizableではなくSerializableね。
どうでもいいけどね
752 :
デフォルトの名無しさん :03/01/10 01:50
awtで常にwindowをトップに出しておくようにするにはどうすれば?
みなさまありがとうございます。 なんとなく分かりました。 内部ではバイトコードでやり取りされているわけではないということでしょうか? 知りませんでした。
java.lang.Classのインスタンスをシリアライズしたものは?
756 :
名無し募集中。。。 :03/01/10 02:43
Java Debug Interfaceの分かりやすい、サイトまたは書籍知りませんか?
757 :
デフォルトの名無しさん :03/01/10 03:21
>>754-755 ていうかシリアライズされた物って、ただのメモリ上のイメージ(インスタンスそのもの)じゃないの?
じゃないと「永続化したいBean」をBLOBとかで直接DBにしまう事ができなくならない?
>>757 >メモリ上のインスタンスそのもの
というがシリアライズされるのはインスタンスのデータだけ。
またクラスによっては、すべてのフィールドがシリアル化されるわけではないのも周知のこと。
759 :
デフォルトの名無しさん :03/01/10 03:46
Serializableでシリアル化されたインスタンスを ファイルなりネットワークなりから読み込んだとしても、 これをふたたびインスタンスに復元するためには そのシリアル化されたバイト配列が どういうクラスだったかの情報が必要。 そしてその「どういうクラスだったかの情報」と 「Serializableでシリアル化されたバイト配列」は まったくの別物である。 このように私は理解しているのですが、 これでよろしいでしょうか?
>>758 >またクラスによっては、すべてのフィールドがシリアル化されるわけではないのも周知のこと。
クラスによっては、と言うより transient宣言されたフィールドね。つーか、普通にあるインスタンスを
永続化(要するにEJBのCMP等)したい場合って、取得するときも当然「そいつの正体」は知ってて取得するよね。
っていうか、表現文字列("V[[java.lang.String"みたいなヤツ)も当然保存されるんだから、
別に元の実体に戻せるじゃん。
シリアライズされたインスタンスを取得するとき、 つねに「そいつの正体」を知っているとは限らないのではないか? たとえばhoge.classというserializableを実装した あるクラスのインスタンスをシリアライズして それをネットワークを介して他のマシンに送りこんだときなどはどうだろう。 いくらそのシリアルには元のインスタンスのクラス名なども含まれているとはいえ、 これはそのhoge.classのバイトコードがなければ復元不能。 ローカルにしろリモートにしろ、 いずこからhoge.classを読み取ってこれた場合のみ シリアライズされたデータは復元できる。
>>761 つーかRMIでリモートから取得する時って、どうやる?普通。
受け取り側も対象Classをimportした上でキャストするよね。
そんな「人間が予想もできないオブジェクトがどこからかやってくる」って言う状況が
ちょっと想像できない。ていうか、そうなったら「復元できない」んじゃなくて、
「キャストが」できない。
どんなオブジェクトも Object#getClass() でクラス名がわかるという事を知らないバカがいる。 クラスローダやリフレクションを知らないバカがいる。
「通報しますた」のレスにすごい重みが出るのがメリット
■ログ記録実験の巻■
======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
───────────────────────────
■ログ記録実験の巻■
======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
───────────────────────────
>>13 そこまで端的に書かれてみるとかなり怖いものがあるな・・・。
>>760 readObject()/writeObject()、java.io.Externalizableを使った場合は、
transientで修飾されてなくても自動的にはシリアル化されない。
EJBのCMPは、オブジェクトそのものをシリアル化するものではない。
テーブルのカラムと、EntityBeanのプロパティをマッピングするもの。
>>762 >そんな「人間が予想もできないオブジェクトがどこからかやってくる」って言う状況が
>ちょっと想像できない。ていうか、そうなったら「復元できない」んじゃなくて、
バージョンの異なるアプリ同士で通信を行った場合とかは普通に起こるよ。
>「キャストが」できない。
インスタンスが復元(逆シリアル化)されてる必要があるだろ。
実体がないのにどうやってキャストするのか小一時間…(略
注目の記事 2審も管理者に賠償命令=「2ちゃんね○」書き込み-東京高裁 インターネットの低能専用掲示板「2ちゃ○ねる」で「ヤブ医者」などと中傷した匿名の書き込みを、管理者が削除しなかったとして 都内の動物病院と院長が掲示板を管理する守銭奴西○博○氏を相手に損害賠償などを求めた訴訟の控訴審判決が25日、東京高裁であった。 久保内卓亜裁判長は計400万円の支払いと書き込みの削除を命じた1審の東京地裁判決を支持、○村氏の控訴を棄却した。 (ジジ通信)
2cnねらー100万人×1人カンパ100円=1億円くらい すぐ集まる。
君たちの年収を教えたまえ。
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
バイトコードというは間違っていました。 それで調べなおしたのですが、フィールドの値をバイトストリームにしているのですね。 ObjectInputStream#readObject()がClassNotFoundExceptionを投げるようになっているので、deserialize するときにはクラスファイルが配布されている必要があります。 ということは、受け取る側は予想できないオブジェクトを受け取ることはできないのでは? あと、英語だと"sequence of bytes"という表現があることやストリームでやり取りするので、バイト配列という 表現はおかしいような気がしました。
>>772 たしかにバイト配列よりもストリームのほうが表現として自然なようです。
レスありがとうございます。
意味が分かりません
暴力団に殺人依頼した。管理人を入廷時に射殺する
>>772 >ということは、受け取る側は予想できないオブジェクトを受け取ることはできないのでは?
面倒だしセキュリティ面で危険だが、不可能ではない。
ObjectInputStreamを継承して任意のクラスローダからクラスを解決するようにし、
クラスの解決に失敗した場合に接続相手からクラスファイルを取得して解決する
クラスローダを作って、それを動的にロードするようにすればいい。
ようするに、配布されてなきゃ、相手から貰ってくればいいだけのこと。
特定の企業への一方的なログ通知が始まっただけで、 記録そのものはこれまでと何も変わらず、そしてバカは増え続ける一方。
匿名掲示板もあっけなく崩れ落ちたな。 このまま閉鎖すればいいのに
>>519 やったYO!! 今日、 俺もあんたと近い現象に巡り合えたよ。
…うれしくねぇ
>>768 ,777
でも、その場合でも結局相手からもらうものはこちら側で知っていなくてはならないの
では?
登録された中から、空いてるマシンを使ってなんたら なんてのJavaであったよね。 なんて名前だったっけ?
ううん、既存のTripodとかじゃなくて新たにそういうシステムを 作っちゃうの。 どう作るかはわかりませんw しかし嵐とか不愉快な対策には「こいつがむかつく」と ひとり1票で投票してきめます。 そしてその人はもうカキコ禁止。 どうやってカキコ禁止にするとかそういうのはわかりませんw
記録されてる分なにかと現社会より厳しくなった感じします、
785 :
デフォルトの名無しさん :03/01/11 00:45
>>781 そういえば
RMIかJINIかについての説明で、
そのあたりの話題がでてきたような。
しかしSerializableも色々と奥が深い…
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を入れてあります。 どなたか御判りの方がいましたら御教唆下さい。
>>786 これももう一つのJava質問スレッドの最初のほうに載っていると思う。
コマンドラインで echo %path%
echo %classpath%
またはset
と入力するとパスが通ってるかわかります。
classpath設定するときは、 . (どっと) も入れたほうがいい。でセミコロンで区切る。
javacのコンパイルオプションに-classpathも...。
ま、もう一つのjava質問スレッド、5, 6番あたりだろうか。
なんか一日(24h以内)で同じ質問する人が二人いた。
>>781 うだうだ書いてないで、自分で試してみたら?
少なくとも俺は実装したことあるから、可能なことは確かだ。
java.lang.ClassLoader#findClass(String)
java.io.ObjectInputStream#resolveClass(ObjectStreamClass)
最低この二つのメソッドをオーバーライドすればできるよ。
完全限定クラス名から多少いじれば、ClassLoader#getResource()を
使ってクラスファイルの中身をバイトストリームで取得できる。
あとは、自前プロトコルだろうが、RMIだろうが好きに使えばいいだけ。
>>786 実は俺も出た事がある。ただし状況が違う。確か、Tomcat4.0上でJSPを動かした時だった。
で、確かサーバ動かしたままJSPを書き換え、ブラウザですぐそのページを見ようとしたら
(つまりJSPをコンパイルさせようとしたら)
なんか500(Internal Server Error)が出てしまい、ログを見たら、
ソレ↑が出ていた。
ちなみにそのJSP内は、「NoClass」になるような要素は無い。(使っていたのはString[]だけ)
>>768 >java.io.Externalizableを使った場合は、transientで修飾されてなくても自動的にはシリアル化されない。
実装したら(あるいは実装されたAPI使ったら)、だろ?
>バージョンの異なるアプリ同士で通信を行った場合とかは普通に起こるよ。
だ・か・ら!
「どうしてそういう状況になるのか」が、わからないって言ってんだYO!
バージョンが異なる、というか「送るオブジェクトが変わる」という事が、
事前に知らされずに実装されるのって、どんな状態なのよ。ただ、
>EJBのCMPは、オブジェクトそのものをシリアル化するものではない。
これはもうちょっと詳しく聞きたい。(マジで
>>793 >バージョンの異なるアプリ同士で通信を行った場合とかは普通に起こるよ
こっちはわかる。とても良く起こる。
詳しい説明が、「Effective Java」に載ってた。立ち読みしてくれ。
結局、再インストで直りました。 なぜか「アプリケーションの~」からアンインストール 出来なかったんですが直接ファイルとレジストリ消して。 その時点でインスト時に何処かおかしかったみたいです…。 レス下さった方有難う。 余談ですがここって過去スレだったのですね…。
そんなにデカいのか
なんで腐れ男はキャップ持ってるんだ?
======2==C==H======================================================
2ちゃんねるのお勧めな話題と
ネットでの面白い出来事を配送したいと思ってます。。。
===============================読者数: 139038人 発行日:2003/1/10
なにやら、連日メルマガだしてるひろゆきです。
そんなわけで、ログ記録実験ですが、いちいちサーバ指定するのが面倒なので、
全部のサーバに入れてみました。
重くなって落ちたりしてもご愛嬌ってことで。。。
んじゃ!
────────────────────────Age2ch─
■この書き込みは、Age2chを使って配信されています。
────────────────────────────
Keep your thread alive !
http://pc3.2ch.net/test/read.cgi/software/1041952901/l50 ────────────────────────────
ずっと記録されてたと思ってた もっと犯罪予告しておくんだった
441 名前:47 ◆KbtLZwerNc [sage] 投稿日:02/12/27 09:52 ID:NDSOtdna ということで、実際にWinnyに追加予定の機能ですが、 (中略) これにより、読み込みやスレッドを立てている人の匿名性が実現できますし、 BBSを読み書きするだけだったらWinny本体を起動する必要がありません (適当にブックマーク入れておく必要はありますが) 47氏にがんがってほしいと思った
やってやれないことはない
「派」という字が独特ですね
残念ながら、2chは匿名性以外にも存在価値ができてしまったインターネットです。
2ちゃんねる知らない人4%と言う事は、 96%の人が、2ちゃんねるの存在を知っていると言う事?
>>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で指定する。
ネオむぎを超えるわけない 犯人が17歳以下なら話は別だが
中国の漬け物ですか?(^_^;)
逆さ読み?
止まったのか?
de?
>>805 なるほどね。産休!>EJB
いや、なんか俺も仕事でServletとか鬼みたいに書いてるんだけど、
実は一度もEJBって使ってないんだよね、これが。(^_^;;
案件にその話がある度に、「なんでそんな重いの使うの??」って話になって、
結局やらずじまい。
つーか、このスレも荒れてきてるね。
つーか今書き込んでから思ったんだけど、
>>805 の話って、別に
「EJB(EntityBean)の永続化の機構について」の話じゃないな。シリアライズして永続するっていうのは...ていう
話ではない。
...けどその辺は、ま、自分で調べるよ。アリガト。
>>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)だと、作ったアプリの配布方法が全く わからないのですが、どなたか配布方法を教えていただけませんか?
>>816 プロジェクトフォルダ\classes\以下をコピーして配布すれば良し。
818 :
デフォルトの名無しさん :03/01/12 15:59
>>817 有難うございます。
早速、友人に見てもらいます...
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窓でだめなんだよね?
javaはじめました。クラスというのはCでいう構造体みたいなもの なのですか?なんだかにてるんで質問してみました。
コンパイルできないとは? 1)javacが起動しない。 2)コンパイルエラーがでる。 とか色々あるだろ。もっと詳しく書けや。 > C:\WINDOWS;C:\WINDOWS\COMMAND;C:\J2SDK1.4.0_<version number>\BIN って<version number>は対応した数字を入れているんだろうな?
>821 はい、DOS窓でjavac **.java ってやってダメです…。 なんかMeのパスって少ないんですよね(w も1回最初からインストールしなおして やってみるのもいいんですか?
パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ パソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソパソ
826 :
デフォルトの名無しさん :03/01/12 18:58
たぶんパス設定にミスがあるだけだと思う ここに設定されてるパス全部コピペしてみ 多分¥がないとか;がないとかだと思うけど
>C:\J2SDK1.4.0_<version number>\BIN コレって本当にJDKをインストールしたフォルダのパス? まさか、本の丸写しで実際と違うとかないよね。 あと、Autoexec.bat に書いてるのに再起動してないとか。
828 :
デフォルトの名無しさん :03/01/12 18:59
身障が一名
>823 多分javacが起動しないみたいです。 ためしにbinからコンパイルしたんですが、一個エラーがでます。 <version number>は…ちょっと分からないです。 プログラム厨房なのですいません。。
dos 窓で echo %path% して、ここに貼りやい
>>829 >プログラム厨房
OSの知識すら根本的に・・・。
>829 だから、エラーの内容は。 ><version number>は…ちょっと分からないです。 ?
834 :
デフォルトの名無しさん :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
次の方どうぞ
ありがとうございます! ちょっとチャレンジしてみます
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.
になると思う。
>System.out.print(x[i]+' '); >System.out.print(y[i]+' '); 半角スペースが二つも入っているけど、元ソースもそうのなの? 文字"列" なら "" で括りなさいよ。
しまった。無し無しスマン。 Proxomitron のフィルタのせいだった。ごめんよ。
レスありがとうございます。 >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)
>final int size = Integer.parseInt(args[0].substring(0, args[0].indexOf('.'))); (中略) >FileReader fr = new FileReader(args[0]); (中略) >String x[] = new String[size]; この流れ、何?
どこぞから来たargs[0]のドット以前parseIntしてるのと、 配列のサイズに何の関連が?? ファイル名が、"3.txt"なのか?
>>847 えっと、3.txtだとか1000.txtだとかにすると動きます。
と言うか普通どう書くのか分からないんですが・・・。どう書くんでしょうか。
こっちが聞きたいよ…。 君は何がしたいんだ?
昨日からいるコピペ荒らしができるようなツールが作りたいです。
ま、ネタ。という事で。
>>850 そのコピペ荒しが書き残したage2chスレに逝ってよし。
// 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();
関係無いが、今一瞬.... サーバの負荷が高いので書きこめません。 (25.77 : 目標は 5.00 以下) -------------------------------------------------------------------------------- もちろん、このページをリロードするのも負荷かかります。 なんてページ出た。初めてだたので、ビクーリしたYO
>819さん、 ありがとうございます!これから試してみます。
DDTアドレスは、何日保存されるんだろか。
プ(^_^;)誰が無責任でいいなんて書いたのかな ちゃんと削除依頼のルールを守って待てばいいだけの事じゃん 強要するのはボランティアに物を頼む態度じゃないんだって最低限の礼儀ぐらいは弁えろよクソガキ君(^_^;)
大変なんですねぇ・・・頑張ってヽ(´ー`)ノ
>>814 >y[i] = st.nextToken();
この行で NoSuchElementExceptionException が発生しとる。
ほんで、catch まで飛ぶから何もでない。
因みにこの時、x[i] には一行丸々入ってる。
861 :
デフォルトの名無しさん :03/01/12 21:24
?
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~の部分は配布物には書かれていませんでした・・・・
>>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);
}
}
失礼しました・・・・
>>864 int M = ?;
int N = ?;
int[][] tensu = new int[M][N];
>>863 >>864 >うまくいかない
とは
どう うまくいかないのか?
丁寧に書かなければ答えてもらえません
この質問の答えは教科書を読めば
わかると思います
↓書き直したらうまくいきました 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
>>863 >二次元配列が良くわからないのですが・・・・
深く考えることはない。ただの "配列の配列" だ。
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の方が対応がよいと思うのですよ。 どこが間違ってるか指摘おねがいします。
その対応をしっかりとったとして何がうれしいのか教えてください
878 :
デフォルトの名無しさん :03/01/13 05:01
何がうれしいのかと聞かれても困るのだが、対応がよいと思ってたのに対応がよくないと指摘されたからどう対応がよくないのか知りたいのです。
>>878 そもそも対応がいいだの悪いだのという評価軸が存在しないでそ。
実装を選ぶ基準はその機能。
もとスレで「VectorかMap」という発言があったのですよ。 そう挙げるなら「ListかMap」「VectorかHashtable」のほうが対応がよいのではないか、という話のながれです。
>>880 そういう話なら、そこで用いるべき正しい名前は「Colleciton」ですな。
無限ループ内でキーボードからの入力待ちにしておいて 入力したキーワードに応じて異なる処理をさせる場合、 対応させておくキーワードが少ない場合は、if文などで それぞれ比較していけばいいと思うのですが その数が多くなるとプログラムが何かすごく見づらく 分かりにくくなってしまいます。 この様な場合、一般的にはどういった方法で処理を行っているんでしょうか?
>>882 処理を実行するクラスに共通する呼び出しインターフェースを実装させて
文字列(コマンド?)をキーにしてハッシュマップに突っ込んでおく。
入力された文字列でマップから取り出してインターフェースを通じて実行。
つうかコマンドパターンだな
>>883 レスありがとうございます。
早速作ってみたいと思います。
まだ初めて間もないので分からなくなったらまた聞きに来ます・・・
>>881 Collectionは「可変長配列」ではないですよね?
逆はただしいですけど。
>>887 Vector is Collection
887のいっていることにはなんら問題ないと思うが。
CollectionにしてもListにしてもただのinterface. LinkedListとか、実装が可変長配列でないListもある。
892 :
デフォルトの名無しさん :03/01/13 16:59
JSPでパッケージに所属していないクラスを使ったらシンボルが 解決できませんってエラーが出た。 こういう場合ってどうすればいい? Importでパッケージに所属していないクラスを使うと明示的に宣言できない?
このスレの連中、スキルが低いな。 やっぱり所詮Java厨って事か。 つまらーんところで悩んでるよ(藁
896 :
デフォルトの名無しさん :03/01/13 17:35
JSPのクラスをコンパイルできません。ってエラーが最初に出て 次にエラーの行とシンボルを解決できません。って出ます。 最後にシンボル:クラス Monaって出ます。 Monaクラスは確実に存在してます。 パッケージは宣言していません(Monaクラス)
>>896 アプリサーバは何を使っているのかという情報や、Monaはどこにあるのかという情報
を書かないと分からないだろ。
質問のやり方から勉強してくれ。
(^^)
でも前スレがああだしさ。
(^^)
901 :
デフォルトの名無しさん :03/01/16 00:27
Servlet&JSPの勉強をしているんだけど どーしてもJavaBeansを使うメリットがわかりません。 JSP側で ClassA classA = request.getAttribute("param"); で何がいかんの??
>>901 で、JavaBeans って何? 教えてください。901さん
実はそもそもそれがよくわかってない setXXXXX getXXXXX implements Serialize する、、でそれが何?って感じ・・ ただ、JSPからuseBean:getProperteする時リターン値でクラス受け取れないよね? つまりgetXXXXXのリターン値がオリジナルのクラスだったりしたら都合悪いんでしょ? Beansっていったいなんなの?
>>901 struts使えばBeanが非常に便利なものに見えますよ。
JSP/ServletのBeanとBDKのBeanやEJBのBeanと一緒には考えない方がいいと思います。
カプセル化した値をget, setで管理するようなものです。
>つまりgetXXXXXのリターン値がオリジナルのクラスだったりしたら都合悪いんでしょ?
いやそんなことないと思う。
とりあえずサンプルを実際に動かして試してみてはどうでしょう。
そうすれば利用価値がわかります。
>>903 プロパティという概念がなかったため、そうするしかプロパティへのアクセス制限が出来なかったわけです。
JavaBeansの利用は ・複数のServletやJSP間で複数のオブジェクトをまとめて共有するのに便利 (ECサイトのショッピングカートとか) ・値を直接操作しないでカプセル化する (なぜカプセル化するのかはJavaではなく、オブジェクト指向の話になるので割愛) >getXXXXXのリターン値がオリジナルのクラスだったりしたら都合悪いんでしょ そんなことはありません。 実装レベルで「動けば何でも同じ」と思っている人にはわからないかもしれないが、 設計段階からモノを「オブジェクト」として捉えていれば JavaBeansの利用は自然な事として考えられる。 >JSP側で ClassA classA = request.getAttribute("param"); >で何がいかんの?? に対しては ”JSPの可読性を上げる” が答えかな。勉強始めたばかりの頃は簡単なソースやサンプルしか見ないから その利用価値がわかりにくいのかも。
私もJavaBeansというものがよくわかっていないのですが、 あれはコンポーネント指向とかいうような類のものなのでしょうか すでに出来合いのBeanを組み立てツールを使っていろいろと組みあわせれば、 ろくにコードを書かなくともアプリが作れるというような。
>>907 絵空事ッス。
強靭なフレームワークが無いことには役に立たないし、
しょせんそのフレームワーク依存のコンポーネントしか作られません。
でした。
>>907 実際には同一アプリ内の複数箇所で再利用できる程度に考えていた方がいい。
出来合いの・・・・は現実的ではないね。
IDEでの使用を前提とした技術だよ。JavaBeans set~() get~()はプロパティとしてIDEのプロパティウインドウに表示させるためのもの。 それ以外はメソッドとして区別する。 Serializeが付いているのはIDEでの編集結果(コントロールの大きさとか値とか)をファイルに保存するため。
911 :
デフォルトの名無しさん :03/01/16 08:19
>>911 間違いを訂正出来ないなら出てくんなよ。
Excelsior JET 使っている人いますか?
914 :
デフォルトの名無しさん :03/01/16 21:36
>>912 間違いも何も書いてることが全部ウソってわかんないの?
JavaBeanって言っても、3種類ほどあるわけで。
一番わかってないのは
>>914 でした。と。
はい、次。
918 :
デフォルトの名無しさん :03/01/16 22:01
>>915 「IDEでこう使える」と「IDEで使うためにある」とは全く違う。
どこをどう読むと「前提とした技術」「~のためにある」になるんだ???
JCPがひっくり返るぞ。
最初からそう書けよ。プププ
>>920 同意。結局ヒントが与えられないとツッコミすらまともに出来なかった。
誤認を指摘されて逆切れですか。プププ
923 :
デフォルトの名無しさん :03/01/16 22:12
IDEでの使用を前提とした技術→大嘘 IDEでの使用を前提とした技術ではない。 set~() get~()はプロパティとしてIDEのプロパティウインドウに表示させるためのもの→大嘘 アクセッサメソッドはカプセル化されたプロパティにアクセスするためにある。 Serializeが付いているのはIDEでの編集結果(コントロールの大きさとか値とか)をファイルに保存するため→大嘘。 HttpSessionは.serファイルとしてファイル化させることがServlet2.2以降の仕様で決まっている。ファイル化するにはjava.io.Serializableを実 装する必要がある。
粘着って扱い切れない マジ氏んで欲しい
>>924 ==
>>925 間違いを認めろよ。今なら「僕はウンコ人間でした。ごめんなさい」で許してやるよ(藁藁藁藁藁
素直に謝れない人間が多いな。
横槍失礼。 豆を、「JSPがサーブレットから値を受け取る入れ物」的な考え方で使うなら、あんまり意味は無いわな。 でもここでまともにMVC意識するなら、例えばサーブレット(コントローラ)からビジネスロジック(モデル:Beanとして外部に実装)を経由して、 JSP(ビュー)に値を渡す時に、その値とその周辺処理をカプセル化して渡せた方が都合がいいよな。 まして、その値は単純な値(下駄世田のみの)かもしれないし、コンポジションかもしれない。 どっちの場合でも、カプセル化されてれば、JSPはそのメソ使うだけだよな。 ましてサーブレットが返すそのBeanがいくつか内容の異なる実装を持つなら、 Beanのインタフェースだけ決めておいて、そいつを使って、アクセスできれば、 (例えばFlyWeightPatternでぽこぽこ出力されるBean、とか。あんま使わないが) JSP側はかなり簡単になるよな。 Beanの存在意義って、俺の中ではそんな感じ。憎いアイツって感じ。
例) 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()); %> これがメリットかね。...って、これだけじゃないが。応用して読み替えてみるべし
>>931 自己レス。
スマソ。
public getArgs() { .. } は、
public String getArgs() { ... } とかにでも読み替えてくれ。
933 :
デフォルトの名無しさん :03/01/16 22:45
ペイントで書いた絵が表示されなくて困っています 一筆で書かないとダメだと言うことを聞いたことが あるんですが、どうなのでしょうか?
>>933 一筆じゃないと無理
力の入れ方も均等にな
また煽り馬鹿が出たが皆気にしないように
>>931 なんかクラスにフィールドがないからBean使うの勿体無いように見える。
> out.println(hoge.getArgs());
<jsp:getProperty> 使ったヤシの方が説明としてわかりやすいと思う。
どうせなら IBeanとかいう、ハンガリアン記法みたいな頭のIははずしてもいいんでない?
C++やC#つかっているわけでもないんだし。
C++やC#の場合は継承も実装もコロンを使うから区別がつきにくい。
が、Javaの場合は継承時にインタフェースを実装しているときはimplements、
クラスを継承しているときはextendsキーワードを使っているので
IをつけようがCをつけようがつけまいがクラスとインターフェースの違いにはさほど困らないでしょう。
938 :
デフォルトの名無しさん :03/01/16 23:16
javaで作ったプログラムを実行するにはどうしたらいいですか? MS-DOSプロンプトでいいんですよね?
>>938 コンパイルしたなら実行方法くらいわかるだろ
本読め
941 :
デフォルトの名無しさん :03/01/16 23:31
本持ってません・・・
本屋に落ちてるよ
943 :
デフォルトの名無しさん :03/01/16 23:38
>>940 ありがとうございます。
今から読んでやってみます。
>>936 >
>>931 なんかクラスにフィールドがないからBean使うの勿体無いように見える。
...あの、レスはありがとうなんだけど、アレってサンプルだからさ。
要するに意味としては、Interface使ってJSP側に「ソレがどこから来た何であるか」を意識させない、つまり
カプセル化の恩恵って部分を書いたつもりなんだけど...。じゃなきゃinterfaceから書かないし。
>どうせなら IBeanとかいう、ハンガリアン記法みたいな頭のIははずしてもいいんでない?
あれは俺のクセです。(笑
ていうか、インスタンス名みて単純にわかるようにしただけ。つーか話の主旨と関係無いよね。
ちなみに、あるInterfaceを実装したクラスについて、
FooImpl
みたいに書くのは、どうかね。俺は嫌い。
>>936 ><jsp:getProperty> 使ったヤシの方が説明としてわかりやすいと思う。
そういえばそうだな。(笑
ちなみに多態を用いたカプセル(この場合はBean)の運用のメリット示すなら、
本当は<% .. %>等のスクリプトレットを直書きするんじゃなくて、
taglib使って、その中にその周辺Bean(インタフェース)の操作ロジックを隠してしまう方が、
分業度があがるよな。
俺の場合、会社に"HTMLデザイン専門!"なんてヤツはいないので、良く手抜きしてソース汚ししてまつ。
...ホントはね、完全な分離をしたいんだけどさ。
>>944 漏れも人にサンプル書く時は、"IBar"のような書き方するYO。
>>936 はServerSideJavaの知識に乏しい香具師。
厨房相手に先生になりたいだけだから、話そらしてると思われ。
素朴な疑問なんですが、Stringの長さを取得するメソッドが getLength()じゃなくてlength()なのは何故ですか?
948 :
デフォルトの名無しさん :03/01/17 00:15
>>946 >
>>936 はServerSideJavaの知識に乏しい香具師。
乏しいというか、経験が少ないんだと思う。
オレはどっちかというと、
>>930-932 の言う事の方がわかる。
関係無いが、さっきなんかCGI落ちたみたい。
>>944 主旨はずしてスマソ
いや気になってしまったのです。
俺もImplはもっと嫌
そこらへんはネーミング倶楽部のスレッドで情報得られるかも。
あとはデザインパターンで使われているような名前使ったり、
クラス名に意味を与えたり...とか。
>>945 より完全に近い分離を実現するならJakarta-strutsとかがいいと思う。
Jakartaという技術評論社の雑誌に使い方が載ってました。
なかなか便利な使い心地です。
ソースを汚している、と思ったらHTMLをXHTMLかしてW3Cのサイトあたりで
HTMLファイルを検証するというのもありです。
950 :
デフォルトの名無しさん :03/01/17 00:18
>>950 public static String File.getSeparator();
じゃなくて
File.separator;
になってるのもたまたま?
慣れればそんなもんかと思うだろうけど一貫性がないからキモイよぅ。
>>951 コードの部分変だけど脳内変換して読んで。
>>949 >より完全に近い分離を実現するならJakarta-strutsとかがいいと思う。
そうね。今は便利だよね。古くは、
JspTemplate -> taglib -> Struts ... ていうか、Strutsもtaglib集だけど。(だけじゃなかったっけ?)
昔、デビッド・ギアリーのCompositeViewパターン(Core J2EE Patterns)についての記事を
雑誌で見たけど、完全な分業をフレームワークとして提供できる(つまり実装されたものとして)ようになると、
きっともうちょっと仕事の線が明確になるんだろうなって思った。
...って、まだStrutsはライブラリをインストールしただけだけど。
>HTMLをXHTMLかしてW3CのサイトあたりでHTMLファイルを検証するというのもありです。
??これって、関係無い話だよね。
954 :
デフォルトの名無しさん :03/01/17 00:33
>クラス名に意味を与えたり...とか。 普通与えるだろ。意味の無い名前はサンプル書く時だけ。Prefixは意味じゃないのか?
>>951 >File.separator;
>になってるのもたまたま?
静的な値は大抵フィールドに定義するだろ。staticに。
メソッドで取得するのは、それが動的なモノだから。あるいは、動的なモノを含んでいるから。
>>947 のケースは、「命名について」そう言ったまで。
>>949 念のため言っておくと、XHTMLは「再定義可能なHTML(変な言い方)」でしかなく、
それ自体は、サーバサイドから見たら、ただの構造化されたデータでしかない。
JSPに使われるtaglib等のロジック隠蔽化タグは、それ自体がJ2EE上に標準としてあるエンジンで
解釈されて動的に処理をする。
だから、ちょっと関係無い話だよね。
# ま、もっともXHTMLのパーザがあって、「ロジックを埋め込む」規範があって、
# DTDまで標準になってたら、動的なデータと言えるのかもしれないけど。ただ、そうなると、
# XMLでは無くなるな。
957 :
デフォルトの名無しさん :03/01/17 00:45
949は厨房なので、マジレス返さないように。
>>954 >普通与えるだろ。意味の無い名前はサンプル書く時だけ。Prefixは意味じゃないのか?
そういわれるとそうですけど、もっと具体的な意味(具体的過ぎない程度に)を考え、もっと解りやすい名前にするんのす。
ネーミングにこだわるためにポリモーフィズム使うこともあります。スーパーすらスまたはインターフェースの
中身は空ですが後々の拡張のことを考えてこういうものを作ることがあります。
>>953 ある程度出来上がっているのに途中からstrutsやJ2EE使うってのも厳しいですね。
昔はstruts使えなくでJSPでスクリプトレット書いてソース汚しました。
Beanも使わないでrequest.getParameter()ばかり使ってしもた...。
>>956 JSPにXHTMLがどうこうは確かに関係ない話だった。スマソ。
そもそもJSP自体がXMLになっているということを忘れてた。
XHTMLとかの話だと、HTMLファイルをJSP化する前の、
デザイナーがやることに関する話でしたね。
>>955 なるほど。良く分かる説明ありがとうございました。
ってことはStringがlength()なのも納得いきます。
俺は逆だな。 interface には prefix はつけず、実装クラスに Impl の suffix をつける。 利用するときには Impl クラスはコード上で現れず、 もっぱら interface に対してプログラミングするのだから。
ここ見たけど、やっぱりjavaBeanわかんない
皆の意見の「Bean」のところを全部「クラス」に置き換えても
全部意味が通じるんとちゃうの?
クラスとJavaBeansの違いは何??
自分も最初
>>910 というイメージをしていたんだけど、これが大嘘だというから始末が悪い・・
最近「Beansにしとけばツール一発でWEBサービス作成してくれるツール」
とか、あるみたいだけど、結局クラスならなんでもWEBサービスにしてくれるっぽいんですけど・・・
まったく間違っていたら申し訳ないが
Beansってのは「アクセッサメソッドを持ってシリアライズ可能」っていうただの「決まり」で
この決まりをJavaで実現すると、setXXXX,getXXXXを実装してimplements Serializeすることになるから
これをJavaBeansと呼んでいる・・ってイメージ?ちがう??
JRE 1.1.8 の AWT で ScrollPaneの絵画速度を最適化するのはどういったワザがありますか JRE 1.3.1 とか 1.4.1 はデフォルトで最適化されているそうですので
>>955 Singletonパターンでよく使うgetInstance()なんかの説明にはなってませんね。
>>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と呼ぶことにしてるだけのような。
オブジェクト指向にせよ、デザインパターンにせよ、 決まりを守ることで成り立ってる。
Beanっていうのは、コードの書き方じゃなくて、設計パターンに近いということですな。
早朝からすみません。 Javaはリトルエンディアンで設計されているんでしょうか? どうも自信がなくて、よろしくお願いします
970 :
デフォルトの名無しさん :03/01/17 08:20
>>963 ハァ?
>素朴な疑問なんですが、Stringの長さを取得するメソッドが
>getLength()じゃなくてlength()なのは何故ですか?
が、たまたまなんだYO!
>Singletonパターンでよく使うgetInstance()なんかの説明にはなってませんね。
それこそ動きを表した意味の命名だろ?
そんな説明求められて無ぇよ。
>>961 "Bean"を"クラス"に置き換えても意味は通じるが、
"クラス"を"Bean"に置き換える事はできない。
つまり、
>>968 正解。
>>967 デザインパターンは、ただのイディオム。というか再利用の為のTips。
とくに最近聞かれるGoF等のパターンは、OOを前提にしている。(継承や集約も使う)
従って、あなたの言い分は全て間違い。
「デザパタに従って」開発するやつなんて、その勉強してる学生くらい。
デザパタは利用し、応用しなきゃ意味が無い。
974 :
デフォルトの名無しさん :03/01/17 09:23
java.util.Mapの全要素をループする方法を教えてください。
>>974 イテレーター取得して後は定石。enumeatorだっけ?Mapは。気持ち悪いならSet取得してイテレータか。
>>973 GoFの本にも書いてあることだけどな。
Java3っていつでるの?
明後日。
いつも通り開発が遅れる予感。
>>965 >>923 の条件に加え、マニフェストファイルにBeanであること記述すれば
それだけでBeanになる。
すると
>>910 のようなBeanになる。
>>973 話の流れからいうと
>>967 のいうデザインパターンは
JavaBeanにおけるデザインパターかも……。
埋め
埋め
デザインパターかも
埋め
987 :
デフォルトの名無しさん :03/01/17 14:11
ビット演算子で質問 論理和 '|' と 排他的論理和 '^' の 働きの違い教えて下さい 簡単なサンプルソース書いてもらえると 嬉しいです
>>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
>987 >988に蛇足して主な用途。 OR: ビットで表されたデータの合成に使う。 下記の例はpushedButtonのBUTTON1ビットとBUTTON2ビットのどちらかが1であるとき、の意。 if(pushedButton & (BUTTON1|BUTTON2) != 0) ※ BUTTON1,BUTTON2 は 1,2,4,8,・・・のどれか XOR: X ^ Y ^ Y == X であることを利用して、非常に簡単な暗号として使ったり、 画像処理(ANDマスクと組み合わせる)に使ったり。
>>973 言葉足らずだった。
クラスのロールというものを考えたとき、
クラスにモデル上・設計上の決まりを守らせることで OO は成り立つ。
「契約による設計」 といってもいいけど。
埋め
埋め
埋め
埋め
996
埋め
オレの精神テンションは今!INPRISE時代に戻っているッ! マイクロソフトと初めて提携を結んだあの当時にだッ! 冷酷!残忍!そのオレがJBuilder8をリリースするぜッ!
いいのかな・・・
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。