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


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

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



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

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

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

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

654 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 11:04:42 ]
甘かったというよりは後発がより優れているのは当然。
後発で先発と同じ失敗をしたらたたかれるだろw

655 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 11:21:57 ]
C# に typedef がないのは(ry

656 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 11:45:28 ]
>>652
> override があればその危険性を排除できる。
うっかりoverride付け忘れの危険性もあるわけで、どっちもどっちじゃね?

まぁ、普通は警告見れば気付くだろうけど
それ言ったら「意図しないオーバーライド」も相当間抜けな話だし。

657 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 11:52:28 ]
>>652-656
オマエら他所いってやれ

658 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 12:17:17 ]
>>657
技術屋って上級者ほど空気読めないよな

659 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 12:47:39 ]
たまたま話の流れがそれでヒートしただけでは・・・

660 名前:デフォルトの名無しさん [2007/06/19(火) 13:20:48 ]
JAVAやってみたいがEclipseをIDEに使う場合
他に何を入れればいいかが判らない
J2SEいれてそれでOK?
JavaSwingとかはJ2SEに一緒に入ってるの?

661 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 13:32:02 ]
>>660
J2SEも含めて何もいれる必要はない。
しいて言えば、基本APIドキュメントの日本語版程度。

662 名前:デフォルトの名無しさん [2007/06/19(火) 13:45:21 ]
>>661
レスサンクス
逝って来る



663 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 13:56:05 ]
>>656
override がないとエラーなんすけど・・・

664 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 15:00:24 ]
>>663
今のところJavaではオーバーライドするのにoverrideなんてものは要らん
他の言語の話なら他所でやってくれ

665 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 15:35:47 ]
つーか
>するとSpecialHogeのAssertValidはあとから追加されたHogeの同名メソッドをオーバーライドしてしまって

こうなる前にまず、リファクタリングでスーパーのメソッドに移動してると思うんだが。
ただの不注意、誰でもあるからどうしようもない。

666 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 15:51:39 ]
現実的に起こりえるのは、オーバーライドしちゃいけないメソッドをオーバーライドしちゃったというケースだからね。
finalがあるのでこれを防ぐってのがJavaの設計思想なわけだ。
orverrideと書かなきゃオーバーライドできないってのもありだけど、ダメと言っているのにオーバーライドする馬鹿がいるとしたらJavaのが優秀w

667 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 16:04:04 ]
>>663
> 10.2.2 The new modifier
> A class-member-declaration is permitted to declare a member with the
> same name or signature as an inherited member. When this occurs,
> the derived class member is said to hide the base class member.
> Hiding an inherited member is not considered an error,
> but it does cause the compiler to issue a warning.

668 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 22:45:34 ]
>>667
エラーだろうが警告だろうが上の文脈では本質的に同じだろう。
つかさすがにそれはスレ違い

669 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 22:53:36 ]
javaってC#のnewオーバーロードに相当する機能はないの?

670 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 22:55:21 ]
>>667
いや、>>656は区別してるから文脈上は別。
区別できてなかったら>>663がアホなんだろ。

っつか、スレ違いならレスつけるな

671 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 22:56:11 ]
>>669
newオーバーロードが欲しいケースって、どんなケース?

672 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 23:00:55 ]
Charset charset1 = Charset.forName("SJIS");
CharsetDecoder decoder = charset1.newDecoder();
ByteBuffer bb = ByteBuffer.wrap("a".getBytes());
System.out.println(decoder.decode(bb).toString());

先生・・・aが表示されんとです・・。



673 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 23:10:36 ]
>>672
1.6以降だと表示される。1.5、1.4だと駄目だったと思う。

bugs.sun.com/bugdatabase/view_bug.do?bug_id=6196991
が原因。CharsetDecoder#decode(ByteBuffer) のバグ。

674 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 23:13:21 ]
>>672
2文字(ab)以上でないとダメみたい

675 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 23:21:57 ]
>>672
1.4でソース読んでみた。
0.5(平均バイト) × 1(バイト) が 0になる為、1バイトは無視されるバグだった。

