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

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

■ このスレッドは過去ログ倉庫に格納されています
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進行でおねがいします。
0197デフォルトの名無しさんNGNG
>>191と>>192と>>193は、メソッドの使い方を知らないみたいだな。
0198デフォルトの名無しさんNGNG
>>197
あのさぁ・・・既に水から引き上げられてるえさに食いつく魚ってアフォだと思わないか?
0199デフォルトの名無しさんNGNG
>198
いや、それはそれで凄い魚だと思う。
0200デフォルトの名無しさんNGNG
>>197
教える技術のない人は初心者無視スレへ。
0201デフォルトの名無しさんNGNG
>>198
そんなカリカリするなよ(w
0202デフォルトの名無しさんNGNG
>>200
お前が教えてやれよ。さっさと
0203デフォルトの名無しさんNGNG
>>200
さっさとメソッドの使い方を教えろ アホ!
02041NGNG
初心者無視! Java相談室 その9
http://pc3.2ch.net/test/read.cgi/tech/1021555964/
0205デフォルトの名無しさんNGNG
モソッドを使わずにJABAプログラムできるのですか??
02061NGNG
次の質問くるまで待ちましょう。
0207デフォルトの名無しさんNGNG
なんでさっきから粘着自演煽りが張り付いてんの?
0208デフォルトの名無しさんNGNG
           ___
    .      |(・∀・)|
     .      | ̄ ̄ ̄   ジサクジエン共和国
         △
        △l |
   __△|_.田 |△_____
__|__|__|__門_|__|_____|___
0209デフォルトの名無しさんNGNG
>>207 = >>208
静かにしてね。
0210デフォルトの名無しさんNGNG
⊂(`Д´)⊃旦~~マターリしる!
0211デフォルトの名無しさんNGNG
>>189-
結局メソッドが何かも教えられなのか
ちなみに俺は(上手い具合に)教える事はできない

つまり俺と同レベル?
0212デフォルトの名無しさんNGNG
アフォ洪水波浪警報発令中。
0213デフォルトの名無しさんNGNG
しかも目立ちたがり屋。アゲンナ
0214デフォルトの名無しさんNGNG
(*`Д´)⊃旦~~マターリしる!
0215132NGNG
サイトから情報を読んで、それを加工してファイルに記録したいのですが、
そういう場合は、情報をどこに読み込んでどこで加工するといいのでしょうか?

普通に変数に読み込んで編集してその内容をファイルに書くのですか?
なにか良い方法があったら教えて下さい。
0216デフォルトの名無しさんNGNG
JavaでGUIプログラミングを勉強しようと思うのですが、フリーで(・∀・)イイ!のは、何でしょうか。
Eclipse
NetBeans
Forte(Community version)
VAJ(Community version)
JBuilder(Community version)
よろしくおながいします。
0217デフォルトの名無しさんNGNG
>>215
それで良いんじゃねーの? データがでかければ少し工夫の余地がある
けど。
0218デフォルトの名無しさんNGNG
>>216
秀丸
0219デフォルトの名無しさんNGNG
>>216
やぱりこれからは日蝕で決まりでは?
0220デフォルトの名無しさんNGNG
>>216
Eclipse は GUI ビルダーがまだ付いてなかったと思う。
VAJ は何をやるにしても激しく糞だから止めとけ。
Forte/JBuilder は重い。それ以外の感想はない。
NetBeans は未知の世界。
ということで俺的にはこんな感じ

Forte = JBuilder >>> Visual J++ >>>>>>>>>>>> VAJ
Eclipse 対象外、NetBeans 不明
0221132NGNG
>>217
わかりました。とりあえずまずはそれで組んでから、また疑問があれば質問します。ありがとうございました。
0222デフォルトの名無しさんNGNG
>>216
秀丸+Javaマクロ + Javaハイライト は使いやすい。
0223デフォルトの名無しさんNGNG
VAJは個人で使うぶんには、リポジトリの肥大化はさほど問題
ではないと思う。IDEもV4.0になって昔ほど落ちなくなった。
バージョン管理もしやすいしね。でもVA/Assistをインストール
するのは必須。ただ、JDK1.2レベルだし、XPは動作環境じゃ
ないし、今更選択するのは得策じゃないな。
0224デフォルトの名無しさんNGNG
クラスの二次元配列の初期化は以下のような感じで問題ないですよね?

Hoge[][] hoge = new Hoge[10][10];

for(i=0;i<10;i++){
for(k=0;k<10;k++){
hoge[i][k] = new Hoge(コンストラクタ);
}
}
0225デフォルトの名無しさんNGNG
>>220
>>216
>>223
ありがとうございます。とりあえず、NetBeans + Eclipse + 秀丸 + J2SEでやってみますだ。
0226デフォルトの名無しさんNGNG
>>188よ、
メソッドが分からないとJavaはつらいので無理をするな。出来れば
VBとかでクラス使ったプログラミングになれてから・・・ってか、188はネタか?
0227デフォルトの名無しさんNGNG
なあなあ、java.beans.Beans.instantiateで自作のbeansをロードしてるんだけど、
jar -i してインデックスつけたjarだとロードに失敗するんだ。(SE1.3.1+WinMe)
ちなみに jar -i しなければ問題なし。
後述の極小のサンプルで確認したけどnewした方は大丈夫なんで、instantiateの
問題なのは間違いない。
しかし家のSE1.4+Win2Kだと再現しないんだ。これが。
持って帰ってきた資料がソースだけだったんで発生する例外は忘れた・・・
googleで検索したけど解決の役に立たなかったことは覚えてる。

結局、これって1.3.1が原因?Meが原因?だれか確認してくれないかな。
しゃーないからFactory作ってnewすることにしたけどさ、気分悪いじゃない。

それにしても・・・Meなんて使ってんじゃねーよ、お客様よぉ(泣
0228227のサンプルNGNG

【myBean.java】
package beans;

import java.lang.*;
import java.io.*;

public class myBean implements Serializable {
private intval;
public myBean() { val = 0; }
public int getValue() { return val; }
public void setValue( int v ) { val = v; }
}
【myBean.mf】
Manifest-Version: 1.0

Name: beans/myBean.class
Java-Bean: True
【simpleTest.java】
import java.lang.*;
import java.beans.*;

public class simpleTest {
public static void main(String s[]) {
beans.myBean mb;
mb = new beans.myBean();
mb.setValue(123456789);
System.out.println(mb.getValue());
try {
mb = (beans.myBean)Beans.instantiate(null,"beans.myBean");
mb.setValue(987654321);
System.out.println(mb.getValue());
} catch(Exception e) {
e.printStackTrace();
}
}
}
【simpleTest.mf】
Manifest-Version: 1.0
Main-Class: simpleTest
class-path: beans/myBean.jar
Created-By: 1.0 (I.Kazawa@SoftwareControl)

0229デフォルトの名無しさんNGNG
同じレイアウトでラベルの文字やアイコンが異なるパネルを作るプログラムが
作りたいのですが、どうしても上手くいきません。
実際にパネルのレイアウトやラベルを貼るクラスと、メインとの受け渡しは
どう記述したら良いのでしょうか?
Object型の戻り値でメインに渡して、メインのフレームにgetContentPane().add(パネル);
としてるのですが、Eclipseでは
The method(java.awt.Component,java.lng.Object)in the java.awt.Container is not applicable
for the argument(java.lang.Object)
というエラーがgetContentPane().add()のaddの部分に出ます。
どうすれば解決するのでしょうか?
0230229NGNG
ちなみにメインの方では、
Object 変数 = パネルをレイアウトするクラス.メソッド();
と記述しました。これが間違っているんでしょうか・・・
0231デフォルトの名無しさんNGNG
panelのレイアウトがFlowLayoutで、
panel.add(button1);
panel.add(button2);
2個のボタンを追加すると左からボタン1、ボタン2と表示されるよね

addの順番を変えないで、表示の順番を変えることってできる?
0232デフォルトの名無しさんNGNG
>231
無理っす。
全部消してから順番を変えて add するべし。
0233デフォルトの名無しさんNGNG
>229
その説明ではよくわからんなぁ…。
> Object 変数 = パネルをレイアウトするクラス.メソッド();
↑の変数がパネルだよね?
add する時にキャストしてる?
0234デフォルトの名無しさんNGNG
>>231
panel.add(button1);
panel.add(button2);
panel.remove(button1);
panel.add(button1);
0235デフォルトの名無しさんNGNG
>>232>>234
ありがとSUN

button1が継承もとにあるんだよ
面倒だなぁ
0236デフォルトの名無しさんNGNG
>>235
Container#getComponents()とか其の辺使えば、
addしたのが継承元だろうがなんだろうが、そのContainerに
くっついているComponent全部取れるよ。Compositeパターン
はアリガタヤ。
0237Eclipseマンセー派なSwing使いNGNG
シツモーン。
GUIビルダって、Javaで必要でしょうか?JBuilderのそれなんかは、
あとで整理したりビルダでは出来ないようなカスタマイズするときに、
かえって不便なだけだとおもうんだけど・・・
0238デフォルトの名無しさんNGNG
>>237
純粋に効率の問題かと。
0239デフォルトの名無しさんNGNG
IDEって必要ですか?とかGUIビルダって必要ですか?って質問は
だらだら話が続くけど、結論でないんだよなぁ。という俺は、
VAJのVCE使って吐き出したファイルをeclipseで取り込んでます。
Viewとそれ以外は厳密に分けるように心がければ、ちまたで
言われていること(メソッドがわらわら生成されることとか)で
困ったことはないな。
0240デフォルトの名無しさんNGNG
>>229
>Object型の戻り値でメインに渡して
java.awt.Container.add()の単一の引数のメソッドは Component を受けるから、
Object では当然に型が不一致になるよ。
Component に変更するか、233の言うとおり add((Component)obj) とキャストすべし。
0241デフォルトの名無しさんNGNG
IDE...JBuilderで失望して使ってない。
秀丸でシコシコ書いてるとListnerの仮メソッド埋め込みとか欲しくなるけど、
慣れればどうってことないし。
0242List'e'nerNGNG
うぁスペルミスが〜っーかキーボード変。
0243デフォルトの名無しさんNGNG
Windows2000での環境設定の仕方教えてくださいm(__)m
0244デフォルトの名無しさんNGNG
オレの環境はWindows2000ですm(__)m
0245デフォルトの名無しさんNGNG
Windows2000は使ってないですm(__)m
0246デフォルトの名無しさんNGNG
何の環境設定か書きやがれ!と、そろそろマジレスしてみる。
0247デフォルトの名無しさんNGNG
>>246
Windows2000ってかいてあるやん
0248デフォルトの名無しさんNGNG
お前らIDE使わないと >>241 みたいな恥ずかしいスペルミス頻発ですね
0249227NGNG
>>243
「デスクトップ」→「マイコンピュータ」→「プロパティ」→「詳細」→「環境変数」

しかし、今はセットアップを動かせば設定される。
されてない・・・JAVA_HOMEは設定してくれてるみたいだが、PATHの修正は
していないようだ。

しまった、確認(java -version)してみたら家の環境でもjava.exeは1.3.1だと
言ってる・・・クラスは多分1.4.1(w




ということでPATHの設定値に%JAVA_HOME%\bin;を追加されたし。
これが無いとコマンドラインツールが動かないから。
0250デフォルトの名無しさんNGNG
アプレットっておぼえて何か役に立ちますか
ほとんど仕事も無いし
ただの自己満足にしか思えない…
0251デフォルトの名無しさんNGNG
>>248
そりは>241だけだよ
俺はほとんど間違わないで?

>>250
そり以外の分野はどう思うよ?
0252デフォルトの名無しさんNGNG
バッファ付け文字ストリームについて質問させてください

FileWriter fw = new FileWriter(args[0]);
BufferedWriter bw = new BufferedWriter(fw);

bw.write("abcdefg");

とやって最後にclose()関数を書くと思うのですが、
独習Javaを見てると
bw.close(); とやってる場合と fw.close()とやってる場合があります。
これはどちらでもよいのでしょうか?
よく理解したいのでどちらでもよい場合はその理由も教えてもらえるとうれしいです
0253デフォルトの名無しさんNGNG
>>252
なんとなくだけど(調べてないよ)

FileWriterがcore部分だから
bw.close() 内部で fw.close() やってんじゃない?

だから bw.close() と fw.close() は同義でないのかなと・・・
0254243NGNG
>>249
ありがとうございます。
参考にしてやってみます。
02550xffNGNG
0xff
0256デフォルトの名無しさんNGNG
インターフェイスを引数にとるメソッドがありますよね?
そのメソッドは目標のクラスにそのインターフェイスがあることを知ってホッとすることはできますが、その後何を参照しているのでしょうか?
0257デフォルトの名無しさんNGNG
正直、Javaスレって無駄に多いよね。
0258デフォルトの名無しさんNGNG
そのinterfaceで宣言されてるメソッドを呼んでるだけじゃねーの?
0259デフォルトの名無しさんNGNG
>>258
呼び出されるメソッドが実装されていなかったらどうなるんですかね?
0260デフォルトの名無しさんNGNG
>>259
単にコンパイル時にエラーとなってメソッドに渡せないだけ。
0261デフォルトの名無しさんNGNG
>>259
そのクラスのインスタンスが生成できないッス
0262デフォルトの名無しさんNGNG
ぐわ紛らわしい。
インターフェースを引数に取るメソッドに、実装が不完全なクラスは、渡せない。
型が一致していないから。
0263256NGNG
オツカレサマッ酢。
0264デフォルトの名無しさんNGNG
正直、Javaスレって無駄に多くてウザイね。
0265デフォルトの名無しさんNGNG
>>248は、IDEから2ちゃんねるに書き込みをしているらしい。
0266デフォルトの名無しさんNGNG
>>257 >>264 が構ってもらえないくて悲しんでいます。

0267デフォルトの名無しさんNGNG
>>253
レスありがとうございます。
同義ですか
たしかにどっちを実行してもエラーは出ないので、それが正解だとは思うの
ですが、やっぱりなんか頭の中でなっとく出来なくて・・・
もうちょっと勉強してみます

ありがとうございました
0268デフォルトの名無しさんNGNG
EJB実装で、あるマシンで動くことが確認されているにもかかわらず
自分のマシンだと
「javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial」
とエラーメッセージが出てしまい。
困っているのですが、何がいけないのでしょうか?
JDK、J2EE、OSのバージョンは同一です。
0269デフォルトの名無しさんNGNG
自己解決しました。パスの設定を手抜きしないで行ったら呼び出せました。
0270デフォルトの名無しさんNGNG
連続書き込みですみません。

c:\hogehoge\j2ee.jar とある時に、
java -classpath c:\hogehoge yyy
の指定ってだめなんでしたっけ?

0271デフォルトの名無しさんNGNG
GUIのイベント処理ですけど、
イベントの種類だけ、if ...elseってするのが正しいのですか?

0272デフォルトの名無しさんNGNG
>>271
別の例外でも投げとけ。
0273デフォルトの名無しさんNGNG
actionPerformed
の中身って
Interfaceパターン
でいいんですか?
一般的ですか?
0274デフォルトの名無しさんNGNG
テキストフィールドに記述された文字を、
ボタン等のアクションリスナー内でチェックしたい場合は、
テキストフィールドのアクションリスナーで、
予め文字が打たれるごとに、変数に格納するしかないのでしょうか。
0275デフォルトの名無しさんNGNG
>>274
素直にテキストフィールドのリスナーで扱うかテキストフィールドから情報を得ればよかろう。
0276274NGNG
>>275
レスありがとうございます。
テキストフィールドからアクションリスナー(イベント)のメソッドを使わずに、
情報を得ることってできますか?
できるならどのメソッドでしょうか。

たとえば、ダイヤルアップネットワークで、
ユーザー名のフィールドを持っていて、
接続のボタンが押されたときに、ユーザー名が記述されずに、
接続のボタンが押されていないかをチェックしたいのです。
0277274NGNG
誤)ユーザー名のフィールドを持っていて、
正)ユーザー名のテキストフィールドを持っていて、
0278デフォルトの名無しさんNGNG
java.awt.TextComponent.getText()


JDKプラットフォーム 1.2API仕様より。
0279274NGNG
>>278
ありがとうございました。
スーパークラスを確認していませんでした。
0280342NGNG
>>343
ありがとうございました。
9821のPCは持っています。
XPに対応できるエミュレーターはありますか。
ちなみに2000 nTのはありますが。
0281デフォルトの名無しさんNGNG
this.addWindowListener(new WindowAdapter()
{
 public void windowClosing(WindowEvent e)
 {
  this.f();
  System.exit(0);
 }
});

匿名クラス内のthisはもちろん匿名クラスだよね
本体の実態を参照するには、それようの変数を用意しないといけないの?
0282デフォルトの名無しさんNGNG
this に add したイベントリスナなら e.getSource() で this と同じ
モノが取れないかな。一般的に成り立つか知らんけど。
0283デフォルトの名無しさんNGNG
>>281
匿名クラス内のthisはもちろん匿名クラスのインスタンス
0284デフォルトの名無しさんNGNG
2文字以上の置換を行いたいのですが、"replace"じゃ上手くいきません。

String strMes1 = "あいうえお";
String strMes2 = "";
strMes2 = strMes1.replace('あい','かき');

よろしくお願いします。ちなみに全角日本語です。
0285デフォルトの名無しさんNGNG
>>284
で、シングルクオートで囲っている理由は?
頼むから文法エラーごときで質問にこないでください・・・。
0286284NGNG
String型の2文字以上の置換方法が分からないのです。
文法エラーが分からなくて質問しているのでは、ありません。

確かにシングルなのは、おかしいですが、ダブルでもエラーが出ます。

"replace"以外に、"あい"を"かき"に変えるメソッドがあるのでしょうか?
0287デフォルトの名無しさんNGNG
アプレットのデバッグをしたいので↓のURLに書いてあるとおりにしました。
http://java.sun.com/products/plugin/1.3/docs/ja/debugging.html
しかしどうしてもエラーがでるのです。↓
http://members14.tsukaeru.net/kuresoru/error.jpg
この設定を行うとき、なにか陥りやすい罠でもあるのでしょうか?
0288デフォルトの名無しさんNGNG
>>282>>283
ありがとSUN
できますた
e.getSource()で
0289デフォルトの名無しさんNGNG
>>288
> ありがとSUN

新しいね。勝手に使わせてもらいます。
0290デフォルトの名無しさんNGNG
Sun Sun Sun - (・∀・)♪
haxtu? ( ゚Д゚)
0291デフォルトの名無しさんNGNG
>>1
基本的にsage進行でおねがいします。

なんで?
0292デフォルトの名無しさんNGNG
>>286
StringBufferクラスを使ってください。

>>286
>確かにシングルなのは、おかしいですが、ダブルでもエラーが出ます。
って言ってますが、この発言をしてる自体でちょっと厳しいです><
'あい' とやってる時点でかなり問題ありなので
もう一度ここの勉強をしたほうがいいかと
0293デフォルトの名無しさんNGNG
>>284 >>286
String#replaceAll(String,String)使いなさい。要1.4
0294284NGNG
しょうがないので、文字位置検索して、置換しました。
1度で複数文字を置換する方法は、ないんですかねー?
0295284NGNG
>>292-293さん。
ありがとうございます。頑張って勉強します。
0296できたNGNG
String strMes1 = "あいうえお";
String strMes2 = strMes1.replaceAll("あい","かき");
■ このスレッドは過去ログ倉庫に格納されています