トップページ⇒tech
1001コメント308KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
JAVA初心者の方はこちらのスレで質問をしましょう。そして誰か教えてあげてください。

なお、ソースを貼るときには、半角空白が消える仕様のため、タブ1つを全角空白2つに
置換してから投稿しましょう。わからないときはどこがどうわからないのか?、動かな
いときはどこがどう動かないのか?なぜそう判断したのか、エラーメッセージや結果な
どと一緒にお書き下さい。雑誌や宿題などの疑問を質問するときは出展を明記したほう
が解決が早いです。

関連情報は >>2-10 あたりにあります。 (一部 dat落ちやHTML化待ち)


JavaScriptの質問はWeb製作板へどうぞ。
web制作管理
http://pc.2ch.net/hp/

パソコンの基本操作に関しては、PC初心者板や、各OS板などで質問しましょう。
パソコン初心者@2ch掲示板
http://pc.2ch.net/pcqa/

上級者の方で教える技術が無い方は下記スレでダベりましょう。
初心者無視! Java相談室 その9
http://pc3.2ch.net/test/read.cgi/tech/1021555964/


基本的にsage進行でおねがいします。また煽り厨は放置でお願いします。
http://pc.2ch.net/tech/kako/1026/10266/1026601774.html
0552デフォルトの名無しさんNGNG
sonnnayatuinai
0553デフォルトの名無しさんNGNG
XPだめじゃーん。
0554デフォルトの名無しさんNGNG
せめて、メモ帳使えよ。

コーディング→メモ帳(javaファイル)
コマンド入力→メモ帳(cmdファイル)
0555551NGNG
何使ってるの?!
0556551NGNG
コマンド入力もメモ帳でやるの?じゃあなにからなにまで
手動ってこと?
0557デフォルトの名無しさんNGNG
>551-556
ジサクジエンデスタ。
0558551NGNG
ではないです。
どうなんすか?
0559デフォルトの名無しさんNGNG
>>500
C++もJavaも同じだけど、言語仕様・文法を覚えただけで
その言語を習得したと思ったら大間違いだよ。
C++もJavaも膨大なクラスライブラリがあってこそ。

クラスライブラリを暗記する必要はないんだけどさ、
「たしかこんな機能をもったクラスがあったはずだ…」っていう
感覚を身に付けるのには、それなりに時間と経験が必要だと思う。

で、クラスライブラリの知識に関しては 他言語(C++)の経験はあまり役に立たないから
C++の経験があってもさほど意味なし。Javaの文法覚えるのが楽になるだけ。
0560500じゃないんだけどNGNG
>>559
語尾が疑問符で真意の程は定かではないレスに対して、
そんな常識ならべたてられてもねぇ
0561デフォルトの名無しさんNGNG
>>556
プロンプトメインの場合はね。
とりあえず、プロンプトだけでプログラミングはしない。
エディタも使う。