676 名前:669 mailto:sage [2007/06/19(火) 23:24:21 ]
>>671
すまん変な表現だった
C#では、派生クラスでnewキーワードを使ってスーパークラスと同じシグネチャの
メソッドを定義して、スーパークラスのメソッドを隠してしまえるの。
オーバーライドとは違って、派生クラスのオブジェクトをスーパークラスの
オブジェクトとして扱えば、スーパークラスに定義されたメソッドが呼び出される。
newを付けなくても動作は同じなんだけど、コンパイラで警告が出る。
こんな感じ
class A{public virtual void Method();}
class B : A{public new void Method();//オーバーライドするときはnewじゃなくてoverride}

677 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 23:26:43 ]
>>676
それは知ってる。

で、具体的にどんなケースで必要になるの?って質問なんだが。

678 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 23:54:05 ]
デリゲートだっけ?そういうのがないjavaだと困らんような。
公開フィールドに突っ込まれたクロージャは将来困るかも知れんが。

679 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 23:56:54 ]
> 公開フィールドに突っ込まれたクロージャは将来困るかも知れんが。
???

680 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 04:15:12 ]
どんな場合に使うかも知らずに「知ってる」って…w

681 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 08:30:14 ]
使われたくないスーパークラスのメソッドを隠す
publicをprivateにするのも可
インターフェイスの明示的実装とあわせて、
継承を繰り返したりインターフェイスを多数実装したクラスが
継承メンバだらけでぐちゃぐちゃになるのを防ぐ機能だよ
さすがにスレ違いだなすまん

682 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 09:22:42 ]
>>681
> 使われたくないスーパークラスのメソッドを隠す
> publicをprivateにするのも可

> 3.7 Scopes
> The scope of a name is the region of program text within
> which it is possible to refer to the entity declared by the name
> without qualification of the name.

> 3.7.1 Name hiding
> The scope of an entity typically encompasses more program text
> than the declaration space of the entity. In particular,
> the scope of an entity may include declarations that introduce
> new declaration spaces containing entities of the same name.
> Such declarations cause the original entity to become hidden.

> 7.3 Member lookup
(中略)
> First, the set of all accessible (§3.5) members named N
> declared in T and the base types (§7.3.1) of T is constructed.
> Declarations that include an override modifier are excluded from the set.
> If no members named N exist and are accessible,
> then the lookup produces no match, and the following steps are not evaluated.



683 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 09:37:12 ]
続く

> Next, members that are hidden by other members are removed from the set.

だけど、これは(集合内の)他のメンバによって隠ぺいされるメンバは集合から削除される、なんだろな。

684 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 18:21:04 ]
基底クラスでpublicになってるのを派生クラスでprivateにするのはC#でも無理だな
派生クラスで基底クラスが実装してるものと同じインターフェイスを実装しなおしたいとか、
インターフェイスを実装したいけど、そのメンバが
基底クラスのメンバと名前が被ってるとかいうときに使う

685 名前:デフォルトの名無しさん [2007/06/20(水) 19:51:32 ]
くだらない質問ですいません。
int b=1;
int c=0;
int d=b---c;
これは解釈の仕方ではインクリメント演算子にもなるし、
デクリメントにもなると思います。この場合はデクリメント演算子と
解釈して計算するそうです。なぜそうなるのでしょうか?
人間がこういう場合はこうすると決めたことなのでしょうか?

686 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 19:56:38 ]
むしろどう解釈したらインクリメントになるのか教えてほしい

687 名前:デフォルトの名無しさん [2007/06/20(水) 20:00:48 ]
すいません、間違えました。前置演算子として解釈するのか
後置演算子として解釈するのかでした。

688 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 20:13:49 ]
左から判定していくんじゃねーの

689 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 20:15:12 ]
>>685
C言語は解釈順が決められていないが
Javaは前から評価していくと決まっていて、
単項演算子は、2項演算子の-よりも優先度が高いから
d = (b--) - c
じゃないのか?
ttp://www.y-adagio.com/public/standards/tr_javalang/15.doc.htm#4779

