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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 01:35:28 ]
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下の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質問・相談スレッド98【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1171787388/

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

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

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

563 名前:デフォルトの名無しさん [2007/03/17(土) 21:16:56 ]
VISTAでJAVAは使えますか?

564 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 21:20:54 ]
とりあえず使えます

565 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 21:31:18 ]
>>562
であるならなおのことSpecification読むしかないのでは。
あれが最終にして完全(であるべき)ですから。

差しさわりがなければMQ作ることになった理由を聞かせて欲すぃ・・

566 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 21:39:02 ]
> であるならなおのこと

おとこのこなら

に読めてしまったので眼科行ってくる

567 名前:デフォルトの名無しさん mailto:sage [2007/03/17(土) 21:42:51 ]
アッー!

568 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 14:13:19 ]
SwingでBeanを編集するためのよいバインドツールみたいなものはありませんか?

569 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 14:36:53 ]
仕事関係です。SOAという言葉が大好きな人がいまして・・・。
まあまだ作ると決まったわけではないんですが。
英語大嫌いなんでキツイ(;´Д`)

570 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 14:41:34 ]
SOAと英語にどういう関係が、つーか誤爆か?


571 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 14:43:18 ]
そあー大変だな
てか別に英語関係なくね?



572 名前:デフォルトの名無しさん [2007/03/18(日) 14:45:12 ]
kajuhome.com/tomcat5.shtmlを見てTomcatをセットアップしているのですが、起動時にはTomcatが起動していません。
起動後、コマンドラインから/etc/rc.d/init.d/tomcat5 start(中でcatalina.sh startを呼んでいます)で起動すると問題なく起動します。
catalina.outを見ると、停止時に

致命的: プロトコルハンドラの一時停止に失敗しました
java.net.SocketException: Network is unreachable

というエラーが出ています。また、起動時の表示を見ていると、上記のtomcat5より先にhttpdが起動しています。
上記URLには「必ずtomcat→apacheの順で起動すること」とありますので、ここも気になるところです。

以上二点、何かお気付きの点があれば御指摘ください。よろしくお願いします。ちなみに環境は
・CentOS 4.4
・jdk-1_5_0_11-linux-i586-rpm.binからインストールしたJDK1.5.0_11
・apache-tomcat-5.5.23.tar.gzから解凍したtomcat5.5.23
・jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gzからmakeしたmod_jk2.0.4
です。他に必要な情報があれば御指摘ください。

573 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 15:09:04 ]
>>572
CATALINA_HOMEとかが読まれてないんじゃないか?

しかし、/etc/profileを更新するとは強引だな

あと、jk2は終わってるぞ

574 名前:デフォルトの名無しさん [2007/03/18(日) 15:23:40 ]
JAVA勉強してるのですが、将来的にもLG3Dを取り敢えずインスコしといたほうがいいですか?それともBistaにしとく?

575 名前:572 [2007/03/18(日) 15:29:14 ]
>CATALINA_HOMEとかが読まれてないんじゃないか?
>
>しかし、/etc/profileを更新するとは強引だな

解決策&お勧めの方法などありましたら、「ここを見ろ」でOKですのでご教授ください(;´∀`)
ちなみにmod_jkも試してみたのですが、まったく同じ問題が出たのでクリーンインストールしなおしたとです……。


576 名前:デフォルトの名無しさん [2007/03/18(日) 15:32:46 ]
今eclipseでdbを利用した簡単なアプリケーションを作っているのですが、
eclipseにhsql pluginを導入しました。しかし、
作ったアプリケーションをいざプラウザで表示しようとすると
HTTP????? 500 -

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

type ??????

?????

?? The server encountered an internal error () that prevented it from fulfilling this request.

??

javax.servlet.ServletException: org.hsqldb.jdbcDriver
ってエラーが出るのですが。ちなみにDBへの接続は別のクラスがやるようになってます。
解決策分かる方、教えてください。お願いします。

