[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 04/05 15:43 / Filesize : 271 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん [2007/06/27(水) 07:23:27 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。pc10.2ch.net/hp/

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/
これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

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

前スレッド
【初心者】Java質問・相談スレッド102【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1180419689/

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

次スレは>>980あたりで。

399 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 14:56:46 ]
>>398
ファイルに関連づけられてるアイコンって、
OS依存な気がするんだが・・・>>396は何か勘違いしてる気が・・・

400 名前:デフォルトの名無しさん [2007/07/05(木) 14:59:09 ]
違うよ、お前に言ったんじゃないよ

401 名前:デフォルトの名無しさん [2007/07/05(木) 15:00:06 ]
>>399
JTree上のアイコンだろ?

402 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 15:12:33 ]
確かにフォルダの絵とかはUIリソースで変えられると思うが
エクスプローラみたいなのを作りたいってことは、exeファイルのアイコンとか
関連づけられたアプリのアイコンとかにしたいってことなんじゃないの?
>>401

403 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 15:47:41 ]
>>402
そういうことっす

404 名前:デフォルトの名無しさん [2007/07/05(木) 19:04:57 ]
アイコンを用意するところからだな。

405 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 20:49:42 ]
インスタンスの生成と破棄に関するパフォーマンスを調べたいのですが、測定ツールみたいなものはありますか?

406 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 21:03:29 ]
>>403
同じプログラムを Linux へ持っていたらまったく意図した通りに動かない、ということですな・・・


407 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 21:05:44 ]
Write once, Run one platform.




408 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 21:30:39 ]
ファイラはどうやってアイコンとってきてるんだろね
デフォルトはシステムのどっかにアーカイブされてるんだろうが

409 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 21:45:57 ]
explorer.exe とか run32.dll のなかにアイコンリソースがいっぱいあるね

410 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 21:50:05 ]
JDICにそれっぽいAPIがありそうな感じ。
ttps://jdic.dev.java.net/
この辺のAssociationとか使えそうじゃね?
ttps://jdic.dev.java.net/documentation/Examples.html

411 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 22:50:43 ]
https://jdic.dev.java.net/ のしたの方にデモがあるね
javadesktop.org/jdic/demo/FileExplorer/fileexplorer.jnlp


412 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 22:51:45 ]
サーバプログラムでクライアントから入力があれば、文字列を受信して、画面にその文字列を表示してループを抜ける。
また、画面から入力(Enter)があれば、ループを抜けずに、プログラムを強制終了させる。
上記の問題で条件文のことで質問があります。

while(true){
// 省略
if(System.in.available() > 0)
break;
}
「入力があれば」は上記if文でいいのでしょうか?
またEnterキーが入力された場合はどのように条件文を書けばいいのですか?

413 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 22:58:57 ]
jarファイルにしたら外部に別のファイルを出力させることはできませんか?

414 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 23:01:12 ]
>>411
それだと、ファイルの種類にかかわらずアイコンが全部同じになってるんだよね。
他に方法があるといいんだけど。

415 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 23:07:24 ]
>>412
まったく意図が通じていないと思うがエスパーしてみる
socket.getInputStream() を使ってバイナリを受信するべし

416 名前:412 mailto:sage [2007/07/05(木) 23:20:24 ]
すいません。
・画面からの入力が「Enterキー」ならプログラム強制終了。
の部分だけを知りたかったんです。
サーバ、クライアントなしでただのプログラムとして考えてください。


417 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 23:21:27 ]
Javaでなんか作ってるスレない?



418 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 23:30:01 ]
pc11.2ch.net/test/read.cgi/tech/1179168569/

419 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 23:33:58 ]
System.inをScannerに放り込んで、nextLine()で終了。
Scanner scanner = new Scanner(System.in);
scanner.nextLine();

420 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 23:42:01 ]
>>414
たぶんもう見てると思うけど
wisdom.sakura.ne.jp/system/java/swing/swing38.html
の一番下のとか
terai.xrea.jp/Swing/PreviewAccessory.html
とかがあるよね
でも >>395
「やっぱりひとつひとつアイコン設定するしかない? 」
の不満は解消されてないっぽ
シコシコやっても >>406-407 みたいになるのがオチ


421 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 23:43:41 ]
ネットワークプログラミングの参考書で
お勧めの教えてくらさい

軽くその本の内容も書いてくれると嬉しいです

422 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 23:49:54 ]
Javaネットワークプログラミングの真髄

423 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 23:57:28 ]
>>422
サンクス
ググってみたが,出版されて日が浅いせいか
全然レビューないな
とりあえず,明日本屋で立ち読みしてみるわ

424 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 00:04:15 ]
>>420
jdicのAssociationServiceのgetFileExtensionAssociationで拡張子指定して
Associationを取得してgetIconFileName()を使うとなんか帰ってくるな。
なんでか「絶対パス,整数」の形式になってる。
数字の意味がわからないが絶対パスの先はアイコンではなく
実行ファイルなのであった・・。

ああ、もしかするとアイコンを使ってるファイルのパスが帰ってくるのか(´д`)


425 名前:デフォルトの名無しさん [2007/07/06(金) 00:04:25 ]
執筆者乙

426 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 00:05:50 ]
>>424
整数はリソースの番号だろ


427 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 00:06:45 ]
>>424
アイコンを使ってるファイルのパスじゃなくて
アイコンを格納しているファイルだろうね



428 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 00:13:18 ]
>>420を見て、Windows L&FにするとJFileChooserに適切なアイコンが表示されることを思い出した。
で、「もしや?」と思って試してみた。
上手くいったぞ。こんなコード。
JFileChooser chooser = new JFileChooser();
FileChooserUI ui = chooser.getUI();
FileView fileView = ui.getFileView(chooser);
JLabel pdfIcon = new JLabel("*.pdf");
Icon pdfIcon = fileView.getIcon(new File("a.pdf"));
pdfLabel.setIcon(pdfIcon);

こんなコードをJTreeのレンダラに仕込めば、
JTreeのノードに対応するすべてのファイルに対して、適切なアイコンが表示される。
もちろん、Windows L&F限定だが。

FileView#getIcon(File)に指定するファイルは、存在しないとFileNotFoundExceptionが発生した。

429 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 00:24:49 ]
>>428
乙。


430 名前:428 mailto:sage [2007/07/06(金) 00:35:40 ]
こんなレンダラでいけたよ。Metalだとみんなアイコン一緒だったけど。

public class FSTreeCellRenderer extends DefaultTreeCellRenderer {
 private FileView fileView;
 public FSTreeCellRenderer(){
  JFileChooser chooser = new JFileChooser();
  fileView = chooser.getUI().getFileView(chooser);
 }
 public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
  DefaultMutableTreeNode node = (DefaultMutableTreeNode) value;
  File file = (File) node.getUserObject();
  Component comp = super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
  setText(file.getName());
  setIcon(fileView.getIcon(file));
  return comp;
 }
}

431 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 00:43:17 ]
>>428
javax.swing.filechooser.FileSystemView 使えば
Windows では 16x16のアイコンと、ファイルの種類だけは取れる。

432 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 07:27:44 ]
これは覚えておかなくては

433 名前:デフォルトの名無しさん [2007/07/06(金) 09:46:41 ]
質問です。

Eclipseでプログラミングをしているのですが、
log4jとJCOMを外部jarとして追加しています。

この状態でjarファイルとしてプログラムをエクスポートすると、生成されたjarがそのまま実行できません。
CLASSPATHが通ってない・・・みたいなエラーが出ます。

通常のjarみたいにダブルクリックで起動させたいのですが、これはどうすれば解決できるでしょうか?

434 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 10:18:12 ]
>>433
実行可能Jarでググれ。

435 名前:デフォルトの名無しさん [2007/07/06(金) 10:33:12 ]
>434
ググってみたんですけど、
外部Jarを使ったプログラムのエクスポート方法
などが載ってるページが見つかりませんでした。



436 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 10:56:55 ]
「実行可能Jar」でググった1番最初に見つかるが、
お前さんが使ってるGoogleは別物なんだな。
わかった。ズバリ答え。
MANIFEST.MFにこう書け。

Class-Path: log4j.jar jcom.jar

log4j.jarとjcom.jarは、実行するJarファイルと同じフォルダに置くこと。

437 名前:デフォルトの名無しさん [2007/07/06(金) 12:19:50 ]
>>436
ありがとうございます!!
無事に実行することができました。

これで実行jarと同じ階層に3つのjarファイルがあるわけなんですが、
コレを1つのexeファイルにしたいんです。

Fat jarでまとめてexewrapでexeにする・・・というのはできるんでしょうか?



438 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 15:46:00 ]
>>437
そこまで手順が確定しているなら自分でやってみればできるかどうかすぐ分かる。

439 名前:たかひと [2007/07/06(金) 16:49:12 ]
jspからftpサーバにファイルをアップロードするには
どのようにすればいいのでしょうか。
宜しくお願いします。

440 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 17:52:31 ]
launch4j

441 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 18:05:44 ]
log4JってWebアプリに使ってもいいですか?
スレッドとかぶつかっても平気ですか?

442 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 21:19:09 ]
log4jはスレッドセーフじゃないです。残念ながら。
まぁ日付の書式に気をつければ何の問題もないけどね。

443 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 21:31:28 ]
UDPだから負荷が重いときはデータ抜けしますよ

444 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 00:53:30 ]
logging.apache.org/log4j/docs/faq.html#1.7
> 1.7 Is log4j thread-safe?
> Yes, log4j is thread-safe. Log4j components are designed to be used in heavily multithreaded systems.

まことに残念

445 名前:デフォルトの名無しさん [2007/07/08(日) 01:42:28 ]
byteとintを論理演算すると、勝手に符号拡張されるので困ってます。
例えば以下のソースで、

------------------------
int i = 0;
byte b = -1;

i = i | b;
------------------------

やりたいことは、iのビットパターンを以下のようにしたいんだけど、
00000000 00000000 00000000 11111111

実際はこうなってしまいます。
11111111 11111111 11111111 11111111

これってどうすれば回避できるんでしたっけ・・・

446 名前:デフォルトの名無しさん [2007/07/08(日) 02:00:34 ]
スレッドに挑戦しようと思い、スレッドを含んだものを作ってみたのですが、コンパイルするときにスレッドの例外というのが発生してしまいます
単純に宣言や拡張が何か足りないだけなのでしょうか…

447 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 02:02:35 ]
コンパイルするときに例外が発生ってどゆこと



448 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 02:04:26 ]
>>445
i = i | (b & 0xFF)

449 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 02:04:33 ]
>>445
0xFF と AND でもとれば

450 名前:445 mailto:sage [2007/07/08(日) 02:10:40 ]
>>448
>>449

ありがとうございます。できました。(; ´д`)

451 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 02:16:37 ]
i = i | (b & (byte)0xFF)

452 名前: mailto:sage [2007/07/08(日) 02:59:39 ]
Eclipseでどんなプログラムでもデバックモードで走らせると、いつも最初にTrueTypeFon.open()262行ででNullPointerExceptionが発生しています。
Eclipse3.21 JDK1.6.0_02、Windows2000SP5です。同じような症状の人いますか? 普通に実行してる分にはNullPointerExceptionは発生しないのですが。


453 名前:452 mailto:sage [2007/07/08(日) 03:01:22 ]
どんなプログラムではありませんでした。Swingをつかうプログラムでした。

454 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 03:04:30 ]
そのぬるぽは君のプログラムからじゃなくてEclipseから発生してるもの?

455 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 04:41:18 ]
exewrapすると中身は見れないんですか?

456 名前:452 mailto:sage [2007/07/08(日) 04:44:03 ]
自分のプログラムからだと思います。でも自分のプログラムが悪いという問題ではないと思います。
GUI(Swing)を使えば必ず出てきます。
階層的にはJFrame#initの呼び出しの果てに
Window#init(GraphicsConfiguration gc)
が呼び出されて、さらにその後もメソッドの呼び出しが続いてTrueTypeFon.open()でヌルポが発生してしまいます。

ただこのヌルポ、デバッグモードで動かさないとわかりません。
Eclipseならデバッグモードじゃなくてもヌルポが発生したらコンソールに知らせてくれるはずなのだと思いますが。

457 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 07:33:33 ]
最低限のソースを




458 名前:452 mailto:sage [2007/07/08(日) 11:06:54 ]
public class Test {

  public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setSize(640, 400);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
  }

}
こんな単純なのでもデバッグモードで起動するとヌルポが出てしまいます。

459 名前:452 mailto:sage [2007/07/08(日) 11:10:08 ]
最初のJFrameのコンストラクタの呼び出しの中でヌルポが発生しています。

460 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 11:31:51 ]
>>452
それでも発生するならばEclipseの実行環境(JRE)の設定でJDK1.6となっているかを確認。
さらに、プロジェクトのプロパティからコンパイルレベルが、6.0になっているかを確認
ダメならば、Eclipseを入れなおしてみる

とりあえず、そんなとこかな?

461 名前:452 mailto:sage [2007/07/08(日) 12:17:34 ]
>>460
どうもありがとうございます。JREの設定でJDK1.6、コンパイルレベルが、6.0、ともになっています。
ちょうどEclipse3.3が出たから、アドバイスどおりEclipseを入れなおしてみます。

462 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 12:23:47 ]
>>461
3.3.1が出るまでは冒険でしょでしょ(=ω=.)

なんかプラグインが衝突しているんかねぇ
大量にプラグインいれた環境とかならば、再インスコがベストだろうな。
VEとかいれているならばかなり怪しい

463 名前:デフォルトの名無しさん [2007/07/08(日) 13:46:20 ]
コンパイルはできているのですが実行したら
Exception in thread "main" java.lang.NoClassDefFoundError:Sample1とエラーが出ます
そこでシステム環境変数のCLASSPATHを削除したら治ったのですがこれは削除してもよかったんでしょうか?

464 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 13:47:11 ]
「.;」をわすれてね?


465 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 14:04:21 ]
javacとjavaコマンドでやっているのか?
CLASSPATHは環境変数に設定するとトラブルを誘発するので勧めない

必要な時、javaコマンドなどのオプション-cpで設定する方がいいよ

466 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 14:08:51 ]
>>465
はいそうです。
CLASSPATHの値を控えずに消してしまいました。元の状態に戻すことは不可能ですか?

467 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 14:16:00 ]
>>466
不可能
Windowsのバックアップ機能とかあるならば可能かもしれないけど、そっちは詳しくないので知らん
何度も言うけどCLASSPATHに値を設定してトラブルになるより、-cpの使い方学べ、その上でCLASSPATHに必要ならば設定汁



468 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 14:23:49 ]
>>467
そうですか・・ありがとうございました。
まあ今のところ問題なく動いているので大丈夫だと思いますが
ちなみにCLASSPATHは全くいじってませんでした。

469 名前:2人の女性と付き合っている高1です mailto:sage [2007/07/08(日) 19:54:12 ]
>>467
よこから割り込みますがCLASSPATHを環境変数に設定するとまずいという
ご意見がありますが、どういう時にまずいのでしょうか?

僕は現在JavaSE6up2しかマシンにインストールしていませんが、そんな
状況で起こりうる誤作動の事例をよろしければ教えてください。

470 名前:桜井葵 [2007/07/08(日) 20:11:37 ]
ビジュアルクラスを開いたら『新規ファイルをエディターに設定しよぅとしてエラーが発生しました』『java.lang.NullPointerException』って出てプログラムしか出ないんですけど、誰か助けて下さい(ノ_・。)

471 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 20:46:41 ]
>>469
CLASSPATHでググれカス

472 名前:デフォルトの名無しさん mailto:sage [2007/07/08(日) 20:47:50 ]
>>469
2人とも妊娠

473 名前:デフォルトの名無しさん [2007/07/08(日) 23:43:42 ]
ちった、役に立つかも!

www.yukinko-net.jp/


474 名前:デフォルトの名無しさん [2007/07/09(月) 12:48:21 ]
ど素人質問です。失礼します。
JDKを使って勉強したいのですが、
どれを使えばいいのでしょうか。
・JDK 5.0 Update 12 with NetBeans 5.5.1
・JDK 5.0 Update 9 with Java EE
・JDK 5.0 Update 12
・完全な環境と実行環境はGet the JDK download からダウンロードできます。
JDK5の次が7になっているのですが6のバージョンってないのでしょうか

475 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 12:56:49 ]
>>474
JDK 6 はあるよ。>>1のWikiサイトからたどれる。
ttp://java.sun.com/javase/ja/6/download.html
ここのJDK 6u2をダウンロードすればおけ。

with BetBeansってのは、IDEが付いてくる。
最初はエディタでやろうとしているなら、いらない。
with Java EEは、初心者なら忘れてしまってもかまわない。

476 名前:デフォルトの名無しさん [2007/07/09(月) 13:10:49 ]
質問です。
URLConnectionでGETパラメータを送ろうとしているんですが
どの時点で送信しているのかがわかりません。

String urlString = "hoge.com/hogehoge.jsp?a1=test&a2=TEST";
URL url = new URL( urlString );
URLConnection uc = url.openConnection();

DataInputStream dis = new DataInputStream( uc.getInputStream() );
String s;
while( ( s = dis.readLine() ) != null ) {
System.out.println( s );
}
dis.close();

リファレンス等を参考にするとopenConnection()で接続を確立しているらしいのですが
ここでhogehoge.jspに通信しているんでしょうか?

DataInputStream dis = new DataInputStream( uc.getInputStream() );
上の部分でhogehoge.jspに送信してそのまま受信に入っているんでしょうか?

タイミングがイマイチわからないので教えてください。

477 名前:474 [2007/07/09(月) 13:14:35 ]
>>475
ありがとうございます。
後のいろいろな機能はあとから付けられるのでしょうか。
どのようにつけたらよいのでしょうか。
よろしくお願いします。



478 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 14:06:21 ]
>>477
Java EEはここから
ttp://java.sun.com/javaee/downloads/index.jsp
NetBeansはここから
ttp://www.netbeans.org/products/