690 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 20:30:46 ]
>>689
そのURLに書いてあるのは値の評価順のことでしょ
構文解析の話題とはまったく関係なくない?


691 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 20:42:20 ]
>>689
www.y-adagio.com/public/standards/tr_javalang/3.doc.htm#95504
> Javaは,他の字句変換を行えば文法的に正しいJavaプログラムが生成される場合でも,
> 各段階で(トークンの)最長可能変換を常に使用する。例えば,入力文字a--bは,
> a,-,-,bとトークン切出し(3.5)すれば,文法的に正しいJavaプログラムの一部となるが,
> 文法的に正しくないa,--,bにトークン化される。

692 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 21:09:26 ]
>>681
つリスコフの置換原則



693 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 21:25:57 ]
eclipseのVisual Editorでswingを使ったGUIプログラムを作りました(main()はなし)
eclipse上からはメニューからJava Bean実行を選ぶだけで実行出来るのですが、
コマンドプロンプトや他のPCから実行したい場合どうすればよいのでしょうか?


694 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 21:28:45 ]
エントリポイントないのにどうやって実行するんだ?

695 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 21:32:05 ]
>>693
いったい何を言っているんだ・・・
mainメソッドを記述したクラスを作って実行すればいいじゃないか?

696 名前:デフォルトの名無しさん [2007/06/20(水) 21:38:00 ]
685です。回答ありがとうございました。
ホームページを見たのですが、勉強不足で理解できませんでした。
いろいろ自分で調べてわかるようにしたいと思います。

697 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 21:47:18 ]
「左から順に解析される」
「複数の解釈が可能な場合は常に長い方が採用される」

この2点だけおさえておけばいい。
あとは理解力の問題だ。

「この条件で自分で解析するとしたらどうなるだろうか?」
というのを実際に紙にでも書いて考えてみれ。

698 名前:デフォルトの名無しさん mailto:sage [2007/06/20(水) 22:30:54 ]
見てすぐに理解できないコードは実務では不要
言語研究とか趣味ならいいが。

699 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 04:52:42 ]
String hoge = fuga.split("regex");
if(hoge.length >= 3 && hoge[2].equals("hage")){
}
みたいに書いたときにIndexOutBoundみたいなException出る心配はないですよね


700 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 05:21:26 ]
>>699
IndexOutOfBoundsExceptionが出る心配はない。
その前にコンパイルエラーが出る。

701 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 05:24:45 ]
つ String[] hoge =
配列の要素数をチェックしているからhoge[2]でインデックス範囲外アクセスの例外は出ないよ

702 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 05:38:31 ]
>>700
すみません typo です

String[] hoge = fuga.split("regex");

と解釈してください



703 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 05:39:57 ]
必ず左から評価されると決まっていない場合は
ifを2行に分ける必要があるんだけど
Javaの場合は大丈夫だお

704 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 07:39:28 ]
// さっき知ったJadが凄過ぎて感動して耳から鼻くそが出てきそう

705 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 08:35:10 ]
if(hoge.length >= 3 & hoge[2].equals("hage")){
}
だとショートサーキット評価が行われないから、
hoge[2]が無ければArrayIndexOutOfBoundsExceptionが投げられる。

706 名前:デフォルトの名無しさん [2007/06/21(木) 10:39:34 ]
送信ボタンを押しても、反応しません・・。
どこか、間違えていますか?
初心者なので、ご指摘・修正の方を宜しくお願いいたします。

i-get.jp/upload500/src/up5912.txt

707 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 11:12:52 ]
>>706
JButton button2
コンストラクタの中で定義しているローカル変数のbutton2とインスタンス変数のbutton2の名前が衝突しているのが原因。
解決方法としては、コンストラクタの方の
 JButton button2 = new JButton("送信"); /* 送信ボタン */

 button2 = new JButton("送信"); /* 送信ボタン */
とする。
それだけだとぬるぽが起こるガッ、原因は同じ。