577 名前:デフォルトの名無しさん [2007/03/18(日) 15:41:48 ]
その別クラスからのDBへの接続は大丈夫でした

578 名前:569 mailto:sage [2007/03/18(日) 15:56:03 ]
>570-571
565への返信です。
SOA→JMSという流れらしくて・・・。
で、JMSの仕様書英語しかなさそうなんで面倒だなと。

579 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 15:57:47 ]
ならまぁ、「SOAだから」じゃなくて単に英語苦手だからだな。
つ エール


580 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 16:01:17 ]
>>576
pc11.2ch.net/test/read.cgi/tech/1147444414/771

581 名前:デフォルトの名無しさん mailto:age [2007/03/18(日) 16:13:55 ]
今 Sun のサイトから
jdk-1_5_0_11-windows-i586-p.exe をダウンロードしてインストールしたのですが、
bin フォルダ内に javac コマンドがありません。
何か変更があったのですか?
javac に替わるコンパイルコマンドはどれでしょうか。



582 名前:  mailto:sage [2007/03/18(日) 16:26:28 ]
キーボードから任意の数値nを入力させて、1からnまでの和を表示させるプログラムです。
たとえばnが7であれば、「1+2+3+4+5+6+7 = 28」という具合に表示させます。
本に載っている模範解答だと、この処理部分を

int sum = 0;

for (int i = 1; i <= n; i++) {
System.out.print(i + " + ");
sum += i; // sumにiを加える
}
System.out.println("= " + sum);

としているのですが、これだと「1+2+3+4+5+6+7+ = 28」になって、最後の余計な"+"が入っちゃうと思うんです。
そこで、この処理部分を

  int sum = 0;

  for (int i = 1; i <= n; i++){
   if (i != n){
   sum += i;
   System.out.print(i + "+");
   }

   else{
   sum += i;
   System.out.print(i);
   }

  }
  System.out.println("=" + sum);

というふうに修正してみたんですが、これって一般的な方法と言えるんでしょうか?

583 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 16:30:10 ]
Project Looking Glassに参加してる方は2chなんかにいないですよね?

584 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 16:41:17 ]
仮に居たとしても会話したくないだろうな

585 名前:581 mailto:sage [2007/03/18(日) 17:05:34 ]
JDK のインストールの後の JRE のインストール先を JDK と同じフォルダにしたため
bin が上書きされてしまっていました。
失礼ぶっこきました。

586 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 17:38:47 ]
>>575
解決策はエスパーでもない限りわからん
スクリプトにechoでも埋め込んで確認するとかで調べるとかして原因を特定

お薦めは
ttp://ichimura.chi.its.hiroshima-cu.ac.jp/webdb/tomcat.html
の方法
ただし、内容は少し古いから適時読みかえること
jsvcのマニュアルも読んで適切にスクリプトを書き換えること

587 名前:572 mailto:sage [2007/03/18(日) 18:45:18 ]
>>586
アドバイスありがとうございました。結論からいうと
>CATALINA_HOMEとかが読まれてないんじゃないか?
で大当たりでした。
/etc/rc.d/init.d/tomcat5の先頭にechoを入れると、起動時に環境変数まわりのエラーメッセージがドカンと表示されたので、
先頭に(/etc/profileとはまた別に、フルパス直書きで)環境変数を設定したところ、うまく起動できました。
また、念のためinit.dによる自動起動を停止し、/etc/rc.d/rc.localに記述する方法で明示的にtomcat→httpdと起動するようにしておきました。

大変助かりました。アドバイス、ありがとうございました。

588 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 22:02:10 ]
>>587
RH系なら、起動スクリプトの「# chkconfig」の行に、起動する順番を書けばいいでしょ。
「linux chkconfig 順番」でググってみたら?とりあえず1件見つけてみた。
ttp://www.geocities.co.jp/SiliconValley-Cupertino/9120/startup.html

