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

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
00011NGNG
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://pc.2ch.net/test/read.cgi/tech/1021555964/


基本的にsage進行でおねがいします。
0871デフォルトの名無しさんNGNG
>>869>>870
ちと、テストファイル作って実験してみます。

0872861NGNG
>public HogeClass(FugaClass arg) throws XXXException {
>  super(arg);
>}
>だけで、例外を使い手にスローしてくれますか?

861のコードはそのままコンパイル・実行できるから確かめてみるといい。
super(arg);
で例外が発生→catchされなかったら呼び出し元に例外が投げられる。
ごく普通の動作。
0873860NGNG
>>862
あまりにも糞な作りのクラス (他チーム製) をチーム全員に使わせる
ときやる方法だよ。API の仕様上は A でなければいけない、しかし
A クラスを素で使わせるとトラブル続出な予感、な時にチーム先発実装
部隊が後続部隊のためにやる方法。
0874Rina ◆tI333vNE NGNG
>>860さん, いない?
なんか自分が大きな勘違いをしてるような気がして不安なんだけど…(;_;).
0875860NGNG
ひそかに 860, 861, Rina ◆tI333vNE と質問者の 4 人で盛り上がってる罠
0876861NGNG
こんな時間になにやってんだか
0877Rina ◆tI333vNE NGNG
正直, 明日は休日だから徹夜の勢いな罠.
0878860NGNG
>>874
「素直に throw〜」は質問者に言ったんだが…
0879Rina ◆tI333vNE NGNG
>>860
ならいい. 何かものすごい勘違いしたままJavaをやり続けてたのかと思ったよ(´Д`)ノ
0880860NGNG
俺はもう寝る。
0881Rina ◆tI333vNE NGNG
>>860
お疲れさん
0882861NGNG
オヤスミ(´ー`)y-~~
0883shigeNGNG
Javaはこんなところにも使われてたっす。
http://feeds.directsex.com/res/kinky/res/liveindex1.asp
0884デフォルトの名無しさんNGNG
激厨房な質問で誠に申し訳ないが……

「System.out.printlnの出力結果って、どこに表示されるの?」

……いやぁ、デバッグ用にラベルを表示させたいだけなんですけどね(^^;
それとも、Exceptionが出るとSystem.out.printへの出力は消えちまうのだろうか?

もちろん環境により千差万別なのは判っているので、「まずはこの設定を見れ!」
という所から教えていただけると非常に助かります。何卒お助けを(拝)
0885デフォルトの名無しさんNGNG
>>884
java.lang.SystemのAPIドキュメント

やろうとしてることは多分
java.lang.System#setOut(PrintStream out)
0886デフォルトの名無しさんNGNG
Javaやりずれー!!
Cのがよっぽどマシ!
だれかJavaの本質をレビューしてくれ!
Cのがいいだろ?!
0887デフォルトの名無しさんNGNG
double[][]array = new double [2][3]
に入れた値を
11 12 13
21 22 23
という風に行列表示したいです。
コマンドプロンプトでは縦に一列に並んでしまいます。
どうすればいいでしょうか?
0888デフォルトの名無しさんNGNG
>>887
お前は多分
System.out.println()したんだろ?そうじゃなくて
System.out.print(array[i][j])しれ。
0889デフォルトの名無しさんNGNG
>>883
あほくさ〜
0890デフォルトの名無しさんNGNG
>>886
>>5
0891デフォルトの名無しさんNGNG
>>888 ありがとうございます。

class Hello {
public static void main(String args[])
{
double [][] array = new double [2][3];

for(int i=0;i<2;i++){
for(int j=0; j<3;j++){
array[i][j]=Math.random();
}
}

System.out.println(array[i][j]);
}
}

を試してみました。
System.out.println(array[i][j]);
iやjを解釈処理できませんとでました。どうしたらいいのでしょうか?
0892デフォルトの名無しさんNGNG
よくかんがえたら、出力のとこにもループがいりますね。
と思って、ループ書いてみたのですが、うまくいきません。
これはどこがおかしいのでしょうか?

class Hello {
public static void main(String args[])
{
double [][] array = new double [2][3];

for(int i=0;i<2;i++){
for(int j=0; j<3;j++){
array[i][j]=Math.random();
}
}
for(int i=0; i<2;i++){
for(int j=0; j<3; j++){
System.out.println(array);
}
}
}
}
0893デフォルトの名無しさんNGNG
>>892
System.out.println(array);
0894デフォルトの名無しさんNGNG
また間違えていました。さいごのところに[i][j]いれました。
でもやっぱり縦一列にでます。どうすればいいのでしょうか?

class Hello {
public static void main(String args[])
{
double [][] array = new double [2][3];

for(int i=0;i<2;i++){
for(int j=0; j<3;j++){
array[i][j]=Math.random();
}
}
for(int i=0; i<2;i++){
for(int j=0; j<3; j++){
System.out.println(array[i][j]);
}
}
}
}
0895デフォルトの名無しさんNGNG
>>893
ありがとうございます。もうひとつヒントください。
0896デフォルトの名無しさんNGNG
println
0897デフォルトの名無しさんNGNG
>>896
ふむ、なるほど、ありがとうございます。lnが余分でした。
やってみますた、今度は横一列に並びました。
縦2行横3列が希望なのですが、もう少しだけお願いします。
0898デフォルトの名無しさんNGNG
System.out.print(array[i][j]);
}
System.out.println();
}
}
}
0899デフォルトの名無しさんNGNG
for(i){
for(j){
print(array[i][j]);
}
println("");
}
0900デフォルトの名無しさんNGNG
いろいろやってみましたが、ちょっと面倒なようです。
見やすくするのはあきらめました。printlnprintの違い覚えました。どうもありがとう。