でも普段はeclipse使ってる。
0562デフォルトの名無しさんNGNG
double型の数値を1桁ずつchar配列に入れるにはどのように書けば良いんでしょうか。
0563デフォルトの名無しさんNGNG
>>562
Cでいう、sprintfみたいなことをしたいということ?
0564562NGNG
>>563
1000桁区切りで,(カンマ)を入れるメソッドを作ろうとしてます。
0565デフォルトの名無しさんNGNG
>>562
Double.toString(dbl)
で得た文字列を適当に処理したら。
0566562NGNG
>>565
ラッパークラスか。サンクス子
0567デフォルトの名無しさんNGNG
>>564
\100,000みたいな感じにしたいなら、
java.text.NumberFormatと、そのstaticメソッドgetCurrencyInstance()を
調べることをお勧めする。
0568デフォルトの名無しさんNGNG
>>562
http://java.sun.com/j2se/1.4/ja/docs/ja/api/java/text/NumberFormat.html
0569デフォルトの名無しさんNGNG
メモ帳とコマンドプロンプトか。痴呆としか思えんな(藁
0570デフォルトの名無しさんNGNG
>>569
まあまあ(w
スレタイに初心者大歓迎なんてあることだし、こういうことはままあることかと
0571デフォルトの名無しさんNGNG
meadow上でコマンドプロンプト(cmd.exe)動かせば、編集もコピペも自由自在ですよ!
0572562NGNG
>>567-568
Javaでは無いと思ってたけどあったんですね…。
ありがとうございます。
0573デフォルトの名無しさんNGNG
とりあえず反応するけど・・・

XPでプロンプト使ってる・・・と質問されたのでメモ帳とプロンプトと答えた。
何か不都合でもありますか?

上でも書いたが普段はeclipseを使っている。

>>569の発言の意図がつかめません。

XPのコマンドプロンプトでJavaプログラムしている方、途中まで
コマンドプロンプトに書いたものってどうやって保存するんですか?

に対して「JBuilder使ってる」とでも答えろと?
アホ云々言う前に少しは頭使え
0574デフォルトの名無しさんNGNG
FontMetricsクラスのgetMaxDecent() 推奨されなくなった。
decentを英和辞典で調べてみたら...

ミススペルかよ
0575デフォルトの名無しさんNGNG
XPのプロンプトというなら
「簡易編集モード」の話じゃないの
http://pcweb.mycom.co.jp/special/2002/xpcommand/01.html
0576デフォルトの名無しさんNGNG
Stringクラスで、日本語文字を2バイトとして返すにはどうすれば良いのでしょうか。

String s = new String("あ");
System.out.println(s.getBytes().length);

だと1バイトに…。
0577デフォルトの名無しさんNGNG
>>576
ところでエンコーディングは何にしたいの?
0578576NGNG
>>577
Shift_JISです。
0579デフォルトの名無しさんNGNG
>>576
うちでは2バイトになったけど。

>String s = new String("あ");
とりあえず、これ禁止。
String s = "あ";
0580デフォルトの名無しさんNGNG
>>579
(・ε。・)え〜?禁止ってほどのことなの?
0581デフォルトの名無しさんNGNG
だって無駄じゃん
0582576NGNG
>>579
一度バイト配列に入れたら上手くいきました…。

String s = "あ";
byte[] mb = s.getBytes();
System.out.println(mb.length);

>とりあえず、これ禁止
new String() 指定だとパフォーマンスが落ちるんでしょうか。
0583デフォルトの名無しさんNGNG
>>582
>>258-290を参照
0584デフォルトの名無しさんNGNG
>>580
PCやサーバで動かすならほとんど実害はないわな。
いいことも一つもないが。
組み込みや携帯なら禁止されてもおかしくない。
0585デフォルトの名無しさんNGNG
たびたび質問ばかりで申し訳ないが、
awtのTextFieldで、文字の入力を
挿入モードじゃなくて上書きモードに
する方法を教えて欲しい。

さんざんググったし、本屋で立ち読み
しまくってきたが、ついに精魂尽き果てた。
0586デフォルトの名無しさんNGNG
String[1024] with new String ()s takes 45072 bytes
String[1024] with ""s takes 4112 bytes
0587デフォルトの名無しさんNGNG
>574
Cloneableも非推奨になるかもしれないとか・・.
0588デフォルトの名無しさんNGNG
>>585
自力で上書きモードを自作する以外の方法が思いつかない。
TextFieldのTextEventが起きたときに文字の追加があるかどうかを調べて、
もしあれば追加された場所の1文字を削除するとか。
「文字の追加があるかどうか」を知るには、TextFieldの外部にテキストを持たないと
いけないなあ。追加された場所はTextComponent#getCaretPosision()でわかりそうな
気がする。
0589585NGNG
>>588
なるほど、ありがとうございました。
TextFieldで[Insert]キーを押しても
なにも起きない点で、イヤな予感がしたが
その方法しか無かったとは。
0590デフォルトの名無しさんNGNG
KeyEventで作ってみた。これは面倒だなー
      field.addKeyListener (new KeyAdapter () {
        public void keyTyped (KeyEvent ev) {
          final char c = ev.getKeyChar ();
          if (!ev.isActionKey () && Character.isLetter (c)) {
            ev.consume (); // 処理を奪う
            final int loc = field.getCaretPosition ();
            final StringBuffer buf = new StringBuffer (field.getText ());
            buf.delete (loc, loc + 1);  // deleteCharAtと違って例外なし
            buf.insert (loc, c);
            final String edited = buf.toString ();
            field.setText (edited);
            field.setCaretPosition (loc + 1);
          }
        }
      });
0591デフォルトの名無しさんNGNG
JEditorPane.setPage()でyahooとか指定すると(というかどこを指定してもほとんど)
例外がビシバシ発生するんですけど、これってJEditorPaneのバグ?

JDK1.4 / JEditorPane.setEditable(false)してます
0592デフォルトの名無しさんNGNG
JAVA初心者です。
VCのような統合環境というか、ブレーク・ステップ実行等
の機能のあるソフトってのはないんでしょうか?
デバッグは大変ではないですか?
0593デフォルトの名無しさんNGNG
>>592
jdb使ってもいいし。
この間、仕事で VisualAge for Java つかった。
重すぎるけど、ユーザインタフェースはまとも。
0594デフォルトの名無しさんNGNG
>>593
情報ありがとう。
あるのはあるんですね。

さっき検索してVisualAge for Javaの値段にはちょっと
驚いてしまった
0595デフォルトの名無しさんNGNG
eclipse か fire & ice
0596デフォルトの名無しさんNGNG
>>592
Eclipse のデバッグ機能が軽くて使い勝手が良いのでお勧め。

すんません、X11 積んでない鯖で JPEG の縮小と GIF 変換したいんですけど
何か良い方法は無いでしょうか? デジカメ画像のアルバム的うpろーだーで
i-mode, J-SKY 用の画像 (ついでに PC 用サムネール) を鯖側で作りたいん
ですけど。
0597デフォルトの名無しさんNGNG
>>596
JDK1.4 なら、-Djava.awt.headless=true
それ以前なら、XFree86-Xvfb いれればいい。
0598デフォルトの名無しさんNGNG
>>591
ほんとだ。なんかものすげー事になってる。
0599デフォルトの名無しさんNGNG
こんな調子で何度も。表示するコンポーネント側の問題に見えるが。
それにしてもコールスタックが深いなー。
java.lang.NullPointerException
        at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:2744)
        at sun.awt.image.ImageRepresentation.drawToBufImage(ImageRepresentation.java:758)
        at sun.java2d.pipe.DrawImage.scaleImage(DrawImage.java:756)
        at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:2752)
        at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:2705)
        at javax.swing.text.html.ImageView.paint(ImageView.java:363)
        at javax.swing.text.BoxView.paintChild(BoxView.java:144)
        at javax.swing.text.BoxView.paint(BoxView.java:407)
        at javax.swing.text.BoxView.paintChild(BoxView.java:144)