後でダウンロードしてインストールできる。最初からなくても大丈夫。

479 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 14:10:17 ]
JDK6はあるはずだが・・・

480 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 16:10:37 ]
>>476
自分の書いたレスをじっくり読み直すんだ
前者以外に答えがあると思うかね

481 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 16:44:22 ]
ポップアップについての質問です
いまJPanel上を右クリックでJPopupMenuを表示するところまではできたのですが、メニューを選んだときの処理をどうすべきかわかりません。
MouseEventだとどのメニューを選んだかわからず、ポップアップにつけたJMenuItemにsetActionCommandを付けようにも、JPanelにaddActionListenerがないため、どのように識別させるのかがわかりません。
また、上の識別の問題に関連するものですが、JPanel別にメニューを付けてるのですが、大部分が重なる処理なので、呼び出し元(JPanel)を識別して、イベント処理で振り分けるということはできないでしょうか。

以上2点、お願いします。

482 名前:481 mailto:sage [2007/07/09(月) 17:01:07 ]
書いた直後なんですが、1つ目できました
ボタン処理のようにJMenuItemごとにアクションリスナーを登録するという方法があるようで、そうするとメニュー選択時に呼ばれるようになりました。
どうも、検索したときのキーワードの範囲が広すぎたようね…
2つ目はいまだわからず、getComponentだとパネルの位置はわかるんですが、ActionCommandのように得ることはできないですかね。

483 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 17:25:50 ]
処理名称は一緒だが処理内容が異なるのなら、
(Wordなら、文字の削除とオートシェイプの削除、など)
ActionMapで振り分けるとか。

JPanel p1 = new JPanel();
p1.getActionMap().put("edit", new AbstractAction(){
 public void actionPerformed(ActionEvent e){
  // 編集時の処理
 }
};
p1.getActionMap().put("delete", new AbstractAction(){
 public void actionPerformed(ActionEvent e){
  // 削除時の処理
 }
};

のようなJPanelを用意しておいて、JPopupMenu表示時には
ActionMapからJMenuItemを組み立てる。こんな感じ
private JPopupMenu createMenu(ActionMap map){
 JPoppuMenu menu = new JPopupMenu();
 JMenuItem editItem = new JMenuItem("編集");
 if(map.get("edit") != null){
  editItem.setAction(map.get("edit"));
 } else {
  editItem.setEnable(false);
 }
 menu.add(editItem);
 // 以下略
 return menu;
}

484 名前:481 mailto:sage [2007/07/09(月) 17:37:35 ]
>>483
なるほど、ActionMapってそういう使い方をするためにあったんですね。
もう少し調べて試してみます。
ありがとうございました。

485 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 18:24:07 ]
初歩的な質問です。
一度描画したものをドラッグで移動させるにはどのような方法があるのでしょうか?
「java ドラッグ」とかでググっても出てこない・・・

486 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 18:26:55 ]
>>485
[1] ドラッグされたことを知る
[2] 描画したものを移動させる

がんがれ

487 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 18:32:29 ]
>>486
[1]についてはマウスイベントで成功しました。
[2]がよくわかりません。
いちいち白塗りして細かく描きなおすのでしょうか。



488 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 19:43:28 ]
>>487
スプライト処理でぐぐってみれ。
要はTVゲームのスプライトと同じで描画領域と位置をコントロールする
後はマウスのイベントで移動量を測ればOK

489 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 22:54:08 ]
>>487
昔WebStartのサンプルで画像エディタがあって、コンポーネント単位で画像の移動、重ね貼りが
出来るのがあったけど、そういうのを作ろうとしているの?


490 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 23:09:17 ]
会社の先輩がドラッグアンドドロップできるカードゲーム作ってたな。
あれだ、ソリティアみたいなやつ
結構簡単に出来るといっていたけど、ソースみてもわからんorz

491 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 23:40:07 ]
昔はXORしたりしてたけど
今ならレイヤーで簡単

492 名前:デフォルトの名無しさん [2007/07/10(火) 00:32:21 ]
すみません。ごくごく簡単なカウントアップするサーブレットをつくったんですが、
ブラウザを2つ立ち上げると2つとも同じ数をカウントしていきます。int変数でカウントを記録しています。

ブラウザAを立ち上げる→1と表示される
ブラウザBを立ち上げる→2と表示される
ブラウザAの更新ボタンを2回クリック→4と表示される
ブラウザBの更新ボタンを1回クリック→5と表示される

これだと、いろんなユーザにint変数が共有されてしまうようにおもうんですが
これでいいものなんですか?

以下、ソースを載せます。

493 名前:492 mailto:1sage [2007/07/10(火) 00:34:04 ]
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class Lesson03 extends HttpServlet {

int intCount = 0;

public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {

response.setContentType("text/html; charset=iso-2022-jp");
intCount++;

PrintWriter pw = response.getWriter();
pw.println("<html><head><title>カウントアップするサーブレット</title></head>\n"
+ "<center><br><br>読み込む度にカウントアップします<hr><br><br>\n"
+ intCount + "回読み込まれました。<br></center></body></html>\n");
}
}

494 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 00:35:53 ]
素人の俺でも分かる。
サーブレットのインスタンスは通常1個しか生成されず、
複数のリクエストは同じインスタンスを呼び出す

495 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 00:38:07 ]
ついでに言うと、スレッドセーフにしなければならないから、
原則、インスタンスフィールドは作らない

496 名前:492 mailto:1sage [2007/07/10(火) 00:42:53 ]
>>494-495さん
どうもありがとうございます。よ〜くわかりました。doGetメソッドの中で宣言したらよかったです。
ありがとうございました。

497 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 00:45:29 ]
doGetのなかで宣言したら毎回0→1になるだけ



498 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 00:49:54 ]
>>490
DnDをどうやって認識させるかで書き方が変わるね。

499 名前:デフォルトの名無しさん [2007/07/10(火) 01:16:58 ]
(わかっているx座標:x,わかっているy座標:y,斜辺,傾き)を引数で受け取って
求めたいX座標Y座標の値を返す関数を作りたいのですが教えてください。

500 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 03:10:10 ]
>>499
java.awt.geom.Point2D method(java.awt.geom.Point2D p, 斜辺の型 a, 傾きの型 b) {
return new java.awt.geom.Point2D(p,a,bから求めたx, p,a,bから求めたy);
}
実際にはjava.awt.geom.Point2Dは抽象クラスなんでnewでインスタンスを作れないから、
必要な精度に合わせてjava.awt.Pointとかjava.awt.geom.Point2D.Doubleとかを生成して返す。
引数の方はjava.awt.geom.Point2Dでなく問いのようにx,yを別々に指定するようにしても。
両方のメソッドを作ってオーバーロードしておいてもいいかと。

501 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 08:28:03 ]
メール受信のためのプロキシーを作りたいのですが…。

パソコンのバックグラウンドで待機して、メール受信時にまずプロキシがメールデータ
を取得し、迷惑メールでなければそのままメールクライアントにメールデータを渡したい
です。

サーバーソケットを作って待機しているのですが、メール受信時にローカルにバインド
されるポート番号を検出できず悩んでいます。当然、110番で待機してはダメですよね?

メールクライアント側でプロキシサーバーアドレス、ポートを指定できれば早いのですが…。
(IEのように)

アンチウィルスソフトは、ローカルにプロキシサーバーを置いているように見受けられる
のですが、どうやって実現しているのでしょう?

どなたか、アドバイスをお願いいたします。

502 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 10:33:56 ]
JTableなんだけど、他のコンポーネントからTABでフォーカス移動してくると、
まだ一度もセルにフォーカス取得してない状態だとフォーカスが消えたようになる。
もう一度TABを押すとようやくセルが選択状態になるのだが・・・・・。
一度セルにフォーカスを取得すると他のコンポーネントから一発で移動できるように
なるんだがな・・。
ちなみにScrollPaneは使っても使わなくても同じでした。
JDKは1.5す。

どなた原因&回避策おながいします。

503 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 10:43:18 ]
>>501
あれはシステムに食い込んでるからこそできること。
Java では原理的に無理。
メーラーではメールサーバーに localhost を指定して、
設定その他は自分のプログラムでやるしかないと思う。

504 名前:501 mailto:sage [2007/07/10(火) 11:35:41 ]
>>503
レスありがとうございます。

メーラーのメールサーバーに localhost を指定して、通信をパイプする
ような感じで実装してみようと思います。

この場合、メールアカウントごとの設定がめんどくさいっすねー・・・。
どうやって保持しようかしら。




505 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 14:25:52 ]
そもそも、メーラー側が優秀なフィルタを持ってるこのご時世に自分で作っても意味はないよ。
屑メーラーを捨てれば良いだけ。

それとも、まともなスパムフィルタを作れるほどの
技術があるならメーラーそのものから作るって方法もある。

506 名前:デフォルトの名無しさん [2007/07/10(火) 14:44:29 ]
>>505
既にあるから作る意味ないって?
つまらない考え方だな。

507 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 14:44:52 ]
業務ロジッククラスXでDB接続とBEGIN
  ↓
  DBクラスYで振込情報をINSERT
  ↓
  DBクラスZで入金情報をINSERT
  ↓
業務ロジッククラスXでCOMMITとDB切断

をする際にDBクラスY,Zでconnection.commit()をさせない、
コンパイルエラーにする方法ってありますか?
INSERTをさせるためにはDBクラスY,Zにconnectionを渡さなければならず
connectionを渡せばcommit()が可能になってしまいます。
commit()やrollback()が不可能なDB接続を渡すとかできないでしょうか?
テストでバグ潰せばいいじゃんというのもわかりますができればコンパイル時にはじきたいです。




508 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 15:22:18 ]
メーラーの(優秀な)フィルタと自分のフィルタを置き換えなくちゃ
いけないならともかく、上乗せできるなら悪いことじゃないでしょ、
普通に考えても

509 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 16:25:27 ]
>>507
java.sql.Connectionをラップしたクラスを作れば?
ほとんど全てのメソッドはスルーするけど、
commit()やrollback()が呼ばれたらIllegalStateExceptionを投げるようなの。

510 名前:509 mailto:sage [2007/07/10(火) 16:28:05 ]
コンパイルではじきたいのね。スマン。
それならAspectJという手も。
ttp://www.kronos-jp.net/tech/tech100/tech100.html

511 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 16:49:20 ]
commit()やrollback()が無いインターフェイスNewConnectionを新しく作る。
DBクラスY,ZにはNewConnectionを渡す。
NewConnectionのラッパークラスを作り、DBクラスY,Zからconnectionのアクセスが出来るようにする。
で、どうよ?

512 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 17:16:50 ]
実行入力画面でアルファベットでなく日本語を入力するにはどうすればいいのですか?

513 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 17:40:48 ]
てか、それはJavaの質問なのか?
WindowsマシンならALT+変換押せ

514 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 17:56:06 ]
>>509-510
ありがとうございます。そうです、コンパイル時にはじきたいです。

>>511
その場合、
Connection connection = DriverManager.getConnection( 略 );
↓※
NewConnection newConnection = new NewConnectionWrapper();

※の部分の、実際のconnectionをnewConnectionにどうやって渡してあげればいいですか?
頭がこんがらがってきた・・・

515 名前:デフォルトの名無しさん [2007/07/10(火) 18:02:00 ]
>>514
まずは落ち着け。


516 名前:デフォルトの名無しさん [2007/07/10(火) 18:06:05 ]
変数の型を調べる方法ってありますか?


517 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 18:07:04 ]
これでよかろ。
NewConnection newConnection = new NewConnection(connection);
ただし、NewConnection は java.sql.Connection になれないので、
java.sql.Connectionを前提にしているプログラムが既にあるなら、
それを書き直さないといけなくなる。新規開発ならいいけどね。

あとは個人的な感覚だけど、独自規則のAPIを強制されるのはイヤダ。
APIは標準だが実装は(APIの範囲内で)独自、なら許せるが。



518 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 18:17:13 ]
>>517
なるほど。newConnectionの中でconnectionをprivateで持っておいて
commit()とrollback()は作らず、それ以外はnewConnectionのpublicメソッドを通して
connectionに投げると。ありがとうございます。

>あとは個人的な感覚だけど、独自規則のAPIを強制されるのはイヤダ。
>APIは標準だが実装は(APIの範囲内で)独自、なら許せるが。

自分も独自APIを強制して自由度を奪うのは好きじゃないですが
DB関連クラスだけでcommit()とrollback()のみの制限ならギリギリ許容範囲内かなと思っています

519 名前:デフォルトの名無しさん [2007/07/10(火) 18:20:17 ]
>>516
判定したい型が決まっているなら
instanceof演算子
とりあえず型を知りたいだけなら
"不明オブジェクト".getClass().getName()

520 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 19:57:44 ]
SPAMメールを受けたときに
逆に送信者に攻撃を仕掛けて
二度と送ってこないようにするには
Javaではどのような方法がありますか?

521 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 20:32:13 ]
Javaを辞めるしかないです。
さようなら。

522 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 20:48:44 ]
>>520
オーケー。いい方法を思いついた。
試してみたいので、お前のメールアドレスを教えてくれ。

523 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 21:41:06 ]
root@localhost

524 名前:デフォルトの名無しさん [2007/07/10(火) 21:58:09 ]
javaのプログラムからコマンドプロントを使ってcdコマンドなどで自動的に特定のフォルダに移動して、特定のファイルを実行したいのですが、探しても方法が見つかりません。

よろしければ教えていただけないでしょうか?

525 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 22:05:35 ]
フレームのサイズ変更についての質問です。
サイズを変更したことをリアルタイムに感知したいんですが、どのような方法があるでしょうか?
MouseMotionだとD&Dしてる間はメッセージが送られず、componentResizedも試しましたがマウスボタンを離した瞬間しか感知しません
(できればその移動距離か変更後のサイズも知りたいです)
JAVAではそういうのは想定してないんでしょうか。

>>524
Windowsなら、○○.batっていうファイルつくって右クリック編集
中に
------------
cd 移動先
java メインクラスの名前
-----------
の2行を書けばできるます。
詳しくはバッチファイルでしらべてくらはい

526 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 22:06:09 ]
Excelのファイルがいくつかのフォルダに分かれて存在していて
それぞれのフォルダはさらにサブフォルダをいくつか持っています
全部のフォルダをたどって全部のExcelファイルから
特定のシートの特定のセルを抽出していきたいのですが
どのようにすればよいのか検討も付きません

527 名前:524 [2007/07/10(火) 22:12:30 ]
バッチファイルをつかってjavaのクラスファイルを実行するのではなく、javaのプログラムからコマンドプロントのコマンドを入力して特定の処理をしたいのですが。

そのやり方を知っていたら教えて下さい。



528 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 22:14:57 ]
>>527
そういうことね、勘違いしてた

529 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 22:57:20 ]
>>524
Runtime.getRuntime().exec(☆DOSコマンド☆);
特定の処理がわからないのでここまで

530 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 23:06:56 ]
>>527
jrunscriptつかえ。そういうときのためにわざわざ用意されたんだから

531 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 23:27:40 ]
ワンランク上になりたいんだけどなにしたらいい

Java歴半年くらいでいまJSPとかデータベース使って小規模なシステム作ってる

532 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 23:42:01 ]
>>524
java1.5ならProcessBuilderが熱い

533 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 23:49:44 ]
>>531
EclipseのプラグインとかSwingなどのGUI
イベントドリブンなアプリケーションに慣れ、スレッドをある程度使いこなすと差は出来る

534 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 00:29:28 ]
>イベントドリブン
そこで Visual C++ ですよ

535 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 00:40:07 ]
>>533
EDTで時間かけてイベントキュー詰まらせてアーーーー!!とか・・・
VMのスレッド実装の差異やCPUの数が2以上あってアーーー−!!とか?

個人的にはJWSに触れとくのお勧め。

536 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 02:45:59 ]
MouseListenerとMouseMotionListenerは同時に使えない?なんてことはないよな・・・
どっちかを消すと上手くいくのに、
どちらも宣言するとシンボルが見つかりませんといわれる・・・

537 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 02:51:48 ]
自己解決。頭がおかしくなっていたようだった



538 名前:デフォルトの名無しさん [2007/07/11(水) 13:28:05 ]
Javaを用いて掲示板を作っています
形はそこそこ出来てきたので「同一人物(同IP)からの二重投稿を禁止する」機能をつけようとしているのですが
こういったものを作るのに便利なクラスはあるのでしょうか?

539 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 15:19:11 ]
インデント不良って何ですか?

540 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 15:23:12 ]
if (a > b)
  b = a;
  a = 1;
System.out.println(b);

みたいに書いてa > bでないときでもa = 1;が実行されるように錯覚させる悪い奴のこと

541 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 15:25:29 ]
逆だ
a > bの時にしかa = 1;が実行されないように、だ

542 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 17:19:25 ]
はじめからブロックにしとけば良いんだよ。
どうせ後から変更されるんだし。

if (a > b){
  b = a;
}
a = 1;
System.out.println(b);

543 名前:デフォルトの名無しさん [2007/07/11(水) 19:31:51 ]
if (a>b) b=a;
a = 1;
System.out.println(b);

こう書けば短い。

544 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 23:26:19 ]
1:JSPの画面での入力処理
2:javaでcsvファイル読んだりあれこれしてDBに書き込む
3:DB書き込み結果をJSPで表示、というのを作っています。

これに規定の時間を越したらエラーとしてタイムアウト画面へ遷移する機能を
追加しようと思っています。

で、Actionで
try{
 Timer timer = new Timer();
 timer.schedule(new myTimer(),3000);
 色々
}catch(myTimeoutException e){
 return (mapping.findForward("error"));
}

myTimer#run() ←TimerTask継承クラス
myTimeoutException e = new myTimeoutException ();
throw e;
みたいにやってみましたが
myTimer#run()までは来るけどActionの方にmyTimeoutException で飛んでこないです。


なんでException飛んでこないのでしょうか?