これを一回実行するごとに2×3の行列が得られるので、その結果を
一回ずつ、テキストファイルにしたいのですが、どうすればいいでしょうか?
class Hello {
public static void main(String args[])
{
double [][] array = new double [2][3];

for(int i=0;i<2;i++){
for(int j=0; j<3;j++){
array[i][j]=Math.random();
}
}
for(int i=0; i<2;i++){
for(int j=0; j<3; j++){
System.out.println(array[i][j]);
}
}
}
}

0901デフォルトの名無しさんNGNG
>>898 >>899 へたれな初心者を助けていただき、ありがとうございます!
早速試してみます。
0902デフォルトの名無しさんNGNG
うまく2行3列に表示できるようになりました!!
こうやって改行すればいいんですね。勉強になりますた。

class Hello {
public static void main(String args[])
{
double [][] array = new double [2][3];

for(int i=0;i<2;i++){
for(int j=0; j<3;j++){
array[i][j]=Math.random();
}
}
for(int i=0; i<2;i++){
for(int j=0; j<3; j++){
System.out.print(array[i][j]);
}
System.out.println();
}
}
}
0903Rina ◆tI333vNE NGNG
>>902
2とか3とか決めうちせずにarray.lengthを使うといい.
for(int i = 0 ; i < array.length ; i++) {
for(int j = 0 ; j < array[i].length ; j++) {
System.out.print(array[i][j]);
}
System.out.println();
}
あとでサイズが変わってもいいようにね.
0904デフォルトの名無しさんNGNG
>>903
どうもありがとうございます。すぐそうしたいと思います。
自分でもSystem.out.print(array[i][j]+",");
をいれて、さらに見やすくしました。コマンドプロンプト上でしか
結果を見れないのですが、やはりこの結果を一回ずつ>>902でした
質問のようにテキストファイルにしていくというのは難しいのでしょうか?
0905853NGNG
>>856
ありがとうございました
おかげでうまくいきました
分かりにくい質問に丁寧に答えてくれてありがとうございました
0906デフォルトの名無しさんNGNG
調子に乗って書き換えていたら、2行2列になってしまいました・・・。
なぜでしょうか?どなたか教えてください。

