08/08/12 09:42:33
夏厨ばっかだなw
51:デフォルトの名無しさん
08/08/12 10:07:20
おまえに聞いてない
52:デフォルトの名無しさん
08/08/12 10:34:47
appletに関する質問なのですが
・JDK1.2以降のAPIが使えない(java.util.jarやjavax.*が使えない)
・applet格納jarとは別の.auファイルをまとめたjarなりzipなりがある
・アーカイブは後付で読み込む(起動後に読み込むものが決まる)
という状態で、外部アーカイブ内の.auファイルから音声オブジェクトを作成する方法ってありますでしょうか?
自分で考えた限りでは2通りのアプローチかなと思ったのですが他に何かいい方法があるかなと思いまして…
1)読み込んだアーカイブをclasspathに追加する
classpathに追加できればApplet#getAudioClip(URL)で読み込めるが、追加方法がわからない
(System.setProperty()でjava.class.pathをsetしても意味がないらしい)
2)sun.audio.AudioStreamを使う
ZipInputStream→ZipEntry→byte[]→ByteArrayInputStream→AudioStreamで
読み込み&再生には成功したが非公開APIなので互換性の心配がある
53:デフォルトの名無しさん
08/08/12 11:01:01
>>47
44は「遅い」って書いてあるように俺には読めるんだが
54:デフォルトの名無しさん
08/08/12 11:42:20
以下のパディングで、全角を半角2文字分として処理させる手段はあるでしょうか。
System.out.format("%3s_", "あ");
結果: あ_ ※スペースが前に2つ入ってしまう。これを1つにしたい。
55:デフォルトの名無しさん
08/08/12 12:11:29 BE:104062526-2BP(2)
>>48-49
数値微分、数値積分だったらできる。
差分法、区分求積法、リーマン積分、台形公式、シンプソンの三分の一則、ロンバーグ積分でググれ。
というか数値計算や数値解析の本読め。
ただし連続関数の微分、積分は一筋縄ではいかない。
正規表現が必要になってくる。
56:デフォルトの名無しさん
08/08/12 12:32:17
正規表現はいらないだろw
なにいってんだこいつは。
57:デフォルトの名無しさん
08/08/12 13:00:45
>>55
そこに書いてないようだけど、数値微分はどうやるの?
58:デフォルトの名無しさん
08/08/12 13:26:14
JavaMailで質問です。
プログラム内でPDFを作成して添付ファイルとして送りたいのですが、
作成したPDFをファイルシステムに保存したくありません。
今はこんな感じでやってます。
//PDFファイルを一時ファイルとして書き出し
File tmpFile = File.createTempFile("foo", ".pdf");
//PDFをOutputStreamに書き出す独自クラス
report.renderPDF(new FileOutputStream(tmpFile));
MimeBodyPart attachedPart = new MimeBodyPart();
attachedPart.setFileName("filename.pdf");
attachedPart.setDataHandler(new DataHandler(new FileDataSource(tmpFile)));
File.createTempFile を使わずに添付ファイルを送るいい方法はありますか?
59:デフォルトの名無しさん
08/08/12 13:29:55
Thread.sleepとwaitって何が違うんですか?
60:デフォルトの名無しさん
08/08/12 13:35:25
waitはnotifyされたときに起きる
61:デフォルトの名無しさん
08/08/12 13:38:22
>>58
FileOutputStreamの代わりにByteArrayOutputStream使って
FileDataSourceの代わりにDataSourceの自前の実装を使えばいいんじゃない
62:デフォルトの名無しさん
08/08/12 13:53:35
main()の戻り値を返す方法はありませんか
Cならreturnで戻せるのですが・・・
63:58
08/08/12 13:55:46
>>61
ありがとうございます。やっぱり自前で何かやらないとダメですか…
64:デフォルトの名無しさん
08/08/12 14:12:11
>>62
System#exit(int)
65:デフォルトの名無しさん
08/08/12 14:15:48
>>64
thx
66:デフォルトの名無しさん
08/08/12 14:36:14
正規表現でパスワードをチェックしたいのですが、
半角数字、アルファベット大文字、小文字が混在していることを
条件にする方法がわかりません。
67:デフォルトの名無しさん
08/08/12 15:07:12
>>66
無理に正規表現にするのはどうかと思うが・・・これでどう
(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])
68:66
08/08/12 15:39:38
私も最初にその方法で確認したのですがだめでした
String str = "Hoge0123";
System.out.println(str.matches("(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])"));
falseになります。
69:デフォルトの名無しさん
08/08/12 15:56:47
定数の扱い方について教えてください。
クラスの中にprivate finalをたくさん定義するのはよい方法なのでしょか。
C言語では、ヘッダーファイルに定数をまとめたりしますが、
javaではどうなのでしょうか。
70:デフォルトの名無しさん
08/08/12 16:00:23
>>68
それだけだとゼロ文字にしかマッチしない
(?= ) は1文字も食わないから
71:デフォルトの名無しさん
08/08/12 16:02:20
>>69
よい方法
少なくともコード中にマジックナンバを書くよりは
用途によってはenumを使え
72:デフォルトの名無しさん
08/08/12 16:19:23
>>71
レスありがとうございます。
ただ、あまりにも定数が増えてくるといいますか、
どこまで定数として定義したらよいかの判断が難しいです。
たとえば、"ファイルの読み込みに失敗しました。"という文字列が
コード上で一回しか出てこないのなら、定数にする必要もないのかなと思います。
73:デフォルトの名無しさん
08/08/12 16:28:58
>>72
文字列は国際化を考えてResourceBundleに入れるのが望ましい・・・けどまぁ面倒いよな
お好きにどうぞ
74:デフォルトの名無しさん
08/08/12 16:57:37
>>55
入門編の地雷じゃないヤツを教えて。
75:デフォルトの名無しさん
08/08/12 18:40:37
>>56
sin(x)をcos(x)に
log(x^2)を2x/x^2 = 2/x
と表示するにはなにかしら正規表現が必要
>>57
差分法と書いてあるだろう
>>74
地雷? 意味がわからない。
まずは数値計算の本を読め。
『Javaによるアルゴリズム事典』でも読め。
76:デフォルトの名無しさん
08/08/12 20:06:50
>>75
正規表現って何か知ってる?
77:デフォルトの名無しさん
08/08/12 21:44:16
せいきひょうげんだと……?
78:デフォルトの名無しさん
08/08/12 22:05:38
もしかしてノーマライズのこといってる?
79:デフォルトの名無しさん
08/08/12 22:06:50
ワロタww
80:デフォルトの名無しさん
08/08/12 22:07:22
Regular representationだろ
81:デフォルトの名無しさん
08/08/12 22:54:25
regular expressionだろ
82:デフォルトの名無しさん
08/08/13 00:35:19
>>75
どうせ独学でしょ。sin[x]をcos[x]にするとかいってて、全然分かってないようだしw
83:デフォルトの名無しさん
08/08/13 00:38:50
>>78
いや? 約分という正規化もしたいけどそれとは別に。
正確には文字列処理というべきだったか。
正規表現というから唐突過ぎたみたいだ。
だが合成関数など複雑な数式になると微分するときに正規表現も必要になるんじゃないのかって言いたかった。
84:デフォルトの名無しさん
08/08/13 00:40:33
>>82
何が? あと、それだと配列になるぞ。
数値微分だったら簡単にできるだろ。
それとは別の、連続関数の微分のことを言ってるんだが。
85:デフォルトの名無しさん
08/08/13 00:41:53
正規表現という用語は文字列のマッチング用パターンを指すのでややこしいから別の用語を使ってくださいお願いします
86:デフォルトの名無しさん
08/08/13 00:47:29
MatheticaだったかMATLABだったか忘れたけど
y = diff(sin(x))
と入力すると
y = cos(x)
と表示してくれる言語があった気がする
87:デフォルトの名無しさん
08/08/13 01:04:46
結局、ただの夏いやつだったんだよ・・・
88:デフォルトの名無しさん
08/08/13 01:08:25
>>83
SICPの Symbolic Differentiation みたいなのをやりたいということかな?
Schemeみたいに簡単にはいかないよ。自分で構文解析する必要がある。
構文解析してS式なり、構文木作ってしまえば、Schemeと大差は無いよ。
89:デフォルトの名無しさん
08/08/13 01:16:50
>>84
配列とか言ってるようだけど、独学だとしても最低限mathmaticaぐらいは使えるようになってくれ。
それとその数値微分だと、入力が10^-12なら出力は10^-6の半分程度の精度しかないんじゃないか?
90:デフォルトの名無しさん
08/08/13 01:19:57
>>89
javaスレだぞ・・・
91:デフォルトの名無しさん
08/08/13 01:23:00
数値計算はjavaでやるのが一番面倒がないね。ライブラリもそろってるし。
javaは、予約語だらけとかの他の複雑な言語に比べて簡単だからアルゴに集中できるけどね。
92:デフォルトの名無しさん
08/08/13 01:44:06
>>88-89
そういえばMATLABを思い出したよ
>>86は
symbolic(x);
y = diff(sin(x),x)
と入力すると
y = cos(x)
になるやつだったかな。
SchemeとMathematicaは良く知らないがMATLABはよく触っていたから覚えている。
Javaで同じことができるライブラリをどこかで見つけたが有料だったので
諦めた記憶がある。どこのサイトだったかまでは覚えていない。
93:デフォルトの名無しさん
08/08/13 02:55:25
>>91
アルゴリズムをアルゴと略す奴は、MZユーザではないだろうな。
気持ち悪い略し方だ。アルクワリズミが草葉の陰で泣いてるぞ。
94:デフォルトの名無しさん
08/08/13 03:07:34
流れをきって質問です・・・
Java自体が始めてまだ数ヶ月なのですが、ウィンドウアプリケーションを初めて作ってみました。
そこで、たとえば3秒ごとにウィンドウに今の時間を更新して表示するプログラムを作りたいのですが、いままでならスレッドで
for(;;){
min=calender.get(Calendar.MINUTE);
System.out.println(min);
Thread.sleep(3000);
}
と書いたスレッドを実行させておけばよかったのですが、ウィンドウ型になるとどうしていいかわからなくなってしまいました・・・
説明が下手で申し訳ないですが、
「3秒ごとに今の時間を取得してそれをウィンドウに表示させる」
というプログラムを作りたいです
95:デフォルトの名無しさん
08/08/13 03:15:15
正規表現とか使ってシンボリックに微分をやったり数値計算するよりも、その結果を数学の自然表記にする方が難しいんだけどね。
積分や分数を教科書どおりにウインドに表示するとか。
96:デフォルトの名無しさん
08/08/13 03:25:44
>>93
アルコイズミとか出してきて、おまえのほうがキモイ
97:デフォルトの名無しさん
08/08/13 09:33:54
>>94
1.時刻表示ができる窓を作る。
2.時刻を更新するメソッドを書く。
3.2を定期的に呼ぶスレッドを書く。
4.3のスレッドの生成と実行を書く。
だいたいこんな感じ。
98:デフォルトの名無しさん
08/08/13 10:03:16
>>96
アルゴリズムの語源になった人だぞ < アルクワリズミ
99:デフォルトの名無しさん
08/08/13 10:15:49
すみません、>>52なのですが
アプローチがそもそも間違っているとかこういう質問はこのスレへ行くのがいいとか
そういった感じのことでもよいのでよろしくお願いします……
>>94
>>97さんの内容でいけると思いますが、表示をJTextBoxなどのswingコンポーネントでやる場合は
SwingUtilities.invokeLater()を使わないと表示処理が正しく行われないので注意してください。。
(swingコンポーネントの大半のメソッドは、イベントディスパッチスレッド以外から呼んではいけないという決まりがある)
URLリンク(homepage3.nifty.com)
100:デフォルトの名無しさん
08/08/13 10:44:55
>>95
texとか知らないのか
101:デフォルトの名無しさん
08/08/13 10:50:35
そのTeXという言語を作る仕事がものすごく難しい
102:デフォルトの名無しさん
08/08/13 10:58:59
>>101
その難しいは、個人の能力が低い場合だろ・・・
103:デフォルトの名無しさん
08/08/13 10:59:28
>>101
技術的に難しいという意味じゃねーじゃん
104:デフォルトの名無しさん
08/08/13 11:40:43
>>101
そりゃ言語を作るのは、並大抵の難易度じゃないだろう。
けど、そういう話?
105:デフォルトの名無しさん
08/08/13 11:46:01
5.0から追加されたイグゼキュタって、時間を戻すと止まりませんか?
指定した遅延後に実行されるだけだと思うのですが、
どうもIO周りでブロックされているような気がします。
これだとNTPで時間を戻された時とかに使えないような?
public class TestA implements Callable {
private ScheduledFuture<?> future;
private ScheduledThreadPoolExecutor pool = (ScheduledThreadPoolExecutor)Executors.newScheduledThreadPool(1);
public static void main(String[] argv) { new TestA().start(); }
public void start() { future = pool.schedule(this, 1, TimeUnit.MILLISECONDS); }
private void run_() {
System.out.println(sdf.format(new Date()) + ": running"); // !!!これがないと止まらないで動く
ScheduledFuture<?> future2 = pool.schedule(new Runnable() { // 再スケジュール用のタスクセット
public void run() {
if (future.isDone()) {
try {
future.get();
future = pool.schedule(TestA.this, 1, TimeUnit.MILLISECONDS); // ユーザタスクの再スケジューリング
} catch (InterruptedException e) { e.printStackTrace();
} catch (ExecutionException e) { e.printStackTrace(); }
}
}
}, 0, TimeUnit.MILLISECONDS);
}
public Object call() throws Exception {
run_();
return future;
}
}
106:デフォルトの名無しさん
08/08/13 12:59:59
>>97
レスありがとうございます。
その、表示する窓についてですが、時間を更新する3秒ごとに描画し直さなくてはならず、
g.drawString(時間)
も3秒ごとに実行させる必要があると思っています。このdrawStringもスレッドに組み込むのでしょうか?
質問が悪く、初歩的で申し訳ないです
107:デフォルトの名無しさん
08/08/13 13:02:33
>>104
そういう話だった
Yacc/flexで言語作っている奴のコードを見ていたら
くそやばかった記憶がある。あれは並大抵の努力じゃ実現できないものだと思った。
108:デフォルトの名無しさん
08/08/13 13:20:33
>>106
描画はpaintもしくはpaintComponentでする
スレッドは3秒ごとにrepaintを呼ぶ
109:デフォルトの名無しさん
08/08/13 13:42:27
>>102-104
ひまなんでしょww
110:デフォルトの名無しさん
08/08/13 13:51:43
>>107
努力してるのかどうかよりも、何がくそやばかったのか分からないんだけど
111:デフォルトの名無しさん
08/08/13 15:35:45
くそやばかったかどうかよりbison/flexでもyacc/lexでもない件
ていうかjavaスレなんだからどうせなら標準でjavaを吐くパーザジェネレータの話をしようぜ
112:デフォルトの名無しさん
08/08/13 17:06:24
質問です。
最近Javaをはじめたのですが
配列を今勉強していて、
ArrayListに突っ込み、それを拡張する方法はわかったのですが
例えば
int[] num_array = new int[5];
とかやった場合に
num_arrayの大きさ自体を変える事は出来ないのでしょうか?
113:デフォルトの名無しさん
08/08/13 17:07:49
できない
新しく大きな配列を作って中身を移すしかない
114:デフォルトの名無しさん
08/08/13 19:14:22
>>112
新規に大きな配列を作って中身をコピーする時に、
使っているのがJDK6以降ならjava.util.ArraysクラスにcopyOfというメソッドがあって、
num_array = java.util.Arrays.copyOf(num_array, 10); // サイズ10の配列を新たに作って中身をコピーしたものを返す
みたいにできるのでちょっと便利。
元のnum_array自体を拡張するのではなく、サイズが変更されたコピーを返すところに注意。
配列は固定長であることに変わりはないので。
JDK5以前なら配列の作成とコピーのコードを自分で書かないといけない。
115:デフォルトの名無しさん
08/08/13 19:41:06
>150
使い方が色々間違っているような気がする
あとstdはどこに変数宣言あるんだ?
future.get(); も激しくデットロックの香り
116:デフォルトの名無しさん
08/08/13 21:14:07
>>115
縮めてみた。
import java.util.*;
import java.util.concurrent.*;
import java.text.SimpleDateFormat;
public class TestA implements Callable<Object> {
private ScheduledFuture<?> future;
private ScheduledThreadPoolExecutor pool = (ScheduledThreadPoolExecutor)Executors.newScheduledThreadPool(1);
public static void main(String[] argv) {new TestA().start();}
public void start() {future = pool.schedule(this, 1, TimeUnit.MILLISECONDS);}
public Object call() throws Exception {
System.out.println(sdf.format(new Date()) + ": running");
ScheduledFuture<?> future2 = pool.schedule(this, 1, TimeUnit.MILLISECONDS);
return future;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" , Locale.JAPAN);
}
遅延を0にすればとまらないのだから、デッドロックと言うことは無いだろう。
時刻に達したら制止が外れるようなので、
1,2秒さかのぼった程度なら、問題にならないだろうけど、
夏時間とかはどうなるだろ。
また、時計を巻き戻して、処理が止まってから、時計を戻してみた。
すると、1分間ほど経ってから処理が再開した。
117:デフォルトの名無しさん
08/08/13 23:45:02
ThreadGroupのactiveCount()でグループに属するスレッドの数が取得できないのですが
これは仕様ですか?
// スレッドグループツリーの作成
ThreadGroup g1 = new ThreadGroup("g1");
Thread t1 = new Thread(g1, "t1");
Thread t2 = new Thread(g1, "t2");
ThreadGroup g2 = new ThreadGroup(g1, "g2");
ThreadGroup g3 = new ThreadGroup(g1, "g3");
Thread t3 = new Thread(g2, "t3");
ThreadGroup g4 = new ThreadGroup(g2, "g4");
Thread t4 = new Thread(g4, "t4");
// g1スレッドグループに含まれるスレッドの数
System.out.println("g1.activeCount() = " + g1.activeCount());
上記のプログラムを実行すると
g1.activeCount() = 0
と表示されます。
参考書を見ると
g1.activeCount() = 4
と表示されるとなっています
ご教授お願いします
118:デフォルトの名無しさん
08/08/13 23:47:41
startしていないthreadはカウントされない
119:デフォルトの名無しさん
08/08/13 23:48:33
>>118
ありがとうございます
もう一度試してみます
120:デフォルトの名無しさん
08/08/14 00:07:48
宣伝しにきたよ。
■■みんなでサイトつくろうぜwwwwwwww■■
「お前ら一緒にサイト作ろうぜwwwww」
「2ちゃん越えるサイト作ろうぜww」
「仕事無いんだ・・・・・・」
「やろうぜ!」
「みんなでサイトつくろうぜwwwww」
URLリンク(gacco.o0o0.jp)
URLリンク(ex14.vip2ch.com)
今日トップ絵作ったんだぜ!
興味沸いたらきてください!
121:デフォルトの名無しさん
08/08/14 00:09:23
みんなでサイトつくろうぜwwwwwwwwww
みんなで本気でつくる気です。 がんばりましょう。
サイトのイメージはSNS×学校みたいな感じ。
サイトデザイン(案)
URLリンク(www36.atwiki.jp)
URLリンク(www36.atwiki.jp)
URLリンク(www.vipper.org)
技術を持ってる人はパー速へ!
URLリンク(ex14.vip2ch.com)
wiki:
vipでサイトつくろーぜ
URLリンク(www26.atwiki.jp)
詳細はwiki参照
122:デフォルトの名無しさん
08/08/14 00:15:41
宣伝しにきたよ。
■■みんなでサイトつくろうぜwwwwwwww■■
「お前ら一緒にサイト作ろうぜwwwww」
「2ちゃん越えるサイト作ろうぜww」
「仕事無いんだ・・・・・・」
「やろうぜ!」
「みんなでサイトつくろうぜwwwww」
URLリンク(gacco.o0o0.jp)
URLリンク(ex14.vip2ch.com)
今日トップ絵作ったんだぜ!
興味沸いたらきてください!
123:デフォルトの名無しさん
08/08/14 00:16:29
>>120
あれ。。俺がいる。
ホントすまなかった。
124:デフォルトの名無しさん
08/08/14 01:54:38
相変わらずキモイな
C#と同じくどんどん糞スレになってくれ
125:デフォルトの名無しさん
08/08/14 03:01:18
掲示板を作ってるのですが、書き込んだ日時としてデータベースに
Calendar#getTimeInMillis()で取れる値を入れて、
そのlong値を取得して何月何日何時何分何秒に書き込んだか表示したいのですが、
Calendar cal=Calendar.getInstance();
System.out.println(cal.get(Calendar.YEAR));
cal.setTimeInMillis(//データベースから取得したlong値);
System.out.println(cal.get(Calendar.YEAR));
で比較すると後者のprintlnで表示される値が何を入れても常に1970になります。
setTimeInMillisをAPIドキュメントで見ると
>Calendar の現在時刻を、指定された long 値から設定します。
と書いてあるのでこれで良いかと思ったのですが、これはどこを間違っているのでしょうか??
126:デフォルトの名無しさん
08/08/14 03:24:21
>>125
データベースから取得したlong値は正しい値で取得されている?
秒単位でなくてミリ秒単位だからだいたい 31500000000 より小さい値なら1970年になる。
127:デフォルトの名無しさん
08/08/14 03:39:42
アクセス修飾子について質問です。
protected:
同一クラスのインスタンス、またはそのクラスを継承したクラスのインスタンスからアクセス可能。
なし(デフォルト):
そのインスタンス、または同一パッケージに所属するクラスのインスタンスからアクセス可能。
となっていますが、メンバが「なし(デフォルト)」の場合には、異なるパッケージに存在するサブクラスの
インスタンスからは、アクセスすることができないのですか?
128:デフォルトの名無しさん
08/08/14 03:42:45
うん
129:デフォルトの名無しさん
08/08/14 03:48:49
では、アクセス就職子の序列が
public > なし(デフォルト) > protected > private
となっている参考書は間違いなのですか?
「protected」の場合にアクセスできるものに
「なし(デフォルト)」の場合にアクセスできないので。
130:デフォルトの名無しさん
08/08/14 03:49:10
>>127
protectedは同一パッケージ内のクラスからもアクセス可能。
131:デフォルトの名無しさん
08/08/14 03:50:59
protectedの説明が
> 同一クラスのインスタンス、またはそのクラスを継承したクラスのインスタンスからアクセス可能。
になっているのなら、その参考書の説明は間違い。
132:デフォルトの名無しさん
08/08/14 03:53:18
あー逆だ
public > protected >> なし(デフォルト) private
が正しい。
protectedの方が公開の範囲が広い。
133:デフォルトの名無しさん
08/08/14 03:58:09
public > protected >> なし(デフォルト) private
は、
public > protected > なし(デフォルト)> private
ね。だから、
> となっている参考書は間違いなのですか?
は間違いで正しい。
まとめると、
> となっていますが、メンバが「なし(デフォルト)」の場合には、異なるパッケージに存在するサブクラスの
> インスタンスからは、アクセスすることができないのですか?
は正しい。
> public > なし(デフォルト) > protected > private
> となっている参考書は間違いなのですか?
も正しい。つまり間違ってる。
134:デフォルトの名無しさん
08/08/14 04:13:16
>>130-133
了解です!
ありがとうございます!
135:デフォルトの名無しさん
08/08/14 04:22:01
そんな糞参考書は窓から投げておk
136:デフォルトの名無しさん
08/08/14 05:11:35
糞はおまえw
137:デフォルトの名無しさん
08/08/14 06:24:30
会話が成り立っていない
138:105
08/08/14 10:10:40
>>115
書き込みが入りきるよう縮めていたら消していました。
使い方おかしいですか?
やりたいのはその都度実行する遅延を計算しなおしたいのです。
ここでは止まるのを確認するのに1msで常にやってます。
>>116
printlnでIOがブロック?と書きましたが違ったようです。
↓のように、止まるのは遅延を待機しているのではないかと。
ただその遅延が指定したものでなく、
おっしゃるように戻した時間が経過して戻す以前の時間+遅延になると動くようです。
もしかしたら遅延を指定しているにも関わらず、
内部で時刻を取得し直して計算しているのかとも思うのですが。
スレッド [pool-1-thread-1] (中断中)
Unsafe.park(boolean, long) 行: 使用不可 [ネイティブ・メソッド]
LockSupport.parkNanos(long) 行: 使用不可
AbstractQueuedSynchronizer$ConditionObject.awaitNanos(long) 行: 使用不可
DelayQueue<E>.take() 行: 使用不可
ScheduledThreadPoolExecutor$DelayedWorkQueue.take() 行: 使用不可
ScheduledThreadPoolExecutor$DelayedWorkQueue.take() 行: 使用不可
ScheduledThreadPoolExecutor(ThreadPoolExecutor).getTask() 行: 使用不可
ThreadPoolExecutor$Worker.run() 行: 使用不可
Thread.run() 行: 使用不可
139:デフォルトの名無しさん
08/08/14 10:52:28
どなたか>>52(>>99)をお願いします…
何か質問の仕方マズかったでしょうか
140:デフォルトの名無しさん
08/08/14 12:35:08
やっぱ"Ruby"ですよ!
141:デフォルトの名無しさん
08/08/14 13:04:24
>>139
1.2以前でっていう限定がきつい。
古すぎてだれも答えられないと思う。
142:デフォルトの名無しさん
08/08/14 13:10:54
>>141
初心者の宿題出なければ、appletを作っているやつ自体いないのでは
143:デフォルトの名無しさん
08/08/14 13:43:41
■■みんなでサイトつくろうぜwwwwwwwwwwwwwwww■■
「お前ら一緒にサイト作ろうぜwwwwwwwwww」
「2ちゃん越えるサイト作ろうぜwwww」
「仕事無いんだ・・・・・・」
「やろうぜ!」
「みんなでサイトつくろうぜwwwwwwwwww」
URLリンク(gacco.o0o0.jp)
スレリンク(news4vip板)
URLリンク(ex14.vip2ch.com)
興味沸いたらきてください!
======================!! 人材募集中 !!======================
■プログラムを組んでくれる人
*サーバー側
言語はRubyかPerlの予定ですが、Perlが有力候補。
・チャット
定期的にクライアントから着信があり、それに対して更新されたチャットのメッセージを返信する程度の能力。じゃなくて機能。
通信するときのフォーマットは未定。
・ログイン・アカウント管理
ログイン認証、各アカウントの点数などの管理。データベースは未定。
・お絵描き
未定。とりあえず鯖に負担がかからない程度にたまに画像を送信してあげるって感じで
*クライアント側
はっきり言って俺もわからね。Ajaxだとかflashだとかjavaだとか。
■機能提案(正しくは人材ではなく、意見?)
「こんな機能があったら良い!」「こうするともっと楽しくなる!」などの意見募集中。
挨拶とか気にせずスレにどんどん書き込んでくれればおk
■デザイン
サイトのデザインを考えてくれる人、作ってくれる人募集中。
できればphotoshop illustrator使える人(プロジェクト共有しやすいので)
144:デフォルトの名無しさん
08/08/14 14:09:09
>>139
1) java.util.zip 使って外部アーカイブを読める自前の URLStreamHandler 作って、
URL.setURLStreamHandlerFactory してみるとか……
セキュリティマネージャに怒られてダメかもしれんが。
2) 1.1レベルでは互換性の高そうな標準API使う方法だと
1)のアプローチぐらいしかないので、それがダメなら
外部jar使うの諦めるか、互換性諦めるか、音出す事を諦めるか選ぶしかないと思うぞ。
145:デフォルトの名無しさん
08/08/14 14:20:42
たぶんwebで公開のappletじゃないと思うけど、Class.getResouceAsInputStream()とかかな。
javaのデスクトップは、アプレットに適したライブラリが全くなかった他の技術に先を越されたけど、それを補うように進化してきたから、1.2以前だといろいろ出来るわけじゃないよ。
146:デフォルトの名無しさん
08/08/14 15:47:14
回答ありがとうございます!
>>141,142,145
うーんやっぱ今時Appletでしかも1.1縛りなあたりがネックですよねぇ。
自分としては1.2以降のAPI使いたいんですが、MRJに対応しなくてはならない事情があるものでして。
無理そうなら環境によって動作切り替える方向で進めてみようと思います。
>>144
なるほど、URLStreamHandlerは今まで全く見てませんでした。
URL指定をメモリ内のByteArrayInputStreamにリダイレクトできればあるいは、のような感じですね。
光明が見えたような気がしてきました。この方向で色々トライしてみます。
147:デフォルトの名無しさん
08/08/14 16:47:01
ライブラリは進化してきたといってるのに、自作しちゃう人がまた一人・・
148:デフォルトの名無しさん
08/08/14 16:54:55
実行中にアプリから、あるインスタンスがどこから参照されているかを確認する術はあるでしょうか?
149:デフォルトの名無しさん
08/08/14 17:08:10
プロファイラで辿れない?
150:デフォルトの名無しさん
08/08/14 17:28:42
このままライブラリ、というか、部品化が進んでいったら、
やがてプログラマが必要なくなるのではなかろうか?
部品をちょちょいと選択すればプログラムができてしまわないだろうか?
そのとき、元プログラマの人は、どうやって食っていくのだろうか?
151:デフォルトの名無しさん
08/08/14 17:35:50
>>149
稼動サーバーでのみリークが発生するようで、アプリ内で何とかしろといわれているので、
JDTとか見たんですけどまったく理解できずに断念です。
やはりツールを使用しないと無理ですかね・・・
152:デフォルトの名無しさん
08/08/14 17:50:19
日頃の勉強と技術力しだいだなw
153:デフォルトの名無しさん
08/08/14 18:06:26
Swingにベクタ画像(psとかeps)なんかを表示するものはありますか?
探しても見つからなかったので…
ない場合、何らかの形でJPanel辺りに貼り付けて表示する方法はあるのでしょうか?
154:デフォルトの名無しさん
08/08/14 18:07:30
2chで質問するほどだなんて、ひでー職場だな。
155:デフォルトの名無しさん
08/08/14 18:12:13
>>154
俺の職場、それしかなかったけど。。
色々掲示板みてると俺のいた職場がよほどくそだったことがよくわかる。
ここで揶揄されてることが俺の職場ではまさにデフォルトだった。
ろくに経験もないうちから研修(実務にまったく役に立たない)と称して独力(上司は単なる営業社員)でつくらされて
現場にいっても俺みたいなど素人がもう一人。。できるわけねえだろ。。
156:デフォルトの名無しさん
08/08/14 18:47:47
>>110
そりゃあソースコードが複雑で読みにくいという
157:デフォルトの名無しさん
08/08/14 19:56:43
みんなそれでやってきたんだし、おまえの技術力が低いだけじゃね?
158:デフォルトの名無しさん
08/08/14 19:58:43
>>155
おまえが糞だってことが良く分かった
159:デフォルトの名無しさん
08/08/14 20:09:30
匿名メソッドのメリットがいまいち分からないのですが、
コーディング量が少し減ることと、
そのメソッドへ他からアクセスできないこと以外で
何かメリットってあるのでしょうか?
よろしくお願いします。
160:デフォルトの名無しさん
08/08/14 20:10:15
匿名メソッドなんてあったっけ?
161:デフォルトの名無しさん
08/08/14 20:15:04
匿名クラスでした、すみません
162:デフォルトの名無しさん
08/08/14 20:42:09
>>155
それは職場が糞なんじゃなくて、お前が糞なんじゃないの?
なんかお前にはVBの方が向いてるような・・・
163:デフォルトの名無しさん
08/08/14 20:46:24
そういう話はマ板でどうぞ
164:デフォルトの名無しさん
08/08/14 21:44:18
相変わらず、糞だらけのスレですね(^^
165:デフォルトの名無しさん
08/08/14 22:40:07
>>159
・いちいち名前を考えずに済む
・普通の内部クラスは書く場所と使う場所が離れていてわかりにくい
166:デフォルトの名無しさん
08/08/14 23:53:02
fileChooserを利用して、選択したクラスファイルを取得したいのですが
File file = fileChooser.getSelectedFile();
Class cls = file.getClass();
これではうまくできません。
どのようにすれば良いか、どなたか教えてくれませんか?
167:デフォルトの名無しさん
08/08/15 00:32:35
クラスファイルをロードしたいってことか?
class MyClassLoader extends ClassLoader {
public Class<?> loadClassfile(File file) throws いろいろ {
byte[] data = new byte[(int)file.length()];
FileInputStream in = new FileInputStream(file);
new DataInputStream(in).readFully(data);
in.close();
Class<?> cls = defineClass(null, data, 0, data.length);
resolveClass(cls);
return cls;
}
}
という独自クラスローダを作って、
Class<?> cls = new MyClassLoader().loadClassfile(file);
でどうよ
168:デフォルトの名無しさん
08/08/15 00:50:39
>>167
クラスを取得してコンストラクタの分析などをリフレクションを用いて実現させたいんです。
File file = fileChooser.getSelectedFile();
Class cls = Class.forName(file.toString());
とかも試したんですけどうまくいきませんでした…
なにぶん初心者なもので、根本的なことが間違ってる気がしてならないですorz
169:デフォルトの名無しさん
08/08/15 01:44:09
>>168
Class.forNameで渡すのはFileとかのクラスファイルの場所ではなくてクラス名そのもの。
クラスファイルをクラスパスの通っているところから参照できる場所に置いておけばクラス名から探してくれる。
クラス名がfoo.bar.Hogeならクラスパスの通っているところのサブディレクトリとしてfoo、その下にbarという
ディレクトリがあって、その中にHoge.classがあればClass.forName("foo.bar.Hoge")でClassインスタンスが得られる。
クラスパスとは無関係にクラスをロードしたいのならURLClassLoaderを使うのが楽かも。
URLClassLoaderでぐぐればサンプルはいくらでもある。
170:デフォルトの名無しさん
08/08/15 04:09:03
>>167
readFully(data); を使うのは単に趣味ですか?
read(data);とどう違うのかAPI Docs上から分からないんですがご存知でしょうか。
171:デフォルトの名無しさん
08/08/15 04:57:34
readは指定したバイト数全部を読み込むことは保証されていない
1バイトでも読めれば、読み込めたバイト数を返す
readFullyは指定したバイト数全部読み込む
読み込めなければEOFException
172:デフォルトの名無しさん
08/08/15 05:35:43
秒妙な違いですけど、引数がFileなのでreadFullyはやらないほうがいいのでは?
間違ってはないけど、そこで使うのはDataInputの設計目的と微妙に違うような…
173:デフォルトの名無しさん
08/08/15 09:19:21
いつも来ていた糞野郎は死んだか?
174:デフォルトの名無しさん
08/08/15 10:29:51
Thread.currentThread().getStackTrace()でスタック情報が取得できますが、引数インスタンスは取得できません。
引数インスタンスを取得する方法はあるでしょうか?
175:デフォルトの名無しさん
08/08/15 10:39:16
>>174
caller の引数に触りたいって話ならデバッガ使えば?
176:デフォルトの名無しさん
08/08/15 14:05:49
糞はドブに流れていってしまったが?
177:デフォルトの名無しさん
08/08/15 19:18:11
テストについて質問です。
値を返すメソッドなら期待される値と実際の値を比較しますが、
値を返さないメソッドはどのようにテストをすればいいのでしょう。
DBに書き込むメソッドとかなら書き込まれた値をチェックできますが、
例えば以下のようなものです。
・メールを送信するメソッド
・コンソールに文字を出力するメソッド
178:デフォルトの名無しさん
08/08/15 19:46:12
mainって普通プログラムの中でどういう部分を書くものなのでしょうか?
staticだから長いプログラムを書くと面倒になる部分が多いので
mainでは自分のクラスのコンストラクタをnewするくらいにしか使わなくて、
そのコンストラクタの方で色々書くようにしているのですが、どうなんでしょう?
179:デフォルトの名無しさん
08/08/15 19:49:06
テストの基本は事前条件と事後条件が正しいことを確認すること
・メールを送信するメソッド
メールを送信するクラスが正しく呼び出されたかをチェックする
・コンソールに文字を出力するメソッド
これは難しいのでやらない
やる場合は、特定の文字を出力するメソッドのテストとしておいて、
Writerはsetterで設定できるようにしておく
どちらにせよコード中にSystem.outがあるのはウンコ
180:デフォルトの名無しさん
08/08/15 19:51:46
>178
いわゆるエントリポイントってやつだから、外部から起動する時に必要な範囲の処理を行うのが正しい
なので、コンストラクタの方で色々やっているのは正しいよ。
mainに書くべき処理といえば、後はプログラムの実行引数のチェックやデフォルト値の設定。
バグで落ちたときにどうするかの処理とか、そんな感じだろうな
181:177
08/08/15 20:12:33
>>179
> メールを送信するクラスが正しく呼び出されたかをチェックする
これ、もうちょい詳しく解説してくれるとうれしいです。
> Writerはsetterで設定できるようにしておく
なるほど。それなら結構簡単にテストできそうですね。
182:デフォルトの名無しさん
08/08/15 20:22:42
>>177
テストアドレスに送信して、受信して、その内容をチェックすれば良いだけでは
183:デフォルトの名無しさん
08/08/15 21:40:47
>>181
方法は幾つかあるけど、インターフェイスをきってテスト用のオブジェクト(モック)でテストを実行する。
モックなんで実際にはメールを投げずに内部的なステータスを変化させるだけ
テストとしてはステータスが変わった(目的のメソッドが実行された)ことを確認する
完全にJavaMailを使っている箇所などをテストする場合は面倒だけど、EasyMockなんかを利用するしかない。
単体テストで再帰的にやるならばこんな感じ。
後は本当に動くかどうかは開発中は動作確認レベルで済ませてシステムテストでやる
184:デフォルトの名無しさん
08/08/15 22:20:58
ネットワークプログラミングを勉強中なのですが、
サーバ側
public static void main(String[] args){
ServerSocket ss=new ServerSocket(7777);
Socket sock=ss.accept();
BufferedReader br=new BufferedReader(new InputStreamReader(sock.getInputStream()));
System.out.println(br.readLine());
br.close();
sock.close();
ss.close();
}
クライアント側
public static void main(String[] args){
Socket sock=new Sock(コンピュータ名,7777);
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(sock.getOutputStream));
bw.write(br.readLine());
bw.close();
br.close();
sock.close();
}
この二つを実行するとサーバ側で何も表示されません。
クライアント側のBufferedReaderの件を全部消してbw.write("hoge");
とかに直すと、ちゃんとサーバ側のPCでhogeと表示されるのですが、
何がいけないのでしょうか?
185:デフォルトの名無しさん
08/08/15 22:23:09
closeしちゃダメだろ
186:デフォルトの名無しさん
08/08/15 23:50:37
JNIを使ってJavaの引数にクラスを指定し、
C側でクラス内のString型のフィールドにデータを入れようと以下のようなプログラムを書きました。
そしたら半角カナに濁点の文字が文字化けしてしまいました。
こういった場合どのように対処したらいいのでしょうか、ご教授ください!
C側↓
JNIEXPORT jlong JNICALL Java_Test(JNIEnv *env, jclass, jobject obj){
jclass cs = env->GetObjectClass(obj);
jfieldID fid = env->GetFieldID(cs,"strParam" , "Ljava/lang/String;");
env->SetObjectField(obj, fid, env->NewStringUTF("サブキー");
return 0;
}
java側↓
HogeClass hoge = new HogeClass();
Main.Test(hoge);
System.out.println(
new String( hoge.strParam.getBytes("iso-8859-1"), "MS932")
);
187:もう泣きそう
08/08/16 01:30:05
UNIXの環境変数受け渡しについて
教えて下さい。
シェルスクリプトで設定した環境変数は、JAVA(jarのクラス)側で
読み取れると思いますが、その逆は可能なのでしょうか?
以下を想定しています。
もし可能なら、メソッド名とかを教えて下さい。
-----------------------------------------
#!/bin/bash
export AAA=a.txt
java classA -xm=512m・・・
echo KEKKA1=$KEKKA1 ←これが可能でしょうか?
echo KEKKA2=$KEKKA2 ←これが可能でしょうか?
-----------------------------------------
public void class cassA {
String aaa = system.getenv("AAA");
String kekka1 = "data1"; ←これを返したいのです。
String kekka2 = "data2"; ←これを返したいのです。
(設定するロジックというかメソッド名・・・)
}
JAVA側の変数をシェルで読み取れれば良いのですが、
もし可能なら、メソッド名とか簡単でもいいのでサンプル例等を
教えて下さい。
もう泣きそうです・・(;-;)
188:デフォルトの名無しさん
08/08/16 01:38:01
何か良くわからんけどファイルに書き出せば良いじゃん
でシェルで読み込めば
189:デフォルトの名無しさん
08/08/16 02:03:52
>>187
通常、子プロセスは親プロセスの環境変数を変えられない。
190:デフォルトの名無しさん
08/08/16 05:21:40
JDBC での Oracle との連携を勉強しようとしていたら
Oracle のサイトに Java関連の Tips が大量に合って助かったのですが
逆に .NET でのサンプルが皆無だったので気になりました
Oracle と Java って何か深い繋がりがあるのでしょうか?
それとも Oracle が Java を一方的に支持してる感じ?
191:デフォルトの名無しさん
08/08/16 07:40:40
>>186
半角かな以外は化けないか確認した?
半角英数はともかく、漢字は化けると思うが。
> env->SetObjectField(obj, fid, env->NewStringUTF("サブキー");
これ UTF-8 渡してるのか?
VisualC++ とかなら env->NewString(L"サブキー", 5) とかした方が。
> new String( hoge.strParam.getBytes("iso-8859-1"), "MS932")
これやると確実に化けるんじゃね?
192:デフォルトの名無しさん
08/08/16 08:49:08
>186
JNI を使ってJavaクラスのパラメータをいじる方法は良く分からんですが、
半角カナというのは、どの文字符号化方式で定義されているものを使うのですかね。
String 内部は UTF-16 (char) 配列です。
193:デフォルトの名無しさん
08/08/16 09:43:02
a
194:デフォルトの名無しさん
08/08/16 11:03:24
interfaceは多重に継承できるんですけど、もしスーパー・インタフェイスと
メソッド名やシグニチャがかぶったら継承できないんですか。
特に他の人が使ったインタフェイスで、
戻り値がかぶったり、戻り値がlongとかだったらどうするのでしょうか。
どうやって回避するんでしょうか?
195:デフォルトの名無しさん
08/08/16 11:27:09
>>194
シグニチャ同じで戻り値型違うのは無理。
シグニチャ同じで戻り値型同じなら実装できるけど、
各interface が別々の振る舞いを期待してる場合は無理。
メソッド名付ける時点で被らないように気をつけるぐらいしかないね。
196:デフォルトの名無しさん
08/08/16 11:30:12
>>194
インターフェースはそもそもシグネチャしか定義しない(定数定義もあるけどここでは無視)ので、多重定義になっても問題はない。
何故なら、同じ名前、同じ引数、同じ返り値を持っている、ということ以外の情報は定義されないから。
実装側で、同じシグネチャなのに異なるインターフェースでアクセスされると違う動作をしなければならない、ということであれば、それは設計が間違っている。
197:デフォルトの名無しさん
08/08/16 11:38:24
>>196
そういう問題じゃなくて、AppendableとStringBuffer.appendのような話をしてるんですけど…
それもjdk1.4以前だとどうやって回避してたんでしょうか。
198:デフォルトの名無しさん
08/08/16 11:41:59
> AppendableとStringBuffer.appendのような話
このケースって、なんか問題あんの?
199:デフォルトの名無しさん
08/08/16 11:48:01
jdk1.4以前
200:デフォルトの名無しさん
08/08/16 11:49:53
1.4以前は Appendableないから問題ないよ。
201:デフォルトの名無しさん
08/08/16 12:02:47
>>197
何が疑問なのかわからん。その例ってインターフェースの多重継承とは何の関係もないじゃん。
一応書いとくけど、インターフェースの多重継承って、
interfece SuperInterfaceA { int hoge(int x); }
interface SuperInterfaceB { int hoge(int x); }
interface SubInterface extends SuperInterfaceA, SuperInterfaceB {}
というものだぞ。
202:デフォルトの名無しさん
08/08/16 12:25:23
>194
こんなのでどうさ。
URLリンク(www.y-adagio.com)
203:デフォルトの名無しさん
08/08/16 12:50:00
classと同じでinterfaceをextends出来るけど、継承」の意味が少し違うようですね。
本当は、自作のインタフェイス interface My_interface{
My_interface append(My_interface);
}
例えば引数assertチェックありで、
class StringBufferも引数My_interfaceに参加させたいんですけど、
class StringBufferは当然他人が作ったライブラリなので、My_interfaceを実装できません。
今のところifで分岐してるんですけど、こういうときは、どうやれば自作インタフェイスにくわえられるんでしょうか。
204:デフォルトの名無しさん
08/08/16 12:52:20
例えば引数assertチェックありとかの実装で。
205:デフォルトの名無しさん
08/08/16 12:58:17
アダプタパターン
206:デフォルトの名無しさん
08/08/16 13:45:32
アダプタよりもデコレータ・パタンかな
207:デフォルトの名無しさん
08/08/16 13:47:28
>>200
例えばで出してみたんですけど、分かりませんか?
自作したインタフェイスの話しなんですけど・・・
208:デフォルトの名無しさん
08/08/16 13:53:32
なんかでラップすりゃいいじゃん
209:デフォルトの名無しさん
08/08/16 14:15:28
>>203
まず、Javaでは原則として既存のクラスやインターフェースに手を加えることはできない。
該当のクラスがfinalでなければ、サブクラスを作ってそこでimplementsする手はある。
該当のクラスがfinalであれば、自作のクラスでラップするしかない。
210:デフォルトの名無しさん
08/08/16 16:38:08
Listのキャストはエレメントを個別にキャストするしかありませんか?
211:デフォルトの名無しさん
08/08/16 16:38:53
generics 使えば?
212:デフォルトの名無しさん
08/08/16 16:47:37
どうするんですか?
(List<MyClass>)list
のようなキャストが失敗します。
213:デフォルトの名無しさん
08/08/16 16:54:48
自作したインタフェイスを使ってライブラリ作ってんるんですけど、
そこに他人が作ったクラスも参加させるのはどうするんでしょうか?
とういことなんですけど、これだけじゃ何言ってるかわからないと思いませんか。
214:デフォルトの名無しさん
08/08/16 16:57:22
>>213
共有ライブラリとかプラグインとかリフレクションの世界のことかと思った。
215:デフォルトの名無しさん
08/08/16 18:33:05
class MyBig extends BigDecimal {
MyBig(String v){super(v);}
public MyBig abs(){return this;}
}
BigDecima.abs()をオーバライドしたいのですが、1.4以前ではどうやるんでしょうか。
negate()と同じく、メソッド名に意味があるので名前を変更できないので何かよい方法はないでしょうか?
216:デフォルトの名無しさん
08/08/16 18:54:57
eclipse の JDT を使ってみようと思ってるんですが,eclipse 上で,
import org.eclipse.jdt.core.dom.*;
などど打っても org.eclipse が見つかりませんというエラーが出てしまいます.
どうすれば解決できますか?
217:デフォルトの名無しさん
08/08/16 19:09:49
>>215
1.4 だと covariant return typeが使えないから public BigDecimal abs()で我慢。
もしくはextends BigDecimalを諦める。
218:デフォルトの名無しさん
08/08/16 19:43:52
finalで参照型変数を宣言した場合、
それはどこを参照するかを固定するという認識で合ってますでしょうか?
その場合、参照先のインスタンスの属性をsetter等を用いて変更されないようにするというのは
不可能なのでしょうか?
219:デフォルトの名無しさん
08/08/16 20:09:15
>>213
SPIのことじゃない?
220:デフォルトの名無しさん
08/08/16 20:37:33
>>218
Immutable な拡張クラス作って属性変更できないようにするとか
不可能じゃないけど変更されないようにできる便利な言語機能はない。
221:デフォルトの名無しさん
08/08/16 20:40:07
>>218
setterを作らない
222:デフォルトの名無しさん
08/08/16 21:36:26
Java を使って組み込み系のソフトウェア(携帯アプリ除く)を作成することはできますか?
223:デフォルトの名無しさん
08/08/16 21:48:51
CDC JavaTVetc
224:デフォルトの名無しさん
08/08/16 23:41:22
>>216
自己解決しました.
プロジェクトをプラグインプロジェクトに変更して,プラグイン依存関係を解決したらO.K.でした.
225:デフォルトの名無しさん
08/08/17 00:25:07
>212
キャストは動的。ジェネリクスは静的かつ、型情報は消滅。
>218
変更させたくないインスタンスは委譲でも使って隠匿すべし。
226:94
08/08/17 01:12:31
94です。だいぶ前で皆さん忘れておられると思いますが、この擦れの方のおかげであの質問は解決しました。
遅くなりましたが、応えてくださった97さんや99さんなど、皆さんありがとうございます。
・・・すいません。それだけです。
227:デフォルトの名無しさん
08/08/17 01:27:37
どうせならどのように解決したかを書いてくれると、後から読む人のためになって良い
228:デフォルトの名無しさん
08/08/17 12:55:58
スタンドアロンのJavaアプリで、HTMLのクリッカブルマップのようなことは、可能でしょうか?
具体的には、フォーム上に日本地図の画像があって、
各県をクリックすると、ポップアップウィンドウが表示される、
みたいな感じなんですが。
229:デフォルトの名無しさん
08/08/17 13:00:47
非常に簡単
230:デフォルトの名無しさん
08/08/17 19:59:57
このスレには親切な人が多いですね。たまにマ版と間違えてるような変な人もいますが・・・・
231:デフォルトの名無しさん
08/08/17 20:34:20
マと何か区別しなきゃいけないのか?
232:デフォルトの名無しさん
08/08/17 21:23:11
>>231
愚痴を書き込むスレではないだろ
233:186
08/08/17 21:28:01
なんとか解決したっぽいです。
初心者なので、UNICODEとUTF8の違いとかいまいちピンときませんが、
イメージは「UNICODEがIDとしたらUTF8はIDをUTF8という形式で表現したデータ」ということでしょうか?
間違ってましたら指摘してくださいorz
で、UTF8での受け渡しを止めてUNICODEでの受け渡しをするようにしました
C側↓
JNIEXPORT jlong JNICALL Java_Test(JNIEnv *env, jclass, jobject obj){
jclass cs = env->GetObjectClass(obj);
jfieldID fid = env->GetFieldID(cs,"strParam" , "Ljava/lang/String;");
const char* cc = "サブキー";
int unicodeLength = MultiByteToWideChar(CP_ACP, 0, cc, strlen(cc), NULL, 0);
WCHAR* unicodeBuffer = new WCHAR[unicodeLength];
MultiByteToWideChar(CP_ACP, 0, messagetmp, strlen(messagetmp), unicodeBuffer, unicodeLength);
jstring strj = env->NewString((jchar *)unicodeBuffer,unicodeLength);
env->SetObjectField(obj, fidsData, strj);
return 0;
}
java側↓
HogeClass hoge = new HogeClass();
Main.Test(hoge);
System.out.println( hoge.strParam );
ちゃんと表示できてるみたいです。
しばらくはまってたのですが、「sizeof」で文字サイズを取得してたのですが、
マルチバイト?では使えなくて「MultiByteToWideChar」を使用しないといけないということですね。今までjava言語しか触ったことないのでしたorz
もっと簡単な方法ありましたら是非ご教授くださいm(__)m
234:デフォルトの名無しさん
08/08/17 21:41:51
>>233
wchar_t wcstr[] = L"サブキー";
jstring strj = env->NewString((jchar *)wcstr, sizeof(wcstr) / sizeof(wchar_t));
Windows環境っぽいので wchar_t が UTF-16 きめうち。
テストしてないので動かなかったらごめん。
あと new WCHAR[unicodeLength] したのに delete しなくていいんか?
235:デフォルトの名無しさん
08/08/17 22:02:02
>>233
いくら夏とはいえ、ちょっと見にコンパイルを通らないコードを貼るやつって、何がしたいんだろうな・・・
236:デフォルトの名無しさん
08/08/17 22:12:35
初心者ってのはそういうもんさ
237:デフォルトの名無しさん
08/08/17 22:24:06
おい、おまいらJavaでアップロードされたファイルのヘッダ検査を行なうjarはないですか?
教えてください。お願いします。
238:デフォルトの名無しさん
08/08/17 22:27:44
調子のんな
239:デフォルトの名無しさん
08/08/17 22:33:02
やっぱC#スレの方がいいわ
240:デフォルトの名無しさん
08/08/17 23:14:57
javaのvmって sun と ibm と hp の3種類?
241:デフォルトの名無しさん
08/08/18 00:00:16
Swingを使ってGUIを書いています。
所謂非矩形ウィンドウを作りたいと思い、検索してみたところ、
1. Mac限定の方法(背景色を透過色に設定?)
2. ウィンドウの下をキャプチャして疑似透過
の二つがあるらしい、ということを知りましたが、1番は問題外、
また、最前面に表示するような仕様のため、2番では背景と矛盾が
生じない為の頻繁な更新による負荷がやや重めになってしまいます。
もし他に方法がありましたら、参考URL等を教えてください。
#具体的には、Officeに出てくるうるさいイルカみたいな感じで、
#画像を枠無しで表示したいと考えています
#SWTだとRegionとやらで実装できるようなのですが...
242:デフォルトの名無しさん
08/08/18 00:06:32
jdk7を待った方がいいんじゃないかな?
URLリンク(jdk6.dev.java.net)
確かこれでShapeを使った非矩形ウィンドウが作れたはず・・
243:デフォルトの名無しさん
08/08/18 00:29:07
修飾子の読み方を教えて下さい
Gooleしても見つかりません
244:デフォルトの名無しさん
08/08/18 00:31:38
そりゃ見つからないわ
245:241
08/08/18 00:32:08
おぉ。どうもありがとうございます。
AWTUtilitiesとやらで非矩形や透過ウィンドウが実装出来るようになるのですね。
とりあえずはBeta使って仮実装したり、他の方法も色々工夫したりしてみながら
のんびりと正式版のリリースを待つことにします。
素早いご返答、ありがとうございました。
246:243
08/08/18 00:38:37
Googleの間違いでした
ほんと修飾子って何て読むんですか?
247:デフォルトの名無しさん
08/08/18 00:51:09
おもしろい回答できないわ。
「しゅうしょくし」だよ。
248:デフォルトの名無しさん
08/08/18 00:51:29
jdbcのPreparedStatementなんですが、
setLongに高いインデックス(10くらい)を指定すると、
executeUpdateでエラーが発生するようです。
要は、INSERT INTO文のVALUESに指定できる?の数に制限が
あるということなのですが、この問題にはどう対処したらよいでしょうか。
249:デフォルトの名無しさん
08/08/18 00:51:51
「しゅうしょくし」
ってか流石にこれはガチで小学生でも分かるから、
そういう意味ではなくvolatileとかstrictfpとかの読み方を聞いてるのか?
250:デフォルトの名無しさん
08/08/18 01:01:29
特殊なデザインのウインドウは、はっきり言って使いづらいからやめて欲しい
251:デフォルトの名無しさん
08/08/18 01:04:32
しゅうしょくしがしょくしゅにしか見えないんだが・・・
252:243
08/08/18 01:10:03
>>247
>>249
ガチで有難うございます
ほんと何て読むか解らなくて…
年は40なんですが、趣味でプログラムでも始めてみようかと思い
創るJavaって本を買いまして、暇暇に読んでます
もちろん仕事はプログラムとは
あまり関係ありません
ただ、知識は無いと
指示が出来ないんですよね…
253:デフォルトの名無しさん
08/08/18 02:14:27
>252
URLリンク(www.okapiproject.com)
254:デフォルトの名無しさん
08/08/18 09:39:00
>>252
ではオジサン相手に手取り足取り教えてやろうか。
255:デフォルトの名無しさん
08/08/18 09:41:55
むしろ中途半端な知識で指示される方が迷惑
256:デフォルトの名無しさん
08/08/18 09:48:07
>>252
老婆心ながら
読むだけじゃだめだぞ
257:デフォルトの名無しさん
08/08/18 11:54:15
Javaなんかネットの勉強サイトで十分しょw
258:デフォルトの名無しさん
08/08/18 11:56:17
じゃう゛ぁ♪じゃう゛ぁ♪
じゃう゛ぁじゃう゛ぁジンジンジーン♪
259:デフォルトの名無しさん
08/08/18 12:07:08
ConcurrentSkipListSetってクラスつかったら
プログラムを実行するたびに
同じ要素が何個も一つにセットに入ったり、一つだけ入ったりしたんだけど。
なぜですか?
TreeSetにしても同じような症状でした。
でもCopyOnWriteArraySetにしたら同じ要素は一つしかありませんでした。
どうしてかおしえてください。
260:デフォルトの名無しさん
08/08/18 12:50:32
初心者の質問ですいませんが教えてください
javaにはオペレーターは無いはずですが
なぜStringクラスだけ+=が使えたりするんでしょうか
どなたかおしえてください
261:デフォルトの名無しさん
08/08/18 12:51:46
組み込み
262:デフォルトの名無しさん
08/08/18 13:42:50
Instrumentを変更してMIDIを再生したいのですが、現在使用可能なSynthesizerがcom.sun.media.sound.MixerSynthだけで、そのSynthesizerでloadInstrument()してもIllegalArgumentExceptionを投げられてしまいます。
ソースを読んでみると、MixerSynthの親の抽象クラス「AbstractPlayer」にて、型のチェックでHeadspaceInstrumentの子クラスじゃないと読み込めないようにしてあるようなのです。
さらにそのHeadspaceInstrumentというのはデフォルトアクセスで、どうしようもないのです。
どのようにすればInstrumentを追加・変更できるのでしょうか?
263:デフォルトの名無しさん
08/08/18 14:01:48
>>259
日本語で
264:デフォルトの名無しさん
08/08/18 15:17:26
>>260
> javaにはオペレーターは無いはずですが
Javaにはオペレータが結構あります。
Stringクラスだけでなくintでも+=が使えます。
クラス型に対するオペレータでも=や==はStringクラス以外でも使えます。
265:デフォルトの名無しさん
08/08/18 15:56:23
javaってcみたいにコアダンプ(メモリダンプ)できないのでしょうか。
cの場合ログから解析が難しい場合はその段階でkill -SEGVでメモリダンプしてデバッガでメモリの情報を調査するという方法があり
それをjavaでもやりたいと思っているのですが。
eclipseで接続できないところなので、そこでダンプを取って持ち帰ってeclipseで確認したいと思っていますが、
cのようにいかないですかね???
266:デフォルトの名無しさん
08/08/18 16:19:55
java vmのコアダンプを追いかける・・・言ってみただけ
267:デフォルトの名無しさん
08/08/18 16:45:23
class Oya{
public void show() throws Exception{
System.out.println("oya");
}
}
class Ko extends Oya{
public void show(){
System.out.println("ko");
}
}
public class Cui{
public static void main(String args[]){
Ko a=new Ko();
Oya b=new Ko();
a.show();
b.show();
}
}
これでb.showでエラーが出るのが理解出来ません。
bはサブクラスでオーバーライドされた方のメソッドを呼び出しているので
やっていることはa.show()と同じ気がするのですが、何ででしょう?
268:デフォルトの名無しさん
08/08/18 16:47:40
>>265
VisualVM とか jhat を調べてみるといいかも
269:デフォルトの名無しさん
08/08/18 16:52:39
>>262
URLリンク(www.jsresources.org)
270:デフォルトの名無しさん
08/08/18 16:56:53
>>267
Oya#show は Exception を投げると宣言しているので、
main の b.show() が投げる Exception をどうにかする必要がある
(実際には投げられないのだとしても、宣言してる以上、処理しないとだめ)
271:デフォルトの名無しさん
08/08/18 17:09:06
>>270
これって親のメソッドが仮に例外投げないとしたらコンパイルが通って
b.showの実行結果は「ko」になりますよね。
Oya#showはKo#showで消されているため例外投げる部分が無いものになる気がするんです。
素直にKo#showを使ったa.showは例外処理必要無いのに、
なんでOyaの参照で間接的にKo#showを使うと例外処理が必要になるんでしょう?
272:デフォルトの名無しさん
08/08/18 17:21:08
>>271
b は Oya だと宣言してるし。
273:デフォルトの名無しさん
08/08/18 17:24:36
javaの勉強中でEclipseを使ってプログラムを作り、JSP→クラスの遷移はできるのですが、html→クラスの遷移ができません。
内容はどちらもボタンを押すとデータの送信などは行わず遷移するだけなので、どちらも同じ記述をしているのですがhtml→クラスがうまくいきません。
JSP→クラスの設定はweb.xmlで記述しているのでhtmlだとweb.xmlが読み込まれないのが原因なのではないかと思っているのですが、web.xmlが使えないとなると解決方法がわかりません。
どうすればよいのでしょうか。
274:デフォルトの名無しさん
08/08/18 17:25:47
>>272
そのOyaの関数がKoの関数になってるからってことを疑問にしてるんでしょ。
275:デフォルトの名無しさん
08/08/18 17:28:50
>>271
b が Oya 型だから b.show は単純に Oya#show の宣言を見る
Oya b = new Oya();
のときと
Oya b = new Ko();
のときで b.show のエラーの有無が変わってはかなわんし
(b は同じ Oya 型。単に初期値が違うだけ)
もし
Oya b = null; とか
Oya b = hoge(); とか
Oya b = x < 10 ? new Oya() : new Ko();
とかだったらどうするよ
276:デフォルトの名無しさん
08/08/18 17:43:48
>>272,>>275
レスありがとうございます。
宣言はスーパークラスの方を見て中身はサブクラスを見てる感じなんですね。
オーバーライドで引数とか全部一緒だからそんなことも出来るのか。
277:デフォルトの名無しさん
08/08/18 17:45:55
>bはサブクラスでオーバーライドされた方のメソッドを呼び出しているので
というのが分かるのは 275 が書いたように実行時なんだな。
コンパイル時は宣言した型でしか見てないんだな。
278:デフォルトの名無しさん
08/08/18 19:39:27
>>264
> >>260
> > javaにはオペレーターは無いはずですが
> Javaにはオペレータが結構あります。
> Stringクラスだけでなくintでも+=が使えます。
> クラス型に対するオペレータでも=や==はStringクラス以外でも使えます。
例えば
public AnyClass{
int n;
String s;
public AnyClass()
{
n = 0;
s = null;
}
public AnyClass(int num,String str)
{
n = num;
s = str;
}
}
みたいなクラスがあったとして
下記のような動作させるにはどうすれば良いのでしょう
AnyClass obj1 = new AnyClass(10,"ab");
AnyClass obj2 = new AnyClass(1,"c");
AnyClass obj3 = new AnyClass();
obj3 = obj1 + obj2;
279:デフォルトの名無しさん
08/08/18 19:56:30
>>278
演算子の多重定義はサポートしてないから無理。
280:デフォルトの名無しさん
08/08/18 22:19:35
>278
public AnyClass plus(AnyClass other)
281:デフォルトの名無しさん
08/08/18 22:21:10
>>280
演算子のオーバーロードがしたいって言ってるんじゃないの?
282:デフォルトの名無しさん
08/08/18 23:04:54
>>260
× Javaにはオペレータは無い。
○ Javaにはオペレータのオーバーロードはできない。
で、Stringには連結オペレータが予め用意されている、と。
なぜ連結オペレータが用意されているかは設計者にでも聞いてくれ。
283:x
08/08/18 23:28:03
初めまして。最後のdrawLineでintを使えないといわれてしまいます。
分かる方いらっしゃいますか?
よろしくお願いします。
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Font;
import java.math.*;
/**
* @param args
*/
public class applet5no1 extends Applet
{
public void paint(Graphics g)
{
int x1,y1,sec;
sec = 30;
x1= 6*sec;
g.drawLine (100, 100,100+70*Math.cos(60 * Math.PI/180) , 100-70* Math.sin(60 * Math.PI/180));
}
}
284:デフォルトの名無しさん
08/08/18 23:31:43
intが使えないから適切な型に変換しろってこと
285:x
08/08/18 23:33:27
すいません。具体的にはどうするかわかりますか?
286:デフォルトの名無しさん
08/08/18 23:43:49
>>283
sinとかcosの結果はdouble型
drawLineの引数はint型
なので型が合わない
intに変換しる
287:x
08/08/18 23:45:02
ありがとうございます。助かりました
288:x
08/08/18 23:59:08
先ほどのものです。
いろいろ試したのですが、どうしてもうまくいきません。
具体的にどうすればいいか教えてもらえませんか?
289:x
08/08/19 00:13:44
いろいろ試したというのは嘘で、試そうにもやり方が全く分からないので、手取り足取り教えてくれませんか。
いろいろ試したのなら、どう試したけれど、どううまくいかなかったが書けるはずなのに、
それができないから嘘がばれると思ったので正直に書きました。
290:デフォルトの名無しさん
08/08/19 00:15:58
お前馬鹿だろ
リファレンス見るとかググるとか思いつかないのか
そんなことだと永久に2chに聞きに来るつもりか?
291:x
08/08/19 00:20:42
リファレンスってなんですか?どこにあるのか分かりませんし、見方が分かりません。
ググろうにも何をキーワードにすればいいか全然思いつきません。
ここは初心者にきびしいネットワークですね。
292:デフォルトの名無しさん
08/08/19 00:22:10
>>291
君がゆとり杉なのかもね。
293:デフォルトの名無しさん
08/08/19 00:33:40
実は趣味でプログラムしてます。今42歳でニーとですす。
294:デフォルトの名無しさん
08/08/19 00:35:30
>>291
URLリンク(java.sun.com) からJava SEのリンクを辿っていけばそのうちに辿りつけますよ。
画面左上はパッケージのリスト、左下にクラスのリスト、右がメインビューワとなっております。
防御スクリーンを展開したままフェイザーと光子魚雷の準備を抜かりなきようお願いもうしあげます。
295:デフォルトの名無しさん
08/08/19 00:36:09
>>293
名前のxが抜けてる抜けてる
296:デフォルトの名無しさん
08/08/19 00:48:39
>>291
・貴方が書いている言語はきっと“Java”
・二人も“変換”しろと言っている
いくら考えても無いところからキーワードを思いついたりしないだろうな、すでに書いてあるのに……
297:デフォルトの名無しさん
08/08/19 00:56:37
初心者
【人々】
(1)
・「覚えよう」と言う意思の無い人。
・こう言う人は、永遠の初心者。
(2)
・全てをチャラにできる魔法の言葉。
・質問をする時にこの言葉さえつければ、何を聞いても良いと勘違いしている方がいらっしゃる。
・「初心者なら、そういう難しい事は考えずにまずは基本を覚えなさい。」と、言いたくなる事がある。 でも、お客さんだしそんな事は言えないしなぁ・・・。
某辞典から
いや誰とは言わないけどね
298:デフォルトの名無しさん
08/08/19 00:57:21
Sun SPOTの話題はどこに持ってけばいいんでしょ?
299:デフォルトの名無しさん
08/08/19 00:59:36
初心者なんですけど、ジャヴァってなんですか?アップレットとどう違うんですか?
300:デフォルトの名無しさん
08/08/19 01:04:25
>>299
じゃう゛ぁ(java)は今をときめくニューウェーブ、時代の最先端を行く今注目のプログラミング言語です。
アプレットはIEやFF上で動作するJavaプラグインを用いた実行形態の一種です(?)
Applet/JAppletクラスを用いて作成します。
通常のJavaアプリはApplet/JAppletクラスを使いません。
301:デフォルトの名無しさん
08/08/19 01:18:53
アプレットでフラッシュみたいのはやんないんですか?
何でみんなフラッシュ使うんでしょうか。
初心者なんですけど、フラッシュの方が最先端な気がします。
302:デフォルトの名無しさん
08/08/19 01:23:00
スレの無駄だからそろそろ初心者ごっこはやめろ
誰も本気で釣られんよ
303:デフォルトの名無しさん
08/08/19 01:28:02
初心者だからって馬鹿にしないで下さい!
304:デフォルトの名無しさん
08/08/19 09:41:23
ActionScriptも多少触ったけど、言語仕様がルーズ(型の扱いとか)なのと
根っこのトコの動作が見えにくいのとでなんかやり辛いんだよなぁ
マルチスレッドが普通にできないのもめんどい
グラフィックやサウンド系の扱いが手軽なのと、プラットフォームの普及度から言うと
よっぽど複雑な処理やるんでもなければFlashでやるのがいいでしょうね
305:デフォルトの名無しさん
08/08/19 10:00:45
アプレット技術はそのままで、ブラウザ埋め込みレットとしてアプレットを拡張すればいいんじゃないかと思う。
それこそアプレット・アプリケーション・フレームワークが整備されればいいのかな。スウィングと同じように。
306:デフォルトの名無しさん
08/08/19 10:20:26
javaのpipeってLinuxのmkfifoでできる名前付きパイプを実現するものでしょうか?
307:デフォルトの名無しさん
08/08/19 10:32:26
java.nio.channels.Pipe の事なら、そもそもプロセス間通信できなかったような
308:デフォルトの名無しさん
08/08/19 16:34:14
アプレットをいろいろといじっているのですが、ボタンを付けることについて質問です。
ボタンを押されるたびに、たとえば"A"という文字を表示するxとy座標を変えて行きたいのですが、
public void actionPerformed(ActionEvent e){
if(e.getSource() == btn){;
x+=20;
y+=20;
repaint();
}
}
とすれば、g.drawpaint("A",x,y)がリペイントされて、ボタンを押されるたびにx,yが20ずつずれて表示されると思っていたのですが
最初に押したときはxとyが20ずつ動いたのですが連続してボタンを押しても変わることはありませんでした。
押すたびにずれるようにするにはどうすればいいでしょうか?
よろしくお願いします。
309:デフォルトの名無しさん
08/08/19 16:39:47
きっと何処かで毎回xとyを0にしてるんだな
310:デフォルトの名無しさん
08/08/19 17:03:31
最初にボタンを押したときは動くのでx,yがリセットされていることは無いと思うのですが、
class MyFrame extends Frame implements ActionListener{
Button btn;
int x = 50,y=50;
public MyFrame(String title){
setTitle(title);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void paint(Graphics g){
btn = new Button("ボタン");
btn.addActionListener(this);
add(btn);
btn.setBounds(120,200,90,30);
g.drawString("A",x,y);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == btn){
x=x+20;
y=y+20;
repaint();
}
}
}
これはフレームになっていますが、基本的にかんな感じです。
311:デフォルトの名無しさん
08/08/19 17:06:57
なんでpaintのたびにボタンが増えてるの・・?
312:デフォルトの名無しさん
08/08/19 17:32:02
すいません。ボタンが増えてました・・・paintから出したら上手く動きました。
有難うございました。
313:デフォルトの名無しさん
08/08/19 17:59:23
Object.classって何?
314:デフォルトの名無しさん
08/08/19 18:13:30
>>313
Object クラスを表す Class クラスのリテラル
new Object().getClass() と同値
315:デフォルトの名無しさん
08/08/19 18:52:33
>>314
㌧クス
316:デフォルトの名無しさん
08/08/19 19:08:49
メモ帳から、改行やスペースを含む文字列を読み込んで、char型の配列に入れるというものを作りたいのですが、うまくいきません。
String型の配列に入れる事は出来たのですが、Char 型に変換することができませんでした。以下は私のソースプログラムです。
public class Main{
public static void main(String[] args){
List<String[]> list =new ArrayList<String[]>();
String cell[]=new String[1000];
try{
FileReader fr =new FileReader("test.txt");
BufferdReader bf =new BufferedReader(fr);
String st =null;
while((st= bf.readLine())!=null){
String[] line=st.split("");
list.add(line);}
for(String[] values: list){
for(String value: values){cell[i]=value;i=i+1;}}
}catch(IOException e){}}}
317:デフォルトの名無しさん
08/08/19 19:37:16
>316
Stringオブジェクトからcharを取り出す方法があれば良いのかな
> char java.lang.String.charAt(int index)
それから、BufferedReader を使うと改行が消えるのでご注意あれ。
318:デフォルトの名無しさん
08/08/19 19:39:19
String.toCharArray()っていうそのまんまなメソッドもあるよ!
319:デフォルトの名無しさん
08/08/19 21:19:33
BufferedReader#read(char[] cbuf, int off, int len)じゃイカンのか
320:316
08/08/19 21:23:12
ありがとうございます。アドバイスを踏まえ以下のように改良したのですが、
1行しか読み込むことができません。バッファを使っているせいかとも思ったのですが、バッファを消すとエラーになってしまいます。
public class Main{
public static void main(String[] args){
List<String[]> list =new ArrayList<String[]>();
Char cell[]=new Char[1000];
try{
FileReader fr =new FileReader("test.txt");
BufferdReader bf =new BufferedReader(fr);
String st =bf.readLine();
for(int i=0;i<100;i++){
cell[i]=st.charAT(i);
System.out.print(cell[i]);}
}catch(IOException e){}}}
321:デフォルトの名無しさん
08/08/19 22:15:13
readLineを1回しか呼んでないような気がするが
322:320
08/08/19 22:48:51
>>321
確かに・・そうですね・・
でも、どうすればいいでしょう・・;;
323:デフォルトの名無しさん
08/08/19 23:23:47
ファイル全体を1個のchar配列にすればいいのか?これでどう?
BufferedReader reader = new BufferedReader(new FileReader("test.txt"));
StringBuffer buffer = new StringBuffer();
int c;
while ((c = reader.read()) != -1) {
buffer.append((char) c);
}
reader.close();
char[] array = buffer.toString().toCharArray();
324:320
08/08/19 23:39:07
>>323
一文字ずつを一つ一つの配列に入れたいです。100文字あったら100個の配列に入れるようなイメージです。
ソースプログラムありがとうございます。書いてある事はある程度理解できたのですが、分からないところもありました。
System.out.print(array); と加えたのですが、何も表示されず(´・ω・`)という顔をしてしまいました。
何を出力すれば良かったのでしょうか
325:デフォルトの名無しさん
08/08/19 23:42:03
配列はそのままprintlnしても中身は出ない
System.out.println(Arrays.toString(array));
326:325
08/08/19 23:48:01
って、ウソでした
試してみたら普通に出たorz
test.txtの中身がないとか?
327:320
08/08/20 00:00:25
何故かうまくいきません・・
よろしければソースを丸ごとコピペしたいので、貼り付けて貰えませんか?
一番最初の宣言からです。
328:デフォルトの名無しさん
08/08/20 00:15:03
>>327
どーぞ
URLリンク(rg550.hp.infoseek.co.jp)
329:320
08/08/20 00:31:02
>>328
ありがとうございます。できました!
とても助かりました。
宣言のところで、いつもchar array []としていたのですが、char [] arrayも同じなんですね。
330:デフォルトの名無しさん
08/08/20 00:34:33
>>329
というより、後者が推奨。
331:デフォルトの名無しさん
08/08/20 00:40:09
>main(String[] args)
その割にはmainはちゃんと後者で書いてるのね。
いちおうこれでもいけるけど main(String args[])
332:デフォルトの名無しさん
08/08/20 01:01:49
二次元配列なら3通りの書き方ができるよ
int[][] array;
int[] array[];
int array[][];
333:デフォルトの名無しさん
08/08/20 01:34:30
JARファイルの中にあるJARファイルにクラスパスを通すことって可能でしょうか・・
334:デフォルトの名無しさん
08/08/20 01:51:38
cloneの実装の仕方について教えてください。
A-B-C
のように継承関係にある場合CloneableをAにつけてそのあとどうすればいいんでしょうか?
public Object cloneをAに実装し、それをB、Cでもオーバーライドする?
335:デフォルトの名無しさん
08/08/20 01:58:35
>>334
class A implements Coneable {
@Override
public Object clone() {
try {
return super.clone();
} catch (CloneNotSupportedException e) {
ポイントはAでsuper.clone();をしっかり呼ぶこと、浅いコピーでいいならこれだけでよい。
336:デフォルトの名無しさん
08/08/20 02:19:55
てかObject#clone()は仕様上シャローコピーだろ。
337:デフォルトの名無しさん
08/08/20 02:46:02
ディープコピーがしたいのです。
クラスBとCはどうすればいいのでしょうか?
338:デフォルトの名無しさん
08/08/20 02:55:57
>>337
class A implements Cloneable {
public Object clone() {
try {
A a = (A) super.clone();
// ディープコピーのための追加ロジック
return a;
B C にもディープコピーのための追加ロジックが必要なら同じようclone()をoverrideして
super.clone() をよび、それから追加ロジック。
必要ないならそのまま継承すればいい。
339:デフォルトの名無しさん
08/08/20 12:11:55
以前このスレッドでjavaの初心者(レベル2)向けの本として
javaの教科書(SJC-P対応)的な本と、Effective Javaという本を紹介してもらいました。
教科書的な本は読み終わりましたので、次のステップに向かいたいと思います。
何か良い本があれば教えていただきたいので、よろしくお願いします。
僕の考えている弱点、問題意識としては
1:コレクションやマルチスレッド処理の仕組みはわかるが、実際の使い道がイメージできない。
→実践的なプログラムのサンプルが読みたい。
2:英語直訳のような長文は苦手で頭に入らない。
→なるべく簡潔な日本語で、図を用いて説明してもらえると有難い。
という二点があります。
340:デフォルトの名無しさん
08/08/20 12:20:37
ConcurrentSkipListSetっていう名前のクラスをつかったら
プログラムを実行するたびに、セットは同じ要素は一つしか入らないはずなのに、
同じ要素が何個も一つにセットに入ったり、一つだけ入ったりしたんだけど。
なぜですか?
TreeSetにしても同じような症状でした。
でもCopyOnWriteArraySetにしたら同じ要素は一つしかありませんでした。
どうしてかおしえてください。
341:デフォルトの名無しさん
08/08/20 12:22:49
>>340
再現する具体的な例を。
342:デフォルトの名無しさん
08/08/20 12:25:53
>>341
再現する例はコードが長くなるので出せません。
343:デフォルトの名無しさん
08/08/20 12:27:27
じゃうp
344:デフォルトの名無しさん
08/08/20 12:47:19
秘密のコードなので出せません。
345:デフォルトの名無しさん
08/08/20 12:49:05
>>339
実践的なコードはWebでたくさんあるし、しかも説明つきだから自分の足使ったら?
346:デフォルトの名無しさん
08/08/20 13:00:13
>>345
残念ながら、現在、諸事情であまりパソコンをいじれる状態にないのです。
それから、本に線を引いたりして叩き込まないと頭に入らないタイプでして。
347:デフォルトの名無しさん
08/08/20 13:03:01
>>345
じゃあ諦めろ
348:デフォルトの名無しさん
08/08/20 13:04:16
>>347
キレやすい若者ですね。
349:デフォルトの名無しさん
08/08/20 13:10:13
>>339
結局君は、わがままな教えて君とかわりないが?
350:デフォルトの名無しさん
08/08/20 13:12:15
>>346
平日の昼間っからパソコンいじってて、それも2ちゃんやってるし、嘘はいけないだろ。ニート君は金払って学校いけよw
351:デフォルトの名無しさん
08/08/20 13:19:23
自分が何が欲しいかを具体的にわかっている場合はwebが有効なのですが
初心者の毛が生えたレベルでは必要な知識のイメージが漠然としているため
あまり有効ではありません。
マックに行きたい人と、何か食べ物が食べたい人では、どちらが早く目的地にたどり着き
満足する食事を得られるかということを考えてみればわかると思います。
またwebでは目次のようなものがないか、あっても未整理である場合が多く見受けられますし
索引が利用できないのも大きなデメリットでしょう。
さらにはチェックやマークが出来ないため、再度読み直した際の効率が非常に悪い。
もっと言えば、いちいちスクロール、クリックするのが非常にめんどいという欠点もあります。
ちょっとした知識だけを得ればいい中級以上の方とちがい、全体を系統立てて学びたい初心者には
大きなストレスとなるでしょう。
なんでもwebという考え方には同意できません。
>>349
最初からわがままな教えて君のつもりですけど。
>>350
いや、正直言って無職だけどさ、パソコンあるのが実家でね。行ったり来たりなわけ。
352:デフォルトの名無しさん
08/08/20 13:22:06
お前は一体プログラムで何を作りたいんだ?
まず目的を示してそこに向かう手段のために
本を買うわけだろ?
353:デフォルトの名無しさん
08/08/20 13:23:35
public class A implements Serializable {
private static final Logger logger = Logger.getLogger(Aclass);
}
このクラスをシリアライズするとloggerもシリアライズされるでしょうか?
loggerをデシリアライズするのはまずいと思うので、transientをつけるべきでしょうか?
354:デフォルトの名無しさん
08/08/20 13:30:33
>>352
無職だから就職のために必要な最低限の知識が欲しい。
創りたいものは漠としている。
現実的ではないかもしれないが、最終的にはひきこもり向けの学習支援アプリを創りたい。
理系科目を、直感的に操作して学習できるようなアプリがいい。
セカンドライフ的な要素も付け足してオンライン予備校にしたい。
355:デフォルトの名無しさん
08/08/20 13:32:18
>>339,345
こういう奴はキモイんだよな。なんつーか虫唾が走るっつーかwwwこういう奴はどうしたらいい?
356:デフォルトの名無しさん
08/08/20 13:35:48
>>355
俺向けにチェックやマークができて再読に向いていて、
自分の欠点を把握、補強できるJAVA学習支援アプリ創ったらいいと思うよ!
ほら、行った行った。
357:デフォルトの名無しさん
08/08/20 13:59:40
>>351
うええ。
今、実家にいて、
目の前のハコで調べられることを、調べないで、
初心者にはムリ!!!
とかいってんのか。
それなら、初心者とかじゃなくて、無能ってことじゃね?
358:デフォルトの名無しさん
08/08/20 14:03:11
>>357
調べられることは調べてんよ。
でも本のほうが効率いい。
webは再読に向かない。
早く教えろよ。
359:デフォルトの名無しさん
08/08/20 14:06:13
>>358
きみにはデザインパターンが不足してると思うから、
Java言語で学ぶデザインパターン入門
を買うといいよ。
360:デフォルトの名無しさん
08/08/20 14:13:56
>>351
君の相手をするのが面倒くさい
オジサンは酒飲んで黙ってろ
361:デフォルトの名無しさん
08/08/20 14:16:35
>>359
うわー、ありがとうございます。
早速カートに入れてきました。
公式ページも見てきましたが、僕の知らないことばかりで、非常に読むのが楽しみです。
362:デフォルトの名無しさん
08/08/20 14:16:55
>>359
それよりも、こいつのような30代ニートにはコミュニケーションスキルの方が先だと思うw
363:デフォルトの名無しさん
08/08/20 14:21:28
>>362
まだ二十代だよ。
しゃべったらボロが出るけど、しゃべらないで笑ってるからいい人扱いだぜ。
おまえらマジ役にたたねーから、俺、いつか初心者向けのJAVA学習サイト作るわ。
webはマルチスレッド、書籍はシングルスレッド。
おまえらだっていきなりwebで学んだわけじゃねーくせに。
ペッペッ!
364:デフォルトの名無しさん
08/08/20 14:22:24
Java言語で学ぶデザインパターン入門
とかも知らないところを見ると、PCすら使えない無能な教えて君だな。きもすぎる
365:デフォルトの名無しさん
08/08/20 14:24:32
あれだろ
無職で実家とか言って、「面接20社受けて全部落ちました。Orz」とかの無能ニートじゃねーの?(笑)
素直にJavaを教えてる学校いった方がいいよw
366:デフォルトの名無しさん
08/08/20 14:27:34
>>361
>>363
まあ、まずは俺のチンコしゃぶれよ
367:デフォルトの名無しさん
08/08/20 14:38:41
>しゃべったらボロが出るけど、しゃべらないで笑ってるからいい人扱いだぜ。
ん?十分ボロが出てるみたいだけど、どういうこと?
368:デフォルトの名無しさん
08/08/20 14:46:44
>>365
ブルジョワプログラマーめが。
大学の奨学金もまだまだあるのに専門行けっかよ。
それに勉強は本読んだほうが早い。
>>366
throws IOExceptionだ。
サンプル集はwebにはあるが書籍はあんまり無いな。
>>367
リアルではしゃべらないで笑ってんだよ。
俺がいると職場がなごやかになるんだぜ。
webだとボロが出るよ。俺はものの考え方がおかしいからな。
今日は>>359さんみたいな聖人に出会えたからいいや。
369:デフォルトの名無しさん
08/08/20 14:49:08
>>363
それ、単なるのけ者だよ。
まともなヤツは快活だからな。
370:デフォルトの名無しさん
08/08/20 14:51:15
>>368
本を読めば何とかなるって、
ヤセレばキレイになるって幻想と一緒じゃね?
371:デフォルトの名無しさん
08/08/20 14:53:22
質問です。
ハードウエアでいうIRQみたいなのをJAVAで実装するにはどうすればいいでしょうか?
複数のI/OコンポーネントとGUIから構成されるソフトを作っているのですが、今の実装だと
全てのクラスに中核モジュールへのレファレンスを持たせて、その内部状態をI/Oイベントがあると
*I/Oモジュールから*変更させるように作っているのですが、これだと中核モジュールを変えたときに
広がる波紋が大きそうな気がして心配です。
ですから、各I/Oモジュールが何かのイベントを探知すると中核モジュールにイベントを投げて
中核モジュールのみが自らを操作するようにしたいのですが、その方法がよくわかりません。
(中核モジュールにI/Oモジュールでイベントがあったことを探知させる方法が分かりません)
ExceptionをI/OやGUIモジュールから中核モジュールに投げる方法もあるかな、と思ったのですが、
例外は例外用にとっておきたいと思います。
ご教授お願いします。
372:デフォルトの名無しさん
08/08/20 14:55:54
無能力者なのに就職活動もしないで、まったく下地の無いプログラミングに時間を割いている時点で、
バカとしか判定しようが無いな。
373:デフォルトの名無しさん
08/08/20 15:01:32
>>371
「I/Oコンポーネント」と「I/Oモジュール」、「I/Oイベント」の関係がわからないな。
オブジェクト間のやり取りが変わるような部分を書き換えれば、影響するのは当たり前じゃね?
イベントでもメソッドの呼び出しでも変わらないだろ。
374:デフォルトの名無しさん
08/08/20 15:07:07
>>372
一見、大学の奨学金もらって頑張ってるようだけど、就職活動もしないで実家にひきこもってるただの無職ニートだろ。
自尊心が高いだけの単なるナルシストなんじゃね?
375:デフォルトの名無しさん
08/08/20 15:12:06
なんかここでも夏の虫が沸いてるのか?
376:デフォルトの名無しさん
08/08/20 15:15:29
>>373
よく考えてみたら、確かにまったく変わりませんね。
さらに考えてみたらちょっとデザインを変えるだけでまったく
解決できる問題だということも分かりました。
ありがとうございます。
377:デフォルトの名無しさん
08/08/20 15:17:35
ゲームばっか遣ってる無職ニートよりはましだと思うけど。
378:デフォルトの名無しさん
08/08/20 15:20:14
>>368
Javaを教えてる講座など申し込んで短気集中か、今の時代ならHPの方も良くまとまってるページが多いですよ。
結局は、字を読むなら本と同じですし。
変に本の方に権威を立てて過信してませんか?
MSのC#とかも初心者教育に力を入れてるし、MSDNのWeb一つでまとまってるのでお勧めです!
379:デフォルトの名無しさん
08/08/20 15:22:05
>>374
モラトリアム黴ってやつだな。
380:デフォルトの名無しさん
08/08/20 15:26:52
>>372 >>374
ペッペッ!
一時期ちゃんと働いてたっつの。
>>378
そうですねー。
無職ですから、コストパフォーマンスを考えると、どうしても講座をうける気にはなれないんです。
でも、webはお金もかからないですし、もうちょっと柔軟に考えてみるようにします。
ちょくちょく実家に来るようにしますかね。
381:デフォルトの名無しさん
08/08/20 15:27:01
>>378
間違ったこと書いてる本だって、一杯、出版されてるしな。
入門書なんか、見た目が派手なだけで完成してないサンプルとか、
本当にタイトルだけ奇抜なんてことも多いしな。
382:デフォルトの名無しさん
08/08/20 15:32:50
大学の奨学金が嘘じゃないってことよりも、学歴が三流以下の大学じゃその辺で寝てるニートとたいしてかわりないだろ。それも「ペッペッ! 」とかキモイし、こいつはリアルでキモイんだろうな
383:デフォルトの名無しさん
08/08/20 15:34:33
>>380
まずは、俺のチンコしゃぶれよ。
384:デフォルトの名無しさん
08/08/20 15:47:41
>>382
俺がリアルでキモかろうがキモくなかろうが、どうでもいいことだと思うんだが。
問題は今キモいことだけだろ。
なんでリアルまで心配してくれるんだ。
人間、学歴は関係ないよな。
俺はろくな努力もしないでマーチより上の国立大学に受かったために
無駄にプライドは高いんだが、実力は無いし、社会的なスキルはほとんどない。
でも、プログラマにはそういうやつも割といるって聞いたぜ。
あんたの同僚にもいるだろうよ。
>>383
そういうのは実装してないんだわ。
385:デフォルトの名無しさん
08/08/20 15:50:15
俺はろくな努力もしないでマーチより上の国立大学に受かっ
386:デフォルトの名無しさん
08/08/20 15:53:56
>>384
きみ、もうキモイから消えてくれないか?
大学受かったかよりも、その大学を卒業(満了)できたのかが社会では重要なんだけど。
それも君のように無能で無職なものにとってそんな肩書きは正しく「豚に真珠」じゃないか?
387:デフォルトの名無しさん
08/08/20 15:55:22
>>384
Javaなんか勉強するよりC#の方がMSがバックにいるし将来の為にいいよ。
そうだ!大学院目指したらどうだろう?
388:デフォルトの名無しさん
08/08/20 16:11:48
デザインパターンで雁字搦めにry
389:デフォルトの名無しさん
08/08/20 16:16:33
また夏厨か。くどいな。
390:デフォルトの名無しさん
08/08/20 16:39:58
>>387
ありがとうございます。
C#はJAVAの下地があったほうがわかりやすいみたいですね。
もう少しJAVAがわかるようになったら浮気するか考えてみたいと思います。
院は嫌です。僕の大学だけかもしれませんが、院に行った友人の話によると
出世争い、研究室の私物化、ゴマすり、お粗末な博士論文など、あまり魅力的に思えません。
時間も金もないですし。
せっかくアドバイスもらってのに、スイマセン。
391:デフォルトの名無しさん
08/08/20 16:41:33
思うんだけど、こういう人が次々とWebでJavaの説明ページ作ってんじゃないのか?
それなら本なんか頼りにするよりも、間違えやすいところとかコツとかあるわけだし、手っ取り早く習得できると思うんだけど…
392:デフォルトの名無しさん
08/08/20 16:43:34
おまえら、くそJavaなんかやめちまえ!プログラム言語は
総じてマイクロソフトの製品じゃないとだめだ!PHPもPerlもくそ!
Javaはもちろん一番くそ!
おまえらにお勧めの言語はAccessVBAだ。
393:デフォルトの名無しさん
08/08/20 16:47:54
プログラミングとかはGPLが最高らしいよ。
Microsoftはコピーライトだから駄目らしい。
あと、楽しみが人間として一番高度らしいから、楽しみでプログラミングしている奴が
最強らしいよ。
394:デフォルトの名無しさん
08/08/20 16:48:12
だいたい、プログラムのすれでも、Javaスレの連中とC#スレの連中を比べると
教養の差がわかる。
395:デフォルトの名無しさん
08/08/20 16:49:00
だから、楽しみでAccessVBAしろ!
396:デフォルトの名無しさん
08/08/20 16:49:25
>>395
accessVBAはコピーレフトじゃないだろ。
397:デフォルトの名無しさん
08/08/20 16:52:25
>>390
そういうお前は、ひきこもり兼ニートじゃないの?
お前の魅力に関係なく、無職より院生のほうがましw
398:デフォルトの名無しさん
08/08/20 16:54:00
すごいですね!どこの大学卒業したんですか?やっぱり高学歴でお勉強も出来るともてるでしょ♪
399:デフォルトの名無しさん
08/08/20 16:54:54
自作板とかPC関連の板ってスルーできないやつ多いよね
400:デフォルトの名無しさん
08/08/20 17:00:00
教養の差は確かにあるけど、作るプログラムとはあまり関係ないだろ。
ソフトで言えばJavaよりVB(旧VB)の方が使いやすくて便利なのが多いんだけど…
401:デフォルトの名無しさん
08/08/20 17:15:22
マーチ以上の大学で援助金ももらってるとか言う嘘つきって2chによくいるよねw
あまりパソコン触れないとかいいつつも、2chだけは欠かさずチャックしてるしww
402:デフォルトの名無しさん
08/08/20 17:17:24
>>392
何言ってんだよ。鼻くそはオマエ
403:デフォルトの名無しさん
08/08/20 17:21:55
フォルダを削除するコードは、以下の感じでよろしいでしょうか。
File filelist[] = folder.listFiles();
for (int i = 0; i < filelist.length; i++) {
filelist[i].delete();
}
folder.delete();
404:デフォルトの名無しさん
08/08/20 17:25:04
>>400
vbのselectは入力のチェックとか楽チンだった。
405:デフォルトの名無しさん
08/08/20 17:29:29
高学歴をうたってはいたが、都合いいことばかり言うカス・ニートと同じだったか・・
406:デフォルトの名無しさん
08/08/20 17:33:40
>>401
俺がパソコンを触れないのは、パソコンのある実家とそれ以外を行き来してるからだ。
前にさりげなく匂わしてるあるはずだが。
実家に来たら三十秒に一回ペースでにちゃんねるとチェックしているが、チャックはしてない。
407:デフォルトの名無しさん
08/08/20 17:38:23
>>406
オマエ、12時から張り付いてるぞ。
>>339
>339 名前:デフォルトの名無しさん[sage] 投稿日:2008/08/20(水) 12:11:55