545 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 23:33:56 ]
>>544
Threadに関して基本から学びなおして来い
簡単なサンプルをおいておくので実行してみてくれ

class ThreadA extends Thread {
   public void run() {
      throw new RuntimeException();
   }
   public static void main(String[] args) {
       new ThreadA().start();
   }
}

546 名前:デフォルトの名無しさん [2007/07/11(水) 23:56:24 ]
swingのフレームワークで定番なのは何なのでしょうか?
今注目されてるのがあれば教えてください。

547 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 00:12:42 ]
swingの定番って意味ワカラネーよ
java3dとかその拡張ライブラリのことか?



548 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 00:21:01 ]
たった2行正確に読めないのかよ。
"フレームワークの"定番って書いてあるだろ

549 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 00:21:57 ]
Swing自体がフレームワークのような気もする。

550 名前:デフォルトの名無しさん [2007/07/12(木) 00:31:47 ]
そうだね


551 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 00:34:40 ]
フレークワークの意味が解っていないに1票。
定番はBorderLayoutとGridBagLayoutだよ、で満足するのかな(=ω=.)

552 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 00:36:31 ]
>>544
runメソッド内でThread.currentThread().getName()を出力してみれば?
あと、myTimeoutExceptionクラスのコンストラクタの中でもThread.currentThread().getName()を出力して
違いが分かれば無問題♪


553 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 00:43:35 ]
>>544
Webサーバとクライアントのイベントのやり取りを調べてくれ、それじゃ実装できん
1.クライアントでタイムアウトを検知したい
 ⇒ JavaScriptなどで実装
2.サーバーでタイムアウトを検知したい
 ⇒ 最初のアクセス時間を記録していて差分を取ればいい

尚、2の場合、「せっかっく頑張って入力したのに><」ってなるので注意。

554 名前:546 [2007/07/12(木) 00:46:37 ]
>>546です。
swing自体フレームワークなのですが、
journal.mycom.co.jp/news/2007/04/27/015/index.html
itpro.nikkeibp.co.jp/article/COLUMN/20070516/271165/
をみて、只気になっただけです。

555 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 05:40:19 ]
結局、どれもSwing作法の定型句を隠ぺいして楽する枠組みに落ち着く気がする。
javaでswing以上のGUI出しても高度なだけでどのOSでも通用するGUIが提供できなくなるんじゃないかな?

LnFがjavaなだけでwin/macユーザーは避けるし。
ポトペタ支援はJSRガンガン出すだろうね。
そんなところじゃない?
やっぱベクターベースのGUIツールキットはまだ早いだろうか?

556 名前:デフォルトの名無しさん [2007/07/12(木) 06:50:33 ]
java.lang.Mathクラスを使わずに、double型の変数を
小数点以下二桁まで残して切り捨てたいです。

第一感はこういう感じですが、もっと良い方法があれば教えてください。

double total = 1234.5678;

int tmp = (int)(total*100);
total = tmp/100.00;

557 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 07:00:49 ]
>>556
表示の時にのみ切り捨てるべきと考えて、NumberFormat
小数点2桁と固定ならば、intで【全て】計算して、表示する時に100で割る。



558 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 07:13:07 ]
>>556
total = new BigDecimal(total).setScale(2, BigDecimal.ROUND_DOWN).doubleValue();

559 名前: [2007/07/12(木) 10:31:48 ]
部分検索するプログラムを考えています。
String型のabcがあってabcともにnullならDBの内容を全部返し、bcだけnullならaの値を返すなど全8通りのif文をうまく考えられません。
どなたか1つでもいいのでお願いします。

560 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 10:36:26 ]
aを返すとか全部返すとかどういう意味?
全部返すときはa列とb列とc列を連結して返すの?

561 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 10:42:08 ]
SQLのWHERE句をStringのパラメータによって変更するってこと?

562 名前: [2007/07/12(木) 10:55:29 ]
559です。
値を取得するってことです。
いまアプリケーション作っててサーブレットに書く内容がうまく表現できなくて…
if (i == null && t == null && p == null) {
String sql = "select * from *****";
ResultSet rs = stmt.executeQuery(sql);
とか考えてたんですけど…

563 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 11:40:11 ]
なにがしたいのかさっぱりわからない。説明足りなすぎ

564 名前:デフォルトの名無しさん [2007/07/12(木) 11:45:05 ]
String abcという書き方ではなく、a,b,cの3つのStringがあり、それぞれnullかnullでないかを判断する必要があるということなのでしょう。


565 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 11:56:27 ]
質問というか、Javaの可変長引数の仕様で疑問に思ったのですが、

void test(int... vector) {
 if (vector.length == 0)
  System.out.println("vectorは空です.");
 else
  for (int i : vector)
   System.out.print(i + " ");
}

こういうメソッドを書くと、可変長引数は引数なしでも実行できるので、
test();
と呼び出すと、"vectorは空です."と表示されます。
ですが、同名の以下のメソッドを同じクラスで定義すると、
オーバーロードされますので、引数が0のときの振る舞いが不定のように見えます。

void test() {
 test(1);
}

実際にやってみたところ、下の関数が呼び出され、"1 "が表示されました。
可変長引数よりもオーバーロードのほうが優先されることがわかりましたが、
引数的にはどちらでも呼び出せるので、しっくりこません。
よければこのようになる理由を教えてもらえますか?

566 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 12:43:04 ]
>>565
java.sun.com/docs/books/jls/third_edition/html/expressions.html#15.12.2.5
あたりだね。

567 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 12:52:47 ]
>>566
もうちっと上だった。 15.12.2.3 の一番最後に
> If no method applicable by method invocation conversion is found,
> the search for applicable methods continues with phase 3 (§15.12.2.4).
> Otherwise, the most specific method (§15.12.2.5) is chosen among the methods that are applicable by method invocation conversion.
メソッド呼び出し変換で適用可能なメソッドが見つからなければ、
メソッド探索はフェイズ3(可変長引数で適用可能なメソッドを探すフェイズ)に移行。
そうでなければ、最適なメソッドはメソッド呼び出し変換で適用可能なメソッドから選ばれる。



568 名前:565 mailto:sage [2007/07/12(木) 13:09:21 ]
>>566-567
こんな質問に、的確な返答をありがとうございます。

そうですか、文書で定義されているんですね。

以下チラ裏
Javaって言語の定義が明確なイメージがあるから、こういうどっちとも取れる構文を許容するのは少し以外。
C++なんかでも、オーバーロードには定義が重ならないように注意しているのに、なんか意図して許容してるのかなあ。
まあ、「実装するのがややこしいorパフォーマンスに問題が出る」っていう可能性が一番高い気もする。

569 名前:デフォルトの名無しさん [2007/07/12(木) 13:15:48 ]
>>568
printfがやりたかっただけ。

570 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 14:47:05 ]
>>568
だからこそJLSで明確な定義があるんじゃないか

571 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 16:17:51 ]
printfって要る派と要らん派でもめなかったけ?
swap要るか要らんかの話みたいだと思った記憶があるんだが。

572 名前:sage [2007/07/12(木) 21:59:27 ]
いまjaxb2.0を使って、xmlからjavaオブジェクトに変換するロジックを考えてるんだけど、
<hoges>
<hoge id="hoge1"><value>ほげでーた</value></hoge>
<hoge id="hoge2"><value>ほげでーた</value></hoge>
<hoge id="hoge3"><value>ほげでーた</value></hoge>
</hoges>
pubric class Hoges {
@XmlElement(name="hoge")
private List<Hoge> hogelist = new ArrayList<Hoge>();
・・・
}

@XmlRootElement
pubric class Hoge {
@XmlAttribute(name="id")
private String id;
@XmlValue
private String value;
・・・
}
このxmlの<value>タグが無駄に思えて仕方ない。
<hoges>
<hoge id="hoge1">ほげでーた</hoge>
<hoge id="hoge2">ほげでーた</hoge>
<hoge id="hoge3">ほげでーた</hoge>
</hoges>
ってな書き方で、"ほげでーた"をHoge.valueにセットする方法ない?

573 名前:デフォルトの名無しさん [2007/07/12(木) 22:11:25 ]
スレッドを指定して停止したり、再開させることってできますか?

574 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 22:13:14 ]
>>573
できません。自分でフラグを用意してください。

575 名前:556 mailto:sage [2007/07/12(木) 23:15:53 ]
>>557
レスありがとうございます。

doubleを使わないんですね。
intで計算すると、どんな良い事があるんでしょうか。

>>558
ごめんなさい
使えるのはjava.util.*だけでした。


576 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 23:48:21 ]
すいません、質問させてください。

「UDTの通信で自分のIPアドレスと、通信している相手のIPアドレスを比較するプログラム」というプログラムを作っています。そこで、
相手のIPアドレスは、DatagramPacket.getAddress() で
「192.○.○.○」という様に普通に取れるんですが、
自分のIPアドレスを、InetAddress.getLocalHost().getHostAddress() で
「2001:0:4136:・・・・」という様に(ググってみるとIPv6のIPアドレスらしいんですが)比較できません。
IPv4で自分のIPアドレスを取得するにはどうすればいいんでしょうか?

よろしくお願いします。


577 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 00:04:31 ]
>>572 うろ憶えだけどXmlMixed?だったかで出来たかも



578 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 00:52:58 ]
>>576
UDT?

579 名前:デフォルトの名無しさん [2007/07/13(金) 00:59:48 ]
>>574>>573
たしか一時停止とかならできるのが有ったよ


580 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 01:01:46 ]
>>579
どうやってやるのですか?
特別なライブラリを使用するとかでしょうか??

581 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 01:18:02 ]
指定してってのは無理じゃねーの

582 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 01:22:08 ]
対象の Thread が分かってるなら suspend も resume も可能だろが

583 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 04:25:34 ]
イベント処理がGUIの例ばかりでよくわかりません。
どなたかGUIではないイベント処理のサンプルコードを教えてくださいませんでしょうか。

584 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 05:21:09 ]
じゃあ、プッシュ型のxmlプログラミングでも・・・

まあ、それは良いとして単純なCUIだとループ中にキー入力拾うだけ。
それ以上のものはコンソール制御できないjavaには無関係で
どっちにしても例に出すようなサンプルコードはないよね。

イベントドリブンでググった方が良いと思う。

585 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 05:28:47 ]
>>583
public class Clock implements java.awt.event.ActionListener {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println(new java.util.Date());
}
public static void main(String[] args) throws InterruptedException {
Clock c = new Clock();
new javax.swing.Timer(1000, c).start();
synchronized (c) {
c.wait();
}
}
}

586 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 08:15:59 ]
>>585
それ結局はGUI+スレッドに関連したプログラミングなんじゃ・・・。

まあ、java.awt.*パッケージにイベント周り集中してるからjavaのイベント処理は
ヘッドレスじゃないだろって考え方もできるから>>583の質問も的を射てないかも知れんが。


587 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 11:16:43 ]
java.io.File#listFiles や java.io.File#list は

> 結果の配列の名前文字列は特定の順序にはなりません。
> アルファベット順になるわけではありません。

とありますが、これは名前文字列以外の点においても
不定(少なくとも保証はしない)と言うことなのでしょうか?



588 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 11:21:40 ]
>>587
実装的にはOSのAPIが返す順番そのものなので、たいていはディスク上の
ディレクトリに記録されている順番になる。だから、意味のある順番で
はない。


589 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 11:42:40 ]
>>587
そゆ事。

原文みりゃ分かると思うけど
> There is no guarantee that the name strings in the resulting array
> will appear in any specific order; they are not,
> in particular, guaranteed to appear in alphabetical order.
日本語訳では in particular の部分がスッポリぬけてるのね。

もちろん、>>588がいう「OSのAPIが返す順番そのもの」ってのも一切保証されてない。

590 名前:デフォルトの名無しさん [2007/07/13(金) 11:46:45 ]
Tomcatのコネクションプーリングについて以下でOK?

server.xmlのJNDI(ResourceParams)の設定でfactoryにBasicDataSourceFactoryなどの
コネクションプーリングに対応した、データソース実装クラスのfactoryを
指定する事で行われる。

factoryの指定がない場合は、driverClassNameで指定したJDBCドライバの
DataSource実装クラスが使用される。

よって、factoryなしで、JNDIの記述だけでは、プールが行われるとは限らない。
PostgreSQLの場合、付属のJDBCドライバでは、プールはされない。

591 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 11:57:10 ]
>>588-589
ありがとうございます。やはり、と言うところですが
訳抜けと言う点は驚きました。

592 名前:デフォルトの名無しさん [2007/07/13(金) 14:14:10 ]
JFreeChartで描画したグラフの上にかぶせるようにShapeを描画する事は可能でしょうか

593 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 14:40:21 ]
>>592
可能

594 名前:592 [2007/07/13(金) 15:02:09 ]
JFreeChartについてもう一点
axisを共有した異種チャートの混合表示も可能でしょうか


595 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 15:25:30 ]
>>591
javadocでは普通、原文とサイトのチュートリアルよく読むのオヌヌメ

596 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 15:44:35 ]
>>594
異種で共有ってのがよく分からないけど、それも出来たと思う
前使った時に5,6種類のグラフを重ねてプロットしてたはず

597 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 15:45:43 ]
>>1
てsと



598 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 17:02:50 ]
計算についての質問です
double test = 17.56;
というのがあって、これの100倍の答え(1756)を出したいのですが、
計算すると、1755.9999999999998などという答えがでてきます。
どのようにすれば期待した答えがでてくるのでしょうか。

試したことは下記の2つでどちらも変な結果になりました
System.out.println(test * 100.0);
System.out.println(test * 100.0f);

599 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 17:19:33 ]
>>598
BigDecimal test = new BigDecimal("17.56");
System.out.println(test.multiply(new BigDecimal(100)));

600 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 17:20:37 ]
>598
System.out.println(Math.round(test*100));


601 名前:598 mailto:sage [2007/07/13(金) 17:39:48 ]
>>599-600
ありがとうございました
期待通りの答えをだすことができました。
単純に100倍するというのは難しいことなんですね・・・勉強になりました。

602 名前:デフォルトの名無しさん [2007/07/13(金) 19:22:03 ]
>>593>>596
有難うございました、早速使ってみました
なかなか優れものですねこれは

603 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 19:51:42 ]
>>601
誤差がね
あるから

604 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 19:52:03 ]
>>598
Javaに限ったことじゃないけど、プログラムで小数を扱うのは難しい

605 名前:デフォルトの名無しさん [2007/07/13(金) 19:55:11 ]
電卓でもいえるけどね

606 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 20:26:47 ]
量子コンピューターになればいいんじゃないかな?

607 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 20:31:58 ]
量子コンピュータは二進数使わないのか?



608 名前:デフォルトの名無しさん [2007/07/13(金) 20:46:13 ]
アナログコンピューターでOK

609 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 22:42:44 ]
>>576
試したこと無いけど
DatagramPacket.getSocketAddress().getAddress() って何が帰ってくるの?

610 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 00:04:40 ]
>>600
適当すぎw 答えが2.6とかだったら3になるなw

611 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 16:47:50 ]
switch文で○○以上の場合はこの処理をするっていうのはできますか?

612 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 17:40:17 ]
>>611
とりうる値がかなり限られているなら○○以上の値を複数のcaseで羅列して挙げておけばいいが、
そういう条件判断は普通はif文で処理したほうがいいと思う。

613 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 18:39:38 ]
>>611
int flag = 0;
if( 10 <= x) flag = 1;
switch flag
case flag:
  // 処理
  break;
default:
  // 何もしない?

でどうだ?

switch文は使わないのがベター
大雑把な書き方は覚えているけど、詳細忘れたんで、テキトー
xが10以上の時、switch文で処理を分岐できるぞ。
業務で書いたならばぶち殺すけどなwwww

614 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 18:55:18 ]
>>611
できません

615 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 21:07:48 ]
>>613
case 1:

616 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 22:37:48 ]
>>613
caseに変数は使えない。リテラルのみ。
自信ない時は試してから書こうぜ。

617 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 22:38:21 ]
あ、定数もいけたか。



618 名前:611 mailto:sage [2007/07/14(土) 23:28:12 ]
レスさんくす

619 名前:デフォルトの名無しさん mailto:sage [2007/07/14(土) 23:30:16 ]
Rubyならできる

620 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 01:21:06 ]
rubyもgroovyもいらない子

621 名前:デフォルトの名無しさん [2007/07/15(日) 12:13:26 ]
データの読み込みについて質問です。
一度ByteにしてArrayListに格納して、取り出してbyteに変換しています。
もっとスマートな方法(このクラスを使った方が良い等)があれば教えて頂けないでしょうか。

ArrayList byteArray = new ArrayList();
int readByte = 0;
while (readByte != -1) {
readByte = stream.read();
if (readByte != -1) {
byteArray.add(new Byte((byte) readByte));
}
}
Byte[] byteBig = (Byte[]) byteArray.toArray(new Byte[0]);
byte[] byteTmp = new byte[byteBig.length];
for (int i = 0; i < byteBig.length; i++) {
byteTmp[i] = byteBig[i].byteValue();
}

622 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 12:49:22 ]
>>621
スマートとかじゃなくて、それじゃ落第です。動くだけ。性能でなさ杉。

1.もし読み込み対象データのサイズは先にわかるのであれば、1発バルクリ
ードしておしまいのはず。そんな遅そうな処理をする必要はないです。
多分こんな感じで。

File target = new File("...");
byte[] buffer = new byte[target.length()];
FileInputStream in = new FileInputStream(target);
in.read(buffer);

I/O-CPU間のスイッチが発生しないので、速いですよ。

2.サイズがわからないにしても、1バイトずつ読むのはやめなさい。
たとえば100バイトずつ読めば、I/O-CPUスイッチの回数は1/100です。


623 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 13:41:28 ]
JDBC4.0に対応しているDBってどのくらいある?
PostgreSQLが完全対応で、Derbyがβって感じ?

624 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 13:56:15 ]
>>622
new byte[target.length()] してから new FileInputStream(target) するまでの間に、
ファイルが書き換えられて長さが変わる可能性がある。