589 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 22:06:08 ]
>>582
sum+=i;が重複してるからif-elseの外に出した方がいいな。
けどそれ以外はみんなそんな感じに書くと思うぞ。
逆に変態的な書き方があったらぜひ教えて欲しいもんだ。


590 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 22:12:10 ]
for (int i = 1; i <= n; i++) {
    sum += i;
    System.out.print(i);
    if (i != n) {
        System.out.print("+");
    }
}

591 名前:デフォルトの名無しさん mailto:sage [2007/03/18(日) 22:19:27 ]
java -jar foo.jar としたときにシステムプロパティ java.class.path って
確実に実行モジュールである foo.jar のみが表示されるのかな?
仕様や実行結果を見るにどうもそうらしいんだけど。

絶対パスならそのまま、相対パスなら user.dir を付加すれば Win32 のGetModulePath の代わりになる?



592 名前:582 mailto:sage [2007/03/19(月) 00:42:19 ]
>>589-590
そうですね。その方がスマートですね。
ありがとうございました!

593 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 01:44:21 ]
>>582
まぁ、あえて違う書き方をしたいと思ったら、

int sum = 1;
System.out.print(1);
for(int i = 2; i <= n; i++ ) {
 sum += i;
 System.out.print(i + "+");
}
System.out.print(" = " + sum);

ぐらいかな? あまりこういう書き方はしないと思うけど・・・。

594 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 01:45:29 ]
ごめん間違った

> System.out.print(i + "+");
System.out.print(" +" + i);

に修正

595 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 02:16:02 ]
>>589
普通に
for (int i = 1; i <= n; i++) {
sum += i;
System.out.print(i + (i != n ? " + " : " = "));
}
System.out.println(sum);
みたいなのを考えたけど、希望してるのならこんなの
for (int i = 1; i <= n; i++) {
System.out.print(i + " + ");
sum += i;
}
System.out.println("\b\b= " + sum);

596 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 09:22:24 ]
>>595
\bとはマニアックな・・・。
けどこうしてみるとifもないしスマートに見えるな。
機会があれば使ってみよう。

597 名前:デフォルトの名無しさん [2007/03/19(月) 14:01:53 ]
開発はユニクソ?リヌクス?の方が多い?

598 名前:572 mailto:sage [2007/03/19(月) 15:25:20 ]
>>588
フォロー、ありがとうございます。これでinit.dの下で管理できそうですね。
大変参考になりました。重ねて御礼申し上げます。

599 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 21:11:24 ]
新人教育でJavaを教えることになりました
知らないやつを基準に変数からクラス、オブジェクトまで教えるのですが
これだとすでにJavaやプログラミングを知っている人が退屈してしまうので
そいつらむけの適当な自習課題を用意しようと思います。
(簡単なゲームとかメモ帳作成とか)
参考になりそうなページはないですか?

600 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 21:40:06 ]
お前が作れよ

601 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:01:06 ]
ゲームとかメモ帳ってGUI方面だろ。
Webアプリ作らせたほうが実用的かと。



602 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:24:57 ]
Java知ってるやつにはDB使ったアプリを教えろ

603 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:29:40 ]
>>601
知らないやつ基準ということなのでそういう人が大多数という前提だと、
新人研修の自習でWebアプリ作るほどの力があるならそのまま現場投入で
たたき上げた方がよほど本人及び会社の為ではないかと


604 名前:603 mailto:sage [2007/03/19(月) 22:50:47 ]
あ、現場投入云々はあくまで技術者として、ね。
社会人としてどうとかはまた別の話。

605 名前:デフォルトの名無しさん mailto:sage [2007/03/19(月) 22:59:07 ]
>>599
java.cs.vt.edu/dev/javasound/api/javax/media/sound/sampled/package-tree.html
の javax.media.sound.sampled 使った何か

606 名前:1/2 mailto:sage [2007/03/20(火) 00:17:04 ]
import java.awt.*;
import java.awt.event.*;

