【初心者】 Java質問・相談スレ26 【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG『'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッ ファイルとして認識されていません。』
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』
>>2-3 初心者によくある質問と回答・他のFAQサイトへのリンク
>>4 JDKの配布元とAPIドキュメントへのリンク
>>5-6 過去スレの一覧
>>7-10 関連スレ
>>11 2ちゃんねる外のJavaサイト・無料の開発環境の配布場所
(諸般の事情でずれた場合は >>2-20 )
Google で検索 ⇒ http://www.google.co.jp/
JavaFAQ で探す ⇒ http://www.gimlay.org/~javafaq/javafaq.html
ご要望によりじゃばこサイト ⇒ http://www.javaco.org/
■JavaScriptの質問■はWeb製作板 ⇒ http://pc3.2ch.net/hp/
または「JavaScript デス」スレへ⇒
http://pc2.2ch.net/test/read.cgi/tech/1052273054/
パソコンの基本操作に関しては、PC初心者板へどうぞ ⇒ http://pc.2ch.net/pcqa/
これからJavaのプログラムを始めたいかたは >>2-4 へ
必要な情報やコンパイラのダウンロード先へのリンクがあります。
基本的に sage 進行でおねがいします。また煽り厨は放置でお願いします。
※初心者なんでよろしくです。
0232デフォルトの名無しさん
NGNGImageI/O とか使えば?
0233デフォルトの名無しさん
NGNGシステムを使われるお客様がパソコンがまったくダメなので
jpg以外のファイルをアップしてもリストに出てこないようにしたいだけです。
(ビットマップファイルの拡張子を.jpgに変更とかしてアップしそうなので)
なるほどjpegのヘッダを見ればいいんですね。ありがとうございました。
やってみます。
0234デフォルトの名無しさん
NGNGboolean java.io.image.JPEG#isURAJPEG()が参考になる
0235デフォルトの名無しさん
NGNGちょっとまて、俺が言った「ヘッダ」は
なんの根拠もない、勘だ、勘で言ったんだ許してくれぃ
0236デフォルトの名無しさん
NGNG一瞬、そんなメソッドあるのかと期待したが
よくよく考えると
そんなメソッド存在したところで
裏画像にありつけるわけでもない・・・
ちょっとまてよ・・・
ネットで無造作検索して
「true」の文字が返ってきた日にゃ〜・・・
おい、こうしちゃいられね〜な
0237デフォルトの名無しさん
NGNGSwingでボタンなどのレイアウトについてなのですが
BorderLayoutとGridLayoutを組み合わせたいのです。
感じとしてはのNORTHのなかにひとつテキストフィールドをいれて
CENTERのなかに4*6列のボタンを配置したいのですがどうやれば
うまくいきますでしょうか。
0238デフォルトの名無しさん
NGNGそのJPanelにGridLayoutを設定せよ
0239名無しさん@Monalipse
NGNGGridLayoutを指定したJPanelにボタンを並べて、
そのJPanelをCENTERに配置する。
で、いける?
0240239
NGNGところでスレ汚しついでに質問なんだが、
javax.servletパッケージのクラスのソースコードってどこかにない?
それがあると、Eclipse上でjavax.servlet以下の
クラスのメソッドをオーバライドするのが便利になるんだが。
j2sdkee-1.3.1にはありませんでした。tomcatのソースにも。
0241sage
NGNG>>238
うう、ばかですんません。
そのJPanelにGridLayoutを設定せよってのがうまくできなくて・・・
JPanelはbって名前なんですがどう書くのでしょうか。
そのあとにこれでいいんですよね?
getContentPane().add(b,BorderLayout.CENTER);
0242237
NGNGもう最悪ですな
0243デフォルトの名無しさん
NGNGb.add(button1);
b.add(button2);
....
0246デフォルトの名無しさん
NGNG最近モチベーションがやや墜ちているのですが資格の勉強ならやる気になるかなぁと・・。
0247デフォルトの名無しさん
NGNGSun Certified Programmer for the Java 2 Platformというのがある。
http://suned.sun.co.jp/JPN/certification/progdetails.html
024840
NGNGJMenuItemや、JToolBar上のJButtonをON/OFFしようとした>>40です。
JMenuItemに関しましては、JMenuをクリックした際のMenuListenerで、
JTable項目の選択/非選択を検知してsetEnabled(true/false)をすることにより可能となりました。
しかし、JToolBar上のJButtonに関しては、当然MenuListenerはありません。
JButtonがJTable項目の選択/非選択を知るためには、
1.JButtonがMenuListenerに相当するリスナを持つ
2.JTableがJTable項目のON/OFFを検知するリスナを持ち、そこでJButtonのON/OFFを切り替える
のどちらかだと思います。
しかし、そのようなリスナはありますでしょうか?
また、よりよい方法がありましたらご教授ください。おねがいします。
0249デフォルトの名無しさん
NGNGjavax.swing.table.TableColumnModelと
そのメソッドaddColumnModelListener(TableColumnModelListener x)、
javax.swing.event.TableColumnModelListenerと
そのメソッドcolumnSelectionChanged(ListSelectionEvent e)
あたりが使えるのでは?
やったこと無いので責任は取れないが。
それにこの方法だと列の選択の変化しかわからないようなので、
やりたいことによっては使えないかも。自信ないのでsage
0250デフォルトの名無しさん
NGNG2.
javax.swing.table.TableColumnModelListener の
columnSelectionChanged(ListSelectionEvent) とか。
0252デフォルトの名無しさん
NGNGException in thread "main" java.lang.NoSuchMethodError: main
0253デフォルトの名無しさん
NGNGNGワードか??
0254デフォルトの名無しさん
NGNG>>2 でも見ろ。
0255デフォルトの名無しさん
NGNG使おうとすると”シンボルを解決できません”と
エラーがでてくるのですがどうしたらいいのでしょうか?
0257デフォルトの名無しさん
NGNG0258デフォルトの名無しさん
NGNG使うってどういうこと?
Bean b=new Bean();
でも、言われるんなら
コンストラクタがprivateになってる可能性大
0259情報モトム(つ-`)
NGNGDocuments and Settingsだと空白が混じってるせいか実行できん〜
他のJREを1.4.1にしてそうなった様な気がする....情報モトム(つ-`)
人の作ったアプリもウゴカンし..
0260デフォルトの名無しさん
NGNGコンソールからjava -jar Hoge.jar
のコマンドで起動して、エラーをミロ。それで解決する可能性大。
0261情報モトム(つ-`)
NGNGそれがコンソールから実行するとちゃんと起動するんよ〜
エクスプローラーからダブルクリックすると起動せんのよ〜
スペース混じってないフォルダだったら(もちろんフルパス)
問題ないんだけど...(TT)
0262デフォルトの名無しさん
NGNGじゃあ、javaw -jar Hoge.jar。
あと、JARを右クリック→プロパティ開く→なにに関連付けられている?
0263デフォルトの名無しさん
NGNGArrayList配列にはString型オブジェクトが入ってます.
0264情報モトム(つ-`)
NGNGjavaw could not initialize the java virtual machine program will exit
って表示された.......これは一体..
スペースなしフォルダでも同じエラーがでる..
jarプロパティに関連付けられているのはjavawでした (-.-;
0265情報モトム(つ-`)
NGNGList list = new ArrayList(); ってやってListに格納して
Iteratorで取り出すといいかも(^-^
0266デフォルトの名無しさん
NGNGレジストリと現実が整合性取れてないかもな。
メンドイので、JRE全部アンインストールしてからJRE
1.4.1だけ再インストール。王道ですね。
0267デフォルトの名無しさん
NGNGうんこは氏んでくださいよ ホント
0268デフォルトの名無しさん
NGNGArrayList#toArray() で我慢すれば楽
String[]じゃなくてObject[]で返ってくるけど。
どうしてもString[]にしたかったらループで一つずつ格納
0269デフォルトの名無しさん
NGNGかなり意味不明。ArrayList<String>[]ってことか?
>>265
本気で意味不明。
0270デフォルトの名無しさん
NGNGオイオイ。
String[] arr=(String[])ArrayList.toArray(new String[0]);
0271デフォルトの名無しさん
NGNGうんこは氏んでくださいよ ホント
0272デフォルトの名無しさん
NGNGそれ無理
0273デフォルトの名無しさん
NGNG引数があるからOK(無いとClassCastExceptionになるが)
>>265
うんこは氏んでくださいよ ホント
0274デフォルトの名無しさん
NGNGオイオイ…マジボケですか…
0275デフォルトの名無しさん
NGNG自分ではどーにもならんかったので、質問させて下さい。
Integerの値をStringにしたいんですが、Integer.toStringだと
上位の桁が0だと省略されてしまうんです。
で、例えば2桁固定で上位には0を詰めるようなメソッドって
ないんでしょうか?
今は、しょうがないんで、下みたいにやってます。
String out = Int2String(hour,10,2)+":"+Int2String(min,10,2)+":"+Int2String(sec,10,2);
/* Int2String */
public String Int2String(int i,int s,int l) {
String str = null;
str = Integer.toString(i,s);
for(int ip=0;str.length()<l;ip++){
if (str.length()<l){
str = "0" + str;
}
}
return( str );
}
教えてプリーズ!!
0276デフォルトの名無しさん
NGNGjava.text.MessageFormat
つうかこの手の質問多すぎ。
0277デフォルトの名無しさん
NGNGclass Test {
public static void main(String args[]) {
ArrayList al = new ArrayList();
al.add("abc");
al.add("def");
al.add("ghi");
String[] strArr;
strArr = (String [])al.toArray(new String[0]);
for (int i=0; i<strArr.length; i++) {
System.out.println(strArr[i]);
}
}
}
全角空白は許してね。
0278デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNGそんな重鎮は投げ捨てろ。ゴミだ。
0281デフォルトの名無しさん
NGNGArrayList al = new ArrayList();
al.add("abc");
al.add("def");
al.add("ghi");
String[] strArr = new String[al.size()];
al.toArray(strArr);
for (int i=0; i<strArr.length; i++) {
System.out.println(strArr[i]);
}
0282デフォルトの名無しさん
NGNG仮にイテレータ使うにしても何でいちいちListに入れ直す必要があるんだ
わけわか
0284デフォルトの名無しさん
NGNGうんこは氏んでくださいよ ホント
0285デフォルトの名無しさん
NGNGJAVADOC見てみました。
説明がながーいので、今からしばらく読んで来ます
多謝!
0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNG&突き詰めていくとどっちが速く動くのかな。
>>281の方がString[]のインスタンスが一つ少ないからいいのかな(実際は差なんかほとんど無いとしても)
0288デフォルトの名無しさん
NGNG質問するような立場の人間がトンチンカンな回答してることが多くない?
たとえば>>265>>272みたいな回答を
初心者が真に受けたらどうすんだ、と。
0289デフォルトの名無しさん
NGNG最大公約数的に一般的なのは、
Hoge[] array = list.toArray(new Hoge[list.size()]);
だろうな。
0290289
NGNG0292デフォルトの名無しさん
NGNG一番無駄じゃん
0293デフォルトの名無しさん
NGNGなアフォ(初心者かどうかはこの際関係なし)がどんな末路を歩もうと、正直
どうでもいい。
0294デフォルトの名無しさん
NGNG0295デフォルトの名無しさん
NGNGなんでだよ馬鹿。ArrayListのソース嫁。
0296277
NGNGめんどくせーのは>>289 だった。
new String[0] っていうサイズゼロな配列を渡しているのをみて、
「あ、型を指定しているのね」ってのを感じとれるかどうか、
ってことだろ。イディオムっつうか。。
0297デフォルトの名無しさん
NGNG他の言語の初心者スレはもっとまともなんだが
0298デフォルトの名無しさん
NGNGJavaは、最近のブームに乗って馬鹿が大量流入してるから。
底辺はVB厨以下。
0299デフォルトの名無しさん
NGNG>>296
めんどくさくねー。
list.toArray(new Hoge[list.size()]) の new Hoge[list.size()] の参照値が
Hoge[] array に渡ってる。
つまり>>281の
String[] strArr = new String[al.size()];
al.toArray(strArr);
の処理を一行にまとめたのと変わらない。
ちなみに>>277には無駄がある(String[]のインスタンス2つ作ってる)。
0300デフォルトの名無しさん
NGNG> このスレは定期的にこんな惨状になるな。なんでだ?
他のスレも似たり寄ったり
0301デフォルトの名無しさん
NGNG経験が少ない人間にはわかりづらいのが本質的な問題なの
かな?
引数自身を変更して戻り値にも同じ参照を返す可能性があ
るなんて、普通の処理ならキモイよな。
0302デフォルトの名無しさん
NGNG言語仕様なのはなぜなんだ?よくわからん。コンセプトというか。
これのせいで初心者が混乱するわけだ。
あとString型なんかも、初心者に説明するのがかなりややこしい(初心者は基本データ型と混同しがち)。
0303277
NGNGclass Test {
public static void main(String args[]) {
ArrayList al = new ArrayList();
al.add("abc");
al.add("def");
al.add("ghi");
String[] strArr = new String[] { "0", "1", "2", "3", "4", "5", "6"};
strArr = (String [])al.toArray(strArr);
for (int i=0; i<strArr.length; i++) {
System.out.println(strArr[i]);
}
}
}
もっとキモイ一面。
0304デフォルトの名無しさん
NGNG---
private static final String[] NULL_STRING_ARRAY = new String[0];
public String[] hoge(List list) {
return (String[])list.toArray(NULL_STRING_ARRAY);
}
---
とすることで、無駄なインスタンスが生成されるのを極力減らすことができる
……が、やっぱり俺は>>289のやりかたが一番好きだ。
0305デフォルトの名無しさん
NGNG悔しいの?
0306デフォルトの名無しさん
NGNG性能とOOPのバランス。純粋OOPならプリミティブな変数は必要ない。
でもそれじゃ「常に性能がでない」。開発者に選択権があるのは
シゴク真っ当だと思われ。
0307277
NGNG楽しいです。w
わたし的には、あんまりインスタンスの生成数にこだわるより、
見た目すっきりなほうが好き、ってだけです。
そもそも、そんなに効率重視したいなら初めから toArray() とか使わないほうがいいかも、
とか思ったり・・・。
0308デフォルトの名無しさん
NGNG> String[] strArr = new String[] { "0", "1", "2", "3", "4", "5", "6"};
なんかまどろっこしい書き方だな。
String[] strArr ={"0", "1", "2", "3", "4", "5", "6"};
でいいだろ。
0309デフォルトの名無しさん
NGNGそんなのわざわざ定数で宣言してある方がよっぽどキモイけどな。
それならまだ>>277の方がマシだろう。
ま、漏れもやるなら>>289がいいと思うが、そもそもそんな処理したことない。
Listの中身をArrays使ってソートしたいときにObject[]で戻すことがあるくらいか。
0310デフォルトの名無しさん
NGNGせめて EMPTY_STRING_ARRAY にしとけ。
0311デフォルトの名無しさん
NGNGあまり突っ込まないでやってくれ。荒れるから。
0312デフォルトの名無しさん
NGNGJTable table = new JTable(dtm); でJTableを構築した場合、
dtm.addRow(データ[]); で行が追加できて表示されるのですが、
DefaultTableModel dtm = new DefaultTableModel(列名[], 行数);
DefaultTableColumnModel dcm = new DefaultTableColumnModel();
JTable table = new JTable(dtm, dcm); でJTableを構築した場合は
dtm.addRow(データ[]); をしてもJTableにデータが追加されません。
JDKのドキュメントを見ると、new JTable(dtm) で構築した場合は、
デフォルトでDefaultTableColumnModelを使うみたいですが、
明示的にnew JTable(dtm, dcm)と入れると動きません。
何が悪いのでしょうか。
0313デフォルトの名無しさん
NGNG当たりですな。ArrayList#get(int)コールでも、コストは大して
変わらん。(アセンブラ invokeVirtual1コール分)
配列に置換する必要がある場合なんて、普通はないな。
生のコレクションだの配列だのをAPIの入出力インターフェイスに
したいというヤツラ(個人的には、そんな定義を書く奴には殺意を
覚えるが)は、TigerでGenericsつかいませう。
0314デフォルトの名無しさん
NGNGいちいち配列オブジェクトを作って一時的に入れ替えるのもったい
ないので、java.util.Collecitons#sort()使いなはれ。
0315デフォルトの名無しさん
NGNGためしにJTable#setAutoCreateColumnsFromModel(true)してみてくれ。
0316デフォルトの名無しさん
NGNGtable.setAutoCreateColumnsFromModel(true) とかするか、
dcm.addColumn(new TableColumn()) を必要なだけやってから
new JTable(dtm, dcm) するか。
0317312
NGNGきたーーーーーーーーーーーーーーーーーーーーーーーーーー!!!
師匠と呼ばせてください。
0319デフォルトの名無しさん
NGNGよばんでいい。JTableのコンストラクタのソースコード、さっき
読んだだけ。おまいもやってみそ。悩み減るぞ。
0320デフォルトの名無しさん
NGNGコンストラクタで new してます。
Aのセッションでnewし、Bのセッションでnewした場合、
同一のオブジェクトになりますか?
また、別のオブジェクトとした場合、
同一セッションで別のbeanからコールしたいときは
どうすれば良いですか?
0321デフォルトの名無しさん
NGNG勉強する
0322デフォルトの名無しさん
NGNG0323デフォルトの名無しさん
NGNG>同一のオブジェクトになりますか?
なにとなにが同一なのかよくわからん。
newするたびに新しいオブジェクトなのは当たり前。
>また、別のオブジェクトとした場合、
>同一セッションで別のbeanからコールしたいときは
>どうすれば良いですか?
セッションに格納しときゃいいやん。セッション単位で
シングルトンチックにすればよし。
synchronized(session){
HashMap map = (HashMap)session.getAttribute("map");
if(map == null){
map = new HashMap();
session.setAttribute(map);
}
}
HttpServletの話しだよな?J2SE使いは"セッション"を
知らんぞ。質問の仕方考えたほうがいいな、お前ら。
ローカル用語と公用語の区別くらいつけれ。
0324320
NGNGstatic変数の使い方をお聞きしたかったのです。
Webアプリなんですが、別々のクライアントから接続した場合
別々にクラスをインスタンス化し、別々のHashTableが作成されるとの認識だったのですが
そのHashTableをクリアした時に、他のHashTableもクリアされる
(つまり同一化している)と言われ、それがstatic宣言しているせいだと。
なんとなく、??でしたので、質問させていただきました。
>>323
場違いでいたか。済みません。
現状は、その方法でクラス本体をセッションに乗っけてます。
0325デフォルトの名無しさん
NGNGついでに、staticな変数を初期化するときはStatic Initializerでやろうな。
0326デフォルトの名無しさん
NGNG何を見たらいいかのヒントだけでもいいので教えてくらはい。
0327264
NGNGJava初心者でどうも基本的なことが良く解らないんです。
Javaでは、newキーワードを使わないとオブジェクトにならないというのですが、
じゃあ、最初に何で配列に値が入れられるのかな?とか思うのですよ。
値というのはオブジェクトじゃないのかな?と。
あ。値すらもスケルトンなのかな。
でも、そうすると、値の一時的に入ってるメモリは何なのかな?
とか思ったりするわけで、ここら辺は無視すべきですか?
newはSmalltalkだか、shimuraからあるらしいですが、オブジェクト指向言語と
手続きが他言語だと、メモリの概念の基本部分で混乱しますね。
newする以前に値が出現しているのに、newしないとオブジェクトにならないし。
ああ。newはポインタということですか?
それで全て参照渡しな訳ですかね?
0328264
NGNGこの方法でうまくいきました。
String[] arr=(String[])ArrayList.toArray(new String[ArrayList.size()]);
しなくて良いのかな?とか思いますけど。
配列0で初期化してるのにそれ以上に大量のデータを入れてオーバーフローとか
しないんですか?
0329デフォルトの名無しさん
NGNG足りない場合はtoArray()の内部で new String[0] した配列を捨てて
new String[ArrayList.size()] と同じ処理を
(それより遅いかもしれない)リフレクションを使って行う。
0330デフォルトの名無しさん
NGNGjava 一般では bmp は読めないものと思え。
jpg, gif, 古いものでなければ png 可、ぐらいに覚えておけ。
で画像の表示だが、
Toolkit から Image にとりこんで、
Component の paint で Graphics に drawImage するとき、
「指定矩形のみ」のメソッドで描画すればいい
0331264
NGNGああ。そうなんですか。
念のため聞いておきたいんですが、これってJavaの仕様ですか?
それとも実装なのかな?
■ このスレッドは過去ログ倉庫に格納されています