07/07/26 00:41:29
JAVAアプレットのプログラムを作ってるんですが
Mainのプログラムから描画の処理のところだけ切り出して
別のクラスにかきだしたいのですがいくらやってもうまくいきません
どうすればいいですか?
どなたか教えて下さい
939:デフォルトの名無しさん
07/07/26 00:45:52
エスパーが来るまでお待ちください。
940:デフォルトの名無しさん
07/07/26 00:49:37
>>938
どうすればいいかは、
あなたが考えれば一番うまくいくでしょう。
941:デフォルトの名無しさん
07/07/26 00:57:00
まあパッシブレンダリングだと混乱するのも分かるけどな。
942:デフォルトの名無しさん
07/07/26 01:23:16
javaのパッシブ/アクティブレンダリングはそういう使い方するもんか?
GUIにタイミング任せるか、プログラムで自分でやるかの話だろ?
アプレットはエントリポイントが違うってんなら分かるが。
>>938
せめてソースくらい上げましょうぜ旦那?
943:デフォルトの名無しさん
07/07/26 01:28:40
>>938
描画処理?
とりあえずソースだな。
944:デフォルトの名無しさん
07/07/26 01:35:17
プログラム内からrmiregistryを立ち上げたいのですが、
URLリンク(www.atmarkit.co.jp)
URLリンク(itpro.nikkeibp.co.jp)
を見て、sun.management.Agent内でその処理を行っているのはわかったのですが
このソースのどこで立ち上げてるかさぱり分かりません。
誰がわかる人がいたら解説お願いします。
945:デフォルトの名無しさん
07/07/26 10:21:31
Java って、内部クラスから外側のクラスの this ポインタを取得することってできないの?
class Outer {
void Hoge() {
Inner inner = new Inner();
inner.Foo();
}
class Inner {
void Foo() {
// ここで Outer の this がほしい。
}
}
}
コンストラクタで明示的に外側のクラスの this を渡すしかない?
946:デフォルトの名無しさん
07/07/26 10:35:56
>>945
Outer.this
947:デフォルトの名無しさん
07/07/26 14:24:44
class Inner はstatic finalのほうがよくね?
948:デフォルトの名無しさん
07/07/26 15:25:23
派生元のクラスでprivateで定義されているメンバ変数に
それを継承したクラスの方からアクセスするにはどうしたらよいですか?
949:デフォルトの名無しさん
07/07/26 15:41:37
>>948
java.lang.reflect.Field
950:デフォルトの名無しさん
07/07/26 15:42:49
>>948
private で宣言されたメンバは継承されない
getter 用意してアクセスしろ
951:デフォルトの名無しさん
07/07/26 16:02:25
>>949
ありがとうございます
1.4でも使えますか?
952:デフォルトの名無しさん
07/07/26 16:08:39
継承はされるだろ
953:デフォルトの名無しさん
07/07/26 16:22:11
>>952
URLリンク(java.sun.com)
> Members of a class that are declared private are not inherited by subclasses of that class.
> Only members of a class that are declared protected or public are inherited by subclasses
> declared in a package other than the one in which the class is declared.
継承されてたら言語仕様に反する。
954:デフォルトの名無しさん
07/07/26 16:33:06
>>951
1.4でも使えるけど、セキュリティマネージャが許可しない場合は使えない。
例えばアプレットとかだと、Field#setAccessible() が許可されないはず。
955:デフォルトの名無しさん
07/07/26 18:01:23
JAVAさんってC#くんが嫌いなんですか?
956:デフォルトの名無しさん
07/07/26 18:12:42
普通設計段階でprotectedにするだろ。そういうの。
>>955
ゲイツ君がpure javaさんを嫌いで古臭いjavaさんの実行モデルを元に「・・・頼むよ君」と呼んできたのがC#くん。
957:デフォルトの名無しさん
07/07/26 18:33:30
>>938なんですが
もう一度質問します。アプレットのメインクラスの中にある
描画処理・・・・たとえば↓
public void paint(Graphics g){
//描画処理
}
を別のクラスに作って描画処理を丸々引き渡したいのですが
別のクラスから描画処理をやろうとするとウィンドウに描画処理が反映されません。
メインクラスからだと反映されるのですが・・・。
描画処理をほかのクラスに引き渡すにはどうしたらいいですか?
たびたび質問してしまって申し訳ありません。
958:デフォルトの名無しさん
07/07/26 18:49:04
paintの引数のGraphics gを使えば、同じクラスだろうが別のクラスだろうが関係無くちゃんと描画されるハズ。
使ってるつもりなのに描画されないなら、多分つもりなだけで実際には使われて無いんだろう。
問題のコードをどっかにうpした方が回答がつきやすいと思うよ。
959:デフォルトの名無しさん
07/07/26 19:08:29
INT型の変数が2147483647を超えるとマイナスになってしまいますが、これを防ぐにはどうしたらいいものでしょうか
960:デフォルトの名無しさん
07/07/26 19:11:50
long
961:デフォルトの名無しさん
07/07/26 19:16:38
>>957
ソース
962:デフォルトの名無しさん
07/07/26 19:31:25
>>960
わかりました。long使ってみます
ありがとうございました
963:デフォルトの名無しさん
07/07/26 19:41:33
すみません・・・
long b = Integer.parseInt(line);
このようにlineを取り込むとlongでも小数点以下がなくなってしまいます
longで取り込むにはどうしたらいいのでしょうか
964:デフォルトの名無しさん
07/07/26 19:48:59
longもintも整数を保持する型
doubleは小数を保持する型
ってかlongに変えたんならInteger.parseInt()使うなよ
long用にはLong.parseLong()がある
doubleを使う場合はDouble.parseDouble()とかもある
これらを実行してどうなるか試してごらん
965:デフォルトの名無しさん
07/07/26 20:05:07
なるほど
いろいろ種類があるんですね
おかげさまで何とか動くようになりました!ありがとうございました
966:デフォルトの名無しさん
07/07/26 20:10:25
>>958
できました
ちょっとしたミスでした
どもです^^;
967:デフォルトの名無しさん
07/07/26 20:42:31
>>947
親クラスの非staticなメンバに直接アクセスするような
インナークラスだとstaticクラスじゃ無理。
たとえば、Iterableを実装するようなクラスがそれにあたる。
>>945のケースだとOuterのthisを要求しているからstaticじゃ面倒だね。
そうじゃない場合、ただの別クラスがたまたまインナークラスになっている場合、
staticにしないとnewするのにいちいち、
new Outer().new Inner();
とかいうわからないコードを書かないといけないハメになる。
まあ、内部に非staticクラスしのばせるのもいいけど、
メソッド内にクラス定義書くのも乙だと思うけどな。かなり嫌われるけど。
968:デフォルトの名無しさん
07/07/26 21:00:58
JUnitをさわりだしたんだけど、これって基本的にpublicな関数・変数のみを
対象にするって感じでいい?
本当はprivateな関数のテストもしたいし、privateな変数にアクセスして
チェックもしたいんだけど。
それともprivateを使わないで全部protectedにしてるとか?
969:デフォルトの名無しさん
07/07/26 21:16:31
>>968
JUnitは単なるツール
どんなテストを行うかは別の問題
970:デフォルトの名無しさん
07/07/26 21:17:16
>>968
(1)リスク駆動で。気になったところからチェックする。
単純な getter や setter などトリビアルなものに対するテストを考えるくらいなら、
もっとやるべきことがあるはずだ、たぶん
(2)protected にするくらいなら、パッケージプライベートで
(3)どうせなら、テストファーストがお勧め
テストを書こうとするだけで、モジュールの独立性や使い勝手などが
設計にフィードバックされる
971:デフォルトの名無しさん
07/07/26 21:59:18
>>956
わたしもprotectedにするべきだと思うんですが
提供されているソースをみるとそうなってなかったんですね
972:デフォルトの名無しさん
07/07/26 23:51:39
サーブレットについて質問。
コンテナに登録されているロール名の一覧を取得する
方法はない?
あるロール名が登録されているかどうかを判別する
だけでもいい。
コンテナはGlassfish v2 Beta 3だが、JEE汎用の方法が
嬉しい。
973:デフォルトの名無しさん
07/07/26 23:53:26
publicなり、protectedのテストがきちんとかかれていれば、privateメソッドもテストされるんでない?
jcoverageとか使ってみれば?
974:デフォルトの名無しさん
07/07/27 01:33:53
for文が上手く動いてくれないです
while(true){}でやるとちゃんと動くですが、どんな条件を入れても動いてくれません
他にもfor文とかの繰り返しはたくさんあるのですが、これだけ動いてくれません
■java 2 SDK SE v1.4.2_14
■WinXP Home
for文の中にprintlnを書いても全く表示されませんでした。
何が原因なのでしょうか?
URLリンク(up.spawn.jp)
975:デフォルトの名無しさん
07/07/27 01:43:11
(´・ω・`)自己解決しました
976:デフォルトの名無しさん
07/07/27 06:26:15
Java(Struts)で、10分に一回、あるテーブルのデータをチェックするという
プログラムを作るにはどうすればよいのでしょうか?
ずっと、そのチェックをはしらせときたいのです。
977:968
07/07/27 07:48:59
レスどーも
>>969
一般的にどんな感じでテストしてるか知りたい。
>>970
JUnitは単体テストなので実装依存(ソースにべったり)のテストコードを
作るのか、あるいは外部から見える範囲内(内部での細かい動作まではテストしない)
なのかを知りたいところ。
リスク駆動と言うのであれば、やはりprivateな変数・オブジェクトレベルでも
チェックしたいかなーと思ったんだけど、普通はそこまではしないもんなのかな。
クラスや関数はパッケージローカルでいいとは思うけど。
>>973
とりあえずjcoverage見てみたけどよくわからんw
IDEと連動しにくいツールは手を出しにくいかも。
978:968
07/07/27 07:51:55
ちなみに今はnetbeans使用
979:968
07/07/27 08:00:03
なんかこんなのあるな
URLリンク(journal.mycom.co.jp)
980:デフォルトの名無しさん
07/07/27 08:47:09
次スレ立てました。
【初心者】Java質問・相談スレッド104【大歓迎】
スレリンク(tech板)
981:デフォルトの名無しさん
07/07/27 09:55:44
>>976
cron
982:デフォルトの名無しさん
07/07/27 10:33:24
Eclipseならプラグインがあったんだが。
>>979
ちょっと試してみたが、なかなか面白そうなツール。
要するに、テスト対象のコードをいじって、テストがそれを検出できるかを調べるツール。
カバレッジとはまた別の視点で単体テスト品質を計測するようだ。
983:デフォルトの名無しさん
07/07/27 10:51:34
文字コード変換について質問です。
開発環境の文字コードはEUCなのですが、
String sample= "さんぷる";
String sjSample = new String( sample.getBytes( "SJIS" ), "SJIS" );
上の処理でSJISに変換されるんでしょうか?
変換された事を確認することってできないんでしょうか?
984:デフォルトの名無しさん
07/07/27 10:55:46
>>983
> 上の処理でSJISに変換されるんでしょうか?
一瞬だけ。
> 変換された事を確認することってできないんでしょうか?
sample.getBytes("SJIS") の戻り値を確認。
985:デフォルトの名無しさん
07/07/27 11:36:56
>>984
>一瞬だけ。
プログラム実行中は変換されたままですよね?
>sample.getBytes("SJIS") の戻り値を確認。
戻り値を確認してみたら [B@ed0338 でした。
変換されたのはなんとなくわかりますけど、こういうもんですか?
986:デフォルトの名無しさん
07/07/27 11:43:53
>>985
> プログラム実行中は変換されたままですよね?
no。すぐにGC可能状態になる。
> 戻り値を確認してみたら [B@ed0338 でした。
toString()が確認に使えるか、もチェックしてから使え。
sample.getBytes("SJIS") で戻ってきた配列の中身を確認しろ。
987:デフォルトの名無しさん
07/07/27 11:44:28
>>983,985
ソースコードを EUC で書いても、String は Unicode です
getBytes("SJIS") で SJIS に変換されるけど、String に戻したらまた Unicode です
988:デフォルトの名無しさん
07/07/27 12:33:10
>>986
配列の中身まではみていませんでした。
確認したら数値が入っていたので調べてみます。
>987
内部コードってやつですか・・・SJISで扱えるのはgetByte("SJIS")の戻り値だけってことですね。
すいません、質問を変えさせてください。
URLConnectionを使って相手先に複数のパラメータを送ろうとしているのですが、
日本語を扱うパラメータはSJISに変換することになっています。
この変換が上手くいかず、今はEUCで送ってしまっている状態です。
日本語パラメータをSJISで送るにはどうすればいいんでしょうか?
SJISに変換した文字列を送ろうと思って最初の質問をしていました。
989:デフォルトの名無しさん
07/07/27 12:49:59
>>988
java.net.URLEncoder.encode("文字列", "SJIS");
990:デフォルトの名無しさん
07/07/27 15:02:02
無料ホームページスペースを使って、JAVAアプリケットをおいてJAVAアプリケットから誰でもそのホーム
ページのFTPに入ってパスワードを入れて
ファイルを書き換えることはしてもいいんですか?
991:デフォルトの名無しさん
07/07/27 16:12:31
規約嫁としか
992:968
07/07/27 16:35:58
JAVAアプリケット関係ない
つーかJAVAアプリケットて何?w
993:968
07/07/27 16:37:02
あ、名前消すの忘れてたw
994:デフォルトの名無しさん
07/07/27 17:45:49
>>992
インストロールみたいなものじゃないの?
995:デフォルトの名無しさん
07/07/27 17:59:24
>SJISに変換することになっています。
分かりづらい地味な嫌がらせだな。せめてUTF-8にしてやればいいのにw
>>990
鯖の規則読んで出来るか確認してjavaアプレットから
どうやってFTP叩くかまで出来てからのご来場をお待ちしております。
じゃなきゃエスパー待ちになるぞ。
996:デフォルトの名無しさん
07/07/27 19:37:43
synchronized 指定されたメソッド呼び出しをしたら、
オブジェクトにたいしてロックが入るの?
それともメソッドだけ??
class Hoge {
public synchronized int hoge(){...}
...
}
Hoge hoge.hoge();
↑ こうやったときに 別のスレッドからはhoge()だけ呼び出しできないのか、
それともhogeに対するアクセスは全部ロック解除待ちになるの?
997:デフォルトの名無しさん
07/07/27 20:40:28
>>996
hoge
998:デフォルトの名無しさん
07/07/27 20:40:39
synchronizedメソッドはsynchronized(this){}と同じ意味だった気がする
だからhogeの他のsychronizedメソッドもロックされるな
999:デフォルトの名無しさん
07/07/27 20:44:21
メソッドは呼び出しできないけどオブジェクトにはアクセスできたと思う
オブジェクトをロックする方法は別にあったはずだし
1000:デフォルトの名無しさん
07/07/27 20:45:07
ガチでか
勘違いしてたぜ(´ー`;)
1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。