class Awt10{
Frame frame;
Button button;
TextField text;

public Awt10(){
frame = new Frame( "フレーム" );
button = new Button( "クリックするとダイアログ表示" );
text = new TextField();

button.addActionListener( new ActionListener() {
public void actionPeformed(ActionEvent e){
new Dialog01( frame );
}
} );

frame.add( button, BorderLayout.NORTH );
frame.add( text, BorderLayout.SOUTH );
frame.pack();
frame.setVisible( true );
}

public static void main( String[] args ){
Awt10 awt10 = new Awt10();
}
}

607 名前:1/2 mailto:sage [2007/03/20(火) 00:21:12 ]
class Dialog01{
Dialog dialog;

public Dialog01( Frame frame ){
dialog = new Dialog( frame, "ダイアログ", true );
Label label = new Label( "ラベル" );
dialog.add( label );
dialog.pack();
dialog.setVisible( true );
}
}


これでコンパイルすると、
Awt10.java:15: <anonymous Awt10$1> は abstract でなく、java.awt.event.ActionList
ener 内の abstract メソッド actionPerformed(java.awt.event.ActionEvent) をオーバ
ーライドしません。
public void actionPeformed(ActionEvent e){
こういうエラーが出てきてしまいます。
javaの入門本のコードそのまま打ち込んでいるんですが、どうしたらいいんですか?

608 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 00:26:22 ]
> actionPeformed
performed?

609 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 00:36:55 ]
>>607
>class Awt10{

これ本当?コピペ間違ってない?
このソースであのエラーが出るとは思えんが…


610 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 00:40:10 ]
うわーありがとうございました。
performedのスペルが間違ってました。恥ずかしい。

>>609さん
コピペは間違いはないと思います。。。
こういうエラー見たことなかったのでスペルちゃんと見てませんでした

611 名前:609 mailto:sage [2007/03/20(火) 00:49:21 ]
すまん。勘違いだった(汗)
普段の自分のコーディングスタイルと違うので(と言い訳してみる)




612 名前:デフォルトの名無しさん [2007/03/20(火) 10:26:06 ]
*=ってどういう意味?

613 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 10:27:42 ]
a = a * b; と a *= b; が同じ

614 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 10:38:18 ]
さんくす。

615 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 11:38:00 ]
a *= bってスタックに積む数が少ないから実行速度a = a * bより早いのかな?

616 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 11:44:40 ]
>>615
> スタックに積む数が少ない
そもそも、この違いがない、はず。

617 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 12:44:50 ]
単なる表記法の違いだよね…?

618 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 13:04:47 ]
a #= b と a = a # b の違いは、aが評価される回数。

x[func()] += y; と x[func()] = x[func()] + y;
だとfunc()の性能によっては大きな速度差が出ることがあるし、
func()が副作用を持つ場合は動き自体が違う可能性もある。


619 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 13:18:13 ]
a, b をメタ変数と考えるなw

620 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 14:37:53 ]
完全なインタープリタならいざ知らず、バイトコードまではコンパイルしてるのだから
式の評価順の解析(スタックや逆ポーランドといった)はコンパイル時におわってる。
より短くコードを書くことを良しとしていたCの文法を受け継いでるだけだ。

621 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 16:16:30 ]
>>620
要するにコンパイラが勝手に最適化するから気にするなでおk?



622 名前:デフォルトの名無しさん [2007/03/20(火) 19:12:20 ]
WebappClassLoaderをサーブレット側から手動で動かすにはどうしたらいいですか?

623 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 20:48:28 ]
eclipseでワークスペース使ってコンソールから窓を開いて3DCGを表示するアプリ作ったのですが

それをアプレットに落とし込むにはどうしたらいいでしょか。
やり方教えて下しア

624 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 20:52:01 ]
C/C++ だと _ で始まる名前や場所を問わず __ を含む名前はシステムで予約されてるけど、Javaではどうなん?

625 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 21:09:19 ]
_については制限なし。