0600デフォルトの名無しさんNGNG
Win(Me) + JDK1.3.1 です。

Component を継承して update(Graphics g) を override しましたが、
repaint() 時にこのメソッドが呼ばれず、強制的に画面がフラッシュします。
#Canvas を継承すると自前のメソッドが呼ばれますよね。
これは仕様ですか?
0601デフォルトの名無しさんNGNG
クラス・ライブラリについて教えてください。
javax.servletってSEのAPI仕様に説明されてないですよね。
でもJDKのSEでjavax.servletを使ったものもコンパイルできますよね。
ライブラリはどのような構成になってるのでしょうか?
0602585NGNG
>>590
フォントは等幅フォントに限るとしても、入力された
文字が全角文字(って言い方も古くさいな)だった場合
とか、いろいろ考えるとかなり面倒。

まあ、地道にチマチマ実装していくしかないか。
サンプルコードありがとう。
0603U ◆tFsGiu0c NGNG
>>601
それはservlet.jarとかj2ee.jarとかがクラスパスに入っているからじゃないの?
少なくともrt.jarには入っていないよ。
0604デフォルトの名無しさんNGNG
JAVAアプリを単一のexeファイルにするにはどうすれば?
0605デフォルトの名無しさんNGNG
できない。
なぜならJAVAだから。
0606デフォルトの名無しさんNGNG
商用でいくつか exe にするプログラムが売ってるよ。
gcc でも出来なかったっけ?
0607デフォルトの名無しさんNGNG
バッチをexeにしる
0608592==594NGNG
>>595-596
Eclipse、fire & iceですね。サンクスです。
早速DLさせてもらってます。
0609デフォルトの名無しさんNGNG
んで?結局JEditorPaneってバグバグって結論でよいのかな?
JDK1.4.1でこんな状況だけど、もっと前のバージョンでは大丈夫なのか?
それとも回避する手段がある?
0610デフォルトの名無しさんNGNG
Javaは
あんまりネガティブな意見は嫌い。
0611デフォルトの名無しさんNGNG
定数をどのクラスからも使えるようにしたいんだけど、
どうしたらいいですか?
0612デフォルトの名無しさんNGNG
その質問は
Javaにとっては禁句。
0613デフォルトの名無しさんNGNG
>>611

staticにしる
0614デフォルトの名無しさんNGNG
>>613

間違えた。public staticにしる
0615デフォルトの名無しさんNGNG
>>612
611へのレスですか?
理由を知りたいです。!
0616不明なデバイスさんNGNG
Javaのコンパイラは何がいいですか?
0617デフォルトの名無しさんNGNG
javacがおすすめ。
0618デフォルトの名無しさんNGNG
J Builderってどうよ?
0619デフォルトの名無しさんNGNG
JうんこBuilder
0620デフォルトの名無しさんNGNG
>>614
定数ってんだから public static final にしとけよ…
0621デフォルトの名無しさんNGNG
JavaのSDKには文字列を暗号化するクラスはないのれすか?
あったら使い方教えてください
0622デフォルトの名無しさんNGNG
配列って動的割り当てできないですよね?
0623デフォルトの名無しさんNGNG
>>622
Javaのオブジェクトは動的割り当て<しか>できないが、
それは何か可変長配列の事をいっておるのか
0624デフォルトの名無しさんNGNG
>>623
ごめんなさい。Cみたいに確保とか開放を自分で指定して
ってことです。できますか?
0625デフォルトの名無しさんNGNG
>>621 お前、調べてないな。ぐぐったら一発だったぞ
0626デフォルトの名無しさんNGNG
>>624
だから、確保はnewで普通にできるだろ。
int[] array = new int[123];
参照が切れればそのうち解放されるっての知らないのか?
System.gc()すればたいてい時期が早まることになってるが
0627デフォルトの名無しさんNGNG
>>626
そうでした。忘れてましたnewで確保。
あんまり勉強してないので開放も何か
あるのかなって思って聞きました。すいません。
ありがとうございました。
0628デフォルトの名無しさんNGNG
> あんまり勉強してないので

なんか支離滅裂だな。大丈夫か
0629デフォルトの名無しさんNGNG
StringTokenizerで文字を区切っているのですが、文字がない部分を
トークンとして判断してくれません。(あたりまえかもしれません)
a,b,c,,,dと言う文字で,,,も部分も""で処理したいのですが、
方法はありますか?
0630U ◆tFsGiu0c NGNG
>>621
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/security/jce/JCERefGuide.html
0631デフォルトの名無しさんNGNG
「1.4.1 FCS がリリースされました ! 」
http://java.sun.com/j2se/1.4.1/ja/

と、いうことなのですが "FCS" って何の略なんでしょうか?
0632デフォルトの名無しさんNGNG
http://java.sun.com/products/jdk/rmi/archives/1216.html

それよりもダウンロードが途中で終わっちゃいます。
ミラーはないのかな・・・
0633デフォルトの名無しさんNGNG
>>631
767 :デフォルトの名無しさん :02/09/17 16:49
とは書き込んだものの、FCSってどういう意味?
RCはRelease Candidate、リリース候補、
つまり製品候補、最終候補のような意味だと判ったけど、
FCSはgoogleしても見つからなかった・・・・鬱

768 :デフォルトの名無しさん :02/09/17 16:58
>>767
First Customer Shipment。

って1.4.1出たのか。

769 :デフォルトの名無しさん :02/09/17 17:09
>>768
ありがとう。
敢えて訳すと「最初の顧客向け出荷品」になるんでしょうかね。
http://pc3.2ch.net/test/read.cgi/tech/990949654/766-769n