in.read(buffer); は確実にbuffer.lengthバイトを読み込む事を保証してないので、
実装依存にしたくなければ明示的にループ使って全部読み込まないとダメ。

I/O-CPU間のスイッチがどのタイミングで入るかは実装依存なので
100バイトずつ読んでもスイッチ回数が本当に1/100になるかは不明。

625 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 14:05:13 ]
RandomAcceccFileの方を使えば100%保障じゃね?

626 名前:デフォルトの名無しさん [2007/07/15(日) 14:13:09 ]
ByteBuffer

627 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 14:16:47 ]
>>621
ByteArrayOutputStream out = ByteArrayOutputStream();
byte[] buf = new byte[1024];
int len;
while(-1 != (len = stream.read(buf))){
 out.write(buf, 0, len);
}
byte[] contents = out.toByteArray();



628 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 14:17:20 ]
>I/O-CPU間のスイッチが発生しないので、速いですよ。

>2.サイズがわからないにしても、1バイトずつ読むのはやめなさい。
>たとえば100バイトずつ読めば、I/O-CPUスイッチの回数は1/100です。

おいおい、実装依存だぜそこは・・・って言おうとしたのにorz
ち、ちゃんと気づいてたんだからね!?

629 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 14:36:36 ]
様々な回答ありがとうございます。
一通り試して各メリットデメリットを整理し、理解を深めたいと思います。
このスレは優しい方が多いですね。
もっと叩かれると思っていました。

630 名前:デフォルトの名無しさん [2007/07/15(日) 21:22:44 ]
javaのlexとyaccどこ?

631 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 23:03:47 ]
Calendarクラスって使いづらくない?

632 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 00:39:43 ]
古いのはそうだね

633 名前:デフォルトの名無しさん [2007/07/16(月) 01:19:29 ]
上司から、1つのJavaプログラムソースの流れを追えるように、と指示が出されました。
このページの作成ボタンを押したらデータはどう飛ぶかとか…。
ヒントを求めてもこれといった答えをくれないので、Eclipceを前にして苦悩しています。
ど素人&抽象的な質問で申し訳ないですが、ソースを追う際のコツみたいなのはありますでしょうか?

634 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 01:22:31 ]
メソッドの頭にブレークポイントを挿入してみたら?

635 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 01:35:42 ]
>> 634
ありがとうございます。なるほど、それが簡単かもしれませんね。
でも、jspやらjavaやらが全部で何千と存在しているので、できればそれ以外の方法で検証したいのです。
変数が定義されてないかを調べるために変数を検索してみるといい、とは上司に言われたのですが、
あまり自分の中でピンとは来ません。
とんちんかんなことを言ってるかもしれませんが、ブレークポイント以外でもう一声いただけると助かります!

636 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 01:40:27 ]
Eclipseなら右クリックで変数の宣言に飛ぶとかメソッドの定義に飛ぶとかできる

637 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 01:44:16 ]
そうなんですか?!
明日、日付明けて今日ですが、会社行って試してみようと思います。
12時間後ぐらいに撃沈してるかもしれませんが、その時はまたご教授願いします…。
素人の質問に回答いただきありがとうございました!



638 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 05:08:20 ]
C++からJavaに引っ越してきたばかりの初心者です。

class A {
  private int data;                  //外部からは見えない
  private setter(int data) { this.data = data; } //外部からは使えない
  public int getter() { return data; }
}

というクラスがあったとき、data は int 型なので、この値が外部からは
絶対に変更されないことは保証されていると思います(C++と同じ)。
しかし、これが基本型の int ではなく、一般的なクラスだった場合、
例えば StringBuffer だったりしたら、外部からでも

  StringBuffer str = getter();
  str.append("hoge");

みたいにして操作することは可能です(ここはC++と違う)。
これを防ぐために思いつくのは、getter() で data そのものではなく
data のコピーを返すことですが、

  public String getter() { return data.toString(); }

1. これは標準的な方法ですか?
2. ざっと見たところ、StringBuffer と違って String には
  インスタンスそのものが保持している値を直接書き換える
  関数はないようですが、int と同じように扱っても安全ですか?
3. StringBuffer.clone() って使えるのが自然なような気がするんですが、
  なんで使えないんですか?

639 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 05:32:15 ]
public StringBuffer getter() { return new StringBuffer(data); }
Stringはimmutable
StringBufferのclone()はObjectのclone()をオーバーライドしていないのでprotectedアクセスになりAからはアクセスできない

640 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 05:41:17 ]
こんな時間にレスありがとうございます!
3点ともしっかり理解しました。
C++についても「分かったつもり」になっていただけの部分が
だいぶありそうですので、これを機にもう一度見直してみようと思います。
色々と。

641 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 07:00:07 ]
がんがれ

642 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 08:05:31 ]
>>638
こういう方法もよくやる
class A {
 // 外部から直接アクセス禁止
 private StringBuffer buf = new StringBuffer();
 // 許可するメソッドだけを間接的に公開
 public append(String str) {
  buf.append(str);
 }
}
あわせて。>639のようにGetterはコピーして返せばOK

643 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 09:21:56 ]
>>633 Eclipseがある今では古風なやり方だが、各所にSystem.out.println("..");
を配置すると今どこら辺の過程やってるのか分かるよ。

644 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 10:29:57 ]
lnないほうがいいよ

645 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 10:31:48 ]
二重ループで外を●内を・にすると
●・・・・・・・●・・・●・・・・●・・・・・●・・・
みたいに楽しめる

646 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 11:21:11 ]
>>638
javaはcall by referenceが無くていわばreferenceをcall by valueしてる。
ていうのをとっとと覚えた方が良いと思う。

むかし、MSにプリミティブのラッパークラスが
保持してるvalueを書き換える手段がないのは欠陥と非難されたことがあるよ。

647 名前:デフォルトの名無しさん [2007/07/16(月) 11:24:16 ]
FlashからJavaに入った奴です、よろしくお願いします。
例えば、Flashでは、あるFlash(swfファイル)に、後から、別ファイルのFlashを、
ロードして実行/表示することができるんですが、
Javaアプレットの場合、後から、別archiveをロードして、その中のクラスを
利用したりすることは出来るんでしょうか。。



648 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 11:25:37 ]
BASIC作ってた会社に言われたくない罠

649 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 11:26:17 ]
できるよ

650 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 11:42:08 ]
>>648
作ってないよ。あれは買い取っただけ。

651 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 12:07:30 ]
>>650
ビルゲイツキタ━━━━━━(゚∀゚)━━━━━━ !!

652 名前:デフォルトの名無しさん [2007/07/16(月) 12:47:53 ]
mainスレッドとmainスレッドからstartされるThread-0があって、GUIのボタンでThread-0の停止・開始を
制御するサンプルとかないですか?

653 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 13:30:04 ]
>>652
一度止めた(止まった)スレッドを再開することはできない。
Threadの中でループを使って実行・一時停止を制御するか、ボタンのイベント毎にスレッドを作れ(止めろ)

654 名前:647 [2007/07/16(月) 14:21:16 ]
>>649
ありがとうございました。この方向で、勉強してみます。
また、つまづいたら、よろしくお願いします。

655 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 15:06:05 ]
>>653
ありがとうございます
wait/notify使えば出来るかなと思ったのですがダメなんですね

656 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 17:52:30 ]
JDBCでMySQLを使ってるんですが、setAutoCommitをfalseして
commitとrollbackを使えば排他制御はできてるんですか?

657 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 17:54:16 ]
commit/rollbackは排他制御じゃなくてトランザクションの仕組み
それを使って排他制御ができるかどうかは>656次第



658 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 17:55:04 ]
cから来たんですけど「final」って何ですか?馬鹿にしてるんですか?

659 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 17:57:41 ]
>>658
constと同義

660 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 17:58:34 ]
>658
includeってなんですか?馬鹿にしているんですか?

661 名前:デフォルトの名無しさん mailto:age [2007/07/16(月) 18:01:07 ]
>>658 処理系側が安心して定数であると判断しているのです

大文字、小文字の判別が出来るものと出来ないものが有る為 どうしても定数宣言で必要になるのです

662 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:01:55 ]
ん、もしかしてCしか知らないのかw

663 名前:656 mailto:sage [2007/07/16(月) 18:41:04 ]
トランザクションと排他制御の違いがよくわかってませんでした。
dev.mysql.com/doc/refman/4.1/ja/lock-tables.html
MYSQLでは、このページにあるようにロックテーブルすれば排他制御はOKですか?

664 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:46:16 ]
今のjavaのfinalは定数じゃなくて一度しか代入(初期化しか)できない変数だろ。
blank finalがあるから。

665 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:49:06 ]
>>663
それはJavaの話ではないのでMySQLスレで聞いた方がいい

排他制御がシビアであるのでない限り、TimeStampを使って簡単な排他制御を行うことが一般的。
つまり、更新するレコードを取得した時にLAST_UPDATE_TIMESTAMPなどを取得しておき、UPDATE時はWHERE条件に含めてしまう(排他で引っかかれば更新結果0件)など。

666 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:50:42 ]
>>664
むしろ、変数に代入された値(参照先も含む)の不変性を保証

釣りにマジレスはここまで。

667 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 18:52:46 ]
何が「むしろ」なんだ?>>664のが的を射ているし。



668 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:24:02 ]
>>665
timestampはそういうときに使えるんですね
LAST_UPDATE_TIMESTAMPっていうのはMySQLの関数ですか?
探したんですが見つからないです。
あとこの方法だとテーブルにtimestamp型のカラムを持たせないとできないんですよね?

もうMySQLの質問になってますね。すいません。これで最後にします。

669 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:27:31 ]
>>667
JLS3以降(Java5以降)でfinalの役割が重くなって、
666のようになったはず。

670 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:31:13 ]
>>668
いや各テーブルに定義するカラム
最終更新日時ってカラムは何かと便利だから全てのテーブルに含めてテーブル設計することが多い(この辺もMySQLスレかDB総合スレ)

671 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:31:19 ]
>>669
finalの役割が重くなったって、具体的にchapterいくつよ

672 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:45:43 ]
>>670
あーカラム名ですか。
たしかにあったら便利ですね。
勉強になりました。ありがとうございました。

673 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 19:59:01 ]
>>658
final = 再代入不可
変更不可ではない(参照先が変更されれば変更可能)
逆にすべての参照先をfinalにすれば変更不可(immutable)にできる
再代入の意図がなければなるたけつけておくのが良策

Cのconstとは違うので注意

674 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 20:08:24 ]
>>673
Cのconstはダブルポインタ先も固定のままだっけか?


675 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 20:14:56 ]
>>671
666はマジレスパワーが足りず言葉不足
chapterは 17.5 Final Field Semantics あたりか?
あとは自分で調べるか、やさしいエロイ人待ちなさい

676 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 20:30:43 ]
一度しか代入(初期化しか)できない変数 と
変数に代入された値(参照先も含む)の不変性を保証 の差が解らない…

一度しか代入できないって事は代入された値が不変って事じゃないの?

677 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:09:36 ]
>>676
final StringBuffer buf = new StringBuffer();

buf = null; //これはエラーになる=一度しか代入できない。
buf.append("hoge"); //これはエラーにならない。参照先の不変性は保証されない。



678 名前:デフォルトの名無しさん [2007/07/16(月) 21:09:38 ]
>>676
finalでStringBuffer持ってたら?

679 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:19:04 ]
>>677,678
Java5から重くなって参照先の不変性を保証ということは、
buf.append("hoge");
でエラーになるということ?

680 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:21:12 ]
>>679
それ嘘だから。エラーにはならないよ。

681 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:35:16 ]
気分、こんな感じ

1. あるスレッドにおける代入結果は、他のスレッドからすぐには見えない
2. ファイナルフィールドとはいえ、一回は代入される
3. 不変と称しているのに、代入される前のファイナルフィールドが見えたらいやん
4. final の意味を強化

682 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:12:43 ]
>>679
5.0の同期周りで後付けされた仕様を拡大解釈でもしてるんじゃない?

でもあれだ、static finalでプリミティブだと吐くバイトコードにリテラル埋め込んでるから定数と言えるかも。

あと、finalじゃなきゃinner classから参照できないんじゃなかったけ?

683 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:21:43 ]
>>682
static final int a = Integer.getInteger("system.property");
みたいな事もできるから、「static final でプリミティブ」なだけじゃ定数とはいえない。

final でなければ参照できないってのは匿名クラスの話じゃないか?

684 名前:デフォルトの名無しさん [2007/07/16(月) 22:52:09 ]
付箋を作成したいのですが、コンパイルができません。
C:\sample>javac FusenExec.java
FusenExec.java:6: シンボルを見つけられません。
シンボル: クラス Dodai
場所 : FusenExec の クラス
Dodai fusen;
^
FusenExec.java:7: シンボルを見つけられません。
シンボル: クラス Dodai
場所 : FusenExec の クラス
fusen = new Dodai();
^
エラー 2 個

因みに、ソースはこれです。どこがおかしいかを指摘ください。
class FusenExec{

public static void main(String[] args){


Dodai fusen;
fusen = new Dodai();
fusen.setSize(300,50);
fusen.setVisible(true);

}
}


685 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:55:04 ]
クラスパス上にDodai.classが存在しない

686 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 22:55:33 ]
>>684
Dodaiクラスがないんだって。
コンパイルしてないんじゃねーの?

おかしいところ?
ソースコード→コンパイル→実行の流れ理解しているか怪しい

687 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 12:09:21 ]
流れ切るけどjogl用のモデルローダーってないかな?
フォーマットは何でも良いんだけど。
できればソースコード公開義務のないライセンスがいいんだけど・・・。

java3d用なら色々あるんだけど、自分で実装しなきゃダメかな?



688 名前:デフォルトの名無しさん [2007/07/17(火) 13:31:43 ]
10万行のデータを描画するため自作GUIを作っているのですが、うまくいきません。
キャンバスに描画し、折り返し処理などは実現できたのですが、スクロール処理がうまく実現でしません。
少ないメモリで高速に描画できるソースなどはありませんでしょうか

689 名前:デフォルトの名無しさん [2007/07/17(火) 13:34:20 ]
段階に分けるのが一般的

690 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 14:18:47 ]
こいつ、10万行のテキストデータを丸ごと読もうとかしてるのかwww

691 名前:デフォルトの名無しさん [2007/07/17(火) 14:24:41 ]
そんな無茶した事無いから解らんのだが
オーバーフローしないのか?w

692 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 14:32:32 ]
Swingのスクロールの実装があるじゃないか。
ていうか10万って言ったらUnicodeでUTF-8で日本語で1行80文字としても殆どが1文字3バイト取られるからメモリを23Mbyte食うわけだが・・・。

693 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 14:34:35 ]
>>688
10万行ってだけならなんとかなりそうだけど。
スクロール処理が上手くできないってのは
計算済みの折り返し情報を行毎に保持とかしてないんじゃね?

694 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 14:37:14 ]
というかSwingには高レベルなEditコンポーネントがあるんだが、それを拡張しようとか思わないのか?
低レベルな事はすべて実装されてるだろうに。
Canvasとかに直描きとか?

695 名前:デフォルトの名無しさん [2007/07/17(火) 14:41:20 ]
方法としては694が一番手っ取り早いやね
と言うか普通は新しいクラス造りが趣味でもない限りそうするけど

696 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 14:52:44 ]
現実問題として10万行スクロールするユーザーがいるとは思えないw

697 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 15:32:49 ]
>>696
つ速読の練習



698 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 15:34:49 ]
2chの1スレ分でも10万行はないよなあ
3000〜1万行くらい?

699 名前:デフォルトの名無しさん [2007/07/17(火) 15:44:05 ]
て言うかそんな整理されてないデータは価値も低い

700 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 17:32:52 ]
とりあえずスレタイがちょうど目に付いたという理由で
「スレ立てるまでもない質問はここで」スレの過去ログを
いくつか見てみたけど、だいたい1スレ7000行弱に収まってるね。
ってことは10万行つったら15スレ分ぐらい、
それを一気に表示されたって使う方は困るし、それよりは
うまく分割するとか有益な情報を抽出するとかって方に
注力した方が得るものは大きいと思う。

701 名前:デフォルトの名無しさん [2007/07/17(火) 17:42:37 ]
解決としてバッファリング用の作業クラスを一つ作りファイルから必要分だけ抽出し表示用のクラスに
送り込めるようにするのがいいと思う。
但し、どうしても必要な場合に限定し、できうる限り整理されたデータを用いるべき。

702 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 19:21:45 ]
その前に必要なデータの抽出だ。

703 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 19:47:51 ]
>>688 こんなんでいいんでないの?
import java.awt.*;
import javax.swing.*;

public class J688 extends JFrame{
  JTextArea textArea = new JTextArea(10*10000, 40);
  JScrollPane scrollPane = new JScrollPane(textArea);
  public J688(){
    super();
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    for(int i=1;i<=textArea.getRows();++i) textArea.append("Line:"+i+"\n");
    add(scrollPane, BorderLayout.CENTER);
    setPreferredSize(new Dimension(300, 300));
    pack();
    setVisible(true);
  }
  public static void main(String[] args) {
    new J688();
  }
}


704 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:09:22 ]
初歩的な質問ですいませんが。
標準入力でインスタンスの数が変わる場合、インスタンスの生成で
インスタンス名をどう指定すればいいんでしょう?
Player player1 = new Player;
と言う感じに固定ならば書きますが、このplayer1が可変な場合に
変数などでどう表せば良いのかでつまづいて…。

705 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:11:19 ]
「インスタンスの数」ってなんだい?
そこんとこもう少し詳しく

706 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:16:08 ]
なんかよくわからんがエスパーで回答してみる
System.inで読んだ内容からk個のインスタンスを作るんだったら
普通にk個インスタンスを生成して片っ端からListに入れればいいんじゃね?

707 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:20:19 ]
引数可変でその数だけ同一オブジェクトを生成するなら配列にでもぶちこんどけ
ってパパが言ってた。