$も使えるが、機械生成されたものなど、用途を制限されている。
ただし、「それが望ましい」程度の縛り。


626 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 21:09:25 ]
>>624
Character#isJavaIdentifierStart も Character#isJavaIdentifierPart も true を返すから '_' 自体は使える。

_ で始まる名前とか __ で始まる名前とかで、予約はされてないはず。

コーディング規約で使わないのを推奨してたか、は忘れた。

627 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 21:16:04 ]
>>625-626
サンクス。自分でそんな名前を進んで使うつもりはないけど、
いま弄ってるソースでバンバンそんな名前が使われてたから気になってた。

628 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 21:41:28 ]
>>617
どこにレスを付けるのか迷ったけど、ここにレス付けるわ。
例A
short x = 0;
int i = 123456;
x += i; // エラーなし
x = x+ i; // エラー 精度が落ちている可能性

例B
Object o = "Hoge";
String s = "Test";
o = o + s;// エラーなし
o += s; // エラー 互換性のない型

元ネタ 書籍「Java Puzzlers」

629 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 22:06:08 ]
>x += i; // エラーなし
なんで?

630 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 22:18:46 ]
JLS15.26.2を読んでみた。

前者は、複合代入演算
E1 op= E2
の意味するところは
E1 = E1 op E2
ではなく、
E1 = (T)(E1 op E2) // TはE1の型
すなわち、複合代入演算子は暗黙のうちに代入される側の方へのキャストを
行うというのがポイント。

後者は、複合代入演算子が使えるのはプリミティブ型/そのラッパー型、そして
+=については左辺がStringの場合のみ、文字列連結が行われる。
(右辺はどんな型でもよい)


631 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 22:22:58 ]
>>629
例えば

byte b = 0;
b += 2; // 2 は int型

とかがコンパイルエラーになったらウザいでしょ。



632 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:34:47 ]
JPanelにCanvasをはりつけてCanvasにイメージを描画しようと思ってます。
JPanel内に↓のようなMyCanvasクラスを定義してpaint()を実装しました。

 private class MyCanvas extends Canvas {
  public void paint(Graphics g) {
   g.drawImage(resultImage, 0, 0, null); // resultImageはJPanelのインスタンス変数
  }
 }

JPanelでresultImageが変更されたときにmyCanvas.repaint()を呼んでいるのですが
Canvasのイメージが更新されません(一度、最小化して戻すと表示されてます)
再描画がうまくいってないようなのですがどのようにすればよいでしょうか。


633 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:39:03 ]
- MyCanvasはCanvas(AWTコンポネント)を継承せず、代わりにJPanelを継承
- paintではなくpaintComponentをオーバーライド

でどうか?


634 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:51:18 ]
アドバイスありがとうございます。
ただそれでもだめでした。
paintComponent()でSystem.out.println()やるとちゃんと表示されてるのでrepaint()で
メソッドは呼び出されてはいるようです。
ただはりつけたJPanelに表示はされません・・・

もとのパネル(MainPanel)では
setLayout(new BorderLayout());
imagePanel= new MyPanel();

add(imageCanvas, BorderLayout.CENTER);
ではりつけてます。

635 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:52:10 ]
add(imagePanel, BorderLayout.CENTER)
の間違いでした

636 名前:デフォルトの名無しさん mailto:sage [2007/03/20(火) 23:58:52 ]
自己レスです

はりつけたMyPanelのpaintComponent()にsuper.repaint()を入れたらすぐ再描画されました。
貼り付け元のJPanelも再描画する必要があるってことでしょうか・・・

637 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:02:58 ]
関係ないかもしれないけど、
paintComponentでsuper.paintComponentは呼んでる?


638 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:19:55 ]
呼んでます・・・

JFrameの上にJPanelを貼り付けた場合は、paintComponent()ですぐ再描画されてたんですが、今度はJPanelの上にJPanelを貼り付けたからかと疑ってるんですが、関係ないかな。

639 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:25:58 ]
超初心者です。
本を見ると
「swingはAWTと異なり、コンテンペインを取得し、そこにコンテンツを配置する。」
というように書いております。
で、そのとおりgetContentPane()してaddしたらもちろん上手くいきました。
流れとしてはこんな感じで。→new JFrame().getContentPane().add(new JPanel());
その後もしかしてと思って、
new JFrame.add(new JPanel())
ってやっても普通にうまくいきました。
コンテンツペインを取得する必要ってあるんでしょうか?

640 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:35:17 ]
>>638
自己レスですが
g.drawImage(resultImage, 0, 0, this);
で解決したようです。null->thisにしました。

641 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:37:44 ]
>>639
最近のJFrameでは不要。必要に応じて内部でgetContentPane()した先に
要求をたらい回ししてくれる。





642 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 00:41:07 ]
java.sun.com/j2se/1.5.0/ja/docs/ja/guide/swing/1.5/index.html#swingMajor
bugs.sun.com/bugdatabase/view_bug.do?bug_id=4753342
だな。


643 名前:639 mailto:sage [2007/03/21(水) 00:48:04 ]
おお、、ありがとうございます。
getContentPane()は面倒だけどswingの構造を理解するのに役立ってたので
ちょっと複雑な気分です。

644 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 13:28:38 ]
jarファイルからカレントディレクトリにある任意のJDBCドライバを読み込ませるようにしたいのですが、
MANIFESTのクラスパスには何と記述すればよいのでしょうか?
.や*.jarでは認識しませんでした。
直接名前指定 or jre/lib/extにドライバを格納するしかないのでしょうか?

645 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 13:39:51 ]
記述部さらしてみ

646 名前:644 mailto:sage [2007/03/21(水) 13:49:58 ]
Manifest-Version: 1.0
省略
Class-Path: *.jar xxxx.jar xxxx.jar

Manifest-Version: 1.0
省略
Class-Path: . xxxx.jar xxxx.jar

という感じです。記述の仕方に問題ありますか?

647 名前:ひょこたんだお(^ω^ ◆E9k1wjKgHI mailto:age [2007/03/21(水) 16:21:36 ]
ごめんなすm(^ω^#)m

static Class forName(String className)

の使い方がわかんなひ(;ω;)おっおっお
簡単なソースをいくつかキボンヌッ
(#^ω^)ノたのんだうお

648 名前:デフォルトの名無しさん mailto:sage [2007/03/21(水) 16:43:35 ]
>>644
必要なものを明示的に指定するという観点から、
ワイルドカードは使えないんじゃないのかねぇ。

java.sun.com/javase/ja/6/docs/ja/technotes/guides/jar/jar.html#Main%20Attributes
使えるとは書いてない。使えないとも書いてない。


649 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 03:33:29 ]
>>647
ここの
ttp://blog.goo.ne.jp/akubi_2005/m/200601

Mainクラスがいっぱいの時
にソースがあった。

650 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 10:34:01 ]
独学で苦戦している超初心者です。
自分でもいろいろ調べてみたのですが、困り果てて皆さんのお力に頼ることになりました。
今、コマンドラインに数字を一行で 10,24,35,40 のような形で入力させてそれぞれの数字を表示させるものを作っているのですが、コンパイルをして実行までは出来るのですが、数字を入力したあとにエラーが出ます。
エラーメッセージをググってみたのですが、検索には引っかかるものの「これだ!」というものが見つからなかったのでココに質問させていただきました。
以下にコードの一部とエラーメッセージを記載します。
public static void main(String[] args) throws IOException {
int input[];

System.out.println("数列はカンマ区切りの文字列で入力してください。");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
String numbers[] = str.split(",");

int i=0;
input = new int[i];
while(i < numbers.length){
input[i] = Integer.parseInt(numbers[i]);
System.out.println(i + "つめは" + input[i]+ "です。");
i++;
}

}

以下エラーです。
java.lang.ArrayIndexOutOfBoundsException: 0
at Test.main(Test.java:28)
Exception in thread "main"
*ココでいう28というのがコードの28行目であれば
input[i] = Integer.parseInt(numbers[i]);が28行目にあたります。

どなたか、お助けください。

651 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 10:39:17 ]
> int i=0; 
> input = new int[i]; 
だれが見てもここだ



