【初心者】Java質問・相談スレ13【大歓迎】
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG( , ノ` )
\,; シュボッ
(),
|E|
_、_ Java質問相談スレ パート13だ…
( ,_ノ` )y━・~~~
関連情報は >>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/
パソコンの基本操作に関しては、PC初心者板で質問しましょう ⇒ http://pc.2ch.net/pcqa/
『コマンドまたはファイル名が違います』>>2
『'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。』>>2
『Exception in thread "main" java.lang.NoClassDefFoundError: Hello』>>2
Java(TM) 2 SDK インストールガイド
http://java.sun.com/j2se/1.4.1/ja/install.html
基本的にsage進行でおねがいします。また煽り厨は放置でお願いします。
0153名無しさん@Emacs
NGNGそのままでは取り出せない。だから取り出せるように実装する必要がある。
0154デフォルトの名無しさん
NGNGやっぱだめか。
LayoutManager の実装クラス作って対処します。
サンクス。
0155デフォルトの名無しさん
NGNGComponentをキー、Constraintsを値にするMap一個作っとけばいいだけやん。
0156デフォルトの名無しさん
NGNGマメ-DAO間でメンバごとにいちいち入れ替えてるのか?アホだ・・・
setterとgetterの名前工夫して、リフレクションパッケージ使えば
そんな外側での苦労ナシに自動的にいれ替えられるロジックくめる
と思うけど。
そもそも入れ替える必要なんかないと思うけどねえ。
DAOがメンバ変数にマメをもつようにして、DAOにマメのsetter置いて
DAOの処理がマメの変数をいじるようにすれば、簡単じゃ。
大それたシステム組む前に、オブジェクト参照をちゃんと使いこな
せるようになれや。
0157デフォルトの名無しさん
NGNG通ぶって変な用語多用したばっかりに可読性が損なわれている。
あんたのプログラム、保守する奴かわいそうだわ。
0158デフォルトの名無しさん
NGNGベジェ曲線を描き、その上をなぞる形で画像を動かしたいのですが。
0159デフォルトの名無しさん
NGNG0160デフォルトの名無しさん
NGNG自分で作るなら可能ですね。
0161158
NGNG0162158
NGNG0163158
NGNG3点ベジェも4点ベジェも座標を取得することに成功!
誰かほめてください。
0164デフォルトの名無しさん
NGNGよくやった。
ここに晒せ。
0165デフォルトの名無しさん
NGNGどうやるんでしたっけ?
0166158
NGNGdouble t;int tc;
int[] x={0,160,320,640};
int[] y={240,0,0,240};
int[] b_x=new int [40];
int[] b_y=new int [40];
for (t=0.0,tc=0; t<1.0; t=t+0.025,tc=tc+1)
{
b_x[tc]=(int)(x[0]*(1-t)*(1-t)*(1-t) + 3*x[1]*t*(1-t)*(1-t) + 3*x[2]*t*t*(1-t) + x[3]*t*t*t);
b_y[tc]=(int)(y[0]*(1-t)*(1-t)*(1-t) + 3*y[1]*t*(1-t)*(1-t) + 3*y[2]*t*t*(1-t) + y[3]*t*t*t);
}
g.drawPolyline(b_x,b_y,40);
ググってたらC言語だけど、ベジェ曲線を計算して
描いてるソースを見つけられたので楽勝でした。
0167デフォルトの名無しさん
NGNG0168デフォルトの名無しさん
NGNG方法がわかりません。助けてください。
"システム" -> "\u30b7\u30b9\u30c6\u30e0"
0169デフォルトの名無しさん
NGNG0170デフォルトの名無しさん
NGNGそんな感じ。
valueにnull放り込めないのがイライラする。
0171169
NGNGってことは、VectorよりArrayListの方が好まれているように、
HashtableよりHashMapを使った方がいいのれすか?
0172デフォルトの名無しさん
NGNG「HashMap クラスは Hashtable と同じと見なしてもかまいませんが、
HashMap の方は同期がとられず、null の場合もあります。」
上の通り、同期をとる必要がないならHashMap。
関係ないけど、java.util.HashSetの中を覗くとHashMap使って手抜き
している。
0173169
NGNGありがとうございます。
0174デフォルトの名無しさん
NGNG別に手抜きじゃねーよ
0175デフォルトの名無しさん
NGNGImage img = getImage(getDocumentBase(), "image.jpg");
とした場合
imgはImageクラスのインスタンスなんでしょうか?
しかしImageクラスはabstractだし
newで作成したオブジェクトがインスタンスと呼べるのでしょうか?
だれか教えてください。
0176デフォルトの名無しさん
NGNG>Image img = getImage(getDocumentBase(), "image.jpg");
の場合 img は「Image のインスタンス」を指す、と言える。
実際にどのImageの実装が使われるかは Applet#getImage() の実装次第。
0177デフォルトの名無しさん
NGNG少なくともImageかそれを親に持つ派生クラスか。ってとこか。
0178デフォルトの名無しさん
NGNG別のプロセスから、そのファイルを開いて読み書きすることは
可能なのでしょうか?教えて下さい
0179デフォルトの名無しさん
NGNG少なくとも非推奨。
0180デフォルトの名無しさん
NGNGありがとうございます。
0181デフォルトの名無しさん
NGNGFileReader で開いてるときって別プロセスから書けたっけか?
0182RMI
NGNG>どのようなリモートオブジェクトを使用するべきでしょうか?
という質問をした者です。実装するリモートオブジェクトは
FileOutputStream 及び FileInputStream を使って作成し、
シリアル化すればいいのでしょうか?
0183デフォルトの名無しさん
NGNG0184デフォルトの名無しさん
NGNGパラメータにSerializableなオブジェクト使えという話にみえるが。
画像ファイルをロードして作ったバイトアレイを返せばいいだけかと。
0185名無しさん@Emacs
NGNG何でFileOutputStreamなんだよ。って言うか、RMIを
本当に知ってるのか?
0186デフォルトの名無しさん
NGNG例えばTaxiクラスとBusクラスをつくる場合、
public interface DrivingImpl {
pubilc abstract void accelerator();
public abstract void brake();
public abstract void clutch();
}
のようなインターフェースを作って確実に実装するように両クラスに
インプリメントしたりすればいいんですか?
それならインターフェースをつかわずに抽象クラスに定義してもいいような
気がしますがどのように使っていけばいいのか頭が混乱してわかりません。
手元の本には確実にプログラマがメソッドを定義するような設計・仕様書
的な意味合いが強いと書いてありますが。
0187デフォルトの名無しさん
NGNG>それならインターフェースをつかわずに抽象クラスに定義してもいいような
その通り。
でも、ファイルを保存できるSerializableとかスレッドにできるRunableとかを考えてみる。
エロ本クラスとファイルクラスと言う全然違う用途のクラスが同じ親を継承しているというのは非常に奇妙だとは思いませんか?
そして、そういうオプション的な機能のためにJavaの1本しかない継承関係を消費するのは非常にもったいない。
0188デフォルトの名無しさん
NGNGinterface は、まさに仕様書と言っていい。
提供するサービスを規定するものだ。
よくある構成はこんな感じ。
・interface でメソッドを規定
・interface を実装する抽象クラスで共通な処理を記述
・抽象クラスを継承するサブクラスで個別の処理を記述
・使う側は interface 型の変数を宣言してインスタンスを代入する
interface の使い方に思いをはせるのは、工夫の第一歩だ。がんばれ。
でも、Implで終わる名前は interface を実装するクラスに付けるものだから気をつけれ。
0189デフォルトの名無しさん
NGNGHighStandardプロジェクトって所に、DynamicCompilerってクラスがあったんだが、
今見たら無くなってるな。
0190131
NGNG>>152
Mainをnewしたら飛んできました
>>156
おまえアホ?豆、及び、抽象化クラス群の実装を自動生成しようとしてるんだぞ
classどころかソースさえないのに、どうやってリフレクションするんだ?
実装の仕様が来る毎に豆作ってテストするの面倒なんだよ
こんな感じでできるみたい
import java.io.*;
// javac -classpath ./;D:\j2sdk1.4.1\lib\tools.jar jc.java // java -cp ./;D:\j2sdk1.4.1\lib\tools.jar jc
interface base { public void print(); }
public class jc {
static final String javaclass = "public class baseImpl implements base { public void print() { System.out.println(\"ヽ(゚∀゚ )丿\"); } }";
public static void main(String[] arg) {
try {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter( new FileOutputStream("./baseImpl.java") ));
bw.write(javaclass , 0 , javaclass.length());
Class cls = Class.forName("com.sun.tools.javac.Main");
com.sun.tools.javac.Main javac = (com.sun.tools.javac.Main)cls.newInstance();
String[] args = new String[] {"-g","-encoding", "Shift_JIS","-classpath", "./","-d", "./","./baseImpl.java"};
javac.compile( args );
cls = Class.forName("baseImpl");
base bs = (base)cls.newInstance();
bs.print();
} catch( Exception e ) { e.printStackTrace(); }
}
}
0191デフォルトの名無しさん
NGNG同一プログラムを実行させられるようにできる制御を組みたいんだけど、
どうやって書いていけばいいかな?
また、そんなことについて書いてある参考書やWebページがあったら教えて欲しい。
0192デフォルトの名無しさん
NGNGOS依存のコードを書くことになると思うけど...
0193191
NGNGすればいいのかな?
0194デフォルトの名無しさん
NGNGttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/io/File.html#createNewFile()
0195デフォルトの名無しさん
NGNGttp://jakarta.apache.org/bcel/
0197デフォルトの名無しさん
NGNG質問してもいいですか?
0198デフォルトの名無しさん
NGNGおうよ。仕事か?
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG0201200
NGNGいつもスレみてもチンプンカンプン。
0202デフォルトの名無しさん
NGNGお兄さんの胸に飛び込んできなさい!
はやくぅ〜。
0203デフォルトの名無しさん
NGNG超XPだな
0204デフォルトの名無しさん
NGNG早く質問しろ。
い〜や、して下さい!
0205195
NGNGClassGen cg = new ClassGen(
"HelloWorld", "java.lang.Object", "<generated>"
, Constants.ACC_PUBLIC | Constants.ACC_SUPER, null
);
ConstantPoolGen cp = cg.getConstantPool();
InstructionList il = new InstructionList();
MethodGen mg = new MethodGen(
Constants.ACC_STATIC | Constants.ACC_PUBLIC, Type.VOID, new Type[] {new ArrayType(Type.STRING, 1)}
, new String[] { "argv" }, "main", "HelloWorld", il, cp
);
InstructionFactory factory = new InstructionFactory(cg);
il.append(factory.createFieldAccess(
"java.lang.System", "out", new ObjectType("java.io.PrintStream"), Constants.GETSTATIC
));
il.append(new PUSH(cp, "Hello, World"));
il.append(factory.createInvoke(
"java.io.PrintStream", "println", Type.VOID, new Type[] { Type.STRING }, Constants.INVOKEVIRTUAL
));
il.append(InstructionConstants.RETURN);
mg.setMaxStack();
cg.addMethod(mg.getMethod());
il.dispose();
cg.addEmptyConstructor(Constants.ACC_PUBLIC);
0206195
NGNGcg からバイナリを生成し、クラスとしてロードし、main メソッドを呼び出す。
ByteArrayOutputStream out = new ByteArrayOutputStream();
try{
cg.getJavaClass().dump(out);
Class clazz = new ClassLoader(){
public Class load(byte[] data){
return defineClass(null, data, 0, data.length);
}
}.load(out.toByteArray());
new JavaWrapper(clazz.getClassLoader()).runMain(clazz.getName(), new String[0]);
} catch(Exception anException){
anException.printStackTrace();
}
0207131
NGNGお答えありがとうございます
com.sun.tools.javac.Main
を使わずに自分で.class作るとの?
難しすぎます・・・
JVMの仕様など知らないし
でも面白そうだしJVMの勉強になりそうなので
ちょこっと調査してまします
0208デフォルトの名無しさん
NGNGすべてのぷらっと
0209デフォルトの名無しさん
NGNGArrayList al1 = new ArrayList();
ArrayList al2 = new ArrayList();
while(rs.next()){
al1.add(rs.getString(0));
al2.add(rs.getString(1));
}
String[] data = new String[]{al1,al2};
.......
return data;
みたいな感じでやっているのですが、
変数の宣言が多くてなんか効率が悪いような気がします。
例えば10行10列のデータだと、
ArrayListを10個も作らないといけなくなってしまうし。
皆さんはどんな風にしてますか。
どういう風に書けば効率がいいのでしょうか。
0210初心者その1
NGNGPCから見てる人と携帯から見てる人で表示するページを
切り替えるにはどうすれば良いのですか?
JavaScriptで可能でしょうか?
0211デフォルトの名無しさん
NGNGなぜ、ビーンを使わないの?
というか、1レコード1オブジェクトにするとすっきりすると思うよ。
ArrayList records = new ArrayList();
while(rs.next()){
XXXRecord rec = new XXXRecord(rs.getString(0),rs.getString(1));
records.add(rec);
}
return records;
0212デフォルトの名無しさん
NGNG>String[] data = new String[]{al1,al2};
これってコンパイル通るの?
というか、普通「行」方向にArrayList使いません?
列数はともかく、行数を知る術がない(知りません)ので、最低
一つはArrayList()が必要だと思います(たぶん)。
自分は下のような方法を良く取ります。
int columSize = rs.getMetadata().getColumCount();
ArrayList ary = new ArrayList();
while( rs.next() ) {
String[] row = new String[columSize];
for(int i = 0; i < columSize; i++) {
row[i] = rs.getString(i);
}
ary.add(row);
}
String[][] data = (String[][])ary.toArray(new String[0][]);
return data;
0213デフォルトの名無しさん
NGNGJavaScriptでも可能だが、
ここはJavaだぜ!混同してねぇか?
サーバーならHTTPのUserAgent見て判断なされよ。
てか、それだったら言語関係ないだろ。
質問するスレ間違ってねぇか?
ネットワークプログラミング相談室 Port4で聞いてこいや!
0214209
NGNG今までずっと独学でやってきているので、
変なことやってても矯正してくれる人がいないんですな。
1レコード1オブジェクトですか。勉強になりました。
0215デフォルトの名無しさん
NGNGちがうよ!>>210はきっとJSP使ってしたいんだよ!
0216デフォルトの名無しさん
NGNG携帯でJavaScriptは動かんだろ・・・
213と同じだが
String userAgent = request.getHeader("User-Agent");
で。
0217デフォルトの名無しさん
NGNG読み込むにはどうすればいいんですか?¥を使ってみたらエラーが出ました。
0218デフォルトの名無しさん
NGNGギャー¥一個しかつけてなかった。
0219デフォルトの名無しさん
NGNGを、実行環境によらず Shift_JIS(あるいは EUC-JP) のファイルで出力するには
どうすればよいのでしょうか?
0220デフォルトの名無しさん
NGNGjava.io.OutputStreamWriter ですな
0221デフォルトの名無しさん
NGNG格納するモノの型が不定なので、取り出すときに困る・・・そこで型を明示したものを
一緒に格納しようと考えています。
(つまり、intを入れるときは"int"という文字列を一緒に入れておき、出すときに判別する)
こういうのってアリですか?それとも豪快に勘違いしてます?(´・ω・`)
アリだとしたら、引数はObjectになってますが、複数の違う型を入れることってできるんでしょうか?
0222デフォルトの名無しさん
NGNG直接、
Hoge.getHoge();
と書くのと、インスタンスを作って
Hoge hoge = new Hoge();
hoge.getHoge();
とするのは、何が違うのですか?
どのように使い分けられているのでしょうか。
0223RMI
NGNG仰るとおりバイトアレイを返すだけでできました。
ありがとうございました
0224デフォルトの名無しさん
NGNG>intを入れるときは"int"という文字列を一緒に入れておき、出すときに判別する
キーに含めるってこと?ならいいんじゃない。
>引数はObjectになってますが、複数の違う型を入れることってできるんでしょうか?
int型は入らんと思うが。
参照型のデータならなんでも入ると思うけど。
hash.put("Integer",new Integer(5));
hash.put("String","あああ");
ってことでしょ?
0225219
NGNGう〜ん。UNIX 環境だと「�@」が文字化けしてしまうのはしょうがないところなのかな。
パラメータは色々試したのですが、何かいい手はないでしょうか?
String str = "てすと文字列\uff5e\u2460";
File file = new File(filename);
FileOutputStream fos = new FileOutputStream(file);
ByteArrayInputStream ins = new ByteArrayInputStream(str.getBytes());
InputStreamReader in = new InputStreamReader(ins, "JISAutoDetect");
OutputStreamWriter out = new OutputStreamWriter(fos, "MS932");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
out.close();
0226デフォルトの名無しさん
NGNGKeyに含めるんじゃないです。ユーザが入れたデータをKeyとValueに
関連づけて処理するんですが、Keyの名前(これは文字列)とValueに入るデータの
型が不定なので、Valueを入手してから中身の型を判別できないかなと思ったんです。
put時はString→Objectで入れますが、逆はどうしようってことですね。
0227デフォルトの名無しさん
NGNGStringからindexOfとsubstringを用いてある部分を取り除きたいのですが、
その部分に空白が含まれていた場合その空白を取り除きたいです。
StringTokenizerを使ってトークンに分解し、連結するしか方法が浮かぶのですが、
他に良い方法はないのでしょうか
0228227
NGNG連結する方法が浮かぶのですが ○
すいません
0229デフォルトの名無しさん
NGNGinstanceof で調べれば?
0230デフォルトの名無しさん
NGNGs = s.replaceAll("\\s+", "");
0231デフォルトの名無しさん
NGNG正規表現?って1.4のみですね。
0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNGうぁっ、そんなのがあったとは。 Σ(・ω・ノ)ノ
サンクス、試してみます。
0234名無しさん@Emacs
NGNG要件ってどんな?なんかえらいマズーな
設計のにほひ..
0235名無しさん@Emacs
NGNGreplaceのcharで空白飛ばせばいいんでないの
0236座標などについて
NGNGfinal BufferedWriter out3 = new BufferedWriter(new OutputStreamWriter(out2.getOutputStream()));
try
{
out3.write(f3.getText()+"\n");
out3.flush();
こんな感じで。
それで次に、自分の描いた絵を相手に送れるように作りたいのですが、座標を送ったら
いいと思うんですけど座標とかを送るメソッドとかは何を使ったらいいんでしょうか?
0238デフォルトの名無しさん
NGNGWin98+JBuilder5+J2SE1.4.1で作成したクラス(画面)を
linux[Redhat7.3] + J2SE1.4.1で実行してのですが
文字化けが発生しました。
いくつかのWEBサイトで、渡辺フォント?を入れろ(設定しろ)と書いてあったのですが
なぜこのフォントを入れないと日本語が表示出来ないのでしょうか?
またこのフォントを入れなくても表示できる方法はあるのでしょうか?
0239デフォルトの名無しさん
NGNG論理フォント名使っている?
DialogとかMonospacedとか。
0240238
NGNG論理フォント名・・・?
Linux(UNIX)も今回始めて触った程度なので
スミマセン、何の事を言われているか分かりません。
Linuxは別人がインストールしたのでどう言う設定になっているか分かりませんが、
多分、手順に沿って標準インストールだけしてあると思います。
先に書き忘れましたが、WEBサイト参考にして渡辺フォント?を設定したら、
確かに日本語表示出来るようになりました。
けど、なぜそれでOKなのか知りたかっただけです。
0242デフォルトの名無しさん
NGNG何か仕様に則って作っているの?
もし、そうじゃなくて独自のチャットシステムを作っているなら、
作り急がずに、プロトコルの設計からはじめた方がいいよ。
たとえば、図形の座標を送って描画させるにしても、
別な通信路を用意するのか、同じ通信路でやるのか、
同じ通信路(ここではBufferedWriter)を使う場合は、
通常の会話と図形情報を区別する必要があるよね。
例えば、先頭の文字が'#'だったら、会話ではなく
図形コマンドとする、などの決まりを作ることを、
プロトコルの設計というのだけど、このあたりを
うまく考えておかないと、機能を増やしていった時に
苦しくなるよ。
0243デフォルトの名無しさん
NGNG自動的にint型がdouble型に変換され計算されますが。
コレには型の優先順位みたいなものがあるのですか??
0244デフォルトの名無しさん
NGNG0245デフォルトの名無しさん
NGNGこれを読みましょう。
http://www.gimlay.org/~javafaq/S014.html#S014-02
>>244
倍精度浮動小数点数
0246デフォルトの名無しさん
NGNGコレでもいいよ。
http://www.y-adagio.com/public/standards/tr_javalang/5.doc.htm#25222
0247デフォルトの名無しさん
NGNGたとえばVBならインストールプログラムを作成して、それを配布すれば
EXEとランタイムがインストールされてVBが入ってなくても実行できますよね。
Javaの場合はどうするのかなぁと思いまして。
誰か教えてください。
0248デフォルトの名無しさん
NGNGまず検索しろ。
>>247 も FAQ に加えたほうが良いかも。
0250デフォルトの名無しさん
NGNGjar使ってマニフェストファイルもまとめて圧縮せよ。
ついでに署名もいれるとよし。
0251デフォルトの名無しさん
NGNGそんなんで難しいなんて甘えすぎ、と書かれても怒るな
そこらへんの簡単な本を読めばよし
検索しろ
0252デフォルトの名無しさん
NGNGいま入門書を片手にレスしているのですが
「自動的にint型がdouble型に変換され計算されます。」
としか書かれてないのです(´・ω・`)
■ このスレッドは過去ログ倉庫に格納されています