708 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:29:48 ]
すみません
質問させてください

現在修行中の身で、JavaSE5.0を使って色々とOJTしております
XMLを扱う場面で先輩からJAXB2.0なる便利なものを教えていただきました。
途中からJavaSE6に変えてJAXB2.0を楽しんでいたのですが、会社の命令でJavaSE6禁止命令が出ました(出ましたというより、もともと5.0か1.4しか使っちゃだめらしいです)
そこで困っているのですが、またまた、先輩社員からJavaSE5.0使って、SE6のJAXB2.0だけコピーすりゃいいじゃんと言われました
そんなことできるんですか?

709 名前:704 mailto:sage [2007/07/17(火) 22:35:09 ]
>>705-707
早速どうもです
何と言うか、インスタンスの数が2つと決まっていれば

Player player1 = new Player;
Player player2 = new Player;

と言う感じに2つ作れば出来ますが、標準入力で指定された数作ろうとした場合
下みたいな感じで配列なりで表してfor文ででも回せば良いかと思ったのですが。

m = 標準入力;
for(int n = 0 ; n>=m ; n++ ){
Player **** = new player;
}

ここの***をどう記述したら良いのかが分からずどうにもうまく行かなくて。
初心者で引数可変、Listがちょっと分かりませんが調べてみます。

710 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 22:56:07 ]
>>708
JAXB自体はJavaSE6以前からある。ここね。
ttps://jaxb.dev.java.net/
ここからダウンロードしたファイルからjar取ってきて、クラスパスに足せばいいよ。

「SE6のJAXBだけコピー」と言われると違うが、お前さんの解釈違いの可能性もあるので
その先輩さんのことはとやかく言わないでおく。

711 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 23:04:44 ]
>>708
いや、そんな事したらライセンスとライブラリの依存関係解決を別個にやる羽目になるじゃん。
JAXBのページがsunかその周辺のサーバーにホストされてるからそこ当たってみ。

>SE6のJAXB2.0だけコピーすりゃいいじゃん
ライセンス管理意識なさ過ぎ。

712 名前:デフォルトの名無しさん [2007/07/17(火) 23:13:36 ]
ファイル出力時のflush()についての質問です。
少し前に下記のようなコードを書いてプログラムを走らせたところ、出力ファイルの末尾が切れていました。

String output_file_str = "hoge.txt";
FileWriter output_file = new FileWriter(output_file_str);
BufferedWriter output_file_buf = new BufferedWriter(output_file);
/* 出力処理 */
output_file_buf.close();
output_file.close();

調べた結果、close()する前にflush()をしなければいけないということが分かったので、下記のように直して現状は正しく動作しています。

String output_file_str = "hoge.txt";
FileWriter output_file = new FileWriter(output_file_str);
BufferedWriter output_file_buf = new BufferedWriter(output_file);
/* 出力処理 */
output_file_buf.flush();
output_file_buf.close();
output_file.close();


713 名前:712 [2007/07/17(火) 23:14:20 ]
続きです
ここで、ふと疑問に思ったのが、FileWriterとBufferedWriterの両方にflushが存在している点で、
FileWriterは一文字単位でしかやり取りできない、BufferedWriterを使うことで行単位などでもやり取りができるということから
【BufferedWriter】−【FileWriter】−【ファイル】
とつながっていると思うのですが、この場合

output_file_buf.flush(); /* BufferedWriterの内容をすべてFileWriterにflush()する */
output_file_buf.close(); /* BufferedWriterの中身はすべて出力済みなので閉じてOK */
output_file.flush(); /* FileWriterの内容をすべて指定したファイルにflush()する */
output_file.close(); /* FileWriterの中身はすべて出力済みなので閉じてOK */

と両方でflushすべきなのかどうかで迷っています。
いくつかのページを参考に調べてみると、

String output_file_str = "hoge.txt";
BufferedWriter output_file_buf = new BufferedWriter(new FileWriter(output_file_str));
/* 出力処理 */
output_file_buf.flush();
output_file_buf.close();

といった感じにひとつずつ変数を定義するのではなくまとめて書かれていたのですが、FileWriterを明示的にflushしなくても安全なのでしょうか?
以上です。どなたかアドバイスよろしくお願いします。


714 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 23:19:03 ]
>>712
> 調べた結果、close()する前にflush()をしなければいけないということが分かったので
それは嘘。close() する前に flush() する必要はない。

715 名前:デフォルトの名無しさん mailto:sage [2007/07/17(火) 23:42:06 ]
>>710>>711
レスさんくすです
先輩のアドバイスは私の解釈違いかも知れないのでスルーしてください

JAXBはSE6以前からあったんですね
SE6で標準APIに加えられたとの解釈でOKですかね?

716 名前:712 [2007/07/18(水) 00:05:20 ]
>>714
表現が少しあいまいでした。
正確には研究室の先生に出力が途切れる現象を伝えたところ、flush()すれば大丈夫との回答が得られ、実際にflush()の行を追加したところ、すべてが出力されたという状態です。

BufferedWriterのjavadocでは

flush
public void flush()
throws IOExceptionストリームをフラッシュします。

定義:
クラス Writer 内の flush
例外:
IOException - 入出力エラーが発生した場合

--------------------------------------------------------------------------------

close
public void close()
throws IOExceptionストリームを閉じます。

定義:
クラス Writer 内の close
例外:
IOException - 入出力エラーが発生した場合

とあって、closeが内部でflushを行ってからストリームを閉じるとは書いてはないので、実は明示的に行わないとまずいのではと思ったのですが・・・
でもいくつかのページではcloseはflushを行った後にストリームを閉じるって書いてあって、でも各ページの説明で使っているサンプルコードにはちゃんとcloseの前にflushが入っているわけで・・・

初めに出力されなかった問題点はもっと別のところにあるのかな?


717 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 00:10:38 ]
>>709
配列作って pl[n]
それから、「new Player;」 「n >= m」 は間違ってるから修正しとき



718 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 00:33:53 ]
>>716
1.6 のAPIリファレンスでは
>ストリームを最初にフラッシュして、閉じます。
って書いてある。
たぶん、あまりにも当然すぎて書かれなかっただけなんじゃないかと。

> 初めに出力されなかった問題点はもっと別のところにあるのかな?
output_file_buf.close() を呼ぶ前に
output_file.close() を呼んでいた、に一票。

719 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 02:42:29 ]
>>715
そう。EE5.0にあるxmlライブラリをSEに持ってきた時に依存関係を解決するついでにくっついて来た感じ。

標準ライブラリに昇格しただけでJAXB自体は前からあった。

720 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 03:53:12 ]
SwingとかWebStartとかXMLとか流行りそうで流行らんなー。

721 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 03:58:29 ]
720プロデュースで大々的にキャンペーンでもうってみてはどうだろう

722 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 05:19:42 ]
Swingとxmlは流行るとかそういうものじゃないと思うが。

723 名前:デフォルトの名無しさん [2007/07/18(水) 09:59:11 ]
質問させてください。
以下のような処理を行いたいと思ってるのですが、行き詰まっています。

1. JScrollPaneのscrollble clientに、GridBagLayoutのJPanelを貼り付けて、ボタンの
テーブルを作成。

2. JScrollPaneのcolumn headerに、JTableのcolumnNamesのような項目名をテーブルの
各要素の幅に同期するように作成。

上記の、2.の処理を上手くやる方法はないでしょうか?

最初は、JTableのセルにパネルを貼り付けられないかと考えていたのですが、探した限り
やり方がみつからなかったので、この方法をとろうとしています。

良いお知恵をお持ちの方、ご教示願います。


724 名前:デフォルトの名無しさん [2007/07/18(水) 10:28:34 ]
>最初は、JTableのセルにパネルを貼り付けられないかと考えていたのですが、探した限り
>やり方がみつからなかったので、この方法をとろうとしています。

TableCellRenderer

725 名前:デフォルトの名無しさん [2007/07/18(水) 10:46:52 ]
チュートリアルに無いか?

726 名前:デフォルトの名無しさん [2007/07/18(水) 12:06:38 ]
いや、JDKのデモに付いてた気がする。

727 名前:712 [2007/07/18(水) 15:25:28 ]
>>718
言われてみて、はっと気がついてソースコード見直したら

/* バッファーの内容を全て吐き出す */
buf_output_file.flush();

/* ファイルクローズ */
output_file.close();

ってなってました・・・
すみませんでした〜〜〜(>_<)

Javaで本格的に書き始めたのが、今回エラーの出たソースコードで、最近第2作目に突入していて頭の中がごっちゃになってました。^^;




728 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 18:08:40 ]
char型の変数 c があるとして、 int n = (int)c; でUnicodeでの文字コードが取得できるらしいんですが、
これをShift-JISでの文字コードを取得するにはどうしたらいいですか?

729 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 18:54:30 ]
> int n = (int)c; でUnicodeでの文字コードが取得できる
出来ません。
CharacterやStringクラスにコードポイントを返すメソッドがあるのでそれを使いましょう。

今のunicodeは21bitなんだな

730 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 19:03:00 ]
>>728
char型の変数cに収まる範囲の文字コードについてはいい加減にこういうふうに
char c = 'あ';
short s = java.nio.charset.Charset.forName("Shift_JIS").encode(String.valueOf(c)).getShort();
System.out.printf("%04x%n", (int)c);
System.out.printf("%04x%n", s);

731 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 19:15:44 ]
>>730
Charsetまで呼ばなくても、それならこれでいいんじゃね?
for (byte b : String.valueOf(c).getBytes("Shift_JIS")) System.out.printf("%02x", b);

732 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 21:44:44 ]
>>717
急いで書いたらしょうもないミスしてますね、すいません。
配列で出来るんですか…う、う…ん…。
何か根本的にやり方がおかしいようですね…。
勉強しなおしてきます。

733 名前:デフォルトの名無しさん [2007/07/18(水) 22:47:44 ]
JTable にスクロール機能を持たせる場合、通常 JScrollPane を使用しますが、
大量データがある場合はパフォーマンスとリソースの観点から実用的では無い
ので、JScrollBar を使用した手動スクロールを作成したいのですが、
作成方法を教えて頂けませんでしょうか?
サンプルなどがあるHPでも結構ですので、ご教授頂けると幸いです。


734 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 22:57:28 ]
688

735 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 23:01:21 ]
Frame上でJSplitPaneとか、Jの付くコンポーネント使って何か問題ありますか?

736 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 23:10:52 ]
>>733
> 大量データがある場合はパフォーマンスとリソースの観点から実用的では無い
JScrollPane使ってたら、描画が必要な部分しか描画しないはずだが。

737 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 23:12:34 ]
軽量が先、重量が後に描画に起因する事象。問題あるかどうかはやり方次第。



738 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 23:19:24 ]
>>736
Swingの使い方間違えてんだろう・・・Swingで著しくパフォーマンス悪いのと描画に問題あるのは昔からマが使い方間違えてるだけだし。

JTreeを初期化時に全部ツリー作るとかさ。

そういうことだ>>733ソース晒すなりしないと。
今のマシンスペックじゃあブラウザでFlash自慰サイト読み込んで
メモリ1Gくらい食ってガンガン動かしても余裕だからjavaなんて論外。


739 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 23:46:53 ]
public void run() {
 try {
  while (true) {
   Socket acceptedSocket = serverSocket.accept();
   hogehoge(acceptedSocket);
  }
 } catch (InterruptedException e) {
 } catch (IOException e) {
  e.printStackTrace();
 } finally {
  try {
   serverSocket.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
 }
}
他のスレッドからThread#interrupt()で止められるサーバーってこう書くのかと思ったら
例外 java.lang.InterruptedException は対応する try 文の本体ではスローされません。
正しくはどう書くものなんでしょうか。

740 名前:デフォルトの名無しさん mailto:sage [2007/07/18(水) 23:47:08 ]
>javaなんて論外
Flexっていう便利なものがあるんだからJavaでGUI書くなんて
論外って意味なのか、Javaで書くと重いと文句を言うなんて
(使い方を間違えてるだけから)論外って話なのか、どっちだろう


741 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 00:36:26 ]
>>739
Thread#isInterrupted()、Thread#interrupted() 使って
自前で割り込みされたかチェック。

何したいのか良く分からんけど、
interrupt で止められるサーバって考え方自体が正しくないような気もするが。

742 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 00:47:41 ]
>>739
ここでその手の話にまったく詳しくない俺が本で読んだだけの知識で答えるぜ
1.ServerSocket#accept()はInterruptExceptionを投げない→タイムアウトを使うしかないはず(nioあたりで止められるのはあった気がする)
2.Thread#interrupt()を実行したら勝手にInterruptExceptionが発行されるわけではない→Thread.currentThread().isInterrupted()でインタラプト状態を確認し手動で投げる
3.hogehogeがやたら時間のかかる処理でInterruptExceptionを使う場合hogehoge内で2の動作をすることでキャンセル可

743 名前:739 mailto:sage [2007/07/19(木) 01:12:45 ]
参考になりました。
・・・が、方針の段階で間違っているんですかね・・・。
サーバーって普通どう止めるものなんでしょう?

744 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 01:40:36 ]
そこでThreadPoolExecutorの出番ですよ

745 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:31:20 ]
javaの配列の宣言で

class Fuck
{
String str[] = new String[5];

public static void main(String[] args)
{
}
}
ってやると配列の宣言でエラーがでるんですが何故でしょうか?
配列の宣言文をメインの中でやるとエラーはでないんですが

746 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:35:46 ]
static

747 名前:745 mailto:sage [2007/07/19(木) 10:46:32 ]
すみませんソース間違えました;
class fuckArr
{
static String str[] = new String[5];
str[0] = "myGOD";


public static void main(String[] args)
{
System.out.println(str[0]);
}
}

fuckArr.java:4: ']' がありません。
str[0] = "myGOD";
^
fuckArr.java:4: <identifier> がありません。
str[0] = "myGOD";

ってエラーがでるんですが何故でしょうか?
mainでstr[0] = "myGOD";ってやると通るのですが



748 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:46:41 ]
>>745
配列の宣言(String str[] = new String[5];ってやってるところ)では エラーでないでしょ。

staticメソッドからは static でないメンバにアクセスできないけど。

749 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:51:08 ]
>>747
そこには式文かけないから当たり前。
フィールド宣言時に初期化子つかってやるか、静的初期化子使え。

static String[] str = { "myGOD", null, null, null, null };
static String[] str = new String[]{ "myGOD", null, null, null, null };

static String[] str = new String[5];
static { str[0] = "myGOD"; }

750 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:52:11 ]
ぬるぽ

751 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:52:42 ]
class fuckArr
{
static String str[] = new String[5];
str[0] = new String("myGOD");


public static void main(String[] args)
{
System.out.println(str[0]);
}
}

752 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 10:54:30 ]
>>747
str[0] = "myGOD";がある場所はコンストラクタやフィールド、メソッド、内部クラスの定義しか書けない場所。

753 名前:745 mailto:sage [2007/07/19(木) 11:08:51 ]
>749-752
レスthx
単純に式文がかけない場所なんですね


754 名前:デフォルトの名無しさん [2007/07/19(木) 13:54:28 ]
Java sound apiを利用してWebアプリケーションを構築したいと考えているのですが
例えばページ上でボタンを押したら録音が始まり10秒間録音してユーザーのローカルにファイルとして保存するようなJSPは
構築可能でしょうか?

頭でなかなかイメージできないので、可能か不可能かも分かりません
具体的な解説を付け加えてもらえれば、なお助かります

755 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 14:05:41 ]
ファイルの内容を一行消したい場合は何を使えば良いのでしょうか?

756 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 14:20:30 ]
>>754
無理というかJSPにする意味が分からんというか。
そういうのはJWSにした方が良いよ。

757 名前:デフォルトの名無しさん [2007/07/19(木) 14:37:26 ]
>>756
JWSとJSPはサーバサイドかクライアントサイドかの差だけだと思っていたので、
サーバ側の自分が負担できればと思っていたのですが・・・
またもしJSPであれば、クライアント側はJRE等が必要なくて済むかと・・・

つまり先述の例であれば、JWSの方が良い理由があるということでしょうか?



758 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 14:53:09 ]
サーバサイドのプログラムでクライアントの音声デバイスにはアクセスできない。
サーバにくっついてるマイクの音だけしか拾えない。

759 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 14:55:58 ]
Javaを理解するためにはアルゴリズムを勉強したほうがいいでしょうか?

760 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 15:06:23 ]
>>757
サーバー側で動くもの作ったことある?
というかどういう風に動いてるか知ってる?

根本的なところから勉強した方が良い気がする。

761 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 15:07:03 ]
>>759
Javaに限らずそれはしたほうがいい

762 名前:デフォルトの名無しさん [2007/07/19(木) 15:37:59 ]
RMIでできるべ

763 名前:デフォルトの名無しさん [2007/07/19(木) 15:39:19 ]
サーバ側のミキサーにアクセスするだけの話
だからそれほど難しい話ではない

764 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 15:44:09 ]
>>761
ありがとうございます。
ちなみにビギナー向けでいい本ご存知ですか?

765 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 15:55:10 ]
>>764
アルゴリズムの勉強は言語(Javaでもいい)の基礎が出来ていて多少書けることが前提
「アルゴリズム」とか「データ構造」でぐぐればネットでも勉強できる
これはC言語だけどアルゴリズムの考え方自体は同じだから参考になると思う
www.geocities.jp/ky_webid/algorithm/index.html
Javaで説明されてる本も出版されてるみたいだけど読んだことは無い

766 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 16:08:57 ]
>>765
そうですか。自分はJavaの勉強に行き詰っている状態なのでちょっと厳しいかもしれません
ネットでも勉強出来るんですね?ありがとうございました

767 名前:デフォルトの名無しさん [2007/07/19(木) 16:22:07 ]
基本的なアルゴリズムが身につくと応用力が付く
ネットで見たりするソースに隠れたものを理解できるようになる
そうなるとどんどん力が付くよ。

最初はやはり本で少し学んだ方がいいかもしれない
それほど高く無い値段で出回ってる。



768 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 16:35:37 ]
本日の部下との会話

俺:newってどういう意味?

部下:
          ____   
       / \  /\ キリッ
.     / (ー)  (ー)\      
    /   ⌒(__人__)⌒ \  あたらしく作るということです 
    |      |r┬-|    |      
     \     `ー'´   /      
    ノ            \
  /´               ヽ              
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.    
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))


俺:newって単語の意味だけで想像して言っただろ?

部下:はい(´Д`;)ヾ

769 名前:デフォルトの名無しさん [2007/07/19(木) 17:00:11 ]
苦労してるな

770 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 17:03:28 ]
>>765
フヒヒ 横からいいHPハケーン!

771 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 17:50:23 ]
>>763
クライアント側のミキサーにアクセスしようとしてるんだと思うが?

772 名前:デフォルトの名無しさん [2007/07/19(木) 17:58:17 ]
だったらそれでもいいだろ
難しく考えすぎ

773 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 18:16:19 ]
盗聴のような真似ができるから今問題になってるね

774 名前:755 mailto:sage [2007/07/19(木) 19:00:25 ]
どなたか(´;ω;`)

775 名前:デフォルトの名無しさん [2007/07/19(木) 19:03:44 ]
読み込んだあと該当箇所のエスケープシーケンスを消す
そのあと保存

776 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 19:04:45 ]
1行ずつよみこんで新たなファイルに書き込む。該当行はスキップ。

777 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 20:23:58 ]
特定の文字列に対して正規表現がマッチしている、みたいなのはできたのですが、
正規表現を指定してそれにマッチする文字列をランダムで作成する、みたいなことってできないでしょうか。
仕事なんでできないとだめなんですが、ご意見いただけないでしょうか。



778 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:10:16 ]
>>777
ランダムで文字列を作成して、正規表現にマッチしていればループを抜ける

779 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:17:15 ]
正規表現を逆解析して、適切なテストデータを流すDBからデータとってくるとかかな
むかーし、そんな感じのテストツール作ろうかと考えたこともあった。

780 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:30:12 ]
正規表現の逆なんて正規表現でのマッチングよりも難しいんじゃないか?
適当に使用する文字を絞り込んでから778の言うようにランダムに作成してマッチングかけるのが手っ取り早そうだ

仕事なんで出来ないとダメってのは何かおかしいと思うぞ
出来ないものは出来ないと言うべきだ

781 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:38:22 ]
>>778
最初それで考えたんだが、文字数だとかが絡んだりするとそう簡単にはいかんことに気付き断念

>>780
普通はそうなんだろうが、そうもいかない会社はいくらでもあるのよ。

とりあえず対応できそうな構文のみでいってみるか・・・

782 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 21:43:34 ]
>>781
だいたい何の用途で使うんだ?
正規表現って言ってもどこまで対応するかによってとんでもなく面倒だぜ

783 名前:754・757 mailto:sage [2007/07/19(木) 21:51:25 ]
>>758
なるほど、これでだいぶ理解できました
ありがとうございます
>>760
全くの初心者です
今日、早速本を買ってきました
これから勉強していこうと思います
ありがとうございました。

784 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 22:27:57 ]
>>774
特にAPIは無いんじゃないの?


785 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 22:32:00 ]
>>781
1.
ある表現から固定の決まったシーケンスを出すようにする
[a-z]* なら aaa
[0-9]* なら 000
2.
あるシーケンスの正規表現マッチングを崩さないような変更を行うメソッドを
いろいろ(対応する正規表現分だけ)用意する
例:
[a-z]* の aaa を aab にするとか、 aaにするとか。

3.
1.に対して2.を適当な回数適用する

どう?
まぁできあがる表現に偏りはできると思うがね。
ランダムの定義が曖昧だしこれでいいよな?
1.のシードをある程度余分に作っておけばそれなりにばらけるかもしれないし。

786 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 22:57:47 ]
こういうときこそSnobolですよ、奥さん。
自然言語マッチ用言語の本領発揮!

787 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 23:07:05 ]
>>781
まずは対応できる正規表現のパターンを絞り込む事が重要だな
絞り込んじまえばたいしたことはないと思うが、全てに対応しろといったら1プロジェクトだろう



788 名前:デフォルトの名無しさん mailto:sage [2007/07/19(木) 23:52:46 ]
1.4のプログラムを1.5のGenericsを使った記述に変更してますが、
よく分かりません。

例えば、配列の偶数要素をキー、奇数要素を値とするMapを生成するメソッド
public static Map arr2map(Object[] arr)
のMapをGenericsを使った記述にする場合、

(1)public static Map<Object,Object> arr2map(Object[] arr)
(2)public static Map<?, ?> arr2map(Object[] arr)
(3)public static <K, V> Map<K, V> arr2map(Object[] arr)

などが考えられますが、どれがいいものでしょうか。
なにか、ガイドラインとなる書籍、URL等ありましたら教えてください。


789 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:00:27 ]
>>788
言っている意味も考えられる選択肢もワカラネ
そもそもObject[]の時点で終わってるのでGenericsに対応しない方がいいんじゃね?

キーの型がKey、値の型がValueであるならば
public static Map<Key, Vaue> arr2map(Object[] arr)
が正しい。
キーも値も決まってないならば、
public static Map<Object, Object> arr2map(Object[] arr)
となるけど、それならば
public static Map arr2map(Object[] arr)
のままでいいんじゃね?ww


790 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:03:01 ]
総称型使ってClassCastExceptionを起こすのはナンセンス

791 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:14:43 ]
>>788
Map<? extend foo, ? extend bar>かMap<K, V>だろうねぇ。

けど、>配列の偶数要素をキー、奇数要素を値とする
なんて非OOなレコードの持ち方が変。
keyとvalueのペアを持つエントリクラス作ってそれを持っておくだろ。

static Map arr2map(Object[])なんて変換関数用意するんじゃなくて初めからmapやsetで持ってkeyだけ・valueだけ詰めた配列返すメソッド用意する。
とか、こういう設計の方が自然。


792 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:18:16 ]
>>789みたいな非OOな考え方ができない奴も居るし、ループ回す時複雑だし・・・

793 名前:788 mailto:sage [2007/07/20(金) 00:37:15 ]
>>789-792

引数のObject[]が非非OOな持ち方なので、無理に総称型
使う必要は無い(ClassCastExceptionに起こしかねない)と
いうことですね。

設計考え直してみます。
ありがとう。


794 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:45:13 ]
>非非OOな持ち方なので、無理に総称型
使う必要は無い(ClassCastExceptionに起こしかねない)
いや、違う自分の良いように考えすぎ。
アプローチ間違ってますよってだけ。
キャストで例外出すってのはまた別の話。

795 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:58:01 ]
>>788
俺だったら、こんな感じかなぁ

/** 今後はこっち使ってください */
public static <K, V> Map<K,V> arr2map(Object[] arr, Class<K> keyType, Class<V> valueType) {
  Map<K,V> map = new HashMap<K,V>();
  for(int i = 0; i < arr.length - 1; i+=2){
    map.put(keyType.cast(arr[i]), valueType(arr[i+1]));
  }
  return map;
}

/** 互換性のため */
@Deprecated
public static Map<?, ?> arr2map(Object arr) {
  return arr2map(arr, Object.class, Object.class);
}

796 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 00:59:06 ]
×    map.put(keyType.cast(arr[i]), valueType(arr[i+1]));
○    map.put(keyType.cast(arr[i]), valueType.cast(arr[i+1]));

× public static Map<?, ?> arr2map(Object arr) {
○ public static Map<?, ?> arr2map(Object[] arr) {

797 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 01:21:25 ]
String.format("%02X", byte) の逆をやるにはどうするのが普通なんですかね。
つまり文字列"00"からは0x00、"79"からは0x79、"80"からは-0x80、
"81"からは-0x79、"FF"からは-0x01のbyte値を生成したいんです。



798 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 01:25:58 ]
int val = (byte)Integer.parseInt(str, 16);

799 名前:797 mailto:sage [2007/07/20(金) 01:43:51 ]
>>798
なるほど! ありがとうございます。

800 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 06:16:29 ]
>>739
遅レスだが、ソケットを閉じる

801 名前:755 mailto:sage [2007/07/20(金) 10:32:14 ]
レスくれた方どうも有難う御座います。
ググっても適当なメソッドや関数が見つからないと思ったら本当に無いんですか・・・
凄く冗長な気がしますが大人しくファイル二つの間でコピーし合う事にします

802 名前:デフォルトの名無しさん [2007/07/20(金) 10:41:05 ]
for( int i = 0; i < 10; i++ ) {
int j = i;
}

こんな風にループ内で変数の宣言していると、回るたびに変数分のメモリを消費していく?
int型の4バイト(?)づつ浪費することになる?

803 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 10:42:22 ]
>>802
intはオブジェクトじゃないからならない。

804 名前:デフォルトの名無しさん [2007/07/20(金) 10:54:28 ]
>>803
オブジェクトだとどんどん消費するってことですか?

class Hoge {

public static void main( String[] args ) {
while( 1 ) {
xxx();
}
}

public void xxx() {
// ここでオブジェクトの宣言
}

上のようにやればxxx()が終了した時点でオブジェクトのメモリは解放?されると思ってるんですが合ってますか?

805 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 10:58:38 ]
オブジェクトは xxx が終了した時点で
ガベージコレクタによってメモリを開放される条件を満たすようになるが、
実際にメモリが開放されるのはそれ以降でガベージコレクタが実際に走った時。

806 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 10:58:56 ]
xxx() が終わった時点で参照が外れてGCの対象にはなるが、
その後いつメモリが開放されるかどうかはGCまかせ。

807 名前:デフォルトの名無しさん [2007/07/20(金) 11:20:42 ]
レスありがとうございます。

ループ内でオブジェクトを宣言する場合は>>804のやり方で大丈夫でしょうか?
メモリ周りを気にしています。
一番いいのはループ内でオブジェクトは宣言しないことですよね・・・

軽くGCを調べたら「GCはマルチスレッドで動く」ってあったので期待したい。



808 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 12:14:44 ]
>>807
変数宣言は、できるだけスコープを小さくした方がいい。
この場合なら、ループ内で変数宣言した方がいい。
変数のスコープが小さいときは、
最適化されて変数がレジスタのみ使用し、スタックメモリを消費しなくなる。
オブジェクトの生成はそういうわけにはいかず、
newの度にヒープを消費することになる。

809 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 12:47:38 ]
いまどきはエスケープ解析されて、スタックに詰まれる。

810 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 13:46:12 ]
メモり周りをシビアに使いたいなら Java じゃない方がいいんじゃないかなあ

811 名前:デフォルトの名無しさん [2007/07/20(金) 14:10:46 ]
でも管理は楽

812 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 15:19:29 ]
レジスタにのっけるかどうかのアルゴリズムって5.0のままだっけ?6で変わらなかった?

813 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 15:20:37 ]
>>812
レジスタにのっけるかどうかのアルゴリズム自体が 6.0 で追加されたんじゃなかったか?

814 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 16:08:12 ]
JDBCリクエストをラップして、
DB の多重化を簡易的に行えるライブラリはありませんでしょうか。

例えば、アプリケーション層のノードが二つ(A,Bとします)
DBノードも二つ(X,Y とします)あるとすれば、

A,B ともラッパー経由で更新していれば X,Y に格納されており、
もし JDBC リクエストで X が落ちたら、Y のみに要求する、と言う形です。

この例であれば X への更新をプールして、X が復活したのを検出したら
流していってくれると最高ですが、この部分は X を復帰させる手続きと
して手動でやれということでも構いません。


815 名前:814 mailto:sage [2007/07/20(金) 16:15:52 ]
C-JDBC, Sequoia あたりはそうなんですかね…
いまいち、一般的に使われているかどうかが分かりません。

816 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 16:43:41 ]

フォントの実際の大きさを求めるにはどうすればいいのでしょうか。

 JFrameにJTextAreaを乗せてデータを表示していましたが、一部の文字の色を
変える為に、JTextAreaからJTextPaneへ変更しました。しかし、JTextPaneでは
JTextAreaのように行数と列数を指定できません。それはJTextPaneのフォント
サイズが可変な為だと思います。けれでも私のプログラムのフォントは等幅で
大きさは全て等しく、色が一意でないだけなので、一文字の実際の高さと幅が分
かれば列数、行数ともに算出可能なはずです。そうすれば
setPreferredSize(Dimension d)を使って出来上がりです。

 そこで調べてみたところ、FontMetricsクラスを使えば期待する動作が行えそう
です。FontMetricsは抽象クラスなので、Graphics.getFontMetrics(Font f)を使
ってインスタンスを生成しなければいけませんが、そのGraphicsクラスを使う方
法が分かりません。Canvs.paint(Graphics g)を使えばできますが、それだけの為
にCanvasクラスを使うのは違う気がしました。

817 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 17:12:03 ]
>>816
使用するフォントを実際に指定できているわけだから
そのフォントを表すFontクラスのインスタンスは得ることができるよね?
そしたらあとはJComponent#getFontMetrics(Font)でFontMetricsのインスタンスを得ればいいじゃない



818 名前:デフォルトの名無しさん [2007/07/20(金) 20:51:39 ]
質問です。

OutputStream out = new OutputStream();
DataOutputStream dout = new DataOutputStream(out);
という風にDataOutputStreamを作って、

dout.close(); を行うと、
out.close()も勝手にやってくれるのでしょうか?

819 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:57:47 ]
JavaDocを見なさいって。基本中の基本。
見るのはFilterOutputStreamの方だというヒントは教えとく。

820 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 20:59:40 ]
>>818
> dout.close(); を行うと、
> out.close()も勝手にやってくれるのでしょうか?
一応やってくれるけど、
例外食らった場合は out.close() してない可能性もある。

821 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 21:10:51 ]
javaってどんなところに使われてるの?

822 名前:818 mailto:sage [2007/07/20(金) 21:10:58 ]
>>819
>>820
ありがとうございます。

823 名前:デフォルトの名無しさん mailto:sage [2007/07/20(金) 21:13:54 ]
>>821
国防

824 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 00:42:06 ]
>>821
火星

825 名前:デフォルトの名無しさん [2007/07/21(土) 01:01:23 ]
参考書とりあえずやったんですけど、どうすればいいですか?
後はAPIっていうのを見ながらやるんですか?

826 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 01:04:09 ]
>>126は具体的にどのように実装するのか教えていただけませんか。

827 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 01:43:16 ]
>>825
何か作りたいから Java 勉強したんじゃないの?



828 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 03:09:46 ]
>>825
やったのは単なる入門書で文法を学んだだけじゃないの?
参考書ってのは何かを作るときに参照するものだよ

特に作りたいものがないならばゲームでも作ってみるのがいいんじゃね
GUI関連は業務じゃ使う機会少ないけど、デザインパターンとか設計力を鍛えるには一番だとばっちゃんが言ってたよ


829 名前:デフォルトの名無しさん [2007/07/21(土) 03:53:11 ]
>>825
この辺りで宿題解いてみるのもいいと思うよ。
★★ Java の宿題ここで答えます Part 62 ★★
pc11.2ch.net/test/read.cgi/tech/1184509890/1-100

830 名前:825 [2007/07/21(土) 12:52:27 ]
>>828
>>829
ありがとうございます。参考になりました。

831 名前:788 mailto:sage [2007/07/21(土) 14:44:46 ]
>>795-796
レス遅くなりましたが、
これ使わせてもらいます。
ありがとう。


832 名前:デフォルトの名無しさん [2007/07/21(土) 15:22:58 ]
サーブレットを覚えたてです、家でも勉強しようと思って、tomcatをインストールしたのですが
どうしてもindexに繋がりません、過去に習ってた時の学校では自分でインストールできたのに
スタートさせてもアイコンはミドリの▲になるのに、右クリックをするとストップStopではなくStartが押せる状態になっています

Tomcatは5.5、Javaは1.5
OSは2000XPでも2000Proでもどちらも同じ現象でダメでした
XPのファイアーウォールを無効にしても無理でした
環境設定のPathは教室でインストールした時に、テキストファイルで貰っていたのをコピペしなおしても無理でした
これ以上どう足掻いていいのか分かりません

833 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 15:29:56 ]
//A
class Hoge{
static void piyo(){}
public static void main(String[] arg){
piyo();
}

//B
class Hoge{
Hoge(){
piyo();
}
void piyo(){}
public static void main(String[] arg){
new Hoge();
}

Aのように書かずBのように書けば、piyoメソッドにstatic修飾子をつけなくてもよくなりますよね
こう書くことになにか問題はありますか?

834 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 15:57:32 ]
>>833
修飾子についての理解が不十分
staticをつけたメソッドはインスタンス化しないでも使えるが、
Bのpiyoメソッドはインスタンス化しないと使えない。

835 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 17:36:23 ]
>>832
Eclipse上?
今のTomcatなんてインストーラーに従ってインストールするだけだろ?

836 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 17:37:18 ]
ちなみに環境変数のPathだのCLASS_PATHは下手にいじるなよ

837 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:05:10 ]
>>834
うまく言えんけど、おそらく833は
「mainメソッドで呼ぶ」という理由だけでstatic修飾子をつけるのはおかしいのでは?
と考えた結果思いついたんじゃないか?
833への答えは持ってないけど、834の答えが的外れな気がしたんで口出し
834のであってたらすまん



838 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:20:47 ]
>>833
たしかにAもBもpiyo()が実行されるという一点では同じなんだけど、
piyo()は本当にコンストラクタ内で処理すべき機能なのか考えるべき。
AとBではpiyo()やHogeクラスの意味合いが異なってくる。
piyo()が単にstaticメソッドから呼ばれるだけの下請け的存在ならAで十分だし、
Hogeをインスタンス化する必要がありかつpiyo()がインスタンス生成段階で必要な処理ならB。
class Hoge{
void piyo(){}
public static void main(String[] arg){
Hoge h = new Hoge();
h.piyo();
}
}
こう書くのが適切な場合だってある。
何を実現するためにどうクラス設計をするかを考えてpiyo()の立ち位置を決めておくれ。

839 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:24:31 ]
優等生的回答

class Hoge{
public static void main(String[] arg){
Hoge hoge = new Hoge();
hoge.piyo();
}
void piyo(){}
}


840 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 18:42:46 ]
newってのが何者かを勉強するといいと思う
単純にfor文とif文を駆使したプログラム入門ならば、全部staticでnewは配列作るときくらいしか使わないでOK
クラスとか勉強する段階でnewを覚えるべきだが

841 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:07:22 ]
>>832
localhost:8080/index.jsp

でだめだったのかい?

localhost:8080/manager/html

ではどうだい?


842 名前:デフォルトの名無しさん [2007/07/21(土) 19:13:53 ]
>>835
私もそう思ってたのでびっくりです
>>836
CLASSPATHを作ってservlet-api.jar;.の位置を入れました
↑は自分で打ったけど、パソコンに入れたのは成功した教室のPCからのコピペなんで間違いはないと思います
>>841
そこ自体がダメです
タスクのアイコンがスタート状態になってても、ストップできずスタートがあるということは、スタートできてないんだと思う



843 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 19:21:23 ]
>>842
CLASS_PATHを消せ
次にコマンドプロンプトからjava -version を打ってversionを確認せよ
その上で再インストールして来い
スタートできないならばログも嫁

844 名前:デフォルトの名無しさん [2007/07/21(土) 19:29:52 ]
>>843
おかげで使えるようになりました
ありがとうございました

前に入れたバージョンが残っててそっちを設定してたっぽい
ゴメンナサイ
私は、恥かしい間抜けです


845 名前:デフォルトの名無しさん [2007/07/21(土) 21:23:30 ]
                            ,===,====、
                            _.||___|_____||_
..                        / /||___|^ l
..    答えろ ぶち殺すぞ!>  (・ω・`)//||   |口| ||ω・` )
.                   ./(^(^ .//||...||   |口| |⊂ )
.                    /   //  ||...||   |口| ||し      新スレです
. あ?てめぇどこ中だよ>(    )//....  ||...||   |口| ||        楽しく使ってね
               /(^(^ //  ....  .||...||   |口| ||        仲良く使ってね
       ""    :::'' |/   |/ '' "  :::  ⌒  :: ⌒⌒⌒ :: ""  `
       :: ,, ::::: ,, ; ̄ ̄ ̄  "、 :::: " ,,

846 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 22:10:34 ]
サーブレット書いてるんだけど、

doGetとdoPostあるじゃん。
どちらか一方に処理全部書いて、もう一方にはdoPost()かdoGet書けば
いいだけなんだろうけど。
これでいいのか?

てゆうか、分けて書くことってあるの?

847 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 22:18:16 ]
>これでいいのか?
いい。

>てゆうか、分けて書くことってあるの?
使い方による。



848 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 22:41:17 ]
例えばリクエストにGetを許可しないケース

849 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:00:41 ]
初心者です。javaのGUIアプリケーションってデザイン的によくないイメージがあるのですが、
見た目にこった実装ってできるのでしょうか?
例えば、ウィンドウを3D間隔で操作できるとか、swingコンポーネント等でも
デザインが柔軟に変更できるとか。OS依存でも構わないです。(できればWindows)
その他なんでもよいのですが、おもしろいデザインにするための技術情報など教えていただきたいです。



850 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:04:51 ]
LookAndFeel(ようはスキン)を自作することはできる。
Swing synthでぐぐってみたら?

851 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:06:04 ]
>>849
やろうと思えば3Dだろうとなんだろうと可能だが、簡単に出来るわけじゃない
単純に派手なUIが欲しいってのならば方向性は違うだろうね

Eclipseで使われているSWTなんかを使えば簡単にWindows風のUIも可能
Swingだって6.0で大幅にパフォーマンスも向上しているから捨てたもんじゃない
ただし、作るにはそれなりのセンスと時間が必要

852 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:26:17 ]
>>850
htmlとcssみたいな関係なのでしょうか?調べてみますm(__)m

>>851
javaを勉強し始めてから早一年経ちましたが、人の作ったライブラリを呼び出すだけの人になってますorz
ちなみに最近netbeansを使ってGUIの作成ってやってみたのですが、VBチックで楽だなぁと思ったのですが
同じようなものなのかな? SWTなるもの調べてみますm(__)m


853 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:54:31 ]
>>852
SwingなりSWTはツールを使わずに習得した方がいい
自然とOOPでの設計力が付くぞ

854 名前:デフォルトの名無しさん mailto:sage [2007/07/21(土) 23:54:58 ]
programming base .javaとか言うのを学校で使って
家でもちょっとやりたいと思ってるのですが、
家では開けず、あぁーなんかダウソしないといかんのかぁー。となっとります。
ほんとに初歩の初歩の質問で申し訳ないのですがどなたか教えて頂けるとありがたいです。
えー、ちなみに void on Idle とか使ってた奴です。(何だこの説明。。。

855 名前:デフォルトの名無しさん [2007/07/21(土) 23:57:39 ]
JRE Version 6 Update 2 のインストーラーで質問。
ttp://www.java.com/ja/download/index.jsp
↑ここから辿ってダウンロードできる jre-6u2-windows-i586-p-s.exe と
ttp://java.sun.com/javase/ja/6/download.html
↑ここの「Java Runtime Environment (JRE) 6u2」のダウンロードから辿って
ダウンロードできる jre-6u2-windows-i586-p.exe の違いが分かる人いますか?
両方ダウンロードするとどちらも 14,566,808 バイトだけど、バイナリ比較すると一致しない…

856 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 00:15:19 ]
>>853
ですね。。正直今の段階だと自動生成されたソースが何をやっているのか分からない状態です。
GUI開発が熟練してからツール使うことにします^^;


857 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 01:12:13 ]
>>854が釣りかエスパーか判断できないので誰か支援頼むw

>>856
まあ、netbeansの吐くコードは汚いね。

いまさらSWT使う利点なんてないよ。
5.0/6のVMは早いし、SwingのSystemLnFもネイティブコードの呼び出し増えて見栄えもかなり近いし。
普通に使う分にはVMのメモリを多めに取ればSwingもSWTもたいして速度変わらん。
それに今時Swingで十分な速度でない環境だとjavaそのものが遅いし。
ここら辺のおかげでnetbeansがかなり使えるようになった。

SWTはjava風じゃないところがあるからまずはjavaを覚えた方が良い。



858 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 01:49:52 ]
これを応えられるほどの凄腕エスパーは世界に3人といないだろう

859 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 02:55:56 ]
SWTって自分でメッセージループ回してるところがWindouzuっぽくて嫌だ

860 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 09:19:55 ]
ちゃんと授業を聞いている学校のクラスメートだったら分かるんだろうな

861 名前:816 mailto:sage [2007/07/22(日) 14:51:24 ]
>>817
おお、うまくいきました。
Graphicsクラスからしか取得できないと思っていました。
ありがとうございました。

862 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 15:01:53 ]

JFlexとJacでちょっとしたもの作ろうとおもってるんだけど、
ビルドをeclipse上で自動化したい場合ってどうすればいいの?

863 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 15:03:05 ]
×jac
○jay

864 名前:862 mailto:sage [2007/07/22(日) 17:47:46 ]
申し訳ございません。
eclipseのスレがありましたのであちらで質問します。
ありがとうございました。

865 名前:デフォルトの名無しさん [2007/07/22(日) 20:10:02 ]
英語と日本語が混ざった長文をテキストエリアなどに表示される場合、
正確に一画面文の文字数をカウントすることをご教授願います。
フォントサイズから一画面の文字数を数える場合、
英文が入るを正確にカウントできません


866 名前:デフォルトの名無しさん [2007/07/22(日) 20:14:06 ]
できるよ。
文字数を読むメソッドがある


867 名前:デフォルトの名無しさん [2007/07/23(月) 02:05:51 ]
>>846
通常、POSTとGETは使い分けるよ。使う目的も違うし、HTTPにおけるパラメータの
送信方法も異なってくる。また、Tomcatの場合はHttpServletRequestのsetCharacterEncodingは
GETパラメータには利かない。(※いくつかの設定は存在する)

Servletを学習するなら、同時にHTTPについて学習するのはすごく有意義だし、Web上に色々参考に
なる記事が沢山落ちてるから、まずはPOSTとGETは具体的に何が違うのかを学習すると良いと思うよ。



868 名前:デフォルトの名無しさん [2007/07/23(月) 09:13:08 ]
ちょっとでも、お役に立てれば。

www.yukinko-net.jp/

869 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:23:50 ]
Rhinoの質問いいですか。
Rhinoでコマンドライン用のスクリプトを書こうとしているのですが、
コマンドライン引数の取り方が分かりません。
RubyでいうところのARGVです。
Rhino argv で検索しても C のソースしか引っかからないし。
どなたかお願いします。

870 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:32:59 ]
args

871 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:57:16 ]
>>869
RhinoはJavaによるJavascriptの実装だから、実装内容に関わるような話ならこのスレかもしれないが、
単なるスクリプトプログラミングについてここで聞くのはスレ違い。
ある言語について質問する時に、その言語の処理系が何で実装されているかに関わらず、
普通はその言語のスレで質問するだろ?

872 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 12:57:53 ]
>>870
argsは定義されていないようです。

print(args); //=> ReferenceError: "args" is not defined.

Rhinoは1.6R5です。

873 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 13:01:36 ]
>>871
JavaScript一般の話ではなく、あくまでRhino固有の話なので、JavaScript関連のスレではなくここで質問しました。
Rhino専用のスレはないし、RhinoはJava6から標準装備ですし、ここが一番適切ではないでしょうか。

874 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 13:39:30 ]
>>871
JavaScriptのスレでこんなもんわかるやついるわけないだろ。Javaスレ行けっていわれるのがオチ。

875 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 13:53:57 ]
>>874
じゃあお前が答えてやれよ
俺はRhinoは嫌いだ

>>869
arguments

876 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:07:55 ]
>>869
jrunscript で実行してるなら arguments で取れるはず。

そうでない場合は、自前でScriptEngineにセットしないとダメなんじゃね?
scriptEngine.getBindings(ScriptContext.ENGINE_SCOPE).put("arguments", args);

877 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:26:41 ]
>>875,876
argumentsでとってこれました。ありがとうございました。
ちなみにこういった情報はどこで見つけるものなんでしょうか。



878 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 14:30:03 ]
>>877
java.sun.com/javase/ja/6/docs/ja/technotes/tools/share/jrunscript.html

879 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 15:59:42 ]
>>874
呼んだ?
おまえら少しはEcma Scriptスレに顔出して上げてください。
ネタがないんで普段は実装と仕様の差異の話で盛り上がっとりますよ。

SpiderMonkyが人気ないからRhinoで持ちきりなんだが・・・。
java6のRhino劣化品。いらない子。

>>878
それmozillaのdocの劣化コピペだからmozillaの開発者向けサイトかRhinoのdocに全部書いてある。


880 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 16:28:58 ]
>>879
一応別のツールだから劣化コピペとは言い切れないんじゃね?

Rhino のツールでは -l でスクリプト言語指定したりできないっしょ。

881 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 18:51:12 ]
いやjdk6に入ってるjs.jarはスループット優先でRhinoの機能かなりとっぱらってサイズ減らしてるんだよ。
さらにコンパイラ省かれてるから一切最適化されてない純粋なインタープリタで動いてる。

Rhinoのドキュメントに組み込みガイドがあって
そこにスループット優先でビルドする手順が書かれてるんだけどそれと同じ事してる。+JavaAdaptorが劣化。

jrunscriptはそのRhinoのScripting APIに従った純粋なラッパー。

Rhinoの殆どの実装クラスがjavax.script.*じゃなくてcom.sun.*にあるから自分でJSオブジェクト実装とかクラスシャッターでセキュリティ制限とかできない問題もある。
ecmaスレで詳しい話題が出てるよ。

882 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 20:26:28 ]
>>881
javax.script は Rhino とは別物だよ。
で、jrunscript と org.mozilla.javascript.tools.shell も別物。
だから jrunscript の、より詳しいドキュメントとして mozilla のドキュメント読めというのはダメ。

883 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:29:23 ]
>>869はjrunscriptとはいってないだろ。
Rhino1.6R5と言っただけ。Rhinoがjavaの実装で6から標準装備だからこっち来たと。

>>876が勝手にjrunscriptと言い出しただけだろ。だからecmaスレ行けって。

884 名前:デフォルトの名無しさん mailto:sage [2007/07/23(月) 23:37:36 ]
>>883
俺は >>879 にレスつけただけなんだが。なんで >>869 の話が出てくるんだ?

885 名前:デフォルトの名無しさん [2007/07/24(火) 01:27:16 ]
Rhinoってなに?


886 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 01:39:57 ]
どっかの誰かさんが作ったjavaのライブラリ

887 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 02:51:47 ]
>>884おまえ上の流れくらい読めよ。馬鹿だろ?



888 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 02:53:20 ]
jdbcのドライバのロードを static { } 内に記述して一度だけ実行するようにしたいんだけど、
これって可能なんでしょうか。コードは以下のような感じ。

class Hoge {

static {
try {
Class.forName("org.postgresql.Driver");


889 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:00:58 ]
誤爆

class Hoge {
  static {
    try {
      Class.forName("org.postgresql.Driver");
    } catch (ClassNotFoundException e) {
      throw new InternalError(e.getMessage());
  }

  public static Connection open() {
    Connection conn = DriverManager.getConnection("foo", "bar", "baz);
    return conn;
  }

  // 以下略
}

コンパイルエラーは以下。
[javac] シンボル: 変数 DriverManager
[javac] 場所 : Hoge の クラス
[javac] Connection conn = DriverManager.getConnection("foo", "bar", "baz");
[javac] ^
[javac] エラー 1 個


890 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:06:50 ]
静的初期化子の中のcatch節の終了の}が無い

891 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:07:07 ]
>>889のソースコード、改めてみるとなかなかひどい抜けがあるけど勘弁してくれ。

クラスパスが通ってないのかなと思って servlet-api.jar にも classpath を通してみて
HttpServlet を継承しただけのコードを書いてみたけど、こちらは問題なかった。
ビルドに用いている ant の build.xml のクラスパスの部分は以下。lib/ 内には
postgresql.jar が配置されている。

<target name="compile">
<mkdir dir="${bin.dir}" />
<javac srcdir="${src.dir}" destdir="${bin.dir}">
<classpath>
<!-- <fileset dir="lib">
<include name="*.jar" />
</fileset>-->
<pathelement location="lib/postgresql.jar" />
<pathelement location="/usr/share/tomcat5.5/common/lib/servlet-api.jar" />
</classpath>
</javac>
</target>



892 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:13:33 ]
>>890
取り急ぎ書いたんで抜けた。すまん。他にも "baz" の終わりの " が抜けたりしてる。
手元のコードはちゃんとしてるから大丈夫。

893 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:17:47 ]
そして>>889にはったエラーメッセージに肝心のエラーメッセージがはってないな。
DriverManagerに対して

「シンボルを見つけられません。」

というメッセージです。

894 名前:888 mailto:sage [2007/07/24(火) 03:20:11 ]
解決しますた。

DriverManagerってずっと postgresql.jar の中にあるクラスと思ってたら java.sql.DriverManager
だったのな。。。

895 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:21:33 ]
>>892
import java.sql.DriverManager;してる?

896 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:23:38 ]
遅かったorz 解決して何より
まあシンボルが見つからないエラーは完全名を指定できていないミスが多いからね

897 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 03:23:59 ]
まさに今同じミスをやらかして修正に追われていた。
Eclipseの補完機能に頼りすぎておんなじ名前のメソッド入った
パッケージがこんがらがるとこういうことになる。



898 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 04:14:49 ]
設計時に使うパッケージは大方分かってるからワイルドカードでインポートして
クラス名が被るのは限定名でアクセスしてあとから「インポートの編集」すると混乱が減るよ。

899 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 06:42:38 ]
インポートのワイルドカード嫌う人おおいみたいだけどなんで?
コンパイル遅くなるから?
実行時にも遅くなる?
import *;
ができないからどっちもどっち?


900 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 07:30:15 ]
importの意味を知っていれば実行時に遅くなるなんて台詞は出てこないはずだぞ。

901 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 07:44:01 ]
>>899
importは「このクラスはこいつらに依存してますぜ」というある意味クラスの設計情報みたい
なもの。仕様変更やデバッグするときに鬼のようにimport hoge.*;とか書かれまくっていきな
りプログラム中でクラスが使用されているとどのクラス追いかけたらいいのかわからなくなる。
でっかいシステムなら尚のこと。
俺の場合作る手間より直す手間を減らすため、かなぁ。

902 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:00:23 ]
importなんて久しく意識してないな。eclipseが勝手に完全名書いてくれるからねえ

903 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:03:03 ]
import hoge.* でもIDEのサポートでどのパッケージはわかるから別に困らんし、
使うオブジェクト全部をimportで指定するのは面度だが、
これもIDEのサポートでさほど手間でもない。
どっちでもいい気がするが、プロジェクトのやり方に合わせるのが基地。

904 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:16:44 ]
入門向け書籍でサンプルコードを1行でも削るために使用されてるだけじゃね?>import の *


905 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:31:57 ]
importで*を使うと実行速度が低下するって聞いたんだけど本当?

906 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:37:36 ]
>>905
>>900

907 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:51:50 ]
遅くならないの?



908 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 10:54:42 ]
コンパイル時に解決されるのに、実行時に影響があるわけが

909 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 11:04:52 ]
あーそうだね
やっとわかった
ごめんね

910 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 16:56:27 ]
けど無駄なリンクが発生するから要らないリンク時間がかからない?javaって動的リンクだし。
まあ、無駄なアクセスがあればの話だけど。