652 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 10:40:31 ]
>650
右辺の numbers[i] ではなく、恐らく input[i] から出ている例外かと。

int i=0;
input = new int[i];

この時点で input[] の要素数はゼロになっているが
それ以降 input[] の要素数を増やしていない以上 input[] の要素数はゼロのままだ。

input = new int[i];



input = new int[numbers.length];

にしてみたら?

653 名前:650 mailto:sage [2007/03/22(木) 11:07:57 ]
>>652
どうもありがとうございます!解決しました!
答えだけでなく、どこがどのように間違っているかまで答えていただいて
大変勉強になりました。


654 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 13:47:44 ]
これってどうよ?
ja.wikibooks.org/wiki/Java


655 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 14:13:36 ]
>>654
個人的には、「Javaをはじめよう」以下は要らないような気もする。

char が -32768〜32767になってたり、
「リファレンス型というのは、クラスのことです」とか、間違いもちらほらあるし。

文法とかは、JLS へのリンク貼って終わりで良いとか、
入門者用のコンパイル手順を示すんなら、テキストでやるより
flash movie とかでやった方が親切なんじゃないか、と思ったり思わなかったり。
wikibook に flash 置けるのか知らんけど。

656 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 15:35:54 ]
>>514
おやおや? Java家電時代の到来か?

将来は、Javaで家電制御を企んでいるのかねー? Jiniかねー?



657 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:43:49 ]
まずはおいしいご飯からお願いします

658 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:45:39 ]
すみませんが、質問です。

HttpServlet のソースコードは、どのソフトに含まれているのでしょうか?
たぶんTomcatにあるのだろうと思っていたのですが、うまく見つけられません。
利用中のTomcat は4.1です。


659 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 17:59:27 ]
質問です。
HTTP Get のクエリ文字列から、パラメータ名とその値の組み合わせの集合を取
得するには、どうしたらいいでしょう?


660 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 18:18:15 ]
>>658
classならcommon/lib/servlet-api.jarの中。ソースは入ってないよ。

661 名前:658 mailto:sage [2007/03/22(木) 18:37:21 ]
>>660
> classならcommon/lib/servlet-api.jarの中。ソースは入ってないよ。

ありがとうございます。ソースはどこで手に入るのでしょうか?
オープンソースですから、どこかで配布はしているはずなのですが。

実は>>659も私なのですが、以下の処理の参考にしたかったのです。
目的:URL文字列からクエリパラメータを手動で取り出す

URL文字列を与えられて、
String url = "www.youtube.com/watch?v=pd74BKx0x-w";
ここからクエリ文字列を取り出し、
String qstring = new URL(url).getQuery();
//qstring = "v=pd74BKx0x-w"

ここまではできるのですが、それをパラメータと値に分解する方法が分かりません。
正規表現などで愚直に分けるしかないのでしょうか?
何か既存のAPIがあるのではないかと思うのですが。




662 名前:デフォルトの名無しさん mailto:sage [2007/03/22(木) 18:50:24 ]
>何か既存のAPIがあるのではないかと思うのですが。

request.getParameter( "v" )で一発だ。

ソースではなくAPIドキュメントを利用するのがJavaでは普通。
sdc.sun.co.jp/java/docs/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/ServletRequest.html
sdc.sun.co.jp/java/docs/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/http/HttpServletRequest.html

663 名前:658 mailto:sage [2007/03/22(木) 19:06:03 ]
>>662
ありがとうございます。
HttpServletRequestは与えられていなくて、ただURL文字列だけがあるのです。
だから「手動で」取り出す必要があります。
説明不足ですみません。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<251KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef