【初心者】Java質問・相談スレッド96【大歓迎】
ずるしてらくしてかれいに2げっとかしらかしら〜
public S_T_A() { addKeyListener(new Game()); ・・・・ } を追加してみたのですがうまくいきませんでした・・・
とりあえずオレの環境でも動かしてみた。 Eclipseでやってみたがウィンドが表示されてどこで何を押そうが Eclipseのコンソール上にはなにも表示されず。 当然ながらウィンド上も変化なし(これは当たりだし求められている機能ではないので問題ないが 何がわるいのかねぇ・・・ 多分だけどウィンドが邪魔してるんじゃないかと思われる。 GUIをすべてカットしてCUIだけにすれば動きそうな気がするがそれじゃ意味ないしな すまんが今すぐは答えられそうにないわ つーか2chクソ重たい
あー。 何か最初println("テスト")ってやってたのを Printクラス使うように変えてるじゃん。 そのprintメソッド呼ぶようにしないと・・・。 Print print = new Print(); print.print();
おぉ!!! できた! ホントに助かりました! これで次の作業に進めます。 本当にありがとうございました。 そしてご迷惑をおかけして申し訳ありませんでした。
おめっ この調子だとこの先つまりまくるだろうから、どうしても助けが必要ならまたこいw ま、がんばれよ
gameの方もgame.init()呼び出さないとKeyListnerとして登録されないんじゃないの?
前スレ993でS_T_Aの方で登録するように変更したのか。 992のソースしか見てなかったよ。 それにしてもひどいクラス設計だ。
たぶんappletと勘違いしてる悪寒。 appletと違ってinitメソッドが自動的に呼ばれることはない。 初期化処理はコンストラクタに書くか、 コンストラクタに書くのはタイミング的に駄目なのならinitを自力で呼ぶか汁。
ひどいクラス設計なのは・・・言わないでください・・・
本人も自覚しております
>>10 を参考にいろいろいじってみます。
いきなり色々と問題点が指摘されて本人パニくってそうだなw
14 :
uchu :2007/01/13(土) 19:45:20
>>前スレ905 コメントおよび他ウェブページを参考に、Swingテキストフィールドへの 表示文字列の時間制御を試みていますが、3日経ちまだ解決に至っており ません。SwingのThreadが排他的に実行されることは理解したことは 進歩ですが、それを踏まえたプログラム実装の方は未完成です。どこが 問題が見ていただけないでしょうか? public class eventDispatch extends JApplet implements Runnable { public void init() { //テキストフィールドはtf1,ボタンはbt1 } public void run() { bt1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { for (i = 5; i > 0; i--) { new Thread(new Runnable(){ public void run(){ // ラベルを "i秒" にする処理 SwingUtilities.invokeLater(new Runnable(){ public void run(){ tf1.setText("あと"+i+"秒"); } }); // 1秒待つ処理。 try { Thread.sleep(1000); } catch (InterruptedException e1) { System.out.println(e1); } } }).start(); } } }); }
>>14 eventDispatch#run() はどこから呼び出されるんじゃろ。
Threadとは何なのかちゃんと分かってない希ガス。
SwingのTimerコンポーネントじゃダメなのかしらん。
>>14 何がやりたいのかよく分からんのだが、こんな感じか?
スレッドは理解せずに使うと痛い目にあうから使わないで済むなら使うな。
import java.awt.event.*;
import javax.swing.*;
public class A extends JApplet implements ActionListener {
private JTextField t;
private Timer timer;
public void init() {
t = new JTextField("5");
add(t);
timer = new Timer(1000, this);
timer.start();
}
public void actionPerformed(ActionEvent e) {
int t = Integer.parseInt(this.t.getText()) - 1;
this.t.setText(String.valueOf(t));
if (t <= 0) timer.stop();
}
}
17 :
デフォルトの名無しさん :2007/01/13(土) 20:35:48
18 :
デフォルトの名無しさん :2007/01/13(土) 21:15:05
>>17 Message#getFlags()→Flags#getSystemFlags()で取ったフラグの中に、
Flags.Flag.RECENTフラグがあるメールが新規メールだった気がする。
リンク先のソースを見ていないが、
メールを取ってきた時点で各メールのフラグを保存しておいて、
表示時にフラグを見て新規かどうかで色を変える、でいいんじゃないか?
>>17 ぱっと見、メールの一覧は
JTable で実装されている感じですね。
見た目の変化に関しては
TableCellRenderer を自分で作る形になると思います。
20 :
19 :2007/01/13(土) 21:20:30
>>17 >>19 あ、DefaultTableCellRenderer を使って
setForeground メソッドを呼び出せば簡単かな?
21 :
uchu :2007/01/13(土) 21:57:41
>>16 スレッドは確かによくわかっていなかったので、使いたくなかったのだが
Timerという便利なものがあって助かりました。手持ちの本のswingの章には
Timerというものの記述が一切なかったもので。。
やりたかったのは、人間対コンピュータ(複数)のターン制のゲームで
コンピュータの処理が速すぎるので、適当に時間をとって、各コンピュータが
何をしたのかを一定時間表示したかったのです。
ありがとうございました。
ちなみに、add(t)を getContentPane().add(t)としてコンパイルできました。
22 :
17 :2007/01/13(土) 22:11:22
>>18-20 お二方ありがとうございます
早速やってみることにします
また何かありましたらお願いします
23 :
uchu :2007/01/13(土) 22:41:02
>>16 追加です。やっぱり自分が実現したいことがこの方法では
実行できないようです。やりたいことは
(処理1:ある計算と、計算結果のテキストフィールドへの表示)
(処理2:1秒停止)
(処理3:別の計算と、計算結果のテキストフィールドへの表示)
のようなことです。処理2が終わる前に処理3が走ってしまうと
処理3の結果のみが見えて、その後1秒停止してしまうのですが
それを回避したいのです。
perlなら
処理1;
sleep(1);
処理2;
で済むのですが、javaではsleep(1)に対応するものは
どのように作るのでしょうか?それを勉強しているうちに
Threadに入り込んでしまったのですが。。
25 :
uchu :2007/01/13(土) 23:00:13
>>24 class mThread extends Thread {
public void run() {
//SwingUtiliies.invokeLater(new Runnable() {
//public void run() {
try {
sleep(1000);
} catch (InterruptedException e) {
}
//}
//});
}
}
のコートでコメント部分はいまいち書き方がわからず、
このままではコンパイルできず。
アクションリスナー中に
●処理1の結果をテキストフィールドに表示
mThread thread = new mThread();
thread.start();
try {
thread.join();
} catch (InterruptedException e1) {
}
●処理2の結果をテキストフィールドに表示
としているが、どうしても処理2の結果が表示された
あとにプログラムの実行が1秒とまるコードになって
しまうのです。
それは
>>14 でやってたことだよね。
>>16 氏の策は試してみなかったの?
timer = new Timer(1000, this);
ここが sleep(1) 相当の部分になるわけだけど。
27 :
uchu :2007/01/13(土) 23:48:01
>>26 16氏の方法をイベント駆動型にする方法がわからなかったのだけど、
public void actionPerformed(ActionEvent e) {
if(e.getSource() == bt) {
this.t.setText("文字列1"); // 処理1の結果
timer = new Timer(1000, this);
timer.start();
} else {
timer.stop();
this.t.setText("文字列2"); // 処理2の結果
}
}
でうまくできたみたいです。ありがとうございます。
28 :
デフォルトの名無しさん :2007/01/14(日) 00:09:51
俺たちはいつも2ちゃんねるに見守られさまざまなカキコをしてきた。 その2ちゃんねるが閉鎖されるなんていやだ。 そのためにはどうすればいいか?抗議をすればいい いまこそ2ちゃんねるを守るために俺は秋葉原駅電気街出口で抗議をしようと思う。 みんな、手を貸してはくれないか? 手を貸してくれる同志は下記参照 日時 2007年1月13日 日程 午前10時から秋葉原駅電気街出口にて民衆に訴えかける、午後1時終了予定 必ず「2ちゃんねるが閉鎖されるのを黙ってみていられません、どうか2ちゃんねるが閉鎖されるのに反対してください」と言ってください どうかコピペして広い範囲に知らせてくれ。
> 日時 2007年1月13日 もう終わってるねー
>>27 そういうことでTimerを使うのはなんだかなあという気がする。
スレッドを明示的に使ってないのである意味単純かもしれないが。
sleepはThreadクラスのクラスメソッドのsleepを使えば自分自身のスレッドを眠らせられる。
例えばこんな感じ。
import java.awt.event.*;
import javax.swing.*;
public class A extends JApplet implements ActionListener {
private JTextField t = new JTextField(20);
private JButton b = new JButton("start");
public void init() {
getContentPane().setLayout(new java.awt.FlowLayout());
getContentPane().add(t);
b.addActionListener(this);
getContentPane().add(b);
}
public void actionPerformed(ActionEvent e) {
new Thread(new Runnable() {
public void run() {
b.setEnabled(false);
// ここで、ある計算
t.setText("ある計算の結果");
try { Thread.sleep(5000); } catch (InterruptedException ee) { System.err.println(ee); }//ここで5秒眠る
// ここで、別の計算
t.setText("別の計算の結果");
b.setEnabled(true);
}
}).start();
}
}
ボタンを押した時の処理で新しくスレッドを立ち上げてるのはそうしないとGUIが固まるからだ。
どうも。初心者です。 JDK5.0 Update10 インストールして、Pathの追加しようと思ったら追加ではなくて消してしまいました・・・。 どなたか、デフォルトの値がわかる方いませんでしょうか? たしか、C:\WINDOWS・・・とあったような気がします。 ちなみにXP Homeです。
スタート→コントロールパネル→システム→詳細設定→環境変数
>>31 Javaっぽい話題と見せかけて実はスレ違いだ
とりあえず
C:\WINDOWS\system32;C:\WINDOWS
だけあれば動くんじゃないかい?
あとC:\WINDOWS\System32\Wbemが必要かもしれん
35 :
31 :2007/01/14(日) 02:22:17
スレ違いでしたか・・・すみません。。 とりあえずやってみました。ありがとうございます。
36 :
デフォルトの名無しさん :2007/01/14(日) 11:30:57
Javaなどという難解な言語を理解しようとするほうが間違っているのだ。 常人にはまず無理だ。それほど複雑で回りくどい言語なのだ。 しかし理解は無理でも使用することはできる。 サンプルプログラムをそのまま使えばいいのだ。 部分的に書き換えて、自分の目的のプログラムにするのが最良の方法だ。 そもそもJavaとはそういう言語なのだ。
37 :
デフォルトの名無しさん :2007/01/14(日) 13:01:15
>>27 そういうことでTimerを使うのはなんだかなあ
38 :
デフォルトの名無しさん :2007/01/14(日) 13:12:04
>>27 そういうことでTimerを使うのはなんだかなあ
39 :
教えてください! :2007/01/14(日) 13:31:47
板違いを承知で許して下さい 4月15日にある基本情報技術者夏にある初級アドミンストレータ の試験に受かるために先週から勉強し始めたんですが この2つの資格どちらかを受けて合格した方が入らしゃいましたら私はこの参考書を使用しましたでお勧めの参考書がありましたら教えてください
すみません質問です。 SwingのJRadioButtonとJCheckBoxのテキストを表示する部分の幅と、 実際に表示されるテキスト(テキストが長すぎて入りきらない場合は省略されたテキスト) を正確に取得したいのですが、よい方法はあるでしょうか? JLabelとJButtonはSwingUtilities.layoutComponentLabelで正確に取得できるのですが、 JRadioButtonとJCheckBoxはあのチェックする場所があるせいか不正確な値が返ってきてしまいます。。。 よろしくお願いします。
42 :
デフォルトの名無しさん :2007/01/14(日) 18:13:44
すみません、初心者なのですが、 バックグラウンドで作業中の時に砂時計とデフォルトがくっついたみたいの カーソルが出ますよね。 それを非表示にしたいのですが、どうやっても出来ません。 相当、ぐぐったけど、答えが出てきませんでした。 どなたか、ご存知の方がいらっしゃったら、教えていただけませんか?
43 :
デフォルトの名無しさん :2007/01/14(日) 18:22:37
>>27 そういうことで非表示にするのはなんだかなあ
44 :
JAVAはじめました :2007/01/14(日) 18:38:34
すみません「jdk-1_5_0_09-nb-5_0-win-ml」というjavaソフトインストールしたのですが PATHになんて書いたら言いかわかりませんXPです。わかる方教えてください。gooったのですが認識しません
>>44 >>1 にあるリンク先のwikiを見てから質問があればするように
46 :
uchu :2007/01/14(日) 18:44:36
>>30 確かにやってみたら、思ったとおりの動作をしています。
javaは勉強始めたばかりで、
new Thread(new Runnable() {
public void run() {
b.setEnabled(false);
// ここで、ある計算
t.setText("ある計算の結果");
try { Thread.sleep(5000); } catch (InterruptedException ee) { System.err.println(ee); }//ここで5秒眠る
// ここで、別の計算
t.setText("別の計算の結果");
b.setEnabled(true);
}
}).start();
の最初と最後の1行の書式が難解に思えました。
ただ、一度できてしまえば、コピペしていろいろな
シチュエーションで使えそうです。感謝します。
47 :
デフォルトの名無しさん :2007/01/14(日) 20:18:53
48 :
デフォルトの名無しさん :2007/01/14(日) 20:28:15
appletのキャッシュが残ってたら、 サーバーに新しいクラスファイル置いても ダウンロードしてくれない。 これ回避するには、ユーザにキャッシュ消してもらうしかない? クラスファイルのタイムスタンプ見て、新しくなってれば取得しに行くとかいう 方法できないでしょうか?
ファイル入出力についての質問です。 配列を指定して int[] A = {10 12 14}; 読み込むファイル名を『10.txt』『12.txt』『14.txt』としたいのですが、 『A[i].txt』でiについて繰り返して行きたいのですが、このような事ってできませんか? また、何かよい方法があれば教えて下さい
imonaでやったのでカンマ無くなってしまいました。正しくは、 int[] A = {10、12、14}; です。
ファイル名をA[i]+".txt"としてやればいい
>>46 それは書き方でしかないから、分かりやすいように書き直せばOK。
new Thread(new Runnable(){
// 省略
}).start();
を分かりやすく書くと
Runnable r = new Runnable(){ ・・・(1)
// 省略
};
Thread t = nwe Thread(t); ・・・(2)
t.start(); ・・・(3)
になる。(1) が別スレッドで行う処理の定義と、
処理ブロックのインスタンス化、(2) がスレッドの作成、(3) がスレッドの開始。
この書き方ならスレッド解説してるサイトのどこでも見ると思う。
さらに (1) の書き方は無名クラスって言う方法を使ってて
private class CalcProc implements Runnable(){
private void run(){
// 省略
}
}
Runnable r = new CalcProc();
これ相当の事を一度にやってるだけ。
Javaの解説サイトでも無名クラス使ってるところは多いので
覚えとくと何かと役に立つ。
54 :
46 :2007/01/14(日) 23:13:18
ちょ・・・
56 :
デフォルトの名無しさん :2007/01/14(日) 23:36:51
二次元配列の添字が範囲内にあるかどうかを 調べるとき, 普通に2つの添字の範囲を調べるのと 実際にアクセスしてArrayIndexOutOfBoundsExceptionが起こるかどうかを 調べるのでは, やはり上の方法の方が実行時間,使用メモリの両方の観点から言って 優れた方法だと言えるのでしょうか?
57 :
デフォルトの名無しさん :2007/01/15(月) 00:44:44
ちゃんと文法通りにコンストラクタ書いてるのに")"とか";"がありませんって言われてコンパイルとおらないんですが何が悪いんでしょうか?
>>56 ArrayIndexOutOfBoundsExceptionをcatchするのが一般的でしょう
")"とか";"がありませんってここに書かないとわからんのかw
61 :
デフォルトの名無しさん :2007/01/15(月) 02:17:41
Eclipse使ってないの?
>>58 ちょ、RuntimeException を catch するは一般的じゃないでしょ。
ArrayIndexOutOfBoundsException なんてのは RuntimeException なので普通、処理内で受け取る
ようなことはしない。
>>56 のように調べたかったら、length と比較するほうが一般的。
>>56 作ってるのがライブラリなら例外投げるように作ることもあるかも。
>>57 エラーメッセージは自分の解釈ではなくjavacの出力を略さず書いて。
基礎からのサーブレット/JSPを読んでるのですが その最初の方のおみくじを作るところで 別ファイルにあるクラスを Hoge hoge=new Hoge(); ってインスタンス化してるんですけど、importしなくても出来るんでしたっけ? 例えば、ファイル名とクラス名が同じで、クラスパスが通ってたら、importしなくてもOKとかありました? 家かえって試せばいい良いでしょうけど、会社行きがけの電車で読んだら、気になって、気になって。 もしかして誤植でしょうか? お願いいたします
65 :
デフォルトの名無しさん :2007/01/15(月) 13:33:26
java初心者なんです宜しくお願いします。 今、逆コンパイルしたいのですが何か良い 逆コンパイラーは、ありますか? 2つのディレクトリーを逆コンパイルして ソースの比較をしたいのですが、 階層になってるものをいっきに逆コンパイルできる ものってありますか? 出来ればそのコンパイラーの使い方の載ってるURLも あると嬉しいです。 お願いします。
>>64 importって何のために書くのか。
Servlet以前に基本文法から勉強し直せ。
>>64 クラスパスがとおっているならimportは不要ですよ
> クラスパスがとおっているならimportは不要ですよ ……
今、StrutsでWebアプリを作ってるんですが、ちょっとよくわ からないところがあるので教えてください。 まず、最初にlogin.jspというページがあってこのページには ユーザIDとパスワードを入力するフォームがあります。 このフォームから/loginAction.doにリクエストを送信して、LoginAction 内でlogin.jspから送られてきたユーザIDとパスワードをもと にDBからユーザのDTOを取得できたらログイン成功としてユー ザDTOをセッションに保存して次の画面に遷移しようと思って ます。 ログインしていないブラウザからlogin.jsp以外(/loginAction.do など)にアクセスしたとき、サーブレットのフィルタを使用し てセッションにユーザDTOがあるかを調べ、なければログイン を促すページへ遷移するようにしたいと思ってます。 web.xmlで/loginAction.doにこのセッションにユーザDTOが存 在するかをチェックするフィルタを適用して、いきなりこの/ loginAction.doにアクセスすると正しくフィルタが動作し、ロ グインを促すページに遷移します。 今悩んでるのは、login.jspから/loginAction.doにリクエスト を送信したときにもこのフィルタに引っかかり、同じくログイ ンを促すページに遷移してしまうことです。 当然login.jspから/loginAction.doにアクセスする時点ではセ ッションにユーザDTOが存在するはずがないので正しい動きな のですが、このときだけフィルタを動かさないとかってできる もんですか?
>>64 Java(サーブレット含む)の場合、同一パッケージのクラスならimport不要。
それ以外はimport必要。
JSPでは、必ずインポートすること。
なお、無名パッケージのクラスはJSPから使えないので、必ずパッケージを付けるように。
>>68 まれにおかしいのが湧くな。
>>71 認証が必要なアクションと不要なアクションでURLを分けるとか。
認証が必要なら、/auth/*.do
認証が不要なら、/notauth/*.do
みたいに。で、フィルタは/auth/*.doに対して設定するとかどう?
>>74 >みたいに。で、フィルタは/auth/*.doに対して設定するとかどう?
できるわけねーだろ。ヴァカ。
76 :
74 :2007/01/15(月) 18:50:23
うげ、ホントだ。 /notauth/*か*.doはできても、/notauth/*.doは無理なんだ。 スマンカッタ…
77 :
デフォルトの名無しさん :2007/01/15(月) 19:41:14
78 :
デフォルトの名無しさん :2007/01/15(月) 19:46:34
png形式のファイルをBufferedImageクラスに読み込んで、画像中の一部を新たなpngファイルとして保存したいのですが、 可能でしょうか?
BufferedImage#getSubimage と ImageIO.write で幸せになるがいい。
80 :
デフォルトの名無しさん :2007/01/15(月) 20:48:19
データベースをcsv文書形式にして、 javaでそのcsv文書にアクセスしてID等から該当するデータベースの情報を表示させることって可能ですか?
それJava関係ないだろ
82 :
デフォルトの名無しさん :2007/01/15(月) 21:02:04
javaではできないですか?
csv文書が作れるか? yes データベースにアクセスできるか? yes csv文書にアクセスして(略? それJava関係ない
ウェブアプリケーションとか作るときにデータベースとの連携がどうしても必要になると思うんですが。 それって何を勉強すればいいんですかね?
ググれば?究極的にFAQだよ。
そこでさらっと答えを書く人があらわれる、という展開・・
87 :
デフォルトの名無しさん :2007/01/15(月) 21:31:00
Javaのアプリ作成し、バッチファイルで呼び出そうとしているのですが ショートカットのアイコン画像の指定の仕方が分かりません。 できればWindowsのコマンドがあればいいのですが・・・ 分かる方がいれば教えてください
純正ではない、exewrapだったかをぐぐりなさい
89 :
デフォルトの名無しさん :2007/01/15(月) 21:40:28
>88 とりあえずexewrapを使ってみます(純正も何も使ったこと無かったので・・・ JBuilderのexeファイルを生成のものを使っていたのですが、アイコン画像の指定方法が わからなかったのでこっちはアイコン指定があるようですね。 ありがとうございました。
埋め込み色の強くないexeを作ろうかと思ってる。 アイコンリソースを動的に変える方法を調べれば直ぐかもだが。
91 :
64 :2007/01/15(月) 23:08:49
>>68 >>69 >>72 レスありがとうございます。
>>72 なるほど勉強になりました。
というか、そうだと思ってたんですけど、パッケージの宣言もimportも書いてなくて
不思議に思ったんです。で、よくよく読み直してみたら、コンパイルするときに
javac -sourcepath 〜
とオプションをつけていました。
何でもパッケージが違うクラスもコンパイルできるオプションとか…
OTZ
バスに揺られて読んでたので見逃したみたいです(言い訳.汗)
お騒がせ&ありがとうでした。
↓ZoneAlarm で警告されましたが。 プログラム名 Java(TM) Platform SE binary Java(TM) Platform SE binary はインターネットまたはローカル ネットワークへ接続しようとしています ファイル名 jusched.exe ZoneAlarm によってご使用のコンピュータ上で検索されたプログラムのファイル名です。 ↑こんな感じの警告 その時はJava(TM) Platform SE binary がインターネットにアクセスするのをZoneAlarm で拒否しましたが アクセスさせたほうが良かったのでしょうか? いったいJavaは何をしようとしたのでしょう? バージョンアップですかね? よろしくお願いしますm(__)m
93 :
デフォルトの名無しさん :2007/01/15(月) 23:44:46
>>92 ランタイムが更新されてないかを調べに行ってる。
コントロールパネルのJavaの設定で
アップデートの自動チェック外せば出なくなろう。
96 :
デフォルトの名無しさん :2007/01/16(火) 02:02:40
java6.0でソースを動的にコンパイルしたいのですが、既存のソースを 読み込んでコンパイルすることには成功したのですが、文字列からコンパイル することができません。どなたか方法を教えてください。
97 :
ぴゅあ :2007/01/16(火) 02:12:14
一度その文字列をファイルに書き出せばコンパイルできますよ。 FileWrierなどでググってみては?
>>96 自分で JavaFileObject を実装して JavaCompiler.getTask に突っ込め。
海外も含めて探せば誰かが StringJavaFileObject とか作ってるんじゃないかと思うけど。
外国は情報はあるんですが、BETAのころのコードでリリースされたものがないんですよね〜。 めげずに探してみます。
101 :
デフォルトの名無しさん :2007/01/16(火) 03:13:23
JEditorPaneで簡易ブラウザを作ろうと思っているのですが、HTMLがまともに表示されないために困っています。 なにか改善する方法はないのでしょうか?
まだ1ヶ月しかやってないが。 javaって、、win上じゃあんまり意味ない気がしてきました。 だいたいwin版でならいろんな便利なソフトがいくらでも出ているし。
1.windowsのファイヤーウォール関係か 2.プロキシサーバーを利用してるから クライアント → プロキシサーバー → Tomcatを起動してるパソコンのアクセスが、できない。 2の場合は、クライアントのIEの [ツール]-[インターネットオプション]-[接続]-[LANの設定]-[詳細設定] で例外のとこにTomcatを起動してるパソコンのIPアドレスを書く。 もしくは、手っ取り早くプロキシを無効にする。
>104 ちょっと修正 1.windowsのファイヤーウォール関係 2.プロキシサーバーを利用していて クライアント => プロキシサーバー => Tomcatを起動してるパソコンのアクセスが、できない。 2の場合は、クライアントのIEの [ツール]-[インターネットオプション]-[接続]-[LANの設定]-[詳細設定] で例外のとこにTomcatを起動してるパソコンのIPアドレスを書く。 もしくは、手っ取り早くプロキシを無効にする。 多分2な気がする。
どっちみちJavaの質問じゃないなあ。
できるだけ上位のプロファイルのJavaが使える PDAって何でしょうか。JDK1.1レベルはそろそろキツイ・・・
スレッド関して質問です 複数のスレッドを(メイン+サブスレッド×3)を動かす場合 Aa aa = new Aa();; Bb bb = new Bb(); Cc cc = new Cc(); aa.start(); bb.start(); cc.start(); class Aa extends Thread{ public void run(){ //処理1 } } class Bb extends Thread{ public void run(){ //処理2 } } class Cc extends Thread{ public void run(){ //処理3 } } でよいのでしょうか?
それで合ってるけど class のスコープとかデフォルトで良いの?
JavaのColorオブジェクトから、その文字列表現である"0x00ff00"みたいのがほしいのですけど、どうすればいいですか? Color c = Color.green; String s = String.format("0x%2x%2x%2x",c.getRed(),c.getGreen(),c.getBlue()); みたいにしたら "0x 0ff 0"と0が一桁しか入らずに空白が入ってしまいます。
0x%02x
ウィンド上に画像を表示する場合 どのような命令でどう書けば軽くなりますか? 静止画の場合ダフルバッファリングはしなくてもいいのでしょうか?
横にスクロールバーが付いたテキストエリアを作って テキストエリアに文字を書き込んでいっていっぱいになったとき 自動で最下行に新しく書き込まれた文字を表示するようにスクロールバーを下端に固定するようにするにはどう
イベント取って移動させれば? イベント・ディスパッチ・スレッド内で動かすようにね。
117 :
:2007/01/16(火) 20:43:35
>>106 (・∀・)アリガトン!
ファイヤーウォールで例外設定したらできました!
宿題スレでは違ったようなのでこちらで質問させていただきます。 java初心者の質問ですがお願いします。 JBuilderでアプリケーションの作成をしています。 画面が2つあり、片方の画面のコンボボックスに数種類の色のリストを 作り、それを選ぶともう片方の画面の背景色が変わるという 実装をしたいのですが、色の変わるほうの画面のインスタンスを 作成せずにメソッドを実行するにはどうすればいいでしょうか? コンボボックスを選んだときに片方の画面のクラスにデータを 渡し、実行するやり方などがしりたいです。
120 :
デフォルトの名無しさん :2007/01/16(火) 22:10:36
何方かjavaを学べるサイトって知っている方いますか?もしご存知の方がいらっしゃいましたら教えてください><;
>>119 インスタンス生成自体を色変更を受ける画面側で
受け持ちたいなら、スタティックメソッドで実行しては?
122 :
デフォルトの名無しさん :2007/01/16(火) 23:01:10
今swing(ウインドウ表示)の形式でabcdefgと言う場所に下、中、上と表示したいのですが、式の開始が不明ですと表示されます 〜プログラム〜 import java.awt.* ; import java.awt.event.* ; import javax.swing.* ; class ABC6 { static JLabel abcdefg = new JLabel(); public static void main(String args[]) { JFrame frame = new JFrame(); frame.setTitle("BMIプログラム"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container con = frame.getContentPane(); int i = (適当な数値); if (18 =< i =< 22) { abcdefg.setText("中"); } if (i < 18) { abcdefg.setText("下"); } if (i > 22) { abcdefg.setText("上"); } con.add(abcdefg); abcdefg.setBounds ( 170, 240, 150, 30); frame.setSize(490, 550); frame.setVisible(true); } } よろしくお願いします
C++畑の人の意見も聞いてみたい
124 :
デフォルトの名無しさん :2007/01/16(火) 23:12:09
初めてiアプリを作ろうとしてproguardでobfuscator掛けたんですが どうも出力されるclassがa〜zで足りず大文字のA〜に重複してしまい Windows環境だと上手く行きません…(iアプリとして機能させるには事前にpreverifyを通さないといけないとの事) proguard側の設定でどうにか出来るそうなのですが…
125 :
デフォルトの名無しさん :2007/01/17(水) 04:16:24
へー。そうなんですか
126 :
デフォルトの名無しさん :2007/01/17(水) 04:26:46
Javaプログラムを実行するのにかかった時間を調べたいです。 System#currentTimeMillis()を使えば計測できますが この方法では他に思い処理を行っている際は正確な数値を導き出せません。 そこであるプロセスだけにかかった時間を求めたいのですが どのクラスのどのメソッドを使えば求められるでしょうか?
プロファイラで探してみそ
仕事でJavaを使ってますが、わからないことがあります。 servletのフィルターにて、リクエストとレスポンスを生のコードのまま残したいのですが、 リクエストはオブジェクトのメソッドから再構築するとしても、 レスポンスのデータがどうしても取り出せません。 レスポンスのメソッドはsetterがほとんどでOutputStreamくらいしか取得できません。 ヘッダーなどのコンテナがレスポンスに書く情報も取得したいので、サーバアプリケーションの 値がレスポンスに書き込む情報だけ書くのでは不十分なのですが、 どなたか良い解決法をご存じないでしょうか?
ファイルやフォルダのコピー操作を行っているのですが フォルダ(とその下位下層の)コピーは一度バッファや 一時ファイルに保存して移動する方法以外ありませんか?
130 :
デフォルトの名無しさん :2007/01/17(水) 12:27:12
>>128 自サーバー内に、もう一つ別のWebアプリを立ち上げて
間に挟めばよろしいかと・・・・
元アプリ
↓
別アプリ → レスポンスのバイナリ保存
↓
クライアント
131 :
デフォルトの名無しさん :2007/01/17(水) 13:17:11
javaのアプレット形式のやつでリストボックス チェックボックスを使用するプログラムを作成したいんですがどのようにやればいいのか何方か教えていただけませんか?
MainPanelクラスからクラスAへ(値の受け渡しなし) クラスBからクラスBで作られた値をもってクラスCへ クラスCから値を持ってMainPanelのクラスAへnewしたあとから処理開始って感じにしたいのですがどうすればいいでしょうか
>>132 多少冗長でもいいから、もう少し分かりやすく書けそう?
例えば「何を」newした後なのかとかが分からない。
>>135 ありがとうございます
処理はどうなっているんだろ・・・
質問です ハッシュ法でデータを振り分けるときに バケットサイズを素数にする理由って何ですか?
>>138 実験的に、よくあるハッシュ関数ではテーブルサイズを素数にすると乱雑な入力データに対して性能がいい=バラけるから。
ハッシュ表の適正なサイズはハッシュ関数及び入力データと密接な関係があるので、
どんな状況に対してもテーブルサイズが素数であった方がよいとは言い切れない。
自分が使っているハッシュ関数とデータに対して、いろいろなサイズで実際に性能実験して確かめてみるのがよい。
てか、javaの質問じゃないだろ、これ
140 :
デフォルトの名無しさん :2007/01/17(水) 16:59:00
>>138 ハッシュ値から格納位置(数値)を求める時に、
高速なビットマスク及びビットシフトで演算できる様にする為です
サイズが2のべき乗だと高速に演算できるね
142 :
138 :2007/01/17(水) 18:13:37
>>139-141 即レスありがとうございます
よく見たら下のような文がくっついてました
「再ハッシュとの兼ね合いから、オープンアドレス法では
バケットの個数B(=ハッシュ表の大きさ)は素数、
あるいは2^n−1(2のn乗−1,nは整数)といった数にするのが望ましいとされています。」
こういう条件下ではほかに理由がありますか?
オープンアドレス法だからというより、
整数キーの場合にハッシュ表のサイズを法とするキーの剰余でハッシュ値とする方法を使うのなら、
サイズが素数でないときはキーの全ての情報がハッシュ値に反映されなくなるからハッシュ性能が悪くなる。
2^nなんて最悪。よく使われるのは素数や2^n±1。
2^n±1はそれが素数の時でも素数でないときでも
>>140 のいうように一般の素数よりも高速演算できる。
Struts使って開発してます。 今、1つのフォームに対して複数のサブミットボタンが 存在する画面を作ってるんですが、LookupDispatchAction を使って処理を分けるところまでうまくいきました。 が、1つのフォーム内で同じラベルのボタンが複数ある場合 はどうすればいいんでしょうか?(削除ボタンが複数あるとか) どうか、よろしくお願いします。
>>134 すみません。説明がアバウトでしたね
質問後自己解決しました
お騒がせしました
ぐぐってもwiki見てもいまいちよくわからないので質問させてもらいますが javaで透明なレイヤを何枚も重ねて表示する方法ってありますか? パズルのようなものを作ろうとしているのですが 背景の画像も変化させ、落とすブロックも移動させる必要があるので 透過レイヤーのような手法を取るのが一番と思ったのですが どうもその方法がわからないので、用いたらよいクラスなどあればお願いします
JLayeredPane
ありがとうございます 参考にしてそのあたりのクラス詳しく調べてみます
素人ですが System.out.println("体重" + a[i][0] + "で" + "身長" + a[i][1]); でエラーがでます。どこがいけないのでしょうか? 体重a[i][0]で身長a[i][1]と書いているつもりなんですけど…
>>149 そのaという変数の型は何?
あと、出たエラーメッセージを書いた方が回答がスムーズになるよ。
エラーメッセージはデバッグでの重要な情報源だ。情報を小出しにしてはいけない。
> でエラーがでます。どこがいけないのでしょうか? きみの頭、以外に返答のしようがないぞ。
これなんでエラーになるの? Aのインスタンスが作れない理由がわからない class CA<A extends CB>{ A a; public CA(){ a = new A(); a.func(); } } class CB{ public CB(){ System.out.println("CB"); } public void func(){} }
void
>>152 Aに引数0個のコンストラクタがあるって保証が無いから。
デフォルトコンストラクタでは納得してくれないのか・・・
つーことは
>>152 の書き方のような特定クラスを継承した「何か」のクラス
の実体を生成することは出来ないということなのか??
> デフォルトコンストラクタでは納得してくれないのか・・・ とりあえず言語規定読んで来い。 > 特定クラスを継承した「何か」のクラスの実体を生成すること コンストラクタの引数で Factory<A> みたいのを実装したクラスのインスタンスを渡してやるとか。
>>155 もっとも、Factory<A> を渡すより、A のインスタンス渡しちゃった方が早いけど。
>>155 template<typenmae A>class CA{
public:CA(){
A a = new A();
}
};
>>158 C++のtemplateとはかなり違うモノのようですね。
つか明示的に継承元クラス記述してるんだからそこはコンパイラが
そこかとなく察してくれてもよさそうなものだが。
> つか明示的に継承元クラス記述してるんだから 継承先で、どんなコンストラクタを定義しようが自由な言語なので無理。
javaのgenericsとc++のtemplateは全く別物だ。 言語仕様を理解せずに使うと火傷するよ。
>>149 です
System.out.println("体重" + a[i][0] + "で" + "身長" + a[i][1]);
でエラーがでます。どこがいけないのでしょうか?
体重a[i][0]で身長a[i][1]と書いているつもりなんですけど…
ちなみに変数aはint メッセージは¥12288不正な文字ですとでます。
一つ前のSystem.out.printlnはクリアできたのですが…どうぞお願いします。
> ¥12288不正な文字 全角空白消せ。
ありがとう、全角スペースも駄目なんだ…あまり文字の全角半角は気をつけてたけど、スペースまでは目が行かなかったです。 ありがとう、早く皆さんをうならせる質問したいです。では
167 :
デフォルトの名無しさん :2007/01/18(木) 00:45:52
質問です。 コンソールから入力した文字列(Stringオブジェクト)を 1文字ずつchar配列に格納する方法がありましたら教えてください。
>>167 char[] array = "文字列".toCharArray()
配列ではなく、単にインデックスアクセスしたいだけなら String#charAt(int index)でもいいよ。 どうでもいいけど#charAtって何か遅いね 長い文字列だと#toCharArray経由の方が速いときがある。
170 :
167 :2007/01/18(木) 01:26:03
>>168 , 169
そんなメソッドがあったんですね。勉強不足でした。
回答ありがとうございました。
質問です。 java.net.Socket;を利用するのですが Socket sock = new Socket();としましてこの場合のsockの初期値はどうなるのでしょうか? またsock.close();した後のsockの中身はどうなってるのでしょうか? ソケットが閉じている際にソケットを開くということをしたいのです。 if(sock.equals(null)) sock = new sock(target, port); では正常に動作してくれませんでした。 よろしくお願いします。
aSocket.isClosed()
>>171 Socket#close()はソケットで使っていたリソースを開放するだけで、
new Socket()で得たリファレンスをnullにはしてくれないよ。
だから、
if (sock == null) sock = new Socket(host, port);
は、新しいソケットを作成しない。sock != nullだから。
やるなら、
if (sock.isClosed()) sock = new Socket(host, port);
かね。
new Socket()で作成されるのは接続されていないソケット。
> この場合のsockの初期値 まだ、どこにも接続されてない状態の Socket のインスタンス。 connect とかで接続先決めろ。 > sock.close();した後のsockの中身 close() されて使えなくなった状態の Socket のインスタンス。 > sock.equals(null) たぶん、常に false が返る。 > new sock(target, port); sock ってクラスが無いならコンパイル時エラー
>166 大丈夫だ、もう十分うならせてる。
>>173 ,174
レスありがとうございます。
if (sock.isClosed()) sock = new Socket(host, port);
でもうまく行かないようです。
new sock(target, port)はnew Socket(target, port)の間違いでした。
実際はメールサーバに問い合わせてリストを表示メールの内容を表示というものを作っているのですが
接続>リスト>切断>接続>内容表示>切断
という具合にやるようなのですがどうにもうまく行きません。
リストの表示までは行くのですが内容表示の際に
java.net.SocketException の例外が出てしまい内容は Socket:closed の様なものです。
newでインスタンス化しているので同じソケットを使ってはいけないということはないですよね?
>>176 見当違いかもしれないけど、短時間で再接続しようとすると、
以前の接続がタイムアウト状態のまま残っていることがあって、
接続できない場合があったような気も。
メールサーバとのやり取りで、いちいち切断せずに、
LISTとRETRを同じセッションでやれるようには変更できないの?
同じセッションでやれるようには変更できないの?って聞いたんだが、 LISTとRETRは同じセッションでやるべき気がする。 POP系のプロトコルを使ってるんだと思うけど、 LISTで取ったリストは正確にはそのセッション中でしか有効ではないので、 USER+PASS(APOP)→LIST→RETR→DELE→RETR→DELE……→QUIT を途中切断無しの1セッションでメーラーは行ってると思う。 途中で切れたらLISTからやり直し。
>>177 ,178
レスありがとうございます。
自分のは学校の課題なのですが例がありましてそれだとLISTで一度socket.close();
をしてその後にもう一度ソケットを開いてRETRをするというようになってます。
それは全部メインメソッドに詰まってるので自分は設計しなおしてクラス分けをして今作っているのですよね。
一連の動作として考えればいいのですか。
参考になります、今は時間がないので後で試してみますね。
現状の新しい問題ですとRETRで繋がった場合にメールの閲覧ができないという状況に陥って困ってます。
手動でtelnetでやった場合には問題がないのでプログラムの問題だと思われます。
180 :
デフォルトの名無しさん :2007/01/18(木) 11:05:18
181 :
名無し募集中。。。 :2007/01/18(木) 11:22:17
182 :
デフォルトの名無しさん :2007/01/18(木) 11:42:40
んだ?テメーは?あ?コラァ!ヤッちまんぞ!あ?
183 :
デフォルトの名無しさん :2007/01/18(木) 11:57:27
はあ? おまえどこ中よ?
184 :
デフォルトの名無しさん :2007/01/18(木) 11:57:36
おい、オメーに言ってんだよタコ 探し出すぞコラァ!
185 :
デフォルトの名無しさん :2007/01/18(木) 11:58:38
お、見てんじゃねーかよ。 オラァ、リアルで喧嘩すんぞ。出て来いヤ!
186 :
デフォルトの名無しさん :2007/01/18(木) 12:00:57
わしを誰やおもとんじゃ!ボケェ
ヲイヲイ、変なのが二匹湧いたぞwww
188 :
180 :2007/01/18(木) 12:18:06
やめてください ぼくだと思われるじゃないですか。
189 :
U-名無しさん :2007/01/18(木) 12:19:55
190 :
デフォルトの名無しさん :2007/01/18(木) 12:56:57
|| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|| || あらしは ∧_∧ いいですね。 || 無視! \ (゚Д゚,,) ||________⊂⊂ | ∧ ∧ ∧ ∧ ∧ ∧ | ̄ ̄ ̄ ̄| ( ∧ ∧ ( ∧ ∧ ( ∧ ∧ | | 〜(_( ∧ ∧ __( ∧ ∧__( ∧ ∧ ̄ ̄ ̄ 〜(_( ∧ ∧_( ∧ ∧_( ∧ ∧ は〜い、先生。 〜(_( ,,)〜(_( ,,)〜(_( ,,) 〜(___ノ 〜(___ノ 〜(___ノ
191 :
デフォルトの名無しさん :2007/01/18(木) 14:07:59
ID3タグってどうやって取得すればいいんですか>
192 :
ネカフェからJava勉強中 :2007/01/18(木) 14:12:43
はじめまして。 2ちゃんねる初カキコです。よろしくお願いしますm(--)m ただ今転職活動中でして、旅行業界から Java・プログラムの道へ進みたいと考えてます。 それで、付録CDの付いた「Flashムービー動画で学ぶ!Java完全マスター」技術評論社・・・ という本を購入し、漫画喫茶で付録CDを見ながら勉強はじめました。 お恥ずかしい話ですが、家にPCが無く、まだPCを購入できない状況です。 まずはHello World!を表示できるようになりたいんですが、 上記本によると、JDKををDLして、javacコンパイラを使う必要がある。 JDKをDLする際に、Windows内で「パス設定」をしないといけないそうです。 ついでに、漫画喫茶のPCは、一度OSを終了するとデータが初期化・DLしたデータ は無くなります。 そこで質問なんですが、 JDKをDLして登録したパスは、別のPCからJDKをDLした際・もしくは再度JDKをDLした場合にも、 また使用する事が可能なんでしょうか? むしろ、漫画喫茶からHello World!は不可能なんでしょうか? 長々とすいません!それも超初心者で。 教えて頂ける神様みたいな人、何卒よろしくお願いいたします。
↓
>>192 >ただ今転職活動中でして、旅行業界から
>Java・プログラムの道へ進みたいと考えてます。
えーっと、ここはJavaの質問相談スレだっけ?
今度のご相談はコレ、ね。
わるいことはいわない。辞めておけ。
技術がないのに転職するなんて狂気の沙汰だ。
趣味でやってたプログラミングを仕事にしようとかいう
意気込みならともかく・・・・
しかもPC買う気もなく投資する気もないときたら・・・
最後に、これコピペならスマン>>all
>>192 JDKの場所が同じなら使えるかもしれないが・・・
その質問は素人以前でjava入門以前だ。
プロ目指すなら自宅にjava用のPCぐらいは買っておけ。
本気で技術者目指すなら損にはならないはずだ。
>>192 漫画喫茶は利用した事がないから分からないけど
クラスパスを設定するbatファイル、及びJDKをCDに焼いておくと
次に使うとき迅速に作業を開始できるかもね。
(漫画喫茶のPCってCDから何かをインストールする事は可能なのか知らない)
197 :
ネカフェからJava勉強中 :2007/01/18(木) 15:03:17
>>194 コピペではないです(汗
>>195 はい!バイトに励みたいと思います!
>>196 パスを設定するファイルもあるんですね!驚
今度試してみます!
皆様、超初心者相手にアドヴァイスありがとうございましたm(--)m
>>197 パスを設定するファイルっつーか・・・コマンドです。
>>198 俺は取りあえずうちの会社に入ってこないことだけを祈っておくよ
200 :
ネカフェからJava勉強中 :2007/01/18(木) 15:30:36
201 :
ネカフェからJava勉強中 :2007/01/18(木) 15:31:32
202 :
ネカフェからJava勉強中 :2007/01/18(木) 15:34:25
>>199 そう?俺は勉強熱心で感心だと思うよ。
新卒扱いで入ってきたら歓迎かな。
中途扱いで入ってきたら殺るね。
204 :
デフォルトの名無しさん :2007/01/18(木) 18:44:33
クラスパス(環境変数?)について、質問です。
Helloを表示するプログラムで、クラスパスに関するエラーはFAQで解決できたのですが
>set CLASSPATH=%CLASSPATH%;.
というコマンドを、毎回入力しなくて済むようにするには、どうすればいいのでしょうか?
環境変数に、カレントディレクトリを追加すれば良いと、FAQに書いてあったのですが
リンク先>
http://www.gimlay.org/~javafaq/S004.htmlがNotFundでした 。
設定の仕方を教えていただけないでしょうか。
よろしくお願いします。
[マイ コンピュータ]-[右クリック]-[プロパティ]-[詳細設定]ページ-[環境変数(N)]-[システム環境変数(S)] [変数]に"CLASSPATH"があれば [編集(I)]ボタン-[変数値(V)]の末尾に ";." を追加する。 [変数]に"CLASSPATH"がなければ [新規(W)]ボタン * [変数名(N)]に"CLASSPATH" を入力する。 * [変数値(V)]の末尾に "." を追加する。
207 :
204 :2007/01/18(木) 19:13:37
>>206 無事に設定することができました!
ありがとうございますm(_ _)m
208 :
デフォルトの名無しさん :2007/01/18(木) 21:10:43
swingで作ったjButtonでキーイベントを取得するのに getKeyCodeで半角/全角キーを判断する方法ってありますか? 半角/全角キーではキーイベントが発生しないというのをみたのですが、 教えてくれる方よろしくお願いします。
KeyEventを拾ったときにその中身を表示してみるプログラムを作ってみれば 自分で確認できるね。
JGraph5.9に慣れるためにいろいろ試してる最中なんですが 直線とかのセルをクリックしたときの動作を変えることってできますか? 例えばDefaultGraphCellで作ったセルをダブルクリックしてみるとテキスト入力フォーム出るのを 新しいウィンドウが開くとかの動作に変えてみたいんですが…
>>210 付属のサンプルにそんなのあったよ。デフォルトの動作の代わりにJDialog表示するやつ。
212 :
デフォルトの名無しさん :2007/01/18(木) 23:35:27
thisについて、わかりやすく書いているサイトがあったら教えてくだせえ、、
>>211 サンプル探したところEditorGraphというサンプルにまったくおっしゃるとおりのものがありましたよw
BasicGraphUIを継承してcreateEditDialogというのをオーバーライドすればよさげなので
これでやってみます!
ありがとうございました!
214 :
デフォルトの名無しさん :2007/01/18(木) 23:37:24
もしくはわかりやすく教えてください。。
216 :
デフォルトの名無しさん :2007/01/19(金) 00:01:03
自とは、、 グループ内のという意味ですか?
自分
"Java this" もしくは "Java thisキーワード" でぐぐったら色々あるじゃん
>>216 みたいな、突拍子もない脳内自動変換フィルタを実装している奴は、
どんなわかりやすい説明を聞いてもトンデモな方向へ理解してしまいそうだ。
いや、知識が足りないんだろ。
「クラス」「インスタンス」、から調べ始めることを勧めたい。
>>216
以前クラスの受け渡しについて質問した
>>132 ですが
自己解決したと思っていたけどちょっとあやふやになってきたので再度
>>134 の指摘を含めて質問いたします。
MainPanelからクラスAへ(ここでは値の受け渡しなどはありません。ただAクラスへ処理を依頼したいだけです)
Aクラスではaaaに1を足してそのaaaの値をBクラスに渡します。
Bクラスでは受け渡された値にまた1を足します。
その後MainPanelへ戻ってMainPanelの処理の続きを行います。
class MainPanel extends JPanel {
// パネルサイズ
private static final int WIDTH = 800;
private static final int HEIGHT = 600;
//なにか処理を行う
// ここでAクラスへ処理を依頼
//AクラスからBクラスへ処理が流れたあと
//ここに処理を戻して続きの処理を行う
//この先また処理がスタート
}
このような感じで処理を流す場合どうすればいいのでしょうか?
222 :
デフォルトの名無しさん :2007/01/19(金) 02:53:39
プログラムの流れをざっと書きます。 (プログラムと同じフォルダにimg1.jpgというファイルがあります) Image image1, image2; ・getToolkitでimg1.jpgをimage1に代入 ・image1のRGB値を変更してimage2に代入 ・drawImageでimage2を描く Image2を、img2.jpgという名前で保存するにはどうすればいいのでしょうか?
>>221 Aのメソッドの中からBのメソッド呼べばいいのでは?
スレッドでも立てない限り、Bのメソッドが完了するまで
MainPanelに処理は戻ってこないよ。
すみません、超初心者なんで質問させてください Process p = Runtime.getRuntime().exec("c:\\xxx.bat"); でローカルにあるバッチファイルを起動できるんですが ローカルではなく別端末にあるバッチファイルを起動させる事ってできますか? できる場合、どうやればできますか?
>>225 ありがとうございます!
こういうのもあるんですね、勉強になりました。
一応、以下のでも出来ました。
Process process = Runtime.getRuntime().exec("\\\\IPアドレス\\c:\\xxx.bat");
ええと、質問の意味は 「リモートに置いてあるバッチファイルをローカルで実行」 だったの? RMIは、 「リモートマシンのJava VMにあるオブジェクトのメソッドを呼ぶ」 というもので、これが必要になるのは 「リモートに置いてあるバッチファイルをリモートで実行」 の場合だと思うのだが。
>>227 実行できりゃどっちでも構わんのだろ。たぶん。
もしくは区別する必要があるのに区別できてないか。
229 :
デフォルトの名無しさん :2007/01/19(金) 15:05:38
まずJAVAとはなんですか?
特定フォルダを指定して そのフォルダの下位下層のフォルダを javascriptでツリー表示させて エクスプローラ風にするにはどうしたらいいですか?
234 :
デフォルトの名無しさん :2007/01/19(金) 19:01:45
JAXBを使ってJavaBean→XMLに変換しコンソールに結果を出力しようとしたのですが、全角日本語が文字化けしてしまいました javaファイルはUTF-8で書かれてて、hoge.setName("日本語"); のようにプロパティにセットしています。 MarshallerのsetPropertyでエンコードタイプをUTF-8に指定しても駄目で、試しにShift-JISをセットしたらコンソールに正常に出力されました。 環境はWindowsXP、Eclipseを使用してます。 UTF-8で出力させたいのですが、どうしたらいいのでしょうか。 よろしくお願いします。
235 :
デフォルトの名無しさん :2007/01/19(金) 20:56:10
addgas
237 :
デフォルトの名無しさん :2007/01/19(金) 21:07:07
>>236 31行目のとこですか?ここをどう変えたらエラーがなくなるんでしょうか。
大文字小文字かな、236のレスだけでエスパると。
>>238 変えてみましたけどエラーのままでした。
どこが悪いんだろう・・・
じゃあ俺もエスパると つ public
>>235 Car で定義されてるのは addgas、
Program27 の main で呼ばれてるのは addGas
>>236 が言うように大文字小文字の間違いだろね。
>>240 同じパッケージ内だから public つけなくてもok
243 :
235 :2007/01/19(金) 22:23:27
すいません、解決できました。 小文字と大文字勘違いしてました
244 :
デフォルトの名無しさん :2007/01/20(土) 03:48:36
j2sdkをインストールしたところで PATH変数の更新の手順が書いてあるんですけど、 コントロールパネル→システムと行き、 [ユーザー環境変数]と[システム環境変数]で、 [PATH]を探すと書いてあるんですが[ユーザー環境変数]の一覧に、 [PATH]がないのですがどうしたらよいのですか?
245 :
244 :2007/01/20(土) 06:30:34
自己解決しました!
すみません質問でございます。 簡単なシュミレーションをするプログラムを作ったのですが走らせて見ると メモリは全然使わないのにも関わらずCPUだけ100%近く使ってしまいます。 どこかで無限ループにはまっているということはありません(結構待っていると処理が終わりますので) CPUはPentium4の2.53Gです。 そこまで処理に時間が掛かるものだとも思えないのですが…。 スレッドで作ってみればいくらか軽くなるものですかね?
最近似たような質問みたけど それだけの情報でコメント出来ると思ってるの?
>>247 ですよね。
内容は簡単な遺伝的アルゴリズムのシュミレーション。
動作内容は二点交差と一様交差と突然変異が8.5、1.49、0.01の確立で行われます。
世代数(コピーする回数)は50世代で集合(各要素)は20個程度です。
交差を行って次世代にコピーを繰り返すだけなのですが対立遺伝子(ビットの桁数)が10程度でも凄く遅いです。
1024までの数字2個を計算して答えを次世代の要素にコピーというのを1世代に10回。
それを50世代なので合計500回。
これ程度の動作なのですがそれでも遅いときは5分以上掛かってしまいます。
250 :
デフォルトの名無しさん :2007/01/20(土) 10:07:40
>>248 えーっと
お前がやりたいことを書かれてもわかんないだろ
お前が実際にやってる事(ソースコード)を書かないと
251 :
249 :2007/01/20(土) 10:11:51
Hello, world! とか、どう考えても製品にならないものを作ると有料になると思うのですが・・・。 本当にそうなのかどうか、不安です。
GAは良いけどシュミレーションはないだろ。
253 :
デフォルトの名無しさん :2007/01/20(土) 10:16:00
そんなん言うなら確立も
GAとかシュミレーションは、開発に入ると思う。 Hello, World!も、開発しましたと胸張っていえる厚顔無恥さが無いと使えないな。
>>248 Log4JなりSystem.out.printlnなりを入れてどこに時間かかってるか測ってみたら?
その上で要素数を増減させる。
実際の計算に時間がかかってるのか、バグで遅くなってるのかわかろ
256 :
デフォルトの名無しさん :2007/01/20(土) 10:22:13
GAで時間がかかるところは評価部分 そこ以外で以上に時間がかかってたら大抵バグ
257 :
名無しによる福音書 :2007/01/20(土) 10:39:41 BE:401609063-2BP(0)
java scriptってどこで組むんですか?
シュ
JSPの実行環境がうまくいかないです。TOMCAT,JDKともにインストール済み。 WINDOWS2000にてユーザ環境変数を以下に設定済み。 JAVA_HOME=C:\Program Files\Java\jdk1.5.0_09 以下はJSPにアクセスした時のエラーメッセージ HTTPステータス 500 - -------------------------------------------------------------------------------- type 例外レポート メッセージ 説明 The server encountered an internal error () that prevented it from fulfilling this request. 例外 org.apache.jasper.JasperException: JSPのクラスをコンパイルできません 原因 Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. Perhaps JAVA_HOME does not point to the JDK
指定したフォルダアドレスの下位フォルダを表示する プログラムを作ったのですが 配列に格納しようとするとうまくいきません どうすればよいですか? public class FolderList { public static void main(String[] args) { File dir = new File("フォルダアドレス"); String add = ""; ref(dir, add); } static void ref(File dir, String add) { String[] mdir = dir.list(); // nullチェック if (mdir == null) { return; } for (int i=0; i < mdir.length; i++) { File sdir = new File(dir, mdir[i]); if (sdir.isDirectory()) { String name = add + "/" + sdir.getName(); System.out.println(name); ref(sdir, name); } } } }
>>249 マジレスすると、そこにあるライセンスを嫁
262 :
248 :2007/01/20(土) 14:43:16
たくさんのレスありがとうございます。
ということで要所要所だけソースを幾らか晒してみます。
繰り返しではなく単体動作の場合は問題なく動作することをテストしています。
連続でやる場合交叉部分で物凄い時間が掛かっているように思われます。
親2体の元々の整数をビット列に直しておりそれを引数として渡しております。
intのallsumは集合の総和。
int[] elementsは要素の集合。
gap.changeIntegerというのはビット列を整数に戻すメソッドです。
gap.chnageByteというのは整数をビット列にするメソッドです。
ルーレット式選択方での同じ親を選ばない選択法は厳密には同じ親ではなくても同じ要素を持つ個体同士だと
選ばないようになっております。
また突然変異が起こった場合に限り対になる固体をエリート選択としてあります。
全文でなく要所だけ摘んでのうpすみません。
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29124
263 :
249 :2007/01/20(土) 14:44:02
264 :
248 :2007/01/20(土) 14:48:44
うpした部分で一部分間違いがありました。 メイン内の for(int count = 0; count < GAParts.GENERATION; count++) { current = element[0]; allsum = gao.allSum(current); の部分は current = element[0];ではなく current = element[count];が正しいです。
265 :
248 :2007/01/20(土) 14:55:29
連投すみません。 テスト用なので名前適当につけたところの説明です。 int[] motoはint[2]でありルーレット式で選択された2個の固体が入るtmpということで。 byte[][] mottoはbyte[2][GAParts.MAX_LENGTH];でありビット列を格納するtempということで。 GAParts.MAX_LENGTHとは遺伝子長の長さです。(ビット列の長さ) int[] currentは現在使用中の世代目の集合、int[] nextは次世代に渡す集合。 int[][] element = new int[GAParts.GENERATION][GAParts.N];が世代数×集合の数です。 elementなのは重複する変数名があったためで間違いではありません。 小出し小出しですみません。 よろしくお願いします。
266 :
デフォルトの名無しさん :2007/01/20(土) 15:23:40
beabwriteについてどんなものか教えてください
267 :
259 :2007/01/20(土) 15:31:10
以下が交互に出る事を確認したんですけど、理由が良くわかりません。 org.apache.jasper.JasperException: JSPのクラスをコンパイルできません org.apache.jasper.JasperException: JSPのクラスをロードできません もしかして、java EEじゃないと動かないとか? javaEE入れてみるか・・・。
268 :
デフォルトの名無しさん :2007/01/20(土) 16:11:19
謎解き言語かよJAVAは
>>248 遺伝的アルゴリズムの前に、伝統的なアルゴリズムを勉強して、
logN で済むところが N や N^2 や N! になったりしていないかを調べましょう。
あと、今さらですが。
×シュミレーション
○シミュレーション
270 :
デフォルトの名無しさん :2007/01/20(土) 17:23:27
j2sdkをインストールしたところで PATH変数の更新の手順が書いてあるんですけど、 コントロールパネル→システムと行き、 [ユーザー環境変数]と[システム環境変数]で、 [PATH]を探すと書いてあるんですが[ユーザー環境変数]の一覧に、 [PATH]がないのですがどうしたらよいのですか?
>>270 ユーザー環境じゃなくて、システム環境だけで十分ですよ。
272 :
デフォルトの名無しさん :2007/01/20(土) 17:34:19
引数Stringで受け取った文字が 全角数字だった場合にtrueを返すbooleanメソッドを作りたいんですけど どうすればいいんでしょうか?
273 :
デフォルトの名無しさん :2007/01/20(土) 17:35:36
>>262 >連続でやる場合交叉部分で物凄い時間が掛かっているように思われます。
そこは断定してくれよ
274 :
デフォルトの名無しさん :2007/01/20(土) 17:37:09
>>272 parseIntでNumberFormatExceptionをキャッチして判断しろ
275 :
267 :2007/01/20(土) 17:38:26
おまえらに無視されつづけたけど、なんとか動いたよ。 classpath = .;%JAVA_HOME%\lib\tools.jar の設定が必要だったらしい。 俺以外にもできない人がこれから出てくるかもしれないから、一応書いとく。
手軽に書くなら正規表現があるからそっち使う。 真面目に書くなら if ('0' <= c && c <= '9') でOK。
277 :
デフォルトの名無しさん :2007/01/20(土) 17:42:57
>>272 Stringで受け取るって、全角数字とそれ以外が混在したらどうなるん?
279 :
デフォルトの名無しさん :2007/01/20(土) 18:58:46
>>265 とりあえず
一様交差と2点交差をどちらか一方だけで試してみ
java のリフレクションって、public 以外のメンバは扱えないんですか?
サーブレット側でbeanをnewして シリアライズされたString型のlistをjspで表示しようとした所 文字列の前後に[]がついてしまい [ 文字列 ]←のような感じなってしまいました 外す方法はありませんか?
282 :
248 :2007/01/20(土) 19:15:30
レスありがとうございます。
>>269 最低限の動作しか実装していないつもりなのであまりそういう部分は現状では(自分の知識不足)思い当たりませんが。
アルゴリズムの勉強不足は実感しておりますのでそちらは必要だと思います。
ご指摘ありがとうございました。
>>273 最初の使用ではメイン動作の前に前述の様な表示があってそこまでは問題なく表示されるのですが
そこから表示されるのに物凄く時間が掛かっておりました。
前述の後は交叉または突然変異する確率を0-999の間で乱数で発生させ、
条件分岐でrandom<949なら二点、<999なら一様それ以外なら(999)突然変異と定義しております。
ここまでは動作が重くなる要素はないと思います。
その後実際にメソッドに移って処理をするのですがその中にもSystem.out.println();でテスト用の標準出力を入れておりましたが
1個ではすぐに表示されるのに再帰的に繰り返しているせいかある程度の部分でそれまでの処理の結果が出力されるようになっています。
ので怪しいのはルーレット式選択、二点交叉、一様交叉、突然変異辺りだと思うのですがその中身も結構簡単な処理にしてあると思うのですよね。
スケーリングなどは実装していないので最低限の処理だけのつもりなのですが。
>>279 試してみた際に気持ち一様交叉の方が動作が重かったように思われます。
なので確率をかなり下げたのです。
詳しくは後ほど試して見ます。
ランダムで生成する回数が増えると動作が重くなったりしますかね?
一個ミスに気づきましたが恐らくルーレット式で同じ要素を選んだ場合ではなく
要素の内容が同じ場合にする再抽選が重くなってるのだと思います。
局所解ルートですと要素の内容が同じことは良くあると思いますので。
手直ししてそれでもダメでしたらまた来ますね。
283 :
272 :2007/01/20(土) 19:37:26
レスくださった方ありがとう
まだ動かすところまでいってないんだけどとりあえずお礼だけ
>>278 falseで返せばいいんだと思います、多分
ちなみにCharacter.isDigitは全角数字にもtrueを返す。 デーヴァナーガリとか漢字の数字にも。
>>283 こんな感じ?効率は無視。String#charAt(int)も微妙に遅いし、記述の簡便さをとった。
public boolean is全角数字(char c) {
return '0' <= c && c <= '9';
}
public boolean is全角数字(String s) {
for (char c : s.toCharArray())
if (! is全角数字(c)) return false;
return true;
}
Apacheライセンスで日本向けの文字列チェックライブラリを作っちゃいたいな 史上最悪の車輪の再発明だよ。
つーかリフレクションの使い道ってなによ?
つーかの参照先を先に教えて欲しい。話はそれからだ。
289 :
280 :2007/01/20(土) 21:03:09
>>288 多分俺
>>287 java のバイトコードにコンパイルする小さな処理系を作ってて、
既存のクラスの protected メンバを取得するにはどうすれば良いかな、と考えてまして。
>>289 getDeclaredField とか getDeclaredMethod を使え。
getField とか getMethod は public なメンバしか取れない。
意図的にセキュリティぶっ壊せるからそれでやれ。 ユニットテストでもそれでやってるところがある
>>290 あ、ごめん。そっち見てなかった。ありがとうございます。
0〜500の閉区間で乱数をとりたいのですが、 普通の乱数は int RAND1 = (int)(0 + Math.random() * 500); でやるのは解ったのですが、 正規分布にそった乱数の取り方が解らなくて困っています。 Random().nextGaussian()は、0〜1の間で正規分布の乱数をとると聞いたので int RAND2 = (int)(0 + new Random().nextGaussian() * 500); とやってみたのですが、なぜかマイナスがでて困ってます。 nextGaussian()の正しく使うにはどうしたらよいのでしょうか? また、正規分布乱数を発生させるにはどうしたらよいのでしょうか?
>>294 ありがとうございます。
うーん平均0、偏差1ですか。
閉区間[0,1]ではなかったのか・・・。
500倍したところで結果が変になったわけが判りました。
ところで閉区間ではどう使えばいいのでしょうか?
0〜500でやりたいから、平均250なのだから+250して、ifで0未満と500以上だった場合やりなおし。
あとはどんな条件を加えればよいのでしょうか?
296 :
295 :2007/01/20(土) 22:25:46
自己解決しました!
ちょっと!ちょっとちょっと!!(汗 295は私です。293も私です。 まだ全然解決してません。 Wikipediaの図によると、標準正規分布は、0を基準に±3でほぼ0になっているように思えました。 これを250を基準に範囲を0〜500に広げたいので int RAND2=(int)(new Random().nextGaussian() * 250 / 3); で大体あってますか?
298 :
248 :2007/01/20(土) 22:48:11
何度も何度もすみません。
ルーレット選択の部分を見直してみましたが全く速度上がらずです。
もしかすると実行環境の問題かもしれないのでよろしければどなたか試していただけたら幸いです。
一応BitDefenderで検疫済みです。
test.batをダブルクリックで実行します。
世代数は繰り返す数、集合のサイズはそのままの意味です。
対立遺伝子とは要素がとりうる値で、2^nの倍数で入力お願いします。
ランダム生成値の上限は基本的に対立遺伝子と同じにしてください。
自分は50世代、要素数20、対立遺伝子1024ランダム1024程度でも遅いときは数分掛かります。
出力の成績は初期集合と最後の集合の要素、合計、平均値になります。
時間がある方がいらっしゃいましたらどうぞよろしくお願いします。
http://www.uploda.org/uporg660928.zip パスは「java」です。
>>297 まず正規分布を理解するところからだな。
300 :
デフォルトの名無しさん :2007/01/20(土) 23:14:35
>>298 対立遺伝子って遺伝子長のことか?
遺伝子長が長けりゃ遅いのは当然
301 :
デフォルトの名無しさん :2007/01/20(土) 23:21:29
時間かかりすぎバグだな
302 :
248 :2007/01/20(土) 23:22:16
>>300 対立遺伝子は遺伝子が取りうる値で10進数で1024という意味です。
実際には0-1023までの数字がランダムで生成されます。
遺伝子長(ビット列ということですよね?)で現すのならばビットの長さは10桁です。
10桁はそんなに長くないと思っていますが一度ビット列に直して交叉をして整数に戻すという処理がある分
計算上では結構大変なのですかね?
303 :
あんぽんたん :2007/01/20(土) 23:25:43
修論でGAについて書いた俺が助けてやろうと思ったが もう忘れたからあきらめた
GA=ギャラクシーエンジェル? その論文が読みたいオレガイル
305 :
あんぽんたん :2007/01/20(土) 23:30:20
このプログラムは対立遺伝子を大きくすればそれだけ遺伝子長は伸びるんだよな?
306 :
248 :2007/01/20(土) 23:33:15
>>305 そういう仕様になってますね。
実際には対立遺伝子MAX_ELEMENTと遺伝子長MAX_LENGTHがありまして
MAX_ELEMENTを下記のメソッドに渡してMAX_LENGTHが返ってくる仕組みになっております。
public int setMAX_LENGTH(int ele) {
int length = 0;
for(int i = ele-1; i > 0;) {
if(i - ele/2 >= 0) {
length++;
ele = ele/2;
i = i - ele;
} //if
} //for
return length;
}
>閉区間[0,1]ではなかったのか・・・。 そんな正規分布の「ライブラリ」があったらこえーよ。
なんでjavaでやってんねん FortranかC/C++に書き直してベクトル化率95%以上に最適化して地球シミュレータでぶん回せ
309 :
あんぽんたん :2007/01/20(土) 23:55:01
>>306 質問でーす
・この評価って何が良くて何が悪いかって評価をしてるの?
・動かして見たけど対立遺伝子をかなり大きくしたらすぐにプログラムが終了
対立遺伝子が小さいとどの遺伝子も同じになっちゃってるんじゃないかな?
俺の環境
Pentiam M 1.3GHz メモリ768MB
>>298 と同じ条件でやったが数分で終わるってレベルじゃねーぞ!!
ルーレット選択をどういう形に修正したんだ??ちょっと教えれ。
ルーレット選択が成功したら何番目と何番目の親を選択したのか表示するようにするか、
もしくは再抽選を何回やったか見てみろ。
311 :
310 :2007/01/21(日) 01:51:07
>>306 すまん、ちょっと聞きたいんだが…これって、ビット型GAじゃないのか?勘違いなら指摘してくれ。
普通GAで対立遺伝子が10進数で[0〜1023]、遺伝子長10というと、要素(染色体のことでいいよな?)は例えば
要素=[911][815][214][552][323][047][801][503][403][404]
↑
対立遺伝子(0〜1023間での値を取る)
っていう理解になるんだが、どうなんだ?
NETにおいて実際に使用しているメモリのサイズを確認するには、 GCクラス(System名前空間)のGetTotalMemoryメソッドを使用して計測する必要がある って読んだんですけどJavaで同じこと知りたいんですがどうすればいいのですか?
314 :
デフォルトの名無しさん :2007/01/21(日) 02:05:54
javabeanをXMLに出力するライブラリってありませんか? JAXBで読み込みは出来てもスキーマごと出力したいんですができませんでした。
315 :
デフォルトの名無しさん :2007/01/21(日) 02:10:13
dos窓に文字列を表示するんじゃなくて コマンドを打ち込むプログラムって作れますか? 作れるなら 参考文献ややり方教えてほしいです。
表示System.out 入力System.in
>306 このメソッド、値が0か2^N(0以上の整数)以外の時は真の永久ループになるけど、 そういう仕様?貼り間違い? 最低限と言っている処理が本当に正しくかけているかもう一度確認したら? 細かい要素に分解して、一つずつ。
318 :
ぴゅあ :2007/01/21(日) 02:18:56
319 :
デフォルトの名無しさん :2007/01/21(日) 02:35:30
インスタンスってナンデスか( ´・ω・` )
>>315 何がしたいんだろう?
バッチファイルを出力してそれを呼び出す、とかではダメなんでしょうか?
321 :
デフォルトの名無しさん :2007/01/21(日) 02:41:23
バッチファイルって実行するとdos窓が開いて動くようなやつでしたっけ。。 javaプログラムからdosにSQL文を入力させてデータベース上書きするとか。 自作のメモ帳で書いたソースをボタンおしたらコンパイルできるようにしたりとかしたいんです。
>>319 おにぎりテンプレート=クラス
おまいの弁当のおにぎり=インスタンス
あんだすたん?
>>321 Runtime.execじゃダメなん?
324 :
デフォルトの名無しさん :2007/01/21(日) 02:45:20
3軒の屋台が
325 :
319 :2007/01/21(日) 02:45:52
どうしたら、Java プログラムから外部のコマンド(プログラム)を 呼び出せますか? [A] java.lang.Runtime クラスの exec メソッドを使います。 Runtime のインスタンスは、 スタティックメソッドの getRuntime() で取得します。 この文章でいうインスタンスってどういう意味でしょうか。
>>325 おにぎりをひとつだけ持ちたいとか
環境に合わせておにぎりを変えたい場合などはそんな風になる。
Runtimeに関してはOS依存のために後者を理由にそうしてるはず。
>>325 Runtime オブジェクトのインスタンス
インスタンス=オブジェクトというような意味で書いてある文章もあるんで混乱してきましたorz 他のHPでRunntimeについて調べたら意味がわかりました
ちがう、インスタンス系オブジェクトだ。 intもクラスもインスタンスもオブジェクト。
>>328 オブジェクトは文脈によってインスタンスを指したりクラスを指したりする。
インスタンスまたはクラス=オブジェクト。OK?
インスタンスの意味はどんな文章でもあまり変わらんと思うぞ。
鋳型=クラス、鋳物=インスタンスでガチでしょ オブジェクトという概念の扱い方が迷走してるだけかと。
333
334 :
718 :2007/01/21(日) 04:58:32
この問題を質問すべきスレがわからなかったので、ここで聞かせてください。 Cygwinを使ってCのプロジェクトを実行しようとしたのですが、 以下のようなエラーメッセージが出てしまいます。 Debug Assertion Failed! Program : C\・・・・・・・ file fgets.c Line 60 Expression : str != NULL For information・・・・・ 最初はfgetsの使い方が間違っていると思ったのですが、 違うファイルを作って試したら問題ありませんでした。 このエラーメッセージからどこがおかしいのか理解できません。 ご存知の方がいらっしゃったら教えていただけないでしょうか?
ソース晒せないの? 自分で作ったものか他人のをパクってきたのか
ぬるぽ
それ以前にスレ違いだし。つーか718って何だ?どっかの誤爆か
339 :
デフォルトの名無しさん :2007/01/21(日) 10:26:17
Commons LangのStringEscapeUtils.escapeHtml()なんですが これ日本語もエスケープしてしまうのですが、日本語はそのままに してくれるヤツはどこかにないでしょうか?
ないです しなくていいです っつーかされたらこまります
341 :
248 :2007/01/21(日) 14:58:01
レス遅くなりました。
すみません。
>>262 で以前に要所のソースは晒してあります。
>>309 評価というのは要素の値が対立遺伝子に近ければ近いほど選ばれる可能性が大きくなるものです。
選ばれた同士で交叉をするので親が優秀なので子も優秀になるのではという期待が得られるのです。
小さい場合の結果が同じになるのは自分でも確認しておりますね。
>>310 ,311
ルーレット式の再抽選方法は
do{}while文を利用して抽選をします。
for文のjの値に選ばれたelements[j]がchoise[i]の中に入ります。 i < 2; j < elements.length;
×while(choise[0]==choise[1]);となっていたものをchoise[i]に代入の際にtmp[i] = j;
として選ばれた行列の番号をtmp[0]とtmp[1]に代入。
以前は代入された中身で評価していたものを行列の番号で評価にしました。
while(tmp[0] == tmp[1]);
あとビット列の話ですがint形の数字をビット列に直すメソッドを作って一度ビット列に直しております。
内容が0か1であることは確認済みです。
ソース張りたいのですが少し長くなってしまった為に次で貼りますね。
>>317 >>298 でも書きましたように対立遺伝子のとる値は2~Nが仕様となっております。
元々自分がテスト用でつけた標準入力なのでわかりにくくてすみません。
結構何度も確認してるつもりなんですよね。
きっと間違いは一度離れてみなくては分からないという奴ですよね。
342 :
あんぽんたん :2007/01/21(日) 15:27:30
>>341 >小さい場合の結果が同じになるのは自分でも確認しておりますね。
だからね対立遺伝子が小さいと遺伝子集合が同じものばっかりになるでしょ
その場合にループの回数が多くなるようになってるんじゃ無いのかな?
試しに対立遺伝子2^14とかでやったらすぐ結果出るでしょ
>>341 >
>>317 >
>>298 でも書きましたように対立遺伝子のとる値は2~Nが仕様となっております。
> 元々自分がテスト用でつけた標準入力なのでわかりにくくてすみません。
> 結構何度も確認してるつもりなんですよね。
> きっと間違いは一度離れてみなくては分からないという奴ですよね。
>>298 には 2^nの「倍数」 ってあるけど、そこが書き間違いな訳ね。
それはいいとして setMAX_LENGTH って
ループまわさなくても Math.log(ele)/Math.log(2) で求められるでしょ。
こういう無駄がまだたくさんあるんではないか?
"MyHelloWorld1" "MyApp2" 等、動的に与えられたString型の情報をもとに、 同名のクラスファイルをロードして実行(public static void main の呼び出し?)する Java のプログラムを作りたいのですが、どこから手をつけてよいのか分かりません。 他のクラスの実行に関わるクラスって何なのでしょうか? ※ 一応 Java Language Specification 3rd Ed. の第12章(実行)は 一通り読んだので JVM の起動の仕組みは理解しているのですが…(ひょっとしてあまり関係ない?
>>344 ClassLoader
リフレクション
346 :
デフォルトの名無しさん :2007/01/21(日) 16:49:46
JVM の起動の仕組みを理解されてる立派な技術者がその程度のプログラムも書けないとは
347 :
345 :2007/01/21(日) 16:54:37
>>344 サンプルコードも書いてみた。
public class Loader {
public static void main(String[] args) throws Exception {
String name = "Hoge"; //呼び出すクラス名
ClassLoader cl = Loader.class.getClassLoader();
Class c = cl.loadClass(name);
// mainメソッドを取得
java.lang.reflect.Method m = c.getMethod("main", String[].class);
Object o = c.newInstance();
//クラスのメインメソッドを呼び出し
m.invoke(o,new Object[]{new String[0]});
}
}
348 :
デフォルトの名無しさん :2007/01/21(日) 18:32:35
addActionListener()で()内をthis以外を指定したい場合は ()内と指定先のファイルの中身はどのようにすればいいのでしょうか? わかりにくい質問ですいません。。
>>347 サンクス。
java.lang.reflect か。盲点だった。
350 :
ゆー :2007/01/21(日) 18:55:24
>>348 指定先のメソッドの引数を変えればできますよ!
>>348 addActionListenerメソッドの引数には
『ActionListenerインターフェースをimplementsしたクラス』を指定する。
自分自身にActionListenerをimplementsしている場合にthisと書くだけ。
他のクラスにActionListenerをimplementsし、actionPerformedメソッドを実装して
そのクラスのインスタンス(を参照する変数)を引数に指定すればよい。
353 :
348 :2007/01/21(日) 20:12:52
ありがとうございます!!さっそくやってみたら無事通りました^^
354 :
デフォルトの名無しさん :2007/01/21(日) 20:34:42
System.out.println(0x935f - 0x8140); 結果 ≠ 121f なぜ?
アプレットについての質問です フラグが立ったら、 それまでできていたマウスでの操作を受け付けなくするには どうすればいいですか?
357 :
デフォルトの名無しさん :2007/01/21(日) 21:48:32
いつもお世話になっております ちょっと疑問に思ったんですけど 配列って事前に要素数を決めないと駄目なんですよね? 例えばある配列に数字の1〜100が入っていて その中から10以下の値のみを別の配列に取得したい時、 一度配列の全要素を調べて10以下の数をカウントして、 その数分の要素数の配列を生成してから、 もう一度配列をforとかで回して 代入しないといけないのでしょか?
リストを使う手もある
>>357 yes
面倒だったら Generics で ArrayList<Integer> 使ったり、
commons primitives の ArrayIntList 使うとかすれば?
360 :
310 :2007/01/21(日) 22:17:02
>>341 ちなみに、要素の中身は
>>311 に書いたやつでいいのか?あそこに書いた要素が20個とかあるのか?
あと他にwhile文でループ回数が多くなりそうなところにループ回数を出力する式を追加してみたら?こういったときによくする手なんだが…
もし、ルーレット選択に特にこだわりがなければ、グリーディー手法かεグリーディー手法試して見れ。
>>357 自分で全部見なくてもソートさせて10超えるまで見るって手もある。
結局自分が見なくても誰かが見る事には変わりないけどね。
362 :
357 :2007/01/21(日) 22:46:52
指定したディレクトリに、入力したファイル名でフォルダを新規作成するプログラムを作りたいのですが どのようにすればいいのでしょうか?java フォルダ作成 などで検索しても目的のページに辿り着きません
>>363 java.io.Fileパッケージ
mkdirs()等
ごめんパッケージじゃなくてクラスだ。 java.io.Fileクラス
"Java ディレクトリ作成"で答えが出たのに
367 :
363 :2007/01/22(月) 02:05:14
368 :
デフォルトの名無しさん :2007/01/22(月) 06:23:00
いつも自己解決しております。 ありがとうございます!
アクセス数をcount.txtから読み取って画面に表示し、1足してまた書き込むjspを warファイルにまとめてみました。 ブラウザからアクセスするとアクセス数が1ずつ増え、確かに読み書き出来ているようですが、 warファイルの中のcount.txtをのぞいても始めに自分で書き込んだ0という数字があるだけです。 アクセス数は一体どこに記録されてるんでしょうか?
370 :
デフォルトの名無しさん :2007/01/22(月) 09:43:43
>>369 warファイルの中って事は自分で圧縮し直してるって事かな?
>>370 warファイルはeclipseの機能で作成しています。
tomcat_home/webapps/にtest.warを置き、
ブラウザでアクセス後、test.warの中にあるcount.txtに数字が+1されて書き込まれているはずですが、
test.warを解凍してcount.txtをみても何も変化なしです。
372 :
デフォルトの名無しさん :2007/01/22(月) 11:06:10
>>371 warファイルの中のtxtを解凍せずに書き込む???
解凍もせず、圧縮もせずにwarファイルの中身だけを差し替えてるって事???
ごめん、状況が全然分からない。
373 :
372 :2007/01/22(月) 11:08:35
>>371 勝手に解凍されてるwarがあるでしょ?そっちのcount.txtが書き換えられてないかな?
あと、tomcatを再起動するとカウントが戻るとかそういう現象は再現してないかな?
>>373 >勝手に解凍されてるwar
指摘されて今気付きました。勝手に解凍されるんですね。
てっきりwarのまま使われると思ってました('A`)
ありがとう!
375 :
デフォルトの名無しさん :2007/01/22(月) 20:06:50
コンポーネントというか、 jButtonにgif画像を表示させることはできますか? 簡単なものでいいので、コーディングの仕方か手順などを 教えてください。
サーバ、クライアントでJListの文字列データを同期して変更したいのですが、どんな方法を使えばいいのでしょうか。
378 :
デフォルトの名無しさん :2007/01/22(月) 21:54:05
或るマシン上にJavaのプロセスが起動していて、 そのプロセスにDOSからメッセージなげることできる?
379 :
デフォルトの名無しさん :2007/01/22(月) 22:09:38
コマンドプロンプトから実行して足し算を行うプログラム。 引数に上限・制限はなし。 入力されたすべての値を合計した結果を表示したい。 入力例)20 4 7 出力例)20+4+7=31 わかりません。。お願いします。
>>376 ありがとうございます。
やってみます。
JFrameを継承したクラスの中で public void paint(Graphics g) { } メソッドを実行しようとしているのですが、 重大度記述リソースフォルダーロケーション作成時刻ID 2トークン "(" に構文エラーがあります。正しくは ; です。Basic003.javaBasic003行 1472007/01/18 20:13:482185 重大度記述リソースフォルダーロケーション作成時刻ID 2トークン ")" に構文エラーがあります。正しくは ; です。Basic003.javaBasic003行 1472007/01/18 20:13:482186 と表示されてしまいます。 開発環境はEclipse SDK 3.1.1です どなたか原因をご教授願えませんか?
上の質問の"(" ")"は (Graphics g)のカッコです。 どなたかお分かりになる方、お願いします。
384 :
デフォルトの名無しさん :2007/01/22(月) 23:12:22
インターネット版で質問したのですけど 人大杉で見ることができません ここで質問してもいいですか Javaのアップデイトをするようにと 画面右下に表示されているのですが インストールしてもいいのでしょうか 以前はたしか日本語で表示が出たように 記憶していますが、今回は英語で出てます
専ブラ使えばいいんじゃないかな
386 :
デフォルトの名無しさん :2007/01/22(月) 23:19:24
てか、ここ質問多すぎて質問がすく流れてしまう。。 もっとスレッド分割したほうがいいのではないか
ある文字列の中に、指定した一文字が いくつあるかを調べられる文字列関数ってありませんか? ご存知でしたらおしえてください。
>>387 一発で数えるメソッドは標準ではないと思う。
String の toCharArray() 使って文字配列にしてから
一文字ずつグルグル回して数えるか、
indexOf(Iint, int) で -1 投げるまで回すかだと思う。
strstr
391 :
384 :2007/01/22(月) 23:32:55
>>385 ありがとう
専ブラ?2ch用ってことですよね?Java用?
なんのことやらさっぱりですんません
>>391 分かりやすく言うと、
人大杉で見られないインターネット版を専用ブラウザで見る方がいいんじゃないか、
ということだよ。そっちの板で質問したのにさらにマルチでこっちに質問するのはいかんよ。
インターネット版にポストするのがその質問にとって良いと自分で判断したのなら初志貫徹すべき。
インターネット版がそもそも何か分からん
>>388 ありがとうございます!!
自分もindexOfをwhile( 戻り値 = -1)
で反復するしかないようだと思いました。
楽せず地道につくることにします。
あと関数ではなくメソッドですね…。
すみません。
396 :
384 :2007/01/22(月) 23:57:39
>>392 そうですね 失礼しました
さっきネット版見ることができましたが
アドバイスはありませんでした
Javaのアップデートに関する質問は
あまりにばかばかしくて回答するに
あたいしないってことなのですかねぇ
>>394 ああ、板のことか・・
>>395 jakarta の commons-lang プロジェクトでそんなのがありそう。
自分で作った方が早そう。
StringUtils#countMatches(String, String)
>>396 ここはプログラム板のJavaスレだから、
Java でプログラムする人が使う場所。
あなたの質問は Windows 板かソフトウェア板が適切だと思う。
(くだ質系なら反応が早いかも。)
399 :
384 :2007/01/23(火) 00:24:50
アメリカ人のプログラマーに聞いて解決した 最初っから電話すれば良かった
質問です。 現在アプレットで動く簡単なシューティングゲームを作っていますが、急遽これをJFrameに作り直せといわれました。 多少書き換えてmainに数行加えればいいと言われたのですが、やり方がサッパリ分かりません。 こうすればいいとか、参考になるHP等あったら教えて欲しいです。
>>382 メソッドを実行しようとして起きた実行時エラーにしてはおかしなエラーメッセージだなw
paintの前のメソッドなりフィールドなりが完結していないと思われ
>>400 Applet を JPanel に変更
JFrame 作って配置
が主な作業
>>400 AppletやJAppletはPanelの一種だから、
適当なサイズのフレームを生成して、アプレットのインスタンスをそれにaddするだけだ。
ただし、アプレットのinit()やstart()等のアプレットなら勝手に呼び出してくれていたメソッドは呼び出されないので、
自分で呼び出す必要がある。
destroy()やstop()のような後始末系のメソッドをオーバーライドしていないのなら、
アプレットのインスタンスを生成した後でinit()を呼び出して、
その後、フレームを可視化してから、start()でアプレットの処理を開始すればいい。
AppletでAWTのコンポーネントを使っているとJFrameとは相性が悪いかもしれず。
その時はFrameを使った方がいいかも。
destroy()やstop()を自分で再定義しているのなら、 WindowEventに耳を澄ましてフレームの終了時にdestroy()やstop()を実行してやる。
C:\MYJava>javac MyJava.java MyJava.java:5: シンボルを解決できません。 シンボル: メソッド ptintln (java.lang.String) 場所 : java.io.PrintStream の クラス System.out.ptintln("My Java program"); ^はout.の.についてます。これの解決方法を教えていただき たいです。
綴りが、違う ptinlnじゃなくてprintln
×ptintln ○println
>>407 指摘ありがとうございました!おかげで動きました!
>>387 public static void main(String[] args) {
System.out.println(count("あ", "あいうえおまああぁっかなあ"));
}
public static int count(String c, String s) {
return s.replaceAll("[^" + Pattern.quote(c) + "]", "").length();
}
411 :
デフォルトの名無しさん :2007/01/24(水) 00:44:34
for文を使って文字列を逆順に出力したいのですが、どうすればいいでしょうか? String str = br.readLine(); for(int i= _______;i>0;i--) System.out.print(str._____); //1文字ずつ逆順に出力
補助文字を考えなくていいなら、charAtでchar1文字取り出せる。
413 :
デフォルトの名無しさん :2007/01/24(水) 00:56:45
うーん lengthも使うみたいなんですが・・
>>411 for文にマイナスが付いてる事が味噌
文字列の状態で逆にしなくても、出力が逆なら良いのでしょう
416 :
デフォルトの名無しさん :2007/01/24(水) 01:07:07
abcdefでうちこんだら fedcbaと出したいのです。 しかし、i++はよくみても、i--ははじめてなので 特にint i = のあとが思いつかないのです。
i++の意味を考えたらi--の意味も想像付くだろ? forの3要素の働きから再確認したほうがいいぞ。
>>416 「思い付かない」じゃなくて
知らないんでしょ?
419 :
デフォルトの名無しさん :2007/01/24(水) 01:20:32
str.lengthかなぁ・・ 3要素とは?
要素なんて妙な言葉を使ったのは悪かったが、 forのカッコ内の;で区切られた3つを指してたつもり。 どうして for (int i = 0; i < str.length; i++) で1文字ずつループで処理 できてるのか理解してるかい?
421 :
デフォルトの名無しさん :2007/01/24(水) 01:28:21
iは最初0で、iが文字列の長さ未満のとき、iに1つプラスして繰り返す だと思います。 あと、i>0のとこ、i>=0でした。すみません
422 :
デフォルトの名無しさん :2007/01/24(水) 01:32:22
つまり、今回はint iは0以上だとループされないから 文字列の長さをカウントして、そこから1ループにつき、 1減らしながら出力する・・ 文字列を1文字ずつ出力するにはcharAtをつかうのは わかるのですが、str.があるだけに苦戦してます。
だから、メソッドの呼び出しなら API Reference の String の項を見なさいって。
な、なんだ?
あと一歩だな。あとは、順番は0始まりで数えるから、 スタートが「文字列の長さ」番目の文字じゃなくて、 「文字列の長さ-1」番目の文字から始めるということに注意。
426 :
デフォルトの名無しさん :2007/01/24(水) 01:48:46
となると、str.length()-1 安易かな・・ 迷惑かけてすみませんね 考えはじめて2時間経過...
正解。おめでと。
もし i >= 0 じゃなく、
>>421 で訂正する前の i > 0 だったら
どうなるか考えてみるのも面白いかもしれない。
429 :
デフォルトの名無しさん :2007/01/24(水) 02:00:17
ありがとう、上はいいみたいなんですが 下の文でまた止まってますね charAt()をそのまま うちこんでは駄目ですし、むむ。。
>>429 止まるって?
何も反応がなくなるとか?
宿題スレ行った方が良くない?
431 :
デフォルトの名無しさん :2007/01/24(水) 02:08:46
いや、あとはこの部分だけだし・・・ エクリプスでみてるのですが、波線が消えないのです。 charAtってString str に変換できないんでしょうか? str.は使わないといけないというのがわからない。
解答を先に進められずに止まってるという意味じゃないかね? とりあえずAPIドキュメントを手元でいつでも参照できるように すべきではないのか?
何が分からないのか分からない病か…
>>431 charAtじゃなくて他のメソッドを使えば多分やりたい事はできるよ。
>>432 のリンク先を見ればわかる。
じゃあ、もうゆっちゃう? ゆっちゃうよ? charAt(i) ・・でしょ?例のところに。ちがう?
437 :
デフォルトの名無しさん :2007/01/24(水) 02:35:22
436さんの通りやったら、できた。。 そうか、変数を()の中に入れるのか・・ それがわからないとは。。 うーん 基礎がなってないのを痛感しました。 皆さん、僕のために考えさせてくれてたのですね、ありがとう。 436さんもありがとう。正直、API リファレンスってのも知りませんでした。 参照できるようにせねば (汗
痛感するまでもなく基礎がないのはわかりきってたろ?
教えるということがいかに虚しいことかしみじみと感じる今日この頃
441 :
デフォルトの名無しさん :2007/01/24(水) 02:56:25
>>439 ありがとう〜これは良さそうなサイトですね。早速お気に入りに登録しました。
僕は、Cをまず教わり、構造体とポインタで挫折して
それからすぐJAVAがはじまって今度こそと勉強してるのですけども
やはり、Cがわかってないと厳しいのかなと考えています。
442 :
デフォルトの名無しさん :2007/01/24(水) 02:58:08
世界の時計のJAVAスクリプトは腐るほど見つかりますが、ほとんど現在の時刻での比較ですので、全く使えません。 2日後の9時などを、日時で入力して、そのときの時計の比較とか出るものってできますか? これはJAVAスクリプトでは不可能ですか?
Javaを中学生の「情報」だかの教科でやってんだろうか? ポインタで挫折する奴は話では聞いたことがあるが、 構造体で挫折なんて奴は聞いたこともない
良く訓練された荒らしのようだ
445 :
デフォルトの名無しさん :2007/01/24(水) 03:06:45
お恥ずかしい限り。。いい大人なんですが・・・ そして、荒らしではありません。。大変迷惑かけましたが。。 やはり、Cからやり直した方がいいんですかね。 javaが始まって復習する時間が取れなくて。 それにどうやら僕はfor文だって理解してないみたいだし でも、何とか習得したいと思うので、あがいてみます。
>世界の時計のJAVAスクリプトは腐るほど見つかりますが、ほとんど現在の時刻での比較ですので、全く使えません。
>2日後の9時などを、日時で入力して、そのときの時計の比較とか出るものってできますか?
>これはJAVAスクリプトでは不可能ですか?
>>442 これを日本語で言うのは不可能ですか?
>>445 あのね。勉強の順序じゃなくて
基礎知識を参照せずに
「当てずっぽう」やってるのが問題なのね。
そこから変えていこう。
448 :
デフォルトの名無しさん :2007/01/24(水) 03:15:02
世界の時計の現在の時刻の比較の、JAVAスクリプトはたくさん見つかりますが、 2日後の時刻の9時など、日時をフォームに入力してプッシュすると、そのときの世界時計の比較が出るものってありますか? これはJAVAスクリプトでは不可能ですか?
できますよ
450 :
デフォルトの名無しさん :2007/01/24(水) 03:17:47
鋭い、、、 確かに僕は課題をパズルのように解いている、。
451 :
デフォルトの名無しさん :2007/01/24(水) 03:28:58
>>449 できるなら、ソースをください。お願いします。
>>451 まだ作ってないからソースまだは無いよ。
それにそもそもスレ違いなのでここには貼りません。
453 :
デフォルトの名無しさん :2007/01/24(水) 03:37:28
ケチ!!!!!!! いいじゃんそれくらい!!!!!
SUNはNetscapeが「LiveScriptの名前変えちまおう」と言った時、 どんな反応したんだろう?今考えると大失敗としか思えないんだが。 Javaで検索してもJavaScriptなページが出てきたりとか。 勘違いする奴とか、勘違いする奴とか、あと勘違いする奴とか。
455 :
デフォルトの名無しさん :2007/01/24(水) 03:44:59
さて、無い物を探すのは不可能。さて、どうしよう。 金払うから作ってよ。
その縁でScripting Frameworkの筆頭にJavaScriptが来たじゃない まあECMAScriptとしての完成度が押された形だけどw
ひとつのUTC時間を参照して、それぞれの時差で時計を作るだけ。 グラフィカルにしなければ入門レベルだよ。
458 :
デフォルトの名無しさん :2007/01/24(水) 03:47:53
わかった。スレ違いだったんだね。 つまり、たい焼きと大判焼きは違うってことだね。
たい焼きとたこ焼きぐらいちがうわ!
>>441 今なら、ソーシャルブックマークに登録すべき
>>443 大学ならかなりやってるだろう。
高校でもやってるところ、あるんでないかな
聞いたことがある。
>>445 それじゃ、Cから初めても同じ事。
JavaのforとCのforはほぼ同じ。
むしろ、Cの方が使いにくいところが多い。
Cは、古いコンパイラだとローカル変数やなんかで躓くぞ。
CとC++とC#だって名前似てるし
そもそも、今のJavaScriptの正式名称はECMAScriptだし
>>460 まだ日本語なくね?
英語でいいじゃん、というならそりゃまそーだけどさ。
>>463 カンマ演算子ないせいで使いにくい時がある。>Javaのfor文
>>466 ECMAScriptの一実装がJavaScriptだ。
>>468 Javaにもカンマ演算子はあるだろ。
JavaScript2.0が登場したら、さらに間違えられる可能性蟻
>>469 C流のカンマ演算子はJavaにはないと思う。
Javaの構文で使われてるカンマは、
・引数の区切り
・変数宣言での変数リストの区切り
・implementsのインタフェースのリストの区切り
・配列の初期化子の中の要素リストの区切り
等々みたいに何がしかのリストの区切りとしてくらいで、
演算子としては使われていない気が。
ファイル名[Exercise1.java] //Exercise1.java class Exercise1 { public static void main(string args[]) { float a; a = 2.0; system.out.println("変数aの値は" + a + ”です”); } { C:\MYJava>javac Exercise1.java エラー: Exercise1.java を読み込めません。 エラー 1 個 読み込めませんっていわれたのですが、これの解決方法を 教えていただきたいです。
文章を間に挟んだ"*"で分割して表示したいのですがエラーが出て困っています。 どなたかアドバイスいただけませんか? String sentence sentence = question[a+1].split("\\*",0); //解説の行数を管理 0<=i<=3 int i = 0; //文字列の中でj番目以降に"*"が存在する位置を返す "*"は3個まで -1なら終了 int j = 0; //文字列の中の"*"を数え終わるまでループ -1なら終了 while(j != -1){ //j文字目以降のどこに"*"があるか調べる j = question[a+1].indexOf('*',j); if(j != -1){ i++; } } lb10.setText(""); lb10.setText(sentence[0]); lb12.setText(""); if(i >= 1){ lb12.setText(sentence[1]); } lb13.setText(""); if(i >= 2){ lb13.setText(sentence[2]); } lb14.setText(""); if(i>= 3){ lb14.setText(sentence[3]); }
すまん使ってたね
どんなエラーだよ とりあえず String sentence ↓ String[] sentence;
エラーが出ますしか言わずどんなエラーかを言わないのが初心者の悪い癖。 お前は解決の為に有用な情報をふるい落とすフィルターになってるんだよ。 ま、ソースを貼ってるだけでもまだいいけど。
まあ
>>479 みたいなエスパーの活躍の場が増えるからいいんじゃない?
なんていうか・・・パズルみたいでwww
>>476 エラーは貼るまで放置して…
split(String) じゃなくて split(String, int) を使ってるのに、
何でintに0を入れるかな…API読もうぜ
483 :
476 :2007/01/24(水) 15:49:05
>>479 すみません
ソースを張るときに消してしまっていましたが
String sentence[] として宣言しています。
ウインドウアプリケーションでファイルから読み込んだ
一行の文章を、間に挟んである"*"で区切って改行表示したいわけです。
しかし、2行目以降がうまく表示できません。
484 :
デフォルトの名無しさん :2007/01/24(水) 15:56:06
エラーの詳細をと言っているのに出さない。 有用なレス付けてもらっているのに無視。 手のつけようがありませんね。
>>483 477以降の全てのレスはお前に関するものだよ
全部読んだのか?
後は放置でいいか。
JavaのイベントでWindowが動かされたコトを検知できるものってありますか? ウィンドウが動かされたコトを検知して、子ウィンドウも動かしたいのですが・・。
ウィンドウもjava.awt.Componentのサブクラスなので、 addComponentListenerしてcomponentMovedで処理すれば 使えばいいんじゃない?
490 :
Six Perfections :2007/01/24(水) 21:11:26 BE:798811766-2BP(0)
492 :
デフォルトの名無しさん :2007/01/25(木) 00:24:50
eclipseで作成したjavaのプロジェクトをレンタルサーバに上げ正常に動作させる方法がわかりません。 どなたか教えて下さい。 レンタルサーバー会社からの指定がレンタルサーバのtomcatにwar形式のファイルを追加し、サーブレットを管理する との事です。 このように、eclipseでwarファイルを生成しレンタルサーバのtomcatに追加したのですが サーブレットを実行するとエラーがでてしまいます。 一体なぜなのでしょう? どなたか教えて下さい。
どなたかエスパーのかたはいらっしゃいませんかー?
自分まだエスパー5級なんで
>>492 エラーが出るじゃなくてどんなエラーかを言えカス
エラーメッセージ貼り付けれカスカスカス
javaって強いですか?食べれますか?
>>492 はエスパー初段の認定試験です。
受験者募集中。
飲めます。熱いです。
499 :
デフォルトの名無しさん :2007/01/25(木) 01:47:49
質問です。 boolean型の配列hogeとint型の配列lenがあります。 hoge[0]にはfalseが代入されています。 if (!hoge[0] && len[0] != -1) という条件式があるのですが これは もしhoge[0]がfalseではなく、len[0]が-1ではないならホニャララを実行 と読んでよいのでしょうか?
うん
501 :
デフォルトの名無しさん :2007/01/25(木) 01:59:23
有難うございます。 ちなみにjavaはcみたいに、0が偽ということは無いんでしょうか?
ない
>>501 やってみりゃ分かる。
int c = 1;
if (c) c = 0;
は当然コンパイルできない。
504 :
499 :2007/01/25(木) 05:08:29
すいません。 再度質問です。 boolean型の配列hogeとint型の配列lenがあります。 hoge[0]にはfalseが代入されています。 if (!hoge[0] && len[0] != -1) という条件式を hoge[0]がfalseではなく( = true) 、len[0]が-1ではないならホニャララを実行 と読んでよいとお答えをもらったのですが、 もし、hoge[0]にtrueが代入されていたら、今度は hoge[0]がtrueではなく( = false) 、len[0]が-1ではないならホニャララを実行 になってしまい、永遠にこのif文は実行されないような気がするのですが、 どうなのでしょうか?
そう
式 !hoge[0] && len[0] != -1 は、hoge[0]がfalse かつ len[0] が-1以外 でtrue だからお答えの間違いだね。 左端から丁寧に演算していけば、わかる
日本語でおk
眠いから嫌っていうか、無理
>>506 ありがとうございます。
申し訳ございませんがもう少しお教えください。
hoge[0]に「false」が代入されているとき、
式 !hoge[0] && len[0] != -1
は、hoge[0]がfalse かつ len[0] が-1以外 でtrue
なのでしょうか?
それとも
hoge[0]に「true」が代入されている時なんでしょうか?
>式 !hoge[0] && len[0] != -1 >は、hoge[0]がfalse かつ len[0] が-1以外 でtrue >なのでしょうか? そう !hoge[0] && len[0] != -1 !false && (-1以外)!=-1 true && true true
hoge[0]に「false」が代入されてるとき 実行環境があれば、下のプログラムを実行してみるべし public void main(String[] args){ boolean hoge=false; int len = 1; System.out.println(!hoge); System.out.println(len != -1); System.out.println(!hoge && len != -1); }
>>506 有難うございます。
&&が左結合なんですね。
理解できました。
506じゃないけど
>>513 すいません。
とにかく皆さんどうもありがとうございました!
まずい
>>511 public static void main(String[] args)
の間違いだ。
>>515 大丈夫です。
それくらいわかります。
ちゃんとコンパイルできました。
みなさん、こんな夜中に本当に有難うございます。多謝
&&は左結合だが、ここでは&&は1つしかないから結合性は関係ないぞ。 関係あるのは演算子の優先順位。
ほんとにみなさん、有難うございます。 実はダイクストラ法の勉強をしているところで、 条件式がややこしくてて困ってたんです。 アルゴリズム初心者だから難しくて・・・ orz
>>499 実際のコードでは配列だったのかも知れないけど
一連の質問においては配列である必要ゼロだったんじゃなかろうか。
Swingで、とあるJButtonを押してから多少時間のかかる処理をする前に とあるJWindow(=メッセージwindow)で「処理中」である旨を表示(JLabelで)させて、 その処理のあとでメッセージwindowをdisposeで消してるんですが、 メッセージwindowが完全に表示される前にその重い処理に移ってしまうらしく、 文字が表示されていないwindowがなんか出てるというブサイクな事態になっています。 何かイイ対処法を思い当たられる方はいらっしゃいませんか? よろしくお願いします。
>>521 JWindowを表示後、時間のかかる処理をSwingのEventThread
(ActionListener.actionPerformedなど)で行った場合、
JLabelが表示されず真っ白なJWindowが表示される模様。
解決例としては…actionPerformed 内部で完結させたい場合、
JWindowのインスタンスをfinal宣言しつつ作成し、
別スレッドの「時間のかかる処理」が終わるところでdisposeを呼び出す
final JWindow w = new JWindow();
...
w.setVisible(true);
new Thread(new Runnable() { public void run() {
// 時間のかかる処理
w.dispose();
}}).start();
>>522-523 ご協力ありがとうございます。
>>523 とても参考になりました。
ありがとうございます。
Object#waitとか#notifyに目が行ってました…
どうやって使うんだろう、と
>>519 条件が複雑なときは、一気に&&や||でつながずに
if文切ったりして、
順番に論理に沿って分解してやったほうが分かりやすいかもしれん。
最適化は後でも出来る。
最適化じゃなくて見易いようにだと思うが… つまり最初は…なんて意味がない。 理解出来ないなら仕方ないけど…
どうでもいい質問 Mathクラスはjava.mathパッケージではない なんで?
>>526 最適化ってのは、論理式の最適化の事なんだが・・・
判定の順番を考えたり、とかのことを言ってるつもり
>>527 初期のJavaにはjava.mathパッケージがなかったから。
>>527 sin()とかcos()とか、import宣言せずに即座に使いたいだろ。
そういう意図があったからだと思われ。
初期のパッケージにmathがなかったからというのもある。
>>528 今回のは明らかにそういう話じゃないだろう。
532 :
519 :2007/01/25(木) 16:46:56
&&や||でつなぐと最適化されるのですね。 ありがとうございました!
そんなのコーディングによるだろw
毎時15分、30分、45分、60分に周期的にメソッドを実行するプログラムを書きたいの ですが良い方法が浮かびません。java.util.Timerクラスを使い15分毎に実行する事は 出来ましたが、上の動作はできませんでした。 どうすればよいでしょうか。
>>535 java.util.Timer の schedule(TimerTask, Date, long) か
scheduleAtFixedRate(TimerTask, Date, long) 使えば?
個数制限ありのFIFO方式でオブジェクトを保持したいんだけど、 そういうクラスってある? あるならクラス名教えてください。
>>537 1.5以降なら java.util.ArrayBlockingQueue とか。
ごめん java.util.concurrent.ArrayBlockingQueue だった。
541 :
535 :2007/01/25(木) 17:26:21
>>536 その時Dateはどういう指定をすればいいのでしょうか。
542 :
519 :2007/01/25(木) 17:46:45
夜中、ダイクストラ法について質問したものです。
>>532 なりすましは勘弁してください・・・
皆さんのおかげでダイクストラ法とグラフ理論について、だいぶ理解が進みました。
で、コンソール上で最短距離を求める方法は分かったのですが、
これをウィンドウ上で実現させる方法が分かりません。
せっかく勉強したので、絵になったら面白いだろうなと思うんですけど、
(ウィンドウ上に○があって最短距離が○→○みたいに表示)
どなたか参考サイトなどご存知ありませんでしょうか?
543 :
デフォルトの名無しさん :2007/01/25(木) 18:04:03
CSVを出力しようと思ったのですが、文字列の中の"を""に置換できません。 1.5なら、str.replace( "\"", "\"\"" );で置換できると思ったのですが……。
>>542 グラフを視覚化するというという特定のゴールにたどり着く前に、
Swingを使ったプログラムの作り方をちゃんと調べた方がいいんじゃ。
本もいっぱい出てるし。
もし x.replace("¥"", "¥"¥""); System.out.println(x); とやってるなら間違い。
>>541 一番最初に TimerTask を時間したい時間を渡せば良い。
例えば、直後の 15分、30分、45分、60分 のどれかなら、こんな感じか。
final long period = 15 * 60 * 1000; //15分
Date firstTime = new Date((System.currentTimeMillis() + (period - 1)) / period * period);
>>547 おお、これはすごい!
よく考え付きますね。感心しました。
((System.currentTimeMillis() / period) + 1) * periodでないのは重なった時はそのとき実行するためでしょうか。
おかげ解決しそうです。
ありがとうございました。
550 :
543 :2007/01/25(木) 19:34:10
551 :
535 :2007/01/25(木) 19:45:41
0分、15分、30分、45分はできるようになりました。 しかし実行間隔がlongでミリ秒なので9999秒以上指定できません。 21600秒間隔(6時間)で実行する時はどうすればいいでしょうか。
> しかし実行間隔がlongでミリ秒なので9999秒以上指定できません。 これは笑うところか?
int[] seq; と int seq[]; との違いがよくわかりません。 ただ、この場合は結果としては同じことになっているように見えます。 どなたか教えていただけませんでしょうか・・・。
>>552 どう考えても笑うところ
>>553 int seq[]は、Cから引きずっている記法
seq が int[] 型の変数であるという表現をしたいので
java的には、int[] seq が推奨される
>>551 Javaのlongは、64bitだよ
つまり2の64乗/2が最大値
556 :
553 :2007/01/25(木) 20:26:28
>>554 なるほど!
すっきりしました、ありがとう。
558 :
535 :2007/01/25(木) 20:31:42
そうなんですか^^; 下のソースをコンパイルして実行すると firstTime: Thu Jan 25 21:00:00 JST 2007 と表示されてしまいます。 firstTime: Fri Jan 27 00:00:00 JST 2007 こう表示されるのが理想なんですが、どうしてでしょうか 間隔が15分の時はうまく動きます。 import java.util.Date; import java.util.Timer; class Hoge { public static final long PERIOD = 1000 * 60 * 60 * 6; // 6時間 public static void main(String[] args) { Date firstTime = new Date ((System.currentTimeMillis() + (PERIOD - 1)) / PERIOD * PERIOD); System.out.println("firstTime: " + firstTime); } }
559 :
535 :2007/01/25(木) 20:33:46
自己解決しました。
560 :
535 :2007/01/25(木) 20:36:45
初心者ですが質問させてください。 テキストフィールド内の文字を右詰で表示させるには myJTextFieldA.setHorizontalAlignment( JTextField.RIGHT ); のようなJTextFieldを用いたSwingでないと無理なのでしょうか?
>>558 JST と UTC の時差を考慮するの忘れてんだな。
前のは 15分毎だったから考慮しなくても上手くいってたけど。
final long td = 9 * 60 * 60 * 1000; //JST と UTC の時差: +9時間
final long period = 6 * 60 * 60 * 1000; //15分
Date firstTime = new Date((System.currentTimeMillis() + td + (period - 1)) / period * period - td);
汎用的にやりたきゃ
final long td = java.util.TimeZone.getDefault().getRawOffset(); //UTC との時差
みたいな感じで。
> firstTime: Fri Jan 27 00:00:00 JST 2007
カレンダー狂ってるぞ……
> final long period = 6 * 60 * 60 * 1000; //15分 コピペしてコメント直すの忘れた。 15分じゃなくて、6時間ね。
あぁ、ちなみに、
>>562 は夏時間考慮してないので、
夏時間がある地域だと夏時間中は 1時間ぐらい狂うよ。
567 :
デフォルトの名無しさん :2007/01/25(木) 23:06:00
質問させてください。 現在マルチキャストソケットを予習しているのですが、 マルチキャストソケットを使用する上の注意点で、マルチキャストソケットが セキュリティホールになる可能性があるため、信用されていないアプレットは使用してはならないと 教科書で学びました。 そこで質問なのですが、信用されていないアプレットとは具体的に どういうものの事を言うのでしょうか? 沢山あるかと思いますが、その中の一部でいいのでご教授お願いします。
アプレットは危険です
アプレットを信用するかどうかは使用者の判断が全て。
570 :
デフォルトの名無しさん :2007/01/26(金) 01:35:54
レス有難うございます!!
>>568 それは全てのアプレットが危険ということでしょうか?
>>569 ということは使用者の使い方次第で信用できる、
出来ないが決まるということなんですね。
571 :
デフォルトの名無しさん :2007/01/26(金) 01:40:11
JAVAプログラミングのIf文とFor文ってなんですか?誰か詳しく教えて下さいm(__)m
>>570 それは全ての人が危険だと考えているという事でしょうか?
>使用者の使い方次第で信用できる、出来ないが決まる いや、そうじゃない。 例えば俺が「1時間起動させただけで1000円もらえるアプレット」を作ったとする。 あなたはアプレットの使用者。このアプレットを信用出来るなら使うし、信用が出来ないなら使わない。 普通は「スパイウェアか何かじゃなかろうか」と思って(=信用しない)使わない。 これがSUNの作ったものだったら、ある人は信用して使う。 またある人はSUNの作ったものにみせかけてる可能性を疑って使用しない。 ある人はSUNの作ったものと確認しても、うっかりミスでスパイウェアを配布する可能性を疑って使用しない。 自分が作った自分のアプレットでさえ、アプレットのバグや実行環境の不具合によって思った動作をしない可能性すらある。 信用するかしないかは使用者の判断によるってのはそういうこと。 あるアプレットが絶対的に信用できる、なんてことはない。 これは何もアプレットに限った話ではなく、アプリケーション一般、 あるいは人間や企業に対しても言えること。
574 :
デフォルトの名無しさん :2007/01/26(金) 02:06:39
>>572 、537
すみません、どうやら569のレスを間違えて理解していたようで・・・。
>>572 丁寧な解説有難うございます!
そうですね、ちゃんと考えればそういう意味ですよね・・・。
理解力不足で申し訳ありませんでした!!
575 :
デフォルトの名無しさん :2007/01/26(金) 02:08:43
>>572 、573
すみません、どうやら569のレスを間違えて理解していたようで・・・。
>>573 丁寧な解説有難うございます!
そうですね、ちゃんと考えればそういう意味ですよね・・・。
理解力不足で申し訳ありませんでした!!
上記の書き込みは無視してください(汗)
初心者質問です 今Swingで作成しています GUI上に画像が張ってあるのですが、 これを10秒ごとにランダムで切り替えたいです スレッドと乱数を使って、10秒後に切り替えようとしたのですが、 画像自体の更新の仕方がわかりません・・・ すみません、誰かアドバイスを下さい
プログラム内で画像はどう保持しているの? 画像はどうやって描いてるの?(paintComponent? JLabel + ImageIcon?)
578 :
576 :2007/01/26(金) 04:35:07
JLabel + ImageIcon です 最初にパネル作った時張った画像のまま、 変更することができません・・・
>>578 つ JLabel#setIcon(Icon icon)
580 :
576 :2007/01/26(金) 05:13:34
>579 すみません、これはセットしたらすぐに切り替わるものですか? それとも他に何か必要でしょうか?
なぜ試さずに脊髄反射で聞いてくる? 自分の作ったコードに入れるなり実験コードを書くなりすれば分かることじゃないか。
582 :
576 :2007/01/26(金) 05:29:59
>>581 色々試したのですがよくわからなくて・・・
setIconの後でもGUI上での表示が変わりません
これはやり方が間違っているのか、
それとも画面を更新するやり方があるのか・・・
JFrame f = new JFrame(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JLabel c = new JLabel(new ImageIcon("a.jpg")); f.add(c); f.pack(); f.setVisible(true); try { Thread.sleep(2000); } catch (Exception e) {} c.setIcon(new ImageIcon("b.jpg")); f.pack(); 単純にsetIconだけで切り替わる。 最後のpackは画像サイズに合わせるためだが、無くても表示は切り替わってくれる。 スレッドを使ってるらしいが、ちゃんとシングルスレッドルールに基づいてコードを書いてる?
JavaのGUIって実践でも使われてるんですか? 初心者の勝手な想像ですが、 Javaはシステムに特化してGUIとかは他の言語でやるのが普通 ってイメージなんですけど。 awtとかswingは純粋なソフトウェア開発でも使うのでしょうか?
ここに、5年くらいJavaでGUIアプリ書く業務でご飯たべてる人ならいる。 1.4が出るまではイロモノ気味だったが、1.4以降は実用的よ。 世間の動向はシラネ。
即レスありがとうございます。 迷いが吹っ切れました。面白そうだし勉強してみよう
でも年収400万でした><
ニート・フリーターに比べれば十分すぎるだろ
589 :
デフォルトの名無しさん :2007/01/26(金) 12:28:28
Graphicsで描画したものをImageにしたい 画面上に表示されているGUI等は存在しない前提です 試した事 ・new CanvasをaddNotify、paint(Graphics)してcreateImage→失敗 ・new ImageIcon、paintIcon(null, Graphics, 100, 100)→失敗 ・配列からMemoryImageSource、Toolkit.createImageを使えば出来そう?Graphicsを配列データにする方法不明 アドバイス等お願いします。
BufferedImage の getGraphics で取れる Graphics2D のインスタンスに描画するんじゃいかんのか?
591 :
589 :2007/01/26(金) 13:13:07
>>590 既に描画されているGraphicsが渡される事を仮定しています。
BufferedImageにsetGraphics的なメソッドがあればいいのですが・・・。
>>591 その仮定が間違ってるだろ。
Graphics 自体は何のイメージデータも持ってないよ。たぶん。
>>591 基本的に無理。
Graphics ってのは必ずしも Image と結びついてるわけじゃないし。
例えば PostScript なプリンタに印刷するための Graphics とかだと、
java.awt.Image 作らずに PostScript 書いてプリンタに送信しちゃう事だってあるわけだし。
MacOSX で Pure Java アプリを作っています。 java -jar hoge.jar test.txt の代わりに,test.txt を hoge.jar のアイコンにドラッグアンドドロップして引数を与えて起動することはできないでしょうか? hoge.jar のアイコンをダブルクリックすれば,引数なしでの起動はできるのですが。
鼻持ちならないCMやってるから教えたくない。
597 :
デフォルトの名無しさん :2007/01/26(金) 16:12:06
教えてください。以下の場合waitするときにobjectのロックは開放されますか? synchronized (object){ synchronized (anotherObject){ anotherObject.wait(); } }
されない
>>547 new Date()か。
Calendarを使いたくなる
Dateはイヤーな感じ
>>567 JarSignerによって署名されていないアプレットが
危険なアプレットと見なされる、ということがある。
誰が作ったのか、証明証をJARファイルに
入れればいい。
やりかたは「アプレット 署名」でぐぐれ。
一見面倒くさく見えるが、Apache Antのgenkey, sinjarタスクを
使うと非常に楽だ。
>>575 お前って絶対に他人に流されやすくて騙されやすい奴だろ。
フィッシング詐欺などの悪徳商法に引っかかったこと無いか?
>>587 ホワイトカラーエグゼプションがこのまま
適用されたら、地獄だぞ
>>600 まるで黒野トリガーみたいな名前だ。
そこからとってきたか?
611 :
デフォルトの名無しさん :2007/01/26(金) 17:07:14
なんじゃこの連レス基地外
UnixのcronをJavaで実現できるAPIってことか。 ええねえ。しかしちょっとしたスクリプトだったら わざわざ全部Javaで書かずに cronからJavaを呼び出すかcron + shだけで 済ませた方がパフォーマンスがええかな? プロセスを切るのがめんどいし。 cronがプロセスをつかってJavaプログラムを起動する前に、 自動的にプロセスを切ってくれるような仕組みには できんかな?
>>571 プログラムしてて分からない所が出てきたら
Ifと入れておく
プログラムを書いていてイライラしてきたら
Forと入れておく
こうすることで後で見直したときに、
何処で悩んだのか一目瞭然という訳だ。便利だろ?
IfとかForを書かなくてすむように勉強頑張れ。 ww
607は確認を質問だと誤認したようだな。
スレの流れを読まずにレスするとそうなる
616 :
535 :2007/01/26(金) 18:55:39
>>562 なるほど、レス分かりやすかったです。おかげでうまく動きました。ありがとうござ
いました。27日はtypoです(^_^)
毎時15, 30, 45, 60分に実行するタイマーと毎日6, 12, 18, 24時に実行するタイマ
ーを実装しました。次に後者のタイマーで時刻が24時の時だけ別の処理をさせようと
していると、もしそれが実装できればタイマーひとつで補える(6, 12, 18時の時だけ
別の処理をさせる)ことに気づきました。どうにか実装できましたが、時間の判定部
分がなんとも気持ち悪いコードになってしまいました。いい方法はないでしょうか。
ソース
http://www.newsstation.info/up/img/ns17367.txt
617 :
デフォルトの名無しさん :2007/01/26(金) 19:48:50
質問です。 画像に対して幾何学的変換を行うために、 画像を配列に格納したいのですが、PixelGrabberで1次元配列に 格納する方法で無く、xとyの2次元配列で格納する方法をご教示ください。
>>617 帰ってきた1次元配列から2次元配列を作成するユーティリティを自作する
>>616 「気持ち悪い」とか「気持ち悪くない」ってのは、個々人でかなり違うからなぁ。
小細工する余地はあるんじゃないかと思うけど、それで解消できるかは分からんし。
ひとつのタイマーに詰め込むの止めれば?
すみません質問です。 シフト演算子を使ってランダム選び出したビット分左シフトさせた場合に、 あらかじめ指定しておいた数以上になった場合はあぶれたビットだけ切り捨てる様な動作はできますでしょうか? 例えば128を指定しておいた際に7 << 6などした場合に128以上の部分のみ切り捨てたいです。 00000111→1|11000000→11000000 分かりにくいと思いますがこのような動作をさせたいです。 アドバイスよろしくお願いします。
128だとたまたま2のn乗だから100000000(ゼロイクツダ)で&すればいけるな。
>>622 128以上? 128より上?
int val = (7 << 6) & 0xFF; //もしくは & 0x7F
逆だ。1の列と&する。
>>622 その例だと256以上ではないかい?
(7 << 6) & (256 - 1)
レスありがとうございます。 128以上ですね。 ビット列での計算処理をする場合に桁上がりを防ぎたいのです。 ちなみに128と言うのはたとえになりまして実際には2n乗の数字を指定した際に 128ならば0-127の範囲で、256ならば0-255までの範囲で数字を利用、の様にしたいです。 考え方が分からなかったもので苦労しております。
もう答え書かれてるけどまだ解決しないん?
すみませんわかりました。 (i << j) & (k)とした場合にkに最大値を入れるようにしたらいいのですね。 凄く助かりました。 ありがとうございました。
質問です。 5個のデータ(1,2,3,4,5)を扱うときに 1=2、3=4=5ということを表すのに以下のようにした場合、 (1=[2],2=[1],3=[4,5],4=[3,5],5=[3,4]) ここに1と同じデータ6を追加したときに (1=[2,6],2=[1,6],3=[4,5],4=[3,5],5=[3,4],6=[1,2]) となるようにデータを編集したいんですが、 文字列操作でうまくできますかね・・
なんかスレ違いたったかも・・ 宿題のほうに書いてきます。 すみませんでした。
その書き方じゃ無視されて終わりだと思うが… まずは理解できる質問を書いておくれ
>>630 こういう感じか?
if(v[0].equals().v[1]) {
a[0] += "1";
a[1] += "0";
}
634 :
デフォルトの名無しさん :2007/01/27(土) 08:09:31
6.0を入れてるのに import java.sql.BaseQuery; import java.sql.Select; import java.sql.Update; import java.sql.DataSet; public interface SampleEntity extends BaseQuery { @Select("SELECT id,name FROM sample order by id desc") DataSet findAll(); @Update("INSERT INTO sample VALUES(?1,?2)") int register(int id,String name); } 上のJDBC4.0のコードがエラーになる。importできないと言われている。 なぜですか???
ない、といわれてるのは分かるんだけど、JDBC4.0ってmustangに 入ってるんでしょ?なーんで入ってないの?別のjarを落としてこないと いけないとか??
そういうことだ ベータに入っているからといって安心してはいかん
複数の道具とそれに対応するメソッドがあるんですけど、 効率のいいメソッドの呼び出し方っていうのはありませんか? 薬草なら回復のメソッドを呼び出す。 爆弾ならダメージのメソッドを呼び出す。 っていう感じで。 switch文でだらだら書く以外思いつかんのです。
道具クラスを作ってやって回復とかダメージとかの種類とその威力とかを入れとく
>>641 迅速な対応ありがとうございます。
書き忘れましたが、エフェクトを全て違うものにするのですが
どのように呼び出したらよいでしょうか?
添え字などで特定のメソッドを呼び出せれば一番良いのですが。
interface Usable { void use(ItemTarget target); } class Bomb implements Usable { public void use(ItemTarget target) { String name = target.getName(); System.out.printf("%sは吹き飛んだ!%n", name); } } class Herb implements Usable { public void useOn(Target target) { String name = target.getName(); System.out.printf("%sの傷が回復した!%n", name); } } 呼び出し use(Usable usable, Target target) { item.use(target); }
>>643 なるほど、interfaceですか。
大変参考になりました。ありがとうございます。
item.use(target)っていう呼び出しだとitemがtargetをuseするみたいに 読めてしまうな。 item.applyOn(target)…あんま変わらんか。
646 :
デフォルトの名無しさん :2007/01/27(土) 12:40:23
647 :
646 :2007/01/27(土) 12:46:07
interface Target{void use(Usable item);} class Player implements Target{ public void use(Usable item){item.applyOn(this);} } class Party implements Target{ private List container = new ArrayList(); public void addMember(Player p){container.add(p);} public void use(Usable item){for(Iterator i = container.iterator();iter.hasNext();){((Target)iter.next()).applyOn(this);}} }
648 :
646 :2007/01/27(土) 12:47:54
あ、間違えた。読み替えて下しあ。 (Iterator i = container.iterator();iter.hasNext();){((Target)iter.next()).applyOn(this);}} ↓ (Iterator i = container.iterator();iter.hasNext();){item.applyOn((Target)iter.next());}}
javaの.classファイルの中身って見る方法ありますか? クラスファイルだけ持っていて、ソースが見たいんです
>>649 jadでググれ。ただし、そのclassファイルのライセンスに違反しないようにね。
すいません、改めてみると滅茶苦茶すぎるので>651は自分で治してきます。失礼しました
>>650 助かりました、ありがとうございます
自分のファイルなので大丈夫ですw
300×300のウインドウの中で、Nキーを押すと画面が変わって 100×100のgazou.jpgを出てくるようにするのですが、 その画像を小刻みに震えるようにしたいんです。 マンガの目覚まし時計のようなイメージというか、携帯のバイブのイメージというか。 表現力に乏しいので意味不明かもしれませんがどなたか理解できる方がいたら 教えてください。「そんなこと無理」っていうのでもお願いします
可能。 確認だけど、JavaScriptの話とは混同してないよね? できてる分だけでも ソース出しながら相談すると 話早いよ。
656 :
デフォルトの名無しさん :2007/01/27(土) 17:00:40
インターフェースを継承してサブインターフェースって作れますか?
たぶん混同はしてないとおもいます。曖昧な言い方ですみません。 もうほぼ完成してて、あと画像揺らす機能追加するだけなのですが、 ソースだしたほうがいいですか?
>>657 class C extends JComponent implements ActionListener {
private Image i;
public C(String s) { i = new ImageIcon(s).getImage(); new Timer(20, this).start(); }
public void paintComponent(Graphics g) { g.drawImage(i, (int)(Math.random() * 5), (int)(Math.random() * 5), this); }
public void actionPerformed(ActionEvent e) { repaint(); }
}
このコンポーネントをparent.add(new C("image.jpg"));みたいにくっつけろ。
AWTなら、Canvasとか使ってそれなりに改造汁。
>>656 interface Super1 {}
interface Super2 {}
interface Sub extends Super1, Super2 {}
>>649 手っ取り早く見るなら、バイナリ(16進)エディタ。
そればら著作権がどうこうは気にしなくて良いだろう
662 :
659 :2007/01/27(土) 17:34:05
>>657 コンポーネントサイズはレイアウトマネージャに任せるなり自分で設定するなり適切に。
>>653 EclipseのプラグインJadClipseもあるぞ。
つうか、自分のファイル調べるなら、
EclipseのBytecode OutLineプラグインを
使うと面白いぞ。ソースコードをどの場で修正するたびに
バイトコードがどうなってるかわかる。
>>654 アンフィチームのAppletをダウソしてみるとかでどうだろう。
画像の上に波紋が現れるだけだが。
バイブって携帯Javaか?
Javaプログラムから携帯をバイブさせる方法ってあるのか?
むかしはできないと聞いたが。
665 :
デフォルトの名無しさん :2007/01/27(土) 17:40:23
>>658 ありがとうございます。
もう一つ回答お願いします。
コンストラクタを記述してないクラスを継承すると、
スーパー・コンストラクタが不可視ですとEclipseに怒られます。
スーパークラスはソースがなくて弄れないのですが、こういう場合どうすればいいでしょうか?
サブ、スーパーどちらもコンストラクタは何もしなくていいんですが。
コンストラクタは継承するものではない。 継承したときにサブクラスでコンストラクタを 定義したか? スーパークラスのJavadocくらいはあるか? なければ、型階層をみるべき コードアシストをうまく使うという手もある。
不可視、ということはそのコンストラクタがprivateに なっている可能性がある。 そのときはサブクラスではコンストラクタを作ることができない。
>>665 実際にエラーになるコードを書いたほうがいいよ。
エラーメッセージは正確な文面を。
>>665 eclipseのエラーメッセージは知らないが。
ソース上でコンストラクタを記述しなければデフォルトコンストラクタが生成される。
スーパークラスのコンストラクタがprivateになってるってことはない?
もしくはスーパークラスがfinalクラスとか。
それか、スーパークラスに引数なしのコンストラクタが定義されていない可能性も。
その場合はサブクラスでコンストラクタを記述していなければデフォルトコンストラクタが作られて、
スーパークラスの引数なしコンストラクタを呼ぼうとして死ぬ。
670 :
665 :2007/01/27(土) 18:02:07
具体的には、 public class Connector extends javax.microedition.io.Connector{ } この状態で以下のエラーがでます。 暗黙的スーパーコンストラクタConnector()は デフォルトコンストラクタについて不可視です。 明示的コンストラクタを定義する必要があります。 public class Connector extends javax.microedition.io.Connector{ Connector(){} } こう書くと、記述したコンストラクタのとこで同じエラーが出ます。
>>669 TestC extends Test の場合に、
privateで親クラスのコンストラクタを宣言した場合、
暗黙的スーパー・コンストラクター Test() は、デフォルト・コンストラクターについては不可視です。
明示的コンストラクターを定義する必要があります。
親クラスをfinalで宣言した場合、
型 TestC は final クラス Test をサブクラス化できません。
親クラスで別のコンストラクタを定義してデフォルトコンストラクタを宣言していない場合、
暗黙的スーパー・コンストラクター Test() は、デフォルト・コンストラクターについては未定義です。
明示的コンストラクターを定義する必要があります。
eclipse 3.1.1
>>670 だから、javax.microedition.io.Connectorの引数無しコンストラクタが存在しないかprivateなんだよ
javax.microedition.io.Connectorのjavadocをよく見ろ
>>670 ちょろっと検索したけど、javax.microedition.io.Connectorは
StringのURLでjavax.microedition.io.Connectionなどを得る
クラスメソッドだけで構成されているクラスじゃないか
なぜに継承する…
>>671 じゃあ、スーパークラスのデフォルトコンストラクタがprivateなコンストラクタなんだね。
675 :
665 :2007/01/27(土) 18:22:22
結局、引数無しコンストラクタが存在しないクラスは継承できないってことですか。
>>673 URLが特定形式の場合だけ違う処理をさせたいんです。
>>675 そんなことは誰も言ってない。
スーパークラスに引数がないコンストラクタがなくても、
引数のあるコンストラクタを呼び出せるのなら、それを呼び出せばいい。
でも、
>>671 のエラーメッセージのパターンを見ると、
スーパークラスの引数がないコンストラクタはprivateであることが今回の原因で、
引数のないコンストラクタがないわけではなさそうだが。
直近のレスぐらい読めよな・・・
678 :
デフォルトの名無しさん :2007/01/27(土) 18:38:50
質問させてください。ボタンの初期サイズを設定するには どのようにしたらよいのでしょうか?下記コードで、init() 内のsetBoundsは無視されてしまいます。actionPerformed 内のsetBoundsは動作するのですが。。。よろしくお願い します。 public class buttontest extends JApplet implements ActionListener { JButton bt; public void init() { Container cp = getContentPane(); bt = new JButton("スタート"); bt.addActionListener(this); bt.setBounds(0,0,300,200); cp.add(bt); cp.setLayout(new FlowLayout()); } public void actionPerformed(ActionEvent e) { if(e.getSource() == bt) { bt.setBounds(20,200,300,40); } } }
>>675 javax.microedition.io.Connectorぐぐった。
>>673 の言うとおりただのユーティリティクラスだった。
こんなもの継承するなよ。
「URLが特定形式の場合だけ違う処理をさせたいん」なら、
javax.microedition.io.Connectorのメソッドを呼び出す側で処理しろ。
もしくは、ユーティリティクラスを作りたいのなら、
class MyUtil {
static Connection open(String name) {
nameに応じて処理;
javax.microedition.io.Connector.open(処理後のString);
}
}
みたいにすればいいんじゃねえの? 使うときはMyUtil.open(name);
>>678 setLayoutでFlowLayoutを指定しているから。
自分でsetBoundsを無視してくださいと書いている。
個人的には好みではないがsetLayout(null)を使え。
681 :
678 :2007/01/27(土) 18:52:51
(
>>681 ).setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
>>678 本当にactionListerのsetBoundsは機能してるのか?
コピペ動作だと、
起動直後にFlowLayoutで真ん中に配置されたボタンが表示される。
ボタンを押すとボタンが消える。
684 :
665 :2007/01/27(土) 19:08:22
>>676 ありがとう。理解しました。
Javadocにコンストラクタ書いてなかったから、定義してないと思いこんでました…
>>679 呼び出し元いっぱいあるし、これからも増えそうなのです。
メソッド内でConnectorのメソッド呼び出してみます。
ありがとう。
685 :
デフォルトの名無しさん :2007/01/27(土) 19:35:28
javaでウインドウ型アプリケーションを作っているのですが フレームの区切りを作るにはどうしたらいいのですか? ┏━━━━━━━━┓ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗━━━━━━━━┛ ↓ ┏━━━┳━━━━┓ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣━━━┻━━━━┫ ┃ ┃ ┃ ┃ ┗━━━━━━━━┛ こういう感じにしたいのですが よろしければお願いします
687 :
デフォルトの名無しさん :2007/01/27(土) 19:51:53
>>680 setLayout(null)で解決しました。
ありがとうございました。
684それ例え継承できてもなんの解決にもならんだろ…
689 :
665 :2007/01/27(土) 21:20:15
javax.swing.ImageIcon等で読込んだイメージの四隅にドラッグポイント を付けてドラッグによるイメージの拡大縮小を実現させたいんですが 何か良い方法はありませんか?
>>690 そういうAPIはないので、
ツマミを描画する。
マウス移動イベントを処理する。
あたりを地道に自分で実装して。
LinkedListクラスのContainsメソッドでは 引数のオブジェクトと同じものがあるかを調べる際に equalメソッドを使用していると思うのですが オリジナルクラスのオブジェクトを引数とするときは そのオリジナルクラスでオーバーライドしたequalメソッドを containsメソッドが使用してくれると考えてよいのでしょうか? あと、オリジナルクラスのオブジェクトをリストに入れているので getFirstメソッド等の戻り値がオリジナルクラスになるものだと 考えているのですが、オリジナルクラスの変数に代入しようとすると コンパイラで期待値がオリジナルクラス、検出値がObjectクラスであり 違うと怒られます。 これはキャストして代入するしかないのでしょうか?
>>692 一番目は実験すれば分かりそうなので任せる
二番目はAPIの javadoc を見よう。
1.4までならgetFirstの戻り値はObjectになってるはず
5.0以降ならLinkedListのインスタンス作成時にクラスを指定すればOK
>>691 ご助言ありがとうございます。
画像の四隅にマウスイベント付きのツマミを描画できれば
実現できそうですね。
といってもツマミを描画する方法すらわかりませんので
その辺りから調べてみます。
フレームかインライン・フレームを使うのは?
いやだといったら?
>>695 >>691 でJDesktop + JInternalFrameを使うということかな。
独自のpluggable look and feelの実装を頑張ればなんとかできそうだな。
698 :
デフォルトの名無しさん :2007/01/28(日) 04:50:44
「レシピ」とか「クックブック」をキーワードにすると見つかるかも。 書籍しか引っかからないかもしれんけど。
見つからなければ目次にあるキーワードで個別にぐぐるのがいいんじゃないかな
Jarで外部のjarを使うためにClass-Pathを追加すると思うんですがA.jarとB.jarの2つを含めたいときどうすればよいでしょうか。 Class-Path: A.jar;B.jar (コンマで区切る) だと思ってたのですがこれだとだめでした。
>>702 あ、ありがとうございます。無事できました。
;とか,とかいろいろ試したのですがスペースとは気がつきませんでした。
すいません、;はセミコロンでした。
704 :
698 :2007/01/28(日) 11:18:56
>>699-700 ありがとうございます。
やっぱり、書籍として販売できるような内容が、
その辺に転がってるわけないですよね。
>>705 悪い事いわんから @it だけは止めとけ。
下の方も Java では大文字小文字は区別されるのに Null とかなってたりするし……
よりにもよって挙げるのがその2つとはどういう了見だw
>>681 いきなりこんな無礼な発言を
するやつがいるとは
>>686 BorderLayoutでPanelにPanelを入れ子に
するという手もありジャマイカ?
>>691 どうでもいいけどクワガタツマミを思い出した。
ツマミを描画するクラスを使うということか。
自作するのかと思った。
>>692 リストに突っ込みたいオブジェクトに正しい
equals(),hashcode()メソッドのオーバーライド実装がないと
意味がない場合があるぞ。
>>701 そんなモン使わずに
FatJar(OneJar)で一発まとめちまえよ!
>>706 @ITやめとけってのは
嘘書いてあるからか?
いくつかはためになったが。
その区別ができるやつなら別にいいとは思うがな。
もっとも、区別できる奴は@IT見る必要ないんだよな。
JavaTipsの平○正○の記事は無視しとけ。
情報は鮮度か正確さが大事だけど両立させるのは難しいな。どっちかでOK。 わかりやすさと正確さを両立させるのも難しいが、これはそう努力してくれないと害悪がある。
719 :
718 :2007/01/28(日) 15:35:06
720 :
デフォルトの名無しさん :2007/01/28(日) 17:37:23
>>692 リストに突っ込みたいオブジェクトに正しい
equals(),hashcode()メソッドのオーバーライド実装がないと
意味がない場合があるぞ。
721 :
デフォルトの名無しさん :2007/01/28(日) 17:38:07
>>692 リストに突っ込みたいオブジェクトに正しい
equals(),hashcode()メソッドのオーバーライド実装がないと
意味がない場合があるぞ。
722 :
デフォルトの名無しさん :2007/01/28(日) 17:39:24
@ITは嘘ばかりだぞ!このスレの回答こそが正しいぞ!ウッキー!
723 :
698 :2007/01/28(日) 17:51:16
>>705-707 >>713-719 >722
レスありがとうございます。
基本的には、鵜呑みにせず、上記のようなサイトを参考にしろという事ですね。
私としては、今まで使った事の無い処理の、定石やクラスの使い方、プログラム例
を知るのに便利なサイトを探していたのですが、なかなか無いようですね。
これからもその手のサイトを探しつつ、自分で見つけたTipsとかがあったらwebで公開するように気をつけます。
724 :
デフォルトの名無しさん :2007/01/28(日) 17:52:33
>>722 このスレだけが正しいと言い切るのは厳しい。
俺も@ITは情報が古臭くなってきたなと思えるころ。
スタックアスタリスクやThinkITのほうがよさげだね
初心者なのですが質問です。 メソッドに関してのstaticの上手な使いどころってどこでしょうか? staticメソッドにして、newしないでも使えるってのがメリットかなと思い 頻繁に使わない物に関しては一々newするのでは無くstaticメソッドにしてます JVMの動作については今一謎なのですが、この見解・使い方は誤りでしょうか? どの様なものをstaticにして、どの様なものをそうしないのか? どなたか詳しい方居ますか?
>>726 オブジェクト指向的にはいろいろ理屈はあるだろうけど、
メソッドでインスタンス変数を参照するかどうかを
ひとつの基準にしてもよいのでは?
オブジェクト指向を理解すれば分かります
>>727-728 ありがとう御座います
ただいま勉強中でして、その最中に沸いた疑問です
勿論、まだ理解していないという事なのですが…。
>>727 さんの言っている事は
色々理屈はあるだろうけど、インスタンス変数を全く参照しない場合は
staticにしてもいいんじゃない? という事ですよね?
自分が調べました所
・JVMではstaticに関して、必要になった時にロードする
とありまして、
newした場合その時点でオブジェクトがヒープに格納されるんですよね?
メモリの事も考えてstaticがいいのかなと考えたのですが(ちなみにdojaなんです)
この様な考え方はオブジェクト指向に反していますか?
もしかして、なんか検討違いな事言ってますか?
processingでプログラムを実行しようとしたら java. lang.reflect.invocationTargetException とでてきました。これは何のエラーなのでしょうか
732 :
デフォルトの名無しさん :2007/01/28(日) 20:55:41
public class Shousuten { public static void main(String[] args) { // 小数点以下を第三引数で指定した桁数まで表示する double number1 = Integer.parseInt(args[0]); double number2 = Integer.parseInt(args[1]); int number3 = Integer.parseInt(args[2]); double div = number1 / number2; //文字列に変換 String str1 = String.valueOf(div); //「.」で区切る String[] parts = str1.split("\\."); System.out.print((int)number1 + "÷" + (int)number2 + "=" + parts[0] + "."); for(int i=0; i<number3; i++){ System.out.print(parts[1].charAt(i)); } } } 数字3つを引数にとるプログラムで、 第一、第二引数で割り算を行い、第三引数で指定された桁数まで 小数点以下を表示させるのですが、 上記ではすべての値に対して正常に動作しないらしいんです。 何がいけないのでしょうか。
>>729 オブジェクト指向言語だからといって、何でもかんでも
オブジェクト指向で書くことが正しいわけではない。
734 :
デフォルトの名無しさん :2007/01/29(月) 00:30:51
質問です。 2つのint値のうち、小さい方を取得する場合、 int c = Math.min(a, b); と書くのと、 int c = a < b ? a : b; と書くのと、どちらが速いのでしょうか?
後者
736 :
デフォルトの名無しさん :2007/01/29(月) 00:32:54
その心は?
>>734 java.lang.Math
public static int min(int a, int b) {
return (a <= b) ? a : b;
}
メソッド呼び出しのオーバーヘッドがないから、と言いたいのだと思う。 JITでどうなるかわからんけど。
そうか、光速な回答ありがとう
こんばんは。最近勉強しはじめた者ですが、ちょっと質問させてください。
Anfy(
http://www.anfyteam.com/anj/index.html )のサイトけっこう有名みたいですが、
自分のサイトにAnfyで紹介されているjavaを公開するのはおkなんでしょうか?
著作権上の問題はどうなんだろう? とちょっと心配なのですが、英文のぺージなのでよくわかりません^^;
ご存知の方居ましたら、アドバイスお願いします。
>>734 つうか、for文使って自分で計算しろよ
742 :
734 :2007/01/29(月) 01:18:07
743 :
741 :2007/01/29(月) 01:25:30
int c = 0; long first = System.nanoTime(); for (int i = 0; i < 10000; i++) { c = (A <= B) ? A : B; } long last = System.nanoTime() - first; System.out.println("c = (A <= B) ? A : B の所要時間 " + last); first = System.nanoTime(); for (int i = 0; i < 10000; i++) { c = Math.min(A, B); } last = System.nanoTime() - first; System.out.println("Math.min(A, B)の所要時間 " + last); といって俺が測定してみた。当然の結果だと思うが。単位はナノ秒。 c = (A <= B) ? A : B の所要時間 246680 Math.min(A, B)の所要時間 2775772 最適化やってたら、もしかしたら異なる結果になったりしてな。
>>743 何回試行したんだ?誤差とか頭にないのか?w
>>743 初動だけじゃなくて、HotSpotとか入った後の数字が見たい。
staticメソッドの展開が効いてメソッド呼び出しのオーバヘッドがなくなって
速度差が無くなるかもしらんしね。
もしそうなら、記述の分かりやすさからMathの方使うし。
747 :
741 :2007/01/29(月) 02:51:55
CPUの違いに左右されるため、ナノ秒に誤差があることは知ってる。だが、10倍くらい差が出ているだろ。 で、クラスを分割してみたぞ。 それぞれ、main()に突っ込んで書き直した。 あとAとBだが、 private static final int A = 100, B = 200; になっている。 c = (A <= B) ? A : B の所要時間 236902 Math.min(A, B)の所要時間 3694883 結果は確かに大きく違った。Mathはますます遅くなった。それでも10倍くらい差が出て、Mathは遅いってことだけはわかる。 かといってMath.min()より三項演算子のほうを優先的に使おうとは思わないが。 これだけのためにいちいちファイルを作るのが面倒だと感じてしまう。 コマンドライン引数に数字をいれるようにさらに改造しないといけないのかねえ。 で、何度も測定すると、リフレクションで呼べという話になるのあろうか? いや、ただmain()を呼ぶだけか?
>>747 そうか、ま、順当か。
でもま、普段はminの方使うかな。余程大量に処理するときだけ最適化で使うわ。
この結果覚えてたら。
static final な定数は、コンパイルの時点で 既にバイトコードにインライン展開されることは知っているが、 この際、定数と定数の比較なども、定数で置き換わったりしないんだっけ。
ああ、そうかありうるな・・・・・ とすると比較するべきは、単純な代入文?ま、バイトコード見れたらそれが早いのかも知れんが。
Java6でテストしてみた。同じプログラムで3項とMathを交互に6回実行すると c = (A <= B) ? A : B の所要時間 : 2438857 Math.min(A, B)の所要時間 : 5131099 c = (A <= B) ? A : B の所要時間 : 1822857 Math.min(A, B)の所要時間 : 2427962 c = (A <= B) ? A : B の所要時間 : 1434540 Math.min(A, B)の所要時間 : 1434540 c = (A <= B) ? A : B の所要時間 : 1434261 Math.min(A, B)の所要時間 : 1434539 c = (A <= B) ? A : B の所要時間 : 1434819 Math.min(A, B)の所要時間 : 1434261 c = (A <= B) ? A : B の所要時間 : 1468622 Math.min(A, B)の所要時間 : 1434540 注)ループ回数は1000000回に増やしている。 3回目で実行時の最適化が完了して速度が安定するようだ。
752 :
741 :2007/01/29(月) 03:44:29
誤差のこと忘れてた。 たった3秒だったものもiTunesで音楽危機ながらだと 4秒や1秒に変化する。 それでもMathのほうが遅いかな。単純なものだと
これは興味深い
ちなみにjava -server で実行した場合 変数cが使われていないのが気づかれたようで ループが省略されてしまってるものと考えられる。 c = (A <= B) ? A : B の所要時間 : 2450870 Math.min(A, B)の所要時間 : 6062781 c = (A <= B) ? A : B の所要時間 : 3468877 Math.min(A, B)の所要時間 : 117333 c = (A <= B) ? A : B の所要時間 : 1117 Math.min(A, B)の所要時間 : 1118 c = (A <= B) ? A : B の所要時間 : 1117 Math.min(A, B)の所要時間 : 1118 c = (A <= B) ? A : B の所要時間 : 1117 Math.min(A, B)の所要時間 : 1117 c = (A <= B) ? A : B の所要時間 : 1118 Math.min(A, B)の所要時間 : 1117 最適化恐るべし
プログラム作り替えた。 public final class MathMinSpeed { public static void main(String[] args) { int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); int c = 0; long first = System.nanoTime(); for (int i = 0; i < 100000; i++) { c = Math.min(a, b); } long last = System.nanoTime() - first; System.out.println("Math.min(a, b)の所要時間(ms) " + (last / 1000)); } } public final class MinSpeed { public static void main(String[] args) { int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); int c = 0; long first = System.nanoTime(); for (int i = 0; i < 100000; i++) { c = (a <= b) ? a : b; } long last = System.nanoTime() - first; System.out.println("c = (a <= b) ? a : b の所要時間(ms) " + (last / 1000)); } }
756 :
741 :2007/01/29(月) 03:59:29
この二つのクラスを、このクラスで動かす。それぞれのクラスは一つのファイル。 Java SE 6 で Eclipse3.2.1上で動かしている。 public final class MinSpeedSet { public static void main(String[] args) { for (int i = 0; i < 100; i++) { MathMinSpeed.main(new String[] { "198468", "7143733" }); MinSpeed.main(new String[] { "198468", "7143733" }); } } } すると、 Math.min(a, b)の所要時間(ms) 2756 c = (a <= b) ? a : b の所要時間(ms) 2419 Math.min(a, b)の所要時間(ms) 4285 c = (a <= b) ? a : b の所要時間(ms) 1118 Math.min(a, b)の所要時間(ms) 194 c = (a <= b) ? a : b の所要時間(ms) 194 Math.min(a, b)の所要時間(ms) 269 c = (a <= b) ? a : b の所要時間(ms) 201 Math.min(a, b)の所要時間(ms) 194 c = (a <= b) ? a : b の所要時間(ms) 1863 Math.min(a, b)の所要時間(ms) 194 c = (a <= b) ? a : b の所要時間(ms) 201 Math.min(a, b)の所要時間(ms) 194 c = (a <= b) ? a : b の所要時間(ms) 269 Math.min(a, b)の所要時間(ms) 195 c = (a <= b) ? a : b の所要時間(ms) 83913 Math.min(a, b)の所要時間(ms) 2394 c = (a <= b) ? a : b の所要時間(ms) 349 さらに続く・・・
757 :
741 :2007/01/29(月) 04:01:41
どういうわけか0.2秒だったものがMathよりも遅く、4秒以上かかることもある。 Math.min(a, b)の所要時間(ms) 194 c = (a <= b) ? a : b の所要時間(ms) 194 Math.min(a, b)の所要時間(ms) 329 c = (a <= b) ? a : b の所要時間(ms) 242 Math.min(a, b)の所要時間(ms) 194 c = (a <= b) ? a : b の所要時間(ms) 236 Math.min(a, b)の所要時間(ms) 194 c = (a <= b) ? a : b の所要時間(ms) 235 Math.min(a, b)の所要時間(ms) 243 c = (a <= b) ? a : b の所要時間(ms) 242 Math.min(a, b)の所要時間(ms) 250 c = (a <= b) ? a : b の所要時間(ms) 194 Math.min(a, b)の所要時間(ms) 194 c = (a <= b) ? a : b の所要時間(ms) 3805 Math.min(a, b)の所要時間(ms) 305 c = (a <= b) ? a : b の所要時間(ms) 194 Math.min(a, b)の所要時間(ms) 201 c = (a <= b) ? a : b の所要時間(ms) 947 Math.min(a, b)の所要時間(ms) 194 c = (a <= b) ? a : b の所要時間(ms) 194 Math.min(a, b)の所要時間(ms) 201 c = (a <= b) ? a : b の所要時間(ms) 213 Math.min(a, b)の所要時間(ms) 194 c = (a <= b) ? a : b の所要時間(ms) 201 Math.min(a, b)の所要時間(ms) 5755 c = (a <= b) ? a : b の所要時間(ms) 194 Math.min(a, b)の所要時間(ms) 194 c = (a <= b) ? a : b の所要時間(ms) 194 Math.min(a, b)の所要時間(ms) 201 c = (a <= b) ? a : b の所要時間(ms) 194
安定後に時間がかかる回があるのは恐らくGCだろう
759 :
741 :2007/01/29(月) 04:06:28
俺も-serverオプションつけてみたら・・・・ 最初の二回だけ時間がかかって後のはすべて1ミリ秒! Math.min(a, b)の所要時間(ms) 49732 c = (a <= b) ? a : b の所要時間(ms) 2911 Math.min(a, b)の所要時間(ms) 9016 c = (a <= b) ? a : b の所要時間(ms) 4003 Math.min(a, b)の所要時間(ms) 1 c = (a <= b) ? a : b の所要時間(ms) 1 Math.min(a, b)の所要時間(ms) 1 c = (a <= b) ? a : b の所要時間(ms) 1 Math.min(a, b)の所要時間(ms) 1 c = (a <= b) ? a : b の所要時間(ms) 1
760 :
741 :2007/01/29(月) 04:08:35
さらに単位をナノ秒に戻してみると 若干誤差があると思えば同じような数字の繰り返し。 ということは、システムの誤差だ。 というか、今おれ音楽聞いているw Math.min(a, b)の所要時間(ns) 7718300 c = (a <= b) ? a : b の所要時間(ns) 2884166 Math.min(a, b)の所要時間(ns) 4483251 c = (a <= b) ? a : b の所要時間(ns) 3530337 Math.min(a, b)の所要時間(ns) 1396 c = (a <= b) ? a : b の所要時間(ns) 1676 Math.min(a, b)の所要時間(ns) 1397 c = (a <= b) ? a : b の所要時間(ns) 1118 Math.min(a, b)の所要時間(ns) 1396 c = (a <= b) ? a : b の所要時間(ns) 1397 Math.min(a, b)の所要時間(ns) 1117 c = (a <= b) ? a : b の所要時間(ns) 1397
761 :
741 :2007/01/29(月) 04:09:40
iTunes止めたときの結果w 特に大きな反応無しw Math.min(a, b)の所要時間(ns) 7118782 c = (a <= b) ? a : b の所要時間(ns) 2904559 Math.min(a, b)の所要時間(ns) 3645436 c = (a <= b) ? a : b の所要時間(ns) 3867530 Math.min(a, b)の所要時間(ns) 1397 c = (a <= b) ? a : b の所要時間(ns) 1397 Math.min(a, b)の所要時間(ns) 1397 c = (a <= b) ? a : b の所要時間(ns) 1396 Math.min(a, b)の所要時間(ns) 1118 c = (a <= b) ? a : b の所要時間(ns) 1397 Math.min(a, b)の所要時間(ns) 1397 c = (a <= b) ? a : b の所要時間(ns) 1117
762 :
741 :2007/01/29(月) 04:11:09
そうだ、忘れていた
for (int i = 0; i < 100000; i++) {
c = Math.min(a, b);
}
を
for (int i = 0; i < 1000000; i++) {
c = Math.min(a, b);
}
に変えて測定したのが
>>759 -からの結果。
763 :
741 :2007/01/29(月) 04:13:25
しかし、何かが可笑しいぞ。 たとえばこの結果、最低4.5秒かかっているはずなのに、 クリックして実行した結果は1秒もしないうちに表示される。 Math.min(a, b)の所要時間(ns) 4536610 c = (a <= b) ? a : b の所要時間(ns) 2557029 Math.min(a, b)の所要時間(ns) 4817931 c = (a <= b) ? a : b の所要時間(ns) 3580344 Math.min(a, b)の所要時間(ns) 1676
よほどのボトルネックにならない限り 可読性が高い方を選んどくのが吉だな。
あと nano と mili の間には micro と言う単位がある。
ボトルネックになるほど呼び出されると、最適化されてしまう罠
767 :
デフォルトの名無しさん :2007/01/29(月) 06:44:10
byte[]を16進表示のStringに変換する方法を教えてください。 それぞれのbyteでInteger.toHexString(b[i]) して連結するしかないですか?
100万回の繰り返しに1000ナノ秒台ってなってる気がするけど読み違い? 携帯からなんで。 もし読み違いじゃないなら… 有り得るかそんなの
ループそのものが無意味と判断されたから、ループしていないからじゃね 俺も携帯だけど
770 :
741 :2007/01/29(月) 13:31:21
>>765 そういえばそうだったwwwwwww
ハズカシス
最適化でなくなったかな?
結局マイクロベンチの罠に嵌っとる。
ちょっと質問させてください。 アプリケーションで画像を扱うにはどうしたらよいのでしょうか? 調べてみたら、Appletの場合は image = getImage( getDocumentBase(), "image.jpeg"); これで動くようなのですが、 アプリケーションでのこのような動作を出来る関数を 見つけることが出来ませんでした。
くだらない質問で申し訳ないのですが、 メソッドは、他の言語でいう関数と同義ですよね?
776 :
741 :2007/01/29(月) 14:53:10
>>775 その他の言語が何かによるんじゃないか?
778 :
741 :2007/01/29(月) 15:05:52
for文のところを二重for文にしてみた。 んでiの値もintの最小から最大へと範囲を広げた。 それでも最適化は進み高速化していた。 for (int i = Integer.MIN_VALUE; i < Integer.MAX_VALUE; i++) { System.out.printf("i=%d\n", i); for (int j = Integer.MIN_VALUE; j < Integer.MAX_VALUE; j++) { c = Math.min(a, b); } } んで、このfor文を三重にしてみたんだ。 for (int i = Integer.MIN_VALUE; i < Integer.MAX_VALUE; i++) { System.out.printf("i=%d\n", i); for (int j = Integer.MIN_VALUE; j < Integer.MAX_VALUE; j++) { for (int k = 0; k < 100; k++) { c = Math.min(a, b); } } } そしたら激重。上のprint文が表示される間隔も最初は2,3秒おきだったのに どんどん遅くなっている。カーソルが10回点滅してやっとカウントするくらいの速さだ。
>>775 似てはいるが、「同義」とはいいきれない。
Cなどその他の言語の関数、サブルーチン、プロシージャと
似たようなものだと思えばわかりにくいこともない。
C++のメンバ関数に近いと言える。
>>773 ありがとうございます。やっぱ地道にやるしかないのですね。
>>775 Javaの場合はインスタンス、クラスに関係なくメソッドと呼ぶような…
言語の専門家で分からないが、メソッドと関数は微妙に違う。
自分の解釈では…
メソッドはオブジェクト指向におけるクラスの動作を記述するためのもの
関数は単に戻り値を持つ呼び出し可能な動作のまとまり(に名前をつけたもの)
>>774 ↓ これ
image = getToolkit().getImage( getDocumentBase(), "image.jpeg");
イマドキの画像読み書きはImageIOクラスでやったほうがいいかもな。
C++にはメンバ関数とグローバル関数とがあるからねえ。 Javaにはグローバル関数が無い。というか使用禁止。 Javaのメソッドは名前の通り手法を記述するもの。操作、振る舞いを記述するという意味。 かならくクラスに属さないと行けないようになっている。 つまりクラスの振る舞いを書くもの。だからクラス名、オブジェクト名は名詞形、 メソッド名はなるべき動詞形になるようと推奨されている。 UMLではJavaのメソッドのことを「操作」と呼ぶ。 つまり、 主語がクラスやオブジェクトで、 述語がメソッドに相当する。 目的語は、メソッドの引数に相当する。
>>784 Advanced Image I/Oもよろし
>>775 に対して簡単に言えばそういうことですって言わないであーだこーだ言ってるやつってなんなの
ム板って初心者質問に対してお前みたいなレスする奴が必ずいるんだよ。
間違ってること覚えて分かった気になるより、 何を言ってるのか分からないほうがまだマシ
>>775 が具体的に何を知りたいのかはっきりと明示しないから
そういうことになるんだが
JTabbedPaneで、タブ一つも無い時でも タブがある時と同じ見た目にしたいんですが、 どのようにすればできるでしょうか?
>>792 ちょっと不鮮明。
いわゆるタブ・ブラウザでいう、
「常にタブを表示する」みたいな動作?
>>793 FireFoxでいえば「常にタブバーを表示する」みたいな感じです。
タブを全て閉じたらタブの名前が書かれていたスペースが潰れてしまうので
なんとかならないかなぁと。
空気読まずに横レススマソ。 OSが98SE機に、j2sdk1.4.2_08をインストールしたんですが、 パス設定をするためAutoexec.batを開いたら、 SET PATH=C:\JUST\JSLIB32;C:\IBMTOOLS SET PATH=C:\PERL\BIN;"%PATH%" SET PATH="%PATH%";C:\PROGRA~1\REAL\REALPR~1 となってました。 ;c:\j2sdk1.4.2_08\binを付け加えるのはどのSET PATHにしたら良いんですか?
>>795 SET PATH=c:\j2sdk1.4.2_08\bin;"%PATH%"
って行を追加するのが、そのマシンの流儀に見える。
1.4.2 は 12 まで出てるのに 08 を使う理由が知りたい。
>>795 SET PATH="%PATH%";c:\j2sdk1.4.2_08\bin;
これを4行目に追加
>>796 「SET PATHがあるにもかかわらず独立して付け加えると
windowsが起動しなくなる事があります。本当にないかもう一度確認して下さい。」
とわざわざ太文字で書かれているんですが、平気なんですか?
08を使うのは図書館に行ったらたまたまCD付きの本があったんで、そのまま借りてきただけです。
799 :
795 :2007/01/29(月) 21:46:46
リロードせずに書き込んでしまった。
>>796 と
>>797 はどっちにしたら・・・?
両方とも変わらないんですか?
その注意は、 set PATH=c:¥jdk1.4.2_08¥bin としてしまって従来からの PATH の値を根こそぎないことにしてしまう 間抜けな人に対する警告。 ここに示された例は、ちゃんと %PATH% という記述で、旧定義を取り込んで 定義してるでしょ。
802 :
795 :2007/01/29(月) 22:02:55
>>803 スレタイに初心者大歓迎って書いてあったから来たのに・・・
お手数かけて申し訳ありませんでした。(´・ω・`)
みんな大歓迎してたのに
>>776 すまね、携帯からだったから流れがつかめてなかったわ。
最適化でなくなったりするの分かってて試してんのね。
>>798 その注意の意味が分からないようなら
autoexec.bat 触っちゃダメ。危なすぎる。
(今時 autexec.bat もどうかと思うよ・・・て9x系か。)
その本ってDOSプロンプトからいろいろやる系?
であるならばDOSプロンプト開いて
c:\> set PATH=c:\j2sdk1.4.2_08;"%PATH%"
したらいいよ。
で、このDOS窓から javac やら java やら叩く。
環境変数が影響するのはこの開いた窓の中だけだから、
他のアプリケーションに一切迷惑かけない。
>>808 ダブルクォーテーションは余計だろ。
いらんいらん
やるなら全体にかけろ
どうせなら、PATHを設定している箇所に 一挙に PATH=あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ; あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ; あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ; あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ; あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ; あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ; あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ; としてしまえ。
812 :
795 :2007/01/29(月) 23:07:59
PATHくらいでモタモタするな! もう自己解決したから駄目ってろ!カス共
フッヒヒwサーセンww
c:\j2sdk1.4.2_08;は JAVA_HOMEに定義しておいた方が バージョンアップのとき煩わしさを減らすことができる。 set PATH=%JAVA_HOME%\bin;..................... set JAVA_HOME=c:\j2sdk1.4.2_08
>>812 貴様は何故いまだにWindows98を使っているのか?
あまりにも時代遅れだ。
俺はCP/M使ってる
818 :
795 :2007/01/30(火) 00:07:31
>>818 あ、そうだった。
いつもWinXPつかってるんでね
どうでもいいやと思ってるんだ
822 :
692 :2007/01/30(火) 01:56:04
Javaでデータベースからデータを読み出すときに、プログラム中の変数を含んだ SQL文はどのように書けばいいのでしょうか? String sql = String qry = "SELECT * FROM TABLE\n" + "WHERE 名前 = \"" + 変数 +"\"" ; のような書き方だと、「パラメータが少なすぎます。1 を指定してください。」 というエラーが出てしまいます。 SYSTEM.OUT.PRINT(qry)で表示されたSQL文をデータベースのクエリとして実行すると、 正常に動作しました。 どなたかアドバイスをお願いします。
String query = "SELECT * FROM TABLE\nWHERE 名前 = ?"; PreparedStatement ps = conn.prepareStatement(query); ps.setString(1, 変数) だがしかし, エラーの原因は'
825 :
823 :2007/01/30(火) 06:39:21
ソース訂正・・・ ×String sql = String qry = "SELECT * FROM TABLE\n" + "WHERE 名前 = \"" + 変数 +"\"" ; じゃなくて ○String qry = "SELECT * FROM TABLE\n" + "WHERE 名前 = \"" + 変数 +"\"" ; です。 ちなみにqryの中身は SELECT * from list where 氏名 = "変数" になりました
826 :
823 :2007/01/30(火) 06:41:09
827 :
823 :2007/01/30(火) 06:58:03
次々と質問申し訳ないです。 824のとおりに該当部分を変更したところ、 今度は「COUNTフィールドが正しくありません」とのエラーメッセジが・・・ どうすればいいんだYO!
828 :
823 :2007/01/30(火) 07:01:19
大事なことをわすれてました・・・変数はSTRINGです
どうでも良いが大文字小文字は原文通り書け Javaは大文字小文字を区別する言語だ
>>823 WHERE句の後に列名を期待してるんだけど
「名前」を列名として認識してない。
環境書いてくれないから断定できないけど、
JDBCドライバが「名前」をエンコードする時に
DB側で期待するコードと異なって齟齬が発生してるんだろう。
ひとまずテーブル名・列名を英語にして試せ。
それでうまく行くようなら、JDBCドライバの仕様調べて
コード指定のやり方を確認するヨロシ。
無用なトラブル抱えたくなければ、日本語列名諦めた方が楽。
プレースホルダーつかえよ
このスレどう見ても初心者大歓迎じゃないよなw
SQLの質問はDB板の方がいいかもな。 つーてもあっち人少ないけど。
>>823 DBはよくわからんが、SQL文に \n なんて付けて良いの?
あと、場合によっては文字コードの変換処理が必要になるから
必要ならDB側の文字コードの扱いを調べる。
はてまたドライバのバージョンが安定版ではない、など…
初心者≠教えて君
こんなにチヤホヤされてるのになにが不満なのか
Javaの初心者は大歓迎だけど 自分で調べる気のない教えて君やコミュニケーションの初心者はイラネ
832も言っているが、SQLインジェクション食らってデータ流出やDB破壊されたくなかったら、プレースホルダ使え。
はてさて、
>>823 にプレースホルダーの意味を理解できるだろうか?
841 :
823 :2007/01/30(火) 15:32:55
能書きは良いからさっさと回答しろや禿共!
秋田
843 :
823 :2007/01/30(火) 16:01:09
みなさん、すみません・・・。 偽物さん、勘弁して下さい。;
だからプレースホルダーっつってんだろ!
はてさて、
>>823 にプレースホルダーの意味を理解できるだろうか?
846 :
823 :2007/01/30(火) 17:58:51
能書きは良いからさっさと回答しろや禿共!
847 :
823 :2007/01/30(火) 18:08:55
なんか偽者が二人いるようなのですが・・・ やっとどうにかなりました、ホントくだらない間違いでした。 一応自分で調べてたのですがとんでもない勘違いをしていただけでした。 スレ汚し申し訳ありませんでした。
お役に立ててよかった。
PreparedStatementを使ったわけだな。 そりゃよかったよかった だが、もっとおすすいめなのはHibernateを使うことだ
850 :
823 :2007/01/30(火) 18:59:35
携帯のゲームを作りたいんですけど、ノートパソコンでもできますか?
もちろん。 次の質問どうぞ!
パソコンのゲーム作りたいんですけど、携帯でもできますか?
できますん
856 :
3 :2007/01/30(火) 21:19:26
自己解決しました!
857 :
デフォルトの名無しさん :2007/01/30(火) 21:52:09
以前 375 の質問をしたものです。 376さんの回答で解決できたのですが、 ネットから画像を取得するのではなく PC内の画像をJButtonに表示する方法が 知りたいです。 よろしくお願いします。
858 :
ぴゅあ :2007/01/30(火) 22:10:15
JNIつかわないと無理ですよ
画像 javaで検索
860 :
376 :2007/01/30(火) 22:50:59
>>857 いや、その、だからURLじゃなかったらファイルパスとして扱われるから・・・
Button jb = new JButton();
jb.setIcon(new ImageIcon("C:\\Documents and Settings\\Administrator\\My Documents\\icon.png"));
とかでいけると思うんだが・・・
>>860 ImageIconのコンストラクタでパスを指定するときは区切り文字には/を使え。
不確かならjavadocで確認汁
862 :
デフォルトの名無しさん :2007/01/30(火) 23:38:08
スレ違いな悩みがあるんですが効いてもらえますか?
>>861 すまん、不確かな書き方をしたが、ちゃんと動作はチェックしたコードだ。
Javadocは、
>>376 を書いたときに見ている。
区切り文字を/とするのが確かなのはそうなんだが、
ファイルシステムから取得したパスを使うときの
ことも考えて、\でのパスにしておいた。
あと、文字列内にパスを埋めるときに\のエスケープを忘れて
参照できねーっていう泣き言を回避したかったのもあり
・・・というか、Javadoc見ろって、回答で解決したはずなのに、ってことか?
>>860 C:\Documents and Settings\Administrator\My Documents\\icon.png
指定されたファイルが見つかりません
というエラーが出ますorz
>>861 まあ普通セパレータは/を推奨しているがな。
\\だと文字数多くて煩わしいし
OSが変わるとめんどい。
ディレクトリ構造は変わらずトップのルートディレクトリだけ
変えてWindowsからSolarisにコピーするということはよくあるだけに。
>>863 Fileクラスのstaticフィールドにパスセパレータがあるぞ
それ使うという手もある。
>>864 スペースの前に\を入れてみてはどうだろうか
Document\ and\ Settings みたいに
だめなら、file://で始まるプロトコルを使ってみると言う手もある。
しかし思うのだが、なぜ絶対パスを使う? 相対パスだろう。 しかもそのアイコン、JARに固めるのか? もしくはスキンで簡単に変更できるようにすべきじゃないか?
871 :
376 :2007/01/31(水) 00:04:29
>>864 自分がファイルをおいている場所に変えなさい・・・orz
>>866 とりあえず、っていうコードじゃなければそれ使ってもいい
>>867 ,868
それは、Unix系シェルで扱うときのエスケープw
>>869 それでもいいんだが、
クラスパスの下にファイルをおけるなら
リソースパスを使うのが理想かな、と思う
ClassLoader.getSystemClassLoader("/icon/hogehoge.png")
これなら返値は、URLで、jarファイル内でも、ファイルシステムでも
OKだからな。
俺が実装するならこれ。
872 :
デフォルトの名無しさん :2007/01/31(水) 00:06:00
質問です。 これからjavaの勉強を始めようと考えています。 ほかの言語の経験はあるので、入門書とかは置いといて とりあえず言語仕様から一通り抑えようかと思っているのですが sunの「Java 言語仕様」はオンラインで読める英語のものか、書籍で出版されているものしかないのでしょうか
JDK 5のならオンラインで日本語
>>873 とりあえず入門サイトをググッたほうが早い
876 :
デフォルトの名無しさん :2007/01/31(水) 01:17:18
やっぱり、言語仕様くらい目を通さないとだめかね。 でも、結構量あるし、退屈そうだし(予想)、日本語訳本高いし。
878 :
デフォルトの名無しさん :2007/01/31(水) 04:09:42
超初歩的質問で申し訳ないのですが、 入力を促す際に、一度入力した数値が不適切だった場合、 再度入力を促したいのですが、下のプログラムのままコンパイルして実行すると、 1−12月以外の数値を入力した際に、 今日の月は? 今日の月は?(1-12月で入力ください) と二つとも表示されてしまいます。 下のだけ出したい場合はどうすれば良いのでしょうか? for( ; ; ){ System.out.println("今日の月は?"); todayMonth=Integer.parseInt(br.readLine()); //月を入力 //入力された数値が1-12以外の場合に再入力 if(todayMonth>=1 && todayMonth<=12){ break; } System.out.println("今日の月は?(1-12月で入力ください)"); }
最初の質問表示をforの前に。
System.out.println("今日の月は?"); for( ; ; ){… ではどう?
881 :
デフォルトの名無しさん :2007/01/31(水) 04:23:40
>>881 もしレスするのなら、やってみてからその結果を報告しろ。
問題を解決したいんだからやってみるのは当たり前だ。
やろうとする意思表明をされても何の情報ももたらさない。
883 :
デフォルトの名無しさん :2007/01/31(水) 04:30:28
>>879-880 できました!!
感謝いたします!!
スレ違いで申し訳ないのですが、教科書・参考書に書いてある内容などと
ちょっとだけ違うことをやろうとした場合に、完全に同じ雛形はありません。
その際に、どうやればいいか分らない時って、みなさんはどのように処理してきたのでしょうか?
やはり、2chなどの公の掲示板を利用していたのでしょうか?
884 :
デフォルトの名無しさん :2007/01/31(水) 04:32:14
>>882 すいませんでした。
とりあえずレスに対する感謝を先に書いておきたかったものですから。
板の文化というか、その辺がわからなかったです。
申し訳なかったです。以後気をつけます。
いやまぁ、 レスをくれたことについての感謝を まず述べておくのは マナーとしてはアリだと思う。
886 :
878 :2007/01/31(水) 04:37:10
>>885 ありがとうございます!
sage進行でもあるんですね。いろいろと不注意でした。
>>883 雛形をちょっとだけ変えながらいろいろ試してみる。
リファレンスや言語仕様をいろいろ読んでみる。
初心者の頃はサンプルをいろいろ変形しながら遊んでたよ。
限られた時間で成果をあげないといけない時は、
そういうことをする余裕は無いと思うけど。
まあ、試してみるのに時間がかかったりする時は回答者も不安だから、 とりあえず回答を見たというレスだけ返すのはありかもしれんね。 TPOに応じてということで。
889 :
878 :2007/01/31(水) 04:56:16
>>887 なるほど。いろいろ試すことが大事なんですね。
確かに面白いですしね。
今は2月の日入力処理に挑戦中です。
実務に入ると、やたらめったら試す方法は使えなくなり、
リファレンスの読解能力や言語仕様をいかに読んでるかが問われてくるわけですね。
かなり大変そうだというのは、分りました。
>>888 ありがとうございます!
うるせー。質問が終わったらとっとと失せろ!
891 :
デフォルトの名無しさん :2007/01/31(水) 09:31:41
classファイルをjavaファイルに変更することはできるのでしょうか? できるのなら、方法を教えてください。
setBackground(Color.BLACK); のように背景を画像にすることはできますか? 現在 public void paintComponent(Graphics g) { super.paintComponent(g); でg.drawImageを使って背景を作っているのですが、 それ以外にも同時にアニメーション用の画像も表示していて、 repaint();する際にアニメーション以外にも背景画像もrepaintしてしまいすさまじい重さになってしまっています。 背景画像として表示するものは一切アニメーションも変化も何もしないので はじめに読み込んで固定にしておきたいのですが・・・
893 :
デフォルトの名無しさん :2007/01/31(水) 10:05:16
>>891 何のためにそんなことするの?
目的は?
895 :
デフォルトの名無しさん :2007/01/31(水) 10:10:32
>>892 画像と背景をまとめた全体を一つの画像として描き上げてから、
それを描く。
キーワード: ダブルバッファ
またマルチかよ チョーウザ
リバースエンジニアリングってやつだな!知ってるぜ!
※課題プログラム(その1) 消費税を計算するプログラムを作りなさい。 ※課題プログラム(その2) その1のプログラムを、メソッド形式にして作成する。 ※課題プログラム(その3) その1のプログラムからある単位でクラス化し継承させて作成する。 と課題をだされたのですが「メソッド形式」と「クラス化し継承させる」 という部分がわからないのですうまく説明できるかたがいましたら お願いします。
>>899 何、その3をいきなり作れば、その1とその2はクリアだよ。
というか消費税計算くらいで何をどう継承するのかよくわからんのだが・・・
計算部分を親に実装して、子は、国によって分けるとか?
public class 日本消費税計算 extends 消費税計算{
public class カナダ消費税計算 extends 消費税計算{
うはw
丸め処理は、また別に処理するから・・・
ちょっとしたライブラリをつくれってことか??
うまく説明できないなら出てこないでください><
何その出題者も具体的な回答考えてないみたいな課題。
はっきりいって私には@しかできてない状態でして、他は お手上げ状態です。 これには具体的な答えなどないのでしょうか?
宿題スレでも行け
>>903 そのできてる部分だけでも晒せば残りはやってあげるけど
//rensyu21.java class rensyu21 { public static void main(String args[]) { double a; double b; a = 100; b = a * 1.05; System.out.println(b+"円です"); } }
909 :
903 :2007/01/31(水) 15:53:11
おまえら消費税の計算もできないのかwww
うまく説明できないなら出てくるなって言ってんだよ、カス。
間違ってましたか…どこが間違っているか教えていただきたいのですが お願いします。
なりすまし乙。もう秋田。
>>911 課題自体がアレなんでどこが間違っているとも言いがたいのだが
一般的に通貨として1円未満は存在しないだろ? 四捨五入なりしてみな。
あと、金額みたいにクリティカルな計算でdoubleを使わないのは基本。
浮動小数 誤差 あたりでググってみ。
この課題がそこまで考えてるかは知らんが。
>>911 何というか、金額計算には丸めが必要で、それってちょっとばかし
頭使うから考えてみて。
・切り捨て
・切り上げ
・四捨五入
これくらいのロジックは使う。(店によっては、10円未満切り捨てもあるしな)
で、その判断の対象が整数部ではなく小数部に対して行われる。
で、金額を扱う用だと、BigDecimalというクラスもある。
これもちょっと見ておいた方がいいと思う。
まあ、元課題がそこまで考えて出されたとも思えんが・・・
>>914 >>912-913 が書いているように、たぶんBigDecimalを使うというのは
この課題のレベルで期待されていることではないだろうな。
2は、税計算部分を、税別価格を与えると税を加算した結果を返すメソッド
に抜き出せばOK
3は、あえて継承を使うような話ではないので皆困っている。
こういう形で継承を教えても何が嬉しいのかさっぱりわからんだろうしね。
敢えてやるなら、
abstract class PriceCalculator {
abstract int computeTotalPrice(int rawPrice);
}
みたいな抽象クラスをつくり、
class HashimotoPriceCalculator extends PriceCalculator {
// 5%消費税で計算
}
class TakeshitaPriceCalculator extends PriceCalculator {
// 3%消費税で計算
}
などを作ることになるだろうな。
うまく説明できないなら出てくるなって言ってんだよ、カス。
クラス名が愛くるしいな
普通は、税率などの変化する項目は施行年月日と対にしてテーブルに保存しておく。 また、内税外税とか、切り捨て、切り上げ、四捨五入のどれを使うかの区別も必要。 会社によっては伝票単位で計算するか請求単位で計算するかの別なども必要になる。 A++もらいたかったらこんな感じだろうが、そこまで考えなくても良いとおも。
業務アプリの課題じゃないからそこまでやらんでもいいんでは (w まー税率は可変にするべきだが。
921 :
903 :2007/01/31(水) 17:40:16
CのプログラムをJavaに変換するのに簡単な方法無い?
924 :
デフォルトの名無しさん :2007/01/31(水) 17:46:14
すみませんが、教えて下さい。 javaで作られたGPLのZenCartみたいなECサイト構築ソフトってありますか? この質問はここで良いですか?
>>921 RDBのテーブルのことだろう。学生は今は気にするな。
>>923 こんな順で作業すれば簡単
全部mainメソッドにぶち込むコンパイル→エラーがでる
→エラーをとる→適当にクラスに分割する
→リファクタリングして0から作り直す
>>925 サンクス・・・と言いたいけど難しい
行列計算のプログラムなんだけどCは
データ(txtファイル)読み込み
行列計算
結果出力
メインプログラム
の4つのプログラムから出来ててこれと同じのをJavaプログラム一つに変換しろって・・・ヨクワカンネ
>>929 最近はVolatileImageってのがあるな。
Tiger以降はデフォルトでVolatileImage
>>927 いや、むしろ機能単位に作られててすごくわかりやすそうなんだが・・・
まずは、行列自体のデータクラスから作ってみてはどうか?
933 :
sage :2007/01/31(水) 18:33:45
>> 926 ありがとうございます、逝ってみます。
>>927 つJakarta Commons Math
935 :
デフォルトの名無しさん :2007/01/31(水) 20:41:12
80行目周辺 omote.fillRect(0,0,1000,700); のあとに g.drawImage(image[0],x ,y0,this); ↑このgはAppletの持ってるGraphicsだから当然アプレットの画面が更新される(だからチカチカする) 最後のほうに g.drawImage(ura,0,0,this);があるのでここ以外全てomoteを対象に描画すればよし
ごめんなさい。 どこが違うのでしょうか? 教えてエロい人 ・∀・)つ import java.text.NumberFormat; class Hoge { public static void main(String args[]) { double x=10000.0/3.0; NumberFormat formatter=NumberFormat.getNumberInstance(Local.GERMANY); System.out.println(formatter.format(x)); } }
(Locale.GERMANY)以外でお願い致します
940 :
857 :2007/01/31(水) 23:58:54
857の質問をしたものです。 遅くなりましたがレスしてくれた方々ありがとうございます。 実際に表示させることができました。
937 import java.util.Locale; を追加したらでけました。 スレ汚しすみません。
>>941 javacで「シンボルが解決できません。」なんてメッセージが
ちゃんと出たんでしょうに…
# それ無しに「どこが違う」と言われてもねぇ…
Format.printf("%8.2f",100000.0/3.0)を使うには、どのパッケージがいるのかな? ・∀・)o く ワクワク
すいませんが質問です。 アプレットで簡単なゲームを作ったのですが、 アプリケーションでも動くようにしようと思ったら画像の取得にgetDocumentBase()を使っており動いてくれません 何かgetDocumentBase()に変わるものはないでしょうか
java.awt.Toolkit
Toolkit.getDefaultToolkit().getImage(String);
947 :
ぴゅあ :2007/02/01(木) 02:35:19
948 :
デフォルトの名無しさん :2007/02/01(木) 03:26:51
vistaでは標準でsun-javaのjreが入っているって本当ですか。
>>935 repaintは別のスレッドで非同期に処理されるから実際に描画されるのは
たぶん後ろのif節でy0-y4の値を変更した後になるよ。
>>944 getClass().getResource("imagefile")じゃダメ?
>>948 SunとMSの和解後はXPにも入ってると思ったけど。
>>944 this.getClass().getClassLoader().getResource("/com/your/pkg/abc.gif");
SAX パーサ使って XML を解析する時に XML 宣言中の version や encoding を参照したいのですが、どのインターフェースにコールバック されますか?
952 :
デフォルトの名無しさん :2007/02/01(木) 09:07:45
一人ずつ順番に質問しなさい
>>952 ぱっと見だが、何でエラー無視してんだ。
appendの引数は文字列だ。"str"という文字列ではなく、
strという変数をappendするんじゃないのか。
つかTextなんてクラス名作るな。ユーザー作成クラスと解るような名前にしる。
ζ / ̄ ̄ ̄ ̄\ / \ /\ \ /| ||||||| (・) (・) | (6-------◯⌒つ| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | _||||||||| | < 宿題スレに投げんとは!けしからん! \ / \_/ / \________________ \____/
|''" ̄| _,,,、------、../ ̄"ヽ. |:::::::::::| .. イ゙゛ |::::::::::::::::| |::::::::::::| ,r'ノ'!.| ,,,, ._、. |:::::::::::::::| |/ ̄ ̄ ̄ ̄~ヽ _l゙|:::::|.| ( ) !|^|l! .|::::::::::::::::|__,| l |-|:::::|.| ゙'" _,,,|,| |!| .|--'''フ'":::::::::|____G,__l_ | .| .._|.| .,//./`/`/::::::::::r'" \ | i| ,,,二"゙~二二ニ''i゙゙"r':::::::::::::/ `i、 __o 、、 | l| | |.| l::::::::::::::l゙ ~~~~~ ~~~~~ 'i | 二|二 ____ | || | __. ァ' ─ 、::::::::::| ・ ・ |. ノ | ヤ ツ | || | | , -{ }:::::::::l (、_, ). i | .‖| | ノ ヽ._ _,.イ::::::::::i / ll ヽ, i | .‖| │l ヽ ヽ ヽ::::::ヽ ` トェェェェイ / .|′".lく,_  ̄/ 、 \_}´ /__,,,_\ `ニニニ´ ノ ‘」r。_ `''ーヽ、 ` ┬1 _ .ノ ゙'''\、, ;;;;;;;;;;;; ,/ , .゙l /Tly、、 ゙ ゙̄l、 `'ミi、 .゙l i、`゙'ー-、,,,r<´___\__ ゚'!┤l゙゙l| ,l゙'ッ、,、 ``-ミ゙l .゙i,,,〜,,,,,.--、 `\ ̄ ‘'、 ゙l |.,l:、| ゙l.リハ、,,、 .|--ー…'''"`゙^ヽ ゙l `-、) `'__ `゙゚“ | .| |゙l .l゙ `''r,,,. ゙i、 ゙' |_,,,,,,,,,,-,,,,=ll=Tニ゙l|゙‐''| ヽ,,,i入,,| ゙l ゙lリ、\.,,ッr,==''゙li||,゙冖'''"゙⌒ .,i´ `ヽ| ` ゙l ゙l | |゙i、 .| ,i´ │ ._,,,,,,,,,,--―'''ヽ,,,,/゛
_____ / \__ 〃 | ̄ \____Φ| / ヾ \ | ● ● __  ̄ ̄ ̄ \ |____/ ▼ |\ 〃 ヾ | _人| | ___/ \ / | \ \ | ノ (__)
||| || | __∩__ めぎょ | ,.:. '.;§, |; ., ,・倒_@δ,_|,.': ; <___> <___> <__ __> <_ _> | | | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ( ・∀・) < あいたっ ) ( \__________ (__Y_)
>>951 見た目がPIっぽいのでprocessing instructionとして処理するのかと思ったのだが、XML宣言はPIとは別らしいね。適切なAPIが見つからない。
1行呼んで自力でencoding="..."とかを切り出してみるしかないかも。
(読んだあとでrewindする)
/ ̄ ̄ ̄ ̄\ / ● ● しつこいぞぬっ |Y Y \ | | | ▼ | パクッ | \/ ____人__| | |∨∨∨∨∨ モナッ・・ \ \∧∧ ) | | |\  ̄ ̄\\\ | | |  ̄ ̄ ̄ し し/ (__)_)
java.awt.printライブラリを用いて、プリンタへの印刷を試みています。 そこで一つ問題が生じたので、皆様にお聞きしたいことがあります。 時々、印刷が途中で終了してしまう事があるのです。 そのような場合は、再度、(一番最初の工程から)印刷を試みるとうまく行きます。 些細な事でも構いませんので、この現象が発生する、原因を教えて欲しいのです。 皆様、よろしくお願いします。
>>955-958 また例の荒らしか?
再び数日間にかけてスレが荒れるのか。
それとも大学生の春厨か? すると。2ヶ月間もスレが荒れるのか。いやなこった。
>>961 それをブレイクポイント仕掛けてステップで追っていくわけにはいかないのかな?
プログラムがないので何ともだが・・・・
何かストリームでそういうのを扱ってるんだとすると、
ストリームをクローズする前に、アプリ落ちたりスレッド落としてたりするとか・・・?
途中で切れるっていうとストリームってイメージがあるもんで。
966 :
デフォルトの名無しさん :2007/02/01(木) 16:48:27
すいません、JavaScriptのfromCharCodeを Javaで実現したいのですが なんらかの方法がありますか?
ありますよ。
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ / 融合だぞ! / / ̄ ̄ ̄ ̄\  ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ /● ● \ Λ_Λ ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ / Ο Y Y| ( ´ー`) ( ゚Д゚) ∠ 俺の方がすごいだろ! | ▼Ο ο | | | \ \ / νν \_______ |_人_ ο。 。\/ |∧∧\ Υ ノ \__ 。ο。 。Ο  ̄ ̄ ( ´∀`) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ \ Ο 。ο。 ソ < キャラ総融合だぞ! (-_-) ο゚。 Ο ソ \________ (/⌒\)――(/⌒\)
JavaのGenericsについての質問です。
クラスAとクラスBは、継承関係はなく、共通のインターフェースも実装してい
ないが、同名のメソッド(例えば void hoge()とか)を持っている、とします。
このA、Bのインスタンスを共通して呼び出せる総称関数を、JavaのGenericsで
作成することは可能なのでしょうか?
私はできないと思うのですが、ワイルドカードなどを使ってできるかもしれな
いと知人が言っていて、少し自信がなくなりました。
また、C++のテンプレートとの違いを紹介したページはないでしょうか?
http://www.mamezou.com/tec/equip001.htm このページは役に立つのですが、少し古いようなので。
>>969 ぱっとみ、その記事の4.2が答えだと思います。
#私はそう理解している
#古い、といわれても、Genericsが入ってる5.0が出たのは2003年頃だったはず
971 :
969 :2007/02/01(木) 20:22:56
>>970 ありがとうございます。
私もそう理解しているのですが、この記事にはワイルドカードの記述がありません。
またJava5の正式リリースは2004年の秋です。
適当なこと言ってんなよハゲ! 知らないならすっこんでろ!
>>969 Genericsじゃなくて、インターフェースで解決すべき問題
>>969 SunのページでダウソできるGenericsの解説PDF(英語版)
を読めばだいたいわかるよ。
Genericsはちょっと癖があって
Genericsなクラスを使うことは非常に簡単でも
作るのは、やはり難しいものだよ。
IBMのDeveloper worksの記事も参考になるのがあるぞ。
どうすればいいかは、まさに
>>970 の言うとおりで、
共通のインタフェースを実装すべき。
>>971 ワイルドカード使う必要ないよ。
豆蔵のページのように
Comparableインターフェースのようなクラスを作って
そのメソッドをオーバーライドする形にすればいい。
そもそも、<T> Comparable#CompareTo(T t)の場合はワイルドカードを使う必要は無い。
パラメータを複数のメソッドやメソッド義気数で使うときに考えるべきものであって
一つのメソッドやメソッド引数やクラスにしか使わないならワイルドカードは特に意識する必要はない。
>>973 インターフェースにGenerics独特のコードを実装するという形かな
Comparableの真似をするだけだが
どうせなら <? extends Number>や <Number super ?> のような表現も覚えておいた方が良い
>>970 |''" ̄|
_,,,、------、../ ̄"ヽ. |:::::::::::|
.. イ゙゛ |::::::::::::::::| |::::::::::::|
,r'ノ'!.| ,,,, ._、. |:::::::::::::::| |/ ̄ ̄ ̄ ̄~ヽ
_l゙|:::::|.| ( ) !|^|l! .|::::::::::::::::|__,| l
|-|:::::|.| ゙'" _,,,|,| |!| .|--'''フ'":::::::::|____G,__l_
| .| .._|.| .,//./`/`/::::::::::r'" \
| i| ,,,二"゙~二二ニ''i゙゙"r':::::::::::::/ `i、 __o 、、
| l| | |.| l::::::::::::::l゙ ~~~~~ ~~~~~ 'i | 二|二 ____
| || | __. ァ' ─ 、::::::::::| ・ ・ |. ノ | ヤ ツ
| || | | , -{ }:::::::::l (、_, ). i
| .‖| | ノ ヽ._ _,.イ::::::::::i / ll ヽ, i
| .‖| │l ヽ ヽ ヽ::::::ヽ ` トェェェェイ /
.|′".lく,_  ̄/ 、 \_}´ /__,,,_\ `ニニニ´ ノ
‘」r。_ `''ーヽ、 ` ┬1 _ .ノ ゙'''\、, ;;;;;;;;;;;; ,/ ,
.゙l /Tly、、 ゙ ゙̄l、 `'ミi、 .゙l i、`゙'ー-、,,,r<´___\__
゚'!┤l゙゙l| ,l゙'ッ、,、 ``-ミ゙l .゙i,,,〜,,,,,.--、 `\ ̄ ‘'、
゙l |.,l:、| ゙l.リハ、,,、 .|--ー…'''"`゙^ヽ ゙l `-、) `'__
`゙゚“ | .| |゙l .l゙ `''r,,,. ゙i、 ゙' |_,,,,,,,,,,-,,,,=ll=Tニ゙l|゙‐''|
ヽ,,,i入,,| ゙l ゙lリ、\.,,ッr,==''゙li||,゙冖'''"゙⌒ .,i´ `ヽ|
` ゙l ゙l | |゙i、 .| ,i´ │ ._,,,,,,,,,,--―'''ヽ,,,,/゛
Java勉強に適した、皆さんのオススメの書籍教えてください
>>979 やさしいJavaやったらSJC-P関連の参考書
981 :
デフォルトの名無しさん :2007/02/01(木) 22:09:29
文字列に格納されているXMLデータをパースするにはどうすればよいのでしょうか? <?xml version="1.0" encoding="UTF-8"?>といったXMLがそのままStringに格納されていて、 Reader sr = new StringReader(xmldata); InputSource is = new InputSource(sr); is.encoding("UTF-8"); Document doc = builder.parse(is); でやってみたのですが、うまく動作させることができませんでした。 よろしくお願いします。
質問の仕方を勉強したほうが良いよ。
983 :
デフォルトの名無しさん :2007/02/01(木) 22:25:28
文字列に格納されているXMLデータをパースするにはどうすればよいのでしょうか? <?xml version="1.0" encoding="UTF-8"?>といったXMLがそのままStringに格納されていて、 Reader sr = new StringReader(xmldata); InputSource is = new InputSource(sr); is.encoding("UTF-8"); Document doc = builder.parse(is); でやってみたのですが、うまく動作させることができませんでした。 よろしくお願いします。
別人によるコピペだと思うが反応しておこう
>>983 エラー嫁
985 :
デフォルトの名無しさん :2007/02/01(木) 23:30:10
>>980 サンクスです
よくわからないけど明日本屋行って見てきます
986 :
969 :2007/02/02(金) 00:25:10
すみません、ちょっと取り込み中でした。 どうも質問の仕方が悪かったようです。クラスAとクラスBは既存のクラスで、 もう修正はできないと考えてください。つまりインターフェースを追加実装で きないという想定です。 C++のテンプレートならこういう場合でもAとBの総称関数が作れます。だから 必要なインターフェースを設計時にすべて洗い出す必要はありません。これが テンプレートプログラミングに大きな柔軟性を与えています。 このような柔軟性は、Javaのジェネリックスでは実現できるのでしょうか? 私の今までの理解は、ジェネリックスは原理的に、従来のJavaに柔軟性を与え てくれることは無くて、むしろ逆に、今までのJavaより細かく正確な型チェッ クをできるようにするものだというものでした。しかし何か見落としが無いか 不安になって質問させていただいたのです。 ただ、今までの回答を読んでみると、暗に「出来ない」と回答されているよう にも思います。そういう理解で宜しいでしょうか?
それがやりたいならObjective-Cだよなぁ ・・・・ごめんできないと思うが断言できるほど自信はない ただ、Genericsでできたとしてもやらない方がいいと思う それが一部分なら呼び出したいメソッドをリフレクションで 呼び出すクラスを用意してラッピングしてやるのはいかがか?
> むしろ逆に、今までのJavaより細かく正確な型チェックをできるようにするものだ その理解で正しいんじゃないでしょうか。cast が減ってウハウハとか、そんなもんです。 C++のtemplateは本質的にマクロですが、Javaのgenericsはそうではありません。 T.hoge(); な呼び出しは C++ template においては A.hoge(); なり B.hoge(); なり置換されてからコンパイルされますが、 Java generics では T.hoge(); はどう頑張ってもコンパイルできません。 (A,B が hoge() を持つ共通の interface を実装していない限り。) Javaでやるなら 987 氏のようにリフレクションを使うか、 もしくはAdapterパターン
989 :
デフォルトの名無しさん :2007/02/02(金) 01:00:54
インターフェイスと抽象クラスの分かりやすいサンプルプログラム(きわめて単純なのもhogeとかfooでOK) ないですか?できるだけ正しく解説されているサイトをおしえてください。
>>959 そうなんですよ。読み込んだ時と同じ encoding で XML を再出力したかったんですが
API リファレンス読む限りじゃ該当機能はなさそうですよね。XML 宣言まで読み込んで
encoding を参照し、先読みした部分とそれ以降を SequenceInputStream で繋げる
ことにします。
>>989 javax.swing.ListModel
javax.swing.AbstractListModel
992 :
969 :2007/02/02(金) 11:54:46
ご回答ありがとうございます。またしてもご返事が遅れてすみません。 どうやら出来ないらしいということは分かりましたが、ワイルドカードについ ては少し釈然としない部分が残っています。もう少し検索したりして考えてみ ます。
993 :
デフォルトの名無しさん :2007/02/02(金) 12:33:31
メインメソッドの 〜main(String args[]) とかmain(String [] args) ってString形式の配列変数 args[] を引数に取るっていう意味ですか?
_____ / \__ 〃 | ̄ \____Φ| / ヾ \ | ● ● __  ̄ ̄ ̄ \ |____/ ▼ |\ 〃 ヾ | _人| | ___/ \ / | \ \ | ノ (__)
>>993 正確には、String[] という型のargsを引数に取る。
>>980 がいないようだから、次スレ立ててくる。
999 :
998 :2007/02/02(金) 13:46:50
/. ――┤. -=・=- -=・=- | | ∧ ∧{´ ◎ `}____( ´∀`)\ う \ ./(. = ,= | ∧∧ ∧_∧ | | ( ´ー`) ):::/´∀` ;:::: \ヽ(`Д´)ノ゛\ ま\ |||\┏┓/∫ (=゚ω゚)ノ~ ( ´Д`)// \ < .∧|∧ /::::::::::| .¶_¶. \い\ V/ ∧,,∧ ∬ 〜( x) / / ,一-、(´ー`) /:::::|::::::| (ΦдΦ)/~ \棒\ || ミ,,゚Д゚ノ,っ━~~ U U / /| / / ̄ l⊂ヽ \/|:::::::::|::::::| γ__ ∧w∧ 旦∬ 人 ミ ,,, ~,,,ノ .n THANK YOU 2ch ■■-っ ┌───────┐ \ ( ゚Д゚ )∩゛ ( ゚ー゚)と..ミ,,,/~),ヽ(凸)ノ~ and.. ´∀`/. | ● ● | ヽ ノ / ̄ ̄し'J\[Y] GOOD-BYE 2ch WORLD! /| .┌▽▽▽▽┐. |____|__||_| )) / ● ●、ヽ (. ┤ .| |. |□━□ ) (゚Д゚)? |Y Y \ またどこかで会おうね.. \. └△△△△┘. | J |)∧_∧ |.| | .▼ |∀゚) |\あ\ | ∀ ノ " , 、 ミ | \ /■\ _人 |∧∧∩゛∧_∧∩゛∧_∧ | \り.\ | - Å′ ゝ∀ く | ( ´∀`)___/( ゚Д゚.)'/ ( ´∀` )/ (・∀・ ),. |. \が\. | ). \ Λ_Λ \ ( O ) 冫、 U / ( / ⊂ ⊂.)ヽ(´ー`)ノ゛ \と.. ∧_∧/(´Д`;)<丶`∀´> |││ │ ` | | ∪ | | ( ( ( ( へ (゚д゚)〜⌒(゚ー゚*) (-_-) (・ω・` ) (_(__(__)(・∀・) ∪~∪ (_(__) (_(_) く ⊂⌒~⊃。Д。)⊃⊃⊃(∩∩)(∩ ∩)
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。