関連情報 以上
乙
だから~、なんで質問スレがsage進行なんだYO!
15 :
デフォルトの名無しさん :02/07/14 13:54
>14 自分もそれ疑問に思う。何故? それはともかく、最近Javaの勉強を始めたのですが Integerクラスの静的メソッドでparseIntってありますよね。 説明によると 「基数10の数値として変換してint型で返す」ってあったのですが、 そもそも基数ってナニですか? parseInt(String s, int r)で基数rの数値として変換してint型で返せるけど、 これがどういうことなのかサパーリです。 どうか教えてください。
>15 sage忘れてゴメンナサイ
>>15 文字列をナニ進数として解釈するのかを指定します。
Java(TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.3/ja/docs/ja/index.html より
例
parseInt("0", 10) は 0 を返す
parseInt("473", 10) は 473 を返す
parseInt("0", 10) は 0 を返す
parseInt("-FF", 16) は -255 を返す
parseInt("1100110", 2) は 102 を返す
parseInt("2147483647", 10) は 2147483647 を返す
parseInt("-2147483648", 10) は -2147483648 を返す
parseInt("2147483648", 10) は NumberFormatException をスローする
parseInt("99", 8) は NumberFormatException をスローする
parseInt("Kona", 10) は NumberFormatException をスローする
parseInt("Kona", 27) は 411787 を返す
19 :
デフォルトの名無しさん :02/07/14 14:16
>>17-18 基数って○進数のことでしたか。
ありがとうございます。すこぶる分かりました。
20 :
デフォルトの名無しさん :02/07/14 14:39
javaのドキュメントって日本語おかしいよね? 読んでるとだんだんむかついてくる。
>>14 質問と回答が続いているときに、 常に age 状態でやってると、 そのスレに
>>5 の関係者が入ってきて
荒らすんだよ。過去スレ読んでくれば?
>>前スレ994 >サーバールートが、 Not Authorized!になってるんですけど、わざと? >>前スレ995 >おっそいけど通ったけど Requested page not found. ルーターを覗いていて、サーバー本体はみていない。
NATルータでは、駄目みたいですね。
関係ないけど、ルータといえばこれにワラタヨ
711 名前:デフォルトの名無しさん投稿日:2002/3/27(水) 21:55
便乗質問いいっすか?
SYN flooding のツール作ってみたんですけど、
外に向かって撃ったらすぐ ADSL router がハング
してしまいます。
source IP を偽造しているためにNATテーブルが
溢れてしまうんでしょうか?
D-bornはそういう現象はありました?
712 名前:デフォルトの名無しさん投稿日:2002/3/27(水) 23:19
>SYN flooding のツール作ってみたんですけど、
>外に向かって撃った
逝ってよし。
NAT越しにDOS攻撃して訴えられればー。
713 名前:デフォルトの名無しさん投稿日:2002/3/27(水) 23:20
>>711 通報しますた。ってレスが欲しいのですか?
ルータの攻撃に成功したようなのでそのへんでやめれば?のほうがいいですか?
714 名前:デフォルトの名無しさん投稿日:2002/3/27(水) 23:35
「ルータに対してSYN-flood攻撃している状態」ですか。
715 名前:デフォルトの名無しさん投稿日:2002/3/27(水) 23:44
せっかくsource書き換えても、途中にNATあったら意味ないだろ(笑)
716 名前:デフォルトの名無しさん投稿日:2002/3/28(木) 01:59
お前NATの意味わかっとるのかと小一時間(...
717 名前:デフォルトの名無しさん投稿日:2002/3/28(木) 11:02
ワラタ、自分でルーターハングさせるアホがいるとは(藁
718 名前:デフォルトの名無しさん投稿日:2002/3/28(木) 22:46
。。。。どうしょうもねーな。
まぁ、何事も経験だ。
>>24 いや、ルーティングテーブルを書き換えてくれればいい。
頼りになる栄養補助食品です。 締め切りが迫っている、今晩中にあるいは翌朝までにやり遂げ なければならない時に頼りになるハーブ食品ターボチャージ www6.ocn.ne.jp/~beauty-s/index.htm
学校の課題をMSのVisual J++ 6でやらなきゃいけないんですけど ここで質問するのはスレ違いですか?どこにもスレが見当たらなくて・・・
>>28 ここでいいと思うよ。
VJ++をソースエディタとして使っている人なら意外といるみたいだし。
ただしVJ++のみに依存した内容なら回答が得られない可能性は高そうだ。
VJ++でも、学校でやるのはjavaの基本的な部分だろうから 使い方とかを除いてそうかわらんでしょ。 ただ、課題を自力で解こうとして、わからない部分を聞くのは全然かまわないと思うけど 「こんな課題が出ました。教えてください。」なら、宿題スレの方が良いかと。
31 :
逝って良しの1 :02/07/14 17:49
ガベージコレクターを参照してない時、ガベコレは自分自身を消さないのですか?
>>31 AWTイベントディスパッチキュー、ファイナライザなどのスレッド、
クラスローダなどシステムに密接なリソースは、システムが強参照
ツリーのルート持ってます。
33 :
デフォルトの名無しさん :02/07/14 18:38
リアルタイム処理の部分をもっと強化してほしい。
それではダメもとで。環境はMS Visual J++ 6です。 自由課題で何を作っても良いといわれたのでゲームを作る事にしました。 ルールは対戦ゲームでスタートと同じに各プレイヤーの軌跡を順次描画し、自機が自分の軌跡か相手の軌跡に当たったら負け というBASICで作るような単純な物です。 で、自機が軌跡に当たった時の判定に 背景色を格納したColor型の変数 == getPixel(自機のX座標,自機のY座標) をif文の判定に使ったところ、二つの値が一緒なのに(ラベルコントロールに表示させて確認しました)演算結果がtrueになりませんでした。 どうすれば正しい判定結果が得られるようになるのでしょうか? 分かる人がいたら教えてください。
35 :
デフォルトの名無しさん :02/07/14 19:37
==じゃなくてequalsにしないといけないんじゃないの?
36 :
デフォルトの名無しさん :02/07/14 19:37
サーブレットの勉強しようと独習本買ってきて、下記のようなサンプルの ソースを書きました。 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Samle extends HttpServlet { public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException { --略-- } } このソースをコンパイルすると パッケージ javax.servletは存在しません。 パッケージ javax.servlet.httpは存在しません。 とでます。原因は何でしょうか? J2SDKのバージョンは以下のとおり java version "1.4.0" Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-b92) Java HotSpot(TM) Client VM (build 1.4.0-b92, mixed mode) サーバはAppach コンテナは TomCatです。 本と違うことと言えば、J2SDKのインストール先をデフォルトのc:\j2sdk1.4.0でなく c:\jdkとしていることぐらいです。。 環境変数の設定は以下のとおり PATH C:\jdk\bin; JAVA_HOME C:\jdk CLASSPATH CLASSPATH C:\jdk\lib;C:\jdk\jre\lib;C:\jdk\lib\tools.jar; Java始めて、3か月の厨房です。 仕事で作らんとあかんのにこんな状況では(涙)
>>36 servlet.jarをクラスパスに設定しなさい。
>>35 できました!ありがとうございます m(_ _)m
先生にこういうのを作るといったら「止めといた方がいいんじゃない?」と言われていただけにすごく嬉しいです。
39 :
逝って良しの1 :02/07/14 20:44
40 :
デフォルトの名無しさん :02/07/14 20:46
buroburo
>>33 JCP JSR-1
Real Time Specification For Java
リファレンスインプリメンテーションがもうでているから、
探して来い。ちなみに、なぜかjava.sun.comではない。
42 :
デフォルトの名無しさん :02/07/14 21:53
ハッシュテーブルのキーと値を、ファイルにとっておくいい方法ってありますか?
>>42 java.util.Properties。
>>42 JDK1.4つかって、
java.bean.XMLEncorder&XMLDecoder
46 :
デフォルトの名無しさん :02/07/14 22:03
文字列の中の \ を抽出したいのですが、どうしたらよいでしょうか
48 :
デフォルトの名無しさん :02/07/14 22:16
>>47 速レスありがと
やっぱり説明不足だったね。
if (aaa.match('\'))
だと \ を含む文字列が判断できないじゃないですよね。
その場合、どのようにすればよいのでしょうか?
読むべきは、初心者向け入門書のエスケープ文字の扱いかも
>>37 早速の回答ありがとうございます。
やってみましたがまたでます。
環境変数とコンパイルエラーの吐き出したStackTraceの中身は
後ろに載せてます。
あと関連質問ですが、サーブレットのライブラリ(javax.servlet)は
JDKのほうではなく、コンテナ(TomCat)の方に準備されている
のでしょうか?
autoexec.batの中身
PATH C:\jdk\bin;C:\mysql\bin;%PATH%;
JAVA_HOME C:\jdk
TOMCAT_HOME C:\tomcat
CLASSPATH
C:\jdk\lib;C:\jdk\jre\lib;
C:\jdk\lib\tools.jar;
C:\Tomcat\common\lib\servlet.jar;
C:\Tomcat\webapps\jsp10\WEB-INF\classes;
コンパイル時のエラー
Sample.java:5: シンボルを解釈処理できません。
シンボル: クラス HttpServlet
位置 : Sample の クラス
public class srv_intro extends HttpServlet { ^
Sample.java:6: シンボルを解釈処理できません。
シンボル: クラス HttpServletRequest
位置 : Sample の クラス
public void doGet(HttpServletRequest request,HttpServletResponse respons
e) ^
Sample.java:6: シンボルを解釈処理できません。
シンボル: クラス HttpServletResponse
位置 : Sample の クラス
public void doGet(HttpServletRequest request,HttpServletResponse respons
e) ^
Sample.java:7: シンボルを解釈処理できません。
シンボル: クラス ServletException
位置 : Sample の クラス
throws ServletException,IOException {
エラー 6 個
余談ですがautoexec.batいじっていたらWindowsが
起動すなくなりますた。
外付けFDが見当たらず、2時間ほど、中断を余儀なくされますた。
もうへとへとです。
52 :
デフォルトの名無しさん :02/07/14 22:31
あるファイルから文字列を読み込んで、処理が終わったあとに、またそのファイルに書き込む時、 前にあった内容を消して、新しい内容に書き換えるにはどうしたらいいですか?
インポートしてねえんじゃねえの。
>51 autoexec.bat内での環境変数の設定方法を根本的にわかってない気がする。 "PATH"という環境変数は特別扱いされてるだけだ。
55 :
デフォルトの名無しさん :02/07/14 22:34
>52 普通にやれば上書きになると思うが。追記の方がめんどくさくないか?
56 :
デフォルトの名無しさん :02/07/14 22:36
55>> そのとおりだと思われ
>>52 StringBufferつかったら?イラン文字だけappend()しなければ
いいだけじゃん。
>57 「文字列」はこの際関係なかろう。追記か上書きか、って話だろ?
59 :
デフォルトの名無しさん :02/07/14 22:46
>57 ていうか何の話?
60 :
コギャル&中高生 :02/07/14 22:47
61 :
デフォルトの名無しさん :02/07/14 22:48
>>59 たぶんstringBuffer使えば追記気味にいけるということだとおもわれ
62 :
デフォルトの名無しさん :02/07/14 22:57
runでデータを使いたい時、 なんで、コンストラクタにいろいろ渡さないといけないの?
63 :
デフォルトの名無しさん :02/07/14 23:20
あげ
runて何
>57 >61 何か勘違いしているだろ。 >62 別に?渡さなくてもイイよ?
>66
イイんじゃない?
つーか、目的に合わせて設計しろよ。
>>51 autoexec.batの例
これを参考にして、自分の環境に合わせて autoexec.bat 作れ
loadhigh C:\WINDOWS\COMMAND\nlsfunc.exe C:\WINDOWS\country.sys
set temp=C:\temp
set tmp=C:\temp
set PATH=C:\jdk\bin;C:\mysql\bin;C:\WINDOWS;C:\WINDOWS\COMMAND;.
set JAVA_HOME=C:\jdk
set TOMCAT_HOME=C:\tomcat
set CLASSPATH=C:\jdk\lib\tools.jar;C:\Tomcat\common\lib\servlet.jar;.
doskey
68 :
デフォルトの名無しさん :02/07/15 00:06
>>>>runでデータを使いたい時、なんで、コンストラクタにいろいろ渡さないといけないの? >>>別に?渡さなくてもイイよ? >>setterでしょうか? >イイんじゃない? なんで会話が成立してるのかさっぱりわからん ていうか >>57 >61 >何か勘違いしているだろ。 そらお前や。
あ、やっぱり?
72 :
デフォルトの名無しさん :02/07/15 00:36
filechooserでファイルダイアログウィンドウ出すとき、現在実行しているclassファイルがあるフォルダを自動的に指定したいのですが、 どのようにすればよいのでしょうか? あと、.jarのファイルをダブルクリックすればいちいちコマンドプロンプトから実行する必要なしのようですが、いつのまにかlhaplusに関連付けされていました。実行不可です。 もともとはどのアプリに関連付けされていたのでしょう?
ネタだったのか… 鬱…。
75 :
デフォルトの名無しさん :02/07/15 01:15
>72 ファイルチューザですが、良い方法を知りませんが、システムのプロパティからjava.class.pathでプロパティの値を取ってきて考えてみてください。 ただ、.jarファイルの質問を見る限り、Javaのコンパイル方法と起動方法を調べてみるとか、基本的なところから始めた方がよさそうですね。 そのあたりはネットに無数に情報があると思います。今後の情報源を広める意味でも御自分で調べてみてはいかがでしょうか。多分のちのちも役に立ちますよ。 (賛否あっても、アットマークITとかJavaHouseとかは。) 一応、javaの-jarオプションで起動するように関連付けを修正してみれば ?とだけアドバイスしておきます。
名前付けルールってどこに書いてある? objConn strName とか。
>>76 VBからの移行組かな?
とりあえずそのまま行けばいいよ。
javaコーディング標準。
>>78 Sunのページのどこかに書いてあったの記憶してるけど、どこか知りませんか?
81 :
デフォルトの名無しさん :02/07/15 04:04
digitalcatsが私の知らないうちに亡くなってるんですけど・・・なぜですか?
教えるのが下手なヤツが多いな。
昨日のファイルアップロードサーブレット君へ ルーターの設定で、外からのポート 80 アクセスを LAN 内の鯖のポート 80 へ 飛ばすように static routing すれば大丈夫だと思う。ルーターにその機能が あるか知らんけど。
87 :
デフォルトの名無しさん :02/07/15 13:05
JSP、JavaBeanをつかったセッション管理のことについて詳しく説明のある ホームページを教えてください。 あと、Servlet2.3のセッションについて書いてあるページも教えてください。
89 :
デフォルトの名無しさん :02/07/15 14:17
Forte使っているのですが、J2MEインストールすると 通常のJavaソースがコンパイルできません。 コンパイラの切り替えの方法を知っている方、 是非教えてください。
ちょっとスレの志向と違うかもしれませんが・・・ JVMのバージョンってどーやったら分りますか? おしえてください。おねがいします。
-versionやsystem properties
>>91 IE ならば
1. [ツール(T)]-[インターネットオプション(O)] の [詳細設定] を開き、
2. Microsoft VM の [Javaコンソールの使用] にチェック
3. IE を再起動し、[表示(V)]-[Javaコンソール(J)]
nativeって、どういう意味があって、どういう使い方するの?
>>97 あっ!
>>94 さんごめんなさい。
男性にしろ女性にしろこの画像が気に入るとは限らなかったですね。
もし気分を害したならそれは当方の過ちです。
どうぞ叱ってください。罵ってください。
すみませんでした。
99 :
デフォルトの名無しさん :02/07/15 17:55
>>95 native -> ネイチブ -> 自然
これからわかるようにC言語を通じて機種依存のコードが書けます。
ありがとう。今、 class test { native int nativemethod(int ch) { return ch; } } ってやってみたらコンパイルエラーになったので、少しわかってきた。 javaのプログラム上では(nateveで修飾した)メソッドの宣言だけしておいて、 実際の動作は別なところに(Cなどで)記述するってことだね。 で、Cなどからアクセスするためのインターフェースや規約は ドキュメントのJNIのところに書いてあると。(全然読んでないけど) 実際に必要になるまでは、この程度の理解でよいのかな。
>>99 あ、気になる
ネイティブコード、ネイティブイベントって使い方するよね
コンピュータではネイティブ=機種依存でいいのかな
もーちょい詳しくお願いプリーズ
>>100 全然だめだろ……。指摘しようにもどこから突っ込んだらいいかわからん。
>>102 説明が下手な方は、このスレから去って下さい。
そんなに変かな。
>>100 は既存のソースに出てきた場合のことではなく、
自分で実装する場合のことを書いたんだけど。
「仮にnativeなメソッドを実装しても(javaソース上では)宣言部を書くだけ」と書いたつもり。
もちろん、他の誰かが書いたソースにnativeが現れたら、
それが「実際は別の.soなり.dllなりに実装されていてそれを呼び出している」なんて
あたりまえだと思ってるし。
それともJNIとは関係ないってことかな。
(ドキュメントの/jni/spec/design.doc.htmlにもあるのもみつけたので
全く無関係ではないだろうけど、nativeが全てJNIを使っているわけではないという意味で)
まあ、いいや。使いもしないのに質問した俺が悪いんだし。
そうそう、 class test { native int nativemethod(int ch); public static void main(String[] args){ test t = new test(); t.nativemethod(1); } } これをやったらコンパイルは通って、実行時エラーになるのは確認済み。 ライブラリをリンクしてない(もちろん作ってない)から。
106 :
デフォルトの名無しさん :02/07/15 20:23
エクスプローラーのようにファイルをツリーで表示させたいのですが、 大量にディスク上のツリー情報を読み込むとに時間が掛かります。 この場合どうすれば良いでしょうか?いま自分が考えているのは、 表示されているディレクトリのアイコンをクリックすると、その時点で そのディレクトリ以下のディスク上のツリー情報を初めて読み込み、 表示するという方法です。(proxyパターンの遅延処理のような)
異なる JVM から非同期に入出力が行われるファイルがあります。データベースが 使えない場合、ロックファイルを用意して獲得できなかったらスリープ、より 良い方法はありますか? File lock = new File("hogehoge.lock"); boolean locked = false; for(int i=0; i<10; i++){ if(lock.createNewFile()){ lock.deleteOnExit(); locked = true; break; } Thread.sleep(200); } if(! locked) throw new HogeException("Lock Pending"); try{ // … ファイル入出力処理 } finally { lock.delete(); }
>>107 それ、どうしても異なるVMが直接ファイルを扱わなきゃ
いけないの?
今、swingの勉強中なのですが、 どうしてサンプルのソースはどれもJFrameを継承してるんでしょうか 継承しなくてもnew JFrameでいいように思えるのですが・・・
>>108 いやアプリの制限として「2 つ以上立ち上げんな」「ファイル共有すんな」
でも良いんだけど、Pure Java, no DB のプロセス間リソース問題って
これしかないよな、と思って意見を聞いてみたところ。
以前にも異なるコンテキストのサーブレットで同じような問題に
ぶち当たったし (そんときはあきらめて同一コンテキストにした)。
>>109 そうしたい人はそうすればいいです。
あれはこっちのクラス、これはこのクラス、あっクラス名間違えたとか延々やりたいのなら。
>>110 File.createNewFileはアトミックであることが仕様。
でもプロセス間のリソース共有するのにこれしかないか、
という話なら、RMI使うとか手段はあるんじゃない?
>>112 そうか RMI を忘れてたな。
でも今「お手軽 one JSP 掲示板!! ファイルコピーで 2ch 型掲示板立てまくり!!」
とかいうのに挑戦してるんだわ。該当ファイルが消えたら notify() されるような
都合の良い API なんて無かったよね。
いや、参考になりました。感謝です。
>>111 GUIの制約とかじゃないのね。スッキリしました、THX.
>>106 JTree.DynamicUtilTreeNodeつかいなされ。
>>113 そのファイルアクセス専用のちっちゃいサーバプロセス立ち上げるのが普通だよね。
RMIにするかソケットにするかは、好みの問題かなあ。どっちがいいんだろうね。
>>111 GUIコンポーネントを継承するなんて、オーバーライドしたいときでもない限り
めったにやらないぞ。機能をそのまま使うときは専ら所有して委譲+publicメソ
ッドでプロパティ変更。
素人ですか?
116 :
デフォルトの名無しさん :02/07/16 02:21
>106 それ、前に作った事ある。 俺も君の考えてるようにしたよ。 ディレクトリを示すノードにはダミーのノードを1個追加しといて、ハンドルを無理やり表示。 TreeExpansionEvent 拾ってダミー削除&ノード追加みたいな感じ。 JBuilder のファイルダイアログ?を目指してみた。 115氏の言う JTree.DynamicUtilTreeNode を使えばもっと簡単に出来るのかも。 てゆうか使い方がわからなかったんだよね・・・。
117 :
デフォルトの名無しさん(デコード?) :02/07/16 02:32
16進の文字コードを「文字」に変換するとき char c = 0x301C; System.out.println(c); こんなかんじで文字が見れるのですが、 この16進の文字コードを文字に変換して、 Stringに格納するにはどうしたらよいのでしょうか? char c = 0x301C; String str = ?????(c);
118 :
デフォルトの名無しさん :02/07/16 03:07
javaでも覚えるか~
>>117 String str = "\u301c";
or
char[] c = {0x301c};
String str = new String(c);
>>115 > GUIコンポーネントを継承するなんて、オーバーライドしたいときでもない限り
> めったにやらないぞ。
は~
>>115 > GUIコンポーネントを継承するなんて、オーバーライドしたいときでもない限り
> めったにやらないぞ。
ぷ~
122 :
デフォルトの名無しさん :02/07/16 12:12
>>121 どうやらあんたはVectorを継承してStackを作るバカと同レベルらしい。
120は問題なく 121は問題ありなのか・・・
126 :
デフォルトの名無しさん :02/07/16 15:14
メインクラス(main関数のある)のあるディレクトリを取得する方法を教えて
>>126 クラスから実行するだけじゃないという問題は無視して?
(main関数のある)
ネタっぽいな。
釣られたのか・・・シュボーン
某サイトから情報を読んで、それを加工してファイルに記録したいのですが、 そういう場合は、情報をどこに読み込んでどこで加工するといいのでしょうか? 普通に変数に読み込んで編集してその内容をファイルに書くのですか? なにか良い方法があったら教えて下さい。
>>132 お好きなように、としか。
URLクラス、Socketなどなどでとってきて
>>133 > お好きなように
どんな方法を使うのが一般的ですか?
>>133 > URLクラス、Socketなどなどでとってきて
>>133 さんは、どういう意味でこれを書いたの?
137 :
デフォルトの名無しさん :02/07/16 18:25
スーパークラスのオーバーライドしたメソッドを呼ぶにはどうしたらいいのでしょうか。
138 :
デフォルトの名無しさん :02/07/16 18:37
>137 super.A()
>>137 super.method(); だがサブクラス以外から呼ぼうとしてもだめだよ。
Red Hat Linux 7.3でSwingを使ってダイアログを表示したら 日本語部分が文字化けするんだけどなんででしょうか。
141 :
デフォルトの名無しさん :02/07/16 18:47
>>138 >>139 ありがとうございます。
もう一つお願いします。
C++のprotectedと同じアクセスレベルはないのでしょうか。
自クラスとサブクラスからのみ参照可能なアクセスレベルです。
142 :
デフォルトの名無しさん :02/07/16 18:48
>141 無い。
>>141 完全に同じじゃないけど protected。同一パッケージ内からでもアクセスできて
しまうが、1パッケージに全部クラスぶち込むようなウンコ設計じゃなければ
便利よ。
>>139 サブクラス以外から、スーパークラスって呼ばないと思われる。
>>145 C++ だとそういう呼び出し方もあるのでわざわざ断ってる。
>>146 最初から「C++でいう」を付けろ。 いまさら言い訳だろ?
>>147 しつこいなおまえ。C++ 使えないのは分かったからもう消えて良いよ。
C++ すら知らない人間でも教師ヅラできるスレはここですか?
>>148 147しか書いていませんが、しつこいですか?
言い訳野郎うざいよ。消えろよ
スーパークラスのメソッドの呼び出し方も知らない奴が、サブクラス外から 呼び出せないって知ってると思うか? C++ 移行組ではないという保障は? VB 上がりの莫迦 ウザイ
153 :
デフォルトの名無しさん :02/07/16 20:39
つまり、139がきちんと説明をすれば問題はなかったということですね。
旦⊂(`Д´)お前らマターリしる!
オーバーライドされたメソッドのスーパークラスの方を外から直接呼べないか
とか言ってた奴、このスレだったか知らんが以前にもいたな。そこらへん記憶
にあれば
>>139 の指摘になると思うが。
158 :
デフォルトの名無しさん :02/07/16 20:50
>>144 protected とか アクセス指定なしを
連発されたパッケージもどーかと思うよ。
super 修飾子がサブクラスからしか使えないのは Java 常識
⇒ super を知らない初心者にそんな常識は通用しない
と考えて
>>139 を書いたんだがな。想定外の自演莫迦が釣れちまったようだ。
160 :
デフォルトの名無しさん :02/07/16 20:56
>>160 クラスを作るときにはキチンとアクセス制御しておこうよ。 っていう感想なんじゃないかと推定
「同一パッケージ内からでもアクセスできてしまう」 の方を活用しすぎているパッケージはどーかと思う、という話です。
>>159 最初からみんなでお前は説明不足だって言ってるじゃん。認めろ
>>160 >>159 じゃないけど、あまりアクセススコープ考えないで設計された
パッケージの事じゃねー?
フレームワーク系の機能作ってると、クラス間の協調機能を外に公開
したくない目的でパッケージプライベートとか多発することもあるけど。
>>159 もっとわかりやすく説明してごらん? JavaとC++の違いを説明しているのに言葉1つ1つに説明がないからなにを
いいたいのかわからんのだよ。
> 最初からみんなで いやに説明的なだな (藁 で、結局自分の ヴァカ さ加減を晒したので顔真っ赤にしてムキになってると (激藁
言葉足らずなだけでしょ。もういいよ。
>>167 super 修飾子がサブクラスからしか使えないのは Java 常識
⇒ super を知らない初心者にそんな常識は通用しない
⇒ C++ 移行組ならサブクラス外からも使えて当然と思っているかも知れない
だな。
174 :
デフォルトの名無しさん :02/07/16 21:07
ごめん すごく気になったんだけど
>>170 > 結局自分の ヴァカ さ加減を晒したので
139以外がバカ晒しているのってどれ?
>>174 論拠言わないただのアフォがやって参りました!
一杯釣れるなー。
いや、一人かも知れない というか一人であってくれと切に願うが。
>>173 全然違うと思うがな。
C++組の事なんか意識するまでも無く、superを外から使えないかと考える奴がいる事は十分考えられる。
180 :
デフォルトの名無しさん :02/07/16 21:13
>>178 おまえの読解能力が低いだけだから安心して宿題やれ。
181 :
デフォルトの名無しさん :02/07/16 21:16
まぁ、アホは死ねや(藁
superクラスは多重継承の場合は配列になっている。
注意が必要だぞ。初心者諸君。
>>181 お前もな。C++組を代表して言っておく。
騙り厨まで(・∀・)ツレタ!! つーか>173&>184、何でそこまでC++に執着すんの?なんかコンプレックスでもあるのか?
186 :
デフォルトの名無しさん :02/07/16 21:22
>C++組を代表して言っておく。 使いこなせもしない癖に何ボケてんですか??(ププ
>>185 いや、無いけどさ。当然と思ってる事って案外ハマりどころじゃん。そんで
今回の件は C++ じゃ当然できることだから。
188 :
デフォルトの名無しさん :02/07/16 21:28
メソッドっていつ使うのですか? 参考書を見る限り、文が短いせいか 別に必要ないように思えるんですけど どういった状況になったらメソッドが有効ですか? 素人レスごめんなさい
189 :
デフォルトの名無しさん :02/07/16 21:29
>188 ス、スゲエ
代表されたくは、無いな、やっぱりな。
おやくそく。
>>188 使う意味がわからないうちは、使わないでいいです。
(っても、Javaスレだよな、ここ…)
>>188 ええっと、当面は「サブルーチン」「共通フロー」あたりに専念してみる
のが良いかと…
>>188 いらないぞ。なんでいるのかわからん。
全部static付ければいいぞ。便利だ。
194 :
デフォルトの名無しさん :02/07/16 21:49
Singletonの乱用って、マズいですかね? 便利なんで、ついつい使ってしまうんです・・。 クラスA内からクラスBインスタンスの参照が必要なとき、 クラスBをSingletonにしちゃってgetInstance()で参照を取得する ようにしてしまうのですが・・。 まあもちろんクラスBがSingletonで良い場合のみなんですけど。 でもなんかこう、Singletonを多用するのはあまり美しくないのかなあ なんて思っちゃうんです。 みなさんのプログラミングスタイルはどんな感じですか?
195 :
デフォルトの名無しさん :02/07/16 21:55
なぜJavaスレで訊く?
>>194 プログラミングスタイルというか設計スタイルだな。
俺は大抵コンポジット、ストラテジー、ステートパターンあたりを
中心に組むかな。
>>197 あのさぁ・・・既に水から引き上げられてるえさに食いつく魚ってアフォだと思わないか?
199 :
デフォルトの名無しさん :02/07/16 22:02
>198 いや、それはそれで凄い魚だと思う。
>>197 教える技術のない人は初心者無視スレへ。
>>200 さっさとメソッドの使い方を教えろ アホ!
モソッドを使わずにJABAプログラムできるのですか??
次の質問くるまで待ちましょう。
なんでさっきから粘着自演煽りが張り付いてんの?
___ . |(・∀・)| . | ̄ ̄ ̄ ジサクジエン共和国 △ △l | __△|_.田 |△_____ __|__|__|__門_|__|_____|___
⊂(`Д´)⊃旦~~マターリしる!
211 :
デフォルトの名無しさん :02/07/16 22:51
>>189 -
結局メソッドが何かも教えられなのか
ちなみに俺は(上手い具合に)教える事はできない
つまり俺と同レベル?
アフォ洪水波浪警報発令中。
しかも目立ちたがり屋。アゲンナ
214 :
デフォルトの名無しさん :02/07/16 23:23
(*`Д´)⊃旦~~マターリしる!
サイトから情報を読んで、それを加工してファイルに記録したいのですが、 そういう場合は、情報をどこに読み込んでどこで加工するといいのでしょうか? 普通に変数に読み込んで編集してその内容をファイルに書くのですか? なにか良い方法があったら教えて下さい。
JavaでGUIプログラミングを勉強しようと思うのですが、フリーで(・∀・)イイ!のは、何でしょうか。 Eclipse NetBeans Forte(Community version) VAJ(Community version) JBuilder(Community version) よろしくおながいします。
>>215 それで良いんじゃねーの? データがでかければ少し工夫の余地がある
けど。
219 :
デフォルトの名無しさん :02/07/16 23:48
>>216 Eclipse は GUI ビルダーがまだ付いてなかったと思う。
VAJ は何をやるにしても激しく糞だから止めとけ。
Forte/JBuilder は重い。それ以外の感想はない。
NetBeans は未知の世界。
ということで俺的にはこんな感じ
Forte = JBuilder >>> Visual J++ >>>>>>>>>>>> VAJ
Eclipse 対象外、NetBeans 不明
>>217 わかりました。とりあえずまずはそれで組んでから、また疑問があれば質問します。ありがとうございました。
>>216 秀丸+Javaマクロ + Javaハイライト は使いやすい。
VAJは個人で使うぶんには、リポジトリの肥大化はさほど問題 ではないと思う。IDEもV4.0になって昔ほど落ちなくなった。 バージョン管理もしやすいしね。でもVA/Assistをインストール するのは必須。ただ、JDK1.2レベルだし、XPは動作環境じゃ ないし、今更選択するのは得策じゃないな。
224 :
デフォルトの名無しさん :02/07/17 00:33
クラスの二次元配列の初期化は以下のような感じで問題ないですよね? Hoge[][] hoge = new Hoge[10][10]; for(i=0;i<10;i++){ for(k=0;k<10;k++){ hoge[i][k] = new Hoge(コンストラクタ); } }
>>188 よ、
メソッドが分からないとJavaはつらいので無理をするな。出来れば
VBとかでクラス使ったプログラミングになれてから・・・ってか、188はネタか?
なあなあ、java.beans.Beans.instantiateで自作のbeansをロードしてるんだけど、 jar -i してインデックスつけたjarだとロードに失敗するんだ。(SE1.3.1+WinMe) ちなみに jar -i しなければ問題なし。 後述の極小のサンプルで確認したけどnewした方は大丈夫なんで、instantiateの 問題なのは間違いない。 しかし家のSE1.4+Win2Kだと再現しないんだ。これが。 持って帰ってきた資料がソースだけだったんで発生する例外は忘れた・・・ googleで検索したけど解決の役に立たなかったことは覚えてる。 結局、これって1.3.1が原因?Meが原因?だれか確認してくれないかな。 しゃーないからFactory作ってnewすることにしたけどさ、気分悪いじゃない。 それにしても・・・Meなんて使ってんじゃねーよ、お客様よぉ(泣
【myBean.java】 package beans; import java.lang.*; import java.io.*; public class myBean implements Serializable { private intval; public myBean() { val = 0; } public int getValue() { return val; } public void setValue( int v ) { val = v; } } 【myBean.mf】 Manifest-Version: 1.0 Name: beans/myBean.class Java-Bean: True 【simpleTest.java】 import java.lang.*; import java.beans.*; public class simpleTest { public static void main(String s[]) { beans.myBean mb; mb = new beans.myBean(); mb.setValue(123456789); System.out.println(mb.getValue()); try { mb = (beans.myBean)Beans.instantiate(null,"beans.myBean"); mb.setValue(987654321); System.out.println(mb.getValue()); } catch(Exception e) { e.printStackTrace(); } } } 【simpleTest.mf】 Manifest-Version: 1.0 Main-Class: simpleTest class-path: beans/myBean.jar Created-By: 1.0 (I.Kazawa@SoftwareControl)
229 :
デフォルトの名無しさん :02/07/17 16:01
同じレイアウトでラベルの文字やアイコンが異なるパネルを作るプログラムが 作りたいのですが、どうしても上手くいきません。 実際にパネルのレイアウトやラベルを貼るクラスと、メインとの受け渡しは どう記述したら良いのでしょうか? Object型の戻り値でメインに渡して、メインのフレームにgetContentPane().add(パネル); としてるのですが、Eclipseでは The method(java.awt.Component,java.lng.Object)in the java.awt.Container is not applicable for the argument(java.lang.Object) というエラーがgetContentPane().add()のaddの部分に出ます。 どうすれば解決するのでしょうか?
ちなみにメインの方では、 Object 変数 = パネルをレイアウトするクラス.メソッド(); と記述しました。これが間違っているんでしょうか・・・
231 :
デフォルトの名無しさん :02/07/17 19:03
panelのレイアウトがFlowLayoutで、 panel.add(button1); panel.add(button2); 2個のボタンを追加すると左からボタン1、ボタン2と表示されるよね addの順番を変えないで、表示の順番を変えることってできる?
232 :
デフォルトの名無しさん :02/07/17 19:14
>231 無理っす。 全部消してから順番を変えて add するべし。
233 :
デフォルトの名無しさん :02/07/17 19:31
>229 その説明ではよくわからんなぁ…。 > Object 変数 = パネルをレイアウトするクラス.メソッド(); ↑の変数がパネルだよね? add する時にキャストしてる?
>>231 panel.add(button1);
panel.add(button2);
panel.remove(button1);
panel.add(button1);
235 :
デフォルトの名無しさん :02/07/17 20:33
>>235 Container#getComponents()とか其の辺使えば、
addしたのが継承元だろうがなんだろうが、そのContainerに
くっついているComponent全部取れるよ。Compositeパターン
はアリガタヤ。
シツモーン。 GUIビルダって、Javaで必要でしょうか?JBuilderのそれなんかは、 あとで整理したりビルダでは出来ないようなカスタマイズするときに、 かえって不便なだけだとおもうんだけど・・・
IDEって必要ですか?とかGUIビルダって必要ですか?って質問は だらだら話が続くけど、結論でないんだよなぁ。という俺は、 VAJのVCE使って吐き出したファイルをeclipseで取り込んでます。 Viewとそれ以外は厳密に分けるように心がければ、ちまたで 言われていること(メソッドがわらわら生成されることとか)で 困ったことはないな。
>>229 >Object型の戻り値でメインに渡して
java.awt.Container.add()の単一の引数のメソッドは Component を受けるから、
Object では当然に型が不一致になるよ。
Component に変更するか、233の言うとおり add((Component)obj) とキャストすべし。
IDE...JBuilderで失望して使ってない。 秀丸でシコシコ書いてるとListnerの仮メソッド埋め込みとか欲しくなるけど、 慣れればどうってことないし。
うぁスペルミスが~っーかキーボード変。
243 :
デフォルトの名無しさん :02/07/18 00:07
Windows2000での環境設定の仕方教えてくださいm(__)m
244 :
デフォルトの名無しさん :02/07/18 00:12
オレの環境はWindows2000ですm(__)m
245 :
デフォルトの名無しさん :02/07/18 00:16
Windows2000は使ってないですm(__)m
何の環境設定か書きやがれ!と、そろそろマジレスしてみる。
247 :
デフォルトの名無しさん :02/07/18 00:19
>>246 Windows2000ってかいてあるやん
お前らIDE使わないと
>>241 みたいな恥ずかしいスペルミス頻発ですね
>>243 「デスクトップ」→「マイコンピュータ」→「プロパティ」→「詳細」→「環境変数」
しかし、今はセットアップを動かせば設定される。
されてない・・・JAVA_HOMEは設定してくれてるみたいだが、PATHの修正は
していないようだ。
しまった、確認(java -version)してみたら家の環境でもjava.exeは1.3.1だと
言ってる・・・クラスは多分1.4.1(w
ということでPATHの設定値に%JAVA_HOME%\bin;を追加されたし。
これが無いとコマンドラインツールが動かないから。
250 :
デフォルトの名無しさん :02/07/18 00:42
アプレットっておぼえて何か役に立ちますか ほとんど仕事も無いし ただの自己満足にしか思えない…
>>248 そりは>241だけだよ
俺はほとんど間違わないで?
>>250 そり以外の分野はどう思うよ?
252 :
デフォルトの名無しさん :02/07/18 00:53
バッファ付け文字ストリームについて質問させてください FileWriter fw = new FileWriter(args[0]); BufferedWriter bw = new BufferedWriter(fw); bw.write("abcdefg"); とやって最後にclose()関数を書くと思うのですが、 独習Javaを見てると bw.close(); とやってる場合と fw.close()とやってる場合があります。 これはどちらでもよいのでしょうか? よく理解したいのでどちらでもよい場合はその理由も教えてもらえるとうれしいです
253 :
デフォルトの名無しさん :02/07/18 01:02
>>252 なんとなくだけど(調べてないよ)
FileWriterがcore部分だから
bw.close() 内部で fw.close() やってんじゃない?
だから bw.close() と fw.close() は同義でないのかなと・・・
>>249 ありがとうございます。 参考にしてやってみます。
0xff
256 :
デフォルトの名無しさん :02/07/18 02:02
インターフェイスを引数にとるメソッドがありますよね? そのメソッドは目標のクラスにそのインターフェイスがあることを知ってホッとすることはできますが、その後何を参照しているのでしょうか?
257 :
デフォルトの名無しさん :02/07/18 02:02
正直、Javaスレって無駄に多いよね。
そのinterfaceで宣言されてるメソッドを呼んでるだけじゃねーの?
259 :
デフォルトの名無しさん :02/07/18 02:24
>>258 呼び出されるメソッドが実装されていなかったらどうなるんですかね?
>>259 単にコンパイル時にエラーとなってメソッドに渡せないだけ。
>>259 そのクラスのインスタンスが生成できないッス
ぐわ紛らわしい。 インターフェースを引数に取るメソッドに、実装が不完全なクラスは、渡せない。 型が一致していないから。
オツカレサマッ酢。
正直、Javaスレって無駄に多くてウザイね。
>>248 は、IDEから2ちゃんねるに書き込みをしているらしい。
>>253 レスありがとうございます。
同義ですか
たしかにどっちを実行してもエラーは出ないので、それが正解だとは思うの
ですが、やっぱりなんか頭の中でなっとく出来なくて・・・
もうちょっと勉強してみます
ありがとうございました
268 :
デフォルトの名無しさん :02/07/18 10:31
EJB実装で、あるマシンで動くことが確認されているにもかかわらず 自分のマシンだと 「javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial」 とエラーメッセージが出てしまい。 困っているのですが、何がいけないのでしょうか? JDK、J2EE、OSのバージョンは同一です。
269 :
デフォルトの名無しさん :02/07/18 10:39
自己解決しました。パスの設定を手抜きしないで行ったら呼び出せました。
270 :
デフォルトの名無しさん :02/07/18 10:49
連続書き込みですみません。 c:\hogehoge\j2ee.jar とある時に、 java -classpath c:\hogehoge yyy の指定ってだめなんでしたっけ?
271 :
デフォルトの名無しさん :02/07/18 11:10
GUIのイベント処理ですけど、 イベントの種類だけ、if ...elseってするのが正しいのですか?
273 :
デフォルトの名無しさん :02/07/18 11:23
actionPerformed の中身って Interfaceパターン でいいんですか? 一般的ですか?
274 :
デフォルトの名無しさん :02/07/18 12:41
テキストフィールドに記述された文字を、 ボタン等のアクションリスナー内でチェックしたい場合は、 テキストフィールドのアクションリスナーで、 予め文字が打たれるごとに、変数に格納するしかないのでしょうか。
>>274 素直にテキストフィールドのリスナーで扱うかテキストフィールドから情報を得ればよかろう。
>>275 レスありがとうございます。
テキストフィールドからアクションリスナー(イベント)のメソッドを使わずに、
情報を得ることってできますか?
できるならどのメソッドでしょうか。
たとえば、ダイヤルアップネットワークで、
ユーザー名のフィールドを持っていて、
接続のボタンが押されたときに、ユーザー名が記述されずに、
接続のボタンが押されていないかをチェックしたいのです。
誤)ユーザー名のフィールドを持っていて、 正)ユーザー名のテキストフィールドを持っていて、
java.awt.TextComponent.getText() JDKプラットフォーム 1.2API仕様より。
>>278 ありがとうございました。
スーパークラスを確認していませんでした。
>>343 ありがとうございました。
9821のPCは持っています。
XPに対応できるエミュレーターはありますか。
ちなみに2000 nTのはありますが。
281 :
デフォルトの名無しさん :02/07/18 15:19
this.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { this.f(); System.exit(0); } }); 匿名クラス内のthisはもちろん匿名クラスだよね 本体の実態を参照するには、それようの変数を用意しないといけないの?
this に add したイベントリスナなら e.getSource() で this と同じ モノが取れないかな。一般的に成り立つか知らんけど。
>>281 匿名クラス内のthisはもちろん匿名クラスのインスタンス
2文字以上の置換を行いたいのですが、"replace"じゃ上手くいきません。 String strMes1 = "あいうえお"; String strMes2 = ""; strMes2 = strMes1.replace('あい','かき'); よろしくお願いします。ちなみに全角日本語です。
>>284 で、シングルクオートで囲っている理由は?
頼むから文法エラーごときで質問にこないでください・・・。
String型の2文字以上の置換方法が分からないのです。 文法エラーが分からなくて質問しているのでは、ありません。 確かにシングルなのは、おかしいですが、ダブルでもエラーが出ます。 "replace"以外に、"あい"を"かき"に変えるメソッドがあるのでしょうか?
287 :
デフォルトの名無しさん :02/07/18 17:15
288 :
デフォルトの名無しさん :02/07/18 17:26
289 :
デフォルトの名無しさん :02/07/18 17:28
>>288 > ありがとSUN
新しいね。勝手に使わせてもらいます。
290 :
デフォルトの名無しさん :02/07/18 17:56
Sun Sun Sun - (・∀・)♪ haxtu? ( ゚Д゚)
>>1 基本的にsage進行でおねがいします。
なんで?
>>286 StringBufferクラスを使ってください。
>>286 >確かにシングルなのは、おかしいですが、ダブルでもエラーが出ます。
って言ってますが、この発言をしてる自体でちょっと厳しいです><
'あい' とやってる時点でかなり問題ありなので
もう一度ここの勉強をしたほうがいいかと
>>284 >>286 String#replaceAll(String,String)使いなさい。要1.4
しょうがないので、文字位置検索して、置換しました。 1度で複数文字を置換する方法は、ないんですかねー?
String strMes1 = "あいうえお"; String strMes2 = strMes1.replaceAll("あい","かき");
開発環境が、1.3なのです、、、。
>>281 おらよ。
public class Outer{
public static void main(String args[]){
new Outer().new Inner();
}
private int val = 10;
public class Inner{
public Inner(){
System.out.println("Instantiate Inner");
System.out.println("Outer.val ="+Outer.this.val);
}
}
}
変なルールだよな。
299 :
デフォルトの名無しさん :02/07/18 21:13
InputStreamクラスのreadメソッドの説明には、ストリーム からの入力がブロックされると書いてあるのですが、 OutputStreamクラスのwriteメソッドの説明にはストリーム への出力はブロックされるかどうかは明記されていません。 これはwriteメソッドはブロックを行わないと考えて良い のでしょうか?
300 :
デフォルトの名無しさん :02/07/18 21:44
教えてください 例えば1989/1/7と入力すれば 今日から計算してその日から何日経ったかを 表示するプログラムを出したいのですが もちろん明日やれば日は1日分増やしたいのですが… うるう年のやり方とかわかりません…
Calendarみろよ GregorianCalendarでもいい。 ユリウス歴についてもかいてあるぞ?
なんか似たような質問が多いな。どっかの課題か? 俺はわからないから答えられないけど。
String d = "1989/1/7"; DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); Date past = df.parse(d); Date now = new Date(); if(now.before(past)) throw new IllegalArgumentException("未来入力すんな"); int dateSpan = (int)((now.getTime() - past.getTime()) / 24 / 60 / 60 / 10000); 簡単に書くとこんなか。Calendar 使わんとタイムゾーンを考えなきゃいけないんだっけ? Calendar#add() でカウントアップするのもあるけど。
304 :
デフォルトの名無しさん :02/07/18 22:00
<jsp:useBean /> を使うと id に指定した名前の変数が <% %> の中で使えるよね。 これと同じ事って拡張タグライブラリだけじゃ出来ないよね?
309 :
デフォルトの名無しさん :02/07/18 22:42
byteをunsignedとして扱いたいんだけど、自前で+256して&255するしかない? もっと簡単なのあったら教えてください。結果の型は不問。
310 :
デフォルトの名無しさん :02/07/18 22:55
jEditorPaneのsetPage()を使ってHTML表示したとき リロード(もう一度、同一URLをsetPage)が うまくできず古い内容しか表示されないんだけど、なんかいい方法ない?
311 :
デフォルトの名無しさん :02/07/18 23:03
質問の日本語が良く分からないけれど、 結果の型が不問なら、&0xffするだけでいいのでない? 自動的にintへ昇格されるはずだと思われ。
>>311 期待したとおりになりました。サンクス!
313 :
デフォルトの名無しさん :02/07/18 23:34
JavaでExcelファイルを読みこんで セルを指定してそのセルに書かれている文字列を画面に表示させたいんですけど こんなこと出来ますか?
315 :
デフォルトの名無しさん :02/07/19 03:59
Javaマンセ~
最近javaに目覚めた。もちろんマンセー but, swingむずー 表のカスタマイズむずー 可変レイアウトむずー
317 :
デフォルトの名無しさん :02/07/19 04:12
住民基本台帳法について教えてもらえるネットの専門家の方々には、どの板 でお会いできるのですか?
gunbareyoむずー
J2EEサーバーの起動がうまく行きません。 下記のようなエラーがでます。何が悪いかわかる方がいましたら教えてください OSはvine linux 2.1です $ j2ee -verbose Cannot write the seed file for fast startup. The next startup will be slow. 以後エラーメッセージが続く・・・
>>320 320 and/or vine linux 2.1
322 :
デフォルトの名無しさん :02/07/19 13:53
ファイルのランダムアクセスで質問があります。 例えば、 --以下ファイルサンプル---- あああああああ いいいい ううううううう ええ ------------------------- のように、1行が可変長のファイルで3行目を1行まるまる取得するには どのようにしたら良いでしょうか? RandomAccessFileクラスのseekメソッドを使用してポインタを 移動しようとしても1行が可変長なため、どうしたらいいか悩んでいます。 各行の頭にポインタを指定できて、その行に対してreadLineメソッドで 読むようなことは出来ないでしょうか? どなたか宜しくお願いします。
323 :
デフォルトの名無しさん :02/07/19 14:01
プログラムのことで相談というかお願いです。 データメーカーというプログラムを持ってる方いらっしゃらないでしょうか? あるのでしたらUPしてもらえませんか?
324 :
デフォルトの名無しさん :02/07/19 14:15
JTableで編集可能なテーブルは、セル上でダブルクリックをすれば編集モードになるけど、 シングルクリックで編集モードにするにはどうするの?
>>322 先頭から一行づつ読んでく方法以外は無理。
そういうファイルをランダムアクセスで効率的に読むなら、ファイルの先頭に
seek オフセット値のテーブルを持たせるのが普通。
>>321 さん
ごめんなさい。意味が良くわかりません。
vine linux2.1、jdk1.4、j2SDKEE1.4.1以外特に何も入れていません。
j2eeのAPIを含むプログラムがコンパイルできたので環境設定は
うまくいっていると思います
Exception in thread "main" java.lang.NoClassDefFoundError: クラス名 ↑コンパイルした後、classを動かそうとするとこのエラーがでます。 意味がわかりません。わかる方がいましたら教えてください
328 :
デフォルトの名無しさん :02/07/19 19:32
>>327 動かそうとするとき、大文字と小文字はちゃんと区別してますか?
>>328 さん
ありがとうございます。
大文字、小文字、誤字脱字等のミスはありませんでした。
CLASSPATHの設定を見なおす。 この質問、超FAQで毎スレ2、3回出てると思うんだけど。
>>330 さん
ありがとうございます。やっぱりクラスパスですか・・・
java -classpath . クラス名 とコマンドを打つと
Exception in thread "main" java.lang.NoClassDefFoundError: javax/jms/Session
と出ます。現在linuxで使っているのですが、windowsで同じプログラムを動かして
見るとうまく行きます。
CLASSPATHはともに
J2EE_HOME/lib/j2ee.jar , J2EE_HOME/lib/locale
が入っています。
Linuxだとほかに何か加えなければならないのでしょうか?
332 :
デフォルトの名無しさん :02/07/19 21:21
int型の引数をとるコンストラクタを持つクラスがあって、 そのクラスを動的にロードし、上記コンストラクタを使って インスタンスを作るにはどうしたらいいですか? 「上記コンストラクタを使って」の部分でつまってます。。
>>332 hennakurasu hen = new hennakurasu(1);
>>332 java.lang.Class#getConstractor()
java.lang.reflect.Constractor#newInstance()
レスどもです。
いまやっているのを具体的にいうと、プラグインクラスのインタフェース
まわりの設計です。
>>333 ロードするクラス名は不定(forName()でロード)で、そのメソッド
(コンストラクタ含む)はわかっているという状況なので、困ってます。
書いてなくてすみません。
>>334 getConstructor()の引数にプリミティブなintを指定するにはどうしたら
いいですか?あと、newInstance()はAPIリファレンスには空の引数リスト
でnewしたのと同じとありますが、引数ありでnewしたいのですが。
>>335 ドキュメントはちゃんと嫁。
int val =...;
Class cls = ...;
Constractor cns = cls.getConstractor(new Class[]{int.class});
Hoge instance = (Hoge)cns.newInstance(new Object[]{new Integer(val)});
>>335 ついでだけど、
AccessibleObject#setAccessible(boolean)
を併用することで、publicでないメンバへのアクセスも可能になる。
(リフレクションは何もかもをぶち壊しにする可能性のある諸刃の剣
ということですな。)リフレクションを使用したフレームワークを構築
するとき、その機構を外部から隠蔽したいときに使うとよいかも。
ただし、SecurityManagerが許可していない場合など(Servletで
動かしているときなどは、コンテナ側でSecurityManagerがインス
トール済みのことがあるよね)は、↑は出来ないので注意。
338 :
デフォルトの名無しさん :02/07/19 22:36
JavaからDBの入力とか削除とかの操作って出来ますか?
>>338 できます(条件付で)。Googleで"JDBC"で検索。または本屋にいきなはれ。
340 :
デフォルトの名無しさん :02/07/19 22:58
ていうかDBって何か知ってるのか?
342 :
デフォルトの名無しさん :02/07/19 23:03
ドラゴンボールに決まってんだろ
>>340 デルタ・ブルース
ドン・ブレーザー
デビッド・ベッカム
全然関係ないけど その昔 DBクイーンズってグループがあったよね?
>>345 それはいくら何でも失礼だぞ。
今度の懐かしの人100にLINDBERGが出るらしい。
あんまりだ。今年解散だがまだまだ現役だ。
>>336 できました!ありがとうございます!!
ところで、int.classは、型intのフィールドclassで、intのClassインスタンス
であるという解釈であってるんでしょうか?同様のことを表すのに、いくつか
あさった限りではInteger.TYPEとしていたのでちょと気になりました。
リフレクションはいろいろおもしろそうなことができそうですね。
深入りするとドツボにハマりそうですが。
>>347 System.out.println(int.class == Integer.TYPE);
でたしかめれ。
350 :
デフォルトの名無しさん :02/07/20 02:31
JButtonを拡張したクラスにActionListenerインターフェイスをつけて、ボタンを押したら新しいウィンドウが開くように書いたつもりなんですが、 開かないです。 class StartButton extends JButton implements ActionListener{ public StartButton(String s){ super(s); } public void actionPerformed(ActionEvent e){ Ban ban = new Ban("test"); ban.setDefaultCloseOperation(3); ban.show(); } どうすれば開くようになりますか?
>>350 super(s) の下に this.addActionListener(this)
>>351 無事ひらきますた。ありがとうございます。
この言語って独自ファイルフォーマットの実装 って出来ないんじゃないの? まあ小ざかしい手を使えば出来るのかもしれないが 費用対効果であまり現実的じゃないよな。 あんまり業務で使う気になれんな。
>>353 は? バイナリファイルなら普通に扱えますが?
API リファレンスすら読まない人には仕事で使ってもらいたくないですね :P
ランダムアクセスもな。
358 :
デフォルトの名無しさん :02/07/20 03:21
ふーん。符号無しbyte型がない言語でねえ。 ぼくはあんまり処理を増やしたくないのだ。 (flag&0x01)!=0x00 といった処理や、 flag=0x01 といった処理が何万とあるとき、 楽に書ければいいんだけど。
あのね 他の言語やってるから JAVAが窮屈なんだよ JAVAしか知らないプログラマには JAVAは最適だよ
>>358 ちょっとしたビットフィールドなら byte なり int なり使ってくだ
さい。大量のビットフィールドを扱いたいなら BitSet でも使って
ください。符号なし byte が int で代用できない理由は? そもそも
何が聞きたいんですか?
だからJavaのint,byteは符号付だから符号拡張で変なビットが たってしまうだろ。そこが問題なのだよ。 例えば通信で8ビットでデータを送る場合場合 十進で128以上の値は符号拡張されるだろ。
byteがsignedかunsignedかをきにしなきゃいけないの? Javaって32ビット以下のプリミティブ値って実行時には 32ビットをアロケートされるんだよね?プログラム上では intにキャストして全部計算といても問題なし。 byteなんて普通はI/O前後ぐらいでしか使わんとおもうし、 使う必要ない。 ・・・と思っていたんだけど、おいらの勘違いですか?
で?
>>363 は
>>361 宛て。
結局最初の byte → int と最後の int → byte で "& 0xFF" って書くのが
面倒という話で良いわけ?
>Javaって32ビット以下のプリミティブ値って実行時には >32ビットをアロケートされる ということを知らない人がえらい苦労を自ら買っているわけで、 自業自得です。仕様書ぐらい嫁。
まぁ俺も C/C++ から来たばかりの頃は (もう 5,6 年前か) unsigned char が ないのが不満だったな。「符号なしと符号付で byte と tiny に分けてくれ」 って言いたかったが、どこに主張して良いか分からなかった。C/C++ 時代に 築き上げたバイナリ操作の小技がほとんど使えなくなってしまったんだからな。 しかしあえて Java 流儀でやり始めてみると、そんな小技は大したもんじゃ なかったと思うようになった。 まぁあれだ、つまりは言語移行時のはしかのようなもんだ。
char 型使えば?
>>358 BugP(以下略)
プリ(以下略)
そんなに めんどくさいなら呼(以下略)
>>367 さっきから見てるとごねてるのはCを使いこなしすぎた人々ですな。
JavaにCの面影を探してるよう。
「1代目は本立てにもっと細かな彫刻を施してたぞ。2代目はクソ。」
お前はその彫刻が無いと本を立てられんのかと。
むしろ、彼の作った伸縮時代で漬け物石にもなるという高機能は無視なのか。
みたいな。
>>365 あー、そこだそこだ。俺が byte のほかに tiny 型が欲しいって言ったの (藁
>>371 いや、Cを使いこなした人だったら、
ゴネてないでちゃっちゃとプリプロセッサ書いちゃいます。
ゴネてるのは(以下略)
>>374 このスレくらい全部読め
過去スレまでとはいわんから
377 :
デフォルトの名無しさん :02/07/21 15:28
初心者どころかなんの知識もないんですが…プログラミングって何にやればいいんでしょう? ツールとかいらないんですか?
>>377 >何にやればいいんでしょう?
基本的にはコンピュータ
Javaやるつもりなら、コンパイラくらいは必要だね。
あとメモ帳も必要だろう。
あと鉛筆。 定規があるとなおよい。
とりあえず、入門書買ってこい。いっぱいあるから。 サンプルプログラムがいっぱい載ってるやつが良いと思う。 役に立たない本に限って、ごたくならべて、うんちくたれてる。 と、釣られてみるテスト。
JAVA1001Tipsか? JAVA Program in a Nutshellか?
>>382 アプレットから勧めるべきだろうか?
じゃあJava2は避けさせた方がいいのだろうか?
せっかくだから、どんな入門書がいいか吹いてください。 ・DOS窓の正しい使い方が載っている ・PATH / CLASSPATH の正しい説明が載っている ・コンパイル時・実行時のトラブル対策が載っている とか。 >383 それは入門書じゃないと思います… >384 アプレット本だから悪いって事はないと思うんだけどな。 まぁ、HelloWorld ぐらいはやっといてもらいたい気もするが。 File だ、Stream だ、なんてのは次のレベルだと思うし。 Java2 かどうかは関係ないっしょ? 最近の本はどっちのイベントモデルで書いてあるんでしょうかね?
アプレットでMIDIを鳴らそうと思ってとりあえず ・・・ AudioClip ac = new AudioClip(getDocumentBase(),"test.mid"); ac.play(); ・・・ とやってみたんですが、 ふつうのmidiプレイヤーで再生して出る音量と違って、Maxボリュームにしても 殆ど聞こえない!です。ボリュームを管理するにはどうすればいいか教えてください。 アプリの方には独自のクラスとボリューム調節用メソッドがあるようですが、、、
>>386 JAVA Program in a Nutshellは入門書だと思ったのだが・・・
>>387 ちょっと待て。AudioClipはインタフェースではないか。
new出来るのかと小一時間・・・
少なくとも
AudioClip ac = applet.getAudioClip(getDocumentBase(),"test.mid");
ではないのか?
正確なコードを切り張りして再挑戦。
あ、よく見たらgetDocumentBase()とかやってるから、Appletのサブクラスか。 ならば正確には AudioClip ac = getAudioClip(getDocumentBase(),"test.mid"); だな。
>>387 判明。
× getDocumentBase()
○ getCodeBase()
理由
getDocumentBase() はアプレットの載っているHTML文書のファイル
のurlを返している。
とか書いてたが、試しにやってみたら・・・音が出た・・・
とするなら、HTML文書のurlにtest.midが無い、もしくは名前間違い。
ではないのか?例外起きないから。
import java.applet.*;
import javax.swing.*;
public class AudioApplet extends JApplet {
AudioClip ac;
public void init() {
System.out.println("getCodeBase() : "+getCodeBase());
System.out.println("getDocumentBase() : "+getDocumentBase());
ac = getAudioClip(getDocumentBase(),"test.mid");
}
public void destroy() {
ac = null;
}
public void start() {
ac.play();
}
public void stop() {
ac.stop();
}
}
>>386 君には、このスレがあるから大丈夫ね。
「入門xx」買って、とりあえず始めなさい
まずはそれから
>389~391 早速レスありがとうございます。書き込みはミスでした(getAudioClip()でした。) 音は出るんですが、Maxボリュームでやっと聞こえる程度で困ってます。 今のところ"MIDIファイルをMML形式に変換していじる"しか思いつきましぇん。 import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.applet.AudioClip; public class audio2 extends Applet{ AudioClip ac; Button bt1; public void init(){ add(bt1 = new Button("play")); bt1.addActionListener( new ActionListener(){ public void actionPerformed(ActionEvent e){ ac.play(); } } ); ac = getAudioClip(getDocumentBase(),"hikari.mid"); } }
↑387の間違いですスミマセンスミマセン
>>394 >MIDIファイルをMML形式に変換していじる
ここまでできるならMIDIファイル直接いじれよ・・・。
厨質問に答えていただきみなさんありがとうございます。それでは入門書買ってきます。
誰か私に抽象クラスとインターフェースの存在意義について 説明してくれる勇者はいませんか?とくにインターフェース。 空っぽのメソッドだけ宣言していったい何になるのかがどうしても理解しがたいんです。 あとでそれを継承したインターフェースやらクラスやらでメソッドを記述するなら 大元で空っぽのメソッドなんて書かなくてもいいじゃないかと思ってしまいます。 そしてもうひとつ質問が。 定数として扱うものはクラスの先頭で宣言しなくてはいけないものですか? public static void main(String args[])よりも前に記述してあったので少し気になった次第です。
399 :
初心者君。 :02/07/22 18:31
すいません質問が有ります 抽象メソッドの宣言は、 public abstract void method(); で良いんですよね。 この場合戻り値がvoidなのでこのメソッドをオーバーライドするメソッドも 戻り値を無しにしなくてはいけないのですか? public abstract method(); では何故いけないのですか?
400 :
デフォルトの名無しさん :02/07/22 20:23
あるハッシュ表の中身を一端ファイルにとっておき、またそのファイルから ハッシュ表に読み込むにはどうしたらいいですか。 できれば、具体的に教えて欲しいのですが。
401 :
とか。。。 :02/07/22 20:41
>>399 いけない。戻り値もオーバライドの一部で戻り値のみかえるのはいけない。戻り値を省略できるのはコンストラクタのみ。
402 :
とか。。。 :02/07/22 20:49
>>398 インタフェースはジャバにない関数ポインタの替わりにつかえるっしょ。
後それなりの多重継承用。多重継承のあるC++からなぜ削られたかは
EffectiveC++っちゅう本を読むとそのやらしさ、危険さはわかる。
403 :
デフォルトの名無しさん :02/07/22 21:37
作成したスレッドの中で起きたエラーを、スレッドの作成元へ返すには、どうすればいいでしょうか?
>>403 パラメータとして呼び出し元の参照を受け取っておく。
>398 メニューボックスから「二重丸」か「五芒星」か「文字列」を選んで、クリックした場所にそれぞれ二重丸や五芒星や文字列を書くアプレットを考えます。 再描画とかがあるので、できた二重丸クラスや五芒星クラスや文字列クラスを配列に格納していくとします。 でもappletのpaint()メソッドで、いちいち public void paint(Graphics g){ for(int i = 0;i<myVector.size();i++){ if(myVector.elementAt(i) instanceof TwinCircle){ ((TwinCircle)myVector.elementAt(i)).drawTwinCircle(g); }else if(myVector.elementAt(i) instanceof Pentagon){ ((Pentagon)myVector.elementAt(i)).drawPentagon(g); }else if・・・ とかやって「自分で」クラスによって処理を分岐させるのは面倒ですね。クラスが多くなると氏にたくなります。 pubilc interface drawable{ public void draw(Graphics g); }というインタフェースを定義してやれば、 二重丸クラス、五芒星クラス、文字列クラスがそれぞれこのインタフェースをimplementsして、 drawメソッドを上書きしておくことで、メインのアプレットのpaintメソッドは public void paint(Graphics g){ for(int i = 0;i<myVector.size();i++){ ((drawable)(myVector.elementAt(i)).draw(g); } } で済みます。つまり自動的にjavaがクラスに応じてそのクラスのdrawメソッドを呼び出してくれます。 これはインタフェースでなくクラスの継承でもできますが、例えば座標と半径を持つ円クラスを親クラスとして、二重丸クラスと五芒星クラスには半径rを適用できますが、文字列クラスには半径rは意味がありません。 振る舞いの大きく異なるクラスはインタフェースで結んだ方が良いです。
>>398 ,
>>402 あのな・・・多態性を忘れているぞ。
インタフェースの最大の意義である多態性を説明しなけりゃどうにもならん。
関数ポインタっーか関数オブジェクトもそれ抜きには始まるまい。
・・・「多態性」でググってみてくれ。長すぎる話になるから。
その上で分からない部分を聞きに来てくれ。スマヌ。
>例えば座標と半径を持つ円クラスを親クラスとして、二重丸クラスと五芒星クラスには半径rを適用できますが、文字列クラスには半径>rは意味がありません。 って言うか、 文字列は円である。 はばかげていると思わないかい?
正直、多態性をマスターできたら初学者卒業だから、あと一歩だ。 理解すれば、なるほど!と膝を打つから。
409 :
デフォルトの名無しさん :02/07/22 22:30
>>399 よく考えれば分かると思うけど、
戻り値が不定なメソッドを作ったとしても
利用のしようが無い。
410 :
初心者君。(俺も独習Java) :02/07/23 01:24
>>409 抽象メソッドをオーバーライドしてメソッドを作る場合って引数とか戻り値を変えないと
意味が無いように思えるんですが。
う~んイマイチ理解できましぇん。
>>410 そうすると多態と言うオーバーライドの目的の一つが使用できなくなります。
その考え方ならオーバーライドなんて無くてもいい。全部隠匿すればいいんだから。
>>410 抽象メソッドを作る時点で
役割が決まってるんだから
返り値も当然決まってる筈だろ?
>>410 つぅか継承も否定することになりそうな。
>405 なんとなくは分かったような気がするのですが、 分からない部分がうまく言葉にならないので、明日一日考えてみます。 皆様、ありがとうございます。 多態性についても検索してみます。
415 :
デフォルトの名無しさん :02/07/23 03:11
数値や文字がたくさん入ったTXTデータからそれを読みこんで たとえば「DATE」というのを見つけたらその次の数値を表示させるなど) をしたいんですが教えてもらえませんでしょうか
//ピースイメージ生成 //-------------------- for (i=24;i>=0;i--) { image[i]=Image.createImage(20,20); image[i].getGraphics().drawImage(imgPic, -20*(i%5),-20*(i/5), Graphics.LEFT|Graphics.TOP); わかりますか??(>_<)
>>400 // 書き込み
Hashtable table = new Hashtable();
…
ObjectOutputStream out = null;
try{
out = new ObjectOutputStream(new FileOutputStream("hoge.ser"));
out.writeObject(table);
} finally {
try{if(out != null) out.close();}catch(IOException ex){/* */}
}
// 読み込み
ObjectInputStream in = null;
Hashtable table = null;
try{
in = new ObjectInputStream(new FileInputStream("hoge.ser"));
table = (Hashtable)in.readObject();
} finally {
try{if(in != null) in.close();} catch(IOException ex){/* */}
}
まぁ例外処理はお好きなように。
>>415 とりあえず StringTokenizer を使ってみろと言っておく。
JavaSDK1.4.1ってApplet作れないんですか? ClassNotFoundになっちゃうんですけど。
>>416 Image は抽象クラスなので BufferedImage(20,20,BufferedImage.TYPE_INT_RGB)
でも使え。
あと、Graphics.drawImage の引数4個版の第四引数はImageObserverなので変。
内容的にはimgPicの画像を使った16パズル系のゲームのピースイメージのロード。
ピースは20×20のサイズで元絵は100×100。
5×5ピースだが24個しか無いのは右下の1ピースは移動用に開けてある為。
>>419 appletviewer で ClassNotFound になるか確認すれ
423 :
デフォルトの名無しさん :02/07/23 12:11
>>419 javac -version 1.1 Hoge.java
で試してみ
javac -target 1.1 Hoge.java だったよ。すまそ
426 :
デフォルトの名無しさん :02/07/23 13:03
Objectの配列が格納されたVectorから、Objectの配列の配列を得るのにイイ方法ってどうよ? つまり Vector v = new Vector(); while (hoge.hasNext()){ Object[] oa = new Object[hoge.getSize()]; for(int i = 0; i < oa.length; ++i){ oa[i] = hoge.getData(i); } v.add(oa); hoge.next(); } みたいな感じでVectorにObject[]流し込むんだけど、これをObject[][]で得たいのよ。 いまのところ Object[] oa = v.toArray(); Object[][] oaa = new Object[oa.length][]; for(int i = 0; i < oa.length; ++i){ oaa[i] = (Object[])oa[i]; } ってやってるんだけどね。
>>426 Object[][] array = v.toArray( new Object[v.size()][] );
ではダメなのか?
レスありがとうございます
>>423 --sample.txt---
~
SampleA
1 32.1 23.4
2 11.2 21.2
SampleB
1 15
2 24
3 55
・・
・・
--------
みたいなデータでこのtxtからSampleBを呼んでそこの次の行からの二行ずつの数値を
配列に取り込みたいんです。
どうかよろしくお願いします。
429 :
デフォルトの名無しさん :02/07/23 20:28
>428 LineNumberReader使って、1行づつ読んでみればいかがでしょうか。 LineNumberReader reader = new LineNumberReader( new FileReader("sample.txt")); String str = reader.readLine(); みたいな感じでreader.readLine()で1行づつとってこれるから。 とりあえず、SampleBと一致するまでは簡単でしょ。 次の行からは適当にパースしてみ。
BufferedReader にしとけ
431 :
恐れながら・・・ :02/07/23 22:51
java . lang . Object にある「 lang 」ってどういう意味ですか? 英和辞典で調べてもありませんでした・・・。 よろしくお願いします。
>>432 どうもありがとうございます。
languageの略だったのか・・・鬱だ
>>431 languageのabbrriationじゃないっすかね?
まちがい。 abbreviation
レスありがとうございます
>>429 ,230
readLine()を使うのは分かるんですがそこから先が良く分かりませんでした。
やりたいこととしては、SampleBまでtxt内容を読まずにすすみSampleBの書いてある行を見つけたらそこから次の行から
処理を行えるようにしたいんです。
この「SampleBを見つけ出す」ってのはどうすればいいんでしょうか
厨房な質問ですみません。
内容を読まずにどうやって SampleB の位置を見つける気? どこかにインデックスでも作っておかない限りそんなことは出来ないよ?
>439 じゃ何らかのBufferedReader bfは作ったとして。 import java.util.StringTokenizer; ・・・ boolean isDataHeaderFound; int line,counter; int dataList[] = new int[MAX]; String tmp = new String(); StringTokneizer st; while(!(s = bf.readLine(line)) = null){ st = new StringTokenizer(s); if(!isDataHeaderFound){ if((st.nextToken()).equals("SampleB")){//文字列の比較は等号を用いない isDataHeaderFound = true;counter = line+1; } } else { dataList[line-counter] = Integer.parseInt(st.nextToken()); //Integerクラスのstaticメソッド、parseIntを呼び出している。 } } ・・・ line++; }
442 :
デフォルトの名無しさん :02/07/24 01:03
おセロのゲームのを作っているのですが、 ユーザーからの入力(次の指して)を待つときは ポーリングするのがいいのでしょうか? 他にいい方法があれば教えてください。
御疎レスすまそ Object[][] array = (Object[][])v.toArray( new Object[v.size()][] ); でイケたよ。 さんくす。引数付きのtoArrayってこうやって使うんだね。
446 :
デフォルトの名無しさん :02/07/24 01:21
メンバ関数はメソッドって言うけど データメンバはなんていうの?
>>446 C++で言うメンバ変数はフィールド。広義のプロパティでもあるかも。
φ(・・)ほうほう
450 :
デフォルトの名無しさん :02/07/24 01:44
もともと「メソッド」っていうのは、オブジェクトにメッセージを 送ったときに、実行されるコードをさしてたんだよね。 オブジェクトがどのクラスのインスタンスかによって、実行される コードが違うから。 だから「メソッド探索」っていうんだよ、「メソッド選択」じゃなくて。 探索して探し当てたものがメソッドだから。 メンバ関数を「メソッド」って言うようになったのは、Javaが出てきてからの気がする。
451 :
デフォルトの名無しさん :02/07/24 01:59
>イベントドリブン イベントドリブンの意味はわかるんですけど、 オセロの入力にどう使うんですか? マウスイベントが発生するまで ポーリングするというのが、 一番普通に思いつく方法なんですが・・・・ 他にいいのありますかねー? この方法は、ソースコードが汚いので、気分的になんかいやなんですよね。
452 :
デフォルトの名無しさん :02/07/24 08:45
>>451 イベントドリブンとか、ポーリングとか、意味を本当に理解していますか?
イベントドリブンはイベントが発生するまで待っているという方式。待っている間、
居眠りしていようが、別の仕事をやっていようが構わない。
それに対して、ポーリングは常にこちらから相手のイベント送出があったかどうかを、
聞き回る方式です。通常、イベントを発生する相手は複数あり、これを巡回して注文を
聞き回り、なければ次の相手…、と進め、一巡したら(場合によっては少しインタバルを
置いて)また初めからご用聞きに回る…というやりかたですよ。
このイベントが発生したらこのプロセスが動き出すという仕掛けになっているのが、
イベントドリブンという方式です。OOの基本概念の一つと言ってもいい。これを
きちんと理解しないと、Javaは使いこなせませんよ♪
>>455 lang くらいで知識をひけらかせていると考えるヤツって、どういう知識を他にもってんだ?
>452 そりゃそうなんだろうけど、ロウレベルでの処理を考えてしまうと そんなんどうでもいいや、という感じだよね。 おいら、あんまり抽象的な考えかたって出来ない…。
>>457 >ロウレベルでの処理を考えてしまうと
Javaで考える必要ないと思うぞ?
ごめん。途中で送ってしまった。
>>458 もちろん考える必要はないですし、むしろ考えるべきではないですね。
でも、考えてしまう自分が嫌だというか。
Java の GUI 使ったゲームでポーリングなんかしたら画面が 表示されないぞ。駆動はイベントディスパッチャーにまかせとけ。
462 :
デフォルトの名無しさん :02/07/24 09:58
ボーリングゲームは作れないんですか?
つか、Listener使わないでマウスイベント拾う方法って知らない。 知らなくてもいい事という意識で調べてもいない。 実際、あるのか?そんな方法。
>>463 JDK 1.0 AWT Programming
Javaで平仮名→片仮名変換やら半角全角変換やらは、どうやったらできるですか?
>>469 やりかた知らない?
イガぴょんのライブラリってどうなん?
カマって君は放置してくれる?
あ、5×5ピースあるじゃん・・・何見てるんだ俺。
レスありがとうございます
>>441 それを元にいろいろ試してみたんですが上手くいきませんでした。
できればここをおしえてもらいたいです。
while((s=f.readLine())!=null){
で一行ずつ読んでいって
その一行にSampleAという文字がなければ次の行、
もしあればそこでwhile文を抜けたいんです。
この書き方を教えてもらえませんでしょうか。
441さんのやつで一応やったんですがどうもエラーがでてしまいました。
よろしくお願いします
476 :
デフォルトの名無しさん :02/07/24 14:37
JavaはC厨でも身につけられますか?
>>476 配列はポインタのインクリメント以外で参照したくないぜー!とか言う人間には向いてない。
478 :
デフォルトの名無しさん :02/07/24 14:41
とりあえずJavaの本を買ってくるか・・・・
>>478 って言うかごちゃごちゃ言う前にさわればよかろう。
必要なものは無料だ。
時間は腐るほどあるだろう。
482 :
名無しさん :02/07/24 15:06
URLに有るパラメータで、
ttp://localhost/test.html?name=xx このnameをtest.html上に設置しているAppletで取得したいのですが、
こういうことはできるんでしょうか?
appletタグにparamをつければ動作できるのですが、
呼び出し元からパラメータを送り込んでやりたいのです。
アドバイスください。よろしくお願いいたします。
>>482 JavaScript PHP CGI。。。
484 :
デフォルトの名無しさん :02/07/24 15:10
Rudy Perl
>>482 1. アプレットに getHogehoge(String) というメソッドを付けておく
2. アプレットタグに <APPLET ... NAME="aaa" MAYSCRIPT> を付けておく
3. JavaScript で name の値を取得し、aaa.setHogehoge(name) で設定する
//ピースイメージ生成 //-------------------- for (i=24;i>=0;i--) { image[i]=Image.createImage(20,20); image[i].getGraphics().drawImage(imgPic, -20*(i%5),-20*(i/5), Graphics.LEFT|Graphics.TOP); わかりますか??(>_<)
かなり恥ずかしい質問ですんません servletを作ろうとしているんですけど どうやって環境を構築していいんか訳わかんなくなってしまいました サンのHPにいってJ2SEとJ2EEをそれぞれ落としてきて インストールしたんですけど、いざjavax.servletをインポート してコンパイルしようとするとエラーでこけちゃいます servletの開発環境としてJ2EEとJ2SEのほかにまだ必要な ものがいるんでしょうか? どなたかアドバイスください。よろしくおねがいします
>>488 お前、まったく同じ書き込みを昨日もしたろ。氏ねや糞ボケ。
すみませんが,質問があります ’@’を’( ’に変換し、問題の番号を挿入するものを 作ろうとしています。 実際作って色々と試しているのですが,エラーがでてはかどりません。 簡単なプログラムですが、なにぶん中坊なのでよくわかりません。 すいませんが、アドバイスをください。 よろしくおねがいします。 プログラムはこれです。 import java.io.*; public class Ren1{ public static void main(String args[]){ String str= new String("794年@(平安京)が建てられる1192年@(鎌倉幕府)樹立"); StringBuffer str2= new StringBuffer(str); int cnt=1; for(int i=0;i<str2.length();i++){ if((str2.charAt(i))=='@') str2 =str2.replace('@','('); str2= str2.delete (i,i+1); str2= str2.insert(i+1,cnt);/*問題番号を挿入する*/ cnt++; } System.out.println(str2); System.out.println(str2);} }
Linux に Tomcat を入れたいんですけど、 J2SE を入れた後に TOMCAT を入れなければならないのですか? あ、Apache は DSO が ON で入ってます。
クソはおめーだろ
米海軍の艦上戦闘機F-14 TomcatはVG可変翼装備のスタイリッシュな機体です。 また、映画「TOP GUN」ではTom Cruiseらが操縦する機体として登場しました。 比較的人気のある機体であり、例によって私もF-14フリークです。
>>493 色々と問題(StringBufferのメソッドを理解してない)とかあるが、一番の問題は
どういう出力を望むのかイマイチ分からないこと。
794年(1(平安京)が建てられる1192年(2(鎌倉幕府)樹立
と表示したいのか?
初心者としては StringBuffer を使っているところは評価したい。
StringBufferに関してはAPIのヘルプを熟読すれば自力でなんとかなると思う。
APIは日本語版のヘルプがあるのでなめるように読みふけること。
>>493 凡ミスとしてループ内の文字検索 if((str2.charAt(i))=='@') の効果範囲がおかしい。
「@を見つけた時だけ」行わせたい処理なのに、その他の文字を見つけたときも
実行している。
しかし、これはコンパイルでは発見されない先走ったアドバイス。
まずはStringBufferを完璧に使いこなせるように色々とやってみよう。
コンパイルが通った後で、頭を絞ってデバッグするのだ~
501さん,502さんアドバイスありがとうございます。 出力結果は 794年(1平安京)が建てられる1192年(2鎌倉幕府)樹立 この様な感じにしたいんですが やってみると中々出来ないんですが、奮闘中です。
>>502 夢壊して悪いんだが正規表現クラスでぱっぱっぱじゃ駄目?
>>503さん すみませんが,サンプルを教えて頂けないでしょうか?
>>505 まぁ、半分冗談だからね。
初めのうちはアルゴリズムとどろどろになりながら戦うのをおすすめするけど。
前者はBSDタイプのライセンスなのでGPLに縛られた後者より自由に使える。 と思っているのだが。>正規表現
>>508 文章わかんないよ。
前者はBSDタイプのライセンス
後者はGPLに縛られたもの
ってこと?んじゃ、後者の方が自由に使えるじゃん。
510 :
デフォルトの名無しさん :02/07/24 22:05
サーブレットなのだが本とかに書いてある例だとHTMLとサーブレット が1対1なのだが HTMLが5個あってもサーブレットを1つにしてそれぞれ別の処理もできるんだろうけど やり方がわからん HTMLに<input type="hidden" name="flag".. でフラグを埋め込んでサーブレットで getParamaterで受け取って判断させるとか考えたけどもっとスマートなやり方あったら 教えてください
>>509 GPLの物を使ったらはGPLの物しか作れないのを知らないのか?
>>510 web.xml にサーブレットの振替名を 5 つ定義しとけ。
j2sdk-1_3_1_04 で TOMCAT を入れたいんですが TOMCAT のバージョンてv3.3.1で良いんでしょうか? しかもApacheのモジュールが mod_jk-3.3-ap13-eapi.so 27-Mar-2002 05:46 93K mod_jk-3.3-ap13-eapi.so.asc 27-Mar-2002 05:46 285 mod_jk-3.3-ap13-noeapi.so 27-Mar-2002 05:46 93K mod_jk-3.3-ap13-noeapi.so.asc 27-Mar-2002 05:46 285 mod_jk-3.3-ap20.so 27-Mar-2002 05:46 114K mod_jk-3.3-ap20.so.asc 27-Mar-2002 05:46 285 こんなにあってどれをつかってよいやらわかりません!!
ジサクジエンしているヤツはほっとけ。
520 :
デフォルトの名無しさん :02/07/24 22:43
StringをDateに変換する標準的な方法を教えてください
Date date = (Date)"String";
>>520 String d = "2002/07/24";
DateFormat df = new SimpleDateFormat("yyyy/MM/dd");
Date date = df.parse(d);
だったかな。
>>493 正規表現版・・・とか言ってライブラリのインストール方法は書かないという
意地悪をしてみる。
[コード]
import org.apache.regexp.*;
public class Ren1_regexp {
public static void main(String args[]) {
try {
RE r = new RE("@\\(");
String[] strs = r.split("794年@(平安京)が建てられる1192年@(鎌倉幕府)樹立");
StringBuffer str2= new StringBuffer(strs[0]);
for( int i=0 ; i<strs.length-1 ; i++ ) {
str2.append("(").append(Integer.toString(i+1)).append(strs[i+1]);
}
System.out.println(str2.toString());
} catch ( RESyntaxException e ) {
e.printStackTrace();
}
}
}
[結果]
794年(1平安京)が建てられる1192年(2鎌倉幕府)樹立
>>520 Date.valueOf(String) が良いのでは?Stringは"yyyy-mm-dd"形式だが。
524 :
デフォルトの名無しさん :02/07/24 22:53
>>523さん ありがとうございます。 よく、わかりませんが・・・ わかるよう努力してみます〔無理っぽいけど
526 :
デフォルトの名無しさん :02/07/25 00:16
JavaでPDFってどう作るのがおすすめ?
Java2 1.4のドラッグアンドドロップを解説してるサイトって 無いもんでしょうか? なかなか見つからなくて。
PDF pdf = new PDF();
XSLT関係も、regexpも、JDK1.4ならコアAPIにバンドルされてるよ。 動かす側もJREだけで済むので、コアのAPI使っとく方が何かと便利かも。
forの条件更新式なんですが、x=0、y=0の時に for (;x<10;){ x++; y=y+x; } コレだとyが55 for (;x<10;x++){ y=y+x; } コレだとyが45 になるんですが、これは計算方法がどう違うんですか?
533 :
でふぉるとん :02/07/25 01:07
>>532 おちつけ。
おちついて、脳内デバッガでステップ実行してみるんだ。
534 :
defaulton :02/07/25 01:12
>>532 最初はこうだ。
for (;x < 10;) {
x++;
y = y+x; //y = 0+1
}
for (; x < 10 ;x++) {
y = y+x; //y = 0+0
}
535 :
デフォルトの名無しさん :02/07/25 01:15
JTreeで、ノードを強引に展開させたいんですが、expandPathを使っても展開されません。 使い方が悪いのか、表示が変わってないだけなのか・・・?
536 :
困るよアプレット。 :02/07/25 01:20
アプレット作ってる。適当な文字列をブラウザ上のテキスト エリアに入力後、ボタンを押すと次のアプレット画面が同じ ブラウザ上に表示される。ただし、前アプレットで入力した 文字列を後アプレット画面内のテキストエリアに貼り付けた い。前アプレットのデータはどうやってもってくりゃいいの? ちなみに前アプレット(*.html,*.class)、後アプレット (*.html,*.class)のファイルは同じサーバーにありますが 格納しているフォルダは別です。いいたいことがうまくいえん。 表現へたですまんが、どなたか教えてください。 さらに、後アプレット画面には前アプレット画面に戻るボタ ンがあるのでこれを押すと前アプレット画面が最初に入力し た文字列も含めて表示されるようにしたい。
あ、なんとかできそうかもです・・・。がんばります。
初心者歓迎だけど、日本語初心者ってえのはなあ・・・ サーバーサイドで動的にHTMLを生成するか、 アプレットを一つにまとめるしかないんじゃない? アプレットってのはそういうこと向けにできてないよ。
ボタン押したらcgi呼び出すようにして、そいつにパラメータで わたしといて、cgiがアプレット含んだhtmlを作るときに、受け取った 文字列をまんまアプレットにパラメータで渡してやればええやん。 つか、板違い。
>>533 すいません、俺の脳内デバッガはバグだらけなんで(泣
>>534 ありがとうございます
最初の計算方法の違いは凄く良くわかったんですが、
それだとループする回数が違うだけで、
やっぱり同じ数になると思うんですけど???
それとですね、自分で聞いていてアホかと思う質問なんですが、
x<10 ってことは
9<10 true
10<10 false ですよね?ということは、このプログラムは1~9まで
しか足さないので、上の式でもyは45になると思うんですけど…
541 :
デフォルトの名無しさん :02/07/25 03:10
>540 上はloop内で足しているでしょ?。。。。ふぅ。。。
16進数の数列を1バイトずつcharに変換したいのですが、どうすればいいでしょう? 41→Aって具合に。 数列はこんなかんじです。 String str = 7768656e2074686520 一応これでできるんですが、どうも素直じゃないなと。 for (int j = 1; j < str.length() / 2; j++){ char ch = (char)Integer.parseInt(str.substring(j * 2, (j + 1) * 2), 16);
>>540 これ↓と
for (;x < 10;) {
x++;
y = y+x;
}
これ↓の違いは分かる?
for (;x < 10;) {
y = y+x;
x++;
}
>>543 分かりました。
上は55で下は45です。
xが9のとき下の式では y =y+x; //36=36+9 ⇒ 45=36+9
次にx++ でxが10になり、
ループの頭に戻って 条件式x<10 が 10<10 なのでfalseとなります
yは45です
xが9のとき、上の式は 先にx++なので 45=45+10 ⇒ 55=45+10
ループの頭に戻って 10<10 なのでfalse
yは55です
おかげさまでこの式 for (;x < 10;) { x++; y = y+x; } が55になる理由は分かりました 本当にありがとうございます あとはこっちなんですけど… for (;x<10;x++){ y=y+x; }
for (;x<10;x++){ y=y+x; } 先ほどと同じように考えると、 xが9の時、 x++されて xが10になり、 y =y+x は45=45+10 ⇒ 55=45+10になって、 yは55になると思うんですが、何故45なんでしょうか?
>xが9の時、 x++されて xが10になり、 この直後に終了条件の判定が入ります。 そして、条件が成立していれば、その後に > y =y+x が実行されます。
>>547 条件判定はx++されてからなんですか。
並び方が(条件初期化式;条件式;条件更新式)だったので
大きく誤解をしてました。ありがとうございます。
教えてくださった皆様、本当にありがとうございました。
for (<初期化>;<条件>;<更新>) { <内容>; } は、 <初期化>; while (<条件>) { <内容>; <更新>; } と全く同じだからね。 「判定がxが更新された後」というより 「xが更新されたら、ループの先頭に戻って再度条件判定を行う」という方が正確。
正規表現は apacheなら OROが いい感じです。 巷に出回る4つばかりの正規表現ライブラリについて、 ちょっと性能を測ってみたんですが、 OROは組み方によっては J2SDK1.4標準の正規表現ライブラリより 速くなる場合がありました。 ただし、ものすごく便利な OROの Perlライブラリ使うと、 パフォーマンスは最下位に。 とはいっても 実行速度としては 問題ありませんが。
質問です。 JAVAでアニメーションカーソルとか使えますか? しばらく放置してたらカーソルがピクピクなるような。
>>542 byte[] b = (new java.math.BigInteger(str,16)).toByteArray();
とでもやって (char)b[i] とするのはどうか?
charは最大2Byteだよから、本来はモノによっては文字列4Byteを変換する
必要あり。バイト列にして変換したほうが良い。
例えば16進文字列str16を文字列strに直す場合には
String str = new String((new java.math.BigInteger(str16,16)).toByteArray());
という感じ。
クラスとインターフェイスをあわせて何て呼ぶ?
さらに配列もあわせれば参照型と呼ぶが。
>>552 ありがとうございます。
下の方法が簡単そうなので、それでやってみたらうまくできました。
>charは最大2Byteだよから、本来はモノによっては文字列4Byteを変換する
>必要あり。
なるほど。実は
>>542 の方法だとすこし文字化けがありました。
556 :
デフォルトの名無しさん :02/07/25 14:04
strutsのActionクラスを継承したhogehogeクラスのperformで request.setAttribute("xxx" , "xxxx" ); のように設定した値を <%= request.getParameter("xxx") %> のようにして取得したい場合、setAttributeをした後に どのようにすればよいのでしょうか?
16進コードの元の文字コードによっては String(byte[] bytes,String enc) を使って Javaで使用している16 ビット Unicode 文字に変換することもできる。 BigIntegerを使ったのは、昔それでうまくいったからなだけで、多分もっと良い方法も あるのかも。
>>556 ここではJSPとかServletは分からんので
>>498 のスレッドがあるし
そこで聞いてくれ。
>>558 > ここではJSPとかServletは分からんので
勝手に決めないでね。
Cだと char buf[128]; int a=*(int*)&buf[16]; なる書き方をするところを、Javaで書くとどうなるのでしょうか。 お願いします。
>>549 ご丁寧にありがとうございます。
しっかりメモりました。
もっと勉強がんばります。
>560 「文字列bufの17番目の文字へのポインタを、int型のポインタへキャストし、その値を得ている」のですか? 多分JAVAではポインタ使わないで char buf[] = new char[128]; ・・・ buf[i] = 'a'; ・・・(値は入れるんですよね?) ・・・ int a = (int)buf[16]; または String buf = new String("This is a test. 02/07/22 14:56"); int a = (int)(buf.charAt(16)); とかなるのでは。
servlet使ってブラウザから入力した値をFileOutputStream を使ってtxt形式で吐き出しました。この際、デフォルトで指定されているのか、 tomcatのルート配下のbinディレクトリにtxtファイルが出来上がります。 吐き出す場所を指定するにはどうすればいいのでしょうか?
>>562 様
ありがとうございます。
説明が不十分だったので、改めて説明します。
私が考えているのは、
unsigned char buf[128];
int a=buf[16];
ではなく、
unsigned char buf[128];
int a=*(int*)&buf[16];
に相応する操作を行いたいのです。
別の書き方をすれば
int a=buf[16]+buf[17]*256+buf[18]*256*256+buf[19]*256*256*256;
と同等になります。(厳密には違うが)
Javaでも上記の書き方は可能だと思いますが、できればスマートにやりたいので…
宜しくお願いします。
565 :
でふぉるとん :02/07/25 15:49
Byte[] b; ByteArrayInputStream ba = new ByteArrayIntpuStream(b); DataInputStream s = new DataInputStream(ba); s.skipBytes(16); int a = s.readInt(); とか。 Intel系ではエンディアンが違うのかな。 NIOのByteBufferなんか使えばもっと「スマート」に書けるかも
>>565 様
ありがとうございます。
なるほど、Javaではこういうやりかたをするんですね。
ただ、「Stream」ですか…
Readすると、ポインタが強制的に先に進んで行っちゃうんですよね。
Byte単位での処理ならいいんですが、Bit単位の処理を行いたいから、
ポインタは自分で管理したいんですよね。
いい方法あれば、それを、なければその旨を教えていただければ
ありがたいのですが。
>>560 それってスマートなん?
バイトオーダが違うと、
正しく実行されないよね?
俺には その場しのぎの
「汚い」コードに見えるんだが。
>>565 DataInputStream は big endianって書いてあるよ。
探せば LittleEndianDataInputStream とか
作ってる人もいるみたいだけど。
>>566 Bit単位の処理だけであれば
ポインタの管理なんか必要ないよ。
int bitbuff;
とかやって bitbuff が空になったら次
読めばよいではないか?
>>566 ByteArrayInputStream だったら、
mark(), reset(), skip()連発するとか。
ファイルから読み込むなら、RandomAccessFile 使うとか。
>>559 ならば歯に衣着せないで、はっきり言おう。
>>556 こ こ は 初 心 者 ス レ だ
>>498 に 書 い て あ る 専 門 の ス レ ッ ド で 訊 け
>>567 >>568 >>569 ありがとうございます。
私がやろうとしているのは、ハフマンの方法で圧縮されたデータのデコードです。
Bit単位で処理を行うわけですが、次に得べきデータのBit長はデータを
読んでからでないとわかりません。
したがって、16bit読んでは、データの内容と、長さを判別し、
長さ分、ポインタ(Bit単位の)を進めるのです。
メモリに近づくことが可能なCだと、上に示した方法で安直にできるのですが、
Javaでは難しいのでしょうか。
>>571 Pure Java の Zip とか LHA とか作ってる人居るから
調べてみれば? Googleで調べりゃ出てくるでしょう。
jazz とかいう jazzlib とか言う名前だったような…>Zip
>>571 ハフマンのデコードだったら、
最初は 1ビットづつ ハフマンツリーを
たどってくのが基本だよね。
速度遅いけど、練習で作ってみたほうが
>>571 の望むものは早くできるかもね。
574 :
デフォルトの名無しさん :02/07/25 17:36
JTableで、セルを編集した時カーソルを他のセルに移動しないと編集がテーブルモデルに反映されないの されるようにしたいんだけど
>>570 Javaについては初心者です。
>>572 早速調べてみたいと思います。
>>573 1bitずつの処理だと速度かなり遅くなりそうな…
すでにC++で作ったものをJavaに移植したいので、改めてそのあたりの
ロジックを組むのはできれば避けたいです。
---
とりあえず、原始的に、
int a=buf[16]|(buf[17]<<8)|(buf[18]<<16)...;
でやろうと思います。
レスをつけていただいた皆様、貴重なご意見ありがとうございました。
576 :
デフォルトの名無しさん :02/07/25 18:14
キャンディ50個を子ども六人に均等に分けるとき、一人当たりの個数とあまりの 個数を整数の演算子を使って求めること。 ↑誰かこの問題解いてください。 set path=%path%;c:\school\j2sdk1.4.0\bin setclasspath=a:\kadai じゃ無理でした・・。 セットパス自体通りません~。
50/6=8・・・2
>>576 まずは setclasspath の set と classpath の間にスペースを入れてみるのは
どうか?
javaで、あるディレクトリの".txt"ファイルを全部取得。みたいな ことはどうやってするんですか? "/Directory/*.txt"じゃあできませんでした。
夏か。 夏なのか。 夏のせいなのか。 いくら初心者スレっていってもな~。 VBと同じレベルと化してるZO!
582 :
デフォルトの名無しさん :02/07/25 22:46
>581 も答える気ないなら帰れば? ネタと思うが、突っこんどく。 >579 java.io.File#listFile()、getName()あたりでないのかな。
583 :
デフォルトの名無しさん :02/07/25 23:27
Javaでガベージコレクションがいま走っているかどうか知る方法 はありますか?あったら教えてください。
585 :
デフォルトの名無しさん :02/07/25 23:35
二つの数値配列データあるんだけど これをグラフにしたいんだけどJavaってグラフはどうすればいいんでしょうか
586 :
ミトコンドリア :02/07/25 23:42
すいません。教えて欲しいのですが、 「2~3枚の絵をアニメーションとして順番に表示させるようにする」っは出来るのですが、 「一つの画面上で別の複数のアニメーションを表示させる」になると、エラーが出っ放しでわかりません… JavaScriptでしたいのです。教えてください
>>585 java.awt.graphics.*
588 :
ミトコンドリア :02/07/25 23:47
何か場所違いますね、すいませんweb製作ってとこですね
JAVAでブラウザを作ろうとしているのですが、htmlのソースをウェブページから読み取ることまでできたのですがそれを表示できません。 自分はよくわからずアプレットに表示させたいと思っているのですが、それは可能ですか?また可能ならどのようにすれば良いにでしょう?教えてください。馬鹿な質問かもしれませんがメチャクチャ苦しんでます助けてください
>>590 なんだよデコーダって
レンダラだろ
つーか適当なコンポーネントにHTML突っ込めばいいだけじゃ
なかったっけ?
592 :
デフォルトの名無しさん :02/07/26 00:02
>589 ソースを読み取るっていうのは、きちんと文字列で取れたのか?回り道かも知れんが、とりあえず世の中にはパーサ、構文解析というものがあると思うぞ。調べてみなされ。将来的には役に立つぞ。
>>589 とりあえずアプレットとアプリケーションの違いは勉強しよう。
で、どの程度のブラウザを作りたいのか要求仕様を決めよう。
HTML3.2レベルでよいならとりあえずJEditorPaneの使い方を覚えよう。
それ以上を望むなら590のいうとおり自前でなんとかしよう。
俺がなにいっているかわかんなかったらgoogleの使い方を覚えよう。
でも俺ならSWT+IEコンポーネントかな。<<Javaの意味ないけど。
こんな短時間にたくさんの返事マジでうれしいです。 残念ながら現在の知識ではうまく答えられませんが皆さんの上げてもらったキーワードをもとにもう少し勉強してみます。 やる気がでてきました!!
BigDecimalとかBigIntegerでルートの計算がしたいときは どうすればいいですか?
597 :
デフォルトの名無しさん :02/07/26 07:31
質問です。 javax.swing.Timerを使っているのですが、 delay = 1(ms)とかにしてもdelay = 100より速くならず、 どうも最小値が内部的に100になっているような気がするのですが、 正しいでしょうか。 また、100より小さいdelayを使いたいときはどうすればいいのでしょうか。 代替案などでも結構ですので、教えていただければ幸いです。
>>597 一部のOSでは100ms以下の制度を保証してなかったな
Windowsだけだっけ?
600 :
デフォルトの名無しさん :02/07/26 09:37
JAVAで、クリッカブルマップのような、画像データ上に 任意の形をしたポリゴンを作成することはできますか?
>>600 Java 3Dって言うか何がしたいんだろう・・・?
クリッカブルマップと Java3Dのポリゴンは関係ないような… とか言ってみるテスト。
画像表示してるコンポーネントに MouseListener 付けて、 java.awt.Polygon 等の java.awt.Shape の実装クラスで マウスポインタが範囲内かを contains で判定するとか。 そんな感じで… できませんか?
>>604 いや 600 != 603 なので、やってみればいいじゃん。とか言われても。
606 :
デフォルトの名無しさん :02/07/26 10:28
>>601 >>602 クリッカブルマップですと、ブラウザーに表示した画像データ上に
任意の形をしたポリゴン?が作れて、ボタンができますよね?
でも、そのポリゴン?に色分けで塗りつぶしってできますか?
JAVAならどうなるのかな?と思ったのですが・・・。
>>606 なんかJavaとHTMLを同列に考えてるみたいでアレだが・・・やろうと思えば何でもできる。
>>606 >任意の形をしたポリゴン?が作れて、ボタンができますよね?
ボタン? 出来たっけか?
609 :
デフォルトの名無しさん :02/07/26 10:46
>>607 >>608 ボタンってゆーのは、ポリゴン?そのもののことです・・・
押すとアクションするので、ボタンといってしまいました。
実は、GISアプリケーションをつくりたいのですが、
何十万もするGISソフトはとてもとても手がでないので、
JAVA、VBとかのアプリケーションソフトで
プログラムしたいのですが、なんの言語がおすすめでしょうか?
話が脱線してしまいましたが・・・。
>>609 そのGISソフトがなぜ数十万するか考えてみるのもいいかもね。
>>609 Javaでも出来ることは出来るよ。
個人的には オススメしないけど。
最近の風潮では、そーゆー描画関係は
ブラウザに任せちまえってのもあるしね。
>>612 彼は小学校の周りの町探検地図でも作るのか?
>>613 じゃあ何か?
世界地図表示して各国の
名前と人口と国民総生産でも表示させる気か?
よって地図を買わないと結局ソフト作っても無意味。 でよろしいか?
>>616 いや、元の質問社の口ぶりだと
既に地図を持ってるだろ?
618 :
デフォルトの名無しさん :02/07/26 11:24
>>610 ~
>>617 いろいろな意見ありがとうございます。
地図はあります。市町村の管内図とか地籍図とかあるので、
それをスキャンすれば画像データは買わなくてもいい状態です。
仕掛けとしては、人ごとに分筆されている土地部分をマウスで
クリックすると、別ウィンドウに面積とか所有者とかのデータを
だそうとしています。
JAVAですと、具体的にどのような記述(命令)がつかえますか?
>>618 まず、常識レベルに言語のこと覚えなされ。
>世界一のJava(TM)ユーザーを抱える NTT DoCoMo よりJavaOne(SM)への期待コメント SDCからこんなメールが来たんですが、 NTT Docomo社員の誰が世界一のユーザーですか? また、どうやって世界一をきめたんでしょう?
>>620 前やってたじゃん。天下一武闘会。
いやぁ、Swingピッコロ大魔王が出てくるとは思わなかったよ・・・。
622 :
デフォルトの名無しさん :02/07/26 13:23
>> 599 ありがとうございます。 では、100msecより短い時間でなにかを動かしたいときは、 いったいどうすればいいでしょうか。
623 :
デフォルトの名無しさん :02/07/26 13:32
俺は"601"じゃないからな
>>622 for(int i=0;i<10;i++);
みたいなwaitを掛けてみるば?
>>627 そうだけど
他に思い付かない・・・・yo・・・・
629 :
デフォルトの名無しさん :02/07/26 15:20
Java Appletについて教えてください。 Appletでテキストファイルの読み込みを行いたいのですが JBuilder6上ではエラーなく処理が通るのに ローカルでブラウザからAppletを実行したり サーバー上で実行したりするとエラーがでていまいます。 以下、エラーと思われる構文です。 -------ここから---------- ofm = new OwnerFrame(new BufferedReader(new InputStreamReader(new File("test.txt").toURL().openStream()))); -------ここまで---------- 以下は、Javaコンソールで表示されるエラーメッセージです。 -------ここから---------- java.lang.NoSuchMethodError: java/io/File: method toURL()Ljava/net/URL; not found at quizGame.init at com/ms/applet/AppletPanel.securedCall0 at com/ms/applet/AppletPanel.securedCall at com/ms/applet/AppletPanel.processSentEvent at com/ms/applet/AppletPanel.processSentEvent at com/ms/applet/AppletPanel.run at java/lang/Thread.run -------ここまで---------- FileクラスにtoURLメソッドがないというエラーだと思うのですが、仕様を見てみるとtoURLメソッドは 存在しているので、理由がまったくわかりません。 どなたか宜しくお願いします。
630 :
デフォルトの名無しさん :02/07/26 15:24
アプレットの文字列をクリックするとハイパーリンクして別のURLに飛ぶというようなことを するにはどうしたらよいのでしょうか?
632 :
デフォルトの名無しさん :02/07/26 16:14
getAppletContext().showDocument(url); ってやったらできた。
633 :
デフォルトの名無しさん :02/07/26 16:15
>631さん 申し訳ないですが、一通り読んでみてもわかりません。 理解力なくてすいませんがもう少し、教えていただけないでしょうか? 宜しくお願いします。
>>634 >new File("test.txt").toURL()
この式合ってるの?
合ってないの。
JDBCでinsertRow()を使うときに、SELECTで最低1行は拾っておかないと いけないのですか?カーソルの位置が不正です。みたいなエラーが出るのですが・・。
639 :
デフォルトの名無しさん :02/07/27 00:00
ServletとJSPでシステムを作っているのでが、コントローラの 単体テストってどうやるんですか?コントローラだけでテストなんて しないですよね?誰か詳しい人教えてください。
640 :
でふぉるとん :02/07/27 02:03
>>638 moveToInsertRowはやってるのかね?
APIドキュメントは読んだかね?
641 :
デフォルトの名無しさん :02/07/27 07:29
>>639 コントローラの何の動作をテストしたいの?
>>640 moveToInsertRowはもちろんやっています。
APIもじーっくり読みました。サイトも見て回ったんですが・・。
文法的には間違っていないはずです。
ドライバが対応していない場合があったりしますか?
そんな風なことを見かけたんですが、確信が持てないです・・。
643 :
デフォルトの名無しさん :02/07/27 10:48
>>641 A ボタンがちゃんと押されているかどうか
644 :
デフォルトの名無しさん :02/07/27 13:30
Javaのソース読んでて、わからないメソッドやクラスにでくわしたとき みなさんどのようにして調べているのですか?
>>644 JAVADOCがある時:読む。
JAVADOCがあってもなくても:テストクラスを作ってみた。
646 :
javacc :02/07/27 13:42
>>646 一応Javaでは一番メジャーっぽいし
他に画期的なのが出ない限り生き残るんでは?
ところでせっかくJavaなのに日本語テキストの扱いが面倒なのは何とかならないか、、、
カスタムリーダー書くの面堂、
>皆様、Javaでパーサ作ったりとかあんまりしないんですかねぇ…
それこそ新規で言語処理系でも作る気がなければ
確かにそんなにつかわないよな。
Cプログラマの中でもYACCとか使ったことの在る奴は何パーセントくらいなんだろ。
普通のアプリのニーズならXMLやプロパティファイルで十分だし。
648 :
javacc :02/07/27 14:14
>>647 先日、「Javaccを管理しているWebGainが消息不明」という記事を見ました。
Javaに絡んだ言語変換パーサを作ってるので、yaccよりJavaccをチョイス
したのですが、どうもJavacc自体が先行き不透明な感じがするのです。
おかげで、ほんの少しだけ安心しました。
日本語のドキュメントもほとんど無いですよね。
>>647 >日本語テキストの扱いが面倒
ってのは?
650 :
デフォルトの名無しさん :02/07/27 14:42
JAVAを勉強しようと思うのですが、 一から始めるJAVAって感じのサイトありませんか?
>>650 ここでスレ立てればいいんじゃないでつか?
653 :
Rina ◆tI333vNE :02/07/27 15:41
654 :
デフォルトの名無しさん :02/07/27 15:52
655 :
デフォルトの名無しさん :02/07/27 21:23
>>641 テストは画面遷移以外のテストをしたいのです。一通りの処理というか。
っていうか、MVCモデルでのControllerって単体テストするもんですか?
下位クラスが無きゃ実際の処理なんてテストできないですよね?
そこらへん詳しく載ってるサイト教えて。
>>655 VCで。Mは無くてもいいし、必要だと思えば
使い捨ての利くコンソール版作ってからやる。
MVCって三層C/Sを一つのサーバでやってるって感じですか?
659 :
デフォルトの名無しさん :02/07/27 23:11
>>658 そだね。
アプリケーションでMVCというと、一つのプロセスの上で
それやってる感じ。通知は単なるメソッドコールになる。
661 :
デフォルトの名無しさん :02/07/27 23:48
VCでテストやるか? CM(またはMスタブ)で、JUnitでVの代理ロジック記述じゃないのけ?
663 :
デフォルトの名無しさん :02/07/27 23:52
>>662 どうせMのオブザーバだけでしょ?ユニットテスト側で準備すりゃいいじゃん。
static メソッドの中で、そのメソッドが所属するクラス名やパッケージ名って 取得できますか?
>>664 ハァ?
staticメソッドを実装している位置って、そのクラスじゃないのか?
なんで実行時に取る必要があるのよ?Classオブジェクトが欲しいなら
<クラス名>.classでええよ。
Hoge.class.getName() Hoge.class.getPackage()
>>665-666 サンキュー、それそれ。
ちなみに名前が変わるかも知れないパッケージのクラスの中から
バンドルされてるリソースを、パッケージ名変更の影響なくアク
セスしたかったのよん♥ 文字列でも持たせると、後で grep
出来ない形でコード書く奴がいるかも知れないので。
668 :
デフォルトの名無しさん :02/07/28 02:41
argsって何でしたっけ? ちょっとど忘れして…
669 :
デフォルトの名無しさん :02/07/28 03:15
age
そういえば GZIP はあるのに tar 機能がねーな、と思ってみたり。
>>668 public static void main(String[] args) のことか?
ARGument String だと思うが。
ARGumentSだったりして
672 :
デフォルトの名無しさん :02/07/28 04:35
コンパイルなどでの エラーの探し方のコツとかってある? どう考えても、どこが間違ってるのか分からん時とか、平気で1日無駄にするし
なぜエラーが起こったかを記憶しておく。 そうすれば費やした時間は無駄にならない。 がんばれや、学生さん。
>>670 tarは誰にでも すぐに書けるからでは…
(仕様しってれば)
675 :
デフォルトの名無しさん :02/07/28 10:06
Forte for Java, CE3 を使って勉強してます。 外部クラスからJTextAreaにデータを表示させたいんですが、 class SleepingA implements Runnable { private Application appli ; public void run() { appli.addTextArea("SleepingA Start") ; } } で本体側 public class Application extends javax.swing.JFrame に public void addTextArea( String str ) { jTextArea1.setText( str ) ; } を加えて、コンパイルは出来るんですが 実行時にエラーが出てしまいます。 何がおかしいんでしょうか? エラー: java.lang.NullPointerException at ThreadTest.SleepingA.run(Application.java:189) at java.lang.Thread.run(Thread.java:484)
>>675 ねぇ、appliにインスタンス代入してる?
というと、本体側の SleepingA runA = new SleepingA(); Thread threA = new Thread(runA); threB.start(); ですか?
>>677 どこかで
appli = new Application();
もしくは他で作ったインスタンスを代入したのか?と。
679 :
デフォルトの名無しさん :02/07/28 10:31
インスタンスの代入というのがよくわからないんですが・・・
>>679 SleepingAクラスのコンストラクタとかでappliを初期化しているか?
appliは「Applicationへの参照」であるから実体(インスタンス)は無い。
自分で実体を作成して代入してやる必要がある。
実体を作成するのが new だ。
と、
>>678 は言っている。
>>682 助かりました。あれ以上の説明が思いつかんかった。
勉強やり直してきます。
684 :
デフォルトの名無しさん :02/07/28 18:02
お二方、回答どうもありがとうございます。 private Application appli = new Application() ; でエラーはなくなりましたが、String値の受け渡しが出来ません(TT) 本体=Application() から class SleepingA のスレッドを作成しているので、 SleepingA で appli = new Application() ; とすると元の本体とは別に、新たなApplication() を作ってしまっているから 元のApplication()にString値が受け渡されないと、考えてよろしいの でしょうか?とすると、SleepingAの方から元のApplicationのスレッドを作るようにして、 そいつにString値を渡す、というやり方で良いんでしょうか?
A. コンストラクタに引数を設けてApplicationのインスタンスを渡す。 B. SleepingAをインターフェースにしてApplicationにimplementsする。 という手が考えられる。 Aがお手軽。
あと、スレッドを使うときは競合に気をつけること。
って、setTextはスレッドセーフダタ...
>>670 tarって必要か?
昔のzipが複数ファイルまとめられないからtarが存在していた
と理解してたんだが・・・
>>687 商用 Unix だと本番機に compress & tar しか入っていないことも多々ある
のよん。
689 :
デフォルトの名無しさん :02/07/28 20:25
質問です。 import ABC;(ABCは、自分で定義したクラス) と書いてコンパイルしようとすると、 「"."がありません import ABC; 」 ^ というエラーメッセージが表示されるのですが、原因が 分かりません。どなたかご存知でしたら、アドバイスをお願いします
>>688 あいや、正確には
Javaのプログラムから、tarって必要か?
なんだが。
693 :
デフォルトの名無しさん :02/07/28 20:42
>>692 sankusu
あと日本語ページとか無いのでしょうか?
>>690 import はパッケージの利用の宣言であり、クラスの利用宣言ではない
からではないか?
ABCの入っているソースの天辺にpackage ABC;と書いてコンパイルし、
クラスパス以下にABCフォルダ作って、そこにclassファイル置いてみてくれ。
ただ、エラーの内容がイマイチ?なのだが。
それはちゃんとコピペしたものなのか?
>>691 tar しか入っていない環境ならふつー .tar.Z や .tgz だな。
アーカイブはバッチ処理に渡したりもらったりするケースも
結構あるから。
とはいえ JDK が入っているなら jar で ZIP は解凍できるから、
他の鯖にデータまとめて持ってくようなバッチでもなければ ZIP
で良のか。
>>694 >>695 ありがとうございます。
パッケージ化する方法を試してみました。
(フォルダ名をABC、クラス名をMyClass.class)
確かに、import ABC.MyClass;
とするとコンパイル通りました。
ありがとうございます
>>687 >昔のzipが複数ファイルまとめられないからtarが存在していた
>と理解してたんだが・・・
ソレ、たぶん間違いっす。
>ソレ、たぶん間違いっす。 ソレ、たぶん間違いっす。
元々 tar は複数ファイルをテープ上にアーカイブしたり元に戻したりする ためのもの。アーカイブをディスク上に作成することも出来たので、compress や gzip と組み合わせて使われるようになった (古い Unix の思想「1 コマン ドは 1 機能に従事する」に従い「アーカイブ」と「圧縮」は別コマンドになっ ていた)。 よく知らんが ZIP アーカイブはこれより後に PC 向けに作られたもの だったと思う。俺が始めて見かけたのは 6~7年前くらいだったかな。 NIFTY-Serv に入った頃に知った。
Javaの変数名前付け基準って、みなさんはどうしてますでしょうか?
アプレットやフレームにdrawImageで画像を貼り付ける場合、どうしても背景色の「矩形」が出てしまいます。 ネット上のサンプルとかでは、ピクセル単位で条件分岐させて特定の色を透明色に変換しているのですが、もっと スマートなやり方がないでしょうか。
あの、javaを勉強だした初心者なんですけど。 booleanって、VBだったら、flag=not flag でtrue<->falseを変更できますよね。 javaでこういったことをやるには、どうすればいいのでしょうか。 って、こんな質問して良いんでしょうか。
>>702 別にJAVAだからってのはなく普通につけてたが。
敢えて言うならpublicであれば大文字とか?
>>706 JAVAは透過GIFも扱える。元の絵が悪いのだろう。
ピクセルで処理をするのはもっと他のバヤイだ。
>>707 public boolean Reverse(boolean bool) {
if ( bool == true ) { return false; }; return true;
}
こんなんで我慢するしかないのでは。
JFileChooserみたいに、日付を選択するコンポーネントってありません?
ロンギヌスさん、ありがとうございます。 えっと、自分で関数(javaではclass?ってことになるの?)を作るしかないということですか? ~で反転出来るかな、って思ったらやっぱり出来なかったし。 バイト型で、0か-1かをとった方が簡単かなぁ。
boolean flag = true; flag = !flag; ネタスレでしたか。
>>712 >>709 はクラスである必要はありません。
使いたいクラスに関数として存在していればいいです。
(自分はこんな関数集めてクラスとして利用していましたが)
javaではbooleanは独立したオブジェクトです。
(booleanに限らず)
VBみたいにバリアント型ではないので慣れないと使いまわすの
面倒かも知れません。
で、前もってbooleanとして宣言しておく必要があります。
面倒ならbyteでもいいですけど、この機会に色々と慣れておいた方が
いいかも知れません。
>>713 ああっ、そんな書き方があったんですね。
~よりそっちを思いつくべきだった・・・
は、恥ずかしすぎる。
ま、まあ、聞くは一時の恥って言うよね・・・ねぇ。
boolean ってオブジェクトだったのか… シラナカターヨ
>>706 ImageFilterを使いたくないってこと?
>>714 ネタならもうちょっと練ってから書き込め。面白くない。
マジなら一回 (略
720 :
デフォルトの名無しさん :02/07/30 00:33
jaxpはxmlshemaによる妥当性検証ってサポートしてますか?
721 :
デフォルトの名無しさん :02/07/30 01:13
apacheとtomcatの連携をさせようと思いとりあえず導入したんですが ユーザディレクトリにJavaを実行させたい場合はどうするのか教えてください。 具体的には ~/以下はどこでもjspが扱える。任意のディレクトリに(例えば~/webapp/)に WEB-INFを置いてservletを配置する。と言った具合です。 tomcat4.0.1を使用しててapacheにmod_webappモジュールを組み込んでいます。
722 :
デフォルトの名無しさん :02/07/30 01:17
グラフ書いてるんだけど縦軸と横軸に数値を入れたいんだよね たとえばY=X+1とか式あったらy軸との交点は1って表示させたい あとほかにもある程度軸に数値いれたいんですができるでしょうか?
723 :
デフォルトの名無しさん :02/07/30 01:37
722> できます
724 :
デフォルトの名無しさん :02/07/30 02:18
>>723 どうかやり方教えてもらえませんでしょうか?
よろしくお願いします
725 :
デフォルトの名無しさん :02/07/30 02:20
JTableをScrollPaneにadd()して、スクロール可能にすることができますよね。 スクロールをしていって、「一番端まで来た!」ということを知る方法は ないでしょうか? 何かイベントが発生するとか・・? 要は、端っこまで来たらテーブルの行を追加したいだけなんですけど・・。 ご存じの方がいたら教えてください。
>>720 XML SchemaのはJAXPじゃできないんじゃないかな、今のところ(適当).
そもそもXML Schema自体がキチンとした仕様がまだきまってなかった
ように思うんだけど….
うちの会社はRelaxerっての使ってる. XML Schemaと違って
実装が結構進んでるんし, 何より開発者が日本人だからドキュメント多いよ.
興味湧いたらぐぐってみて. XML Schemaは知らん. あんなの
誰も使わないと思うんだが…仕様が複雑すぎてRinaたんには無理(´-`)ノ
>>722 でもそういう場合ってさぁ, 自分で書いちゃえばいいのでは?
>>723 それって専用のライブラリでも出てるの? 出てるんなら私にもおせーて.
728 :
デフォルトの名無しさん :02/07/30 03:12
今日、Javaのプログラムを始めた初心者なんですが、MS-DOSプロンプト上で下記のメッセージが表示され、プログラムが実行できません。なにが原因かサッパリ…助けていただけないでしょうか…。 Exception in thread "main" java.lang.NoClassDefFoundError: Sample1
>>725 JScrollPane#getHorizontalScrollBar(), もしくは
JScrollPane#getVerticalScrollBar()でJScrollBarを得る.
で, それにAdjustmentListenerを追加すると,スクロールバーが
動いた時にAdjustmentListener#adjustmentChangedが
コールされるから, それ使うとうまくいく…と思う. 他に方法は知らない.
>>728 それはSample1ってクラスがないよーって言われてるんじゃないかな?
CLASSPATHが通ってないとかだと思う.
732 :
デフォルトの名無しさん :02/07/30 03:47
>>730 回答ありがとう。でも全然解決できそうも無い。テキストどおりやってるんだけどなー。何とか試行錯誤してみます。
>>722 横向き文字列だけなら Graphics.drawString() を使って描けば良い。
角度の付いた文字列を使いたいなら
\demo\jfc\Java2D\src\java2d\demos\Fonts\Tree.java なんかを参考に
AffineTransform と TextLayout を使って文字を描く(と思われる)。
デモを見ておくのも重要。出来る事の一通りとそのやり方はそれで分かる。
少なくとも画面描画するアプリを作るなら、事前に java2Demo.jar は触って
みるべき。
ただ、少なくとも後者は初心者向きではないと思われる。
アフィン変換って何?という人間だと、ググってすこし勉強したほうが良いかも。
たぶん概略だけで良いと思う。
概略も知らないと AffineTransform の説明文で挫折するかも知れないから。
その課題に使うファイルがいくつあるのか分からんのだが, どういうファイル構成になってるの? ・ファイル数 一つのファイル or 複数のファイル ・必要なファイルの場所 カレントディレクトリだけ or カレント以外のディレクトリ or 複数のディレクトリに …教えてもらえればキチンと答えれると思うよ.
>>733 それならできる.
てっきり数式放りこんだらグラフが書かれたCanvasクラスを返して
くれたりするライブラリがあるのかと思ったよw
>>734 やっぱり自分じゃムリでした。ファイルはひとつ。必要なファイルもカレントディレクトリだけ。パスの通し方もテキストの通りにやってみた。なのにナゼ…。先は険しいなあ。
737 :
デフォルトの名無しさん :02/07/30 04:25
( ´Д`)ハァハァRinaタン・・・・
set CLASSPATH=%CLASSPATH%;.
ブス専ですか?w ほうほう, DOSだと環境変数は%%で括るのか. 覚えておこう.
740 :
デフォルトの名無しさん :02/07/30 09:38
配列をつくって、そこに乱数を入れました。 double [] array = new double[s];//sは最初に与える for(int j=0;j<s;j++){ array[j]=Math.random(); } ここで、この次に、このs個の配列に入っている値の和を求めたいです。 array[0]+array[1]+...+array[s-1]+array[s]はどうやって計算すれば いいんでしょうか、足し算するのは知っているのですが、プログラムは どうやって書けばいいのでしょうか?教えてください。お願いします。
742 :
デフォルトの名無しさん :02/07/30 10:03
>>741 740です。ありがとうございます。
乱数を代入しつつ足していくとはどうかけばいいんでしょうか。
プログラミング厨房なので、もしよろしければ教えてください。
自分は、\sum_{j=0}^s array[j]を考えていました。
エクセルとかについているsumみたいな、和を求める関数というのを
書きたいのですが、考え方が根本的におかしいでしょうか?
double sum = 0.0; for(int i=0; i<array.length; i++){ sum += array[i]; }
744 :
デフォルトの名無しさん :02/07/30 10:25
>>743 ものすごく助かりました。+=という書き方、はい!ありました!!
やっぱり本でよんだだけの知識はダメですね。大感謝です。
すこし生きた知識がふえました。
745 :
デフォルトの名無しさん :02/07/30 10:39
>>688 > 商用 Unix
商用 Unix ?
>>698 ちがうぞ おい
>>701 圧縮するとバックアップファイルが壊れたときに全部取り出せなくなるので、アーカイブのみで圧縮はしない
という話もあったな。
>>708 大文字って定数の場合ですよね?
>>732 もっと自分の状況とかいろいろ説明すれば、率直な回答もできるが、ほとんど情報がないので、だれでも
適切な回答をしていないと思うよ。
747 :
デフォルトの名無しさん :02/07/30 11:04
2次元配列の場合、配列の長さというのは、どっちの長さでしょうか? 行でしょうか?列でしょうか? array[][]のarray.lengthはどっちの長さを指定しているのでしょうか? 行の長さ、列の長さを指定したい場合、それぞれどう書けばいいでしょうか?
double[] array = new double[2][3]; System.out.println(array.length); System.out.println(array[0].length);
>>747 System.out.println(array.length);
一発解決
>>747 2次元配列というものは存在しない。あるのは配列内の配列。
751 :
デフォルトの名無しさん :02/07/30 11:15
class arraylength { public static void main(String args[]) { double[][] array = new double[2][3]; System.out.println(array.length); System.out.println(array[0].length); } } をやってみますた。array.lengthだと前のほうに入っている 値がでるのですね。つまりここでは2ですね。 array[0].lengthで後ろの3ですね。なるほど! ありがとうございました。
752 :
デフォルトの名無しさん :02/07/30 11:18
>>750 ふむ、なるほど、だからarray[0].lengthという書き方になるのですね(想像)
理解が深まりすた。皆様いろいろありがとうございます。
>>752 そういうこと。array[0] と array[1] では配列の長さ違うかも知れない。
double[][] array = new double[2][];
array[0] = new double[5];
array[1] = new double[10];
System.out.println(array[0].length);
System.out.println(array[1].length);
754 :
デフォルトの名無しさん :02/07/30 11:42
class arraylength2 { public static void main(String args[]) { double[][] array = new double[2][]; array[0] = new double[5]; array[1] = new double[10]; System.out.println(array[0].length); System.out.println(array[1].length); } } をやってみますた。5と10がでました。 かなり混乱してきますた。これはarray[0]とarray[1]の長さでしか? つまり、array[2][]で配列が2本用意されて、そのarray1本ずつに対して、 さらにarrayが一本ずつ、array[0]には5個はいる配列と、だから配列の配列。 つまり配列は行列ではないのですね!!すごい発見をした気分。 平面ではなくて立体ですね!!ビルが2本、5階建てのビル、10階建てのビル ですね!!
755 :
デフォルトの名無しさん :02/07/30 11:56
>>722 どうもありがとうございました。
参考にしていろいろやってみます。
Rinaさんもありがとございました。
えっと、またバカみたいな質問ですけど・・・ javaで、CのatoiやVBのvalに相当する命令を出すには、 どのように書けば良いのでしょうか。
String num = "100"; int i = Integer.parseInt(num);
757さん 出来ました。お手数かけてすいませんでした。 758さん そうですね。 この調子で質問してたら、キリが無いですよね。 一応、javaのページは軽く目を通したんですけど、もっと詳しく勉強してから それでも分からない時に質問したいと思います。
760 :
デフォルトの名無しさん :02/07/30 12:43
JavaのGUIプログラムからFortranの計算プログラムを実行させるにはどのようにすれば良いのですか?
Rinaたん萌え~
>>729 アドバイスありがとうございます。
すいません、よかったらもう一つ教えてください。
JTableで行を選択するとき、デフォルトの設定だと、
1)複数行を選択してマウスから指を離す。
2)選択された複数行のうちの1行をマウスでクリックする。
という操作をすると他の行の選択が解除されてしまいますよね。
単に、複数行をドラッグ&ドロップするアプリを作りたいだけなんですが・・。
複数行を選択してそのままドラッグ、だとうまくいきますが、ちょっと
使いにくいので、一度複数行を選択してマウスを離してから再びドラッグする、
ということはできないものかと考えています。
マウスイベントを拾ってシコシコやるしかないでしょうかねえ。
もし簡単なやり方をご存知でしたらアドバイスお願いします。
ファイルを読むとき BufferedReader reader = new BufferedReader(new FileReader("Filename")); String line = reader.readLine(); で読むのはわかったのですが、 BufferedWriter writer = new BufferedWriter(new FileWriter("Filename")); で書く場合にはどうすればよいのでしょう? PrintWriter writer = new PrintWriter(new BufferedWriter(new FileWriter("Filename"))); 書くときはこうするべきなんですか?
>>765 すべきということはない。PrintWriter を使うと少々のオーバーヘッドがかかるし、
出力エラーが発生した場合ちゃんと通知してほしい、行末シーケンス (LF/CRLF) に
システムデフォルトのコードを使ってほしくない場合などは使わないだろう。要は
楽なコードを書きたいかどうかなんだが。
767 :
デフォルトの名無しさん :02/07/30 18:53
>764 自前の ListSelectionModel を作る
>>766 その場合は、どうやって書き込むのでしょうか?
PrintWriter の場合は、 writer.println(writer); で書きますけど、BufferedWriterの場合の書き方がわかりません。
PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("hoge.txt"))); out.println("hello, world"); out.close(); 上記は↓のコードとほぼ等価: Writer out = new BufferedWriter(new FileWriter("hoge.txt")); try{ out.write("hello, world"); out.write(System.getProperty("line.separator")); } catch(IOException ex){/* */} out.close(); ってか、PrintWriter クラスのソースを読め。
hoge.write を使うんですね。ありがとうございます。 > ってか、PrintWriter クラスのソースを読め。 BufferedWriter のほう一生懸命読んでいました。
>>769 あっ BufferedWriter 型じゃなくて Writer 型なんですね。
> } catch(IOException ex){/* */} これは良くないなぁ・・・
>>772 ex.printStackTrace() ぐらい呼べという意味?
それとも、IOException 以外の例外をトラップできないから Exception で
受けるべきという意味?
はっきりと書かないと意味が通じないよ。
774 :
デフォルトの名無しさん :02/07/30 20:59
Fortranの入力が見にくいので、JavaでGUI形式の入力を作成しようと思っています。 その際にFortranとJavaを連動させるにはどしたら良いのですか?? Visual Fortran を使っています。
>>772 PrintWriter は内部で IOException 発生しても何も言わないでしょ。
その意味も込めて {/* */} にしたんだってば。
と言ってみたが初心者に行間読めっていうのも酷な話だな。
printStackTrace()を呼ばないんなら, try { hogehoge(); } catch (FooException e) { // do nothing. } …とかの方がよくない? もしくは, try { hogehoge(); } catch (FooException e) { throw new InternalError(e.toString()); }
何か話が脱線気味ですが、当初の話は PrintWriter と普通の Writer の動作特性の 違いです。catch した例外の取り扱いこうあるべきってのはまた別の話なのでよろしこ。
>>764 亀レスすまそ.
えっと結論から言うと,JTableあんまし使ったことないから分からんw
力になれなくて申し訳ない….
APIドキュメント見てみても使えそうなメソッドとかがなかったら, 自前で
イベント拾ってやるしかないんじゃないかなぁ….
>>763 どこら辺に萌え? 教えて,今後の参考にするからw
>>776 っていうよね 初心者が初心者を隠すときって
>>773 >>775 なんか、必死だね。
772がなにを言いたいかわからないが、私はコメントの使い方は良いとは思わない。
初心者と言われて顔を真っ赤にしている人がいらっしゃいます。
荒れているところすいませんが
>>769 Writer out = new BufferedWriter(new FileWriter("hoge.txt"));
が try からはずれておりますけど、なぜ、tryの中にいれて例外を受け取らないのでしょうか?
それはプログラムの作り方によって変えればいいってだけですか?
ファイルが作れないこともあると思うので、中に入れたほうがいいんですよね?
入れないほうがいい理由があったら知りたいです。
フレームを画面中心にするにはどうすればよい? もしくは、画面サイズを取得する方法を教えて頂戴
>>785 入れたほうが良いって言うか、ちゃんと書くなら普通こんな感じ:
Writer out = null;
try{
out = new BufferedWriter(new FileWriter("hoge.txt"));
// …
} catch(IOException ex){
// エラー処理
} finally {
try{ if(out != null) out.close(); }catch(IOException ex){/* */}
}
メソッドが IOException をスローすると宣言されていても、最後の finally で
close する必要があるのでどの道 try-catch は必要。
>>871 コメントの使い方が気に食わなかったのか?
C/C++ から来た人なら DO NOTHING の意味で使ってる人結構いると思うけど。
>>788 ありがとうございます。
宣言は try の外がいいんですね。勉強になります。
>>791 そう、ファイルクローズの保証のために finally の中で close() を
呼び出したいから、try ブロックの外で宣言しておかないとまずい。
public class Hoge {/* */}
どーも
765って普通?よく見るコードではあるけど、頭悪そうで嫌い。 try { BufferedWriter out = new BufferedWriter(new FileWriter("hoge.txt")); try { out.write("hoge"); } finally { out.close(); } } catch (IOException e) { //エラー処理 e.printStackTrace(); } ぐらいしないの? ちゃんと考えないとネストが深くなりすぎるが。
↑間違えた。788ね。
>>797 好き好き。ってか無駄に try 重ねると白痴に見える。
800 :
デフォルトの名無しさん :02/07/30 22:45
全く無駄ではないが?788にしたって結局2回tryしてるしな。
アタマが悪い人は放置しなさい。
>>801 誰がアタマが悪い人なの? あなたの中で・・・ なんかあなたの考え間違っていそう。
すいません、質問の仕方が悪かったんですね。 昨日、Javaを初心者用テキストで勉強し始めて、JDKをC:\jdk1.3のフォルダにインストール。 パスを通すということでC:のAutoexec.batにPATH C:\jdk1.3\bin;%PATH%と入力。 MS-DOSプロンプトで2数の和を求めるプログラムSample1を入力。 コンパイルして、.CLASSファイルが作られたことを確認。 しかしJavaコマンドを実行すると、 Exception in thread "main" java.lang.NoClassDefFoundError: Sample1 とエラーがでるのです。何度テキストを見ても間違った操作をしているようには思えないのですが…。 どなたか対応策を教えていただけないでしょうか。
>>797 out.write() で例外が発生して、その影響で out.close() からも例外が
発生した場合、障害の大本の原因であろう out.write() 側の例外情報が
報告されないな、そのコードだと。JDBC の Connection 関係で同じよう
なコード書いてくれるなよ。
>>805 > パスを通すということでC:のAutoexec.batにPATH C:\jdk1.3\bin;%PATH%と入力。
OSはなにつかってます? OSによってパスを通す方法が異なりますよ。
> Exception in thread "main" java.lang.NoClassDefFoundError: Sample1
実行するときは、クラスのあるディレクトリで
java Sample1
ですよね?
>805は java Sample1.class とでもしてるのか 大文字小文字を区別してないかだろうな・・・
俺には } catch(IOException e) { //エラー処理 e.printStackTrace(); } finally { if (out != null) { try { out.close(); } catch(IOException e) { //またエラー処理 e.printStackTrace(); } } } の方がよっぽど白痴に思えるがな。 807の問題は確かにある。あともうひとつ穴があるんだがこれはまだ指摘されてないな。 801は807を以って797を頭悪いと評しているのか?俺も興味あるな。
>>810 > java Sample1.class
> とでもしてるのか
その場合は
Exception in thread "main" java.lang.NoClassDefFoundError: Sample1/class
になりますね。
粘着野郎のコードが無駄に邪魔なんですけど・・・
なんだ、穴だらけか。
>>814 なにに大して邪魔なんですか?どう邪魔されたのか教えて下さい。
大して× 対して○
>>814 どっちかていうとお前が粘着です。残念ですが・・・
初心者が釣られて困っています。 だれか口に綿を詰めて黙らせてあげて!!
>>814 でもそのおかげで、/* */ってコメントの書き方がよくない理由が実例を使って
説明できるね。788では最終的にファイルをclose()できないときは
ほっておくという意図を伝えたくて/* */と書いたはずなのに、797はそれを読み取れずに
またエラー処理してprintStackTraceするコードに/* */があった部分を書き換えてる。
#まあもしかしたら悪意があって、わざわざ冗長なものにしているのかもしれんけど。
822 :
デフォルトの名無しさん :02/07/30 23:15
粘着な上に口調を変えて自演かよ おめでてーな
とりあえず、Javaの質問や相談以外は放置願います。
825 :
デフォルトの名無しさん :02/07/30 23:21
で、どのアフォが言ったコードが正解なんですか?
>>807 >out.write() で例外が発生して、その影響で out.close() からも例外が
>発生した場合、
てのは具体的にどんなときだ?
out.write()で例外Aが発生して、out.close()でも例外Bが発生するような状況なら
例外Aも例外Bも発生した原因は大概同じではないか?
同じならout.close()で発生した例外Bが報告されれば十分ということになる。
JDBCでも同じ。
あぁすまん。797=826だ。
>>826 あるんだよ、データベースで。「クローズできません」「トランザクションエラー」の
エラーコードで済まされているのが。もともとの例外なら「DB のヒープがいっぱい」
「トランザクションログがいっぱい」などのエラーコードが入ってるんだけど。
ファイルシステムの障害は運良くぶち当たったことが無いので何とも。でも inode が
おかしくなったりしたらこういう状況で出るかも。
830 :
デフォルトの名無しさん :02/07/30 23:29
僕は788の方が好きかな。 理由はout.close()が例外を出し得るって事がコードから伝わってくるから。 それにwriteに失敗した時のエラー処理とcloseに失敗した時の処理は 分けて考えなければ成らないかも知れないし。
粘着が恥かくほど恥ずかしいことはないよな~。いとあはれ。
>>829 の続き
普通システムってのは多重障害は想定しない、つまりある障害が原因で発生した
別の障害までは追求しないという考えがある (データ壊れたとかは別だが)。
で、最初に発生した障害 (それこそトランザクションログがいっぱいになった
とか) が原因で close() に失敗した場合、close() の例外じゃなくて最初の
例外を通知すべき、とあれこれ考えて最終的に
>>788 になったわけ (このため
通知方法が無ければ close() の失敗は切り捨てるようになった)。最初は俺も
汚いコードだと思ったんだがな、もう慣れた。
ってか
>>797 って Web 基○だか WA○s だか作ってない? どこかで見た
記憶があるぞ、そのコード。
前スレでも、 try が2段重なる程度は仕方がない ような話あったね。
>>829 >あるんだよ、データベースで。「クローズできません」「トランザクションエラー」の
>エラーコードで済まされているのが。もともとの例外なら「DB のヒープがいっぱい」
>「トランザクションログがいっぱい」などのエラーコードが入ってるんだけど。
つまり、2つの例外が発生した原因は同じものだが現実としてJDBCドライバが
正確な報告をしないから別に処理しなければならない、ということか。
>>830 >理由はout.close()が例外を出し得るって事がコードから伝わってくるから。
>それにwriteに失敗した時のエラー処理とcloseに失敗した時の処理は
>分けて考えなければ成らないかも知れないし。
797でも十分伝わってくると思うが。というか、例外発生の原因が同じなら
writeとcloseの失敗をStackTrace以外で区別する意味はないはず。
>>809 OSはWINDOWS98です。クラスがあるレジストリで間違いなく Java Sample1 と入力しています。
大文字小文字の区別も何度も確認しました。なんでうまく行かないんだろう…。
Autoexec.batに@SET CLASSPATH=C:\PROGRA~1\PHOTOD~1.0\ADOBEC~1 とかあるんですが
こういうのが影響してるってことは無いですよねー…。
>>837 >>833 を読んでわからなかったら、コマンドラインから
dir
と
set
を実行してくれる?
>>837 それ。832のリンク先を読んでくれているのならわかりますが、
環境変数CLASSPATHを設定していると、ユーザクラスパスのデフォルト値
であるカレントディレクトリをオーバーライドします。
まちがえた。「832のリンク先」じゃなくて「833のリンク先」ね。
>>837 java -classpath . Sample1
とやってみてください。
>>834 >普通システムってのは多重障害は想定しない、つまりある障害が原因で発生した
>別の障害までは追求しないという考えがある (データ壊れたとかは別だが)。
なるほど。堅固性が要求される場合には現実に合わせて別に処理する、と。
しかしまだ引っかかるな。JDBCドライバの実装に足を引っ張られている気がする。
プログラマは
>>769 >>812 のような冗長なコードを書かなければならんのか。
そこまでシビアな状況でない時はやっぱり797のコードを書くだろう。
>ってか
>>797 って Web 基○だか WA○s だか作ってない? どこかで見た
いや。別人だ。
>>831 833読んでみましたがまだ理解するには難しいです…。setを実行してみたところ
C:\Java1\chap2>set
TMP=c:\windows\TEMP
TEMP=C:\windows\TEMP
PROMPT=$p$g
winbootdir=C:\WINDOWS
COMSPEC=C:\WINDOWS\COMMAND.COM
CLASSPATH=C:\PROGRA~1\PHOTOD~1.0\ADOBEC~1
PATH=C:\JDK1.3\BIN;C:\WINDOWS;C:\WINDOWS;C:\WINDOWS\COMMAND;C:\PROGRA~1\NETWOR~1
\MCAFEE~1;C:\PROGRA~1\GRISOFT\AVG6
windir=C:\WINDOWS
BLASTER=A220 I5 D1 T4 P330
と表示されました。
他のプログラムで設定されている環境変数CLASSPATH?が影響しているということでしょうか。
>>843 そうですね。それをはずせばいい。
たぶん、
java -classpath . Sample1
でもいいと思いますけど。 Sample1 の前のどっとを忘れずにね
にしても、adobeが設定するその環境変数CLASSPATHって過去スレでも 出てきましたね。個人的には環境変数CLASSPATHを設定するのって反対 なんだけど。あと、lib/extをユーザアプリが使うのとか。
>>844 ! ホントですね。java -classpath . Sample1で実行されました。
「それをはずす」というのはただ消す、というわけにはいかないのでしょうね。
当面は -classpath を足した方法で進めていこうと思います。
みなさん本当にありがとうございました! 最初から挫折しないですみました。
JavaでCのprintfのように書式を指定して出力するにはどうすればよいのですか? 例えばCのprintf("%02d", i);と同等なコードはJavaではどう書きますか?
Javaでなくて悪いが、C#には using という構文があって
BufferedWriter out = new BufferedWriter(new FileWriter("hoge.txt"));
try {
out.write("hoge");
} finally {
out.close();
}
を
using (BufferedWriter out = new BufferedWriter(new FileWriter("hoge.txt"))) {
out.write("hoge");
}
のように書ける。
これから見て取れるのは、途中で例外を投げる場合は、「closeでは失敗しない」か
「closeで発生させる例外でも同じ情報を提供すべき」という思想だと思ってるが、
ドライバによってはそういう考えが欠けているということなんだろう。
※C#は触ったことないから少し違うかも。
>>846 autoexec.batに
set CLASSPATH=%CLASSPATH%;.
で、再起動、でもいけると思うよ。738でも書いたけど
>>849 DecimalFormat df = new DecimalFormat("00");
int i = 5;
System.out.println(df.format(i));
かな。細かい書式はAPIドキュメントを見れ
853 :
デフォルトの名無しさん :02/07/31 01:48
初心質問すみません。 mainでmoveメソッドを呼び出して、そこまでは成功してます。 それでmoveメソッド内でできた変数xをメイン内で表示させたくて 以下のようにしたんですがSystem.out.println(x);のとこでエラーがでてしまいます。 エラー内容はシンボルを解釈処理できませんとのことです。 書き方がどのようにおかしいのかおしえてもらえないでしょうか public static void main(String[] args){ sample w=new sample(); w.move(args); System.out.println(x); }
>>855 落ち着けw 何エラーとかそういう問題じゃない.
mainメソッドの中にxの宣言が無いだけじゃないかw
>>853 質問の意図がよく掴めないんだが, moveメソッドの中の
変数xを参照しようとしているのかな?
public class sample {
public void move(String[] args) {
// ここでxを定義している?
}
}
public class hoge {
public static void main(String[] args) {
sample w = new sample(args);
w.move(args);
System.out.println(x);
}
}
もしこんな感じならxは表示できないよ. 対処法はケースバイケースだけど
xをsampleクラスのフィールドにするといいんじゃないだろうか. 例えば
こんな感じ.
public class sample {
// TYPEはdoubleなりintなりクラスなりお好きなものを.
public TYPE x;
public void move(String[] args) {
// ここで x をゴニョゴニョする.
}
}
public class hoge {
public static void main(String[] args) {
sample w = new sample();
w.move(args);
System.out.println(w.x);
}
}
これならうまくいくと思う. 詳しく, あるいは正しく理解したいのなら,
変数のスコープについて本やサイトで勉強するといいと思う. 頑張ってね.
>>856 お前、この質問にちゃんと答えて偉いな。俺は「moveメソッド内で
できた変数x」の表現から x を return で返してるかと思ったが。
>>857 褒めていただいて光栄です :) <って喜んでいいのだろうか?
確かにreturnしてる場合もあるんだよね. どっちなんだろう….
859 :
デフォルトの名無しさん :02/07/31 04:16
サブクラスがスーパークラスの引数有りのコンストラクタを呼び出すとき、 super ( ... ); と書きますが、このコンストラクタが例外を持っているので、 try { super ( ... ); } catch ( ... ) { ... } としたいのですが、super(コンストラクタ)の呼び出しは、 先頭文でなければいけませんと言われてしまいます。 こういう場合、スーパークラスのコンストラクタの例外は、 とれないのでしょうか。なにかいい方法はないんでしょうか。
>>859 サブクラスのコンストラクタも例外投げる宣言するのでは。どうしても
というなら、(ぜんぜんきれいじゃないけど) サブクラスかつラッパーな
クラスにするとか。
public class A{
public A() throws Exception{…}
public int hoge(){…}
}
public class B extends A{
private A a = null;
public B(){
try{
a = new A();
} catch(Exception ex){…}
}
public int hoge(){return a.hoge();}
}
public class Derived extends Base { public static void main(String[] args) throws Exception { new Derived(); } public Derived() throws Exception { super(); } } class Base { public Base() throws Exception { throw new Exception("例外発生!"); } } ではどう? コンストラクタで例外が発生したということは、そのインスタンスのすべての メンバは不定値になるから、派生側でも同じ例外を投げるのが正しい。 catchしたところで意味のある処理をすることは不可能。
かぶった。 >サブクラスかつラッパーなクラスにするとか。 意味ないような・・・
そういう場合は素直にthrowした方がいいと思う. /** 実現したいであろうコンストラクタ */ public HogeClass(FugaClass arg) { try { super(arg); } catch (XXXException e) { // 例外処理 } } /** こんな風に書いたら? */ public HogeClass(FugaClass arg) throws XXXException { super(arg); } 子クラス(この例だとHogeClassね)を使用する側でXXXExceptionに ついての例外処理を行わないといけないけど, こっちの方がいいと思う. どうしてもっていうんなら, 親クラスにしたいクラスのインスタンスを 子クラスに持たせて, 子クラスにラッパーを実装するって手があるが あんましお勧めできない.
かぶった…すまそ.
865 :
デフォルトの名無しさん :02/07/31 04:42
>>860 >>861 返答ありがとうございます。
>>860 確かにそれなら例外とれますねー。
ただ、あんまりやりたくない方法ですね。
>>861 それだと、Derived ()は使う人に、
例外を通達できませんよねー。
だめだ、よく考えたら暗黙的にスーパークラスのコンストラクタが呼び
出されるので例外宣言しなきゃコンパイルできないんだ。布団の中に
入って気がついた。
>>865 例外の通達が目的なら素直に throw してください。
>>862 意味あるんでない?
型が重要な場合とか.
868 :
デフォルトの名無しさん :02/07/31 04:47
>>863 いや、スーパークラスの引数有りのコンストラクタは、
例外が発生した場合、例外を使い手にスローしますが、
サブクラスでも同じように、使い手に例外をスローしたいのです。
もしかして、
public HogeClass(FugaClass arg) throws XXXException {
super(arg);
}
だけで、例外を使い手にスローしてくれますか?
>>866 ん?素直にthrowしてるじゃん. 私,何か勘違いしてる?
>それだと、Derived ()は使う人に、 >例外を通達できませんよねー。 ん?普通にできるけど。 例にExceptionを使ったのがまずかったか? 要するに基底クラスと同じ例外を投げる。Stream/Writer系のクラスは全部こうなってるはず。
871 :
デフォルトの名無しさん :02/07/31 04:49
>public HogeClass(FugaClass arg) throws XXXException { > super(arg); >} >だけで、例外を使い手にスローしてくれますか? 861のコードはそのままコンパイル・実行できるから確かめてみるといい。 super(arg); で例外が発生→catchされなかったら呼び出し元に例外が投げられる。 ごく普通の動作。
>>862 あまりにも糞な作りのクラス (他チーム製) をチーム全員に使わせる
ときやる方法だよ。API の仕様上は A でなければいけない、しかし
A クラスを素で使わせるとトラブル続出な予感、な時にチーム先発実装
部隊が後続部隊のためにやる方法。
>>860 さん, いない?
なんか自分が大きな勘違いをしてるような気がして不安なんだけど…(;_;).
ひそかに 860, 861, Rina ◆tI333vNE と質問者の 4 人で盛り上がってる罠
こんな時間になにやってんだか
正直, 明日は休日だから徹夜の勢いな罠.
>>874 「素直に throw~」は質問者に言ったんだが…
>>860 ならいい. 何かものすごい勘違いしたままJavaをやり続けてたのかと思ったよ(´Д`)ノ
俺はもう寝る。
オヤスミ(´ー`)y-~~
884 :
デフォルトの名無しさん :02/07/31 10:58
激厨房な質問で誠に申し訳ないが…… 「System.out.printlnの出力結果って、どこに表示されるの?」 ……いやぁ、デバッグ用にラベルを表示させたいだけなんですけどね(^^; それとも、Exceptionが出るとSystem.out.printへの出力は消えちまうのだろうか? もちろん環境により千差万別なのは判っているので、「まずはこの設定を見れ!」 という所から教えていただけると非常に助かります。何卒お助けを(拝)
>>884 java.lang.SystemのAPIドキュメント
やろうとしてることは多分
java.lang.System#setOut(PrintStream out)
886 :
デフォルトの名無しさん :02/07/31 12:36
Javaやりずれー!! Cのがよっぽどマシ! だれかJavaの本質をレビューしてくれ! Cのがいいだろ?!
887 :
デフォルトの名無しさん :02/07/31 12:49
double[][]array = new double [2][3] に入れた値を 11 12 13 21 22 23 という風に行列表示したいです。 コマンドプロンプトでは縦に一列に並んでしまいます。 どうすればいいでしょうか?
>>887 お前は多分
System.out.println()したんだろ?そうじゃなくて
System.out.print(array[i][j])しれ。
891 :
デフォルトの名無しさん :02/07/31 13:04
>>888 ありがとうございます。
class Hello {
public static void main(String args[])
{
double [][] array = new double [2][3];
for(int i=0;i<2;i++){
for(int j=0; j<3;j++){
array[i][j]=Math.random();
}
}
System.out.println(array[i][j]);
}
}
を試してみました。
System.out.println(array[i][j]);
iやjを解釈処理できませんとでました。どうしたらいいのでしょうか?
892 :
デフォルトの名無しさん :02/07/31 13:12
よくかんがえたら、出力のとこにもループがいりますね。 と思って、ループ書いてみたのですが、うまくいきません。 これはどこがおかしいのでしょうか? class Hello { public static void main(String args[]) { double [][] array = new double [2][3]; for(int i=0;i<2;i++){ for(int j=0; j<3;j++){ array[i][j]=Math.random(); } } for(int i=0; i<2;i++){ for(int j=0; j<3; j++){ System.out.println(array); } } } }
>>892 System.out.println(array);
894 :
デフォルトの名無しさん :02/07/31 13:15
また間違えていました。さいごのところに[i][j]いれました。 でもやっぱり縦一列にでます。どうすればいいのでしょうか? class Hello { public static void main(String args[]) { double [][] array = new double [2][3]; for(int i=0;i<2;i++){ for(int j=0; j<3;j++){ array[i][j]=Math.random(); } } for(int i=0; i<2;i++){ for(int j=0; j<3; j++){ System.out.println(array[i][j]); } } } }
895 :
デフォルトの名無しさん :02/07/31 13:16
>>893 ありがとうございます。もうひとつヒントください。
println
897 :
デフォルトの名無しさん :02/07/31 13:20
>>896 ふむ、なるほど、ありがとうございます。lnが余分でした。
やってみますた、今度は横一列に並びました。
縦2行横3列が希望なのですが、もう少しだけお願いします。
System.out.print(array[i][j]); } System.out.println(); } } }
for(i){ for(j){ print(array[i][j]); } println(""); }
900 :
デフォルトの名無しさん :02/07/31 13:36
いろいろやってみましたが、ちょっと面倒なようです。 見やすくするのはあきらめました。printlnprintの違い覚えました。どうもありがとう。 これを一回実行するごとに2×3の行列が得られるので、その結果を 一回ずつ、テキストファイルにしたいのですが、どうすればいいでしょうか? class Hello { public static void main(String args[]) { double [][] array = new double [2][3]; for(int i=0;i<2;i++){ for(int j=0; j<3;j++){ array[i][j]=Math.random(); } } for(int i=0; i<2;i++){ for(int j=0; j<3; j++){ System.out.println(array[i][j]); } } } }
901 :
デフォルトの名無しさん :02/07/31 13:38
902 :
デフォルトの名無しさん :02/07/31 13:43
うまく2行3列に表示できるようになりました!! こうやって改行すればいいんですね。勉強になりますた。 class Hello { public static void main(String args[]) { double [][] array = new double [2][3]; for(int i=0;i<2;i++){ for(int j=0; j<3;j++){ array[i][j]=Math.random(); } } for(int i=0; i<2;i++){ for(int j=0; j<3; j++){ System.out.print(array[i][j]); } System.out.println(); } } }
>>902 2とか3とか決めうちせずにarray.lengthを使うといい.
for(int i = 0 ; i < array.length ; i++) {
for(int j = 0 ; j < array[i].length ; j++) {
System.out.print(array[i][j]);
}
System.out.println();
}
あとでサイズが変わってもいいようにね.
904 :
デフォルトの名無しさん :02/07/31 13:50
>>903 どうもありがとうございます。すぐそうしたいと思います。
自分でもSystem.out.print(array[i][j]+",");
をいれて、さらに見やすくしました。コマンドプロンプト上でしか
結果を見れないのですが、やはりこの結果を一回ずつ
>>902 でした
質問のようにテキストファイルにしていくというのは難しいのでしょうか?
>>856 ありがとうございました
おかげでうまくいきました
分かりにくい質問に丁寧に答えてくれてありがとうございました
906 :
デフォルトの名無しさん :02/07/31 13:58
調子に乗って書き換えていたら、2行2列になってしまいました・・・。 なぜでしょうか?どなたか教えてください。 class Hello { public static void main(String args[]) { int s=2; int t=3; double [][] array = new double [s][t]; for(int i=0;i<array.length;i++){ for(int j=0; j<array.length;j++){ array[i][j]=Math.random(); } } for(int i=0; i<array.length;i++){ for(int j=0; j<array.length; j++){ System.out.print(array[i][j]+","); } System.out.println(); } } }
for(int j=0; j<array.length;j++){
908 :
デフォルトの名無しさん :02/07/31 14:14
>>907 ふみゅ、そうでし・・。array[i].lengthでした。なおりました。
ありがとうございました。
910 :
デフォルトの名無しさん :02/07/31 14:32
>>909 ぐほっこれは難しいですね。ヘッダーにこーゆークラスを読み込んで
つかうのでしか?あまりプログラミングをわかってないので、
できそうにないです。まずDOSプロンプトから一回ごとに自動的に
カットアンドペーストする方法を探してみます。
リダイレクト使えよ。 C:\> java Hello > hoge.txt
数字固定うざ
>DOSプロンプトから一回ごとに自動的に >カットアンドペーストする方法 DOSプロンプトを作り直す勇者か?
918 :
デフォルトの名無しさん :02/07/31 14:59
>>911 カットしなくてよかでした。
>>912 で教えてもらった方法で
乱数が行列でならんでいるテキストファイルを作成できました。
>>912 できました。こういう書き方あるんですね。
>>914 >>915 やっぱりできないですか?さっきの質問さらされるほど変ですか?
あのすみませんけど、
>>912 さんに教えてもらった方法
C:\> java Hello > hoge.txt
これを毎回するのはちょっとしんどいので1000回いっぺんにやる方法を
教えてもらえませんか?1000通りくらい乱数の行列あると便利なんです。
お願いします。
コピペすればあっという間です。 1行をコピペすると2行 2行をコピペすると4行 4行をコピペすると8行 ... 512行をコピペすると1024行
921 :
デフォルトの名無しさん :02/07/31 15:04
>>916 教えてもらった義理があるので、あえて言わせてもらいますが、
僕はファイルを作る方法を質問しました。だから、ファイルを
作れて満足しています!
922 :
デフォルトの名無しさん :02/07/31 15:04
フ ァ イ ル ま ん せ ー ー ー ! ! !
925 :
デフォルトの名無しさん :02/07/31 15:10
あの、すいませんが、C:\> java Hello > hoge.txt
を1000回繰り返す方法は茶化しているわけではなく本気で
質問しています。煽ったみたいですいません。
>>919 書き直すポイント教えてください。お願いします。
>>925 mainの中身をforで囲めばいいじゃん。
dosってfor文ないの? bashなら for i in $(seq 1 1000); do java Hello >> hoge.txt; done でできるんだけど.
>>928 自己レス. javaを1000回実行なんて現実的じゃないね. すまそ.
書き終わってから気がついたよ.
930 :
デフォルトの名無しさん :02/07/31 15:16
DOSのここですいませんでした。板違いなのでほかに行きます。
ありがとうございました。
>>927 ちょっと試してみます。
>>928 cygwin入れているので、試してみます。
>>930 はjavaを1000回実行してるのでしょうか…早とちりとはいえ,
悪いことしちゃったな.
冗長。 ここは保育園ですか?
936 :
デフォルトの名無しさん :02/07/31 15:29
bash: Hello: command not found
でした。でもよく考えたら自分のにはLinux用のJAVAはいっていません・・・。
やはりDOS窓に関する質問のようです。ありがとうございます。
>>927 これだと、乱数の発生数が1000になってしまう
ことに気づきました、ここでやっと、6000個発生させて6個ずつ組
になるようにtxtを加工しても得られる結果は一緒だと気づきました。
こっちのほうが簡単そうです。ありがとうございました。
>>935 トリップ付いてないから偽物ね. 誤解を招くといけないのでいちおう.
>>931 C:\>javac Hello.java
C:\>java Hello
でいつも実行しています。
>for i in $(seq 1 1000); do java Hello >> hoge.txt; done
幸運にも?javaを1000回実行しなくてすんだのですが、
Helloを実行するときにjavaと書かなくてもいいのでしょうか?
#ずっとageで書いていてすいません。忘れていました。
すません。sage書くとこ間違えました。アホですね<自分
>>986 doの後にjavaがあるよ.
>bash: Hello: command not found.
って出たのは, このjavaが抜けてたんでない?
941 :
デフォルトの名無しさん :02/07/31 15:40
お節介固定はじきにウザくなること必至。
>>940 そうでし・・JAVA抜けていました。CYGWINはやはり使いこなせないので
あきらめました。
>>943 >>942 はいろいろ教えてもらった僕ではありませんので、
たぶんさっきからハエみたいに僕をあおっていたヤシだと
思います。質問厨ですまそ>
>>942 いろいろ教えてくれてありがとうございました。RINAさん。
今日はRINAさんで抜かせてください。
ネカマだろ
のんけだろ?
950 :
デフォルトの名無しさん :02/07/31 16:24
うpキボンヌ
>>949 ヘルメットで顔がはっきりわからないのだが?
sage進行しないとupしないよ。
半角?
Frame上に配置されているボタンやテキストエリアを重なるような形で Canvasオブジェクトを配置するようなことをするにはどうしたら良いでしょうか? 最初、ボタンやテキストエリア、Canvasオブジェクトをあらかじめ配置しておきCanvasオブジェクトだけVisibleをFalseにして 必要になったらTrueにするという方法を考えたのですが FrameのレイアウトをGridBagLayoutにしているためCanvasオブジェクトを重ねておく事が出来ませんでした。 どなたか宜しくお願いします。
んで、結局、javaはじめるには、何をそろえれば・・・。 何からはじめれば・・・。 結局、自分がいいと思ったモノをチョイスするしかないのか。 う~。
ついでにもう一つ質問です 今度は配列を渡してみたいのですが class hoge2{ public double x[]; public void sample(String args[]) { double x[]=new double [10]; x[3]=5; } } public class hoge { public static void main(String[] args) { sample m=new sample(); m.cal(args); System.out.println( m.x[3] ); } } これだとコンパイルは通るのですが実行でエラーがでます。 この原因は何なのでしょうか?またちゃんと配列を表示させるにはどうすればいいのでしょうか? よろしくお願いします
>>957 初心者の本を読め。
CDなんてついてなくていいけど、作りながら覚えていけるヤツ。
何冊もね
>>958 > これだとコンパイルは通るのですが実行でエラーがでます。
正確な動作ですね。よかったね。
> この原因は何なのでしょうか?
エラーを出すように作られているからです。
> またちゃんと配列を表示させるにはどうすればいいのでしょうか?
エラーを出さないように作ればいいと思います。
>960 わかんないなら(略 …とは言ってみたものの、俺にもわからん。 > これだとコンパイルは通るのですが実行でエラーがでます。 なんでコンパイル通るんだろう… 意図しない sample クラスがどっかにあるんだろうな…。
>>779 たん。
あなたのきょうのラッキーアイテムはduke。
dukeをあたまからかぶって
語尾に「じゃば」をつけると萌え度120%アップの予感。
街を逝くプログラマーの視線をくぎづけ。
よかったら今後の参考にどうぞ。
http://www.watch.impress.co.jp/internet/www/article/2001/1128/tenji6s.jpg >>956 たん。
えーとCanvasの上にボタンやテキストエリアを配置したいの?
SwingならJPanelとかJComponentとかのサブクラスをつくって、
そのサブクラスにCanvasクラスと同じような機能を実装させて、
で、そのサブクラスのオブジェクト上にボタンやテキストエリアを配置。
AWTは、よくわかんないけど、
たぶんPanelクラスのサブククラスをつくって、
そのサブクラスにCanvasクラスのときと同じような機能を実装させて、
そのサブクラスのオブジェクト上にボタンや
テキストエリアを配置するといいんじゃないでしょうか。
んで最後に、そのサブクラスのオブジェクトをFrameにはめこむと。
意味不明な質問には、間違って無く且つ意味不明な回答をするのは、質問者の勉強にはなる。 とおもった・・・・。
よーし、パパ
>>958 に釣られてやるぞー
とりあえず、やってることが全然わからないので質問返し
1.
クラス hoge2 は、どのように使われますか?
2.
クラス sample は、どのように機能しますか?
3.
sample m=new sample();
この一行は何をしていますか?
それぞれ、50~100文字程度で簡潔に答えてちょ。
968 :
デフォルトの名無しさん :02/07/31 18:11
>>970 変数名や関数名には、おきまりがありますよ。絶対ではありませんが。
コテハンで書いてる人ならそのくらい知っていると思った。
>>973 がばまんたんに盾突くと呑み込まれますよ?
すみません書き間違えでした sumpleがすべてhoge2です
Javaを最近勉強し始めました。 今まではCをやってたんですが。 Javaってどういうときに便利なの?
>>978 それが分からないなら使わなきゃいいじゃん。
>977 「コンパイルが通った」と言っといて、あとから「書き間違いでした」か… まぁ、sample をすべて hoge2 にしても、コンパイルは通らないんだけどな。 もうちょっと正確に書けよ。 hoge2() なんてコンストラクタはないし、 cal(String[]) ってメソッドも無いやんけ。
記念パピコV(^o^)V
>>980 いろいろすみません
ちょっといろいろおかしいのでもう一回あとで書きなおした奴を
張らせてもらいます
ところで >958,982 は、こんな書き方を知っていますか? class Du { int x; public void setX(int x) { this.x=x; } }
大先生はオブジェクト指向の講義でも始めるつもりだろうか。
>>984 まぁまぁ
!初心者は無視して良いんじゃない?
>>980 > hoge2() なんてコンストラクタはないし、
なんでコンストラクタの話がでるの? 煽るつもりはないが、なぜか説明してくれない?あなた危ないから
988 :
デフォルトの名無しさん :02/07/31 22:05
>あなた危ないから ?? ついにチョン登場ですか?
>>988 なんでageるの? しかも意味不明だし
>987 ごめんなさいね。 public hoge2(String args[]) ってコンストラクタ宣言があるかと勘違いしたんですわ。 なので、>930 は間違いです。 hoge2() ってコンストラクタは、たぶんあります。たぶん。 >958 のソースは「ちょっといろいろおかしい(>982)」らしいので、 正確なところはわかりませんがね。
992 :
デフォルトの名無しさん :02/07/31 22:58
>979 それを知りたいから勉強してるんですよ・・・
993 :
デフォルトの名無しさん :02/07/31 23:11
senn
ム板じゃ千取りってやらんのか(恥
千 ヨ エロ 寸
996
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。