708 名前:デフォルトの名無しさん [2007/06/21(木) 11:18:48 ]
>>707
ご回答ありがとうございます!
修正をさせて頂きましたが、ぬるぽが発生します。
ぬるぽを防ぐにはどの様に修正した方が良いでしょうか?
色々とぐぐったのですが、初心者なので良く分かりませんでした。
質問ばかりですみません・・。

709 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 11:29:23 ]
>>708
原因は一緒だといってるだろうガッ
解決した理由を考えなければ、貴様は何度も同じ質問をする。

710 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 11:33:52 ]
Java最強!?
pc11.2ch.net/test/read.cgi/tech/1182390759/

711 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 12:05:45 ]
>>705
ぬるぽじゃないの?

712 名前:711 mailto:sage [2007/06/21(木) 12:23:10 ]
あ、ああああ。すません。演算子見てませんでした。



713 名前:デフォルトの名無しさん [2007/06/21(木) 17:08:38 ]
StreamTokenizer って指数形式の浮動小数点数を数値として読み取ってくれないのですか?
読み取らせるにはどうしたらよいでしょうか。

714 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 20:29:36 ]
JDBCでMySQLにデータ追加するプログラムを作っているのですが、
eclipseで実行するとデータ追加出来るのに、JavaWebStartで実行するとできません。
ドライバか何か設定してやらないといけないのですか?

715 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 20:37:51 ]
エスパーさーーん出番ですよー

716 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 20:41:42 ]
-classpath

717 名前:デフォルトの名無しさん mailto:sage [2007/06/21(木) 23:31:34 ]
エスパーしても要求するライブラリインスコさせてないとかセキュリティマネージャとか色々ありすぎる。

718 名前:618 [2007/06/22(金) 00:58:49 ]
>>619
ありがとう
答えは、VK_F1でOKでしょうか?

なんかjava.awt.event.KeyEvent
の説明にあった、「定数の値に頼らないでください」の注意書きがよくわからなかったのですが…



719 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 01:19:13 ]
定数と比較する時に数値リテラルを使うなって事。

final byte COLOR_RED=127;
と定義されてるからと言って

//赤の場合
if(getColor() == 127) System.out.println("赤です。")

と書かない。実装がいつ変更されるか分からないから。
言い方変えると実装に依存するなと言う事。

720 名前:デフォルトの名無しさん [2007/06/22(金) 05:36:26 ]
//赤の場合
if(getColor() == COLOR_RED) System.out.println("赤です。")

これはOK?

721 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 05:51:15 ]
おk

場合によっちゃ型まで変更があるかも知れん。

final String COLOR_RED="#ff0000";

if(getColor()==127)...

こうなったら定数とgetColor()の定義以外にリテラルも変更する必要が出て来てバグを誘発したりする。

公開されてるAPIリファレンスの説明文から分かる情報以上の、たとえばソースコードから
得た情報に依存したコードを書くのは行儀悪い。

722 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 11:11:40 ]
型の変更に対応できるソースなんて書けないだろ
その例だと>>720もアウトだし。



723 名前:デフォルトの名無しさん [2007/06/22(金) 11:30:15 ]
JDialog って、コンストラクタで作成した後で、
オーナーを変更することはできないのですか?

724 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 11:59:39 ]
>>723
作成した後に変える必要があるのですか?
新たにnewすることはいけないことですか?
専用のPanelを作成することはできないのですか?
特定の用途であれば、それぞれのパネルを保持すればよいのではないですか?

725 名前:723 [2007/06/22(金) 12:54:17 ]
すいません、質問を変えます。
やりたいことは、JOptionPane みたいに、
Component を受け取って、その親の Frame または Dialog を
オーナーとするダイアログを作成したいんですが、
JDialog のコンストラクタが Frame または Dialog しか受け付けないので、

class SomeDialog extends JDialog {
 public SomeDialog(Component comp) {
  super(comp); // これはできない。
 }
}

はうまくいきません。

super(SwingUtilities.windowForComponent(comp));

これも、JDialog のコンストラクタが Window を受け付けないので、だめです。

instance of で Window が Frame か Dialog かの判定はできますが、
super はコンストラクタ内の最初に呼び出さなければいけないので、これもできません。

何かいい方法はないでしょうか?

726 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 13:38:21 ]
作成側でownerに対する参照を持っているべきだと思うな。
使い分けはオーバーロードしておきゃOK

class SomeDialog extends JDialog {
 public SomeDialog(Dialog owner) {
  super(owner);
 }
 public SomeDialog(Frame owner) {
  super(owner);
 }
}

727 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 13:41:18 ]
>>725
createDialog みたいなメソッド作って、そこで instanceof して
2種類のコンストラクタ呼び分けるしかないのでは?

1.6以降なら JDialog のコンストラクタが Window も引数にとれるようになってるけど。

728 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 13:42:31 ]
どうしても中で判定したい場合は、次のメソッドを追加。

static SomeDialog createInstance(Component component) {
    if(component instanceof Dialog) {
         return new SomeDialog ((Dialog) component);
    } else if(component instanceof Frame) {
         return new SomeDialog ((Frame) component);
    } else {
throw new IllegalArgumentException() // ?
    }
}


729 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 15:41:46 ]
ローゼンのキャラが解説してるjavaのサイトがあったのですが
どなたかご存知ないですか?
クライアントサーバとかの解説がされているページです。

730 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 19:58:15 ]
クライアントサーバ方式のチャットを作っています。
クライアントがメッセージを受け取り、TextAreaに追加する際
同時にキャレットを動かし最新の発言が見えるようにしています。

これだとログをさかのぼり読んでいる最中に発言があると\(^o^)/オワタなので、
スクロールバーが一番下にある状態に時だけキャレットを動かしたいと思うのですが
どうやってそういう状態を知るのか分からず、実装できません。
助言をください。

以下が現在使っているメソッドです。

public void addMessage(String str) {
messageArea.setText(messageArea.getText() + "\n" + str);

try {
messageArea.setCaretPosition(messageArea.getText().length());
} catch (Exception ex) {
}
}


731 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 20:40:11 ]
>>730
JScrollPane#getVerticalScrollBar()で取得した垂直スクロールバーに対して、
getMaximun()で最大値, getValue()で現在のスクロール量が取れる。
スクロール可能な実際の最大値は、getMaximun()の値から縦の長さ分引いた値になるので注意。
あとは、この辺組み合わせればできるだろ。

732 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 20:50:06 ]
>>730
ttp://blog54.fc2.com/g/grodictionary/file/20061015215500.jpg
図解してみた。



733 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 20:56:09 ]
>>732
グロ画像。今時こんなの貼るやついるんだな。

734 名前:sage [2007/06/22(金) 21:13:49 ]
コマンドプロントにて
javac ファイル名.javaでエンターを押し
コンパイラされて文字が出てくるはずだと思うのですが
何故か出てきません

public class ExerciseD2L1 {
public static void main(String args[]) {
System.out.println("ここに文字いれてます");
}
}

↑間違っていますか?

735 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 21:17:15 ]
コンパイルしただけじゃだめだぞw
後に実行しないと。

>java ExerciseD2L1 エンター

736 名前:sage [2007/06/22(金) 21:27:22 ]
解決できました!
>>735さんありがとうございます><

737 名前:736 mailto:sage [2007/06/22(金) 22:16:59 ]
先ほどのものですが
新しくメモ帳で同じようなものを作ったのですが

public class SampleD2L2 {
public static void main(String args[]) {
System.out.println("文字");
}
}

これでコマンドプロントでjava SampleD2L2 エンターを押しても
Exception in thread "main" java.lang.NoClassDefFoundError:
が出てきます。
・String に == は使うな。equals() を使え。
と書いてありますがそうするとどう書いていけばいいのでしょうか?
ちなみに参考書を買ってやっているのですが
参考書ではjavac ファイル名.java エンターなのですが・・・・
ちなみにどちらをやってもできませんOTL

738 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 22:20:17 ]
>>737
> javac SampleD2L2.java
でコンパイルが成功したら

> java SampleD2L2
で実行。