だそうです。
0634デフォルトの名無しさんNGNG
自分で作ったJavaプログラムを実行したときに一度Win2kがフリーズして、
なにかJavaの起動に必要なファイルか設定を壊してしまったようなのですが、
よくわかりません。
それ以降、ウィンドウを出すJavaプログラム(いままで動いていたもの)全部の
起動時にWin2kがとまるようになりました。(コンソールだけのものは無事)
reとsdkを一旦アンインストールしてから入れなおしたんですが、事態が改善しません。
OSから入れなおさなきゃ直りませんか?
1.4.1rcです。
0635デフォルトの名無しさんNGNG
>>632,633
ありがとう、分かりました。
633氏紹介のスレは未見でした、今からちょっと見てきます。

0636デフォルトの名無しさんNGNG
最近になってJavaをやり始めたものです。
コンピュータを起動して一回目のコンパイルのとき 
javac foo.java
とやると異様に時間がかかるのですが、こういうものなのでしょうか?

java foo
と実行するときも、一回目は時間が非常にかかります。
0637デフォルトの名無しさんNGNG
>>636
具体的に何分かかるんだよー。
CPUのスペックは?
0638デフォルトの名無しさんNGNG
>>637
何分もはかかりませんけど、数十秒かかるんです。
二回目以降はすぐに終わるのでこういうものなのかと。
0639デフォルトの名無しさんNGNG
>>638
そーゆーもん。
ひょっとするとメモリが めちゃくちゃ少ないのかも?
0640デフォルトの名無しさんNGNG
>>638
マシンスペック(CPU,メモリ)とソースの規模晒してみ。そうでないとなんとも言えん
0641デフォルトの名無しさんNGNG
タイピングソフト作ろうと思うのですが、参考になるようなコード書いて下さい
0642java暦2週間NGNG
class statictics {
int intStaPopulation[] = new int[2];
intStaPopulation[0] = 3;
}

と打ったところ


']'がありません。
intStaPopulation[0] = 3;
^
<identifier>がありません。
intStaPopulation[0] = 3;
^
シンボルを解釈処理できません。
intStaPopulation[0] = 3;
^
エラー 3 個

というエラーが返ってきてしまい、コンパイルできません。
どこを直せばよいですか?また、その理由を
誰か教えてください。
0643デフォルトの名無しさんNGNG
お前は2週間何をやってきたのかと小一時間(略
0644デフォルトの名無しさんNGNG
さすが阿呆揃いですな。
0645645NGNG
>>644
おまえのがアホやんか
0646デフォルトの名無しさんNGNG
>>642
intStaPopulation[0] = 3;
↑この一行は「実行文」なので関数定義の中にしか書けない。
おぬしのソースには関数定義がない。

int intStaPopulation[] = new int[2];
↑ちなみにこの行は
「staticticsというクラスには
intStaPopulationという名前のメンバー変数があって
その初期値は(int型の大きさ2の配列)である。」

という意味の「宣言文」だから問題がない。

0647java暦2週間NGNG
>>646
ありがとうございますーーーーーーーーーー(まじで感謝
また、違うところでエラーが発生してしまったのですが
今度は甘えずに、自分で調べてみます
0648デフォルトの名無しさんNGNG
無理無理
0649デフォルトの名無しさんNGNG
半角カナを全角に変換するには、Unicodeで変換するのが一番良いのでしょうか。
0650デフォルトの名無しさんNGNG
得意なエンコードでいいんでは?
0651デフォルトの名無しさんNGNG
>>634
http://pc3.2ch.net/test/read.cgi/tech/1002160815/658-671

の 658 と 671 を書いた者っす。
もしかして、JRE を 1.4.0_x に入れ直せば改善しませんか?

いや、未だに俺のマシンでは 1.4.1 で win2k がクラッシュするんで。
1.4.0 とか 1.3 では問題ないのに。

Sun に Bug 報告したいんだけど、「こちらでは再現しない」
とか言われて終りそうな気もする。(以前そんなことがあった)

ちなみに >>634 さんのマシンの環境とかどんな感じですか?
0652デフォルトの名無しさんNGNG
public void paint(Graphics g){
 g.drawImage(image,0,0,this);
}

このthisは、gを指しているんですよね?
■ このスレッドは過去ログ倉庫に格納されています