class Hello {
public static void main(String args[])
{
int s=2;
int t=3;
double [][] array = new double [s][t];

for(int i=0;i<array.length;i++){
for(int j=0; j<array.length;j++){
array[i][j]=Math.random();
}
}
for(int i=0; i<array.length;i++){
for(int j=0; j<array.length; j++){
System.out.print(array[i][j]+",");
}
System.out.println();
}
}
}
0907デフォルトの名無しさんNGNG
for(int j=0; j<array.length;j++){
0908デフォルトの名無しさんNGNG
>>907
ふみゅ、そうでし・・。array[i].lengthでした。なおりました。
ありがとうございました。
0909デフォルトの名無しさんNGNG
>>908
http://park.ruru.ne.jp/ando/work/who/html/index_p9.html#doc1_IO
0910デフォルトの名無しさんNGNG
>>909
ぐほっこれは難しいですね。ヘッダーにこーゆークラスを読み込んで
つかうのでしか?あまりプログラミングをわかってないので、
できそうにないです。まずDOSプロンプトから一回ごとに自動的に
カットアンドペーストする方法を探してみます。
0911デフォルトの名無しさんNGNG
>>910
なんでカットするの?
0912860NGNG
リダイレクト使えよ。

C:\> java Hello > hoge.txt
0913デフォルトの名無しさんNGNG
数字固定うざ
0914デフォルトの名無しさんNGNG
へんな奴を送り込むな。
http://pc3.2ch.net/test/read.cgi/win/1027492185/267
0915デフォルトの名無しさんNGNG
>DOSプロンプトから一回ごとに自動的に
>カットアンドペーストする方法

DOSプロンプトを作り直す勇者か?
0916デフォルトの名無しさんNGNG
>>912
ファイルを作るなよ わざわざ

>>913
教える気のない上級者は(略
0917デフォルトの名無しさんNGNG
>>910
秀丸使ってごらん
0918デフォルトの名無しさんNGNG
>>911
カットしなくてよかでした。>>912で教えてもらった方法で
乱数が行列でならんでいるテキストファイルを作成できました。
>>912
できました。こういう書き方あるんですね。
>>914 >>915
やっぱりできないですか?さっきの質問さらされるほど変ですか?
あのすみませんけど、>>912さんに教えてもらった方法
C:\> java Hello > hoge.txt
これを毎回するのはちょっとしんどいので1000回いっぺんにやる方法を
教えてもらえませんか?1000通りくらい乱数の行列あると便利なんです。
お願いします。
0919デフォルトの名無しさんNGNG
>>918
Helloを書き直せ
0920デフォルトの名無しさんNGNG
コピペすればあっという間です。

1行をコピペすると2行
2行をコピペすると4行
4行をコピペすると8行
...
512行をコピペすると1024行
0921デフォルトの名無しさんNGNG
>>916
教えてもらった義理があるので、あえて言わせてもらいますが、
僕はファイルを作る方法を質問しました。だから、ファイルを
作れて満足しています!
0922デフォルトの名無しさんNGNG

  フ  ァ  イ  ル  ま  ん  せ  ー  ー  ー  !  !  !
0923デフォルトの名無しさんNGNG
>>921
満足したのなら帰れ。
0924デフォルトの名無しさんNGNG
>>923
いじけるなよ
0925デフォルトの名無しさんNGNG
あの、すいませんが、C:\> java Hello > hoge.txt
を1000回繰り返す方法は茶化しているわけではなく本気で
質問しています。煽ったみたいですいません。
>>919
書き直すポイント教えてください。お願いします。
0926デフォルトの名無しさんNGNG
>>925
>>921
0927デフォルトの名無しさんNGNG
>>925
mainの中身をforで囲めばいいじゃん。
0928Rina ◆tI333vNE NGNG
dosってfor文ないの? bashなら
for i in $(seq 1 1000); do java Hello >> hoge.txt; done
でできるんだけど.
0929Rina ◆tI333vNE NGNG
>>928
自己レス. javaを1000回実行なんて現実的じゃないね. すまそ.
書き終わってから気がついたよ.
0930デフォルトの名無しさんNGNG
DOSのここですいませんでした。板違いなのでほかに行きます。
ありがとうございました。
>>927
ちょっと試してみます。
>>928
cygwin入れているので、試してみます。
0931Rina ◆tI333vNE NGNG
>>930はjavaを1000回実行してるのでしょうか…早とちりとはいえ,
悪いことしちゃったな.
0932デフォルトの名無しさんNGNG
冗長。
ここは保育園ですか?
0933デフォルトの名無しさんNGNG
>>932
そういうのやめてね。
0934デフォルトの名無しさんNGNG
>>931
勉強にはなるんじゃない?
0935RinaNGNG
>>932
セクハラはやめてください!
0936デフォルトの名無しさんNGNG
bash: Hello: command not found
でした。でもよく考えたら自分のにはLinux用のJAVAはいっていません・・・。
やはりDOS窓に関する質問のようです。ありがとうございます。
>>927
これだと、乱数の発生数が1000になってしまう
ことに気づきました、ここでやっと、6000個発生させて6個ずつ組
になるようにtxtを加工しても得られる結果は一緒だと気づきました。
こっちのほうが簡単そうです。ありがとうございました。
0937Rina ◆tI333vNE NGNG
>>935
トリップ付いてないから偽物ね. 誤解を招くといけないのでいちおう.
0938sageNGNG
>>931
C:\>javac Hello.java
C:\>java Hello
でいつも実行しています。

>for i in $(seq 1 1000); do java Hello >> hoge.txt; done

幸運にも?javaを1000回実行しなくてすんだのですが、
Helloを実行するときにjavaと書かなくてもいいのでしょうか?
#ずっとageで書いていてすいません。忘れていました。

0939デフォルトの名無しさんNGNG
すません。sage書くとこ間違えました。アホですね<自分
0940Rina ◆tI333vNE NGNG
>>986
doの後にjavaがあるよ.
>bash: Hello: command not found.
って出たのは, このjavaが抜けてたんでない?
0941デフォルトの名無しさんNGNG
http://js-web.cside.com/index.html
0942デフォルトの名無しさんNGNG
お節介固定はじきにウザくなること必至。
0943Rina ◆tI333vNE NGNG
>>942
すまん,気をつけます.
0944デフォルトの名無しさんNGNG
>>940
そうでし・・JAVA抜けていました。CYGWINはやはり使いこなせないので
あきらめました。
0945デフォルトの名無しさんNGNG
>>943
>>942はいろいろ教えてもらった僕ではありませんので、
たぶんさっきからハエみたいに僕をあおっていたヤシだと
思います。質問厨ですまそ>>>942
いろいろ教えてくれてありがとうございました。RINAさん。
0946デフォルトの名無しさんNGNG
今日はRINAさんで抜かせてください。
0947デフォルトの名無しさんNGNG
ネカマだろ
0948デフォルトの名無しさんNGNG
のんけだろ?
0949デフォルトの名無しさんNGNG

↓こいつ?

http://www7.big.or.jp/~mb2/bbs/up/img-box/img20020731154949.jpg
0950デフォルトの名無しさんNGNG
うpキボンヌ
0951デフォルトの名無しさんNGNG
>>949
ヘルメットで顔がはっきりわからないのだが?
0952デフォルトの名無しさんNGNG
こっちの方がはっきり見えますた。
ttp://www7.big.or.jp/~mb2/bbs/up/img-box/img20020731155051.jpg
0953デフォルトの名無しさんNGNG
>>949
だれか再うpして!!
0954949NGNG
sage進行しないとupしないよ。
0955デフォルトの名無しさんNGNG
半角?
0956デフォルトの名無しさんNGNG
Frame上に配置されているボタンやテキストエリアを重なるような形で
Canvasオブジェクトを配置するようなことをするにはどうしたら良いでしょうか?

最初、ボタンやテキストエリア、Canvasオブジェクトをあらかじめ配置しておきCanvasオブジェクトだけVisibleをFalseにして
必要になったらTrueにするという方法を考えたのですが
FrameのレイアウトをGridBagLayoutにしているためCanvasオブジェクトを重ねておく事が出来ませんでした。

どなたか宜しくお願いします。
09571ヶ月ずっと迷ってるNGNG
んで、結局、javaはじめるには、何をそろえれば・・・。
何からはじめれば・・・。
結局、自分がいいと思ったモノをチョイスするしかないのか。
う〜。
0958853NGNG
ついでにもう一つ質問です
今度は配列を渡してみたいのですが
class hoge2{
public double x[];
public void sample(String args[]) {
double x[]=new double [10];
x[3]=5;
}
}
public class hoge {
public static void main(String[] args) {
sample m=new sample();
m.cal(args);
System.out.println( m.x[3] );
}
}
これだとコンパイルは通るのですが実行でエラーがでます。
この原因は何なのでしょうか?またちゃんと配列を表示させるにはどうすればいいのでしょうか?
よろしくお願いします
0959デフォルトの名無しさんNGNG
>>957
初心者の本を読め。
CDなんてついてなくていいけど、作りながら覚えていけるヤツ。

何冊もね
0960デフォルトの名無しさんNGNG
>>958
> これだとコンパイルは通るのですが実行でエラーがでます。

正確な動作ですね。よかったね。

> この原因は何なのでしょうか?

エラーを出すように作られているからです。

> またちゃんと配列を表示させるにはどうすればいいのでしょうか?

エラーを出さないように作ればいいと思います。
0961デフォルトの名無しさんNGNG
先生、>>960のレスは不要だと思います。
0962デフォルトの名無しさんNGNG
>960
わかんないなら(略

…とは言ってみたものの、俺にもわからん。

> これだとコンパイルは通るのですが実行でエラーがでます。

なんでコンパイル通るんだろう…
意図しない sample クラスがどっかにあるんだろうな…。
0963デフォルトの名無しさんNGNG

先生、>>962のレスも不要だと思います。
0964がばろん@MたんちゅきちゅきNGNG
>>779たん。
あなたのきょうのラッキーアイテムはduke。
dukeをあたまからかぶって
語尾に「じゃば」をつけると萌え度120%アップの予感。
街を逝くプログラマーの視線をくぎづけ。

よかったら今後の参考にどうぞ。
http://www.watch.impress.co.jp/internet/www/article/2001/1128/tenji6s.jpg


>>956たん。
えーとCanvasの上にボタンやテキストエリアを配置したいの?

SwingならJPanelとかJComponentとかのサブクラスをつくって、
そのサブクラスにCanvasクラスと同じような機能を実装させて、
で、そのサブクラスのオブジェクト上にボタンやテキストエリアを配置。

AWTは、よくわかんないけど、
たぶんPanelクラスのサブククラスをつくって、
そのサブクラスにCanvasクラスのときと同じような機能を実装させて、
そのサブクラスのオブジェクト上にボタンや
テキストエリアを配置するといいんじゃないでしょうか。

んで最後に、そのサブクラスのオブジェクトをFrameにはめこむと。
0965デフォルトの名無しさんNGNG
意味不明な質問には、間違って無く且つ意味不明な回答をするのは、質問者の勉強にはなる。

とおもった・・・・。
0966デフォルトの名無しさんNGNG
>>964
たんたん うるさいよ やめてくれ
0967デフォルトの名無しさんNGNG
よーし、パパ >>958 に釣られてやるぞー
とりあえず、やってることが全然わからないので質問返し

1.
クラス hoge2 は、どのように使われますか?

2.
クラス sample は、どのように機能しますか?

3.
sample m=new sample();
この一行は何をしていますか?

それぞれ、50〜100文字程度で簡潔に答えてちょ。
0968デフォルトの名無しさんNGNG
>>966
がばまんたんに何てこと言うんだ!
0969デフォルトの名無しさんNGNG
>>968
うるさいな、がばまんとともに消えろ
0970がばまんたん@たんたんたぬきたんちゅきちゅきNGNG
そういえば、ずっとまえのほうに、
変数名のつけかたについての質問があったけど、

変数名や関数名の最初の文字は小文字にして、
クラス名の最初の文字は大文字にすると、
いくぶん読みやすいような気がする。

たとえばSampleクラスとか、
Hoge2クラスのsample()メソッドとか。

まとめて>>968-969たん。
いっしょに下のスレに逝こうよ。
http://pc3.2ch.net/test/read.cgi/tech/1021555964/l50
レス数が950を超えています。1000を超えると書き込みができなくなります。