739 名前:736 mailto:sage [2007/06/22(金) 22:27:13 ]
>>738さんありがとうございました><
無事解決しました

740 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 23:13:03 ]
>>736
読んでいる参考書を晒して欲しい
もしかしたらば、とんでもなく糞本を読んでいるかもしれない。
丸の内なんとかとか・・・

741 名前:デフォルトの名無しさん mailto:sage [2007/06/22(金) 23:28:19 ]
awtコンポーネントとswingコンポーネントを
Frame、JFrame内に共存させてもいいんでしょうか。

試してみたところ不具合は起きませんでしたが、
この先疑問を抱えながら開発するのは不安なので
ご存知の方教えてください。

742 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 00:10:22 ]
不安だったらやめとけ



743 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 00:29:39 ]
うちのPCは家庭用最先端な4コアCPUです。
こういうのはマルチスレッドの処理が速いと聞きましたが、
このスレッドってJAVAのThreadと同じものですか?
Thread使って並列処理するとうちのPCの性能を生かせるのでしょうか?
それとも、JAVAのThreadとは別物なのでしょうか?

744 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 00:34:26 ]
匿名クラスってコンストラクタ定義できないっスよね?

745 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 00:56:02 ]
>>744
できない。

インスタンス初期化子使うかフィールド宣言に初期化子付けるか、そーゆーので代用。

746 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 01:34:28 ]
増えたと思ったらw

>>741
軽量が先、重量が後に描画される。

747 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 02:17:31 ]
>>743
VMの実装によると思われる。
たぶん、凡人が考えるようなことはやっている。

748 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 04:14:36 ]
java.util.concurrent.ExecutorService の中にタスクが残っていなければ shutdown したいんですが、
独自の ExecutorService を作る必要がありますか?

749 名前:デフォルトの名無しさん [2007/06/23(土) 07:41:23 ]
GUIのレイアウトについての質問です。

ウィンドウを左右二つのパネルに分けています。
左のパネルには可能な限り大きな正方形を表示します。
右のパネルには色々な情報を表示します。
左のパネルの横幅は縦幅以上には広がりません、

(1)
ウィンドウが横に広がれば
右のパネルの横幅は変わらず、左のパネルだけが広がります。

(2)
横幅=縦幅の時にウィンドウが横に広がれば
左のパネルは変化せず、右のパネルがだけが広がるようにしたいです。

GridBagLayoutを使い(1)は実現できましたが(2)はどのように実装すれば良いのでしょうか

750 名前:デフォルトの名無しさん [2007/06/23(土) 08:29:27 ]
JDKについているHTMLドキュメントが使い難い・・・不親切だし・・・
スレッドでwait()したらsynchronizedも解除されるなんてリファレンスに書いてないし・・・
勉強中にこんなことで悩んでいたし・・・

751 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 08:38:06 ]
>>750
書いてあるよ。
ttp://java.sun.com/javase/ja/6/docs/ja/api/java/lang/Object.html#wait(long)
>現在のスレッドをこのオブジェクトの待機セットに入れるときに、wait メソッドはこのオブジェクトのロックだけを解除します。

最初は慣れないが、ガンガレ。

752 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 08:47:59 ]
>>751
Σ( ̄ロ ̄lll)
wait(long)じゃなくてwait()のところを読んでいたので気がつかなかった・・・

感謝です



753 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 08:50:42 ]
>>750
sunの開発者向けページにあるチュートリアル見ると幸せになれるよ。
sunのjavadocは完全に公開仕様な部分しかふれてないから
実装よりの事は伏せてある(リスナが呼ばれる順に依存しちゃダメな理由とか)。
外部プロジェクトから取り込んだライブラリのドキュメントと見比べると
コピペだって事が分かる。javadocの方針は仕様のみ書けって事だからそういうもんなんだろ。
ただ、そのコピペが所々間違えてるんでチュートリアルとかガイドをちゃんと読んだ方が良い。


754 名前:デフォルトの名無しさん mailto:sage [2007/06/23(土) 08:57:40 ]
>>753
ここですか?
jp.sun.com/developers/individual.html






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

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

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