911 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 17:00:45 ]
全然分かってないじゃないか

912 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 17:02:19 ]
importじゃなくabbreviateとかそんな予約語だったほうが良かったのかな

913 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 18:12:23 ]
>>910
hoge.Hegeクラスを参照しているソースファイル中で、
import hoge.*;
とやった場合と、
import hoge.Hege;
とやった場合でコンパイル後のclassファイル中のHegeクラスの名前の指定の相違点を確認。

914 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 19:33:39 ]
import a.*;
import b.*;

とかなってるときに、
パッケージ b 内にしかなかったクラスの名前と同じクラスをパッケージ a に追加すると、
追加したところとは異なるところからコンパイルエラーが発生してびびる
もっとも、たまたまシグネチャが合ってエラーが発生しなかったらと思うともっと心配かも

915 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 19:38:57 ]
無駄なリンクが発生するので、たぶん
要らないリンクに時間が掛かります(コンパイルに)

916 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 19:56:13 ]
クラスサイズが大きくなるってのは?

917 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 20:11:12 ]
ならないよ
コンパイラの名前解決時に影響するだけ
コンパイル後はまったく一緒、クラスファイルにはフルネームで格納される



918 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 20:15:09 ]
>>915-916
無駄なリンクなんて発生しねえしサイズも大きくならねえよ
importは単にこのクラスもしくはパッケージからクラス定義を拾ってこいっていうコンパイラへの指令
コンパイラの実装次第でワイルドカードを使った時のクラス検索の効率に差が出るかもしれんが

919 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 23:06:32 ]
import * ワロタ
どこの都市伝説だよw

920 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 23:43:08 ]
import *;

永遠に compile oh what a night in jamaica!

921 名前:デフォルトの名無しさん mailto:sage [2007/07/24(火) 23:43:17 ]
すべてのパッケージからクラスを探し出すのか

922 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:11:46 ]
結局クラスパス上になければコンパイルエラーだし
クラスパス上にあるなら import *; でも探すことはできるはず。
importってコンパイルを手助けしてあげるためにあるのか?
>>901の意味合いももちろんわかるけど。

923 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:15:11 ]
Javaのバージョンを変えてリコンパイルし直すと、ソースいじってないのにファイルサイズ増えるよね。
これってバージョンがあがってリンク先が増えたからだと思ってた。
富○通正社員の俺
協力会社の新人に笑われたorz


924 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 00:18:12 ]
大丈夫落ち込むほどYOUの会社の評価は高くない。

925 名前:デフォルトの名無しさん [2007/07/25(水) 03:05:55 ]
そしてなにより板の空気をよめない
923は最悪


926 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 03:39:37 ]
いろんな苦労の末に入ったばっかりなんじゃないかなー

927 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 08:37:36 ]
Rhinoって何て読む?
アール日野?



928 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 08:39:34 ]
サイさんは英語でなんと言うのでしょう赤坂?

929 名前:デフォルトの名無しさん [2007/07/25(水) 09:27:12 ]
>>923
落ち目だからな・・・。

930 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 12:52:40 ]
J2EEとJavaは何が違うんですか?

931 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 12:56:24 ]
>>930
それは関西と大阪は何が違うかという質問に近い。

932 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 13:03:05 ]
>>931いやいやいやw

関西と関西弁の違い、と思う

933 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 13:25:59 ]
日本人と関西人の違いだろ
企業と企業広報の違いでも有るかな

934 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 20:57:24 ]
Javaで動画や音声のストリーミングって出来ますか?
動画はともかく、ねとらじとかをJavaから利用できないかな?

935 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:05:11 ]
やろうと思えばできる、やるかどうかは別だが

936 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:06:21 ]
>>930
ファミコンとディスクシステムのような関係

937 名前:デフォルトの名無しさん mailto:sage [2007/07/25(水) 21:36:59 ]
>>934
さがせばストリーミングライブラリがいくらでもある。

J2EEの名称はもう使われてないな。



938 名前:デフォルトの名無しさん [2007/07/26(木) 00:41:29 ]
JAVAアプレットのプログラムを作ってるんですが
Mainのプログラムから描画の処理のところだけ切り出して
別のクラスにかきだしたいのですがいくらやってもうまくいきません
どうすればいいですか?
どなたか教えて下さい

939 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 00:45:52 ]
エスパーが来るまでお待ちください。

940 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 00:49:37 ]
>>938
どうすればいいかは、
あなたが考えれば一番うまくいくでしょう。

941 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 00:57:00 ]
まあパッシブレンダリングだと混乱するのも分かるけどな。

942 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 01:23:16 ]
javaのパッシブ/アクティブレンダリングはそういう使い方するもんか?
GUIにタイミング任せるか、プログラムで自分でやるかの話だろ?

アプレットはエントリポイントが違うってんなら分かるが。

>>938
せめてソースくらい上げましょうぜ旦那?

943 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 01:28:40 ]
>>938
描画処理?
とりあえずソースだな。

944 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 01:35:17 ]
プログラム内からrmiregistryを立ち上げたいのですが、
www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36623&forum=12&7
itpro.nikkeibp.co.jp/article/COLUMN/20061208/256374/?ST=develop
を見て、sun.management.Agent内でその処理を行っているのはわかったのですが
このソースのどこで立ち上げてるかさぱり分かりません。
誰がわかる人がいたら解説お願いします。

945 名前:デフォルトの名無しさん [2007/07/26(木) 10:21:31 ]
Java って、内部クラスから外側のクラスの this ポインタを取得することってできないの?

class Outer {
  void Hoge() {
    Inner inner = new Inner();
    inner.Foo();
  }
  class Inner {
    void Foo() {
      // ここで Outer の this がほしい。
    }
  }
}

コンストラクタで明示的に外側のクラスの this を渡すしかない?


946 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 10:35:56 ]
>>945
Outer.this

947 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 14:24:44 ]
class Inner はstatic finalのほうがよくね?



948 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 15:25:23 ]
派生元のクラスでprivateで定義されているメンバ変数に
それを継承したクラスの方からアクセスするにはどうしたらよいですか?

949 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 15:41:37 ]
>>948
java.lang.reflect.Field

950 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 15:42:49 ]
>>948
private で宣言されたメンバは継承されない

getter 用意してアクセスしろ

951 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:02:25 ]
>>949
ありがとうございます
1.4でも使えますか?

952 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:08:39 ]
継承はされるだろ

953 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:22:11 ]
>>952
java.sun.com/docs/books/jls/third_edition/html/classes.html#8.2
> Members of a class that are declared private are not inherited by subclasses of that class.
> Only members of a class that are declared protected or public are inherited by subclasses
> declared in a package other than the one in which the class is declared.

継承されてたら言語仕様に反する。

954 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 16:33:06 ]
>>951
1.4でも使えるけど、セキュリティマネージャが許可しない場合は使えない。
例えばアプレットとかだと、Field#setAccessible() が許可されないはず。

955 名前:デフォルトの名無しさん [2007/07/26(木) 18:01:23 ]
JAVAさんってC#くんが嫌いなんですか?

956 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 18:12:42 ]
普通設計段階でprotectedにするだろ。そういうの。

>>955
ゲイツ君がpure javaさんを嫌いで古臭いjavaさんの実行モデルを元に「・・・頼むよ君」と呼んできたのがC#くん。

957 名前:デフォルトの名無しさん [2007/07/26(木) 18:33:30 ]
>>938なんですが
もう一度質問します。アプレットのメインクラスの中にある
描画処理・・・・たとえば↓
public void paint(Graphics g){ 
   //描画処理
  }
を別のクラスに作って描画処理を丸々引き渡したいのですが
別のクラスから描画処理をやろうとするとウィンドウに描画処理が反映されません。
メインクラスからだと反映されるのですが・・・。
描画処理をほかのクラスに引き渡すにはどうしたらいいですか?
たびたび質問してしまって申し訳ありません。



958 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 18:49:04 ]
paintの引数のGraphics gを使えば、同じクラスだろうが別のクラスだろうが関係無くちゃんと描画されるハズ。
使ってるつもりなのに描画されないなら、多分つもりなだけで実際には使われて無いんだろう。
問題のコードをどっかにうpした方が回答がつきやすいと思うよ。

959 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 19:08:29 ]
INT型の変数が2147483647を超えるとマイナスになってしまいますが、これを防ぐにはどうしたらいいものでしょうか

960 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 19:11:50 ]
long

961 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 19:16:38 ]
>>957
ソース

962 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 19:31:25 ]
>>960
わかりました。long使ってみます
ありがとうございました

963 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 19:41:33 ]
すみません・・・
long b = Integer.parseInt(line);
このようにlineを取り込むとlongでも小数点以下がなくなってしまいます
longで取り込むにはどうしたらいいのでしょうか

964 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 19:48:59 ]
longもintも整数を保持する型
doubleは小数を保持する型
ってかlongに変えたんならInteger.parseInt()使うなよ
long用にはLong.parseLong()がある
doubleを使う場合はDouble.parseDouble()とかもある
これらを実行してどうなるか試してごらん

965 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 20:05:07 ]
なるほど
いろいろ種類があるんですね
おかげさまで何とか動くようになりました!ありがとうございました

966 名前:デフォルトの名無しさん [2007/07/26(木) 20:10:25 ]
>>958
できました
ちょっとしたミスでした
どもです^^;

967 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 20:42:31 ]
>>947
親クラスの非staticなメンバに直接アクセスするような
インナークラスだとstaticクラスじゃ無理。
たとえば、Iterableを実装するようなクラスがそれにあたる。

>>945のケースだとOuterのthisを要求しているからstaticじゃ面倒だね。

そうじゃない場合、ただの別クラスがたまたまインナークラスになっている場合、
staticにしないとnewするのにいちいち、
new Outer().new Inner();
とかいうわからないコードを書かないといけないハメになる。

まあ、内部に非staticクラスしのばせるのもいいけど、
メソッド内にクラス定義書くのも乙だと思うけどな。かなり嫌われるけど。



968 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 21:00:58 ]
JUnitをさわりだしたんだけど、これって基本的にpublicな関数・変数のみを
対象にするって感じでいい?

本当はprivateな関数のテストもしたいし、privateな変数にアクセスして
チェックもしたいんだけど。
それともprivateを使わないで全部protectedにしてるとか?

969 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 21:16:31 ]
>>968
JUnitは単なるツール
どんなテストを行うかは別の問題

970 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 21:17:16 ]
>>968
(1)リスク駆動で。気になったところからチェックする。
単純な getter や setter などトリビアルなものに対するテストを考えるくらいなら、
もっとやるべきことがあるはずだ、たぶん

(2)protected にするくらいなら、パッケージプライベートで

(3)どうせなら、テストファーストがお勧め
テストを書こうとするだけで、モジュールの独立性や使い勝手などが
設計にフィードバックされる

971 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 21:59:18 ]
>>956
わたしもprotectedにするべきだと思うんですが
提供されているソースをみるとそうなってなかったんですね


972 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 23:51:39 ]
サーブレットについて質問。

コンテナに登録されているロール名の一覧を取得する
方法はない?
あるロール名が登録されているかどうかを判別する
だけでもいい。

コンテナはGlassfish v2 Beta 3だが、JEE汎用の方法が
嬉しい。

973 名前:デフォルトの名無しさん mailto:sage [2007/07/26(木) 23:53:26 ]
publicなり、protectedのテストがきちんとかかれていれば、privateメソッドもテストされるんでない?
jcoverageとか使ってみれば?

974 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 01:33:53 ]
for文が上手く動いてくれないです
while(true){}でやるとちゃんと動くですが、どんな条件を入れても動いてくれません
他にもfor文とかの繰り返しはたくさんあるのですが、これだけ動いてくれません

■java 2 SDK SE v1.4.2_14
■WinXP Home

for文の中にprintlnを書いても全く表示されませんでした。
何が原因なのでしょうか?

ttp://up.spawn.jp/file/up36584.txt

975 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 01:43:11 ]
(´・ω・`)自己解決しました

976 名前:デフォルトの名無しさん [2007/07/27(金) 06:26:15 ]
Java(Struts)で、10分に一回、あるテーブルのデータをチェックするという
プログラムを作るにはどうすればよいのでしょうか?
ずっと、そのチェックをはしらせときたいのです。

977 名前:968 mailto:sage [2007/07/27(金) 07:48:59 ]
レスどーも

>>969
一般的にどんな感じでテストしてるか知りたい。

>>970
JUnitは単体テストなので実装依存(ソースにべったり)のテストコードを
作るのか、あるいは外部から見える範囲内(内部での細かい動作まではテストしない)
なのかを知りたいところ。
リスク駆動と言うのであれば、やはりprivateな変数・オブジェクトレベルでも
チェックしたいかなーと思ったんだけど、普通はそこまではしないもんなのかな。
クラスや関数はパッケージローカルでいいとは思うけど。

>>973
とりあえずjcoverage見てみたけどよくわからんw
IDEと連動しにくいツールは手を出しにくいかも。



978 名前:968 mailto:sage [2007/07/27(金) 07:51:55 ]
ちなみに今はnetbeans使用

979 名前:968 mailto:sage [2007/07/27(金) 08:00:03 ]
なんかこんなのあるな
journal.mycom.co.jp/news/2007/07/20/006/index.html

980 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 08:47:09 ]
次スレ立てました。

【初心者】Java質問・相談スレッド104【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1185493592/

981 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 09:55:44 ]
>>976
cron

982 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 10:33:24 ]
Eclipseならプラグインがあったんだが。

>>979
ちょっと試してみたが、なかなか面白そうなツール。
要するに、テスト対象のコードをいじって、テストがそれを検出できるかを調べるツール。
カバレッジとはまた別の視点で単体テスト品質を計測するようだ。

983 名前:デフォルトの名無しさん [2007/07/27(金) 10:51:34 ]
文字コード変換について質問です。
開発環境の文字コードはEUCなのですが、

String sample= "さんぷる";
String sjSample = new String( sample.getBytes( "SJIS" ), "SJIS" );

上の処理でSJISに変換されるんでしょうか?
変換された事を確認することってできないんでしょうか?

984 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 10:55:46 ]
>>983
> 上の処理でSJISに変換されるんでしょうか?
一瞬だけ。

> 変換された事を確認することってできないんでしょうか?
sample.getBytes("SJIS") の戻り値を確認。

985 名前:デフォルトの名無しさん [2007/07/27(金) 11:36:56 ]
>>984
>一瞬だけ。
プログラム実行中は変換されたままですよね?

>sample.getBytes("SJIS") の戻り値を確認。
戻り値を確認してみたら [B@ed0338 でした。
変換されたのはなんとなくわかりますけど、こういうもんですか?

986 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 11:43:53 ]
>>985
> プログラム実行中は変換されたままですよね?
no。すぐにGC可能状態になる。

> 戻り値を確認してみたら [B@ed0338 でした。
toString()が確認に使えるか、もチェックしてから使え。
sample.getBytes("SJIS") で戻ってきた配列の中身を確認しろ。

987 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 11:44:28 ]
>>983,985
ソースコードを EUC で書いても、String は Unicode です
getBytes("SJIS") で SJIS に変換されるけど、String に戻したらまた Unicode です



988 名前:デフォルトの名無しさん [2007/07/27(金) 12:33:10 ]
>>986
配列の中身まではみていませんでした。
確認したら数値が入っていたので調べてみます。

>987
内部コードってやつですか・・・SJISで扱えるのはgetByte("SJIS")の戻り値だけってことですね。

すいません、質問を変えさせてください。
URLConnectionを使って相手先に複数のパラメータを送ろうとしているのですが、
日本語を扱うパラメータはSJISに変換することになっています。
この変換が上手くいかず、今はEUCで送ってしまっている状態です。
日本語パラメータをSJISで送るにはどうすればいいんでしょうか?

SJISに変換した文字列を送ろうと思って最初の質問をしていました。

989 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 12:49:59 ]
>>988
java.net.URLEncoder.encode("文字列", "SJIS");

990 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 15:02:02 ]
無料ホームページスペースを使って、JAVAアプリケットをおいてJAVAアプリケットから誰でもそのホーム
ページのFTPに入ってパスワードを入れて
ファイルを書き換えることはしてもいいんですか?

991 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 16:12:31 ]
規約嫁としか

992 名前:968 mailto:sage [2007/07/27(金) 16:35:58 ]
JAVAアプリケット関係ない
つーかJAVAアプリケットて何?w

993 名前:968 mailto:sage [2007/07/27(金) 16:37:02 ]
あ、名前消すの忘れてたw

994 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 17:45:49 ]
>>992
インストロールみたいなものじゃないの?

995 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 17:59:24 ]
>SJISに変換することになっています。
分かりづらい地味な嫌がらせだな。せめてUTF-8にしてやればいいのにw

>>990
鯖の規則読んで出来るか確認してjavaアプレットから
どうやってFTP叩くかまで出来てからのご来場をお待ちしております。
じゃなきゃエスパー待ちになるぞ。

996 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 19:37:43 ]
synchronized 指定されたメソッド呼び出しをしたら、
オブジェクトにたいしてロックが入るの?
それともメソッドだけ??

class Hoge {
public synchronized int hoge(){...}
...
}

Hoge hoge.hoge();

↑ こうやったときに 別のスレッドからはhoge()だけ呼び出しできないのか、
それともhogeに対するアクセスは全部ロック解除待ちになるの?

997 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 20:40:28 ]
>>996
hoge



998 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 20:40:39 ]
synchronizedメソッドはsynchronized(this){}と同じ意味だった気がする
だからhogeの他のsychronizedメソッドもロックされるな

999 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 20:44:21 ]
メソッドは呼び出しできないけどオブジェクトにはアクセスできたと思う
オブジェクトをロックする方法は別にあったはずだし

1000 名前:デフォルトの名無しさん mailto:sage [2007/07/27(金) 20:45:07 ]
ガチでか
勘違いしてたぜ(´ー`;)

1001 名前:1001 [Over 1000 Thread]
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<271KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef