【初心者】Java質問・相談スレッド96【大歓迎】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。

前スレッド
【初心者】Java質問・相談スレッド95【大歓迎】
http://pc10.2ch.net/test/read.cgi/tech/1165813252/

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc10.2ch.net/hp/

次スレは>>980あたりで。
2デフォルトの名無しさん:2007/01/13(土) 17:53:14
ずるしてらくしてかれいに2げっとかしらかしら〜
3前スレの977:2007/01/13(土) 18:07:42
public S_T_A() {
addKeyListener(new Game());
・・・・
}
を追加してみたのですがうまくいきませんでした・・・
4デフォルトの名無しさん:2007/01/13(土) 18:15:03
とりあえずオレの環境でも動かしてみた。
Eclipseでやってみたがウィンドが表示されてどこで何を押そうが
Eclipseのコンソール上にはなにも表示されず。
当然ながらウィンド上も変化なし(これは当たりだし求められている機能ではないので問題ないが
何がわるいのかねぇ・・・

多分だけどウィンドが邪魔してるんじゃないかと思われる。
GUIをすべてカットしてCUIだけにすれば動きそうな気がするがそれじゃ意味ないしな

すまんが今すぐは答えられそうにないわ

つーか2chクソ重たい
5デフォルトの名無しさん:2007/01/13(土) 18:24:57
あー。
何か最初println("テスト")ってやってたのを
Printクラス使うように変えてるじゃん。
そのprintメソッド呼ぶようにしないと・・・。

Print print = new Print();
print.print();
6前スレの977:2007/01/13(土) 18:29:48
おぉ!!!
できた!
ホントに助かりました!
これで次の作業に進めます。
本当にありがとうございました。
そしてご迷惑をおかけして申し訳ありませんでした。
7デフォルトの名無しさん:2007/01/13(土) 18:37:01
おめっ
この調子だとこの先つまりまくるだろうから、どうしても助けが必要ならまたこいw
ま、がんばれよ
8デフォルトの名無しさん:2007/01/13(土) 18:39:25
gameの方もgame.init()呼び出さないとKeyListnerとして登録されないんじゃないの?
9デフォルトの名無しさん:2007/01/13(土) 18:41:30
前スレ993でS_T_Aの方で登録するように変更したのか。
992のソースしか見てなかったよ。
それにしてもひどいクラス設計だ。
10デフォルトの名無しさん:2007/01/13(土) 18:44:09
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29105
からなら
Print print = new Print();
print.print();

Game game = new Game();
game.init();
だけで済むぜい
11デフォルトの名無しさん:2007/01/13(土) 18:48:19
たぶんappletと勘違いしてる悪寒。
appletと違ってinitメソッドが自動的に呼ばれることはない。
初期化処理はコンストラクタに書くか、
コンストラクタに書くのはタイミング的に駄目なのならinitを自力で呼ぶか汁。
12前スレの977:2007/01/13(土) 18:48:51
ひどいクラス設計なのは・・・言わないでください・・・
本人も自覚しております
>>10を参考にいろいろいじってみます。
13デフォルトの名無しさん:2007/01/13(土) 18:50:53
いきなり色々と問題点が指摘されて本人パニくってそうだなw
14uchu: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();
}  }  });  }
15デフォルトの名無しさん:2007/01/13(土) 20:08:21
>>14
eventDispatch#run() はどこから呼び出されるんじゃろ。
Threadとは何なのかちゃんと分かってない希ガス。
SwingのTimerコンポーネントじゃダメなのかしらん。
16デフォルトの名無しさん:2007/01/13(土) 20:23:45
>>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
今、下記のHPを参考にメーラーを作っています。
新着メールは色を変えて表示するようにしたいのですが、どこをどういじればよいでしょうか
POP3クラスのメールが新規かどうか判断する部分と、MailShowクラスに何か追加すればよいとおもうのですが・・。
お願いします。
ttp://javadrive.at.infoseek.co.jp/javamail/mailer/
18デフォルトの名無しさん:2007/01/13(土) 21:15:05
>>17
Message#getFlags()→Flags#getSystemFlags()で取ったフラグの中に、
Flags.Flag.RECENTフラグがあるメールが新規メールだった気がする。
リンク先のソースを見ていないが、
メールを取ってきた時点で各メールのフラグを保存しておいて、
表示時にフラグを見て新規かどうかで色を変える、でいいんじゃないか?
19デフォルトの名無しさん:2007/01/13(土) 21:16:24
>>17
ぱっと見、メールの一覧は
JTable で実装されている感じですね。
見た目の変化に関しては
TableCellRenderer を自分で作る形になると思います。
2019:2007/01/13(土) 21:20:30
>>17>>19
あ、DefaultTableCellRenderer を使って
setForeground メソッドを呼び出せば簡単かな?
21uchu:2007/01/13(土) 21:57:41
>>16
スレッドは確かによくわかっていなかったので、使いたくなかったのだが
Timerという便利なものがあって助かりました。手持ちの本のswingの章には
Timerというものの記述が一切なかったもので。。
やりたかったのは、人間対コンピュータ(複数)のターン制のゲームで
コンピュータの処理が速すぎるので、適当に時間をとって、各コンピュータが
何をしたのかを一定時間表示したかったのです。
ありがとうございました。
ちなみに、add(t)を getContentPane().add(t)としてコンパイルできました。
2217:2007/01/13(土) 22:11:22
>>18-20
お二方ありがとうございます
早速やってみることにします
また何かありましたらお願いします
23uchu:2007/01/13(土) 22:41:02
>>16
追加です。やっぱり自分が実現したいことがこの方法では
実行できないようです。やりたいことは
(処理1:ある計算と、計算結果のテキストフィールドへの表示)
(処理2:1秒停止)
(処理3:別の計算と、計算結果のテキストフィールドへの表示)
のようなことです。処理2が終わる前に処理3が走ってしまうと
処理3の結果のみが見えて、その後1秒停止してしまうのですが
それを回避したいのです。
perlなら
処理1;
sleep(1);
処理2;
で済むのですが、javaではsleep(1)に対応するものは
どのように作るのでしょうか?それを勉強しているうちに
Threadに入り込んでしまったのですが。。
24デフォルトの名無しさん:2007/01/13(土) 22:51:08
>>23
どんなコード書いたらダメだったのさ。
25uchu: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秒とまるコードになって
しまうのです。
26デフォルトの名無しさん:2007/01/13(土) 23:17:25
それは>>14でやってたことだよね。
>>16氏の策は試してみなかったの?

timer = new Timer(1000, this);
ここが sleep(1) 相当の部分になるわけだけど。
27uchu: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ちゃんねるが閉鎖されるのに反対してください」と言ってください

どうかコピペして広い範囲に知らせてくれ。
29デフォルトの名無しさん:2007/01/14(日) 00:51:01
> 日時 2007年1月13日
もう終わってるねー
30デフォルトの名無しさん:2007/01/14(日) 01:17:48
>>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が固まるからだ。
31デフォルトの名無しさん:2007/01/14(日) 01:30:49
どうも。初心者です。
JDK5.0 Update10 インストールして、Pathの追加しようと思ったら追加ではなくて消してしまいました・・・。

どなたか、デフォルトの値がわかる方いませんでしょうか?

たしか、C:\WINDOWS・・・とあったような気がします。

ちなみにXP Homeです。
32デフォルトの名無しさん:2007/01/14(日) 01:35:36
スタート→コントロールパネル→システム→詳細設定→環境変数
33デフォルトの名無しさん:2007/01/14(日) 01:39:06
>>31
Javaっぽい話題と見せかけて実はスレ違いだ
とりあえず
C:\WINDOWS\system32;C:\WINDOWS
だけあれば動くんじゃないかい?
34デフォルトの名無しさん:2007/01/14(日) 01:43:11
あとC:\WINDOWS\System32\Wbemが必要かもしれん
3531: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つの資格どちらかを受けて合格した方が入らしゃいましたら私はこの参考書を使用しましたでお勧めの参考書がありましたら教えてください
40デフォルトの名無しさん:2007/01/14(日) 13:37:53
41デフォルトの名無しさん:2007/01/14(日) 14:58:49
すみません質問です。

SwingのJRadioButtonとJCheckBoxのテキストを表示する部分の幅と、
実際に表示されるテキスト(テキストが長すぎて入りきらない場合は省略されたテキスト)
を正確に取得したいのですが、よい方法はあるでしょうか?
JLabelとJButtonはSwingUtilities.layoutComponentLabelで正確に取得できるのですが、
JRadioButtonとJCheckBoxはあのチェックする場所があるせいか不正確な値が返ってきてしまいます。。。

よろしくお願いします。
42デフォルトの名無しさん:2007/01/14(日) 18:13:44
すみません、初心者なのですが、
バックグラウンドで作業中の時に砂時計とデフォルトがくっついたみたいの
カーソルが出ますよね。
それを非表示にしたいのですが、どうやっても出来ません。
相当、ぐぐったけど、答えが出てきませんでした。
どなたか、ご存知の方がいらっしゃったら、教えていただけませんか?
43デフォルトの名無しさん:2007/01/14(日) 18:22:37
>>27
そういうことで非表示にするのはなんだかなあ
44JAVAはじめました:2007/01/14(日) 18:38:34
すみません「jdk-1_5_0_09-nb-5_0-win-ml」というjavaソフトインストールしたのですが
PATHになんて書いたら言いかわかりませんXPです。わかる方教えてください。gooったのですが認識しません
45デフォルトの名無しさん:2007/01/14(日) 18:41:50
>>44
>>1にあるリンク先のwikiを見てから質問があればするように
46uchu: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
>>44

gooるなwgoogleれw
48デフォルトの名無しさん:2007/01/14(日) 20:28:15
appletのキャッシュが残ってたら、
サーバーに新しいクラスファイル置いても
ダウンロードしてくれない。

これ回避するには、ユーザにキャッシュ消してもらうしかない?

クラスファイルのタイムスタンプ見て、新しくなってれば取得しに行くとかいう
方法できないでしょうか?
49デフォルトの名無しさん:2007/01/14(日) 20:36:53
ファイル入出力についての質問です。

配列を指定して
int[] A = {10
12
14};
読み込むファイル名を『10.txt』『12.txt』『14.txt』としたいのですが、
『A[i].txt』でiについて繰り返して行きたいのですが、このような事ってできませんか?
また、何かよい方法があれば教えて下さい
50デフォルトの名無しさん:2007/01/14(日) 20:39:14
imonaでやったのでカンマ無くなってしまいました。正しくは、
int[] A = {10、12、14};
です。
51デフォルトの名無しさん:2007/01/14(日) 20:44:46
ファイル名をA[i]+".txt"としてやればいい
52デフォルトの名無しさん:2007/01/14(日) 20:55:50
>>51
ありがとうございます
53デフォルトの名無しさん:2007/01/14(日) 21:26:21
>>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の解説サイトでも無名クラス使ってるところは多いので
覚えとくと何かと役に立つ。
5446:2007/01/14(日) 23:13:18
>>53
調子に乗らなくていいです><
55デフォルトの名無しさん:2007/01/14(日) 23:15:41
ちょ・・・
56デフォルトの名無しさん:2007/01/14(日) 23:36:51
二次元配列の添字が範囲内にあるかどうかを
調べるとき,
普通に2つの添字の範囲を調べるのと
実際にアクセスしてArrayIndexOutOfBoundsExceptionが起こるかどうかを
調べるのでは,
やはり上の方法の方が実行時間,使用メモリの両方の観点から言って
優れた方法だと言えるのでしょうか?
57デフォルトの名無しさん:2007/01/15(月) 00:44:44
ちゃんと文法通りにコンストラクタ書いてるのに")"とか";"がありませんって言われてコンパイルとおらないんですが何が悪いんでしょうか?
58デフォルトの名無しさん:2007/01/15(月) 00:49:19
>>56
ArrayIndexOutOfBoundsExceptionをcatchするのが一般的でしょう
59デフォルトの名無しさん:2007/01/15(月) 00:50:14
>>57
javacを最新に物に変えてください
60デフォルトの名無しさん:2007/01/15(月) 01:00:05
")"とか";"がありませんってここに書かないとわからんのかw
61デフォルトの名無しさん:2007/01/15(月) 02:17:41
Eclipse使ってないの?
62デフォルトの名無しさん:2007/01/15(月) 05:26:59
>>58
ちょ、RuntimeException を catch するは一般的じゃないでしょ。
ArrayIndexOutOfBoundsException なんてのは RuntimeException なので普通、処理内で受け取る
ようなことはしない。
>>56 のように調べたかったら、length と比較するほうが一般的。
63デフォルトの名無しさん:2007/01/15(月) 11:37:30
>>56
作ってるのがライブラリなら例外投げるように作ることもあるかも。

>>57
エラーメッセージは自分の解釈ではなくjavacの出力を略さず書いて。
64デフォルトの名無しさん:2007/01/15(月) 13:23:21
基礎からのサーブレット/JSPを読んでるのですが
その最初の方のおみくじを作るところで
別ファイルにあるクラスを
Hoge hoge=new Hoge();
ってインスタンス化してるんですけど、importしなくても出来るんでしたっけ?
例えば、ファイル名とクラス名が同じで、クラスパスが通ってたら、importしなくてもOKとかありました?
家かえって試せばいい良いでしょうけど、会社行きがけの電車で読んだら、気になって、気になって。

もしかして誤植でしょうか?

お願いいたします
65デフォルトの名無しさん:2007/01/15(月) 13:33:26
java初心者なんです宜しくお願いします。

今、逆コンパイルしたいのですが何か良い
逆コンパイラーは、ありますか?

2つのディレクトリーを逆コンパイルして
ソースの比較をしたいのですが、
階層になってるものをいっきに逆コンパイルできる
ものってありますか?

出来ればそのコンパイラーの使い方の載ってるURLも
あると嬉しいです。

お願いします。
66デフォルトの名無しさん:2007/01/15(月) 13:36:34
>>64
importって何のために書くのか。
Servlet以前に基本文法から勉強し直せ。
67デフォルトの名無しさん:2007/01/15(月) 13:51:45
68デフォルトの名無しさん:2007/01/15(月) 16:08:04
>>64
クラスパスがとおっているならimportは不要ですよ
69デフォルトの名無しさん:2007/01/15(月) 16:14:35
>>64
packageはどうなってるのよ?
70デフォルトの名無しさん:2007/01/15(月) 16:28:46
> クラスパスがとおっているならimportは不要ですよ
……
71デフォルトの名無しさん:2007/01/15(月) 18:00:56
今、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が存在するはずがないので正しい動きな
のですが、このときだけフィルタを動かさないとかってできる
もんですか?
72デフォルトの名無しさん:2007/01/15(月) 18:04:13
>>64
Java(サーブレット含む)の場合、同一パッケージのクラスならimport不要。
それ以外はimport必要。
JSPでは、必ずインポートすること。
なお、無名パッケージのクラスはJSPから使えないので、必ずパッケージを付けるように。

>>68
まれにおかしいのが湧くな。
73デフォルトの名無しさん:2007/01/15(月) 18:10:33
>>71
簡単ですよ!
74デフォルトの名無しさん:2007/01/15(月) 18:20:25
>>71
認証が必要なアクションと不要なアクションでURLを分けるとか。
認証が必要なら、/auth/*.do
認証が不要なら、/notauth/*.do
みたいに。で、フィルタは/auth/*.doに対して設定するとかどう?
75デフォルトの名無しさん:2007/01/15(月) 18:29:43
>>74
>みたいに。で、フィルタは/auth/*.doに対して設定するとかどう?
できるわけねーだろ。ヴァカ。
7674:2007/01/15(月) 18:50:23
うげ、ホントだ。
/notauth/*か*.doはできても、/notauth/*.doは無理なんだ。
スマンカッタ…
77デフォルトの名無しさん:2007/01/15(月) 19:41:14
>>74
まれにおかしいのが湧くな。
78デフォルトの名無しさん:2007/01/15(月) 19:46:34
png形式のファイルをBufferedImageクラスに読み込んで、画像中の一部を新たなpngファイルとして保存したいのですが、
可能でしょうか?
79デフォルトの名無しさん:2007/01/15(月) 19:59:48
BufferedImage#getSubimage

ImageIO.write
で幸せになるがいい。
80デフォルトの名無しさん:2007/01/15(月) 20:48:19
データベースをcsv文書形式にして、
javaでそのcsv文書にアクセスしてID等から該当するデータベースの情報を表示させることって可能ですか?
81デフォルトの名無しさん:2007/01/15(月) 20:52:12
それJava関係ないだろ
82デフォルトの名無しさん:2007/01/15(月) 21:02:04
javaではできないですか?
83デフォルトの名無しさん:2007/01/15(月) 21:04:11
csv文書が作れるか? yes
データベースにアクセスできるか? yes
csv文書にアクセスして(略? それJava関係ない
84デフォルトの名無しさん:2007/01/15(月) 21:06:38
ウェブアプリケーションとか作るときにデータベースとの連携がどうしても必要になると思うんですが。
それって何を勉強すればいいんですかね?
85デフォルトの名無しさん:2007/01/15(月) 21:21:40
ググれば?究極的にFAQだよ。
86デフォルトの名無しさん:2007/01/15(月) 21:22:13
そこでさらっと答えを書く人があらわれる、という展開・・
87デフォルトの名無しさん:2007/01/15(月) 21:31:00
Javaのアプリ作成し、バッチファイルで呼び出そうとしているのですが
ショートカットのアイコン画像の指定の仕方が分かりません。
できればWindowsのコマンドがあればいいのですが・・・
分かる方がいれば教えてください
88デフォルトの名無しさん:2007/01/15(月) 21:31:56
純正ではない、exewrapだったかをぐぐりなさい
89デフォルトの名無しさん:2007/01/15(月) 21:40:28
>88
とりあえずexewrapを使ってみます(純正も何も使ったこと無かったので・・・ 
JBuilderのexeファイルを生成のものを使っていたのですが、アイコン画像の指定方法が
わからなかったのでこっちはアイコン指定があるようですね。
ありがとうございました。
90デフォルトの名無しさん:2007/01/15(月) 21:45:41
埋め込み色の強くないexeを作ろうかと思ってる。
アイコンリソースを動的に変える方法を調べれば直ぐかもだが。
9164:2007/01/15(月) 23:08:49
>>68
>>69
>>72
レスありがとうございます。

>>72
なるほど勉強になりました。
というか、そうだと思ってたんですけど、パッケージの宣言もimportも書いてなくて
不思議に思ったんです。で、よくよく読み直してみたら、コンパイルするときに
javac -sourcepath 〜
とオプションをつけていました。
何でもパッケージが違うクラスもコンパイルできるオプションとか…
OTZ
バスに揺られて読んでたので見逃したみたいです(言い訳.汗)
お騒がせ&ありがとうでした。
92デフォルトの名無しさん:2007/01/15(月) 23:35:45
↓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
IP抜かれるぞ
94デフォルトの名無しさん:2007/01/16(火) 00:50:37
>>92
ランタイムが更新されてないかを調べに行ってる。
コントロールパネルのJavaの設定で
アップデートの自動チェック外せば出なくなろう。
95デフォルトの名無しさん:2007/01/16(火) 01:02:05
>>94
おーーーーありがとうござります。
96デフォルトの名無しさん:2007/01/16(火) 02:02:40
java6.0でソースを動的にコンパイルしたいのですが、既存のソースを
読み込んでコンパイルすることには成功したのですが、文字列からコンパイル
することができません。どなたか方法を教えてください。
97ぴゅあ:2007/01/16(火) 02:12:14
一度その文字列をファイルに書き出せばコンパイルできますよ。
FileWrierなどでググってみては?
98デフォルトの名無しさん:2007/01/16(火) 02:15:29
>>96
自分で JavaFileObject を実装して JavaCompiler.getTask に突っ込め。
海外も含めて探せば誰かが StringJavaFileObject とか作ってるんじゃないかと思うけど。
99デフォルトの名無しさん:2007/01/16(火) 02:50:11
外国は情報はあるんですが、BETAのころのコードでリリースされたものがないんですよね〜。
めげずに探してみます。
100デフォルトの名無しさん:2007/01/16(火) 03:06:38
101デフォルトの名無しさん:2007/01/16(火) 03:13:23
JEditorPaneで簡易ブラウザを作ろうと思っているのですが、HTMLがまともに表示されないために困っています。
なにか改善する方法はないのでしょうか?
102デフォルトの名無しさん:2007/01/16(火) 03:48:53
たしか対応規格がHTML3.2止まりだし、本格的なHTMLレンダラとしての
性能は期待しないほうがいい。

プラットフォームごとに
https://jdic.dev.java.net/
http://sourceforge.net/projects/webkitjava/
などを利用するのが無難。
103デフォルトの名無しさん:2007/01/16(火) 08:06:01
まだ1ヶ月しかやってないが。
javaって、、win上じゃあんまり意味ない気がしてきました。
だいたいwin版でならいろんな便利なソフトがいくらでも出ているし。
104デフォルトの名無しさん:2007/01/16(火) 10:37:38
tomcatを起動して、そのパソコンからhttp://localhost:8080/test/a.htmlを指定するときちんと見れるのですが
外部のパソコンからhttp://(tomcatのpcのipアドレス):8080/test/a.htmlと指定してもつながりません。
apacheと連携させなくても、tomcat単体でサーバーとしての機能は(弱いながらも)あると思うのですが。
これはどこがおかしいのでしょうか?
105デフォルトの名無しさん:2007/01/16(火) 11:25:51
1.windowsのファイヤーウォール関係か
2.プロキシサーバーを利用してるから
クライアント → プロキシサーバー → Tomcatを起動してるパソコンのアクセスが、できない。

2の場合は、クライアントのIEの
[ツール]-[インターネットオプション]-[接続]-[LANの設定]-[詳細設定]
で例外のとこにTomcatを起動してるパソコンのIPアドレスを書く。
もしくは、手っ取り早くプロキシを無効にする。
106デフォルトの名無しさん:2007/01/16(火) 11:27:57
>104
ちょっと修正

1.windowsのファイヤーウォール関係
2.プロキシサーバーを利用していて
  クライアント => プロキシサーバー => Tomcatを起動してるパソコンのアクセスが、できない。

2の場合は、クライアントのIEの
[ツール]-[インターネットオプション]-[接続]-[LANの設定]-[詳細設定]
で例外のとこにTomcatを起動してるパソコンのIPアドレスを書く。
もしくは、手っ取り早くプロキシを無効にする。

多分2な気がする。
107デフォルトの名無しさん:2007/01/16(火) 11:57:23
どっちみちJavaの質問じゃないなあ。
108デフォルトの名無しさん:2007/01/16(火) 13:09:50
できるだけ上位のプロファイルのJavaが使える
PDAって何でしょうか。JDK1.1レベルはそろそろキツイ・・・
109デフォルトの名無しさん:2007/01/16(火) 14:13:48
スレッド関して質問です
複数のスレッドを(メイン+サブスレッド×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
}
}

でよいのでしょうか?
110デフォルトの名無しさん:2007/01/16(火) 14:20:16
それで合ってるけど class のスコープとかデフォルトで良いの?
111デフォルトの名無しさん:2007/01/16(火) 14:55:28
>>110
はい、大丈夫です
112デフォルトの名無しさん:2007/01/16(火) 15:07:34
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が一桁しか入らずに空白が入ってしまいます。
113デフォルトの名無しさん:2007/01/16(火) 15:08:51
0x%02x

114デフォルトの名無しさん:2007/01/16(火) 16:38:23
ウィンド上に画像を表示する場合
どのような命令でどう書けば軽くなりますか?
静止画の場合ダフルバッファリングはしなくてもいいのでしょうか?
115デフォルトの名無しさん:2007/01/16(火) 17:30:17
横にスクロールバーが付いたテキストエリアを作って
テキストエリアに文字を書き込んでいっていっぱいになったとき
自動で最下行に新しく書き込まれた文字を表示するようにスクロールバーを下端に固定するようにするにはどう
116デフォルトの名無しさん:2007/01/16(火) 18:48:21
イベント取って移動させれば?
イベント・ディスパッチ・スレッド内で動かすようにね。
117 :2007/01/16(火) 20:43:35
>>113
ありがとうございました!
118デフォルトの名無しさん:2007/01/16(火) 20:48:24
>>106
(・∀・)アリガトン!
ファイヤーウォールで例外設定したらできました!
119デフォルトの名無しさん:2007/01/16(火) 21:21:37
宿題スレでは違ったようなのでこちらで質問させていただきます。
java初心者の質問ですがお願いします。
JBuilderでアプリケーションの作成をしています。
画面が2つあり、片方の画面のコンボボックスに数種類の色のリストを
作り、それを選ぶともう片方の画面の背景色が変わるという
実装をしたいのですが、色の変わるほうの画面のインスタンスを
作成せずにメソッドを実行するにはどうすればいいでしょうか?
コンボボックスを選んだときに片方の画面のクラスにデータを
渡し、実行するやり方などがしりたいです。
120デフォルトの名無しさん:2007/01/16(火) 22:10:36
何方かjavaを学べるサイトって知っている方いますか?もしご存知の方がいらっしゃいましたら教えてください><;
121デフォルトの名無しさん:2007/01/16(火) 22:25:45
>>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);
       }

よろしくお願いします
123デフォルトの名無しさん:2007/01/16(火) 23:06:27
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()を使えば計測できますが
この方法では他に思い処理を行っている際は正確な数値を導き出せません。
そこであるプロセスだけにかかった時間を求めたいのですが
どのクラスのどのメソッドを使えば求められるでしょうか?
127デフォルトの名無しさん:2007/01/17(水) 08:22:25
プロファイラで探してみそ
128デフォルトの名無しさん:2007/01/17(水) 08:32:40
仕事でJavaを使ってますが、わからないことがあります。
servletのフィルターにて、リクエストとレスポンスを生のコードのまま残したいのですが、
リクエストはオブジェクトのメソッドから再構築するとしても、
レスポンスのデータがどうしても取り出せません。
レスポンスのメソッドはsetterがほとんどでOutputStreamくらいしか取得できません。
ヘッダーなどのコンテナがレスポンスに書く情報も取得したいので、サーバアプリケーションの
値がレスポンスに書き込む情報だけ書くのでは不十分なのですが、
どなたか良い解決法をご存じないでしょうか?
129デフォルトの名無しさん:2007/01/17(水) 10:10:49
ファイルやフォルダのコピー操作を行っているのですが
フォルダ(とその下位下層の)コピーは一度バッファや
一時ファイルに保存して移動する方法以外ありませんか?
130デフォルトの名無しさん:2007/01/17(水) 12:27:12
>>128
自サーバー内に、もう一つ別のWebアプリを立ち上げて
間に挟めばよろしいかと・・・・

元アプリ

別アプリ → レスポンスのバイナリ保存

クライアント
131デフォルトの名無しさん:2007/01/17(水) 13:17:11
javaのアプレット形式のやつでリストボックス チェックボックスを使用するプログラムを作成したいんですがどのようにやればいいのか何方か教えていただけませんか?
132デフォルトの名無しさん:2007/01/17(水) 14:01:58
MainPanelクラスからクラスAへ(値の受け渡しなし)
クラスBからクラスBで作られた値をもってクラスCへ
クラスCから値を持ってMainPanelのクラスAへnewしたあとから処理開始って感じにしたいのですがどうすればいいでしょうか
133デフォルトの名無しさん:2007/01/17(水) 14:41:42
>>131
マルチ乙
134デフォルトの名無しさん:2007/01/17(水) 14:55:06
>>132
多少冗長でもいいから、もう少し分かりやすく書けそう?
例えば「何を」newした後なのかとかが分からない。
135デフォルトの名無しさん:2007/01/17(水) 15:00:08
>>129
ttp://jakarta.apache.org/commons/io/apidocs/org/apache/commons/io/FileUtils.html
129の要求がライブラリの実装にまで縛りをかけてるのなら当てはまらないかもしれんが
136デフォルトの名無しさん:2007/01/17(水) 16:11:28
>>135
ありがとうございます
処理はどうなっているんだろ・・・
137デフォルトの名無しさん:2007/01/17(水) 16:12:31
>>136
ソース見れば?
138デフォルトの名無しさん:2007/01/17(水) 16:41:29
質問です
ハッシュ法でデータを振り分けるときに
バケットサイズを素数にする理由って何ですか?
139デフォルトの名無しさん:2007/01/17(水) 16:55:05
>>138
実験的に、よくあるハッシュ関数ではテーブルサイズを素数にすると乱雑な入力データに対して性能がいい=バラけるから。
ハッシュ表の適正なサイズはハッシュ関数及び入力データと密接な関係があるので、
どんな状況に対してもテーブルサイズが素数であった方がよいとは言い切れない。
自分が使っているハッシュ関数とデータに対して、いろいろなサイズで実際に性能実験して確かめてみるのがよい。
てか、javaの質問じゃないだろ、これ
140デフォルトの名無しさん:2007/01/17(水) 16:59:00
>>138
ハッシュ値から格納位置(数値)を求める時に、
高速なビットマスク及びビットシフトで演算できる様にする為です
141デフォルトの名無しさん:2007/01/17(水) 17:05:52
サイズが2のべき乗だと高速に演算できるね
142138:2007/01/17(水) 18:13:37
>>139-141
即レスありがとうございます
よく見たら下のような文がくっついてました

「再ハッシュとの兼ね合いから、オープンアドレス法では
バケットの個数B(=ハッシュ表の大きさ)は素数、
あるいは2^n−1(2のn乗−1,nは整数)といった数にするのが望ましいとされています。」

こういう条件下ではほかに理由がありますか?
143デフォルトの名無しさん:2007/01/17(水) 18:41:50
オープンアドレス法だからというより、
整数キーの場合にハッシュ表のサイズを法とするキーの剰余でハッシュ値とする方法を使うのなら、
サイズが素数でないときはキーの全ての情報がハッシュ値に反映されなくなるからハッシュ性能が悪くなる。
2^nなんて最悪。よく使われるのは素数や2^n±1。
2^n±1はそれが素数の時でも素数でないときでも>>140のいうように一般の素数よりも高速演算できる。
144デフォルトの名無しさん:2007/01/17(水) 18:51:36
Struts使って開発してます。
今、1つのフォームに対して複数のサブミットボタンが
存在する画面を作ってるんですが、LookupDispatchAction
を使って処理を分けるところまでうまくいきました。

が、1つのフォーム内で同じラベルのボタンが複数ある場合
はどうすればいいんでしょうか?(削除ボタンが複数あるとか)

どうか、よろしくお願いします。
145デフォルトの名無しさん:2007/01/17(水) 19:37:56
>>134
すみません。説明がアバウトでしたね
質問後自己解決しました
お騒がせしました
146デフォルトの名無しさん:2007/01/17(水) 20:15:02
ぐぐってもwiki見てもいまいちよくわからないので質問させてもらいますが
javaで透明なレイヤを何枚も重ねて表示する方法ってありますか?

パズルのようなものを作ろうとしているのですが
背景の画像も変化させ、落とすブロックも移動させる必要があるので
透過レイヤーのような手法を取るのが一番と思ったのですが
どうもその方法がわからないので、用いたらよいクラスなどあればお願いします
147デフォルトの名無しさん:2007/01/17(水) 20:35:50
JLayeredPane
148デフォルトの名無しさん:2007/01/17(水) 20:42:04
ありがとうございます
参考にしてそのあたりのクラス詳しく調べてみます
149デフォルトの名無しさん:2007/01/17(水) 21:16:28
素人ですが

System.out.println("体重" + a[i][0] + "で" + "身長" + a[i][1]);

               でエラーがでます。どこがいけないのでしょうか?

体重a[i][0]で身長a[i][1]と書いているつもりなんですけど…
150デフォルトの名無しさん:2007/01/17(水) 21:27:47
>>149
そのaという変数の型は何?
あと、出たエラーメッセージを書いた方が回答がスムーズになるよ。
エラーメッセージはデバッグでの重要な情報源だ。情報を小出しにしてはいけない。
151デフォルトの名無しさん:2007/01/17(水) 21:31:46
> でエラーがでます。どこがいけないのでしょうか?
きみの頭、以外に返答のしようがないぞ。
152デフォルトの名無しさん:2007/01/17(水) 22:52:19
これなんでエラーになるの?
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(){}
}
153デフォルトの名無しさん:2007/01/17(水) 22:55:03
void
154デフォルトの名無しさん:2007/01/17(水) 22:55:13
>>152
Aに引数0個のコンストラクタがあるって保証が無いから。
155デフォルトの名無しさん:2007/01/17(水) 23:00:08
デフォルトコンストラクタでは納得してくれないのか・・・
つーことは>>152の書き方のような特定クラスを継承した「何か」のクラス
の実体を生成することは出来ないということなのか??
156デフォルトの名無しさん:2007/01/17(水) 23:06:11
> デフォルトコンストラクタでは納得してくれないのか・・・
とりあえず言語規定読んで来い。

> 特定クラスを継承した「何か」のクラスの実体を生成すること
コンストラクタの引数で Factory<A> みたいのを実装したクラスのインスタンスを渡してやるとか。
157デフォルトの名無しさん:2007/01/17(水) 23:12:07
>>155
もっとも、Factory<A> を渡すより、A のインスタンス渡しちゃった方が早いけど。
158デフォルトの名無しさん:2007/01/17(水) 23:12:54
>>155
template<typenmae A>class CA{
public:CA(){
A a = new A();
}
};
159デフォルトの名無しさん:2007/01/17(水) 23:22:25
>>158
C++のtemplateとはかなり違うモノのようですね。
つか明示的に継承元クラス記述してるんだからそこはコンパイラが
そこかとなく察してくれてもよさそうなものだが。
160デフォルトの名無しさん:2007/01/17(水) 23:25:53
> つか明示的に継承元クラス記述してるんだから
継承先で、どんなコンストラクタを定義しようが自由な言語なので無理。
161デフォルトの名無しさん:2007/01/17(水) 23:36:52
javaのgenericsとc++のtemplateは全く別物だ。
言語仕様を理解せずに使うと火傷するよ。
162149です:2007/01/17(水) 23:43:00
>>149です

System.out.println("体重" + a[i][0] + "で" + "身長" + a[i][1]);

               でエラーがでます。どこがいけないのでしょうか?

体重a[i][0]で身長a[i][1]と書いているつもりなんですけど…
ちなみに変数aはint メッセージは¥12288不正な文字ですとでます。
 一つ前のSystem.out.printlnはクリアできたのですが…どうぞお願いします。
163デフォルトの名無しさん:2007/01/17(水) 23:44:45
>>162
ヒント:全角スペース
164デフォルトの名無しさん:2007/01/17(水) 23:45:48
> ¥12288不正な文字
全角空白消せ。
165デフォルトの名無しさん:2007/01/18(木) 00:08:42
>>162
これからは質問する前に>>1を見ることだな
FAQもいいところだ
166149です:2007/01/18(木) 00:17:30
ありがとう、全角スペースも駄目なんだ…あまり文字の全角半角は気をつけてたけど、スペースまでは目が行かなかったです。
ありがとう、早く皆さんをうならせる質問したいです。では
167デフォルトの名無しさん:2007/01/18(木) 00:45:52
質問です。
コンソールから入力した文字列(Stringオブジェクト)を
1文字ずつchar配列に格納する方法がありましたら教えてください。

168デフォルトの名無しさん:2007/01/18(木) 00:50:48
>>167
char[] array = "文字列".toCharArray()
169デフォルトの名無しさん:2007/01/18(木) 00:54:34
配列ではなく、単にインデックスアクセスしたいだけなら
String#charAt(int index)でもいいよ。

どうでもいいけど#charAtって何か遅いね
長い文字列だと#toCharArray経由の方が速いときがある。
170167:2007/01/18(木) 01:26:03
>>168, 169
そんなメソッドがあったんですね。勉強不足でした。
回答ありがとうございました。
171デフォルトの名無しさん:2007/01/18(木) 01:43:59
質問です。
java.net.Socket;を利用するのですが
Socket sock = new Socket();としましてこの場合のsockの初期値はどうなるのでしょうか?
またsock.close();した後のsockの中身はどうなってるのでしょうか?

ソケットが閉じている際にソケットを開くということをしたいのです。
if(sock.equals(null)) sock = new sock(target, port);

では正常に動作してくれませんでした。
よろしくお願いします。
172デフォルトの名無しさん:2007/01/18(木) 02:07:26
aSocket.isClosed()
173デフォルトの名無しさん:2007/01/18(木) 02:08:06
>>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()で作成されるのは接続されていないソケット。
174デフォルトの名無しさん:2007/01/18(木) 02:08:33
> この場合のsockの初期値
まだ、どこにも接続されてない状態の Socket のインスタンス。
connect とかで接続先決めろ。

> sock.close();した後のsockの中身
close() されて使えなくなった状態の Socket のインスタンス。

> sock.equals(null)
たぶん、常に false が返る。

> new sock(target, port);
sock ってクラスが無いならコンパイル時エラー
175デフォルトの名無しさん:2007/01/18(木) 02:24:48
>166
大丈夫だ、もう十分うならせてる。
176デフォルトの名無しさん:2007/01/18(木) 02:44:35
>>173,174
レスありがとうございます。
if (sock.isClosed()) sock = new Socket(host, port);
でもうまく行かないようです。

new sock(target, port)はnew Socket(target, port)の間違いでした。

実際はメールサーバに問い合わせてリストを表示メールの内容を表示というものを作っているのですが
接続>リスト>切断>接続>内容表示>切断
という具合にやるようなのですがどうにもうまく行きません。
リストの表示までは行くのですが内容表示の際に
java.net.SocketException の例外が出てしまい内容は Socket:closed の様なものです。
newでインスタンス化しているので同じソケットを使ってはいけないということはないですよね?
177デフォルトの名無しさん:2007/01/18(木) 03:23:47
>>176
見当違いかもしれないけど、短時間で再接続しようとすると、
以前の接続がタイムアウト状態のまま残っていることがあって、
接続できない場合があったような気も。
メールサーバとのやり取りで、いちいち切断せずに、
LISTとRETRを同じセッションでやれるようには変更できないの?
178デフォルトの名無しさん:2007/01/18(木) 03:56:57
同じセッションでやれるようには変更できないの?って聞いたんだが、
LISTとRETRは同じセッションでやるべき気がする。
POP系のプロトコルを使ってるんだと思うけど、
LISTで取ったリストは正確にはそのセッション中でしか有効ではないので、
USER+PASS(APOP)→LIST→RETR→DELE→RETR→DELE……→QUIT
を途中切断無しの1セッションでメーラーは行ってると思う。
途中で切れたらLISTからやり直し。
179デフォルトの名無しさん:2007/01/18(木) 08:24:29
>>177,178
レスありがとうございます。
自分のは学校の課題なのですが例がありましてそれだとLISTで一度socket.close();
をしてその後にもう一度ソケットを開いてRETRをするというようになってます。

それは全部メインメソッドに詰まってるので自分は設計しなおしてクラス分けをして今作っているのですよね。
一連の動作として考えればいいのですか。
参考になります、今は時間がないので後で試してみますね。

現状の新しい問題ですとRETRで繋がった場合にメールの閲覧ができないという状況に陥って困ってます。
手動でtelnetでやった場合には問題がないのでプログラムの問題だと思われます。
180デフォルトの名無しさん:2007/01/18(木) 11:05:18
ttp://mindbluff.com/necker.htm

の じゃばすぷりくと の保存方法おしえてください。
181名無し募集中。。。:2007/01/18(木) 11:22:17
>>180
失せろ
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
わしを誰やおもとんじゃ!ボケェ
187デフォルトの名無しさん:2007/01/18(木) 12:15:07
ヲイヲイ、変なのが二匹湧いたぞwww
188180:2007/01/18(木) 12:18:06
やめてください ぼくだと思われるじゃないですか。
189U-名無しさん:2007/01/18(木) 12:19:55
>>188
だから失せろ
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!は不可能なんでしょうか?

長々とすいません!それも超初心者で。
教えて頂ける神様みたいな人、何卒よろしくお願いいたします。
193デフォルトの名無しさん:2007/01/18(木) 14:21:30
194デフォルトの名無しさん:2007/01/18(木) 14:29:50
>>192
>ただ今転職活動中でして、旅行業界から
>Java・プログラムの道へ進みたいと考えてます。

えーっと、ここはJavaの質問相談スレだっけ?
今度のご相談はコレ、ね。

わるいことはいわない。辞めておけ。
技術がないのに転職するなんて狂気の沙汰だ。

趣味でやってたプログラミングを仕事にしようとかいう
意気込みならともかく・・・・
しかもPC買う気もなく投資する気もないときたら・・・

最後に、これコピペならスマン>>all
195デフォルトの名無しさん:2007/01/18(木) 14:32:22
>>192
JDKの場所が同じなら使えるかもしれないが・・・
その質問は素人以前でjava入門以前だ。
プロ目指すなら自宅にjava用のPCぐらいは買っておけ。
本気で技術者目指すなら損にはならないはずだ。
196デフォルトの名無しさん:2007/01/18(木) 14:33:35
>>192
漫画喫茶は利用した事がないから分からないけど
クラスパスを設定するbatファイル、及びJDKをCDに焼いておくと
次に使うとき迅速に作業を開始できるかもね。
(漫画喫茶のPCってCDから何かをインストールする事は可能なのか知らない)
197ネカフェからJava勉強中:2007/01/18(木) 15:03:17
>>194
コピペではないです(汗

>>195
はい!バイトに励みたいと思います!

>>196
パスを設定するファイルもあるんですね!驚
今度試してみます!

皆様、超初心者相手にアドヴァイスありがとうございましたm(--)m
198デフォルトの名無しさん:2007/01/18(木) 15:21:07
>>197
パスを設定するファイルっつーか・・・コマンドです。
199デフォルトの名無しさん:2007/01/18(木) 15:26:30
>>198
俺は取りあえずうちの会社に入ってこないことだけを祈っておくよ
200ネカフェからJava勉強中:2007/01/18(木) 15:30:36
>>198

m(--)m
201ネカフェからJava勉強中:2007/01/18(木) 15:31:32
間違えました。
>>199さんに m(--)m
202ネカフェからJava勉強中:2007/01/18(木) 15:34:25
>>199
WEB製作系の会社を狙っています。
203デフォルトの名無しさん:2007/01/18(木) 17:51:12
>>199
そう?俺は勉強熱心で感心だと思うよ。
新卒扱いで入ってきたら歓迎かな。
中途扱いで入ってきたら殺るね。
204デフォルトの名無しさん:2007/01/18(木) 18:44:33
クラスパス(環境変数?)について、質問です。

Helloを表示するプログラムで、クラスパスに関するエラーはFAQで解決できたのですが
>set CLASSPATH=%CLASSPATH%;.
というコマンドを、毎回入力しなくて済むようにするには、どうすればいいのでしょうか?


環境変数に、カレントディレクトリを追加すれば良いと、FAQに書いてあったのですが
リンク先>http://www.gimlay.org/~javafaq/S004.htmlがNotFundでした
設定の仕方を教えていただけないでしょうか。
よろしくお願いします。
205デフォルトの名無しさん:2007/01/18(木) 18:51:27
>>1
206デフォルトの名無しさん:2007/01/18(木) 19:02:40
[マイ コンピュータ]-[右クリック]-[プロパティ]-[詳細設定]ページ-[環境変数(N)]-[システム環境変数(S)]

[変数]に"CLASSPATH"があれば
[編集(I)]ボタン-[変数値(V)]の末尾に ";." を追加する。

[変数]に"CLASSPATH"がなければ
[新規(W)]ボタン
* [変数名(N)]に"CLASSPATH" を入力する。
* [変数値(V)]の末尾に "." を追加する。
207204:2007/01/18(木) 19:13:37
>>206
無事に設定することができました!
ありがとうございますm(_ _)m
208デフォルトの名無しさん:2007/01/18(木) 21:10:43
swingで作ったjButtonでキーイベントを取得するのに
getKeyCodeで半角/全角キーを判断する方法ってありますか?
半角/全角キーではキーイベントが発生しないというのをみたのですが、
教えてくれる方よろしくお願いします。
209デフォルトの名無しさん:2007/01/18(木) 22:06:50
KeyEventを拾ったときにその中身を表示してみるプログラムを作ってみれば
自分で確認できるね。
210デフォルトの名無しさん:2007/01/18(木) 23:07:27
JGraph5.9に慣れるためにいろいろ試してる最中なんですが
直線とかのセルをクリックしたときの動作を変えることってできますか?
例えばDefaultGraphCellで作ったセルをダブルクリックしてみるとテキスト入力フォーム出るのを
新しいウィンドウが開くとかの動作に変えてみたいんですが…
211デフォルトの名無しさん:2007/01/18(木) 23:22:26
>>210
付属のサンプルにそんなのあったよ。デフォルトの動作の代わりにJDialog表示するやつ。
212デフォルトの名無しさん:2007/01/18(木) 23:35:27
thisについて、わかりやすく書いているサイトがあったら教えてくだせえ、、
213デフォルトの名無しさん:2007/01/18(木) 23:37:24
>>211
サンプル探したところEditorGraphというサンプルにまったくおっしゃるとおりのものがありましたよw
BasicGraphUIを継承してcreateEditDialogというのをオーバーライドすればよさげなので
これでやってみます!

ありがとうございました!
214デフォルトの名無しさん:2007/01/18(木) 23:37:24
もしくはわかりやすく教えてください。。
215デフォルトの名無しさん:2007/01/18(木) 23:40:57
>>214
自インスタンスのこと。
216デフォルトの名無しさん:2007/01/19(金) 00:01:03
自とは、、
グループ内のという意味ですか?
217デフォルトの名無しさん:2007/01/19(金) 00:03:23
自分
218デフォルトの名無しさん:2007/01/19(金) 00:13:12
"Java this" もしくは "Java thisキーワード" でぐぐったら色々あるじゃん
219デフォルトの名無しさん:2007/01/19(金) 00:33:54
>>216みたいな、突拍子もない脳内自動変換フィルタを実装している奴は、
どんなわかりやすい説明を聞いてもトンデモな方向へ理解してしまいそうだ。
220デフォルトの名無しさん:2007/01/19(金) 00:43:23
いや、知識が足りないんだろ。
「クラス」「インスタンス」、から調べ始めることを勧めたい。>>216
221デフォルトの名無しさん:2007/01/19(金) 01:53:47
以前クラスの受け渡しについて質問した>>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という名前で保存するにはどうすればいいのでしょうか?
223デフォルトの名無しさん:2007/01/19(金) 11:10:09
>>221
Aのメソッドの中からBのメソッド呼べばいいのでは?
スレッドでも立てない限り、Bのメソッドが完了するまで
MainPanelに処理は戻ってこないよ。
224デフォルトの名無しさん:2007/01/19(金) 11:45:34
すみません、超初心者なんで質問させてください

Process p = Runtime.getRuntime().exec("c:\\xxx.bat");
でローカルにあるバッチファイルを起動できるんですが
ローカルではなく別端末にあるバッチファイルを起動させる事ってできますか?
できる場合、どうやればできますか?
225デフォルトの名無しさん:2007/01/19(金) 12:28:51
>>224
RMI とかでぐぐれ。
226デフォルトの名無しさん:2007/01/19(金) 13:32:38
>>225
ありがとうございます!
こういうのもあるんですね、勉強になりました。

一応、以下のでも出来ました。
Process process = Runtime.getRuntime().exec("\\\\IPアドレス\\c:\\xxx.bat");
227デフォルトの名無しさん:2007/01/19(金) 14:31:05
ええと、質問の意味は
「リモートに置いてあるバッチファイルをローカルで実行」
だったの?

RMIは、
「リモートマシンのJava VMにあるオブジェクトのメソッドを呼ぶ」
というもので、これが必要になるのは
「リモートに置いてあるバッチファイルをリモートで実行」
の場合だと思うのだが。
228デフォルトの名無しさん:2007/01/19(金) 14:39:58
>>227
実行できりゃどっちでも構わんのだろ。たぶん。
もしくは区別する必要があるのに区別できてないか。
229デフォルトの名無しさん:2007/01/19(金) 15:05:38
まずJAVAとはなんですか?
230デフォルトの名無しさん:2007/01/19(金) 15:18:08
>>229 には必要ないもの。
231デフォルトの名無しさん:2007/01/19(金) 16:04:42
特定フォルダを指定して
そのフォルダの下位下層のフォルダを
javascriptでツリー表示させて
エクスプローラ風にするにはどうしたらいいですか?
232デフォルトの名無しさん:2007/01/19(金) 16:09:50
>>231
自分で書いてておかしいね・・・
233デフォルトの名無しさん:2007/01/19(金) 17:14:40
>>231
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
http://a-draw.com/uploader/src/up11740.txt

この構文で31行目に「シンボルを解釈処理できません」というエラーが出るんですが、
どこがいけないんでしょうか?
236デフォルトの名無しさん:2007/01/19(金) 21:02:39
addgas
237デフォルトの名無しさん:2007/01/19(金) 21:07:07
>>236
31行目のとこですか?ここをどう変えたらエラーがなくなるんでしょうか。
238デフォルトの名無しさん:2007/01/19(金) 21:08:49
大文字小文字かな、236のレスだけでエスパると。
239デフォルトの名無しさん:2007/01/19(金) 21:15:35
>>238
変えてみましたけどエラーのままでした。
どこが悪いんだろう・・・
240デフォルトの名無しさん:2007/01/19(金) 21:42:28
じゃあ俺もエスパると
つ public
241デフォルトの名無しさん:2007/01/19(金) 21:50:10
>>235
Car で定義されてるのは addgas、
Program27 の main で呼ばれてるのは addGas

>>236 が言うように大文字小文字の間違いだろね。

>>240 同じパッケージ内だから public つけなくてもok
242デフォルトの名無しさん:2007/01/19(金) 21:53:38
>>239
じゃあ何でエラーなんだこいつは。
243235:2007/01/19(金) 22:23:27
すいません、解決できました。
小文字と大文字勘違いしてました
244デフォルトの名無しさん:2007/01/20(土) 03:48:36
j2sdkをインストールしたところで
PATH変数の更新の手順が書いてあるんですけど、
コントロールパネル→システムと行き、
[ユーザー環境変数]と[システム環境変数]で、
[PATH]を探すと書いてあるんですが[ユーザー環境変数]の一覧に、
[PATH]がないのですがどうしたらよいのですか?
245244:2007/01/20(土) 06:30:34
自己解決しました!
246デフォルトの名無しさん:2007/01/20(土) 06:32:04
すみません質問でございます。
簡単なシュミレーションをするプログラムを作ったのですが走らせて見ると
メモリは全然使わないのにも関わらずCPUだけ100%近く使ってしまいます。
どこかで無限ループにはまっているということはありません(結構待っていると処理が終わりますので)
CPUはPentium4の2.53Gです。
そこまで処理に時間が掛かるものだとも思えないのですが…。

スレッドで作ってみればいくらか軽くなるものですかね?
247デフォルトの名無しさん:2007/01/20(土) 07:24:41
最近似たような質問みたけど
それだけの情報でコメント出来ると思ってるの?
248デフォルトの名無しさん:2007/01/20(土) 07:31:53
>>247
ですよね。
内容は簡単な遺伝的アルゴリズムのシュミレーション。
動作内容は二点交差と一様交差と突然変異が8.5、1.49、0.01の確立で行われます。
世代数(コピーする回数)は50世代で集合(各要素)は20個程度です。
交差を行って次世代にコピーを繰り返すだけなのですが対立遺伝子(ビットの桁数)が10程度でも凄く遅いです。

1024までの数字2個を計算して答えを次世代の要素にコピーというのを1世代に10回。
それを50世代なので合計500回。
これ程度の動作なのですがそれでも遅いときは5分以上掛かってしまいます。
249デフォルトの名無しさん:2007/01/20(土) 10:07:20
java EE のダウンロードサイト
http://java.sun.com/javaee/downloads/download_jp.jsp

開発、製品化のための使用は 無料です!って書いてあるけど、有料になる時ってどんな時?
250デフォルトの名無しさん:2007/01/20(土) 10:07:40
>>248
えーっと
お前がやりたいことを書かれてもわかんないだろ
お前が実際にやってる事(ソースコード)を書かないと
251249:2007/01/20(土) 10:11:51
Hello, world! とか、どう考えても製品にならないものを作ると有料になると思うのですが・・・。
本当にそうなのかどうか、不安です。
252デフォルトの名無しさん:2007/01/20(土) 10:12:38
GAは良いけどシュミレーションはないだろ。
253デフォルトの名無しさん:2007/01/20(土) 10:16:00
そんなん言うなら確立も
254デフォルトの名無しさん:2007/01/20(土) 10:16:54
GAとかシュミレーションは、開発に入ると思う。

Hello, World!も、開発しましたと胸張っていえる厚顔無恥さが無いと使えないな。
255デフォルトの名無しさん:2007/01/20(土) 10:19:03
>>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ってどこで組むんですか?
258デフォルトの名無しさん:2007/01/20(土) 10:56:13
シュ
259デフォルトの名無しさん:2007/01/20(土) 14:03:35
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
260デフォルトの名無しさん:2007/01/20(土) 14:18:44
指定したフォルダアドレスの下位フォルダを表示する
プログラムを作ったのですが
配列に格納しようとするとうまくいきません
どうすればよいですか?

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);
}
}
}
}
261デフォルトの名無しさん:2007/01/20(土) 14:34:30
>>249
マジレスすると、そこにあるライセンスを嫁
262248: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
263249:2007/01/20(土) 14:44:02
>>261
英語なんだよな・・・。
264248: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];が正しいです。
265248: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についてどんなものか教えてください
267259: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は
269デフォルトの名無しさん:2007/01/20(土) 17:08:59
>>248
遺伝的アルゴリズムの前に、伝統的なアルゴリズムを勉強して、
logN で済むところが N や N^2 や N! になったりしていないかを調べましょう。

あと、今さらですが。
×シュミレーション
○シミュレーション
270デフォルトの名無しさん:2007/01/20(土) 17:23:27
j2sdkをインストールしたところで
PATH変数の更新の手順が書いてあるんですけど、
コントロールパネル→システムと行き、
[ユーザー環境変数]と[システム環境変数]で、
[PATH]を探すと書いてあるんですが[ユーザー環境変数]の一覧に、
[PATH]がないのですがどうしたらよいのですか?
271デフォルトの名無しさん:2007/01/20(土) 17:24:46
>>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をキャッチして判断しろ
275267:2007/01/20(土) 17:38:26
おまえらに無視されつづけたけど、なんとか動いたよ。
classpath = .;%JAVA_HOME%\lib\tools.jar
の設定が必要だったらしい。
俺以外にもできない人がこれから出てくるかもしれないから、一応書いとく。
276デフォルトの名無しさん:2007/01/20(土) 17:41:30
手軽に書くなら正規表現があるからそっち使う。
真面目に書くなら if ('0' <= c && c <= '9') でOK。
277デフォルトの名無しさん:2007/01/20(土) 17:42:57
>>274は無視してくれ全部数字に勘違いした
278デフォルトの名無しさん:2007/01/20(土) 17:43:19
>>272
Stringで受け取るって、全角数字とそれ以外が混在したらどうなるん?
279デフォルトの名無しさん:2007/01/20(土) 18:58:46
>>265
とりあえず
一様交差と2点交差をどちらか一方だけで試してみ
280デフォルトの名無しさん:2007/01/20(土) 19:05:00
java のリフレクションって、public 以外のメンバは扱えないんですか?
281デフォルトの名無しさん:2007/01/20(土) 19:08:27
サーブレット側でbeanをnewして
シリアライズされたString型のlistをjspで表示しようとした所
文字列の前後に[]がついてしまい
[ 文字列 ]←のような感じなってしまいました
外す方法はありませんか?
282248:2007/01/20(土) 19:15:30
レスありがとうございます。

>>269
最低限の動作しか実装していないつもりなのであまりそういう部分は現状では(自分の知識不足)思い当たりませんが。
アルゴリズムの勉強不足は実感しておりますのでそちらは必要だと思います。
ご指摘ありがとうございました。

>>273
最初の使用ではメイン動作の前に前述の様な表示があってそこまでは問題なく表示されるのですが
そこから表示されるのに物凄く時間が掛かっておりました。
前述の後は交叉または突然変異する確率を0-999の間で乱数で発生させ、
条件分岐でrandom<949なら二点、<999なら一様それ以外なら(999)突然変異と定義しております。
ここまでは動作が重くなる要素はないと思います。
その後実際にメソッドに移って処理をするのですがその中にもSystem.out.println();でテスト用の標準出力を入れておりましたが
1個ではすぐに表示されるのに再帰的に繰り返しているせいかある程度の部分でそれまでの処理の結果が出力されるようになっています。

ので怪しいのはルーレット式選択、二点交叉、一様交叉、突然変異辺りだと思うのですがその中身も結構簡単な処理にしてあると思うのですよね。
スケーリングなどは実装していないので最低限の処理だけのつもりなのですが。

>>279
試してみた際に気持ち一様交叉の方が動作が重かったように思われます。
なので確率をかなり下げたのです。
詳しくは後ほど試して見ます。


ランダムで生成する回数が増えると動作が重くなったりしますかね?
一個ミスに気づきましたが恐らくルーレット式で同じ要素を選んだ場合ではなく
要素の内容が同じ場合にする再抽選が重くなってるのだと思います。
局所解ルートですと要素の内容が同じことは良くあると思いますので。
手直ししてそれでもダメでしたらまた来ますね。
283272:2007/01/20(土) 19:37:26
レスくださった方ありがとう
まだ動かすところまでいってないんだけどとりあえずお礼だけ

>>278
falseで返せばいいんだと思います、多分
284デフォルトの名無しさん:2007/01/20(土) 19:51:41
ちなみにCharacter.isDigitは全角数字にもtrueを返す。
デーヴァナーガリとか漢字の数字にも。
285デフォルトの名無しさん:2007/01/20(土) 20:02:12
>>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;
}
286デフォルトの名無しさん:2007/01/20(土) 20:47:21
Apacheライセンスで日本向けの文字列チェックライブラリを作っちゃいたいな
史上最悪の車輪の再発明だよ。
287デフォルトの名無しさん:2007/01/20(土) 20:48:55
つーかリフレクションの使い道ってなによ?
288デフォルトの名無しさん:2007/01/20(土) 20:54:59
つーかの参照先を先に教えて欲しい。話はそれからだ。
289280:2007/01/20(土) 21:03:09
>>288
多分俺

>>287
java のバイトコードにコンパイルする小さな処理系を作ってて、
既存のクラスの protected メンバを取得するにはどうすれば良いかな、と考えてまして。
290デフォルトの名無しさん:2007/01/20(土) 21:08:31
>>289
getDeclaredField とか getDeclaredMethod を使え。
getField とか getMethod は public なメンバしか取れない。
291デフォルトの名無しさん:2007/01/20(土) 21:08:39
意図的にセキュリティぶっ壊せるからそれでやれ。
ユニットテストでもそれでやってるところがある
292デフォルトの名無しさん:2007/01/20(土) 21:15:21
>>290
あ、ごめん。そっち見てなかった。ありがとうございます。
293デフォルトの名無しさん:2007/01/20(土) 21:38:44
0〜500の閉区間で乱数をとりたいのですが、
普通の乱数は
int RAND1 = (int)(0 + Math.random() * 500);
でやるのは解ったのですが、
正規分布にそった乱数の取り方が解らなくて困っています。

Random().nextGaussian()は、0〜1の間で正規分布の乱数をとると聞いたので
int RAND2 = (int)(0 + new Random().nextGaussian() * 500);
とやってみたのですが、なぜかマイナスがでて困ってます。
nextGaussian()の正しく使うにはどうしたらよいのでしょうか?
また、正規分布乱数を発生させるにはどうしたらよいのでしょうか?
294デフォルトの名無しさん:2007/01/20(土) 21:44:44
>>293
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/Random.html#nextGaussian()
> 乱数ジェネレータのシーケンスを使って、
> 平均 0.0、標準偏差 1.0 のガウス (「正規」) 分布の double 型の擬似乱数を返します。
295デフォルトの名無しさん:2007/01/20(土) 22:05:49
>>294
ありがとうございます。

うーん平均0、偏差1ですか。
閉区間[0,1]ではなかったのか・・・。
500倍したところで結果が変になったわけが判りました。

ところで閉区間ではどう使えばいいのでしょうか?
0〜500でやりたいから、平均250なのだから+250して、ifで0未満と500以上だった場合やりなおし。
あとはどんな条件を加えればよいのでしょうか?
296295:2007/01/20(土) 22:25:46
自己解決しました!
297デフォルトの名無しさん:2007/01/20(土) 22:27:42
ちょっと!ちょっとちょっと!!(汗
295は私です。293も私です。
まだ全然解決してません。

Wikipediaの図によると、標準正規分布は、0を基準に±3でほぼ0になっているように思えました。

これを250を基準に範囲を0〜500に広げたいので
int RAND2=(int)(new Random().nextGaussian() * 250 / 3);
で大体あってますか?
298248:2007/01/20(土) 22:48:11
何度も何度もすみません。
ルーレット選択の部分を見直してみましたが全く速度上がらずです。
もしかすると実行環境の問題かもしれないのでよろしければどなたか試していただけたら幸いです。

一応BitDefenderで検疫済みです。
test.batをダブルクリックで実行します。
世代数は繰り返す数、集合のサイズはそのままの意味です。
対立遺伝子とは要素がとりうる値で、2^nの倍数で入力お願いします。
ランダム生成値の上限は基本的に対立遺伝子と同じにしてください。

自分は50世代、要素数20、対立遺伝子1024ランダム1024程度でも遅いときは数分掛かります。
出力の成績は初期集合と最後の集合の要素、合計、平均値になります。
時間がある方がいらっしゃいましたらどうぞよろしくお願いします。

http://www.uploda.org/uporg660928.zip
パスは「java」です。
299デフォルトの名無しさん:2007/01/20(土) 23:06:44
>>297
まず正規分布を理解するところからだな。
300デフォルトの名無しさん:2007/01/20(土) 23:14:35
>>298
対立遺伝子って遺伝子長のことか?
遺伝子長が長けりゃ遅いのは当然
301デフォルトの名無しさん:2007/01/20(土) 23:21:29
時間かかりすぎバグだな
302248:2007/01/20(土) 23:22:16
>>300
対立遺伝子は遺伝子が取りうる値で10進数で1024という意味です。
実際には0-1023までの数字がランダムで生成されます。

遺伝子長(ビット列ということですよね?)で現すのならばビットの長さは10桁です。
10桁はそんなに長くないと思っていますが一度ビット列に直して交叉をして整数に戻すという処理がある分
計算上では結構大変なのですかね?
303あんぽんたん:2007/01/20(土) 23:25:43
修論でGAについて書いた俺が助けてやろうと思ったが
もう忘れたからあきらめた
304デフォルトの名無しさん:2007/01/20(土) 23:29:30
GA=ギャラクシーエンジェル?

その論文が読みたいオレガイル
305あんぽんたん:2007/01/20(土) 23:30:20
このプログラムは対立遺伝子を大きくすればそれだけ遺伝子長は伸びるんだよな?
306248: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;
}
307デフォルトの名無しさん:2007/01/20(土) 23:44:35
>閉区間[0,1]ではなかったのか・・・。
そんな正規分布の「ライブラリ」があったらこえーよ。
308デフォルトの名無しさん:2007/01/20(土) 23:54:29
なんでjavaでやってんねん
FortranかC/C++に書き直してベクトル化率95%以上に最適化して地球シミュレータでぶん回せ
309あんぽんたん:2007/01/20(土) 23:55:01
>>306
質問でーす
・この評価って何が良くて何が悪いかって評価をしてるの?
・動かして見たけど対立遺伝子をかなり大きくしたらすぐにプログラムが終了
対立遺伝子が小さいとどの遺伝子も同じになっちゃってるんじゃないかな?
310デフォルトの名無しさん:2007/01/21(日) 00:47:04
俺の環境
Pentiam M 1.3GHz メモリ768MB

>>298と同じ条件でやったが数分で終わるってレベルじゃねーぞ!!


ルーレット選択をどういう形に修正したんだ??ちょっと教えれ。

ルーレット選択が成功したら何番目と何番目の親を選択したのか表示するようにするか、
もしくは再抽選を何回やったか見てみろ。
311310: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間での値を取る)

っていう理解になるんだが、どうなんだ?
312デフォルトの名無しさん:2007/01/21(日) 02:01:28
NETにおいて実際に使用しているメモリのサイズを確認するには、
GCクラス(System名前空間)のGetTotalMemoryメソッドを使用して計測する必要がある
って読んだんですけどJavaで同じこと知りたいんですがどうすればいいのですか?
313デフォルトの名無しさん:2007/01/21(日) 02:03:54
314デフォルトの名無しさん:2007/01/21(日) 02:05:54
javabeanをXMLに出力するライブラリってありませんか?
JAXBで読み込みは出来てもスキーマごと出力したいんですができませんでした。
315デフォルトの名無しさん:2007/01/21(日) 02:10:13
dos窓に文字列を表示するんじゃなくて
コマンドを打ち込むプログラムって作れますか?
作れるなら
参考文献ややり方教えてほしいです。
316デフォルトの名無しさん:2007/01/21(日) 02:11:07
表示System.out
入力System.in
317デフォルトの名無しさん:2007/01/21(日) 02:14:46
>306
このメソッド、値が0か2^N(0以上の整数)以外の時は真の永久ループになるけど、
そういう仕様?貼り間違い?

最低限と言っている処理が本当に正しくかけているかもう一度確認したら?
細かい要素に分解して、一つずつ。
318ぴゅあ:2007/01/21(日) 02:18:56
>>315
JNIを使わないと無理ですよ
319デフォルトの名無しさん:2007/01/21(日) 02:35:30
インスタンスってナンデスか( ´・ω・` )
320デフォルトの名無しさん:2007/01/21(日) 02:36:34
>>315
何がしたいんだろう?
バッチファイルを出力してそれを呼び出す、とかではダメなんでしょうか?
321デフォルトの名無しさん:2007/01/21(日) 02:41:23
バッチファイルって実行するとdos窓が開いて動くようなやつでしたっけ。。

javaプログラムからdosにSQL文を入力させてデータベース上書きするとか。
自作のメモ帳で書いたソースをボタンおしたらコンパイルできるようにしたりとかしたいんです。


322デフォルトの名無しさん:2007/01/21(日) 02:41:49
>>319
おにぎりテンプレート=クラス
おまいの弁当のおにぎり=インスタンス

あんだすたん?
323デフォルトの名無しさん:2007/01/21(日) 02:42:39
>>321
Runtime.execじゃダメなん?
324デフォルトの名無しさん:2007/01/21(日) 02:45:20
3軒の屋台が
325319:2007/01/21(日) 02:45:52
どうしたら、Java プログラムから外部のコマンド(プログラム)を
呼び出せますか?
[A]
java.lang.Runtime クラスの exec メソッドを使います。
Runtime のインスタンスは、
スタティックメソッドの getRuntime() で取得します。



この文章でいうインスタンスってどういう意味でしょうか。


326デフォルトの名無しさん:2007/01/21(日) 02:54:46
>>325
おにぎりをひとつだけ持ちたいとか
環境に合わせておにぎりを変えたい場合などはそんな風になる。
Runtimeに関してはOS依存のために後者を理由にそうしてるはず。
327デフォルトの名無しさん:2007/01/21(日) 02:55:07
>>325
Runtime オブジェクトのインスタンス
328デフォルトの名無しさん:2007/01/21(日) 03:04:04
インスタンス=オブジェクトというような意味で書いてある文章もあるんで混乱してきましたorz
他のHPでRunntimeについて調べたら意味がわかりました


329デフォルトの名無しさん:2007/01/21(日) 03:06:50
ちがう、インスタンス系オブジェクトだ。
intもクラスもインスタンスもオブジェクト。
330デフォルトの名無しさん:2007/01/21(日) 03:10:48
>>328
オブジェクトは文脈によってインスタンスを指したりクラスを指したりする。
インスタンスまたはクラス=オブジェクト。OK?
331デフォルトの名無しさん:2007/01/21(日) 03:33:42
インスタンスの意味はどんな文章でもあまり変わらんと思うぞ。
332デフォルトの名無しさん:2007/01/21(日) 03:39:04
鋳型=クラス、鋳物=インスタンスでガチでしょ
オブジェクトという概念の扱い方が迷走してるだけかと。
333デフォルトの名無しさん:2007/01/21(日) 03:53:55
333
334718:2007/01/21(日) 04:58:32
この問題を質問すべきスレがわからなかったので、ここで聞かせてください。

Cygwinを使ってCのプロジェクトを実行しようとしたのですが、
以下のようなエラーメッセージが出てしまいます。



 Debug Assertion Failed!

 Program : C\・・・・・・・
 file fgets.c
 Line 60

 Expression : str != NULL
 For information・・・・・


最初はfgetsの使い方が間違っていると思ったのですが、
違うファイルを作って試したら問題ありませんでした。
このエラーメッセージからどこがおかしいのか理解できません。
ご存知の方がいらっしゃったら教えていただけないでしょうか?
335デフォルトの名無しさん:2007/01/21(日) 05:05:55
ソース晒せないの?
自分で作ったものか他人のをパクってきたのか
336デフォルトの名無しさん:2007/01/21(日) 05:07:10
ぬるぽ
337デフォルトの名無しさん:2007/01/21(日) 05:08:34
それ以前にスレ違いだし。つーか718って何だ?どっかの誤爆か
338デフォルトの名無しさん:2007/01/21(日) 05:12:27
339デフォルトの名無しさん:2007/01/21(日) 10:26:17
Commons LangのStringEscapeUtils.escapeHtml()なんですが
これ日本語もエスケープしてしまうのですが、日本語はそのままに
してくれるヤツはどこかにないでしょうか?
340デフォルトの名無しさん:2007/01/21(日) 10:45:40
ないです
しなくていいです
っつーかされたらこまります
341248: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とかでやったらすぐ結果出るでしょ
343デフォルトの名無しさん:2007/01/21(日) 15:41:54
>>341
> >>317
> >>298でも書きましたように対立遺伝子のとる値は2~Nが仕様となっております。
> 元々自分がテスト用でつけた標準入力なのでわかりにくくてすみません。
> 結構何度も確認してるつもりなんですよね。
> きっと間違いは一度離れてみなくては分からないという奴ですよね。

>>298 には 2^nの「倍数」 ってあるけど、そこが書き間違いな訳ね。
それはいいとして setMAX_LENGTH って
ループまわさなくても Math.log(ele)/Math.log(2) で求められるでしょ。
こういう無駄がまだたくさんあるんではないか?
344デフォルトの名無しさん:2007/01/21(日) 16:33:22
"MyHelloWorld1" "MyApp2" 等、動的に与えられたString型の情報をもとに、
同名のクラスファイルをロードして実行(public static void main の呼び出し?)する
Java のプログラムを作りたいのですが、どこから手をつけてよいのか分かりません。

他のクラスの実行に関わるクラスって何なのでしょうか?


※ 一応 Java Language Specification 3rd Ed. の第12章(実行)は
一通り読んだので JVM の起動の仕組みは理解しているのですが…(ひょっとしてあまり関係ない?
345デフォルトの名無しさん:2007/01/21(日) 16:38:31
>>344
ClassLoader
リフレクション
346デフォルトの名無しさん:2007/01/21(日) 16:49:46
JVM の起動の仕組みを理解されてる立派な技術者がその程度のプログラムも書けないとは
347345: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以外を指定したい場合は
()内と指定先のファイルの中身はどのようにすればいいのでしょうか?
わかりにくい質問ですいません。。
349デフォルトの名無しさん:2007/01/21(日) 18:34:27
>>347
サンクス。
java.lang.reflect か。盲点だった。
350ゆー:2007/01/21(日) 18:55:24
>>348
指定先のメソッドの引数を変えればできますよ!
351デフォルトの名無しさん:2007/01/21(日) 19:00:01
>>348
×ファイル
○オブジェクト
352デフォルトの名無しさん:2007/01/21(日) 19:04:30
>>348
addActionListenerメソッドの引数には
『ActionListenerインターフェースをimplementsしたクラス』を指定する。
自分自身にActionListenerをimplementsしている場合にthisと書くだけ。

他のクラスにActionListenerをimplementsし、actionPerformedメソッドを実装して
そのクラスのインスタンス(を参照する変数)を引数に指定すればよい。
353348:2007/01/21(日) 20:12:52
ありがとうございます!!さっそくやってみたら無事通りました^^
354デフォルトの名無しさん:2007/01/21(日) 20:34:42
System.out.println(0x935f - 0x8140);

結果 ≠ 121f
なぜ?
355デフォルトの名無しさん:2007/01/21(日) 20:41:20
アプレットについての質問です

フラグが立ったら、
それまでできていたマウスでの操作を受け付けなくするには
どうすればいいですか?
356デフォルトの名無しさん:2007/01/21(日) 20:41:28
>>354
10進表記だから。
357デフォルトの名無しさん:2007/01/21(日) 21:48:32
いつもお世話になっております

ちょっと疑問に思ったんですけど
配列って事前に要素数を決めないと駄目なんですよね?

例えばある配列に数字の1〜100が入っていて
その中から10以下の値のみを別の配列に取得したい時、
一度配列の全要素を調べて10以下の数をカウントして、
その数分の要素数の配列を生成してから、
もう一度配列をforとかで回して
代入しないといけないのでしょか?
358デフォルトの名無しさん:2007/01/21(日) 21:51:56
リストを使う手もある
359デフォルトの名無しさん:2007/01/21(日) 21:52:28
>>357
yes

面倒だったら Generics で ArrayList<Integer> 使ったり、
commons primitives の ArrayIntList 使うとかすれば?
360310:2007/01/21(日) 22:17:02
>>341
ちなみに、要素の中身は>>311に書いたやつでいいのか?あそこに書いた要素が20個とかあるのか?
あと他にwhile文でループ回数が多くなりそうなところにループ回数を出力する式を追加してみたら?こういったときによくする手なんだが…
もし、ルーレット選択に特にこだわりがなければ、グリーディー手法かεグリーディー手法試して見れ。
361デフォルトの名無しさん:2007/01/21(日) 22:32:01
>>357
自分で全部見なくてもソートさせて10超えるまで見るって手もある。
結局自分が見なくても誰かが見る事には変わりないけどね。
362357:2007/01/21(日) 22:46:52
>>358
>>359
>>361
レスありがとうございます。

リストを勉強してみます。
ありがとでした。
363デフォルトの名無しさん:2007/01/22(月) 00:12:27
指定したディレクトリに、入力したファイル名でフォルダを新規作成するプログラムを作りたいのですが
どのようにすればいいのでしょうか?java フォルダ作成 などで検索しても目的のページに辿り着きません
364デフォルトの名無しさん:2007/01/22(月) 00:28:26
>>363

java.io.Fileパッケージ
mkdirs()等

365デフォルトの名無しさん:2007/01/22(月) 00:31:19
ごめんパッケージじゃなくてクラスだ。
java.io.Fileクラス
366デフォルトの名無しさん:2007/01/22(月) 00:35:41
"Java ディレクトリ作成"で答えが出たのに
367363:2007/01/22(月) 02:05:14
>>364-366
ありがとうございます
368デフォルトの名無しさん:2007/01/22(月) 06:23:00
いつも自己解決しております。
ありがとうございます!
369デフォルトの名無しさん:2007/01/22(月) 08:54:56
アクセス数をcount.txtから読み取って画面に表示し、1足してまた書き込むjspを
warファイルにまとめてみました。
ブラウザからアクセスするとアクセス数が1ずつ増え、確かに読み書き出来ているようですが、
warファイルの中のcount.txtをのぞいても始めに自分で書き込んだ0という数字があるだけです。
アクセス数は一体どこに記録されてるんでしょうか?
370デフォルトの名無しさん:2007/01/22(月) 09:43:43
>>369
warファイルの中って事は自分で圧縮し直してるって事かな?
371デフォルトの名無しさん:2007/01/22(月) 10:17:57
>>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ファイルの中身だけを差し替えてるって事???
ごめん、状況が全然分からない。
373372:2007/01/22(月) 11:08:35
>>371
勝手に解凍されてるwarがあるでしょ?そっちのcount.txtが書き換えられてないかな?
あと、tomcatを再起動するとカウントが戻るとかそういう現象は再現してないかな?
374デフォルトの名無しさん:2007/01/22(月) 11:35:00
>>373
>勝手に解凍されてるwar
指摘されて今気付きました。勝手に解凍されるんですね。
てっきりwarのまま使われると思ってました('A`)
ありがとう!
375デフォルトの名無しさん:2007/01/22(月) 20:06:50
コンポーネントというか、
jButtonにgif画像を表示させることはできますか?
簡単なものでいいので、コーディングの仕方か手順などを
教えてください。
376デフォルトの名無しさん:2007/01/22(月) 20:46:23
JButton jb = new JButton();
jb.setIcon(new ImageIcon(new URL("http://java.sun.com/docs/books/tutorial/figures/uiswing/components/LabelDemoMetal.png"));

GIFでも行けるはず。
URLでなくStringの時は、ファイルパス。
エラーハンドルは自分でヨロシク
377デフォルトの名無しさん:2007/01/22(月) 20:57:37
サーバ、クライアントでJListの文字列データを同期して変更したいのですが、どんな方法を使えばいいのでしょうか。
378デフォルトの名無しさん:2007/01/22(月) 21:54:05
或るマシン上にJavaのプロセスが起動していて、
そのプロセスにDOSからメッセージなげることできる?
379デフォルトの名無しさん:2007/01/22(月) 22:09:38
コマンドプロンプトから実行して足し算を行うプログラム。
引数に上限・制限はなし。
入力されたすべての値を合計した結果を表示したい。

入力例)20 4 7
出力例)20+4+7=31


わかりません。。お願いします。
380デフォルトの名無しさん:2007/01/22(月) 22:14:14
>>376
ありがとうございます。
やってみます。
381デフォルトの名無しさん:2007/01/22(月) 22:15:48
>>379
★★ Java の宿題ここで答えます Part 59 ★★
http://pc10.2ch.net/test/read.cgi/tech/1165167516/
382デフォルトの名無しさん:2007/01/22(月) 22:46:53
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です

どなたか原因をご教授願えませんか?
383デフォルトの名無しさん:2007/01/22(月) 22:55:25
上の質問の"(" ")"は

(Graphics g)のカッコです。

どなたかお分かりになる方、お願いします。
384デフォルトの名無しさん:2007/01/22(月) 23:12:22
インターネット版で質問したのですけど
人大杉で見ることができません
ここで質問してもいいですか

Javaのアップデイトをするようにと
画面右下に表示されているのですが
インストールしてもいいのでしょうか
以前はたしか日本語で表示が出たように
記憶していますが、今回は英語で出てます

385デフォルトの名無しさん:2007/01/22(月) 23:19:02
専ブラ使えばいいんじゃないかな
386デフォルトの名無しさん:2007/01/22(月) 23:19:24
てか、ここ質問多すぎて質問がすく流れてしまう。。
もっとスレッド分割したほうがいいのではないか
387デフォルトの名無しさん:2007/01/22(月) 23:21:00
ある文字列の中に、指定した一文字が
いくつあるかを調べられる文字列関数ってありませんか?

ご存知でしたらおしえてください。
388デフォルトの名無しさん:2007/01/22(月) 23:25:58
>>387
一発で数えるメソッドは標準ではないと思う。
String の toCharArray() 使って文字配列にしてから
一文字ずつグルグル回して数えるか、
indexOf(Iint, int) で -1 投げるまで回すかだと思う。
389デフォルトの名無しさん:2007/01/22(月) 23:26:56
>>387
Javaには関数はない
390デフォルトの名無しさん:2007/01/22(月) 23:31:35
strstr
391384:2007/01/22(月) 23:32:55
>>385 ありがとう
専ブラ?2ch用ってことですよね?Java用?
なんのことやらさっぱりですんません
392デフォルトの名無しさん:2007/01/22(月) 23:38:03
>>391
分かりやすく言うと、
人大杉で見られないインターネット版を専用ブラウザで見る方がいいんじゃないか、
ということだよ。そっちの板で質問したのにさらにマルチでこっちに質問するのはいかんよ。
インターネット版にポストするのがその質問にとって良いと自分で判断したのなら初志貫徹すべき。
393デフォルトの名無しさん:2007/01/22(月) 23:43:28
インターネット版がそもそも何か分からん
394デフォルトの名無しさん:2007/01/22(月) 23:45:42
395デフォルトの名無しさん:2007/01/22(月) 23:46:21
>>388

ありがとうございます!!

自分もindexOfをwhile( 戻り値 = -1)
で反復するしかないようだと思いました。

楽せず地道につくることにします。


あと関数ではなくメソッドですね…。
すみません。
396384:2007/01/22(月) 23:57:39
>>392 そうですね 失礼しました
さっきネット版見ることができましたが
アドバイスはありませんでした
Javaのアップデートに関する質問は
あまりにばかばかしくて回答するに
あたいしないってことなのですかねぇ
397デフォルトの名無しさん:2007/01/22(月) 23:58:45
>>394
ああ、板のことか・・

>>395
jakarta の commons-lang プロジェクトでそんなのがありそう。
自分で作った方が早そう。

StringUtils#countMatches(String, String)
398デフォルトの名無しさん:2007/01/23(火) 00:02:17
>>396
ここはプログラム板のJavaスレだから、
Java でプログラムする人が使う場所。
あなたの質問は Windows 板かソフトウェア板が適切だと思う。
(くだ質系なら反応が早いかも。)
399384:2007/01/23(火) 00:24:50
アメリカ人のプログラマーに聞いて解決した
最初っから電話すれば良かった
400デフォルトの名無しさん:2007/01/23(火) 00:59:26
質問です。
現在アプレットで動く簡単なシューティングゲームを作っていますが、急遽これをJFrameに作り直せといわれました。
多少書き換えてmainに数行加えればいいと言われたのですが、やり方がサッパリ分かりません。
こうすればいいとか、参考になるHP等あったら教えて欲しいです。
401デフォルトの名無しさん:2007/01/23(火) 01:20:33
>>382-383
ソース晒せ。147行目がおかしいとは限らない。
402デフォルトの名無しさん:2007/01/23(火) 02:24:06
>>382
メソッドを実行しようとして起きた実行時エラーにしてはおかしなエラーメッセージだなw
paintの前のメソッドなりフィールドなりが完結していないと思われ
403デフォルトの名無しさん:2007/01/23(火) 02:37:46
>>400
Applet を JPanel に変更
JFrame 作って配置

が主な作業
404デフォルトの名無しさん:2007/01/23(火) 02:43:23
>>400
AppletやJAppletはPanelの一種だから、
適当なサイズのフレームを生成して、アプレットのインスタンスをそれにaddするだけだ。
ただし、アプレットのinit()やstart()等のアプレットなら勝手に呼び出してくれていたメソッドは呼び出されないので、
自分で呼び出す必要がある。
destroy()やstop()のような後始末系のメソッドをオーバーライドしていないのなら、
アプレットのインスタンスを生成した後でinit()を呼び出して、
その後、フレームを可視化してから、start()でアプレットの処理を開始すればいい。
AppletでAWTのコンポーネントを使っているとJFrameとは相性が悪いかもしれず。
その時はFrameを使った方がいいかも。
405デフォルトの名無しさん:2007/01/23(火) 02:46:31
destroy()やstop()を自分で再定義しているのなら、
WindowEventに耳を澄ましてフレームの終了時にdestroy()やstop()を実行してやる。
406デフォルトの名無しさん:2007/01/23(火) 16:59:35
C:\MYJava>javac MyJava.java
MyJava.java:5: シンボルを解決できません。
シンボル: メソッド ptintln (java.lang.String)
場所 : java.io.PrintStream の クラス
System.out.ptintln("My Java program"); 

^はout.の.についてます。これの解決方法を教えていただき
たいです。
407デフォルトの名無しさん:2007/01/23(火) 17:03:23
綴りが、違う
ptinlnじゃなくてprintln

408デフォルトの名無しさん:2007/01/23(火) 17:04:29
×ptintln
○println
409デフォルトの名無しさん:2007/01/23(火) 17:07:33
>>407
指摘ありがとうございました!おかげで動きました!
410デフォルトの名無しさん:2007/01/23(火) 23:00:19
>>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文字ずつ逆順に出力
412デフォルトの名無しさん:2007/01/24(水) 00:51:42
補助文字を考えなくていいなら、charAtでchar1文字取り出せる。




413デフォルトの名無しさん:2007/01/24(水) 00:56:45
うーん lengthも使うみたいなんですが・・
414デフォルトの名無しさん:2007/01/24(水) 00:59:53
>>411
for文にマイナスが付いてる事が味噌

文字列の状態で逆にしなくても、出力が逆なら良いのでしょう
415デフォルトの名無しさん:2007/01/24(水) 01:02:40
>>413
412で使ってるじゃん
416デフォルトの名無しさん:2007/01/24(水) 01:07:07
abcdefでうちこんだら
fedcbaと出したいのです。
しかし、i++はよくみても、i--ははじめてなので
特にint i = のあとが思いつかないのです。
417デフォルトの名無しさん:2007/01/24(水) 01:09:07
i++の意味を考えたらi--の意味も想像付くだろ?
forの3要素の働きから再確認したほうがいいぞ。
418デフォルトの名無しさん:2007/01/24(水) 01:20:17
>>416
「思い付かない」じゃなくて
知らないんでしょ?
419デフォルトの名無しさん:2007/01/24(水) 01:20:32
str.lengthかなぁ・・ 3要素とは?
420デフォルトの名無しさん:2007/01/24(水) 01:23:32
要素なんて妙な言葉を使ったのは悪かったが、
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.があるだけに苦戦してます。
423デフォルトの名無しさん:2007/01/24(水) 01:34:26
だから、メソッドの呼び出しなら
API Reference の String の項を見なさいって。
424デフォルトの名無しさん:2007/01/24(水) 01:35:44
な、なんだ?
425デフォルトの名無しさん:2007/01/24(水) 01:39:44
あと一歩だな。あとは、順番は0始まりで数えるから、
スタートが「文字列の長さ」番目の文字じゃなくて、
「文字列の長さ-1」番目の文字から始めるということに注意。
426デフォルトの名無しさん:2007/01/24(水) 01:48:46
となると、str.length()-1 安易かな・・
迷惑かけてすみませんね
考えはじめて2時間経過...


427デフォルトの名無しさん:2007/01/24(水) 01:49:49
正解。おめでと。
428デフォルトの名無しさん:2007/01/24(水) 01:51:48
もし i >= 0 じゃなく、>>421で訂正する前の i > 0 だったら
どうなるか考えてみるのも面白いかもしれない。
429デフォルトの名無しさん:2007/01/24(水) 02:00:17
ありがとう、上はいいみたいなんですが
下の文でまた止まってますね charAt()をそのまま
うちこんでは駄目ですし、むむ。。
430デフォルトの名無しさん:2007/01/24(水) 02:04:57
>>429
止まるって?
何も反応がなくなるとか?

宿題スレ行った方が良くない?
431デフォルトの名無しさん:2007/01/24(水) 02:08:46
いや、あとはこの部分だけだし・・・
エクリプスでみてるのですが、波線が消えないのです。
charAtってString str に変換できないんでしょうか?
str.は使わないといけないというのがわからない。

432デフォルトの名無しさん:2007/01/24(水) 02:08:58
433デフォルトの名無しさん:2007/01/24(水) 02:09:21
解答を先に進められずに止まってるという意味じゃないかね?
とりあえずAPIドキュメントを手元でいつでも参照できるように
すべきではないのか?
434デフォルトの名無しさん:2007/01/24(水) 02:15:36
何が分からないのか分からない病か…
435デフォルトの名無しさん:2007/01/24(水) 02:18:49
>>431
charAtじゃなくて他のメソッドを使えば多分やりたい事はできるよ。
>>432のリンク先を見ればわかる。
436デフォルトの名無しさん:2007/01/24(水) 02:24:10
じゃあ、もうゆっちゃう?
ゆっちゃうよ?

charAt(i)

・・でしょ?例のところに。ちがう?
437デフォルトの名無しさん:2007/01/24(水) 02:35:22
436さんの通りやったら、できた。。
そうか、変数を()の中に入れるのか・・ それがわからないとは。。
うーん 基礎がなってないのを痛感しました。
皆さん、僕のために考えさせてくれてたのですね、ありがとう。
436さんもありがとう。正直、API リファレンスってのも知りませんでした。
参照できるようにせねば (汗
438デフォルトの名無しさん:2007/01/24(水) 02:36:56
痛感するまでもなく基礎がないのはわかりきってたろ?
439デフォルトの名無しさん:2007/01/24(水) 02:38:51
ttp://www.nextindex.net/java/

もう見てないだろうけど…
440デフォルトの名無しさん:2007/01/24(水) 02:53:05
教えるということがいかに虚しいことかしみじみと感じる今日この頃
441デフォルトの名無しさん:2007/01/24(水) 02:56:25
>>439
ありがとう〜これは良さそうなサイトですね。早速お気に入りに登録しました。
僕は、Cをまず教わり、構造体とポインタで挫折して
それからすぐJAVAがはじまって今度こそと勉強してるのですけども
やはり、Cがわかってないと厳しいのかなと考えています。
442デフォルトの名無しさん:2007/01/24(水) 02:58:08
世界の時計のJAVAスクリプトは腐るほど見つかりますが、ほとんど現在の時刻での比較ですので、全く使えません。

2日後の9時などを、日時で入力して、そのときの時計の比較とか出るものってできますか?
これはJAVAスクリプトでは不可能ですか?
443デフォルトの名無しさん:2007/01/24(水) 02:59:40
Javaを中学生の「情報」だかの教科でやってんだろうか?
ポインタで挫折する奴は話では聞いたことがあるが、
構造体で挫折なんて奴は聞いたこともない
444デフォルトの名無しさん:2007/01/24(水) 03:01:22
良く訓練された荒らしのようだ
445デフォルトの名無しさん:2007/01/24(水) 03:06:45
お恥ずかしい限り。。いい大人なんですが・・・
そして、荒らしではありません。。大変迷惑かけましたが。。
やはり、Cからやり直した方がいいんですかね。
javaが始まって復習する時間が取れなくて。
それにどうやら僕はfor文だって理解してないみたいだし
でも、何とか習得したいと思うので、あがいてみます。
446デフォルトの名無しさん:2007/01/24(水) 03:08:00
>世界の時計のJAVAスクリプトは腐るほど見つかりますが、ほとんど現在の時刻での比較ですので、全く使えません。

>2日後の9時などを、日時で入力して、そのときの時計の比較とか出るものってできますか?
>これはJAVAスクリプトでは不可能ですか?
>>442
これを日本語で言うのは不可能ですか?
447デフォルトの名無しさん:2007/01/24(水) 03:14:42
>>445
あのね。勉強の順序じゃなくて
基礎知識を参照せずに
「当てずっぽう」やってるのが問題なのね。
そこから変えていこう。
448デフォルトの名無しさん:2007/01/24(水) 03:15:02
世界の時計の現在の時刻の比較の、JAVAスクリプトはたくさん見つかりますが、

2日後の時刻の9時など、日時をフォームに入力してプッシュすると、そのときの世界時計の比較が出るものってありますか?
これはJAVAスクリプトでは不可能ですか?
449デフォルトの名無しさん:2007/01/24(水) 03:16:40
できますよ
450デフォルトの名無しさん:2007/01/24(水) 03:17:47
鋭い、、、
確かに僕は課題をパズルのように解いている、。
451デフォルトの名無しさん:2007/01/24(水) 03:28:58
>>449
できるなら、ソースをください。お願いします。
452デフォルトの名無しさん:2007/01/24(水) 03:33:21
>>451
まだ作ってないからソースまだは無いよ。
それにそもそもスレ違いなのでここには貼りません。
453デフォルトの名無しさん:2007/01/24(水) 03:37:28
ケチ!!!!!!!
いいじゃんそれくらい!!!!!
454デフォルトの名無しさん:2007/01/24(水) 03:40:51
SUNはNetscapeが「LiveScriptの名前変えちまおう」と言った時、
どんな反応したんだろう?今考えると大失敗としか思えないんだが。
Javaで検索してもJavaScriptなページが出てきたりとか。
勘違いする奴とか、勘違いする奴とか、あと勘違いする奴とか。
455デフォルトの名無しさん:2007/01/24(水) 03:44:59
さて、無い物を探すのは不可能。さて、どうしよう。
金払うから作ってよ。
456デフォルトの名無しさん:2007/01/24(水) 03:46:09
その縁でScripting Frameworkの筆頭にJavaScriptが来たじゃない
まあECMAScriptとしての完成度が押された形だけどw
457デフォルトの名無しさん:2007/01/24(水) 03:47:27
ひとつのUTC時間を参照して、それぞれの時差で時計を作るだけ。
グラフィカルにしなければ入門レベルだよ。
458デフォルトの名無しさん:2007/01/24(水) 03:47:53
わかった。スレ違いだったんだね。

つまり、たい焼きと大判焼きは違うってことだね。
459デフォルトの名無しさん:2007/01/24(水) 03:49:52
たい焼きとたこ焼きぐらいちがうわ!
460デフォルトの名無しさん:2007/01/24(水) 03:56:26
>>432
今なら、6.0のURLを示すべき
461デフォルトの名無しさん:2007/01/24(水) 03:58:55
>>441
今なら、ソーシャルブックマークに登録すべき
462デフォルトの名無しさん:2007/01/24(水) 03:59:36
>>443
大学ならかなりやってるだろう。
高校でもやってるところ、あるんでないかな
聞いたことがある。
463デフォルトの名無しさん:2007/01/24(水) 04:00:36
>>445
それじゃ、Cから初めても同じ事。
JavaのforとCのforはほぼ同じ。
むしろ、Cの方が使いにくいところが多い。
Cは、古いコンパイラだとローカル変数やなんかで躓くぞ。
464デフォルトの名無しさん:2007/01/24(水) 04:01:18
>>454
それをいうなら、ドットネットだって
465デフォルトの名無しさん:2007/01/24(水) 04:01:35
CとC++とC#だって名前似てるし
466デフォルトの名無しさん:2007/01/24(水) 04:02:16
そもそも、今のJavaScriptの正式名称はECMAScriptだし

467デフォルトの名無しさん:2007/01/24(水) 04:04:25
>>460
まだ日本語なくね?
英語でいいじゃん、というならそりゃまそーだけどさ。
468デフォルトの名無しさん:2007/01/24(水) 04:16:35
>>463
カンマ演算子ないせいで使いにくい時がある。>Javaのfor文
469デフォルトの名無しさん:2007/01/24(水) 04:18:23
>>466
ECMAScriptの一実装がJavaScriptだ。
>>468
Javaにもカンマ演算子はあるだろ。
470デフォルトの名無しさん:2007/01/24(水) 05:56:08
JavaScript2.0が登場したら、さらに間違えられる可能性蟻
471デフォルトの名無しさん:2007/01/24(水) 07:43:01
>>469
C流のカンマ演算子はJavaにはないと思う。
Javaの構文で使われてるカンマは、
・引数の区切り
・変数宣言での変数リストの区切り
・implementsのインタフェースのリストの区切り
・配列の初期化子の中の要素リストの区切り
等々みたいに何がしかのリストの区切りとしてくらいで、
演算子としては使われていない気が。
472デフォルトの名無しさん:2007/01/24(水) 08:11:06
JLS見ようや。

http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.12
……ないね。

アルトオモッテタヨ……
473デフォルトの名無しさん:2007/01/24(水) 08:13:14
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/operators.html
ない。

Cだと最も結合順位の低い演算子として登場。
474デフォルトの名無しさん:2007/01/24(水) 10:13:45
ファイル名[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 個

読み込めませんっていわれたのですが、これの解決方法を
教えていただきたいです。
475デフォルトの名無しさん:2007/01/24(水) 10:34:36
476デフォルトの名無しさん:2007/01/24(水) 10:58:02
文章を間に挟んだ"*"で分割して表示したいのですがエラーが出て困っています。
どなたかアドバイスいただけませんか?
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]);
}
477デフォルトの名無しさん:2007/01/24(水) 11:57:15
478デフォルトの名無しさん:2007/01/24(水) 11:57:56
すまん使ってたね
479デフォルトの名無しさん:2007/01/24(水) 11:59:33
どんなエラーだよ
とりあえず
String sentence

String[] sentence;
480デフォルトの名無しさん:2007/01/24(水) 12:09:35
エラーが出ますしか言わずどんなエラーかを言わないのが初心者の悪い癖。
お前は解決の為に有用な情報をふるい落とすフィルターになってるんだよ。
ま、ソースを貼ってるだけでもまだいいけど。
481デフォルトの名無しさん:2007/01/24(水) 13:31:03
まあ>>479みたいなエスパーの活躍の場が増えるからいいんじゃない?
なんていうか・・・パズルみたいでwww
482デフォルトの名無しさん:2007/01/24(水) 15:44:55
>>476
エラーは貼るまで放置して…

split(String) じゃなくて split(String, int) を使ってるのに、
何でintに0を入れるかな…API読もうぜ
483476:2007/01/24(水) 15:49:05
>>479
すみません
ソースを張るときに消してしまっていましたが
String sentence[] として宣言しています。

ウインドウアプリケーションでファイルから読み込んだ
一行の文章を、間に挟んである"*"で区切って改行表示したいわけです。
しかし、2行目以降がうまく表示できません。

484デフォルトの名無しさん:2007/01/24(水) 15:56:06
>>483
レス読めカス
485デフォルトの名無しさん:2007/01/24(水) 16:15:33
エラーの詳細をと言っているのに出さない。
有用なレス付けてもらっているのに無視。

手のつけようがありませんね。
486デフォルトの名無しさん:2007/01/24(水) 16:18:18
>>483
477以降の全てのレスはお前に関するものだよ
全部読んだのか?
487デフォルトの名無しさん:2007/01/24(水) 16:19:22
後は放置でいいか。
488デフォルトの名無しさん:2007/01/24(水) 20:11:42
JavaのイベントでWindowが動かされたコトを検知できるものってありますか?
ウィンドウが動かされたコトを検知して、子ウィンドウも動かしたいのですが・・。
489デフォルトの名無しさん:2007/01/24(水) 21:01:13
ウィンドウもjava.awt.Componentのサブクラスなので、
addComponentListenerしてcomponentMovedで処理すれば
使えばいいんじゃない?

490Six Perfections:2007/01/24(水) 21:11:26 BE:798811766-2BP(0)
491デフォルトの名無しさん:2007/01/24(水) 22:35:34
>>490
JPGよりPNGの方がよくね?
492デフォルトの名無しさん:2007/01/25(木) 00:24:50
eclipseで作成したjavaのプロジェクトをレンタルサーバに上げ正常に動作させる方法がわかりません。
どなたか教えて下さい。
レンタルサーバー会社からの指定がレンタルサーバのtomcatにwar形式のファイルを追加し、サーブレットを管理する
との事です。
このように、eclipseでwarファイルを生成しレンタルサーバのtomcatに追加したのですが
サーブレットを実行するとエラーがでてしまいます。

一体なぜなのでしょう?
どなたか教えて下さい。
493デフォルトの名無しさん:2007/01/25(木) 00:26:45
どなたかエスパーのかたはいらっしゃいませんかー?
494デフォルトの名無しさん:2007/01/25(木) 00:32:00
自分まだエスパー5級なんで
495デフォルトの名無しさん:2007/01/25(木) 00:44:35
>>492
エラーが出るじゃなくてどんなエラーかを言えカス
エラーメッセージ貼り付けれカスカスカス
496デフォルトの名無しさん:2007/01/25(木) 00:51:36
javaって強いですか?食べれますか?
497デフォルトの名無しさん:2007/01/25(木) 00:58:50
>>492はエスパー初段の認定試験です。
受験者募集中。
498デフォルトの名無しさん:2007/01/25(木) 00:58:58
飲めます。熱いです。
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ではないならホニャララを実行
と読んでよいのでしょうか?
500デフォルトの名無しさん:2007/01/25(木) 01:55:21
うん
501デフォルトの名無しさん:2007/01/25(木) 01:59:23
有難うございます。
ちなみにjavaはcみたいに、0が偽ということは無いんでしょうか?
502デフォルトの名無しさん:2007/01/25(木) 01:59:45
ない
503デフォルトの名無しさん:2007/01/25(木) 02:06:54
>>501
やってみりゃ分かる。
int c = 1;
if (c) c = 0;
は当然コンパイルできない。
504499: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文は実行されないような気がするのですが、
どうなのでしょうか?
505デフォルトの名無しさん:2007/01/25(木) 05:21:53
そう
506デフォルトの名無しさん:2007/01/25(木) 05:27:33
式 !hoge[0] && len[0] != -1
は、hoge[0]がfalse かつ len[0] が-1以外 でtrue
だからお答えの間違いだね。
左端から丁寧に演算していけば、わかる
507デフォルトの名無しさん:2007/01/25(木) 05:33:00
日本語でおk
508デフォルトの名無しさん:2007/01/25(木) 05:36:10
眠いから嫌っていうか、無理
509デフォルトの名無しさん:2007/01/25(木) 05:36:50
>>506
ありがとうございます。
申し訳ございませんがもう少しお教えください。
hoge[0]に「false」が代入されているとき、
式 !hoge[0] && len[0] != -1
は、hoge[0]がfalse かつ len[0] が-1以外 でtrue
なのでしょうか?
それとも
hoge[0]に「true」が代入されている時なんでしょうか?
510デフォルトの名無しさん:2007/01/25(木) 05:44:10
>式 !hoge[0] && len[0] != -1
>は、hoge[0]がfalse かつ len[0] が-1以外 でtrue
>なのでしょうか?
そう
!hoge[0] && len[0] != -1
!false && (-1以外)!=-1
true && true
true
511デフォルトの名無しさん:2007/01/25(木) 05:44:56
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);
}
512デフォルトの名無しさん:2007/01/25(木) 05:46:20
>>506
有難うございます。
&&が左結合なんですね。
理解できました。
513デフォルトの名無しさん:2007/01/25(木) 05:48:57
506じゃないけど
514デフォルトの名無しさん:2007/01/25(木) 05:50:27
>>513
すいません。
とにかく皆さんどうもありがとうございました!
515デフォルトの名無しさん:2007/01/25(木) 05:51:44
まずい>>511
public static void main(String[] args)
の間違いだ。
516デフォルトの名無しさん:2007/01/25(木) 05:55:22
>>515
大丈夫です。
それくらいわかります。
ちゃんとコンパイルできました。
みなさん、こんな夜中に本当に有難うございます。多謝
517デフォルトの名無しさん:2007/01/25(木) 06:00:44
ttp://www.y-adagio.com/public/standards/tr_javalang/15.doc.htm#5247

#種類の違う演算子には括弧がないと安心できない
#今回は boolean && int はありえないから boolean && (int != int) だが…
518デフォルトの名無しさん:2007/01/25(木) 06:06:16
&&は左結合だが、ここでは&&は1つしかないから結合性は関係ないぞ。
関係あるのは演算子の優先順位。
519デフォルトの名無しさん:2007/01/25(木) 06:18:03
ほんとにみなさん、有難うございます。
実はダイクストラ法の勉強をしているところで、
条件式がややこしくてて困ってたんです。
アルゴリズム初心者だから難しくて・・・ orz
520デフォルトの名無しさん:2007/01/25(木) 09:04:48
>>499
実際のコードでは配列だったのかも知れないけど
一連の質問においては配列である必要ゼロだったんじゃなかろうか。
521デフォルトの名無しさん:2007/01/25(木) 09:29:32
Swingで、とあるJButtonを押してから多少時間のかかる処理をする前に
とあるJWindow(=メッセージwindow)で「処理中」である旨を表示(JLabelで)させて、
その処理のあとでメッセージwindowをdisposeで消してるんですが、

メッセージwindowが完全に表示される前にその重い処理に移ってしまうらしく、
文字が表示されていないwindowがなんか出てるというブサイクな事態になっています。

何かイイ対処法を思い当たられる方はいらっしゃいませんか?
よろしくお願いします。
522デフォルトの名無しさん:2007/01/25(木) 09:59:10
>>521
別スレッドで実行してもそうなるの?
523デフォルトの名無しさん:2007/01/25(木) 10:28:01
>>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();
524デフォルトの名無しさん:2007/01/25(木) 10:37:16
>>522-523
ご協力ありがとうございます。

>>523
とても参考になりました。
ありがとうございます。

Object#waitとか#notifyに目が行ってました…
どうやって使うんだろう、と
525デフォルトの名無しさん:2007/01/25(木) 13:48:37
>>519
条件が複雑なときは、一気に&&や||でつながずに
if文切ったりして、
順番に論理に沿って分解してやったほうが分かりやすいかもしれん。

最適化は後でも出来る。
526デフォルトの名無しさん:2007/01/25(木) 13:53:31
最適化じゃなくて見易いようにだと思うが…
つまり最初は…なんて意味がない。
理解出来ないなら仕方ないけど…
527デフォルトの名無しさん:2007/01/25(木) 14:15:19
どうでもいい質問
Mathクラスはjava.mathパッケージではない
なんで?
528デフォルトの名無しさん:2007/01/25(木) 14:27:47
>>526
最適化ってのは、論理式の最適化の事なんだが・・・
判定の順番を考えたり、とかのことを言ってるつもり
529デフォルトの名無しさん:2007/01/25(木) 14:35:39
>>527
初期のJavaにはjava.mathパッケージがなかったから。
530デフォルトの名無しさん:2007/01/25(木) 15:46:37
>>527
sin()とかcos()とか、import宣言せずに即座に使いたいだろ。
そういう意図があったからだと思われ。

初期のパッケージにmathがなかったからというのもある。

531デフォルトの名無しさん:2007/01/25(木) 16:14:39
>>528
今回のは明らかにそういう話じゃないだろう。
532519:2007/01/25(木) 16:46:56
&&や||でつなぐと最適化されるのですね。
ありがとうございました!
533デフォルトの名無しさん:2007/01/25(木) 16:48:12
そんなのコーディングによるだろw
534デフォルトの名無しさん:2007/01/25(木) 17:02:56
>>532
なりすます気ゼロだろ
535デフォルトの名無しさん:2007/01/25(木) 17:06:52
毎時15分、30分、45分、60分に周期的にメソッドを実行するプログラムを書きたいの
ですが良い方法が浮かびません。java.util.Timerクラスを使い15分毎に実行する事は
出来ましたが、上の動作はできませんでした。

どうすればよいでしょうか。
536デフォルトの名無しさん:2007/01/25(木) 17:12:15
>>535
java.util.Timer の schedule(TimerTask, Date, long) か
scheduleAtFixedRate(TimerTask, Date, long) 使えば?
537デフォルトの名無しさん:2007/01/25(木) 17:13:33
個数制限ありのFIFO方式でオブジェクトを保持したいんだけど、
そういうクラスってある?
あるならクラス名教えてください。
538デフォルトの名無しさん:2007/01/25(木) 17:17:19
>>537
1.5以降なら java.util.ArrayBlockingQueue とか。
539デフォルトの名無しさん:2007/01/25(木) 17:18:40
ごめん java.util.concurrent.ArrayBlockingQueue だった。
540デフォルトの名無しさん:2007/01/25(木) 17:23:10
>>538-539
思いっきりあったんですね。
ありがとうございました。
541535:2007/01/25(木) 17:26:21
>>536
その時Dateはどういう指定をすればいいのでしょうか。
542519:2007/01/25(木) 17:46:45
夜中、ダイクストラ法について質問したものです。
>>532
なりすましは勘弁してください・・・

皆さんのおかげでダイクストラ法とグラフ理論について、だいぶ理解が進みました。
で、コンソール上で最短距離を求める方法は分かったのですが、
これをウィンドウ上で実現させる方法が分かりません。
せっかく勉強したので、絵になったら面白いだろうなと思うんですけど、
(ウィンドウ上に○があって最短距離が○→○みたいに表示)
どなたか参考サイトなどご存知ありませんでしょうか?
543デフォルトの名無しさん:2007/01/25(木) 18:04:03
CSVを出力しようと思ったのですが、文字列の中の"を""に置換できません。
1.5なら、str.replace( "\"", "\"\"" );で置換できると思ったのですが……。
544デフォルトの名無しさん:2007/01/25(木) 18:13:01
>>542
グラフを視覚化するというという特定のゴールにたどり着く前に、
Swingを使ったプログラムの作り方をちゃんと調べた方がいいんじゃ。
本もいっぱい出てるし。
545デフォルトの名無しさん:2007/01/25(木) 18:18:15
もし
x.replace("¥"", "¥"¥"");
System.out.println(x);
とやってるなら間違い。
546デフォルトの名無しさん:2007/01/25(木) 18:20:15
>>543
replaceの戻り値を使用してる?
547デフォルトの名無しさん:2007/01/25(木) 18:28:19
>>541
一番最初に TimerTask を時間したい時間を渡せば良い。

例えば、直後の 15分、30分、45分、60分 のどれかなら、こんな感じか。
final long period = 15 * 60 * 1000; //15分
Date firstTime = new Date((System.currentTimeMillis() + (period - 1)) / period * period);
548デフォルトの名無しさん:2007/01/25(木) 18:52:53
>>542
Swingスレでグラフ描画ライブラリの話が出てたので、覗いてみるといいよ。
Java低速GUI Swing 5
ttp://pc10.2ch.net/test/read.cgi/tech/1161139809/94-102
549デフォルトの名無しさん:2007/01/25(木) 19:05:24
>>547
おお、これはすごい!
よく考え付きますね。感心しました。
((System.currentTimeMillis() / period) + 1) * periodでないのは重なった時はそのとき実行するためでしょうか。

おかげ解決しそうです。
ありがとうございました。
550543:2007/01/25(木) 19:34:10
>>545
>>546
……吊ってきます……orz
551535:2007/01/25(木) 19:45:41
0分、15分、30分、45分はできるようになりました。
しかし実行間隔がlongでミリ秒なので9999秒以上指定できません。
21600秒間隔(6時間)で実行する時はどうすればいいでしょうか。
552デフォルトの名無しさん:2007/01/25(木) 19:47:28
> しかし実行間隔がlongでミリ秒なので9999秒以上指定できません。
これは笑うところか?
553デフォルトの名無しさん:2007/01/25(木) 20:05:29
int[] seq; と int seq[]; との違いがよくわかりません。
ただ、この場合は結果としては同じことになっているように見えます。
どなたか教えていただけませんでしょうか・・・。
554デフォルトの名無しさん:2007/01/25(木) 20:12:51
>>552
どう考えても笑うところ
>>553
int seq[]は、Cから引きずっている記法
seq が int[] 型の変数であるという表現をしたいので
java的には、int[] seq が推奨される
555デフォルトの名無しさん:2007/01/25(木) 20:13:43
>>551

Javaのlongは、64bitだよ
つまり2の64乗/2が最大値

556553:2007/01/25(木) 20:26:28
>>554
なるほど!
すっきりしました、ありがとう。
557デフォルトの名無しさん:2007/01/25(木) 20:27:41
558535: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);
}
}

559535:2007/01/25(木) 20:33:46
自己解決しました。
560535:2007/01/25(木) 20:36:45
>>559はかたりです
561デフォルトの名無しさん:2007/01/25(木) 20:42:44
初心者ですが質問させてください。
テキストフィールド内の文字を右詰で表示させるには

myJTextFieldA.setHorizontalAlignment( JTextField.RIGHT );

のようなJTextFieldを用いたSwingでないと無理なのでしょうか?
562デフォルトの名無しさん:2007/01/25(木) 21:07:24
>>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
カレンダー狂ってるぞ……
563デフォルトの名無しさん:2007/01/25(木) 21:10:00
> final long period = 6 * 60 * 60 * 1000; //15分
コピペしてコメント直すの忘れた。 15分じゃなくて、6時間ね。
564デフォルトの名無しさん:2007/01/25(木) 21:24:28
あぁ、ちなみに、>>562 は夏時間考慮してないので、
夏時間がある地域だと夏時間中は 1時間ぐらい狂うよ。
565デフォルトの名無しさん:2007/01/25(木) 21:40:41
>>555
それも笑うとこか?
566デフォルトの名無しさん:2007/01/25(木) 21:44:45
>>565
どう考えても笑うところ
567デフォルトの名無しさん:2007/01/25(木) 23:06:00
質問させてください。
現在マルチキャストソケットを予習しているのですが、
マルチキャストソケットを使用する上の注意点で、マルチキャストソケットが
セキュリティホールになる可能性があるため、信用されていないアプレットは使用してはならないと
教科書で学びました。
そこで質問なのですが、信用されていないアプレットとは具体的に
どういうものの事を言うのでしょうか?

沢山あるかと思いますが、その中の一部でいいのでご教授お願いします。
568デフォルトの名無しさん:2007/01/26(金) 00:51:43
アプレットは危険です
569デフォルトの名無しさん:2007/01/26(金) 01:20:01
アプレットを信用するかどうかは使用者の判断が全て。
570デフォルトの名無しさん:2007/01/26(金) 01:35:54
レス有難うございます!!

>>568
それは全てのアプレットが危険ということでしょうか?
>>569
ということは使用者の使い方次第で信用できる、
出来ないが決まるということなんですね。
571デフォルトの名無しさん:2007/01/26(金) 01:40:11
JAVAプログラミングのIf文とFor文ってなんですか?誰か詳しく教えて下さいm(__)m
572デフォルトの名無しさん:2007/01/26(金) 01:49:20
>>570
それは全ての人が危険だと考えているという事でしょうか?
573デフォルトの名無しさん:2007/01/26(金) 02:00:05
>使用者の使い方次第で信用できる、出来ないが決まる
いや、そうじゃない。

例えば俺が「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
丁寧な解説有難うございます!
そうですね、ちゃんと考えればそういう意味ですよね・・・。
理解力不足で申し訳ありませんでした!!


上記の書き込みは無視してください(汗)
576デフォルトの名無しさん:2007/01/26(金) 03:56:52
初心者質問です

今Swingで作成しています
GUI上に画像が張ってあるのですが、
これを10秒ごとにランダムで切り替えたいです
スレッドと乱数を使って、10秒後に切り替えようとしたのですが、
画像自体の更新の仕方がわかりません・・・

すみません、誰かアドバイスを下さい
577デフォルトの名無しさん:2007/01/26(金) 04:23:53
プログラム内で画像はどう保持しているの?
画像はどうやって描いてるの?(paintComponent? JLabel + ImageIcon?)
578576:2007/01/26(金) 04:35:07
JLabel + ImageIcon です
最初にパネル作った時張った画像のまま、
変更することができません・・・
579デフォルトの名無しさん:2007/01/26(金) 04:54:52
>>578
つ JLabel#setIcon(Icon icon)
580576:2007/01/26(金) 05:13:34
>579
すみません、これはセットしたらすぐに切り替わるものですか?
それとも他に何か必要でしょうか?
581デフォルトの名無しさん:2007/01/26(金) 05:18:36
なぜ試さずに脊髄反射で聞いてくる?
自分の作ったコードに入れるなり実験コードを書くなりすれば分かることじゃないか。
582576:2007/01/26(金) 05:29:59
>>581
色々試したのですがよくわからなくて・・・
setIconの後でもGUI上での表示が変わりません
これはやり方が間違っているのか、
それとも画面を更新するやり方があるのか・・・
583デフォルトの名無しさん:2007/01/26(金) 05:38:26
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は画像サイズに合わせるためだが、無くても表示は切り替わってくれる。
スレッドを使ってるらしいが、ちゃんとシングルスレッドルールに基づいてコードを書いてる?
584デフォルトの名無しさん:2007/01/26(金) 06:10:05
JavaのGUIって実践でも使われてるんですか?
初心者の勝手な想像ですが、
Javaはシステムに特化してGUIとかは他の言語でやるのが普通
ってイメージなんですけど。
awtとかswingは純粋なソフトウェア開発でも使うのでしょうか?
585デフォルトの名無しさん:2007/01/26(金) 06:14:55
ここに、5年くらいJavaでGUIアプリ書く業務でご飯たべてる人ならいる。
1.4が出るまではイロモノ気味だったが、1.4以降は実用的よ。

世間の動向はシラネ。

586デフォルトの名無しさん:2007/01/26(金) 06:18:15
即レスありがとうございます。
迷いが吹っ切れました。面白そうだし勉強してみよう
587デフォルトの名無しさん:2007/01/26(金) 07:49:44
でも年収400万でした><
588デフォルトの名無しさん:2007/01/26(金) 08:59:22
ニート・フリーターに比べれば十分すぎるだろ
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を配列データにする方法不明

アドバイス等お願いします。
590デフォルトの名無しさん:2007/01/26(金) 12:46:24
BufferedImage の getGraphics で取れる Graphics2D のインスタンスに描画するんじゃいかんのか?
591589:2007/01/26(金) 13:13:07
>>590
既に描画されているGraphicsが渡される事を仮定しています。
BufferedImageにsetGraphics的なメソッドがあればいいのですが・・・。
592デフォルトの名無しさん:2007/01/26(金) 14:34:21
>>591
その仮定が間違ってるだろ。
Graphics 自体は何のイメージデータも持ってないよ。たぶん。
593デフォルトの名無しさん:2007/01/26(金) 14:35:59
>>591
基本的に無理。

Graphics ってのは必ずしも Image と結びついてるわけじゃないし。
例えば PostScript なプリンタに印刷するための Graphics とかだと、
java.awt.Image 作らずに PostScript 書いてプリンタに送信しちゃう事だってあるわけだし。
594デフォルトの名無しさん:2007/01/26(金) 14:38:26
MacOSX で Pure Java アプリを作っています。

java -jar hoge.jar test.txt
の代わりに,test.txt を hoge.jar のアイコンにドラッグアンドドロップして引数を与えて起動することはできないでしょうか?

hoge.jar のアイコンをダブルクリックすれば,引数なしでの起動はできるのですが。
595デフォルトの名無しさん:2007/01/26(金) 14:55:03
>>594
Windows だとショートカット作ってやると、Windows がよきにはからってくれたりするんだけど。
OS とかファイルマネージャとかの設定の話っぽいので、
Macやってる人が多そうなところで聞いた方が良いかも?

Mac de Java
http://pc9.2ch.net/test/read.cgi/mac/1138543708/
596デフォルトの名無しさん:2007/01/26(金) 15:27:17
鼻持ちならないCMやってるから教えたくない。
597デフォルトの名無しさん:2007/01/26(金) 16:12:06
教えてください。以下の場合waitするときにobjectのロックは開放されますか?

synchronized (object){
synchronized (anotherObject){
anotherObject.wait();
}
}
598デフォルトの名無しさん:2007/01/26(金) 16:14:58
されない
599デフォルトの名無しさん:2007/01/26(金) 16:28:45
>>547
new Date()か。
Calendarを使いたくなる
Dateはイヤーな感じ
600デフォルトの名無しさん:2007/01/26(金) 16:59:07
車輪の再発明を避けたいなら Quartz がお勧め。
http://www.opensymphony.com/quartz/wikidocs/TutorialLesson6.html
601デフォルトの名無しさん:2007/01/26(金) 17:00:25
>>567
JarSignerによって署名されていないアプレットが
危険なアプレットと見なされる、ということがある。

誰が作ったのか、証明証をJARファイルに
入れればいい。
やりかたは「アプレット 署名」でぐぐれ。
一見面倒くさく見えるが、Apache Antのgenkey, sinjarタスクを
使うと非常に楽だ。
602デフォルトの名無しさん:2007/01/26(金) 17:00:38
>>568
おいおい、いい加減なことを言うな
603デフォルトの名無しさん:2007/01/26(金) 17:00:56
>>570
とりあえず「署名」だ
604デフォルトの名無しさん:2007/01/26(金) 17:01:11
>>571
VB厨かお前は?
605デフォルトの名無しさん:2007/01/26(金) 17:01:34
>>573
論点がずれて居るぞ。
606デフォルトの名無しさん:2007/01/26(金) 17:02:24
>>575
お前って絶対に他人に流されやすくて騙されやすい奴だろ。

フィッシング詐欺などの悪徳商法に引っかかったこと無いか?
607デフォルトの名無しさん:2007/01/26(金) 17:02:50
>>577
Java ImageIOでググレ
608デフォルトの名無しさん:2007/01/26(金) 17:03:25
>>584
すべての質問にYes.
609デフォルトの名無しさん:2007/01/26(金) 17:03:52
>>587
ホワイトカラーエグゼプションがこのまま
適用されたら、地獄だぞ
610デフォルトの名無しさん:2007/01/26(金) 17:06:09
>>600
まるで黒野トリガーみたいな名前だ。
そこからとってきたか?
611デフォルトの名無しさん:2007/01/26(金) 17:07:14
なんじゃこの連レス基地外
612デフォルトの名無しさん:2007/01/26(金) 17:13:19
UnixのcronをJavaで実現できるAPIってことか。
ええねえ。しかしちょっとしたスクリプトだったら
わざわざ全部Javaで書かずに
cronからJavaを呼び出すかcron + shだけで
済ませた方がパフォーマンスがええかな?
プロセスを切るのがめんどいし。
cronがプロセスをつかってJavaプログラムを起動する前に、
自動的にプロセスを切ってくれるような仕組みには
できんかな?
613デフォルトの名無しさん:2007/01/26(金) 17:13:36
>>571
プログラムしてて分からない所が出てきたら
Ifと入れておく
プログラムを書いていてイライラしてきたら
Forと入れておく

こうすることで後で見直したときに、
何処で悩んだのか一目瞭然という訳だ。便利だろ?

IfとかForを書かなくてすむように勉強頑張れ。             ww
614デフォルトの名無しさん:2007/01/26(金) 17:53:49
607は確認を質問だと誤認したようだな。
615デフォルトの名無しさん:2007/01/26(金) 17:57:10
スレの流れを読まずにレスするとそうなる
616535: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次元配列で格納する方法をご教示ください。
618デフォルトの名無しさん:2007/01/26(金) 20:00:09
>>617
帰ってきた1次元配列から2次元配列を作成するユーティリティを自作する
619デフォルトの名無しさん:2007/01/26(金) 20:02:15
>>616
「気持ち悪い」とか「気持ち悪くない」ってのは、個々人でかなり違うからなぁ。
小細工する余地はあるんじゃないかと思うけど、それで解消できるかは分からんし。

ひとつのタイマーに詰め込むの止めれば?
620デフォルトの名無しさん:2007/01/26(金) 20:39:30
>>617
Java2D アフィン変換でググれ
621デフォルトの名無しさん:2007/01/27(土) 00:30:55
>>583
クマー?
622デフォルトの名無しさん:2007/01/27(土) 00:55:57
すみません質問です。

シフト演算子を使ってランダム選び出したビット分左シフトさせた場合に、
あらかじめ指定しておいた数以上になった場合はあぶれたビットだけ切り捨てる様な動作はできますでしょうか?

例えば128を指定しておいた際に7 << 6などした場合に128以上の部分のみ切り捨てたいです。


00000111→1|11000000→11000000


分かりにくいと思いますがこのような動作をさせたいです。
アドバイスよろしくお願いします。
623デフォルトの名無しさん:2007/01/27(土) 01:10:00
128だとたまたま2のn乗だから100000000(ゼロイクツダ)で&すればいけるな。
624デフォルトの名無しさん:2007/01/27(土) 01:10:53
>>622
128以上? 128より上?
int val = (7 << 6) & 0xFF; //もしくは & 0x7F
625デフォルトの名無しさん:2007/01/27(土) 01:11:44
逆だ。1の列と&する。
626デフォルトの名無しさん:2007/01/27(土) 01:12:43
>>622
その例だと256以上ではないかい?
(7 << 6) & (256 - 1)
627デフォルトの名無しさん:2007/01/27(土) 01:20:12
レスありがとうございます。
128以上ですね。
ビット列での計算処理をする場合に桁上がりを防ぎたいのです。

ちなみに128と言うのはたとえになりまして実際には2n乗の数字を指定した際に
128ならば0-127の範囲で、256ならば0-255までの範囲で数字を利用、の様にしたいです。

考え方が分からなかったもので苦労しております。
628デフォルトの名無しさん:2007/01/27(土) 01:48:19
もう答え書かれてるけどまだ解決しないん?
629デフォルトの名無しさん:2007/01/27(土) 02:19:40
すみませんわかりました。
(i << j) & (k)とした場合にkに最大値を入れるようにしたらいいのですね。

凄く助かりました。
ありがとうございました。
630デフォルトの名無しさん:2007/01/27(土) 02:43:51
質問です。

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])

となるようにデータを編集したいんですが、
文字列操作でうまくできますかね・・
631デフォルトの名無しさん:2007/01/27(土) 02:45:46
なんかスレ違いたったかも・・
宿題のほうに書いてきます。

すみませんでした。
632デフォルトの名無しさん:2007/01/27(土) 02:58:44
その書き方じゃ無視されて終わりだと思うが…

まずは理解できる質問を書いておくれ
633デフォルトの名無しさん:2007/01/27(土) 04:56:52
>>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できないと言われている。
なぜですか???
635デフォルトの名無しさん:2007/01/27(土) 08:16:20
>>634
そんなクラスは無いから
636デフォルトの名無しさん:2007/01/27(土) 08:21:03
ない、といわれてるのは分かるんだけど、JDBC4.0ってmustangに
入ってるんでしょ?なーんで入ってないの?別のjarを落としてこないと
いけないとか??
637デフォルトの名無しさん:2007/01/27(土) 08:26:07
自己解決した。
こーいうことだったのね。残念。
ttp://d.hatena.ne.jp/benikujyaku/20070102
638デフォルトの名無しさん:2007/01/27(土) 08:27:23
そういうことだ
ベータに入っているからといって安心してはいかん
639デフォルトの名無しさん:2007/01/27(土) 10:45:03
こんなくそ遅いサイトつくりやがって。
http://www.muji.net/store/
640デフォルトの名無しさん:2007/01/27(土) 11:16:29
複数の道具とそれに対応するメソッドがあるんですけど、
効率のいいメソッドの呼び出し方っていうのはありませんか?

薬草なら回復のメソッドを呼び出す。
爆弾ならダメージのメソッドを呼び出す。
っていう感じで。

switch文でだらだら書く以外思いつかんのです。
641デフォルトの名無しさん:2007/01/27(土) 11:22:57
道具クラスを作ってやって回復とかダメージとかの種類とその威力とかを入れとく
642デフォルトの名無しさん:2007/01/27(土) 11:27:25
>>641
迅速な対応ありがとうございます。

書き忘れましたが、エフェクトを全て違うものにするのですが
どのように呼び出したらよいでしょうか?

添え字などで特定のメソッドを呼び出せれば一番良いのですが。
643デフォルトの名無しさん:2007/01/27(土) 11:28:41
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); }
644デフォルトの名無しさん:2007/01/27(土) 11:39:05
>>643
なるほど、interfaceですか。
大変参考になりました。ありがとうございます。
645デフォルトの名無しさん:2007/01/27(土) 11:39:25
item.use(target)っていう呼び出しだとitemがtargetをuseするみたいに
読めてしまうな。
item.applyOn(target)…あんま変わらんか。
646デフォルトの名無しさん:2007/01/27(土) 12:40:23
>>645
そこでVisitorパターンですよ。
647646: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);}}
}
648646: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());}}
649デフォルトの名無しさん:2007/01/27(土) 13:44:55
javaの.classファイルの中身って見る方法ありますか?

クラスファイルだけ持っていて、ソースが見たいんです
650デフォルトの名無しさん:2007/01/27(土) 13:54:26
>>649
jadでググれ。ただし、そのclassファイルのライセンスに違反しないようにね。
651デフォルトの名無しさん:2007/01/27(土) 14:36:08
javaで画像処理を行おうと思い、http://media.itc.u-tokyo.ac.jp/jsim/src/で配布されているライブラリを使おうと思いました。(http://media.itc.u-tokyo.ac.jp/jsim/src/jsim-1.1.zip
で、
http://media.itc.u-tokyo.ac.jp/jsim/src/jsim/graphic/api/jp/ac/nime/computer/grpsimulator/ImgPr/WhiteBlackOp.html
http://media.itc.u-tokyo.ac.jp/jsim/src/jsim/graphic/api/jp/ac/nime/computer/grpsimulator/ImgPr/HistogramFlat.html
ここらへんを参考にしながら

WhiteBlackOp WBO = new WhiteBlackOp();
HistogramBinaryAnaDisc HBAD = new HistogramBinaryAnaDisc();
for(int i = 0;i > img2.getHeight();i++){
for(int j = 0;j > img2.getWidth();j++){
int rgb = img2.getRGB(i,j);
int b = rgb%256;
rgb >>= 8;
int g = rgb%256;
rgb >>= 8;
int r = rgb%256;
int Lumi = (int)((0.299*r + 0.587*g + 0.114*b)*256);
YUV_ij = WBO.MakeWByuv(Lumi);
img2_conv.setRGB(i,j,YUV_ij);
}}
HBAD.Calculation(img2,img2_conv,params);
ってやったらHBAD.Calculation(img2,img2_conv,params);でぬるぽが出るんですけど、どうすればよいでしょうか?
652デフォルトの名無しさん:2007/01/27(土) 14:46:47
すいません、改めてみると滅茶苦茶すぎるので>651は自分で治してきます。失礼しました
653デフォルトの名無しさん:2007/01/27(土) 15:01:18
>>650
助かりました、ありがとうございます
自分のファイルなので大丈夫ですw
654デフォルトの名無しさん:2007/01/27(土) 16:33:10
300×300のウインドウの中で、Nキーを押すと画面が変わって
100×100のgazou.jpgを出てくるようにするのですが、
その画像を小刻みに震えるようにしたいんです。
マンガの目覚まし時計のようなイメージというか、携帯のバイブのイメージというか。
表現力に乏しいので意味不明かもしれませんがどなたか理解できる方がいたら
教えてください。「そんなこと無理」っていうのでもお願いします
655デフォルトの名無しさん:2007/01/27(土) 16:43:05
可能。
確認だけど、JavaScriptの話とは混同してないよね?

できてる分だけでも
ソース出しながら相談すると
話早いよ。
656デフォルトの名無しさん:2007/01/27(土) 17:00:40
インターフェースを継承してサブインターフェースって作れますか?
657デフォルトの名無しさん:2007/01/27(土) 17:15:02
たぶん混同はしてないとおもいます。曖昧な言い方ですみません。
もうほぼ完成してて、あと画像揺らす機能追加するだけなのですが、
ソースだしたほうがいいですか?
658デフォルトの名無しさん:2007/01/27(土) 17:15:57
>>656
作成できる。APIにinterfaceを継承というパターンあるよ。
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/javax/swing/MutableComboBoxModel.html
659デフォルトの名無しさん:2007/01/27(土) 17:24: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とか使ってそれなりに改造汁。
660デフォルトの名無しさん:2007/01/27(土) 17:29:45
>>656
interface Super1 {}
interface Super2 {}
interface Sub extends Super1, Super2 {}
661デフォルトの名無しさん:2007/01/27(土) 17:33:53
>>649
手っ取り早く見るなら、バイナリ(16進)エディタ。
そればら著作権がどうこうは気にしなくて良いだろう
662659:2007/01/27(土) 17:34:05
>>657
コンポーネントサイズはレイアウトマネージャに任せるなり自分で設定するなり適切に。
663デフォルトの名無しさん:2007/01/27(土) 17:35:22
>>653
EclipseのプラグインJadClipseもあるぞ。


つうか、自分のファイル調べるなら、
EclipseのBytecode OutLineプラグインを
使うと面白いぞ。ソースコードをどの場で修正するたびに
バイトコードがどうなってるかわかる。

664デフォルトの名無しさん:2007/01/27(土) 17:36:48
>>654
アンフィチームのAppletをダウソしてみるとかでどうだろう。
画像の上に波紋が現れるだけだが。

バイブって携帯Javaか?

Javaプログラムから携帯をバイブさせる方法ってあるのか?
むかしはできないと聞いたが。
665デフォルトの名無しさん:2007/01/27(土) 17:40:23
>>658
ありがとうございます。

もう一つ回答お願いします。
コンストラクタを記述してないクラスを継承すると、
スーパー・コンストラクタが不可視ですとEclipseに怒られます。
スーパークラスはソースがなくて弄れないのですが、こういう場合どうすればいいでしょうか?
サブ、スーパーどちらもコンストラクタは何もしなくていいんですが。
666デフォルトの名無しさん:2007/01/27(土) 17:46:07
コンストラクタは継承するものではない。

継承したときにサブクラスでコンストラクタを
定義したか?

スーパークラスのJavadocくらいはあるか?
なければ、型階層をみるべき
コードアシストをうまく使うという手もある。
667デフォルトの名無しさん:2007/01/27(土) 17:47:44
不可視、ということはそのコンストラクタがprivateに
なっている可能性がある。
そのときはサブクラスではコンストラクタを作ることができない。
668デフォルトの名無しさん:2007/01/27(土) 17:53:33
>>665
実際にエラーになるコードを書いたほうがいいよ。
エラーメッセージは正確な文面を。
669デフォルトの名無しさん:2007/01/27(土) 17:54:58
>>665
eclipseのエラーメッセージは知らないが。
ソース上でコンストラクタを記述しなければデフォルトコンストラクタが生成される。
スーパークラスのコンストラクタがprivateになってるってことはない?
もしくはスーパークラスがfinalクラスとか。
それか、スーパークラスに引数なしのコンストラクタが定義されていない可能性も。
その場合はサブクラスでコンストラクタを記述していなければデフォルトコンストラクタが作られて、
スーパークラスの引数なしコンストラクタを呼ぼうとして死ぬ。
670665:2007/01/27(土) 18:02:07
具体的には、
public class Connector extends javax.microedition.io.Connector{
}
この状態で以下のエラーがでます。
暗黙的スーパーコンストラクタConnector()は
デフォルトコンストラクタについて不可視です。
明示的コンストラクタを定義する必要があります。

public class Connector extends javax.microedition.io.Connector{
Connector(){}
}
こう書くと、記述したコンストラクタのとこで同じエラーが出ます。
671デフォルトの名無しさん:2007/01/27(土) 18:05:55
>>669
TestC extends Test の場合に、

privateで親クラスのコンストラクタを宣言した場合、
暗黙的スーパー・コンストラクター Test() は、デフォルト・コンストラクターについては不可視です。
明示的コンストラクターを定義する必要があります。

親クラスをfinalで宣言した場合、
型 TestC は final クラス Test をサブクラス化できません。

親クラスで別のコンストラクタを定義してデフォルトコンストラクタを宣言していない場合、
暗黙的スーパー・コンストラクター Test() は、デフォルト・コンストラクターについては未定義です。
明示的コンストラクターを定義する必要があります。

eclipse 3.1.1
672デフォルトの名無しさん:2007/01/27(土) 18:07:41
>>670
だから、javax.microedition.io.Connectorの引数無しコンストラクタが存在しないかprivateなんだよ
javax.microedition.io.Connectorのjavadocをよく見ろ
673デフォルトの名無しさん:2007/01/27(土) 18:09:34
>>670
ちょろっと検索したけど、javax.microedition.io.Connectorは
StringのURLでjavax.microedition.io.Connectionなどを得る
クラスメソッドだけで構成されているクラスじゃないか

なぜに継承する…
674デフォルトの名無しさん:2007/01/27(土) 18:10:19
>>671
じゃあ、スーパークラスのデフォルトコンストラクタがprivateなコンストラクタなんだね。
675665:2007/01/27(土) 18:22:22
結局、引数無しコンストラクタが存在しないクラスは継承できないってことですか。
>>673
URLが特定形式の場合だけ違う処理をさせたいんです。
676デフォルトの名無しさん:2007/01/27(土) 18:34:58
>>675
そんなことは誰も言ってない。
スーパークラスに引数がないコンストラクタがなくても、
引数のあるコンストラクタを呼び出せるのなら、それを呼び出せばいい。

でも、>>671のエラーメッセージのパターンを見ると、
スーパークラスの引数がないコンストラクタはprivateであることが今回の原因で、
引数のないコンストラクタがないわけではなさそうだが。
677デフォルトの名無しさん:2007/01/27(土) 18:35:05
直近のレスぐらい読めよな・・・
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);
}
}
}
679デフォルトの名無しさん:2007/01/27(土) 18:45:12
>>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);
680デフォルトの名無しさん:2007/01/27(土) 18:49:57
>>678
setLayoutでFlowLayoutを指定しているから。
自分でsetBoundsを無視してくださいと書いている。
個人的には好みではないがsetLayout(null)を使え。
681678:2007/01/27(土) 18:52:51
>>680
自己解決したので引っ込んでてください
682デフォルトの名無しさん:2007/01/27(土) 18:56:19
(>>681).setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
683デフォルトの名無しさん:2007/01/27(土) 18:57:24
>>678
本当にactionListerのsetBoundsは機能してるのか?
コピペ動作だと、
起動直後にFlowLayoutで真ん中に配置されたボタンが表示される。
ボタンを押すとボタンが消える。
684665:2007/01/27(土) 19:08:22
>>676
ありがとう。理解しました。
Javadocにコンストラクタ書いてなかったから、定義してないと思いこんでました…
>>679
呼び出し元いっぱいあるし、これからも増えそうなのです。
メソッド内でConnectorのメソッド呼び出してみます。
ありがとう。
685デフォルトの名無しさん:2007/01/27(土) 19:35:28
javaでウインドウ型アプリケーションを作っているのですが
フレームの区切りを作るにはどうしたらいいのですか?

┏━━━━━━━━┓
┃            ┃
┃            ┃
┃            ┃
┃            ┃
┃            ┃
┃            ┃
┗━━━━━━━━┛
      ↓
┏━━━┳━━━━┓
┃     ┃      ┃
┃     ┃      ┃
┃     ┃      ┃
┣━━━┻━━━━┫
┃            ┃
┃            ┃
┗━━━━━━━━┛
こういう感じにしたいのですが
よろしければお願いします
686デフォルトの名無しさん:2007/01/27(土) 19:42:07
687デフォルトの名無しさん:2007/01/27(土) 19:51:53
>>680
setLayout(null)で解決しました。
ありがとうございました。
688デフォルトの名無しさん:2007/01/27(土) 20:39:12
684それ例え継承できてもなんの解決にもならんだろ…
689665:2007/01/27(土) 21:20:15
>>688
いや、継承はしませんよ。
>>679の下のやり方でやるってことです。
690デフォルトの名無しさん:2007/01/27(土) 23:21:01
javax.swing.ImageIcon等で読込んだイメージの四隅にドラッグポイント
を付けてドラッグによるイメージの拡大縮小を実現させたいんですが
何か良い方法はありませんか?
691デフォルトの名無しさん:2007/01/28(日) 00:00:27
>>690
そういうAPIはないので、
ツマミを描画する。
マウス移動イベントを処理する。
あたりを地道に自分で実装して。
692デフォルトの名無しさん:2007/01/28(日) 00:53:31
LinkedListクラスのContainsメソッドでは
引数のオブジェクトと同じものがあるかを調べる際に
equalメソッドを使用していると思うのですが
オリジナルクラスのオブジェクトを引数とするときは
そのオリジナルクラスでオーバーライドしたequalメソッドを
containsメソッドが使用してくれると考えてよいのでしょうか?

あと、オリジナルクラスのオブジェクトをリストに入れているので
getFirstメソッド等の戻り値がオリジナルクラスになるものだと
考えているのですが、オリジナルクラスの変数に代入しようとすると
コンパイラで期待値がオリジナルクラス、検出値がObjectクラスであり
違うと怒られます。
これはキャストして代入するしかないのでしょうか?

693デフォルトの名無しさん:2007/01/28(日) 01:03:40
>>692
一番目は実験すれば分かりそうなので任せる

二番目はAPIの javadoc を見よう。
1.4までならgetFirstの戻り値はObjectになってるはず
5.0以降ならLinkedListのインスタンス作成時にクラスを指定すればOK
694デフォルトの名無しさん:2007/01/28(日) 01:06:04
>>691
ご助言ありがとうございます。
画像の四隅にマウスイベント付きのツマミを描画できれば
実現できそうですね。
といってもツマミを描画する方法すらわかりませんので
その辺りから調べてみます。
695デフォルトの名無しさん:2007/01/28(日) 01:20:40
フレームかインライン・フレームを使うのは?
696デフォルトの名無しさん:2007/01/28(日) 02:47:31
いやだといったら?
697デフォルトの名無しさん:2007/01/28(日) 03:56:14
>>695
>>691でJDesktop + JInternalFrameを使うということかな。
独自のpluggable look and feelの実装を頑張ればなんとかできそうだな。

698デフォルトの名無しさん:2007/01/28(日) 04:50:44
オライリーのjavaクイックリファレンス
http://www.oreilly.co.jp/books/4873110548/toc.html

のような、ちょっとした処理がまとまってのってるような
まとめページを
どなたかご存じないですか?
699デフォルトの名無しさん:2007/01/28(日) 05:20:26
「レシピ」とか「クックブック」をキーワードにすると見つかるかも。
書籍しか引っかからないかもしれんけど。
700デフォルトの名無しさん:2007/01/28(日) 06:26:16
見つからなければ目次にあるキーワードで個別にぐぐるのがいいんじゃないかな
701デフォルトの名無しさん:2007/01/28(日) 10:37:26
Jarで外部のjarを使うためにClass-Pathを追加すると思うんですがA.jarとB.jarの2つを含めたいときどうすればよいでしょうか。
Class-Path: A.jar;B.jar (コンマで区切る)
だと思ってたのですがこれだとだめでした。
702デフォルトの名無しさん:2007/01/28(日) 10:43:21
セミコロンで区切っているように見えるのは気のせいか?
実はどっちもダメで、空白で区切るのが正解。

http://java.sun.com/javase/6/docs/technotes/guides/jar/jar.html#Main%20Attributes

703デフォルトの名無しさん:2007/01/28(日) 10:50:04
>>702
あ、ありがとうございます。無事できました。
;とか,とかいろいろ試したのですがスペースとは気がつきませんでした。

すいません、;はセミコロンでした。
704698:2007/01/28(日) 11:18:56
>>699-700

ありがとうございます。
やっぱり、書籍として販売できるような内容が、
その辺に転がってるわけないですよね。
705デフォルトの名無しさん:2007/01/28(日) 12:01:02
>>704
「書籍>ウェブサイト」とは限らないよ。
こういうのはどうなん?
http://www.atmarkit.co.jp/fjava/javatips/index.html
http://hp.vector.co.jp/authors/VA014436/prg_memo/java/
706デフォルトの名無しさん:2007/01/28(日) 12:09:29
>>705
悪い事いわんから @it だけは止めとけ。
下の方も Java では大文字小文字は区別されるのに Null とかなってたりするし……
707デフォルトの名無しさん:2007/01/28(日) 12:53:31
よりにもよって挙げるのがその2つとはどういう了見だw
708デフォルトの名無しさん:2007/01/28(日) 13:46:30
>>681
いきなりこんな無礼な発言を
するやつがいるとは
709デフォルトの名無しさん:2007/01/28(日) 13:47:12
>>686
BorderLayoutでPanelにPanelを入れ子に
するという手もありジャマイカ?
710デフォルトの名無しさん:2007/01/28(日) 13:49:00
>>691
どうでもいいけどクワガタツマミを思い出した。

ツマミを描画するクラスを使うということか。
自作するのかと思った。
711デフォルトの名無しさん:2007/01/28(日) 13:50:33
>>692
リストに突っ込みたいオブジェクトに正しい
equals(),hashcode()メソッドのオーバーライド実装がないと
意味がない場合があるぞ。
712デフォルトの名無しさん:2007/01/28(日) 13:55:47
>>701
そんなモン使わずに
FatJar(OneJar)で一発まとめちまえよ!
713デフォルトの名無しさん:2007/01/28(日) 13:56:37
>>706
@ITやめとけってのは
嘘書いてあるからか?
いくつかはためになったが。
714デフォルトの名無しさん:2007/01/28(日) 14:03:21
その区別ができるやつなら別にいいとは思うがな。
715デフォルトの名無しさん:2007/01/28(日) 14:07:41
もっとも、区別できる奴は@IT見る必要ないんだよな。
716デフォルトの名無しさん:2007/01/28(日) 14:23:15
JavaTipsの平○正○の記事は無視しとけ。

717デフォルトの名無しさん:2007/01/28(日) 15:11:53
情報は鮮度か正確さが大事だけど両立させるのは難しいな。どっちかでOK。
わかりやすさと正確さを両立させるのも難しいが、これはそう努力してくれないと害悪がある。
718デフォルトの名無しさん:2007/01/28(日) 15:20:01
>>698
その本読んだことないから違っていたらゴメン。

Java Tips (英語)
ttp://www.java-tips.org/java-se-tips/
Collected Java Practices (英語)
ttp://www.javapractices.com/index.cjp
Java Swing Hacks
ttp://www.oreilly.co.jp/books/4873112788/download.html
719718:2007/01/28(日) 15:35:06
>>698
連レスごめん。
あとは会員登録(私が登録したときは無料だった)が必要だけど、
Java Developer ConnectionのTech Tips 日本語版ってのもある。
http://sdc.sun.co.jp/java/index.html

以上。
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は嘘ばかりだぞ!このスレの回答こそが正しいぞ!ウッキー!
723698:2007/01/28(日) 17:51:16
>>705-707
>>713-719
>722

レスありがとうございます。
基本的には、鵜呑みにせず、上記のようなサイトを参考にしろという事ですね。

私としては、今まで使った事の無い処理の、定石やクラスの使い方、プログラム例
を知るのに便利なサイトを探していたのですが、なかなか無いようですね。

これからもその手のサイトを探しつつ、自分で見つけたTipsとかがあったらwebで公開するように気をつけます。
724デフォルトの名無しさん:2007/01/28(日) 17:52:33
>>720
そういう場合は普通、APIにかかれてない?

containsの場合は
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/LinkedList.html
>指定された要素がリストに含まれている場合に true を返します。
>つまり、リストに、(o==null ? e==null : o.equals(e)) となる
>要素 e が 1 つ以上含まれている場合にだけ true を返します。
とあるから、equalsは使われる。

hashCodeについては
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Object.html#hashCode()
で示されているように。equalsと連動して実装する必要がある

まあequals周りくらいは覚えておいてもいいがAPIよく読もうぜってこったな。
725デフォルトの名無しさん:2007/01/28(日) 18:00:05
>>722
このスレだけが正しいと言い切るのは厳しい。

俺も@ITは情報が古臭くなってきたなと思えるころ。

スタックアスタリスクやThinkITのほうがよさげだね
726デフォルトの名無しさん:2007/01/28(日) 18:40:22
初心者なのですが質問です。
メソッドに関してのstaticの上手な使いどころってどこでしょうか?
staticメソッドにして、newしないでも使えるってのがメリットかなと思い
頻繁に使わない物に関しては一々newするのでは無くstaticメソッドにしてます
JVMの動作については今一謎なのですが、この見解・使い方は誤りでしょうか?
どの様なものをstaticにして、どの様なものをそうしないのか?
どなたか詳しい方居ますか?
727デフォルトの名無しさん:2007/01/28(日) 18:57:03
>>726
オブジェクト指向的にはいろいろ理屈はあるだろうけど、
メソッドでインスタンス変数を参照するかどうかを
ひとつの基準にしてもよいのでは?
728デフォルトの名無しさん:2007/01/28(日) 18:57:16
オブジェクト指向を理解すれば分かります
729デフォルトの名無しさん:2007/01/28(日) 19:21:54
>>727-728
ありがとう御座います
ただいま勉強中でして、その最中に沸いた疑問です
勿論、まだ理解していないという事なのですが…。
>>727さんの言っている事は
色々理屈はあるだろうけど、インスタンス変数を全く参照しない場合は
staticにしてもいいんじゃない? という事ですよね?

自分が調べました所
・JVMではstaticに関して、必要になった時にロードする
とありまして、
newした場合その時点でオブジェクトがヒープに格納されるんですよね?
メモリの事も考えてstaticがいいのかなと考えたのですが(ちなみにdojaなんです)
この様な考え方はオブジェクト指向に反していますか?

もしかして、なんか検討違いな事言ってますか?
730デフォルトの名無しさん:2007/01/28(日) 19:41:26
アフィン変換の質問なのですが
こちらのプログラム
ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29152
で最後の部分が何をやっているか教えていただけますでしょうか?

それ以外の部分はわかったのですが、どうも最後のアフィン変換部分が理解できなくて
よろしくお願いします。(宿題ではないので、こちらのスレッドに投稿いたしました)
731デフォルトの名無しさん:2007/01/28(日) 20:13:46
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つを引数にとるプログラムで、
第一、第二引数で割り算を行い、第三引数で指定された桁数まで
小数点以下を表示させるのですが、
上記ではすべての値に対して正常に動作しないらしいんです。

何がいけないのでしょうか。
733デフォルトの名無しさん:2007/01/28(日) 23:14:26
>>729
オブジェクト指向言語だからといって、何でもかんでも
オブジェクト指向で書くことが正しいわけではない。
734デフォルトの名無しさん:2007/01/29(月) 00:30:51
質問です。
2つのint値のうち、小さい方を取得する場合、
int c = Math.min(a, b);
と書くのと、
int c = a < b ? a : b;
と書くのと、どちらが速いのでしょうか?
735デフォルトの名無しさん:2007/01/29(月) 00:32:09
後者
736デフォルトの名無しさん:2007/01/29(月) 00:32:54
その心は?
737デフォルトの名無しさん:2007/01/29(月) 00:34:16
>>734
java.lang.Math
public static int min(int a, int b) {

return (a <= b) ? a : b;

}
738デフォルトの名無しさん:2007/01/29(月) 00:34:47
メソッド呼び出しのオーバーヘッドがないから、と言いたいのだと思う。
JITでどうなるかわからんけど。
739デフォルトの名無しさん:2007/01/29(月) 00:37:03
そうか、光速な回答ありがとう
740デフォルトの名無しさん:2007/01/29(月) 00:59:26
こんばんは。最近勉強しはじめた者ですが、ちょっと質問させてください。
Anfy( http://www.anfyteam.com/anj/index.html )のサイトけっこう有名みたいですが、
自分のサイトにAnfyで紹介されているjavaを公開するのはおkなんでしょうか?
著作権上の問題はどうなんだろう? とちょっと心配なのですが、英文のぺージなのでよくわかりません^^;
ご存知の方居ましたら、アドバイスお願いします。
741デフォルトの名無しさん:2007/01/29(月) 01:16:44
>>734
つうか、for文使って自分で計算しろよ
742734:2007/01/29(月) 01:18:07
>>741
だよな、俺も質問した後で気づいたぜ
743741: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

最適化やってたら、もしかしたら異なる結果になったりしてな。
744デフォルトの名無しさん:2007/01/29(月) 01:38:56
>>743
別のプログラムに分けないと最初の計測にあとのコードが影響される。
Javaの理論と実践: 欠陥マイクロベンチマークを分析する
http://www-06.ibm.com/jp/developerworks/java/050311/j_j-jtp02225.html
Javaの理論と実践: 動的コンパイルとパフォーマンス測定
http://www-06.ibm.com/jp/developerworks/java/050114/j_j-jtp12214.html
745デフォルトの名無しさん:2007/01/29(月) 01:46:26
>>743
何回試行したんだ?誤差とか頭にないのか?w
746デフォルトの名無しさん:2007/01/29(月) 02:37:47
>>743
初動だけじゃなくて、HotSpotとか入った後の数字が見たい。
staticメソッドの展開が効いてメソッド呼び出しのオーバヘッドがなくなって
速度差が無くなるかもしらんしね。
もしそうなら、記述の分かりやすさからMathの方使うし。
747741: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()を呼ぶだけか?


748デフォルトの名無しさん:2007/01/29(月) 03:20:21
>>747
そうか、ま、順当か。
でもま、普段はminの方使うかな。余程大量に処理するときだけ最適化で使うわ。
この結果覚えてたら。
749デフォルトの名無しさん:2007/01/29(月) 03:25:00
static final な定数は、コンパイルの時点で
既にバイトコードにインライン展開されることは知っているが、
この際、定数と定数の比較なども、定数で置き換わったりしないんだっけ。
750デフォルトの名無しさん:2007/01/29(月) 03:30:41
ああ、そうかありうるな・・・・・
とすると比較するべきは、単純な代入文?ま、バイトコード見れたらそれが早いのかも知れんが。
751デフォルトの名無しさん:2007/01/29(月) 03:43:05
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回目で実行時の最適化が完了して速度が安定するようだ。
752741:2007/01/29(月) 03:44:29
誤差のこと忘れてた。
たった3秒だったものもiTunesで音楽危機ながらだと
4秒や1秒に変化する。

それでもMathのほうが遅いかな。単純なものだと
753デフォルトの名無しさん:2007/01/29(月) 03:44:46
これは興味深い
754デフォルトの名無しさん:2007/01/29(月) 03:46:00
ちなみに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

最適化恐るべし
755デフォルトの名無しさん:2007/01/29(月) 03:57:23
プログラム作り替えた。
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));
}
}

756741: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
さらに続く・・・
757741: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
758デフォルトの名無しさん:2007/01/29(月) 04:06:13
安定後に時間がかかる回があるのは恐らくGCだろう
759741: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
760741: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
761741: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
762741: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-からの結果。
763741: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
764デフォルトの名無しさん:2007/01/29(月) 04:16:44
よほどのボトルネックにならない限り
可読性が高い方を選んどくのが吉だな。
765デフォルトの名無しさん:2007/01/29(月) 04:18:29
あと nano と mili の間には micro と言う単位がある。
766デフォルトの名無しさん:2007/01/29(月) 04:33:28
ボトルネックになるほど呼び出されると、最適化されてしまう罠
767デフォルトの名無しさん:2007/01/29(月) 06:44:10
byte[]を16進表示のStringに変換する方法を教えてください。
それぞれのbyteでInteger.toHexString(b[i]) して連結するしかないですか?
768デフォルトの名無しさん:2007/01/29(月) 12:50:31
100万回の繰り返しに1000ナノ秒台ってなってる気がするけど読み違い?
携帯からなんで。
もし読み違いじゃないなら…
有り得るかそんなの
769デフォルトの名無しさん:2007/01/29(月) 13:00:04
ループそのものが無意味と判断されたから、ループしていないからじゃね
俺も携帯だけど
770741:2007/01/29(月) 13:31:21
>>765
そういえばそうだったwwwwwww
ハズカシス
771デフォルトの名無しさん:2007/01/29(月) 13:32:26
最適化でなくなったかな?
772デフォルトの名無しさん:2007/01/29(月) 13:33:22
結局マイクロベンチの罠に嵌っとる。
773デフォルトの名無しさん:2007/01/29(月) 13:35:52
>>767
String#format
774デフォルトの名無しさん:2007/01/29(月) 14:14:03
ちょっと質問させてください。
アプリケーションで画像を扱うにはどうしたらよいのでしょうか?
調べてみたら、Appletの場合は

image = getImage( getDocumentBase(), "image.jpeg");

これで動くようなのですが、
アプリケーションでのこのような動作を出来る関数を
見つけることが出来ませんでした。
775デフォルトの名無しさん:2007/01/29(月) 14:45:22
くだらない質問で申し訳ないのですが、
メソッドは、他の言語でいう関数と同義ですよね?
776741:2007/01/29(月) 14:53:10
>>772
どういうこと?
777デフォルトの名無しさん:2007/01/29(月) 14:57:50
>>775
その他の言語が何かによるんじゃないか?
778741: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回点滅してやっとカウントするくらいの速さだ。
779デフォルトの名無しさん:2007/01/29(月) 15:08:25
>>775
似てはいるが、「同義」とはいいきれない。
Cなどその他の言語の関数、サブルーチン、プロシージャと
似たようなものだと思えばわかりにくいこともない。

C++のメンバ関数に近いと言える。

780デフォルトの名無しさん:2007/01/29(月) 15:10:22
>>773
ありがとうございます。やっぱ地道にやるしかないのですね。
781デフォルトの名無しさん:2007/01/29(月) 15:13:47
>>775
Javaの場合はインスタンス、クラスに関係なくメソッドと呼ぶような…

言語の専門家で分からないが、メソッドと関数は微妙に違う。
自分の解釈では…
メソッドはオブジェクト指向におけるクラスの動作を記述するためのもの
関数は単に戻り値を持つ呼び出し可能な動作のまとまり(に名前をつけたもの)
782デフォルトの名無しさん:2007/01/29(月) 15:18:06
>>774
     ↓ これ
image = getToolkit().getImage( getDocumentBase(), "image.jpeg");
783デフォルトの名無しさん:2007/01/29(月) 15:26:12
>>774
1.4以降なら…
http://www.javainthebox.net/laboratory/JDK1.4/Graphics/ImageIO/ImageIO.html

#java.awt.Toolkit.getToolkit() ですな
784デフォルトの名無しさん:2007/01/29(月) 15:26:21
イマドキの画像読み書きはImageIOクラスでやったほうがいいかもな。
785デフォルトの名無しさん:2007/01/29(月) 15:30:23
C++にはメンバ関数とグローバル関数とがあるからねえ。

Javaにはグローバル関数が無い。というか使用禁止。
Javaのメソッドは名前の通り手法を記述するもの。操作、振る舞いを記述するという意味。
かならくクラスに属さないと行けないようになっている。

つまりクラスの振る舞いを書くもの。だからクラス名、オブジェクト名は名詞形、
メソッド名はなるべき動詞形になるようと推奨されている。

UMLではJavaのメソッドのことを「操作」と呼ぶ。
つまり、
主語がクラスやオブジェクトで、
述語がメソッドに相当する。
目的語は、メソッドの引数に相当する。
786デフォルトの名無しさん:2007/01/29(月) 15:30:58
>>784
Advanced Image I/Oもよろし
787デフォルトの名無しさん:2007/01/29(月) 19:04:52
>>775に対して簡単に言えばそういうことですって言わないであーだこーだ言ってるやつってなんなの
788デフォルトの名無しさん:2007/01/29(月) 19:09:27
>>787
違うものを違うと言って何が悪い
789デフォルトの名無しさん:2007/01/29(月) 19:24:02
ム板って初心者質問に対してお前みたいなレスする奴が必ずいるんだよ。
790デフォルトの名無しさん:2007/01/29(月) 19:42:50
間違ってること覚えて分かった気になるより、
何を言ってるのか分からないほうがまだマシ
791デフォルトの名無しさん:2007/01/29(月) 19:53:01
>>775が具体的に何を知りたいのかはっきりと明示しないから
そういうことになるんだが
792デフォルトの名無しさん:2007/01/29(月) 20:08:43
JTabbedPaneで、タブ一つも無い時でも
タブがある時と同じ見た目にしたいんですが、
どのようにすればできるでしょうか?
793デフォルトの名無しさん:2007/01/29(月) 20:34:24
>>792
ちょっと不鮮明。
いわゆるタブ・ブラウザでいう、
「常にタブを表示する」みたいな動作?
794デフォルトの名無しさん:2007/01/29(月) 20:54:25
>>793
FireFoxでいえば「常にタブバーを表示する」みたいな感じです。
タブを全て閉じたらタブの名前が書かれていたスペースが潰れてしまうので
なんとかならないかなぁと。
795デフォルトの名無しさん:2007/01/29(月) 21:30:35
空気読まずに横レススマソ。
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にしたら良いんですか?
796デフォルトの名無しさん:2007/01/29(月) 21:36:39
>>795
SET PATH=c:\j2sdk1.4.2_08\bin;"%PATH%"
って行を追加するのが、そのマシンの流儀に見える。

1.4.2 は 12 まで出てるのに 08 を使う理由が知りたい。
797デフォルトの名無しさん:2007/01/29(月) 21:38:12
>>795
SET PATH="%PATH%";c:\j2sdk1.4.2_08\bin;

これを4行目に追加
798デフォルトの名無しさん:2007/01/29(月) 21:43:06
>>796
「SET PATHがあるにもかかわらず独立して付け加えると
windowsが起動しなくなる事があります。本当にないかもう一度確認して下さい。」
とわざわざ太文字で書かれているんですが、平気なんですか?

08を使うのは図書館に行ったらたまたまCD付きの本があったんで、そのまま借りてきただけです。
799795:2007/01/29(月) 21:46:46
リロードせずに書き込んでしまった。

>>796>>797はどっちにしたら・・・?
両方とも変わらないんですか?
800デフォルトの名無しさん:2007/01/29(月) 21:47:05
その注意は、
set PATH=c:¥jdk1.4.2_08¥bin
としてしまって従来からの PATH の値を根こそぎないことにしてしまう
間抜けな人に対する警告。

ここに示された例は、ちゃんと %PATH% という記述で、旧定義を取り込んで
定義してるでしょ。
801デフォルトの名無しさん:2007/01/29(月) 21:59:28
>>798
だまされるな!
802795:2007/01/29(月) 22:02:55
>>801
どっち・・・?(´・ω・)
803デフォルトの名無しさん:2007/01/29(月) 22:04:56
>>802
自分で調べればよくね?
804デフォルトの名無しさん:2007/01/29(月) 22:09:12
>>803
スレタイに初心者大歓迎って書いてあったから来たのに・・・

お手数かけて申し訳ありませんでした。(´・ω・`)
805デフォルトの名無しさん:2007/01/29(月) 22:20:17
>>804
そもそもJavaの質問じゃないし。。
806デフォルトの名無しさん:2007/01/29(月) 22:21:21
みんな大歓迎してたのに
807デフォルトの名無しさん:2007/01/29(月) 22:22:53
>>776
すまね、携帯からだったから流れがつかめてなかったわ。
最適化でなくなったりするの分かってて試してんのね。
808デフォルトの名無しさん:2007/01/29(月) 22:32:11
>>798
その注意の意味が分からないようなら
autoexec.bat 触っちゃダメ。危なすぎる。
(今時 autexec.bat もどうかと思うよ・・・て9x系か。)

その本ってDOSプロンプトからいろいろやる系?
であるならばDOSプロンプト開いて

c:\> set PATH=c:\j2sdk1.4.2_08;"%PATH%"

したらいいよ。
で、このDOS窓から javac やら java やら叩く。
環境変数が影響するのはこの開いた窓の中だけだから、
他のアプリケーションに一切迷惑かけない。
809デフォルトの名無しさん:2007/01/29(月) 22:50:22
>>808
ダブルクォーテーションは余計だろ。
いらんいらん
やるなら全体にかけろ
810デフォルトの名無しさん:2007/01/29(月) 22:51:22
どうせなら、PATHを設定している箇所に
一挙に
PATH=あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;
あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;
あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;
あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;
あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;
あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;
あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;あ;



としてしまえ。
811デフォルトの名無しさん:2007/01/29(月) 22:59:18
>>808
binが抜けてるだろこの役立たずめ
812795:2007/01/29(月) 23:07:59
PATHくらいでモタモタするな!
もう自己解決したから駄目ってろ!カス共
813デフォルトの名無しさん:2007/01/29(月) 23:09:42
フッヒヒwサーセンww
814デフォルトの名無しさん:2007/01/29(月) 23:09:54
>>812
なりすます気ゼロだろ
815デフォルトの名無しさん:2007/01/29(月) 23:20:15
c:\j2sdk1.4.2_08;は
JAVA_HOMEに定義しておいた方が
バージョンアップのとき煩わしさを減らすことができる。



set PATH=%JAVA_HOME%\bin;.....................
set JAVA_HOME=c:\j2sdk1.4.2_08
816デフォルトの名無しさん:2007/01/29(月) 23:20:53
>>812
貴様は何故いまだにWindows98を使っているのか?
あまりにも時代遅れだ。
817デフォルトの名無しさん:2007/01/29(月) 23:25:51
俺はCP/M使ってる
818795:2007/01/30(火) 00:07:31
>>815
定義の順序が逆だろ!カスが!
819デフォルトの名無しさん:2007/01/30(火) 00:12:06
>>812>>818
スレの空気悪くなるんで成り済ましは止めろや
820デフォルトの名無しさん:2007/01/30(火) 01:01:03
>>818
あ、そうだった。
いつもWinXPつかってるんでね
どうでもいいやと思ってるんだ
821デフォルトの名無しさん:2007/01/30(火) 01:01:28
>>817
それでJavaは動くのか
822692:2007/01/30(火) 01:56:04
>>693
>>711
遅レスですが回答ありがとうございました。
823デフォルトの名無しさん:2007/01/30(火) 06:15:51
Javaでデータベースからデータを読み出すときに、プログラム中の変数を含んだ
SQL文はどのように書けばいいのでしょうか?
String sql = String qry = "SELECT * FROM TABLE\n"
+ "WHERE 名前 = \"" + 変数 +"\"" ;
のような書き方だと、「パラメータが少なすぎます。1 を指定してください。」
というエラーが出てしまいます。
SYSTEM.OUT.PRINT(qry)で表示されたSQL文をデータベースのクエリとして実行すると、
正常に動作しました。
どなたかアドバイスをお願いします。
824デフォルトの名無しさん:2007/01/30(火) 06:36:52
String query = "SELECT * FROM TABLE\nWHERE 名前 = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, 変数)

だがしかし, エラーの原因は'
825823: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 氏名 = "変数"
になりました
826823:2007/01/30(火) 06:41:09
>>824

'←こいつが原因なんですか??
827823:2007/01/30(火) 06:58:03
次々と質問申し訳ないです。
824のとおりに該当部分を変更したところ、
今度は「COUNTフィールドが正しくありません」とのエラーメッセジが・・・
どうすればいいんだYO!
828823:2007/01/30(火) 07:01:19
大事なことをわすれてました・・・変数はSTRINGです
829デフォルトの名無しさん:2007/01/30(火) 07:22:37
どうでも良いが大文字小文字は原文通り書け
Javaは大文字小文字を区別する言語だ
830デフォルトの名無しさん:2007/01/30(火) 08:50:38
>>823
WHERE句の後に列名を期待してるんだけど
「名前」を列名として認識してない。
環境書いてくれないから断定できないけど、
JDBCドライバが「名前」をエンコードする時に
DB側で期待するコードと異なって齟齬が発生してるんだろう。

ひとまずテーブル名・列名を英語にして試せ。
それでうまく行くようなら、JDBCドライバの仕様調べて
コード指定のやり方を確認するヨロシ。

無用なトラブル抱えたくなければ、日本語列名諦めた方が楽。
831デフォルトの名無しさん:2007/01/30(火) 09:13:58
>>823
スレの空気悪くなるんで質問は止めろや
832デフォルトの名無しさん:2007/01/30(火) 09:22:00
プレースホルダーつかえよ
833デフォルトの名無しさん:2007/01/30(火) 10:53:32
このスレどう見ても初心者大歓迎じゃないよなw
834デフォルトの名無しさん:2007/01/30(火) 11:05:42
SQLの質問はDB板の方がいいかもな。
つーてもあっち人少ないけど。
835デフォルトの名無しさん:2007/01/30(火) 11:17:11
>>823
DBはよくわからんが、SQL文に \n なんて付けて良いの?

あと、場合によっては文字コードの変換処理が必要になるから
必要ならDB側の文字コードの扱いを調べる。
はてまたドライバのバージョンが安定版ではない、など…
836デフォルトの名無しさん:2007/01/30(火) 11:37:55
初心者≠教えて君
837デフォルトの名無しさん:2007/01/30(火) 11:40:21
こんなにチヤホヤされてるのになにが不満なのか
838デフォルトの名無しさん:2007/01/30(火) 11:42:53
Javaの初心者は大歓迎だけど
自分で調べる気のない教えて君やコミュニケーションの初心者はイラネ
839デフォルトの名無しさん:2007/01/30(火) 12:44:43
832も言っているが、SQLインジェクション食らってデータ流出やDB破壊されたくなかったら、プレースホルダ使え。
840デフォルトの名無しさん:2007/01/30(火) 13:32:47
はてさて、>>823にプレースホルダーの意味を理解できるだろうか?
841823:2007/01/30(火) 15:32:55
能書きは良いからさっさと回答しろや禿共!
842デフォルトの名無しさん:2007/01/30(火) 15:53:21
秋田
843823:2007/01/30(火) 16:01:09
みなさん、すみません・・・。
偽物さん、勘弁して下さい。;
844デフォルトの名無しさん:2007/01/30(火) 17:03:37
だからプレースホルダーっつってんだろ!
845デフォルトの名無しさん:2007/01/30(火) 17:51:18
はてさて、>>823にプレースホルダーの意味を理解できるだろうか?
846823:2007/01/30(火) 17:58:51
能書きは良いからさっさと回答しろや禿共!
847823:2007/01/30(火) 18:08:55
なんか偽者が二人いるようなのですが・・・
やっとどうにかなりました、ホントくだらない間違いでした。
一応自分で調べてたのですがとんでもない勘違いをしていただけでした。
スレ汚し申し訳ありませんでした。
848回答者一同:2007/01/30(火) 18:10:39
お役に立ててよかった。
849デフォルトの名無しさん:2007/01/30(火) 18:21:41
PreparedStatementを使ったわけだな。

そりゃよかったよかった

だが、もっとおすすいめなのはHibernateを使うことだ
850823:2007/01/30(火) 18:59:35
>>849
なら最初から言え!役立たずが!
851デフォルトの名無しさん:2007/01/30(火) 19:32:10
携帯のゲームを作りたいんですけど、ノートパソコンでもできますか?
852デフォルトの名無しさん:2007/01/30(火) 19:35:25
もちろん。
次の質問どうぞ!
853デフォルトの名無しさん:2007/01/30(火) 19:40:52
パソコンのゲーム作りたいんですけど、携帯でもできますか?
854デフォルトの名無しさん:2007/01/30(火) 19:55:02
できますん
855デフォルトの名無しさん:2007/01/30(火) 21:18:39
>>850
いい加減にトリップとBeをつけよう
856: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つかわないと無理ですよ
859デフォルトの名無しさん:2007/01/30(火) 22:11:48
画像 javaで検索
860376: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"));
とかでいけると思うんだが・・・
861デフォルトの名無しさん:2007/01/30(火) 23:04:47
>>860
ImageIconのコンストラクタでパスを指定するときは区切り文字には/を使え。
不確かならjavadocで確認汁
862デフォルトの名無しさん:2007/01/30(火) 23:38:08
スレ違いな悩みがあるんですが効いてもらえますか?
863デフォルトの名無しさん:2007/01/30(火) 23:41:32
>>861
すまん、不確かな書き方をしたが、ちゃんと動作はチェックしたコードだ。
Javadocは、>>376 を書いたときに見ている。

区切り文字を/とするのが確かなのはそうなんだが、
ファイルシステムから取得したパスを使うときの
ことも考えて、\でのパスにしておいた。
あと、文字列内にパスを埋めるときに\のエスケープを忘れて
参照できねーっていう泣き言を回避したかったのもあり

・・・というか、Javadoc見ろって、回答で解決したはずなのに、ってことか?
864デフォルトの名無しさん:2007/01/30(火) 23:48:48
>>860
C:\Documents and Settings\Administrator\My Documents\\icon.png
指定されたファイルが見つかりません
というエラーが出ますorz
865デフォルトの名無しさん:2007/01/30(火) 23:50:01
>>861
まあ普通セパレータは/を推奨しているがな。
\\だと文字数多くて煩わしいし
OSが変わるとめんどい。
ディレクトリ構造は変わらずトップのルートディレクトリだけ
変えてWindowsからSolarisにコピーするということはよくあるだけに。
866デフォルトの名無しさん:2007/01/30(火) 23:51:07
>>863
Fileクラスのstaticフィールドにパスセパレータがあるぞ
それ使うという手もある。
867デフォルトの名無しさん:2007/01/30(火) 23:51:30
>>864
スペースの前に\を入れてみてはどうだろうか
868デフォルトの名無しさん:2007/01/30(火) 23:51:55
Document\ and\ Settings
みたいに
869デフォルトの名無しさん:2007/01/30(火) 23:52:24
だめなら、file://で始まるプロトコルを使ってみると言う手もある。


870デフォルトの名無しさん:2007/01/30(火) 23:53:03
しかし思うのだが、なぜ絶対パスを使う?
相対パスだろう。
しかもそのアイコン、JARに固めるのか?
もしくはスキンで簡単に変更できるようにすべきじゃないか?
871376: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
>>862
はやく聞かせなさい
873デフォルトの名無しさん:2007/01/31(水) 00:24:37
質問です。
これからjavaの勉強を始めようと考えています。

ほかの言語の経験はあるので、入門書とかは置いといて
とりあえず言語仕様から一通り抑えようかと思っているのですが
sunの「Java 言語仕様」はオンラインで読める英語のものか、書籍で出版されているものしかないのでしょうか
874デフォルトの名無しさん:2007/01/31(水) 00:31:04
JDK 5のならオンラインで日本語
875デフォルトの名無しさん:2007/01/31(水) 01:15:02
>>873
とりあえず入門サイトをググッたほうが早い
876デフォルトの名無しさん:2007/01/31(水) 01:17:18
>>862
はやく聞かせなさい !
877デフォルトの名無しさん:2007/01/31(水) 03:48:23
やっぱり、言語仕様くらい目を通さないとだめかね。
でも、結構量あるし、退屈そうだし(予想)、日本語訳本高いし。
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月で入力ください)");
}
879デフォルトの名無しさん:2007/01/31(水) 04:13:36
最初の質問表示をforの前に。
880デフォルトの名無しさん:2007/01/31(水) 04:16:58
System.out.println("今日の月は?");
for( ; ; ){…

ではどう?
881デフォルトの名無しさん:2007/01/31(水) 04:23:40
>>879-880
即レス感謝します!!

やってみます
882デフォルトの名無しさん:2007/01/31(水) 04:28:00
>>881
もしレスするのなら、やってみてからその結果を報告しろ。
問題を解決したいんだからやってみるのは当たり前だ。
やろうとする意思表明をされても何の情報ももたらさない。
883デフォルトの名無しさん:2007/01/31(水) 04:30:28
>>879-880
できました!!
感謝いたします!!

スレ違いで申し訳ないのですが、教科書・参考書に書いてある内容などと
ちょっとだけ違うことをやろうとした場合に、完全に同じ雛形はありません。
その際に、どうやればいいか分らない時って、みなさんはどのように処理してきたのでしょうか?
やはり、2chなどの公の掲示板を利用していたのでしょうか?
884デフォルトの名無しさん:2007/01/31(水) 04:32:14
>>882
すいませんでした。
とりあえずレスに対する感謝を先に書いておきたかったものですから。
板の文化というか、その辺がわからなかったです。
申し訳なかったです。以後気をつけます。
885デフォルトの名無しさん:2007/01/31(水) 04:33:41
いやまぁ、
レスをくれたことについての感謝を
まず述べておくのは
マナーとしてはアリだと思う。
886878:2007/01/31(水) 04:37:10
>>885
ありがとうございます!

sage進行でもあるんですね。いろいろと不注意でした。
887デフォルトの名無しさん:2007/01/31(水) 04:38:44
>>883
雛形をちょっとだけ変えながらいろいろ試してみる。
リファレンスや言語仕様をいろいろ読んでみる。
初心者の頃はサンプルをいろいろ変形しながら遊んでたよ。
限られた時間で成果をあげないといけない時は、
そういうことをする余裕は無いと思うけど。
888デフォルトの名無しさん:2007/01/31(水) 04:41:28
まあ、試してみるのに時間がかかったりする時は回答者も不安だから、
とりあえず回答を見たというレスだけ返すのはありかもしれんね。
TPOに応じてということで。
889878:2007/01/31(水) 04:56:16
>>887
なるほど。いろいろ試すことが大事なんですね。
確かに面白いですしね。
今は2月の日入力処理に挑戦中です。

実務に入ると、やたらめったら試す方法は使えなくなり、
リファレンスの読解能力や言語仕様をいかに読んでるかが問われてくるわけですね。
かなり大変そうだというのは、分りました。

>>888
ありがとうございます!
890デフォルトの名無しさん:2007/01/31(水) 05:29:50
うるせー。質問が終わったらとっとと失せろ!
891デフォルトの名無しさん:2007/01/31(水) 09:31:41
classファイルをjavaファイルに変更することはできるのでしょうか?
できるのなら、方法を教えてください。
892デフォルトの名無しさん:2007/01/31(水) 09:56:53
setBackground(Color.BLACK);
のように背景を画像にすることはできますか?
現在
public void paintComponent(Graphics g) {
super.paintComponent(g);
でg.drawImageを使って背景を作っているのですが、
それ以外にも同時にアニメーション用の画像も表示していて、
repaint();する際にアニメーション以外にも背景画像もrepaintしてしまいすさまじい重さになってしまっています。
背景画像として表示するものは一切アニメーションも変化も何もしないので
はじめに読み込んで固定にしておきたいのですが・・・
893デフォルトの名無しさん:2007/01/31(水) 10:05:16
>>891
このスレぐらい見直せ
894デフォルトの名無しさん:2007/01/31(水) 10:08:59
>>891
何のためにそんなことするの?
目的は?
895デフォルトの名無しさん:2007/01/31(水) 10:10:32
>>891
★★ Java の宿題ここで答えます Part 60 ★★
http://pc10.2ch.net/test/read.cgi/tech/1169300052/202

202 名前:デフォルトの名無しさん[] 投稿日:2007/01/31(水) 09:30:08
classファイルをjavaファイルに変更することはできるのでしょうか?
できるのなら、方法を教えてください。
896デフォルトの名無しさん:2007/01/31(水) 10:38:26
>>892
画像と背景をまとめた全体を一つの画像として描き上げてから、
それを描く。

キーワード: ダブルバッファ
897デフォルトの名無しさん:2007/01/31(水) 10:57:53
またマルチかよ
チョーウザ
898デフォルトの名無しさん:2007/01/31(水) 11:22:50
リバースエンジニアリングってやつだな!知ってるぜ!
899デフォルトの名無しさん:2007/01/31(水) 14:29:42
※課題プログラム(その1)
 消費税を計算するプログラムを作りなさい。

※課題プログラム(その2)
 その1のプログラムを、メソッド形式にして作成する。

※課題プログラム(その3)
 その1のプログラムからある単位でクラス化し継承させて作成する。

と課題をだされたのですが「メソッド形式」と「クラス化し継承させる」
という部分がわからないのですうまく説明できるかたがいましたら
お願いします。
900デフォルトの名無しさん:2007/01/31(水) 14:39:25
>>899
何、その3をいきなり作れば、その1とその2はクリアだよ。
というか消費税計算くらいで何をどう継承するのかよくわからんのだが・・・
計算部分を親に実装して、子は、国によって分けるとか?

public class 日本消費税計算 extends 消費税計算{
public class カナダ消費税計算 extends 消費税計算{

うはw
丸め処理は、また別に処理するから・・・
ちょっとしたライブラリをつくれってことか??
901デフォルトの名無しさん:2007/01/31(水) 14:43:02
うまく説明できないなら出てこないでください><
902デフォルトの名無しさん:2007/01/31(水) 14:46:08
何その出題者も具体的な回答考えてないみたいな課題。
903デフォルトの名無しさん:2007/01/31(水) 15:02:50
はっきりいって私には@しかできてない状態でして、他は
お手上げ状態です。
これには具体的な答えなどないのでしょうか?
904デフォルトの名無しさん:2007/01/31(水) 15:05:37
宿題スレでも行け
905デフォルトの名無しさん:2007/01/31(水) 15:11:13
>>904
マルチになるのでは?
906デフォルトの名無しさん:2007/01/31(水) 15:11:42
>>903
これだけは答えられる

「無い」
907デフォルトの名無しさん:2007/01/31(水) 15:31:23
>>903
そのできてる部分だけでも晒せば残りはやってあげるけど
908デフォルトの名無しさん:2007/01/31(水) 15:40:35
//rensyu21.java

class rensyu21 {
public static void main(String args[]) {

double a;

double b;

a = 100;

b = a * 1.05;

System.out.println(b+"円です");
}
}
909903:2007/01/31(水) 15:53:11
おまえら消費税の計算もできないのかwww
910デフォルトの名無しさん:2007/01/31(水) 15:53:41
うまく説明できないなら出てくるなって言ってんだよ、カス。
911デフォルトの名無しさん:2007/01/31(水) 15:55:49
間違ってましたか…どこが間違っているか教えていただきたいのですが
お願いします。
912デフォルトの名無しさん:2007/01/31(水) 16:04:54
なりすまし乙。もう秋田。

>>911
課題自体がアレなんでどこが間違っているとも言いがたいのだが
一般的に通貨として1円未満は存在しないだろ? 四捨五入なりしてみな。
あと、金額みたいにクリティカルな計算でdoubleを使わないのは基本。
浮動小数 誤差 あたりでググってみ。
この課題がそこまで考えてるかは知らんが。
913デフォルトの名無しさん:2007/01/31(水) 16:14:01
>>911
何というか、金額計算には丸めが必要で、それってちょっとばかし
頭使うから考えてみて。
・切り捨て
・切り上げ
・四捨五入
これくらいのロジックは使う。(店によっては、10円未満切り捨てもあるしな)
で、その判断の対象が整数部ではなく小数部に対して行われる。

で、金額を扱う用だと、BigDecimalというクラスもある。
これもちょっと見ておいた方がいいと思う。

まあ、元課題がそこまで考えて出されたとも思えんが・・・
914デフォルトの名無しさん:2007/01/31(水) 16:22:49
>>912>>913
ありがとうございます、さっそくググって調べてみます。
915デフォルトの名無しさん:2007/01/31(水) 16:31:10
>>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%消費税で計算
}
などを作ることになるだろうな。
916デフォルトの名無しさん:2007/01/31(水) 16:56:57
うまく説明できないなら出てくるなって言ってんだよ、カス。
917デフォルトの名無しさん:2007/01/31(水) 16:57:21
クラス名が愛くるしいな
918デフォルトの名無しさん:2007/01/31(水) 16:58:40
普通は、税率などの変化する項目は施行年月日と対にしてテーブルに保存しておく。
また、内税外税とか、切り捨て、切り上げ、四捨五入のどれを使うかの区別も必要。
会社によっては伝票単位で計算するか請求単位で計算するかの別なども必要になる。

A++もらいたかったらこんな感じだろうが、そこまで考えなくても良いとおも。
919デフォルトの名無しさん:2007/01/31(水) 17:19:39
業務アプリの課題じゃないからそこまでやらんでもいいんでは (w
まー税率は可変にするべきだが。
920デフォルトの名無しさん:2007/01/31(水) 17:39:02
>>917
三択が得意そう
921903:2007/01/31(水) 17:40:16
>>917
テーブルって何ですか?(´・ω・`)
922デフォルトの名無しさん:2007/01/31(水) 17:42:24
>>921
配列
923デフォルトの名無しさん:2007/01/31(水) 17:42:31
CのプログラムをJavaに変換するのに簡単な方法無い?
924デフォルトの名無しさん:2007/01/31(水) 17:46:14
すみませんが、教えて下さい。
javaで作られたGPLのZenCartみたいなECサイト構築ソフトってありますか?
この質問はここで良いですか?
925デフォルトの名無しさん:2007/01/31(水) 17:48:43
>>921
RDBのテーブルのことだろう。学生は今は気にするな。
>>923
こんな順で作業すれば簡単

全部mainメソッドにぶち込むコンパイル→エラーがでる
→エラーをとる→適当にクラスに分割する
→リファクタリングして0から作り直す
926デフォルトの名無しさん:2007/01/31(水) 17:50:49
>>924
気軽に「こんなソフトありませんか?」 Part.52
ttp://pc9.2ch.net/test/read.cgi/software/1169204123/

ソフト探してるならこっちじゃねえか?
927デフォルトの名無しさん:2007/01/31(水) 17:56:54
>>925サンクス・・・と言いたいけど難しい
行列計算のプログラムなんだけどCは
データ(txtファイル)読み込み
行列計算
結果出力
メインプログラム

の4つのプログラムから出来ててこれと同じのをJavaプログラム一つに変換しろって・・・ヨクワカンネ
928デフォルトの名無しさん:2007/01/31(水) 18:10:00
すいません。
>>924は偽者です
929デフォルトの名無しさん:2007/01/31(水) 18:21:09
>>896
BufferedImageかい
930デフォルトの名無しさん:2007/01/31(水) 18:25:01
>>929
最近はVolatileImageってのがあるな。
931デフォルトの名無しさん:2007/01/31(水) 18:29:08
Tiger以降はデフォルトでVolatileImage
932デフォルトの名無しさん:2007/01/31(水) 18:29:12
>>927
いや、むしろ機能単位に作られててすごくわかりやすそうなんだが・・・
まずは、行列自体のデータクラスから作ってみてはどうか?
933sage:2007/01/31(水) 18:33:45
>> 926
ありがとうございます、逝ってみます。
934デフォルトの名無しさん:2007/01/31(水) 18:37:15
>>927
つJakarta Commons Math
935デフォルトの名無しさん:2007/01/31(水) 20:41:12
ダブルバッファの使い方で詰まっています。
作成中の以下のプログラムは、残りはダブルバッファを用いて画像の円滑な表示を行わせるだけなのですが
どうも上手く機能していないようです。表示は問題ありませんがちらつきが解決されていません。
updateメソッドも一応きちんとオーバーライドしていますしなぜなのでしょうか?

http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29169
936デフォルトの名無しさん:2007/01/31(水) 23:21:48
80行目周辺
omote.fillRect(0,0,1000,700);
のあとに
g.drawImage(image[0],x ,y0,this);
↑このgはAppletの持ってるGraphicsだから当然アプレットの画面が更新される(だからチカチカする)
最後のほうに
g.drawImage(ura,0,0,this);があるのでここ以外全てomoteを対象に描画すればよし


937デフォルトの名無しさん:2007/01/31(水) 23:30:51
ごめんなさい。
どこが違うのでしょうか?
教えてエロい人
・∀・)つ

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));
}
}
938デフォルトの名無しさん:2007/01/31(水) 23:32:52
(Locale.GERMANY)以外でお願い致します
939デフォルトの名無しさん:2007/01/31(水) 23:32:53
>>935
http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29170
かな… 変更すれば直ると思うメソッドpaint
940857:2007/01/31(水) 23:58:54
857の質問をしたものです。
遅くなりましたがレスしてくれた方々ありがとうございます。
実際に表示させることができました。
941デフォルトの名無しさん:2007/02/01(木) 00:05:41
937
import java.util.Locale;
を追加したらでけました。
スレ汚しすみません。
942デフォルトの名無しさん:2007/02/01(木) 00:11:49
>>941
javacで「シンボルが解決できません。」なんてメッセージが
ちゃんと出たんでしょうに…
# それ無しに「どこが違う」と言われてもねぇ…
943デフォルトの名無しさん:2007/02/01(木) 00:21:22
Format.printf("%8.2f",100000.0/3.0)を使うには、どのパッケージがいるのかな?
・∀・)o く ワクワク
944デフォルトの名無しさん:2007/02/01(木) 00:46:33
すいませんが質問です。
アプレットで簡単なゲームを作ったのですが、
アプリケーションでも動くようにしようと思ったら画像の取得にgetDocumentBase()を使っており動いてくれません
何かgetDocumentBase()に変わるものはないでしょうか
945デフォルトの名無しさん:2007/02/01(木) 01:47:23
java.awt.Toolkit
946デフォルトの名無しさん:2007/02/01(木) 02:11:59
Toolkit.getDefaultToolkit().getImage(String);
947ぴゅあ:2007/02/01(木) 02:35:19
>>944
JNI使わないと無理ですよ
948デフォルトの名無しさん:2007/02/01(木) 03:26:51
vistaでは標準でsun-javaのjreが入っているって本当ですか。
949デフォルトの名無しさん:2007/02/01(木) 08:06:16
>>935
repaintは別のスレッドで非同期に処理されるから実際に描画されるのは
たぶん後ろのif節でy0-y4の値を変更した後になるよ。

>>944
getClass().getResource("imagefile")じゃダメ?

>>948
SunとMSの和解後はXPにも入ってると思ったけど。
950デフォルトの名無しさん:2007/02/01(木) 08:13:15
>>944
this.getClass().getClassLoader().getResource("/com/your/pkg/abc.gif");
951デフォルトの名無しさん:2007/02/01(木) 08:22:26
SAX パーサ使って XML を解析する時に XML 宣言中の version や
encoding を参照したいのですが、どのインターフェースにコールバック
されますか?
952デフォルトの名無しさん:2007/02/01(木) 09:07:45
テキストエリアにText.javaを表示させるプログラムですが、
テキストエリアは出るのですがText.javaの内容が出てきません。
色々やってみましたがどうも分かりませんでした。どこが間違っているのでしょうか?

http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29171
953デフォルトの名無しさん:2007/02/01(木) 09:17:53
一人ずつ順番に質問しなさい
954デフォルトの名無しさん:2007/02/01(木) 09:40:10
>>952
ぱっと見だが、何でエラー無視してんだ。
appendの引数は文字列だ。"str"という文字列ではなく、
strという変数をappendするんじゃないのか。
つかTextなんてクラス名作るな。ユーザー作成クラスと解るような名前にしる。
955デフォルトの名無しさん:2007/02/01(木) 09:47:04
     ζ
    / ̄ ̄ ̄ ̄\
   /         \
  /\   \   /|
  |||||||   (・)  (・) |
  (6-------◯⌒つ|   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  |    _||||||||| |  < 宿題スレに投げんとは!けしからん!
   \ / \_/ /    \________________
     \____/


956デフォルトの名無しさん:2007/02/01(木) 09:52:51
                      |''" ̄|
       _,,,、------、../ ̄"ヽ.   |:::::::::::|
    .. イ゙゛       |::::::::::::::::|   |::::::::::::|
  ,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´ │  ._,,,,,,,,,,--―'''ヽ,,,,/゛

957デフォルトの名無しさん:2007/02/01(木) 10:09:25

     _____
    /       \__
〃 | ̄ \____Φ| / ヾ
  \   |   ●  ● __
  ̄ ̄ ̄         \
  |____/        ▼ |\ 〃
ヾ  |         _人|
   |      ___/
   \    /
   | \ \
   | ノ (__)

958デフォルトの名無しさん:2007/02/01(木) 10:15:46

       ||| || |
       __∩__ めぎょ
       | ,.:. '.;§, |;
   ., ,・倒_@δ,_|,.': ;
         <___>
        <___>
        <__  __>
        <_   _>
        |   |
        |   |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
        ( ・∀・) < あいたっ
         )   (   \__________
        (__Y_)

959デフォルトの名無しさん:2007/02/01(木) 10:16:11
>>951
見た目がPIっぽいのでprocessing instructionとして処理するのかと思ったのだが、XML宣言はPIとは別らしいね。適切なAPIが見つからない。

1行呼んで自力でencoding="..."とかを切り出してみるしかないかも。
(読んだあとでrewindする)
960デフォルトの名無しさん:2007/02/01(木) 10:17:27
  / ̄ ̄ ̄ ̄\
/     ●   ●  しつこいぞぬっ
|Y  Y         \
| |   |         ▼ | パクッ
| \/   ____人__|
|      |∨∨∨∨∨ モナッ・・
\     \∧∧   )
 | | |\  ̄ ̄\\\
 | | |   ̄ ̄ ̄ し し/
 (__)_)
961デフォルトの名無しさん:2007/02/01(木) 13:40:32
java.awt.printライブラリを用いて、プリンタへの印刷を試みています。
そこで一つ問題が生じたので、皆様にお聞きしたいことがあります。

時々、印刷が途中で終了してしまう事があるのです。
そのような場合は、再度、(一番最初の工程から)印刷を試みるとうまく行きます。

些細な事でも構いませんので、この現象が発生する、原因を教えて欲しいのです。

皆様、よろしくお願いします。
962デフォルトの名無しさん:2007/02/01(木) 14:09:27
>>947
そんな大嘘をつくお前にワロタ
963デフォルトの名無しさん:2007/02/01(木) 14:09:52
>>948
市販PCに入っているんじゃないかな。
964デフォルトの名無しさん:2007/02/01(木) 14:11:58
>>955-958
また例の荒らしか?
再び数日間にかけてスレが荒れるのか。
それとも大学生の春厨か? すると。2ヶ月間もスレが荒れるのか。いやなこった。


965デフォルトの名無しさん:2007/02/01(木) 15:07:10
>>961
それをブレイクポイント仕掛けてステップで追っていくわけにはいかないのかな?
プログラムがないので何ともだが・・・・
何かストリームでそういうのを扱ってるんだとすると、
ストリームをクローズする前に、アプリ落ちたりスレッド落としてたりするとか・・・?

途中で切れるっていうとストリームってイメージがあるもんで。
966デフォルトの名無しさん:2007/02/01(木) 16:48:27
すいません、JavaScriptのfromCharCodeを
Javaで実現したいのですが
なんらかの方法がありますか?
967デフォルトの名無しさん:2007/02/01(木) 16:51:23
ありますよ。
968fromCharCode:2007/02/01(木) 17:41:41
                / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
                /  融合だぞ!
              /
    / ̄ ̄ ̄ ̄\  ̄∨ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
   /●  ●    \  Λ_Λ    ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄
  /    Ο   Y  Y| ( ´ー`)   ( ゚Д゚) ∠ 俺の方がすごいだろ!
 | ▼Ο ο     |   | | \ \  / νν   \_______
 |_人_  ο。 。\/ |∧∧\ Υ  ノ
 \__   。ο。 。Ο  ̄ ̄ ( ´∀`)  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
      \  Ο        。ο。 ソ  <  キャラ総融合だぞ!
      (-_-) ο゚。 Ο    ソ     \________
      (/⌒\)――(/⌒\)

969デフォルトの名無しさん:2007/02/01(木) 19:32:00
JavaのGenericsについての質問です。

クラスAとクラスBは、継承関係はなく、共通のインターフェースも実装してい
ないが、同名のメソッド(例えば void hoge()とか)を持っている、とします。
このA、Bのインスタンスを共通して呼び出せる総称関数を、JavaのGenericsで
作成することは可能なのでしょうか?

私はできないと思うのですが、ワイルドカードなどを使ってできるかもしれな
いと知人が言っていて、少し自信がなくなりました。

また、C++のテンプレートとの違いを紹介したページはないでしょうか?
http://www.mamezou.com/tec/equip001.htm
このページは役に立つのですが、少し古いようなので。
970デフォルトの名無しさん:2007/02/01(木) 19:45:04
>>969
ぱっとみ、その記事の4.2が答えだと思います。
#私はそう理解している
#古い、といわれても、Genericsが入ってる5.0が出たのは2003年頃だったはず
971969:2007/02/01(木) 20:22:56
>>970
ありがとうございます。
私もそう理解しているのですが、この記事にはワイルドカードの記述がありません。
またJava5の正式リリースは2004年の秋です。
972969(本心):2007/02/01(木) 20:30:54
適当なこと言ってんなよハゲ!
知らないならすっこんでろ!
973デフォルトの名無しさん:2007/02/01(木) 20:46:08
>>969
Genericsじゃなくて、インターフェースで解決すべき問題
974デフォルトの名無しさん:2007/02/01(木) 20:48:53
>>969
SunのページでダウソできるGenericsの解説PDF(英語版)
を読めばだいたいわかるよ。


Genericsはちょっと癖があって
Genericsなクラスを使うことは非常に簡単でも
作るのは、やはり難しいものだよ。
IBMのDeveloper worksの記事も参考になるのがあるぞ。

どうすればいいかは、まさに>>970の言うとおりで、
共通のインタフェースを実装すべき。
975デフォルトの名無しさん:2007/02/01(木) 20:51:33
>>971
ワイルドカード使う必要ないよ。
豆蔵のページのように
Comparableインターフェースのようなクラスを作って
そのメソッドをオーバーライドする形にすればいい。

そもそも、<T> Comparable#CompareTo(T t)の場合はワイルドカードを使う必要は無い。

パラメータを複数のメソッドやメソッド義気数で使うときに考えるべきものであって
一つのメソッドやメソッド引数やクラスにしか使わないならワイルドカードは特に意識する必要はない。


976デフォルトの名無しさん:2007/02/01(木) 20:52:15
>>973
インターフェースにGenerics独特のコードを実装するという形かな
Comparableの真似をするだけだが
977デフォルトの名無しさん:2007/02/01(木) 20:53:37
どうせなら <? extends Number>や <Number super ?> のような表現も覚えておいた方が良い
978デフォルトの名無しさん:2007/02/01(木) 21:00:50
>>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´ │  ._,,,,,,,,,,--―'''ヽ,,,,/゛
979デフォルトの名無しさん:2007/02/01(木) 21:14:35
Java勉強に適した、皆さんのオススメの書籍教えてください
980デフォルトの名無しさん:2007/02/01(木) 21:18:07
>>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);

でやってみたのですが、うまく動作させることができませんでした。
よろしくお願いします。
982デフォルトの名無しさん:2007/02/01(木) 22:20:27
質問の仕方を勉強したほうが良いよ。
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);

でやってみたのですが、うまく動作させることができませんでした。
よろしくお願いします。
984デフォルトの名無しさん:2007/02/01(木) 22:43:29
別人によるコピペだと思うが反応しておこう
>>983
エラー嫁
985デフォルトの名無しさん:2007/02/01(木) 23:30:10
>>980
サンクスです
よくわからないけど明日本屋行って見てきます
986969:2007/02/02(金) 00:25:10
すみません、ちょっと取り込み中でした。

どうも質問の仕方が悪かったようです。クラスAとクラスBは既存のクラスで、
もう修正はできないと考えてください。つまりインターフェースを追加実装で
きないという想定です。

C++のテンプレートならこういう場合でもAとBの総称関数が作れます。だから
必要なインターフェースを設計時にすべて洗い出す必要はありません。これが
テンプレートプログラミングに大きな柔軟性を与えています。

このような柔軟性は、Javaのジェネリックスでは実現できるのでしょうか?

私の今までの理解は、ジェネリックスは原理的に、従来のJavaに柔軟性を与え
てくれることは無くて、むしろ逆に、今までのJavaより細かく正確な型チェッ
クをできるようにするものだというものでした。しかし何か見落としが無いか
不安になって質問させていただいたのです。

ただ、今までの回答を読んでみると、暗に「出来ない」と回答されているよう
にも思います。そういう理解で宜しいでしょうか?
987デフォルトの名無しさん:2007/02/02(金) 00:33:37
それがやりたいならObjective-Cだよなぁ

・・・・ごめんできないと思うが断言できるほど自信はない
ただ、Genericsでできたとしてもやらない方がいいと思う

それが一部分なら呼び出したいメソッドをリフレクションで
呼び出すクラスを用意してラッピングしてやるのはいかがか?
988デフォルトの名無しさん:2007/02/02(金) 00:49:59
> むしろ逆に、今までの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)
ないですか?できるだけ正しく解説されているサイトをおしえてください。
990デフォルトの名無しさん:2007/02/02(金) 01:15:35
>>959
そうなんですよ。読み込んだ時と同じ encoding で XML を再出力したかったんですが
API リファレンス読む限りじゃ該当機能はなさそうですよね。XML 宣言まで読み込んで
encoding を参照し、先読みした部分とそれ以降を SequenceInputStream で繋げる
ことにします。
991デフォルトの名無しさん:2007/02/02(金) 08:56:07
>>989
javax.swing.ListModel
javax.swing.AbstractListModel
992969:2007/02/02(金) 11:54:46
ご回答ありがとうございます。またしてもご返事が遅れてすみません。

どうやら出来ないらしいということは分かりましたが、ワイルドカードについ
ては少し釈然としない部分が残っています。もう少し検索したりして考えてみ
ます。
993デフォルトの名無しさん:2007/02/02(金) 12:33:31
メインメソッドの
〜main(String args[]) とかmain(String [] args)
ってString形式の配列変数 args[] を引数に取るっていう意味ですか?
994デフォルトの名無しさん:2007/02/02(金) 12:37:04

     _____
    /       \__
〃 | ̄ \____Φ| / ヾ
  \   |   ●  ● __
  ̄ ̄ ̄         \
  |____/        ▼ |\ 〃
ヾ  |         _人|
   |      ___/
   \    /
   | \ \
   | ノ (__)
995デフォルトの名無しさん:2007/02/02(金) 12:40:52
>>993
yes
996デフォルトの名無しさん:2007/02/02(金) 13:20:30
>>993
正確には、String[] という型のargsを引数に取る。
997デフォルトの名無しさん:2007/02/02(金) 13:40:02
>>993
参照型(reference types)には,
クラス型,インタフェース型及び配列型の3種類の型が存在する。
で、配列とは…(10.2など)
http://www.y-adagio.com/public/standards/tr_javalang2/arrays.doc.html#27803
998デフォルトの名無しさん:2007/02/02(金) 13:43:08
>>980 がいないようだから、次スレ立ててくる。
999998:2007/02/02(金) 13:46:50
次。
【初心者】Java質問・相談スレッド97【大歓迎】
http://pc10.2ch.net/test/read.cgi/tech/1170391493/
1000デフォルトの名無しさん:2007/02/02(金) 14:02:22
  /. ――┤. -=・=-    -=・=-    | |  ∧ ∧{´ ◎ `}____( ´∀`)\ う \
 ./(.  = ,= |      ∧∧    ∧_∧  | | ( ´ー`) ):::/´∀` ;:::: \ヽ(`Д´)ノ゛\ ま\
 |||\┏┓/∫    (=゚ω゚)ノ~ ( ´Д`)//  \ < .∧|∧   /::::::::::| .¶_¶.    \い\
 V/ ∧,,∧ ∬  〜(  x)  /       /   ,一-、(´ー`)  /:::::|::::::| (ΦдΦ)/~   \棒\
  || ミ,,゚Д゚ノ,っ━~~ U U   / /|    /   / ̄ l⊂ヽ \/|:::::::::|::::::|  γ__  ∧w∧ 旦∬
 人 ミ ,,,  ~,,,ノ  .n  THANK YOU 2ch ■■-っ ┌───────┐  \ ( ゚Д゚ )∩゛
( ゚ー゚)と..ミ,,,/~),ヽ(凸)ノ~     and..     ´∀`/. | ●        ● |     ヽ    ノ
  / ̄ ̄し'J\[Y] GOOD-BYE 2ch WORLD! /| .┌▽▽▽▽┐. |____|__||_| ))
 /     ●  ●、ヽ                  (. ┤ .|        |. |□━□ ) (゚Д゚)?
 |Y  Y       \  またどこかで会おうね.. \.  └△△△△┘. |  J  |)∧_∧
 |.|   |       .▼ |∀゚)               |\あ\       | ∀ ノ " ,  、 ミ
 | \ /■\  _人 |∧∧∩゛∧_∧∩゛∧_∧  |   \り.\     | - Å′ ゝ∀ く
 |  ( ´∀`)___/( ゚Д゚.)'/ ( ´∀` )/ (・∀・ ),. |.    \が\.    |  ). \  Λ_Λ
 \ ( O   )  冫、 U  /  (     / ⊂  ⊂.)ヽ(´ー`)ノ゛ \と.. ∧_∧/(´Д`;)<丶`∀´>
  |││ │   `   |   |   ∪ |  |  ( ( (  (  へ (゚д゚)〜⌒(゚ー゚*) (-_-) (・ω・` )
  (_(__(__)(・∀・) ∪~∪  (_(__) (_(_) く ⊂⌒~⊃。Д。)⊃⊃⊃(∩∩)(∩ ∩)
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。