【初心者】Java質問・相談スレ46【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG始めたいが何をすればいいかわからない人は、下のリンクをクリック。
http://www.wikiroom.com/java/
以下のエラーが表示されて、途方にくれているあなたは、下のリンクを。
「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path%2Cclasspath
JavaScriptの質問は、ここでは受け付けていません。
Web製作板をご利用ください。http://pc2.2ch.net/hp/
エクリプスに関する質問は同板の「統合開発環境Eclipse」スレへ
前スレ
【初心者】Java質問・相談スレ45【大歓迎】
http://pc5.2ch.net/test/read.cgi/tech/1083740382/l50
すべてのクラス (Java 2 プラットフォーム SE v1.4.0)
http://java.sun.com/j2se/1.4/ja/docs/ja/api/index.html
Java (TM) 2 SDK ドキュメント
http://java.sun.com/j2se/1.4/ja/docs/ja/index.html
Java言語規定 第2版 目次
http://www.y-adagio.com/public/standards/tr_javalang2/jTOC.doc.html
0153デフォルトの名無しさん
NGNGoffline
0155デフォルトの名無しさん
NGNGPattern や Matcher の APIDoc をよく読もう。
特に Matcher 。君の欲しいものがある。
0156デフォルトの名無しさん
NGNGなるほどmatches()は全体をマッチするわけか
で、lookingAt()が先頭からで全体がマッチする必要はなくて
find()は前回の後からってことか。
なんでわざわざ3種類もあるの?正規表現の指定だけで済む気がするんですが。
それともう一つ質問。
Pattern p = Pattern.compile("a=([1-9]*) (b=[1-9]*)");
Matcher m = p.matcher("record a=123 b=456");
で、()で囲まれた部分123と456を取り出すにはどうしたらいいんですか?
find()した後group()だと "a=123 b=456"までしかとりだせないですよね。
0157デフォルトの名無しさん
NGNGPattern や Matcher の APIDoc をよく読もう。
特に Pattern 。君の欲しいものがある。
0158156
NGNG>なんでわざわざ3種類もあるの?正規表現の指定だけで済む気がするんですが
こっちのほうの疑問はまだ残ってるんだけど 誰か教えて。
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNGフレームワークということですがstrutsを導入すると
具体的に何が可能になるのでしょうか?
なぜみんなstrutsがいいというのでしょうか?
何が充実しているのでしょうか?
0162デフォルトの名無しさん
NGNGフォームの入力チェックが簡単になる。
0163デフォルトの名無しさん
NGNGフレームワークの代名詞みたいに言われてるけど・・・
0164デフォルトの名無しさん
NGNG0165デフォルトの名無しさん
NGNGThreadをimportせずにnewできるのはなぜ?
ThreadでもRunnableを実装してるけどどういうこと?
0166デフォルトの名無しさん
NGNG0167デフォルトの名無しさん
NGNGありがとう〜
0168デフォルトの名無しさん
NGNG的外れな回答とかなぜ出ないんだ???読唇術でもやってるの?
jdbcの実装で聞きたかったけど、今はそれよりも気になる
0169デフォルトの名無しさん
NGNG・Servletを自作しなくてすむ
・画面遷移の仕組みを考えなくてすむ
・カスタムタグを使うとJSPのコードがすっきりする(と言われているw)が
Strutsを使うとそのためにカスタムタグを自作しなくてすむ
・複数人数で開発する場合に実装のルールを(ある程度)統一できる
・・・と言われているw
0170デフォルトの名無しさん
NGNGどういう仕組みなのか教えてください。
0171デフォルトの名無しさん
NGNG全然 JSP のコードはすっきりしなかったぞ…
0172デフォルトの名無しさん
NGNG前すれとかでは普通にでているわけだが。
0173デフォルトの名無しさん
NGNGみんな一度は同じ事で悩んでるからさ。(でもそゆーのは雑談スレでねw)
0174デフォルトの名無しさん
NGNGint<=>byte[]の変換ができません。
int resourceID = 55;
byte[] byteID = new byte[4];
byteID[0] = (byte)((resourceID >> 24) & 0xFF );
byteID[1] = (byte)((resourceID >> 16) & 0xFF );
byteID[2] = (byte)((resourceID >> 8) & 0xFF );
byteID[3] = (byte)(resourceID & 0xFF );
int inID = (((byteID[0] << 24) & 0xFF) | ((byteID[1] << 16) & 0xFF) |
((byteID[2] << 8) & 0xFF) | ((byteID[3]) & 0xFF));
これだと、resourceID=255までしか変換できません つД`)
256以上の数値はどうすれば良いのでしょうか??
0175デフォルトの名無しさん
NGNG読み込みは出来たのですが、描画・表示に困っています。
画像処理プログラムを作るのが目的です。
どのように表示させたらいいのでしょうか?
~~~~~~~~~
(アプレットで点描?)
0176デフォルトの名無しさん
NGNGStrutsよりJSTLとELの影響の方がでかいぞ。
0177デフォルトの名無しさん
NGNG読み込んだデータから、java.awt.image.BufferedImage を作り出せるといいのだけどね。
0178デフォルトの名無しさん
NGNG点描も漢らしくていいと思うけど。
java.awt.image.MemoryImageSourceでImage作るとか。
0179デフォルトの名無しさん
NGNGなぜに戻すときに& 0xFFする?
int inID = ((byteID[0] << 24) | (byteID[1] << 16) | (byteID[2] << 8) | (byteID[3]));
こうでないのか?
0181デフォルトの名無しさん
NGNGなるほど。byteが符号付だから& 0xFFで符号なしの値にするのか。
int intID = (((byteID[0] & 0xFF) << 24) | ((byteID[1] & 0xFF) << 16) | ((byteID[2] & 0xFF) << 8) | ((byteID[3] & 0xFF)));
こうすればいいのだ。
普段nio使ってるからこれを考えなくて済んでた俺はへたれですかそうですか。
0182デフォルトの名無しさん
NGNGBigEndian でいーなら DataInput 使っても読み込めるよ。
int inID = new DataInputStream(new ByteArrayInputStream(byteID)).readInt();
0183174
NGNGををを!!
先に& 0xFFするのでつね。
やってみます。
ありがとうございます!!
nioってなぁに??な私のほうがへたれです。
>>182 様
一度やってみたのですが、なぜかnullpoになってしまいました。
もっと複雑なコードの中に組み込んでしまっていたので、
他の原因があったのかもしれません。やってみます。
ありがとうございます!!
0184デフォルトの名無しさん
NGNGjava.nio
0185デフォルトの名無しさん
NGNGガッ
0186デフォルトの名無しさん
NGNG0187デフォルトの名無しさん
NGNG再描画用のスレッドが別途動いていて、そいつのキューに要求が入り、あとで再描画が実行される。
update ... 引数となる Graphcis に「即座に」描画を行う。paint との違いは実装に依りけり。
まっちろに消去する処理を入れて、そのあと paint を呼ぶだけだったりする。
Component#getGraphics() してそれを Compoent#update(Graphics) に渡したりもできるが、
そーゆーことは AWT 実装に任せておいて、repaint だけぽんと呼ぶのが普通だな。
その分トロくはなるが、上記方法は素人が手を出すと表示がめちゃめちゃになるし。
0188デフォルトの名無しさん
NGNG内部のクラスにもいろいろあるが。
「内部のクラス」なんだから一回り外のクラスのフィールド・メソッドには自由にアクセスできる。
それだけじゃん。仕組みもへったくれもない。あほくさ。
0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNGmp3 は特許問題だったかのせいで標準でサポートされなくなった。
JLayer とか使えば一応できる。
http://www.javazoom.net/javalayer/javalayer.html
applet もある。
http://www.javazoom.net/applets/jlguiapplet/jlguiapplet.html
0192デフォルトの名無しさん
NGNGSUNクスコ!!
0193デフォルトの名無しさん
NGNGアプレットのテキスト入力エリアで起動するIMEの変更ってできるんでしょうか?
たとえば、
あるクライアントには2種類のIMEがインストールされているとします。
(MS製Standard IMEと富士通製IMEとか)
普段は”MS製Standard IME”を使用しています。
で、あるテキストボックスに入力するときには
”富士通製IME”を自動的に起動して入力させるとか。
もしご存知の方がいたら教えてください。
0194175
NGNG感謝です。
0195デフォルトの名無しさん
NGNG単純に IME の ON/OFF はできるけど、そういう気持悪い例は見たことないな。
万一 Windows レベルでもできないのならば Java には無理。
その富士通製というのは何故使いたいの? 登録している頻出単語を入力させたいだけなら、
自分で作った InputMethod になら変えられるらしいから、そうしてみたら?
http://java.sun.com/j2se/1.4/ja/docs/ja/guide/imf/spi-tutorial.html
それとも文字認識か何かかな?
0196193
NGNGレスさんくす。
>その富士通製というのは何故使いたいの?
漏れも良く分からないんだけど、特殊な機能があるそうで。
調べるように頼まれたですよ。
元々C++屋なんでJAVAの細かいことよくわかんないから聞いてみた。
Win32APIならできそうなんで、
「COM作ってjavascriptから呼び出したらだめ?」って言ったけどだめだって。
クライアントインストールレスでやれと。
あー、ええと今聞いたら文字認識とか文字の検索がすごいんだそうで。w
0197デフォルトの名無しさん
NGNGActiveX
0198デフォルトの名無しさん
NGNGでも 1.4 プラグインは入れないと、InputMethod いじるのは絶対無理だぞ。
0199193
NGNG>>197
あーActiveXならいけるかな?
でもインスコダイアログでるじゃん?あれいいのかな...聞いてみよ。
>>198
そのInputMethodつーのはIME切り替えられるんでしょうか?
どうも富士通製IMEの独自機能を使いたいらしいので。
0200デフォルトの名無しさん
NGNG> そのInputMethodつーのはIME切り替えられるんでしょうか?
目的の用途には使えんだろうが
java.awt.im.InputContext#selectInputMethod(Locale) で選択できる。
っつーか普段から「富士通製」使えよ。
0201デフォルトの名無しさん
NGNGみたいなのを探しています。お勧めってあります?
0202デフォルトの名無しさん
NGNGint x;
classB y = new classB; インスタンス化
}
class classB{
ここからclassAのint x値を変更したい。
}
どうすれば良いですか?
お願いいたします。
0203デフォルトの名無しさん
NGNG0204デフォルトの名無しさん
NGNGclassAにメソッドを作っても、classBから呼び出す方法がわかりません。
検索語もわからないので、質問した次第です。
0205デフォルトの名無しさん
NGNGSample(int x, int y){
}
}
でSampleのコンストラクタに値を入れながらSampleの型の配列を宣言するのって
どうしますか?
0206デフォルトの名無しさん
NGNGクラス名が大文字で始まらないのは気持ちが悪いので、変更した。
ClassB のコンストラクタ呼び出しの際に、ClassAのインスタンスを this として渡してやる例。
class ClassA {
int x;
ClassB y = new ClassB(this);
}
class ClassB {
private ClassA a;
public ClassB(ClassA a) {
this.a = a;
}
public void change(int x) {
a.x = a.x + x;
}
}
0207デフォルトの名無しさん
NGNGSample[] sampleArray = new Sample[] {new Sample(1, 2), new Sample(3, 4)};
0208デフォルトの名無しさん
NGNGClass.forName("acme.db.Driver");
のように書くそうですが、
forName()メソッドは戻り型がClassクラスですよね?
何故
obj = Class.forName("acme.db.Driver");
のように書かないのでしょうか?
戻り値であるドライバのClassオブジェクトは何処に行ってしまうのですか?
0209デフォルトの名無しさん
NGNG> Class.forName("acme.db.Driver");
その場合は acme.db.Driver を初期化するのが目的なので戻り値は捨ててもいい。
あんまりやらんけど、クラスの初期化ができるなら
Class.forName(String) 等を使わなくても全く構わないと思われ。
0210デフォルトの名無しさん
NGNG戻り値は必ず受け取らねばならないという決まりはない。
0211デフォルトの名無しさん
NGNG最初は誰もが疑問に思う道
ドライバはクラスロード時のスタティックによって初期化される物と
決まっていると思えばいい
まぁ、最初にこれ書くことから何をやろうとしているかが分かるんで
人のコード追うとき楽だ
0212デフォルトの名無しさん
NGNGサブクラスのインスタンスを生成するときに、
サブクラスのコンストラクタ内で、
スーパークラスの引数なしコンストラクタが実行されますよね?
ここまではあってますか?
↑の前提があっているとして、
スーパークラスの引数なしコンストラクタの実行を
行わせたくない場合はどうすればよいでしょうか?
0213デフォルトの名無しさん
NGNG> スーパークラスの引数なしコンストラクタの実行を行わせたくない場合はどうすればよいでしょうか?
単純に、呼び出されたくなければ、スーパークラスの呼び出されたくないコンストラクタを private 宣言すればよい。
ただし、継承元クラスのすべてのコンストラクタが呼べない場合、そのクラスを継承することはできなくなる。
> クラスの継承を行い、サブクラスのインスタンスを生成するときに、サブクラスのコンストラクタ内で、
> スーパークラスの引数なしコンストラクタが実行されますよね?ここまではあってますか?
いいえ。
「スーパークラスの引数なしコンストラクタが実行」されず、引数のあるコンストラクタが実行される場合があります。例えば、以下。
クラス B のコンストラクタは、どちらもスーパークラスの引数なしコンストラクタを呼んでいない。
(1つは、自クラスの別なコンストラクタを呼び出している。もう1つは、スーパークラスの引数のあるコンストラクタを呼び出している。)
クラス B のインスタンス生成の際には、どちらのコンストラクタを使おうとも、クラス A の引数
無しコンストラクタは呼ばれない。(引数を取るほうのコンストラクタが使われる。)
class A {
public A() {
}
public A(int i) {
}
}
class B extends A {
public B() {
this(6);
}
public B(int i) {
super(i);
}
}
「8.8.5 コンストラクタ本体」
http://www.y-adagio.com/public/standards/tr_javalang2/classes.doc.html#78435
0214212
NGNGうーん、難しい。
!あ、、、言葉足りてませんでした…
「サブクラスのコンストラクタ内でスーパークラスのコンストラクタを
明示的に指定していないとき」
の話でした。すんません。
でも、勉強になりました。publicをサブクラスで実行できるのか…
まだ試してないんで、今から試してみます。
ありがとうございました。
0215デフォルトの名無しさん
NGNGjava の基本を知らなきゃ簡単には作れない。
知ってりゃサイトに頼らず作れる。以上。さようなら。
0216デフォルトの名無しさん
NGNGint x = 1;
x=x++;
System.out.println(x);
これの結果がなぜ「1」になるのかがわかりません。
だれか教えてください。
0217デフォルトの名無しさん
NGNG0218216
NGNGねたじゃないですよぉ。
0219デフォルトの名無しさん
NGNGx++;
System.out.println(x);
でいいのでは?実行していないけど。
>>215
ありがとう。そうだよね。参考書買ってきて勉強しまふ。
0220デフォルトの名無しさん
NGNG2行目をいろいろ変えてみると勉強になるよん。
x=x++;
x=++x;
x++;
0221216
NGNGx=(x++)+1 => 2
x=(++x)+1 => 3
x=(x++)+x => 3
x=(++x)+x => 4
後処理は評価値が決まった後に行われるので
その後でインクリメントしても最後に代入
される値に影響されないってことですかね。
試験にでたらひっかかりそうでした(^^;;
0222デフォルトの名無しさん
NGNG下に示す、コードの手ほどきを受けたいです。
これだと、class BのインスタンスのtoString()は、
class Stringの"hoge"を返すんですが、
class AのtoString()を継承したくない(つまり、class ObjectのtoString()が欲しい)時には
どうすればよいのでしょうか?
class A
{
String toString()
{
return "hoge";
}
.....
}
class B extends A
{
......
}
0223デフォルトの名無しさん
NGNG一般的には上書きされたメソッドをさかのぼって呼び出すのは無理。
toString() だけに関して言えば、Jakarta Commmons の lang の
org.apache.commons.lang.ObjectUtil#appendIdentityToString(StringBuffer, Object)
とかで使われてる方法
object.getClass().getName() + "@" + Integer.toHexString(System.identityHashCode(object))
を使えば希望の出力が得られるはず。
http://jakarta.apache.org/commons/lang/api/org/apache/commons/lang/ObjectUtils.html#appendIdentityToString(java.lang.StringBuffer,%20java.lang.Object)
http://cvs.apache.org/viewcvs.cgi/jakarta-commons/lang/src/java/org/apache/commons/lang/ObjectUtils.java?rev=1.23&view=markup
0224デフォルトの名無しさん
NGNG0225222
NGNGう、うへぇ…
難しすぎる…。すんごいプログラムを組むには、それくらいの知識が必要なのですか?
ありがとうございました。
>224
ありがとうございました。
0226222(連投スマソ、自力じゃわからんです)
NGNGこれbp承したクラャXBがあります。
これを更に継承したクラスCがあります。
Aにprotectedな変数hogeがあるんですが、
Cのインスタンスから、
super.super.hogeのようにして呼ぼうとしたら、
なんだそりゃ?といわれてしまいました。
僕が意図することは、行えるでしょうか?
出来るとしたら、どうすれば良いでしょう?
0227デフォルトの名無しさん
NGNGもちろん、クラスBにも、新たに hoge という名前のフィールドが宣言されてるんだよね?
もし無いなら、単に、 hoge でアクセスできるもんね?
おもしれー。どうやるんだろ。
0228227
NGNGclass A {
protected String hoge ="A:hoge";
}
class B extends A {
protected String hoge ="B:hoge";
}
class C extends B {
protected String hoge ="C:hoge";
public void foo() {
System.out.println(((A)this).hoge);//A:hoge
System.out.println(((B)this).hoge);//B:hoge
System.out.println(super.hoge);//B:hoge
System.out.println(hoge);//C:hoge
}
}
0229222=226
NGNGおおぉおお!
ありがとうございました。激しく感謝します。
0230デフォルトの名無しさん
NGNG0231229
NGNGそうなんですか。ひとまず使えるようになってから考えようとか思ってました。ます。
いや、気になって気になって。
で、226,227の件で、今度はstatic変数だとできるかなぁと気になって、
知恵と知識が無いなりに試してたんですが、
わからないんで、ご教授いただけたらと思ったのですが、お願いできますでしょうか?
0232横槍
NGNGしかしだな、static なメンバは、
インスタンスではなく、クラス宣言を介してアクセスするもの。
表現するには明示的にクラスを指定する。回りくどいことなしに A.hoge, B.hoge と書いていく。
君の仮定はみんな、設計が汚い。
試しでやってるからピンとこないんだろうが、
何かの意味があってそういう書き方をすることは、まずない。
勉強する分にはいいけどな。
0235デフォルトの名無しさん
NGNGJAVA特有の部分だけ効率よく学びたいんですが、結城さんの
本の下巻ってどうでしょうか?
0236デフォルトの名無しさん
NGNGクラスの親子間で同じ名前のメンバーがある場合にどれをつかうかは、
クラスメソッド&変数と、インスタンスメソッドとでちがう。
クラスメソッド&変数の場合、変数の型によって決まる。
インスタンスメソッドの場合、変数がさすオブジェクトの型によって決まる。
0237デフォルトの名無しさん
NGNG大体どういう資格もってるんですか?こういう人たちって
シスアドとかですか?シスアド自体言葉しかしらんのですが・・・
有資格者の人からしてみればサイト作ったりスクリプト作ったりなんて
簡単なことなんですか?
よろしくお願いします。
すれ違いのようですが、何処で聞けばいいのか分からんのです。
0238デフォルトの名無しさん
NGNGマ板のほうが近いような
マジレスすると単語にはなんにも意味はない
SEっていうと凄く見えるだけ
ITって単語になんの意味もないのと同じ
0239デフォルトの名無しさん
NGNGIPAの資格とか各種ベンダーの資格とか色々。
ベンダー資格は持ってないんだけどIPAに関して言えば、
プログラムというよりはもっと広い分野の勉強だから
これとればプログラムが組めるってもんでもないと思う。
0240デフォルトの名無しさん
NGNG板違いなのにありがとう。
深く聞いても理解できませんでした(汗
あきらめます。
0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNGそいつらに比べるとJava特有の部分っていうのがでかすぎるな。
Perl/PHPと比べるならServlet/JSPとJSTL、strutsくらいは知っておいたほうがいいけど、結城さんの本にはサーバーサイドのことは触れてなかったはず。
0244229
NGNG神降臨。ありがとうございました。
(どうすればキャストできるのか考えてますた。的外れだったようです。 つД`)
>236
あの、僕にはまだ早いのかもしれませんが、もし宜しければ、
バカにも解るように噛み砕いて教えていただけないでしょうか?
>クラスメソッド&変数と
これは、クラスメソッド及びクラス変数及びインスタンス変数、ということですよね?
これの型というのは、クラスメソッドでは戻り値の型ということですか?
>インスタンスメソッドの場合、変数がさすオブジェクトの型
ってなんでしょう??うーん…
0245デフォルトの名無しさん
NGNGあのな、そんな一度に全部わかろうとするな。
とりあえず入門書を2,3回通読しろ。もちろんまともな本な。
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNGクラス内の、スタティックフィールドに、
メソッドからアクセスするときに、何気にthisをつけてしまったんですが、
そしたら、普通に動きました。
thisというとインスタンスを指定するために用いるものと思っていたのですが、
もっと何か重大な意味があるのでしょうか?
個人的にはthisをつけたら、コンパイルエラーが相応しいと考えていたので、カルチャーショックを禁じ得ませんって言うか何を言ってるのだろう。。。
0248デフォルトの名無しさん
NGNGこれを実行したら、あとは結果を自分で考えて。
public class Demo{
public static void main(String[] args){
SuperClass super1 = new SuperClass();
SubClass sub2 = new SubClass();
SuperClass super2 = sub2;
System.out.println(super1.foo + ", " super1.bar());
System.out.println(sub2.foo + ", " sub2.bar());
System.out.println(super2.foo + ", " super2.bar());
System.out.println(((SubClass)super2).foo + ", " ((SubClass)super2).bar());
}
}
Class SuperClass{
String foo = "SuperClass";
String bar(){return "SuperClass";}
}
Class SubClass extends SuperClass{
String foo = "SubClass";
String bar(){return "SubClass";}
}
スペースが全角になっているのでコピペする時は注意。コンパイルエラーがあったら直してね。
0249デフォルトの名無しさん
NGNGターゲット参照を使用してクラスメソッドを呼んでも言語仕様的には全く問題ない。
0250デフォルトの名無しさん
NGNG> thisというとインスタンスを指定するために用いるものと思っていたのですが、
> もっと何か重大な意味があるのでしょうか?
this が特別扱いされたのではなくて、
ターゲット参照を使ったクラスメソッド呼び出しと解釈されただけ。
ちなみに、ターゲット参照を使ったクラスメソッド呼び出しだと、
((System)null).out.println(((System)null).getProperty("user.dir"));
とかもできる。
0251デフォルトの名無しさん
NGNGどうも。サーバサイドの技術の方の勉強に時間を割きたいんで
言語自体の勉強をサクっと終わらせたいんですけど考え甘いですかね。
よく分かってないんですが、もちろんサーブレットやらJSPを使って
プログラムする時にもJAVAの文法ってのが必要ですよね?
あとOOな言語に触ったことないからそこらへんの勉強もまず
しないとなーとか色々考えてます。
その辺をふまえて結城さんの本の下巻はどうかなーと思って
聞いてみました。
0252244
NGNGありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています