【初心者】Java質問・相談スレッド80【大歓迎】
コタツデ ∧∧ <2ゲト〜〜〜〜〜 (゚Д゚ ) / ̄ ̄旦/ヽ;;;⌒`) /___/ ※/)≡=-;;;⌒`)⌒`) / ※ ※ ※ ※ // ≡≡≡≡= -;;;⌒`)⌒`) (ー―――――_,ノ ≡=⌒`);;;⌒`)≡=-⌒`)  ̄ ̄ ̄ ̄ ̄ ̄ ズザー―――
3 :
前695 :2006/01/28(土) 23:24:45
勉強不足なのは理解していますが本当にわかりません。 明日までに何とかしたいんです。教えてください。。。
>>3 とりあえず前スレの 969 や 977 見てください
5 :
デフォルトの名無しさん :2006/01/28(土) 23:51:41
>>3 とりあえずGTM9.javaの2330行目の前後を行番号付きで載せてみ
行番号がつけられないならどれが2330行目かコメントで書いてくれ
一番楽なのはソースコード一式イメージ含めて
どこかにアップロードしてくれるといいんだが
>3 日付変わって今日までになんとかしないといけないのにもう寝た?
7 :
デフォルトの名無しさん :2006/01/29(日) 01:46:36
classファイルを別のパソコンで使いたいんですが、exeファイルのように ダブルクリックで実行ってどうやってやるんですか?
実行可能Jarファイルを作る 作り方は探せ
9 :
前695 :2006/01/29(日) 02:35:27
ありがとうございました。本当にありがとうございました!
出来ました。
何とかなりました。
これで展示できます。
それでこれをjarファイルにしたときどこをマニュフェストファイルで指定すればよいのかわかりません
夜分遅くすみませんがわかる方お願いします。
http://mrj.fc2web.com/aaaaa.htm
10 :
デフォルトの名無しさん :2006/01/29(日) 02:56:56
コンパイル時にはエラーが出ないのですが、 ブラウザのステータスバーに 「stert:アプレットが初期化されていません」というメッセージが出てしまいます。 まったく見当がつかないのでどなたかわかる方見ていただけませんか? ソースは長いですが import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class lesson15 extends Applet { int times = 1;// 繰り返しの初期値 Choice timesChoice;// 繰り返し数のChoice public void init() { timesChoice = new Choice();// Choiceオブジェクトの生成 for (int i = 1; i <= 10; i++) {// Choiceの設定 timesChoice.addItem("" + i); } add(timesChoice);// Choiceのアプレットへの追加 add(new Label("times"));// ラベルのアプレットへの追加 timesChoice.select(times - 1);// Choiceの選択アイテム設定 timesChoice.addItemListener(new ItemAdp());// アイテムリスナーの設定 }
11 :
デフォルトの名無しさん :2006/01/29(日) 02:59:54
public void paint(Graphics g) { int x = 300;// 円の中心のX座標 int y = 300;// 円の中心のY座標 int radius = 90;// 円の半径 drawCircle(g, x, y, radius, times); // 中心 (x, y),半径 radius の円を描くメソッドを呼び出す. } class ItemAdp implements ItemListener {// 内部クラスによるItemListenerの実装 public void itemStateChanged(ItemEvent e) { if (e.getSource() == timesChoice) { times = timesChoice.getSelectedIndex() + 1;// 繰り返し数を獲得 repaint();// 図形の再描画 } } }
12 :
デフォルトの名無しさん :2006/01/29(日) 03:00:55
void drawCircle(Graphics g, int x, int y, int radius, int times) { if (times < 1) { return; }// 繰り返しが1未満なら終了 g.drawOval(x - radius, y - radius, 2 * radius, 2 * radius); // 中心 (x, y),半径 radius の円を描画. times--; // 描画繰り返し回数 times を1回減らす. drawCircle(g, x + radius / 2, y, radius / 2, times); // 中心 (x + radius + radius / 2, y),半径 radius /2 の円を描くメソッドを呼び出す. drawCircle(g, x - radius / 2, y, radius / 2, times); // 中心 (x - radius - radius / 2, y),半径 radius /2 の円を描くメソッドを呼び出す. drawCircle(g, x, y + radius / 2, radius / 2, times); // 中心 (x, y + radius + radius / 2),半径 radius /2 の円を描くメソッドを呼び出す. drawCircle(g, x, y - radius / 2, radius / 2, times); // 中心 (x, y - radius - radius / 2),半径 radius /2 の円を描くメソッドを呼び出す. } } よろしくおねがいします。
前スレの最後の方を見て思ったが 答える気のない罵倒レスしてる奴は何なんだ? 質問スレなんだから質問を潰すような真似するくらいなら スルーするか見なければいいのに。
彼女「ねー、明日日曜日だからどっか行こうよ!」 俺「ほんとは革命起こしたかったんじゃないかな・・・オナニーで」
>>10 ソース見てねーけどappletviewer使ってメッセージ確認してみ
それと当然Sun javaでやってるよな?
>>10 コード自体には問題なさそうだから、HTMLの書き方の問題だろうね
18 :
デフォルトの名無しさん :2006/01/29(日) 10:41:26
>>15 >>17 HTMLを最初から書き直してみたらできました!どうもありがとうございました!
19 :
デフォルトの名無しさん :2006/01/29(日) 11:32:02
>>16 ありがとうございます。
一応exewrapを使用しjar→exeまでは出来たんですけど
これってjavaの仮想マシンが入ってるパソコンじゃないと実行できませんよね?
見難くてすいません、まったくもって初心者なのですが、 テキストファイルに、打ち込んだ文字を出力しようとして、こういうソースを書いたのですが 出力するたびに、文字が後ろに登録されて困っています。 テキストデータに出力した文字を、出力するたびに改行してもらうにはどうしたらよいのでしょうか? String myString1 = myReader.readLine(); String str = myString1; BufferedReader in = new BufferedReader( new InputStreamReader( System.in ) ); RandomAccessFile raf = new RandomAccessFile("jap.txt","rw"); System.out.println("日本語を入力してください"); str = in.readLine(); lFileLast = raf.length(); raf.seek(lFileLast); raf.write(str.getBytes()); raf.newLine(); raf.close();
21 :
デフォルトの名無しさん :2006/01/29(日) 11:39:08
あ、質問したいのにsageちゃダメですね(苦笑
22 :
デフォルトの名無しさん :2006/01/29(日) 11:39:44
>>19 JREが入ってないマシンで実行できるJavaプログラムがあったら教えて欲しい
23 :
20 :2006/01/29(日) 11:48:00
JREってバージョンの事ですよね? Java(TM) 2 Runtime Environment, Standard Edition 1.5.0_06ってなってます
24 :
デフォルトの名無しさん :2006/01/29(日) 11:48:40
25 :
デフォルトの名無しさん :2006/01/29(日) 11:58:56
26 :
デフォルトの名無しさん :2006/01/29(日) 12:09:24
CMPのSessionBeanで、 /** * * <!-- begin-xdoclet-definition --> * @throws NamingException * @throws CreateException * @ejb.interface-method view-type="both" * @ejb.transaction type="Required" * <!-- end-xdoclet-definition --> * @generated * * //TODO: Must provide implementation for bean method stub */ public String foo(String param) throws NamingException, CreateException { TestLocalHome home = TestUtil.getLocalHome(); home.create(param); throw new IllegalStateException("rollback test"); } こうしてもロールバックされないのはなんで?
>>19 jsmooth使えば、アプリにJREを同梱できるので、
ランタイムの別途インストール不要なアプリとして配布できるようになる。
>20 RandomAccessFileにnewLine()なんてメソッドないんだけど。 >22は>19に対するレスです。自意識過剰。
29 :
デフォルトの名無しさん :2006/01/29(日) 12:40:09
>28 あ、すいません、試行錯誤中のソースでした・・・。 newLineを外した状態で、どうすればよいのか教えていただけませんか?
30 :
部外者 :2006/01/29(日) 12:41:51
>自意識過剰 これは誰に対するレス?
>>20 システムプロパティline.separatorの中身を後に付ける。
>>20 日本語のほうが分からないとみんないってるんだよ
箇条書きでかいてごらん
33 :
デフォルトの名無しさん :2006/01/29(日) 13:44:27
コマンドプロンプト上の画面で動作させると、まず単語の入力する実行画面になりまして 単語を入力すると、それが指定されたテキストファイルに登録されます。 そして、追加で単語を登録するたびに、テキストファイル上で、1個1個段落が変わるように登録してくれるプログラムを作りたいのです。
>>33 # 名詞:コマンドプロンプト、決められたファイル、文字、
# 動詞:入力、出力、実行、キーを押す、改行する
入力元:コマンドプロンプト
出力先:あらかじめ決められたファイル
コマンドプロンプトで実行する。
入力待機状態になる。
文字を入力してエンターキーを押すと、その入力した文字がそのまま出力される。
エンターキーを押すたびに、出力先でも同じように改行させたい。←ココが問題
これで70点ぐらい、かな・・・
回答は
>>31 で正しいとおもう。わからない単語はこのURLで確認するとヨロシ。
http://www.nextindex.net/java/IO/BufferedWriter.html
35 :
33 :2006/01/29(日) 14:25:06
>>34 見れば見るほどアラが出てきます。ダシ取れそう。
36 :
デフォルトの名無しさん :2006/01/29(日) 14:57:43
>>34 RandomAccessFileを使用しているのですが、BufferedWriterで書き直したほうがいいって事ですか?
>>36 他に目的が無いのであれば、この場合は BufferedWriter を使うほうが無難だと思います。
38 :
デフォルトの名無しさん :2006/01/29(日) 15:50:41
39 :
26 :2006/01/29(日) 16:06:06
>>26 なんだが、
>>26 みたいな質問もここでいいのかい?
J2EEだとかEJBだとかのスレが見当たらなかったんだが。
40 :
デフォルトの名無しさん :2006/01/29(日) 18:19:08
Javaにあって、Perlにない Linuxデーモンにあって、Windowsのコマンドにはない Windowsのサービスにあって、Windowsアプリケーションにはない こりゃいったいなんじゃらほい?
>>20 Windowsだったら
復帰の文字ってなんだったけ?\bだったか?
それいれればいけるのかな?いや、知らんけど
GCJ ですが、 これを使って、 以下のようなものはできますか? 1、Win/Linux、ソースレベルコンパチ。 2、ネイティブコードのバイナリ。 3、ネイティブコードなので、バイナリは異なるが、VMインストール不要。 4、インストールは、対象アプリをフォルダに解凍してEXEをダブルクリックするだけ。 とりわけ4が重要で、 ようは、VMインストール不要のソフト配布環境を Java言語による開発で実現したいわけです。 これ、GCJで可能? あと、可能だとして、そのやりかたですが、 今までのソースに、 --static --native みたいなオプションをつけて フツーにMakeすればOK? それとも、ソースの書き方からして特殊?
1、ちょっと意味わからん コンパチがわからん 2、OK 3、OK 4、OK >そのやりかたですが、 押入れの中に入っている本に載っているんだが出すのめんどくさい・・・探せばどっか解説している >ソースの書き方からして特殊? Javaと同じ
>>45 さん
さっそくありがとうございます。
ようは、おなじ .java コードから、
App.Win32.EXE と App.Linux.ELF の二つのバイナリが
つくれるか、ということです。
48 :
デフォルトの名無しさん :2006/01/29(日) 19:40:09
javaだけじゃないかも知れんが・・・・ よくコーディング規約とかでインデントにタブを避けるようになってたりするけどあれは何で? インデントは半角スペース4文字にすべし!タブ文字の使用は避けるべし!みたいな
タブを使うとファイルサイズが大きくなるから あと、タブがソースコードに入っているとたまにバグることがあるから
Javaはタブ使わない文化だよな たしかにCとかでもソースコードによってタブ長が違うことが多いので その設定変えるのが厄介だったりしたことは多いな
>>49 逆だろ…タブの方がファイルサイズ小さいだろ。
52 :
デフォルトの名無しさん :2006/01/29(日) 20:33:18
54 :
デフォルトの名無しさん :2006/01/29(日) 20:46:14
>>50 Java の場合は Sun コーディング規約が
4インデント 8タブとかゆー変態的なものだったというのも原因の一つかもね。
4インデント 4タブとか 8インデント 8タブだったら従う人が もうちっと多かったかも。
>>52 まぁ、
>>1 の最後から二段落目を見てください。
話はそれからだ。
>>56 JavaScriptの質問だと勘違いしているのかお前はw
人がはなしている時に最後まで話聞かずに途中でごちゃごちゃ言うタイプだな
俺にもscriptの質問に見える
>>57 その指摘は当たってるけど、どのへんが勘違いなんだ?
60 :
デフォルトの名無しさん :2006/01/29(日) 21:38:12
JBossにdeploytoolってありますか? ローカルへはホットデプロイでコピーでokなんだけど、 リモートへのearファイルのデプロイはどうしたらいい?
61 :
デフォルトの名無しさん :2006/01/29(日) 21:39:40
文字列からスマートに改行を取り除く方法を教えてください。 target = target.replaceAll("\\\r","").replaceAll("\\\n",""); とかやればできないこともないのですが、 長い文字列のときにパフォーマンスが心配です。 よろしくお願いします。
JavaScript⇔JavaAppletの連携の話しているんじゃねーかボケェ おまえら動かして確認したのかと一言
動作確認って52だけの情報からどうやって連携を聞きたいとわかるのだ
>>61 それ正規表現つかうんだから2回に分ける必要はないと思うけど
>>63 もういいよ、読解力不足さん
明日から新しい外注の人に来てもらうから
君はIP-COMの設定やってて
ついにエスパー登場か
「読解力不足」と「エスパー希望」論争がまたもや勃発か
>IP-COMの設定 Javaの仕事よりもレベル上がってるんじゃw
>64 ありがとうございます! うーん replaceAll("\\\r|\\\n",""); replaceAll("[\\\r\\\n]",""); とやってもうまく行かないのですが、どうしたらいいのでしょうか? 無知ですみません。
last・・・ 最後から検索すれよ
72 :
デフォルトの名無しさん :2006/01/29(日) 22:24:42
>>71 String before = "aaa\r\nbbb\nccc\rddd";
System.out.println(before);
String after = before.replaceAll("\\r|\\n", "");
System.out.println("\\r " + after.indexOf("\r") + "\\n" + after.indexOf("\n"));
System.out.println(after);
うまく行きました!ありがとうございます。
ところが・・・・
最初の
replaceAll("\\\r|\\\n","");
もなぜかうまく行っていました。
????
73 :
デフォルトの名無しさん :2006/01/29(日) 22:27:08
System.exit()について教えてください。 @あるクラスA.java,B.javaがある AA.javaにはメソッドCとメソッドDがある Bあるサーバを起動するときにメソッドCを呼び出し、停止するときにはメソッドDを呼ぶ CメソッドCとメソッドDを呼ぶクラスは同じ。 BB.javaにはメソッドEがある CメソッドEはwhile(ture)があり、この中の処理をずっと続けている。 とします。 A.javaが public void C(){ B b = new B(); b.E(); } public void D(){ System.exit(1); } とすると、サーバを起動したあと、停止するのにメソッドDを呼び出したとき、B.javaは終了するので しょうか?それともwhile(true)の処理を続けてしまうのでしょうか? 今確認できる環境がないので教えてください。よろしくお願いします。
74 :
デフォルトの名無しさん :2006/01/29(日) 22:34:40
<%@page language="java" %>
<%@page contentType="text/html; charset=SHIFT_JIS"%>
<%@page import="jamyto.Simon" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "
http://www.w3.org/TR/html4/loose.dtd ">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>Simon says</title>
</head>
<body>
<h1>Simon says<br>
"<%=Simon.says()%>"</h1>
</body>
</html>
http://localhost:8090/aoki/lesson01_1/useSimon.jsp C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\aoki\lesson01_1\useSimon_jsp.java:7: パッケージ jamyto は存在しません。
import jamyto.Simon;
^
C:\Program Files\Apache Group\Tomcat 4.1\work\Standalone\localhost\aoki\lesson01_1\useSimon_jsp.java:53: シンボルを見つけられません。
シンボル: 変数 Simon
場所 : org.apache.jsp.useSimon_jsp の クラス
out.print(Simon.says());
^
エラー 2 個
こうなっちゃうんですが・・・どうやってパッケージ指定すればいいでしょうか?
>>73 A と B が1つの main メソッドから呼び出されて実行しているのであれば、
どこで exit メソッドを呼び出しても、丸ごとお亡くなりになります。
どこにそのjamyto.Simon.classファイルを置いているんだ?
Javaにあって?Perlにないものって?なんですかねぇ?
78 :
74 :2006/01/29(日) 22:54:27
WEB-INFの下のclassesです。どこにも貼り付けました。でもパッケージが存在しませんって言われます。。。。。。。。このエラー何回もやってます・・・・どなたかプロの方解決作を・・・
79 :
デフォルトの名無しさん :2006/01/29(日) 22:55:19
>75 ありがとうございます。 AとBはmainで呼び出してるのではなく、 サーバの起動はLinuxで/etc/initd/XXXd startというコマンドをうったときにA.javaのC()を呼んで処理 するようになっています。 そして、/etc/initd/XXXd stopをうつと、A.javaのD()を呼ぶようにしています。 この場合もmainの場合と同じですか?
そりゃ、何も変更してないのにコンパイルが通ったら怖いよな。
WEB-INF/classes/jamyto/Simon.classにおいているよな? Simon.javaにはpackage jamyto;って書いてあるよな?
82 :
74 :2006/01/29(日) 22:58:48
>>81 はい!書いてあるしおいています!どうすればいいのか〜〜〜
1.5の位置よくわかんない!設定ファイルがどこだか拾えない com.sun.org.apache.bcel.internal.* com.sun.org.apache.xalan.internal.* ここを見るのがいいの? com.sun.org.apache以下でミラーリングみたいなってる
84 :
74 :2006/01/29(日) 23:22:35
TOMCATを再起動したらできました!!
>>84 たんなる初歩の初歩じゃねぇかよ!ヴォケガ
>>79 Unix のデーモンはよくわからんのですが。
> サーバの起動はLinuxで/etc/initd/XXXd startというコマンドをうったときに
> A.javaのC()を呼んで処理するようになっています。
> そして、/etc/initd/XXXd stopをうつと、A.javaのD()を呼ぶようにしています。
この「なっている」というのが、既にこういう仕組みが出来上がっている、という意味ならば
良きに計らってくれていることでしょう。
もし、これからだというならば、設計から大幅に見直したほうが良いかもしれません。
Java の場合、
java コマンドを実行するたびに別のプロセスが起動します。
java コマンドで起動した一連のスレッドに、介入するためには、プロセス間通信を行う必要があります。
88 :
73 :2006/01/29(日) 23:34:14
>86 ありがとうございます。 できていると思うのですが、、、そこの部分は自分で行っているわけじゃないので。 シングルトンとかを使えばうまくいかないですか?
うまくいかないですよ。
シングルトン使っても それぞれのJavaコマンドでそのオブジェクトなので無理 そういう意味合いではDBとか使うしかない
>>88 > シングルトンとかを使えばうまくいかないですか?
シングルトンを使うにしても、同じ java プロセスを使う必要があります。
# Unix ネタに関して、なんら助言ができないことが悔しいところ。
92 :
73 :2006/01/29(日) 23:43:53
>89〜91 そうですか。ありがとうございました。 いろいろやってみます。
>>73 つまり、Unix上でデーモンとして動いているJavaプロセスを外部からkillしたいってこと?
普通にkillすればいいような。
後始末はRuntime#addShutdownHook(Thread)でできそうな気がするんだけど、
このメソッドって信頼できる?実は使ったことない。
APIドキュメント見ると長時間の処理はするなとか書いてあるんだけど。
まぁ、TomcatのBootstrrup系のクラスを読みこなせれば解決できると思う
95 :
72 :2006/01/30(月) 00:35:22
before.replaceAll("\r|\n", ""); でもうまく行っちゃいました。 \\\n \\n \n いったいどれが正解なのでしょうか? そこで考えたのですが、 まず最初の \\\n でうまく行ったのは、エスケープシーケンス+改行記号で検索し、 エスケープシーケンスの直後に特定の文字(改行だったらn)がないため、 \\は検索対象にならなかった 2個目の \\n は、javaの文字列の"\n"を正規表現に変換するときに改行記号と 認識されたため、マッチした。 3個目の \nはjavaの文字列ではなく改行記号そのものを渡して そのまま検索したためマッチした。 ということなのでしょうか? ご意見お願いします。
96 :
デフォルトの名無しさん :2006/01/30(月) 00:57:36
いわゆるlengthフィールドはどのクラスで定義されてますか?
標準 API の中だと、java.io.OptionalDataException
あ、悪い。配列の length か。それならば『ない』が正解。
99 :
デフォルトの名無しさん :2006/01/30(月) 01:45:12
取得したメッセージのスペースを消す方法は存在しますでしょうか? 例えば以下のようなメッセージを取得してテキストエリアに表示したいとき 余分なスペースを削除して左詰にしたいのです。どうでしょうか? -------------------------------------------------------------------- <?xml version="1.0" encoding="UTF-8"?> <test:PA"> <PID> urn:test:uuid-59616261646162614A8EBC911111D4A8A03 </PID> </test:PA> --------------------------------------------------------------------
100 :
72 :2006/01/30(月) 01:50:02
>99 まさしく今俺が悩んでるメソッドを使っちゃいけないの? String src = src.replaceAll("^ *","");
trim
>>95 \\n と \n はその解釈であってると思う。
\\\n は
1.\\\n という文字列は正規表現としては バックスラッシュ+改行 と解釈される
2.バックスラッシュ+改行 というエスケープシーケンスを探すがそんなもんはない
3.バックスラッシュが無視されて単なる改行として扱われる
という流れでうまくいったんじゃないかな。
3.補足(JavaDoc より)
英字の前にバックスラッシュを使用したときに、その英字がエスケープ構文でない
場合は、エラーになります。これらのパターンは、正規表現言語の今後の拡張に
予約されています。英字以外の文字の場合は、その文字がエスケープ構文に
含まれるかどうかにかかわらず、バックスラッシュを指定できます。
↑
これを見る限り \\あ なんかも単なる あ として扱われそう
103 :
99 :2006/01/30(月) 02:21:05
ごめんなさい自己解決してしまいました 普通にtextArea.setTabSize(1)ってすることによって 見た目が良くなりました >100,101 レスありがとう
104 :
デフォルトの名無しさん :2006/01/30(月) 02:30:36
>>9 うわっ、ひでえソースコードだな
頑張ったんだろうけど
こんな来たねえ無駄が多いソース書く奴はうちの会社には
入れたくねえな
105 :
デフォルトの名無しさん :2006/01/30(月) 02:35:48
確かにすげえ汚ねえ。ああもう考えるだけでもおぞましい。クラクラするな。
106 :
デフォルトの名無しさん :2006/01/30(月) 03:28:57
staticってなんなんですか? 考えれば考えるほどわかんなくなってきた。 ただいまSingletonの勉強中です。 良いアドバイスください。お願いします。
>106 VMがロードされた時点ですでに使用可能な変数とかメソッド。 クラスをインスタンス化(動的)して使用可能なものじゃないやつ。
109 :
108 :2006/01/30(月) 04:02:17
それから、プログラミング言語における概念は、考えて分かるものじゃないから。 一つの文献で分からなければ、また別のものを見ること。 ソースコードのほうが分かるなら、ドンドン書こう。
>>108 @ITより
>static変数を多用してしまうと、クラス間の依存関係が強くなったり
というのがよくわからん。シングルトンでも、それを呼び出すようにすれば、
依存することになるだろうに。
>動作を追跡するのが難しいコードにしてしまう原因となります。
これは、IDEとかでブレークポイントを指定したり
ログのためのメソッドを入れづらくなったりするためか?
シングルトンが必要なのは、本当にそれが唯一なのかどうかが
クライアントが知ることができない(隠蔽されている)からであって、
将来的にも一個しかインスタンスが必要ないならば、
public final な static 変数を用意することで十分だし、明快だと思う。
111 :
108 :2006/01/30(月) 05:47:23
投げてしまったので、少々フォローを。
# 全文引用で申し訳ない。
>>110 >
>>108 > @ITより
> >static変数を多用してしまうと、クラス間の依存関係が強くなったり
> というのがよくわからん。シングルトンでも、それを呼び出すようにすれば、
> 依存することになるだろうに。
ご指摘の通りです。
本引用記事のまとめにも、その旨記述されています。
> >動作を追跡するのが難しいコードにしてしまう原因となります。
> これは、IDEとかでブレークポイントを指定したり
> ログのためのメソッドを入れづらくなったりするためか?
デバッグの手法に問題があるのではなく、
デバッグそのものが複雑になりやすい、とのことだと思います。
> シングルトンが必要なのは、本当にそれが唯一なのかどうかが
> クライアントが知ることができない(隠蔽されている)からであって、
> 将来的にも一個しかインスタンスが必要ないならば、
> public final な static 変数を用意することで十分だし、明快だと思う。
この件に関して調べたところ、以下のURLを見つけました。
このURLでは、柔軟性とパフォーマンスなどに関する意見が出されています。
http://www.freeml.com/message/patterns/857
>>107 VM じゃなくてクラスがロードされた時点ね。
113 :
デフォルトの名無しさん :2006/01/30(月) 11:39:08
Swingを使ってゲームを作っている者ですが、 マウスのアイコン画像を、自分で作った画像に変更することはできますか? ご教授よろしくおねがいします><
java.awt.Component#setCursor(java.awt.Cursor)
115 :
デフォルトの名無しさん :2006/01/30(月) 12:03:56
JavaでLinux用のデバイスドライバを自動的に作るシステムを開発した。 まぁ、もちろんJavaからCを呼んでやったわけで、厳密に言えばJavaで書いたわけではないんのだけどな。 正直、革命おこすよ、俺は。
>>113 なんか最近見た内容だな
解決方法もかいてあったはずだけど
117 :
デフォルトの名無しさん :2006/01/30(月) 12:57:24
Servlet環境での設定情報の保持について悩んでいます。 WARでWEBアプリを配布したいのですが、DBへの接続情報、ちょっとした設定項目などはどういった方法で保持したら良いでしょうか? プロパティファイルをWARに含むことも考えたのですが、サーブレットコンテナがWARを展開後に書き込み権限があるかどうか良く分かりません。 コンテナ依存や、環境依存で書き込めないと困るので。 こういった情報を永続化する方法はないでしょうか? 保存期間としては、対象のWEBアプリがインストールされて設定されてから、アンインストールされるまでです。 よろしくお願いします。
119 :
118 :2006/01/30(月) 13:10:16
120 :
117 :2006/01/30(月) 13:18:23
>>118 >>119 ありがとうございます。
あとログレベル、ログファイルの保存先等を保存しておきたいと思ってます。
こちらも同様に、何かいい方法はないでしょうか。
当初、ServletContext.log()を使って出力しようとしていたのですが、WebSphereのサイトで使うとパフォーマンス低下の恐れがあると書いてありまして。
インストール後に、ブラウザ上から設定できるのがベストなんですが。
>>115 おお。いいねえ。ついでに Kernel も Java に書き換えておいてよ。
122 :
118 :2006/01/30(月) 16:28:15
Image imgs[ ]=new Image[3]; int n=1; Label lb; Button bt1, bt2, bt3; public void init(){ int i; for (i=0; i<3; i++) { imgs[i] = getImage(getDocumentBase(),"img"+(i+1)+".jpg"); } lb = new Label("画像番号を選択して下さい"); bt1 = new Button("画像1"); bt2 = new Button("画像2"); bt3 = new Button("画像3"); add(lb); add(bt1); add(bt2); add(bt3); bt1.addActionListener(this); bt2.addActionListener(this); bt3.addActionListener(this); } public void paint(Graphics g){ g.drawImage(imgs[n-1],200,50,this); } public void actionPerformed(ActionEvent e) { if(e.getSource() == bt1) n=1; else if(e.getSource() == bt2) n=2; else n=3; showStatus("画像番号"+n); repaint(); } } これを朝、昼、晩ボタンにして、ボタンを押すとおはよう、こんにちは こんばんは、と出るようにしたいんですが。
俺もJAVAやろうかな、、、。Javaやってないのに俺このスレいるんだよね
>>125 バイナリはぶちこめるがバイナリファイルはぶちこめない
129 :
デフォルトの名無しさん :2006/01/31(火) 03:33:52
>>123 まず、マイクを買え。それから発声練習だ。
非webのJavaアプリで、DB接続するにはどうするのが一般的ですか? サーブレットだとコンテナからデータソース取って以下略ができますけど、 非サーブレットだと初心者本にあるようなClass.forName()使っていいんでしょうか?
すみません。 ここで質問するときのソースコード貼り付けは、 全角スペース使って、インデント作ったほうがいいんでしょうか? 半角スペースやタブは、反映されないようなのですが、、 全角にすると、コンパイルでひっかかる等、逆に不便になってしまうのかな、と
だいじょうぶ。ここのひとは皆んなJScriptで自分で整形処理やり直してます
133 :
デフォルトの名無しさん :2006/01/31(火) 05:30:43
すいません、ちょっと質問させてください。 例えば「abc.txt」の中身が abc def ghi だとして、配列の中に一行ずつ a[0]=abc; a[1]=def; a[2]=ghi; としたいのですが、ファイルを行ごとに読み込む手段が分からず困り果てています。 非常に単純な質問で申し訳ありませんが、どなたかいい手段をご存知ありませんか?
fgetc()
fgetcについて調べてみたのですが、どうもC言語のようでした。 よろしければJAVAでの場合についても教えてください。
>>133 import java.io.*;
try {
BufferedReader bf = new BufferedReader(new FileReader("abc.txt"));
String[] a = new String[3];
int i = 0;
while( bf.ready() ) {
a[i] = bf.readLine();
i++;
}
}
catch(IOException e) {
e.printStackTrace();
}
java.io.BufferedReaderを使うところがポイント。
後はAPIを眺めてください。
>>136 ふぉおおおおおおお出来ました!ありがとうございます!
ついでと言ってはなんですが、もう一つ質問させてください。
String[] a = new String[3];
この[3]の部分なのですが、ファイルの行数を自動的に読み取って値を入れてくれるようにはできないでしょうか?
138 :
137 :2006/01/31(火) 06:58:40
自己解決しました。 [256]とかしておいて入った部分の配列だけ使うようにしたら動きました。
140 :
137 :2006/01/31(火) 08:48:54
すいません、また質問させてください。 例えばHighScore.txtがあり、中身が 10000 7000 5000 3000 だったとき、大小関係を比較して、例えば6000なら7000と5000の間に、 1000なら一番下に自動的書き込むにはどうしたらいいでしょうか?
ソートすればいいじゃない
HighScore.txtはソート済みなのか?
常に大小比較をして書き込んでいるので、ソート済みと見ていいと思います。 まだソートのやり方についてよく分かっていないので、ちょっと調べてみます。
144 :
137 :2006/01/31(火) 10:37:53
すいません、色々調べたのですがいまいち分かりませんo....rz
String[] aに元のが入ってるとして List list = new ArrayList(); for (int i = 0; i < a.length; i++) { list.add(Integer.parseInt(a[i])); } //新しい数を後ろに追加 list.add(Integer.parseInt("5000")); //並べ替え list = Collections.sort(list); //String配列に格納 String[] s = new String[list.size()]; for (int i = 0; i < list.size() ; i++) { s[i] = String.valueOf(list.get(i)); } あとはファイルに書き込んでほしい
147 :
146 :2006/01/31(火) 11:26:42
× list = Collections.sort(list); ○ Collections.sort(list);
度々の助言、本当にありがとうございます。
>>146 さんの方法でやってみたのですが、
Exception in thread "main" java.lang.NumberFormatException: null
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at HighScore.Write(Server.java:52)
at Server.main(Server.java:221)
このようなエラーが出てしまっています。自力でやっていたときも同じようなエラーが出ていました。
うーん、何か根本的に間違えているのでしょうか?
149 :
デフォルトの名無しさん :2006/01/31(火) 11:45:06
すいません、ちょっと前ので似たような質問なんですが 133さんのに似ているのですが 例えば、「jap.txt」の中身が りんご バナナ カエル だとして、 もう一つ「eng.txt」というものがあり中身が apple banana flog であった時、「jap.txt」を配列にいれてn番目の日本語に対して、英語で答えよと聞かれるようにし その結果を「eng.txt」のn番目と比較して、正解かを調べるプログラムを作りたいのですが どういうふうにすればいいのか、どなたか教えてください・・・。
parseIntする前にtrimしろ
宿題スレ行け、ハゲども
>>148 aの入ってる部分だけ使いましょう。(最初のループのa.lengthを書き換え)
153 :
デフォルトの名無しさん :2006/01/31(火) 12:07:11
宿題スレで聞きなさい ここは貴方の家庭教師ではありません
>>130 すきなように
サーブレットコンテナもJavaアプリだ
データソース使おうかドライバマネージャつかおうがかまわん
>>149 だから両方とも配列に入れればいんだよ。
POIを使ってエクセルファイルを作ろうとしています。 ここでセルに数値を入れるのですが、エクセルで開いたときに カンマが入った数値にしたいと思います。簡単に実現する方法は ありますでしょうか? 例) 現状 [12345] 改良 [12,345]
public class rei12 extends Applet implements Runnable { Thread th = null; int x; Image img; public void init() { img = getImage(getDocumentBase(),"img1.jpg"); } public void start() { if (th == null) { th = new Thread(this); th.start(); } } public void run() { for (x=0; x<400; x=x+10) { repaint(); try { th.sleep(100); } catch(InterruptedException e){} } } public void paint(Graphics g) { g.drawImage(img,x,10,this); } 画像を左右にはね返させたいんですが。
159 :
デフォルトの名無しさん :2006/01/31(火) 16:23:40
160 :
デフォルトの名無しさん :2006/01/31(火) 16:34:13
文字コードの質問です。 ※strの中には文字列が入っています。 byte[] b = str.getBytes(); で、取ったバイト列 1B2447230F を例えばunicodeのE001に 変換する方法を教えてください。
>>160 1B2447ってISO2022JPを独自拡張してんのか?
U+E001もprivate use areaのコードポイントだし。
もし独自拡張使ってるなら自力で変換するか、
独自拡張に対応した java.nio.Charset とかを探す事になると思われ。
×java.nio.Charset ○java.nio.charset.Charsetの実装(たぶん探すだけ無駄) その後の 230F もありえねー並び方してんな。SO無しでSIかよ、みたいな。
163 :
デフォルトの名無しさん :2006/01/31(火) 17:10:37
>161さん 早速レス、アリガトウございます! 実は、このU+E001ですがvodafone絵文字のエスケープ文字らしんですよ。 これは、自力で変換するしか方法無いんですかね・・・
164 :
デフォルトの名無しさん :2006/01/31(火) 17:11:57
あ、ちなみに独自拡張していない標準のものはどうやって、 変換すればいいでしょうか?
>>164 byte[] b = new byte[]{ 0x1B, 0x24, 0x42, 0x21, 0x21, 0x1B, 0x28, 0x42 };
String s = new String(b, "ISO2022JP");
System.out.printf( "0x%04X %n", (int)s.charAt(0)); //5.0以降
他にも Charset.forName("ISO2022JP").decode(ByteBuffer.wrap(b)) とか
new InputStreamReader(new ByteArrayInputStream(b), "ISO2022JP") とか。
166 :
デフォルトの名無しさん :2006/01/31(火) 17:53:31
Java3DのInterpolatorを使ってアニメーションをさせているのですが、 これを他クラスから、停止などの制御を行うためにはどうしたら良いでしょうか?
167 :
デフォルトの名無しさん :2006/01/31(火) 19:10:43
大変初歩的な質問で申し訳ないです。 現在ベクター内にある条件のレコードで消すメソッドを書いています。 ところが条件に一致してもすべてが一回で消えてくれません。 何回か呼び出すとすべて消えているのですが・・・ private void removeRecords(String code){ code= SystemUtility.deleteSpace(code); // コードの余分なスペースを削除 for (int i = 0; i < fileRecords.size(); i++){ FileRecord r = fileRecords.get(i); String s = SystemUtility.deleteSpace(r.getField(IOConstants.YOUBYO_TOKUI_SAKI_CODE));//コードのヘッダー if (s.equals(code)){ fileRecords.remove(i); <- ここで削除している } } } 何回か呼び出さないと消えないというのはどういうことでしょう? Vectorのremove(int i)で消すと消す前のインデックスの順番が変わってくるのでしょうか? よろしくご指導お願いしまつ。ちなみにremove(Object)でもやりましたが、だめでした・・・
168 :
デフォルトの名無しさん :2006/01/31(火) 19:21:18
Vector 内の指定の位置にある要素を削除します。 それ以降に要素があればそれらを左に移動し、各要素のインデックスから 1 を減らします。 Vector から削除された要素を返します。
図に書いてみれば分かるよ 消せばリストがどうなるか
170 :
デフォルトの名無しさん :2006/01/31(火) 19:30:23
>168 即レスありがとうございます。 プログラムを書き換えています。
171 :
デフォルトの名無しさん :2006/01/31(火) 19:31:01
>169 やってみまつ
172 :
デフォルトの名無しさん :2006/01/31(火) 19:33:49
>168-169 とりあえず if (s.equals(code)){ fileRecords.remove(i); <- ここで削除している i = i-1; } と書いてうまくいきましたありがとうございまつ
そりゃあんまりだ。 for (int i = fileRecords.size() - 1; i >= 0; i--){ for (Iterator<FileRecord> it = fileRecords.itrator(); it.hasNext(); ) { FileRecord r = it.next(); if (s.equals(code)) { it.remove(); } どっちかにしとけ
174 :
デフォルトの名無しさん :2006/01/31(火) 19:49:56
>173 ありがとさんでつ(><)効率悪いのはわかっとったんでつが・・・ これでいいやという感じにしちゃいました。 コードはありがたく使わせてもらいまつ
175 :
デフォルトの名無しさん :2006/01/31(火) 20:24:30
サンプルコードを読んでると、たまーにObject型に「.class」をつなげてあるの見るんだけど、あれって何を表してるの?
単にClassオブジェクトを取得しているだけなんでは。
177 :
175 :2006/01/31(火) 21:27:45
>>176 亀レスでスマソ。
とゆーことは、Objectの型をClassオブジェクトのかたちで取得するってことなんですね。
ありがとうございます。
でわ、
Class cl = Date.class;
みたいに書くと、
Date d...;
if (e == lc) // true
な比較ができるってことでしょうか?
この場合、
if (e equals(cl));
じゃなくて良いんですよね?
重ねてごめんなさい。
178 :
175 :2006/01/31(火) 21:30:19
すみません・・・;; Date d...; なので、 if (d == cl) でした。 勉強し始めた厨房なので許してください。
for文で回すなら
>>173 みたいにした方がいいの?
Javaのエラー情報でお聞きしたいのですが、コンパイルは出来るんですが、 クラスファイル生成して、いざ実行に移すと Could not open ディレクトリへのパス名〜jre1.5.0_06\lib\i386\jvm.cfg' このエラーが出て実行できません。 何か対処法は無いでしょうか?知っていたら教えていただけないでしょうか
181 :
180 :2006/01/31(火) 21:51:07
すいませんバージョンはjdk-1_5_0_06-windows-i586-p.exeです
182 :
158 :2006/01/31(火) 21:53:22
期限が近いんです、教えてください。
184 :
デフォルトの名無しさん :2006/01/31(火) 22:05:54
javax.ejb.Injectってどこのライブラリに入ってるの? javax.ejb.Statelessは見つかるのに・・・
>>178 いや、その比較はできんよ。dはDate型のインスタンスではあるが、Dateの
Classオブジェクトではない。だから==では一致しない。
そもそも、==って、同じインスタンスでないと一致しないよ。Dateのインスタンスと、
Date.class(Classクラスのインスタンスと言って良いかと)は別のインスタンスだよ。
Classオブジェクトを取得する理由はいろいろあるけど、一番の理由はリフレクション
を使いたいからじゃないかな。クラスの情報そのものを取り扱いたい時に使うよね。
どんなメソッドがあるか、とか調べるとき。
>>178 が見た例としては、どんなのがあったわけ?
186 :
158 :2006/01/31(火) 22:14:25
182 名前:158 [↓] :2006/01/31(火) 21:53:22
期限が近いんです、教えてください。
186 名前:158 [↓] :2006/01/31(火) 22:14:25
>>182 わかんないだ?ww
いったい何がしたいんだ....
期限って宿題なら宿題スレいけば
189 :
175 :2006/01/31(火) 22:32:57
>>185 たびたびありがとうございます。
Date d...;
Class cl = d.getClass();
if (cl == Date.class)
ならできるとゆーことでしょうか?
Date型を保持したインスタンス同士じゃないとダメってことですよね?
すみません。なんとなくわかったよーな気がします。
いまいち理解があさいですが;;
僕が見た例は、
Class cl = Class.forName(stringClassName);
Class supercl = cl.getSuperclass();
...;
if (supercl != null && supercl != Object.class)
...; ~~~~~~~~~~~~
なコードでした。そのものリフレクションのサンプルです。
リフレクションって、なんのために必要なのかもよくわからなくて熱がでできそうです。
言い直すと、クラスの情報を取り扱うメリットについてよくわかりません。
てゆーか、いろんなクラスとかメソッドのメリットもわからないものだらけですが;
これから知識と経験を深めてわかってくるのだと思って頑張っています;
ただ、「Object.class」についてはわかってきたよーな気がします。うれしいです。
190 :
175 :2006/01/31(火) 22:49:10
あっ、ちなみに if (supercl != null && supercl != Object.class) は、supercl は、null じゃなくて かつ java.lang.Object クラスじゃなかったら if が true の時の処理をしなさい、って意味ですよね? if が true の時の処理は スーパークラスの クラス名を表示する処理でした。 Object クラスが直接スーパークラスの時には表示を省略する処理だとわかりました。 本当にありがとうございます。
191 :
175 :2006/01/31(火) 22:53:22
>supercl は、null じゃなくて かつ java.lang.Object クラスじゃなかったら ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ はjava.lang.Object 型を保持した Class オブジェクトじゃなかったら、ですね。 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ごめんなさい。
192 :
180 :2006/01/31(火) 22:59:05
再インスコしたらでけたぁ!!ハローワールドが出た!! これからお世話になりますヾ(・∀・`)ノ
>>136 BufferedReader#ready で終了判定するのは問題外。
194 :
デフォルトの名無しさん :2006/01/31(火) 23:35:41
>>194 俺の場合は BufferedReader#readLine() != null で終了判定してるけど。
BufferedReader#ready()だと、ラップした入力ストリームが「何らかの理由で」読み込みをブロックしただけで
ループ抜けるよね。たとえストリームがまだデータを返す場合でも。
ファイルの場合入力ストリームがブロックされる状況があるのか、寡聞にして知らないんだが、
それを置いておくとしても
BufferedReaderのメソッドの本来の使い方を考えると間違ってると思うよ。
196 :
デフォルトの名無しさん :2006/01/31(火) 23:59:10
>>195 @ITのサンプルで有ったからそのまま使ってたんだけど
参考にするよ
197 :
! :2006/02/01(水) 00:17:57
>>196 @ITのサンプルって、誰のかと思ったら…案の定山田か。
198 :
デフォルトの名無しさん :2006/02/01(水) 00:28:48
山田って人駄目なの?
>>189 > リフレクションって、なんのために必要なのかもよくわからなくて熱がでできそうです。
> 言い直すと、クラスの情報を取り扱うメリットについてよくわかりません。
そりゃあ、あるメソッドを実際に持ってるかとか、スーパークラスはなんなのかとか調べる方法が
リフレクションでクラス情報を引っ張り出す以外にないから必要なんだべ。
まあゆっきり咀嚼していったらいいと思うよ。
>>196 Javadocにもちゃんと書いてあるからね。
BufferedReader#readLine()
>戻り値:
>行の内容を含む文字列、ただし行の終端文字は含めない。ストリームの終わりに達している場合は null
201 :
199 :2006/02/01(水) 00:36:23
ゆっきり=ゆっくり orz
202 :
197 :2006/02/01(水) 00:43:51
>>198 俺の印象では、記述量とその広い範囲は評価できるが、原理を把握せず微妙に定跡をはずした事を書く、というところ。
著書も、量は多いけどマニュアルの翻訳といった感じで、いまいち買う気になれなかった。
まあ、Amazonのレビューは悪くないので、悪く思ってるのは俺だけかもしれん。
スレ違いスマン。
いや、山田はさけたほうがいいだろ。
@ITすげぇなぁ 動かないコードどうどうとのせるなんて
ほんとだ その記事検索したら終了処理になぜかready使ってる ソケットとか圧縮ストリームつかうといくらでもfalseかえってくるのに 遅いマシンだとローカルファイルでもfalseかえるかもしれんのにね 山田すげぇ
206 :
デフォルトの名無しさん :2006/02/01(水) 01:39:35
readLine()はストリームの終端以外はnullにならないのかな?
207 :
デフォルトの名無しさん :2006/02/01(水) 01:40:44
初心者の質問じゃないと思うけど、WININETでサーバーサイドのJAVAを実行できますか? その場合、クラス名とかfunction名とかパラメータの渡し方はどうすればいいんでしょうか?
208 :
デフォルトの名無しさん :2006/02/01(水) 01:45:56
山田以外にも@ITではready使いまくりな訳なんだが
>>179 新しく別のリストを作成して
削除しないものを突っ込んでいった方がいい。
210 :
デフォルトの名無しさん :2006/02/01(水) 02:15:07
説明ヘタなので、やりたい事と抜粋したソース載せます。 page1.jsp内のsubmitでデータをサーブレットへ送り、サーブレットで受信したデータを処理して、javaの変数へ代入します。 その後page2.jspへ行くのですが、page2.jspからjavaにある代入してあるデータを読み込むにはどうすればよいのでしょうか。 javaソース public class Topic { private int id; private String name; public int getId(){ return id; } public void setId(int id){ this.id = id; } public int getName(){ return name; } public void setName(String name){ this.name = name; } } サーブレット Topic topic = new topic(); topic.setId(page1.jspから受け取ったデータ); topic.setName(page1.jspから受け取ったデータ); request.getRequestDispatcher("/page2.jsp").forward(request, response); page2.jsp Topic topic = new Topic();←初期化されちゃいますよね? topic.getId(); tipic.getName(); こんな感じです。 サーブレットで受け取ったデータをset○○すれば、記載してるのとは別のjavaファイルではget○○で、(引き数で)呼び出せるのですが jspではどのようにして呼び出せばいいのかわかりません。こんな説明ではわかりづらいでしょうが、お助けください。
212 :
デフォルトの名無しさん :2006/02/01(水) 02:32:25
javaアプレットの実行速度を遅くする方法はないでしょうか? ブラウザ上で動くゲームが早すぎるので・・・。
213 :
130 :2006/02/01(水) 06:59:22
>>154-155 ありがとうございます。
ちなみに、非webアプリで使いやすいDBアクセス周りのユーティリティはありますでしょうか。
導入がラクそうなDBUtilsは思いっ切りDataSource使ってますね・・・使えはするでしょうけど。
>>155 リンク先の意図がいまいちわからないんですが、
InitialContextなりDataSourceを自力で実装すれば、ということですよね?
(結局内部でClass.forName()することになるんですよね?)
初心者の純粋な疑問なんですが、 JavaアプリケーションとJavaアプレットの利点と欠点ってなんなんでしょうか。 参考書やネットで色々調べても大半がアプレットを使用していて、アプリケーションで作る意味があんまよくわかんないです。 いい解説ページとかあれば教えてください。
>>214 まず、アプレットは、システムのファイル操作ができない。
ファイルへの読み書きができないとなると、
プログラムはかなり制限されたものになる、というのが一つあるな。
217 :
デフォルトの名無しさん :2006/02/01(水) 08:06:38
>>214 たとえアプレットでも署名つきアプレットなら警告ダイアログがでるけど、ローカルファイルへ
アクセス可能だし、あまりアプレットの利点は少なくなってきている。
WebStartを使えばURLアクセスだけで、Javaアプリが実行できるし、
資産配布、資産管理も容易。
アプレットはJavaのバージョン1.1でも起動する小さなプログラムであれば、
問題ないけど、最新のJavaのバージョンを使って動かしてもらいたかったり、
大量のデータを処理するのであれば、Javaアプリの方があとあと行き詰ることがない。
218 :
デフォルトの名無しさん :2006/02/01(水) 09:22:17
Mapの使い方がよくわからないのですが、 Stringの数を数え挙げるプログラムを作りたいんです。 1.Stringに対してintを割り振る 2.int昇順でソートする 3.intに対して++intが使える っていうクラスはないですかね? なければ自分で作るまでなんですが。
StringとIntegerのペアでTreeMapに突っ込んで、独自のComparator使えばいいだろ 1足すときはputし直しだな
220 :
デフォルトの名無しさん :2006/02/01(水) 09:44:28
>>219 やはりputし直しですか、
でもvalue同士を比較できるのですかね?
ああ、ダメか。 じゃあStringとintをフィールドに持つクラス作って、TreeSetに突っ込むか。 equals、compareTo、1足すメソッド作ればいけるんじゃね?
ここまで意味の分からない文章は久しぶりで、いっそ清々しくもありますね。 電波系の怪文書にも似た、不思議な浮遊感すら感じさせますね。
223 :
デフォルトの名無しさん :2006/02/01(水) 10:07:21
ああ、 Map map = new Map(new Comparator(){ public int compare(Object o1,Object o2){ return (int)map.get(o1)-(int)map.get(o2) }}) を?ぶち込めばいいわけですか。やってみます。わかりました。
Mapにプリミティブ型は入れられねえって
227 :
デフォルトの名無しさん :2006/02/01(水) 15:46:59
どうもです。 また文字コードの問題で書き込みをさせていただきます。 WEBの入力フォームからbodyパラメーターに入れられて送られてきたvodafoneの絵文字を String str = request.getParameter("body").getBytes("Shift_JIS"); でとりだし表示させてみると、ある絵文字の場合1B244723Fとなります。 ボーダフォンの絵文字一覧と照らし合わせるとこの絵文字のUnicode表記は E003と記述されています。 この1B244723FをE003に変換する方法はあるのでしょうか? それともこの2つは全く関係の無いものなのでしょうか? 文字コードに関してなんか勘違いをしてるんでしょうか? 頭がパニックです・・・ 詳しい人お願いします!!
Server exception: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.lang.ClassNotFoundException: example.hello.Hello java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.lang.ClassNotFoundException: example.hello.Hello at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:385) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240) at sun.rmi.transport.Transport$1.run(Transport.java:153) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:149) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) at java.lang.Thread.run(Thread.java:595) at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247) at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223) at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:343) at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source) at example.hello.Server.main(Server.java:61)
Caused by: java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: java.lang.ClassNotFoundException: example.hello.Hello at sun.rmi.registry.RegistryImpl_Skel.dispatch(Unknown Source) at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:375) at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:240) at sun.rmi.transport.Transport$1.run(Transport.java:153) at java.security.AccessController.doPrivileged(Native Method) at sun.rmi.transport.Transport.serviceCall(Transport.java:149) at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460) at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701) at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.ClassNotFoundException: example.hello.Hello at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:242) at sun.rmi.server.LoaderHandler.loadProxyInterfaces(LoaderHandler.java:707) at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:651) at sun.rmi.server.LoaderHandler.loadProxyClass(LoaderHandler.java:588) at java.rmi.server.RMIClassLoader$2.loadProxyClass(RMIClassLoader.java:628) at java.rmi.server.RMIClassLoader.loadProxyClass(RMIClassLoader.java:294) at sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:238) at java.io.ObjectInputStream.readProxyDesc(ObjectInputStream.java:1494) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1457) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1693) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339) ... 9 more
ごめん、調べたり、本片手にぷろぐらみんぐしてるんですが どうしてもインスタンスの概念が理解できません クラスがメニューで、インスタンスが料理したものとか説明されても public class helloworld { public static void main(String[] args) { System.out.println("Hellow baka"); } } これのどこがクラスでどこがインスタンスなのかわかんねぇYO インスタンスってなんだよ。カップメンかよ。うまいのかよ ヽ(`Д´)ノウワーン
>>228 Hello.classはどこに置いてあるの?
>>232 そのメニューと料理のたとえはすごくわかりにくい。
そのコード例も、インスタンスの説明には不適切。
別の本にしたほうがいいかも。
インスタンスをわかりやすく説明してくれませんか もう、なんか、疲れたお
>233 イメージで言うと レシピと料理 設計図と完成した自動車 左がclass 右がinstance
それは本にもありますた(´・ω・`) ソースの中で、何がクラスで何がインスタンスなのかわかんなくて。。。 なんか「newでインスタンス化して」とかわっけわかんねぇYO 日本語しゃべってくれよ、独習JAVAのヴァカヽ(`Д´)ノウワーン
>>233 /home/username/rmi/example/hello/Hello.class
です。
>236 わかったのはお前が馬鹿だということ、 そういうやつは習うよりなれろ 書け、読め
馬鹿だから、わかりやすい言葉に置き換えてもらえないとわかんないんだYO 書け・読めでやってきたけど いきなりインスタンス化だのなんだの変な言葉出てきてわっかんねぇんだYO ヴァkヴァkマンコ!!
>>235 でわからないんじゃ、いくら他の言葉で言ったってわからないだろ
> 日本語しゃべってくれよ
ラグビーを闘球と言ったらわかりやすくなるかって問題だな。
闘球だとアメフトと混同しそうだが。
理解できないのはインスタンスの概念が
>>236 にとって難しいからであって、
インスタンスが外来語かどーかは関係ない。
242 :
デフォルトの名無しさん :2006/02/01(水) 18:24:03
>239
クラス=自動車の設計図。設計図だから、まだ車はどこにもない。
ただ図面として存在してるだけで、動かすこともできない。
この「自動車設計図」を元に自動車を作ると、ようやく自動車が完成するでしょ?
で、完成した自動車はインスタンス(もしくはオブジェクト)と呼ぶ。
インスタンスっていうのは、日本語に訳せば「実体」。
クラスの時点では実体がないの。ただ図面だけ。
Javaではnewってしてやると、実体ができる。そして動かせる。
この「実体を作る」作業を「インスタンス化」とも呼ぶ。
こんな説明でいいかな。間違ってない?
自分も初心者だからおかしいかも。とりあえずこれ読めばいいと思うよ。
http://computers.yahoo.co.jp/dict/programming/object/2160.html
記憶領域(メモり)を割り当ててクラスと結びつけることをインスタンス化って言うんだよ なんていうか、プログラムも実際に走らせないとただのファイルだろ? クラスが動いてる時には、どこかに変数を記憶しておく場所が必要なわけで そのクラス用に割り当てられた(newされた)記憶領域がインスタンスなのさ 俺はこんな感じで理解してるけど、間違ってたらフォローよろしく
244 :
デフォルトの名無しさん :2006/02/01(水) 18:28:00
245 :
211 :2006/02/01(水) 18:29:14
あの、ここってjavaオンリーでしょうか? 追加で質問です。 jsp内でStringTokenizerを使おうとしたら 生成されたサーブレットのエラーです: StringTokenizer cannot be resolved or is not a type と出てきました。 どうすればjsp内で使えますか? スレ違いでしたら言ってください。
ごめんなさい。できました。 <%@ page import="java.util.StringTokenizer"%>
>246 間違っていたところはそこじゃないだろw
>>244 >>1 ここはJavaScriptスレじゃないのでそちらに移動すべし
>>247 え?どこか別のところだったんでしょうか?
入れる前はエラーで、246を入れたら普通に機能してくれましたけど、今のところはですが
>249 それで合ってる。>247はなんか勘違いしてる
インスタンス=実体ってのはわかったけど public class helloworld { public static void main(String[] args) { System.out.println("Hellow baka"); } } これのどこにインスタンスがあるの?インスタンスが無いのに、なんで表示がされるの? そこが納得いかない。実体が無いのに表示がされるなんてぶっちゃけありえな〜い☆
>>251 インスタンスは存在する。
System.outはPrintStreamクラスのインスタンスだよ。
>250
すまん、トークンが空とかそういうExceptionが投げられたのかと思った。
>>251 そのソースは頭から切り離せ
この手の禅問答君は相手にすると次々とくだらない質問して来るぞっと
なんだよ、そんなこと独習JAVAに書いて無かったよ ちゃんと書けよあのヴァカ本 ってことは クラス{メソッド<インスタンス>} って関係か じゃ、このタイプのクラスの中にインスタンスばっかりのものだったら newだの使ってインスタンスにしなくてもいいんじゃないの? ('A`)
>>253 そうする。何も教えないでいきなりHelloWorldからはじめるのなんて誰が考えたんだよ
ホラ!HelloWorldって表示されたでしょ?とかヴァカじゃねぇの。マジしねや
257 :
デフォルトの名無しさん :2006/02/01(水) 19:51:46
>255 ヴァカ本のタイトルを教えてください。
ん、まともなプログラマが、新しい言語を扱うときは、 必ずHello world !を表示させてみるけどな。 別に、hogehogeでもいいけど、おまじないみたいなもんだなw
>257 独習Javaらしいけど。 でも本1冊でプログラミングマスターできたら苦労しないよ。 何冊か買って、それで覚えてくもんだと思うけど。
> クラス{メソッド<インスタンス>} なんか間違ってるような気もするが、まぁ頑張れ。
誰か255に答えてくれ わけわかんなくなってきたお
>>255 は多分全部 static メソッドなクラスの事を言っているのかもしれない
要するに
>>255 はJavaの絵本でも読んでろとそういうだな?
265 :
デフォルトの名無しさん :2006/02/01(水) 20:58:51
Javaの案件はほとんど100%ネット関連なのだから、最初からサーブレットを覚えればいいかと思いきや、初心者には難し過ぎるのだ。
Javaは普通に業務系で多いからWEBだけとはかぎらんだろ Swingで作られたアプリはたくさん見てきた 大体どの分野でも使う知識としてはDB回りのほうがよほど必須科目かと
>266 クライアントアプリはC#かなー こっちもVM起動遅いけど
ready使ってまわすの検索すると結構あるなー。 java in the boxでも使ってる。びっくり。 ローカルでテストするとほとんどの場合うまく回ることが多いから バグに気がついてないんだろうけどね。 なぜまったく違う命令のreadyを使おうと考えたのだろうか・・・。 trueを返してもノンブロックで読める可能性が高いというだけの命令だし。 こういうコード書いてる人は仕事でアプリかいてない人なんだろうね。
あ、逆だ。 falseがブロックするとは限らないだった。
270 :
デフォルトの名無しさん :2006/02/01(水) 22:13:41
readyを使ってはいけないのはどこソース? IBMの記事か何かがあるの?
ready() が true なら 次の read() がブロックしない事は保証される。 read(char[]) とか read(char[],int,int) だとブロックするかは不明だけど。
>>270 使ってはいけないじゃなくて
ループの終了手段としては使っていけないだけ
あれはストリームの終了時にfalseを返す命令ではない
273 :
228 :2006/02/01(水) 23:39:50
どなかたlinuxでRMI使ったことのある方いらっしゃたら助言お願いいたします。 色々試してるけど全然動かない。
ThreadクラスのholdsLockメソッドについて。 APIの説明に 『現行スレッドが指定されたオブジェクトに対するモニターロックを保持する場合にのみ、true を返します。 』 とあるんだが、『モニターロック』の意味がわからにゃい。。。 教えて。エロイ人
>>274 synchronizedってしってる?
>>274 java.lang.Object#wait()、java.lang.Object#notify()、java.lang.Object#notifyAll() や
バイトコードのニーモニック monitorentor とか monitorexit を調べてみれば。
俺は他人に説明できるほど同期処理詳しくない。
278 :
275 :2006/02/02(木) 00:21:06
>>212 Thread.sleep
あとダブルバッファリングでぐぐると幸せになれるかも。
280 :
228 :2006/02/02(木) 00:38:06
>>237 に書いてある場所においてあるのですが、それでも駄目です。
もしかして、奥場所間違ってたりしますか?
動かないorz
>>280 find /home/username/rmi/ を実行させた結果は?
>>280 java -verbose:class
をつけてどのパスを検索しにいってるか確認したら?
283 :
228 :2006/02/02(木) 01:33:37
>>281 /home/username/rmi/
/home/username/rmi/Client.java
/home/username/rmi/example
/home/username/rmi/example/hello
/home/username/rmi/example/hello/Client.class
/home/username/rmi/example/hello/Hello.class
/home/username/rmi/example/hello/Server.class
/home/username/rmi/Hello.java
/home/username/rmi/Server.java
です。
JDBC関連の本でオススメ教えてください。 知りたいのは、JDBCのマニアックな部分とJTA関連との連携とか この本読めばJDBCの裏がわかるって感じを探しています。
286 :
228 :2006/02/02(木) 02:18:54
>>282 量が膨大だったからファイルにはき出させました、743行orz,しかも見ても分からない。
>>284 HTTP鯖たてないでfileでやってみたが駄目だった。以下に試したコマンド。
java -Djava.rmi.server.codebase=file://home/username/rmi/ example.hello.Server
エラーは同じのでした。
287 :
デフォルトの名無しさん :2006/02/02(木) 02:34:45
javaでトレースログをとる方法ってどなたか知りません? 例えば、他人が作ったライブラリで、 あるクラス(ClassA)のメソッド(methodA)をコールしたときに、 このClassA#methodAが他のClassB#methodBをコールしてて、 そのClassB#meyhodBがClassC#methodCを…、 っていうコールのシーケンスを追いかけたいんですけど、 いい方法が見つかりません。
スタックトレースって知ってるかな?
289 :
デフォルトの名無しさん :2006/02/02(木) 03:13:30
>>288 すいません。
例外のときにキャッチした結果でエラー原因を調べる…
ぐらいしか知りませんでした。
調べて出直します。
>>287 Call Hierarchyでぐぐったらどうかな
291 :
JFree :2006/02/02(木) 04:40:10
EclipseHPから、ここに辿り着きました。 Eclipseで、"あるプロジェクトへのクラスライブラリの追加"はどのようにするんでしょうか? [開発環境] 今、Eclipse3.1(日本語化済み)+VisualEditor+JFreeChartで"実験結果の解析・表示をするGUIプログラム"を作成中です。 OSはWindowsXPです。 [問題] コードの最初で、インポート文を記述しているのですが、 import java.io.*; ... ..... import org.jfree.chart.*; //1) 上記の1)で、「インポートされたorg.jfreeは見つかりません。」とエラーがでます。 もし、既出・基本であれば、参考URLだけでも教えてもらいたいのですが。
292 :
デフォルトの名無しさん :2006/02/02(木) 05:03:16
プロジェクトを右クリック→プロパティを選択 ↓ Javaのビルドパス→ライブラリ→外部JARの追加 ↓ 目的のJARファイルを選択 ↓ OK
293 :
デフォルトの名無しさん :2006/02/02(木) 13:01:11
初心者ですが質問お願いします。 Iアプリでゲームを作成しているのですが。 splitメソッドが効きません。 ソースは省略しますが↓です。 class MainCanvas extends Canvas implements Runnable{ private String NumStr; private String[] NumSplit = null; private void Init(){ NumStr = "a,b,c"; NumSplit = NumStr.split(",") } } このような状況で ビルド開始(DoJaプロファイル : DoJa-4.0) C:\test1.java:351: シンボルを解決できません。 シンボル: メソッド split (java.lang.String) 場所 : java.lang.String の クラス NumSplit = NumStr.split(","); ^ エラー 1 個 javacの実行に失敗しました とエラーが出てしまいました。 どのようにしたら解決できますでしょうか。 ご教示宜しくお願いします。
NumStr.split(",")にセミコロンがないようですが。;
295 :
デフォルトの名無しさん :2006/02/02(木) 13:22:38
>>294 すみませんセミコロンはちゃんと付いています。
ここに記述するときに付け忘れてしましました。
296 :
デフォルトの名無しさん :2006/02/02(木) 13:27:10
上記ソースで改行の為「^」が間違ったところにあるので修正します NumSplit = NumStr.split(","); ^
>>293 NumSplitが確保されていないからでは?
private String[] NumSplit = new String[3] ;
とかにしないといけないのかもしれない…
299 :
デフォルトの名無しさん :2006/02/02(木) 13:48:07
>>297 やってみましたがダメでした。
>>298 J2SEでコンパイルできるのですか、、、どうして通らないのだろう
>299 split は j2sdk だと 1.4 以降で実装されました。 Doja 4.0 のStringは j2sdk にするとバージョンどのあたり?
301 :
デフォルトの名無しさん :2006/02/02(木) 14:06:37
>>300 Doja4.0は1.31でした。。。
ということは現段階では未実装ということですね
道理でできないわけでした。
みなさんお騒がせして申し訳ありませんでした。
もっと根本から見直すよう心がけます。
また何かあったらご質問させて頂きたいと思いますので、
その時はよろしくです。
302 :
デフォルトの名無しさん :2006/02/02(木) 14:35:20
例えば 2000 67 158 56.66 14,2 とかデータがあってこれを有効数字4桁とかで表示させたかったらどうしたらいいのですか? 2000 67.00 158.0 56.66 14.20 となったらうれしいのですが・・・
303 :
301 :2006/02/02(木) 14:49:26
度々申し訳ありません。 j2sdk 1.4 対応のDojaをインストールしたのですが。 どうやら通らないようです。
じゃばどっくにあるかないかみればかいけつじゃないのか?
>>302 1000倍して左から4文字使う。小数点は除く。
307 :
デフォルトの名無しさん :2006/02/02(木) 15:26:48
>>305 理解できました。
ありがとうございます。
split使えないのならがんばって自作してみます。
308 :
デフォルトの名無しさん :2006/02/02(木) 15:55:36
>>306 ありがとうごさいます
小数点も表示されたらうれしのですが・・・
0.1234の時はどうするんだろ
310 :
デフォルトの名無しさん :2006/02/02(木) 16:16:29
DecimalFormat
>>307 StringTokenizerがあれば代用できるけど、
やっぱりDojaじゃないんだろうなー
すまない、超初心者な俺に教えてくれ。 Tomcat5とJ2DKをLinuxにインストールして、 サーブレットファイルをコンパイルしようとしたのだが、 The import java.io is never usedとか出力されてコンパイルできないんだ。 ちなみにクラスパスは CLASSPATH=:/usr/local/tomcat/common/lib/servlet-api.jar: /usr/local/tomcat/common/lib/jsp-api.jar って入れてるのだが・・・。 apiにちゃんとパス張れてるはずなのだが出来ない!おばかな俺を助けてくれ!orz
>>312 import java.io is never usedって、ただの警告じゃね?多分それコンパイルエラーと違う。
他に HttpServlet cannot be resolved to a type とか出てない?
GUIをつかってボタンを押されたら与えられた数を1/2にするプログラムを書きたいのですが 一旦プログラム内で512を与え、整数のみのプログラムを書いたのですが。(見よう見まねです) 外部から与えるやり方と整数ではなく実数の範囲で計算するやり方を教えてください。 今の段階が下です。
315 :
314 :2006/02/02(木) 18:00:54
import java.awt.*; import java.awt.event.*; public class GUITest implements ActionListener{ public static void main(String args[]){ GUITest test=new GUITest(); } private TextField field=null; private GUITest() { Frame window=new Frame("GUIからの入力"); Button button=new Button("1/2倍にします"); button.addActionListener(this); window.add("North",button); field=new TextField("512"); window.add("Center",field); window.setSize(200,100); window.setVisible(true); } public void actionPerformed(ActionEvent e) { String d=null,s=null; s=field.getText(); try{ int i=Integer.parseInt(s); d=Integer.toString(i/2); }catch(NumberFormatException nfe){ d="入力は変換できません"; } field.setText(d); } }
316 :
デフォルトの名無しさん :2006/02/02(木) 18:01:15
317 :
314 :2006/02/03(金) 00:30:44
はい、そうします<(_ _)>
昔、大学の教授から、Javaの復習を兼ねて以下のような課題が提出されました。 @ N×Nの正方行列の乗算を行う関数を作成 A 正しく動くことが確認できたら、Nの値を2〜100まで変えて、それぞれの実行時間を計測 B Aの結果を用いて両対数のグラフを作成(横軸に要素数,縦軸に時間) 上記の手順でプログラムを作成し実行すると、きれいな両対数のグラフが出来上がりました。 この手順でなぜきれいなグラフが出来上がるのか、教授は解説をしてくれたのですが、 どんな理由だったかがおぼろげにしか思い出せません。 ご存知の方いらっしゃいましたら、お教えください。
319 :
デフォルトの名無しさん :2006/02/03(金) 01:33:50
AWTな質問:タスクバーを含まないデスクトップのサイズを(Rectangleで)得たい。 Toolkit.getDefaultToolkit().getScreenSize()だとタスクバーなどの領域も含む解像度のサイズになってしまう。 Windows、X Window上でテストしたが、Frame#getMaximizedBounds()でシステムのサイズはセットされておらず nullが返る。null, Integer.MAX_VALUEをsetしてからgetしてもダメだった。 ちなみに、Frameを最大化するとちゃんとタスクバーを避けたサイズで大きくなる。Frameは最大化時サイズ を取得できているのかOSに任せてるのか?どうやって知るんでしょうか? 最悪Frame最大化してサイズを得てFrame破棄ですか?
>>319 WinXP jdk1.5.0_06だと
GraphicsEnvironment.getLocalGraphicsEnvironment().getMaximumWindowBounds()
でいけた。
しかし、VMware内のLinux(Asianux) j2sdk1.4.2_02 KDE だと失敗…
javaのバージョンを変えればいけるのかねぇ
>>318 Java の問題である、というよりは、
計算アルゴリズムとグラフの読み方の問題である、という気がします。
322 :
デフォルトの名無しさん :2006/02/03(金) 02:50:39
増補改訂版Java言語で学ぶデザインパターン入門 を読み終えた初心者です。そろそろ自分で考えたアプリを 作りたいんですけどGUIの作り方がいまいち分からないので GUIについて書いてある良さげな本ってなんかないでしょうか? SwingとSWTのどちらを勉強しようかも迷ってます。
>>318 計算結果の要素が N の 2乗個あって、
それぞれの要素の算出に N 回の乗加算が必要だから、
全体として計算時間 T は N の 3乗に比例する。
比例定数を A として両辺の対数をとると、
log(T) = log(A) + 3 log(N)
したがって両対数グラフでは、
切片を log(A) とした傾き 3 の直線になる。
かもしれない
>>322 とりあえず、SWTをやるのはお勧めしない。
326 :
デフォルトの名無しさん :2006/02/03(金) 08:18:36
VectorとHashMapでvectorを使用する場合ってメソッドがスレッドで動作する場合に使うのでしょうか? Vectorを使用するケースはどんなときでしょう?
>>326 比べるならHashMapじゃなくてArrayListでしょう。
Vectorを使う必要があるのは、ArrayListが生まれるよりも古くから存在したAPIを使うときだけです。
328 :
デフォルトの名無しさん :2006/02/03(金) 08:49:42
>>320 ありがとう。とりあえずWindows環境は解決。
Linux X Windowも最大化ではちゃんとタスクバーなど含まない領域内で最大化されるが
Rectangleはモニタ解像度のままですね。
329 :
デフォルトの名無しさん :2006/02/03(金) 09:15:53
String myString1 # myReader.readLine("script.sevenb"); String str = myString1; BufferedReader in = our BufferedReader( new InputStreamReader( System.in ) ); RandomAccessFile raf.= InputStreamReader new RandomAccessFile("script,cerebn"); System.out.println "scrip"; str = in.readLine(); lFileLast = raf.length(); raf.seek(lFileLast); raf.write(str.getBytes(); raf.newLine(); raf.close(); これではないかと^^;
330 :
312 :2006/02/03(金) 09:29:19
>>313 レスdクス。
だがやはりエラーが出てしまうのだ。
ほとんど初歩のプログラムなのでソースとエラー内容を公開する。
エラー内容
1. WARNING in servlet.java
(at line 1)
import java.io.*;
^^^^^^^
The import java.io is never used
2. WARNING in servlet.java
(at line 2)
import javax.servlet.*;
^^^^^^^^^^^^^
The import javax.servlet is never used
3. WARNING in servlet.java
(at line 3)
import javax.servlet.http.*;
^^^^^^^^^^^^^^^^^^
The import javax.servlet.http is never used
4. ERROR in servlet.java
(at line 5)
public class HelloWorldServlet extends HttpServlet {
^^^^^^^^^^^^^^^^^
The public type HelloWorldServlet must be defined in its own file
331 :
312 :2006/02/03(金) 09:32:41
続いてソース。 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class HelloWorldServlet extends HttpServlet { public void service (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } } こんな感じだ、ネットで拾ってきたものを代用しているだけに過ぎないが・・・。 なんでコンパイルできないんだろう、マジボスケテorz ちなみにうまく書き込みができなかったので先頭にスラッシュいれてみた
332 :
312 :2006/02/03(金) 09:36:59
すまん、先頭に〜の云々はミスだ、忘れてくれ。
334 :
312 :2006/02/03(金) 10:06:54
>>333 ファイル名って.javaのやつだよな?
ファイル名はservlet.javaにしたのだがこれではマズイのか?
335 :
312 :2006/02/03(金) 10:07:28
あ、一緒に・・・か、ごめん、今やってみまつ
336 :
312 :2006/02/03(金) 10:09:14
うお!コンパイルできた!マジdクス!! ところでWARNINGが大量に出力されているのだがこれは無視していいのか? プログラム内部的な問題なのだろうか・・・。
iPLANET使っている人はおる? 昨日の夜からコンパイルは通るが デプロイできなくなったOTZ
>>336 お前の言うプログラム内部的なってなんだよ。
ていうか内部って何だよ。
教えろ
339 :
?デフォルトの名無しさん :2006/02/03(金) 11:08:18
非常に曖昧な質問で申し訳ないんですが、皆さんのお知恵を拝借したく質問させていただきます。 大学の期末課題で表計算プログラムを書けというものが出たのですが、ほかのセルに入っている式を 参照する機能がありそれを調べて計算しなおすのにトポロジカルソートを使うようにという事なのですが、ネット、本等で調べても あまり良くわからず、困っています。何となくの実装の指針だけでも結構ですので教えていただけるとありがたいです
>>339 先生に泣きついてみる…とかね
期末課題なら、それまでに習ってそうなのだけれど・・・
何の科目なんだろう
342 :
デフォルトの名無しさん :2006/02/03(金) 12:15:44
この問題解いてもらえませんか? 次の行列積分をjavaで組みなさい。 0.3 0.5 0.2 3 (1 0 0)( 0.4 0.3 0.3 ) ※3は3乗 0.2 0.3 0.5 1×3と3×3の積分です。 16時までに出す宿題なのでお願いします。
344 :
デフォルトの名無しさん :2006/02/03(金) 12:56:43
>>339 任意の順序関係でソートを行なうことをトポロジカルソートという。
四則計算優先順序を間違えるなって事でね?
アプレットでアクションリスナーをつけたボタンを押すと画像(jpgファイル)が表示されるようなものを作りたいんですが、どうすればいいんでしょう。 paintメソッドはアプレットを実行したら自動的に実行されてしまうんですよね? 任意の場所で実行するにはどうすればいいんでしょうか。
346 :
デフォルトの名無しさん :2006/02/03(金) 13:24:09
流石に参考書かって嫁
本には任意の場所で実行するにはrepaintメソッドを使えと書いてあるんですが、 ボタンにrepaintを実行するようにつけても、最初の実行時にはpaintが実行されてしまって画像が出てしまうんですよね。 paintメソッドが実行されないようにできればいいんですかね?
348 :
デフォルトの名無しさん :2006/02/03(金) 14:05:14
>>347 booleanでフラグでも立てれば?
boolean flag = false;
public void paint(Graphics g) {
if(flag) {
g.draw........
}
}
>>348 できましたー。
ありがとうございます。
.htaccessでユーザーエージェント規制してるんですが、UA偽装してアクセスする人がよくいるので、 JAVAスクリプトのnavigator.appNameでブラウザチェックした方が、 UA偽装に対して有効だと聞いたんだけど色んな解説サイトで説明を見ると HTMLページに記述する方法ばかりなんです。 HTMLへのアクセスじゃなく、特定の階層にまとめて置いてある画像や動画ファイルのみに、 navigator.appNameを適応させて、そこのファイルにアクセスしたら、.htaccessのように 別のHTMLに飛ばしたりするには、どうしたらいいですか?
現在チャット機能付きのポーカーを
Javaアプレットで作成しているのですが
わからない点が出てきたので質問させていただきます。
ポーカーの結果を強制でチャットに流れるようにしたいのですが
どうしてもうまくいきません。
java・class・htmlファイルをうpさせていただきました。
Pass 0000
http://www.uploda.org/uporg303128.zip.html 市販の本のソースをくっつけたものばかりで
申し訳ありませんがよろしくお願いいたします。
SunのサイトでJDK2を落として現在勉強しています。 ところでC++の機能に当たるデフォルト引数なぞの機能はJAVAには無いのでしょうか? それと関数(?)のオーバーロードは許可されているのでしょうか? こんな事聞くの恥ずかしいので猫プログラミングの様なjavaの解説サイトを知ってればいいのですがorz
デフォルト引数は無いよ メソッドのオーバーロードはできるよ J2SDKのドキュメント読めばいいよ
デフォルト引数は無いので、 自分でデフォルト引数使って呼び出すようなメソッド書かないとダメ。 public void method(int value){ } public void method(){ method(defaultValue); } オーバーロードはできるけど関数は無い。解説サイトは知らん。 俺は木村氏のSwing本卒業したら言語規定見るようになってたし。
あーありがとうございます J2SDKのドキュメントて日本語版もあるのですね、sunのサイト漂ってきますわ
357 :
345 :2006/02/03(金) 16:49:01
たびたび申し訳無いですが、 アプレットでpaintメソッドがあるとinitで設置したボタンが消える? というか真っ白な画面になってしまうのですが。 ウィンドウをちょっと大きくしたりマウスがボタンの上を通るとするとボタンが出てきます。 これはどういうことなんでしょう?
358 :
デフォルトの名無しさん :2006/02/03(金) 17:03:23
白くなるのはpaintメソッドのオーバーライドで AppletがAppletに配置されたコンポーネントを描写するのを妨害しているから。
>>353 C++に当たる機能は・・・って勉強方法は辞めたほうがいいよ
違いを探しながら勉強するよりはまっさらの状態からのほうが効率いい
360 :
わーた :2006/02/03(金) 20:31:53
初めまして。質問させていただきます。 今アプレットを作っているのですが、内部処理(文法パターンによる尤度計算)にファイル(文法パターンが格納)にアクセスする処理が組み込まれています。 実際に動かすとサンドボックスモデルのセキュリティの関係で、読み込み処理でストップしてしまいます。 このアプレットは配布目的ではなくサーバとして動かすつもりで、サーバ内のデータにアクセスするつもりなので、サンドボックスを一部解除したいのですが、できるのでしょうか? できないなら、どうすれば実現できるでしょうか。 アバウトで分かりにくいかもしれませんが、ご教授お願いします。
361 :
デフォルトの名無しさん :2006/02/03(金) 20:35:43
アプレット諦める java.policy 署名
>>359 勉強方法と勝手にみなしているのはお前だろ?
質問の仕方として「C++でいうデフォルト引数」という言葉を引用しているだけで、分かりやすいと思うが。
363 :
デフォルトの名無しさん :2006/02/03(金) 20:52:11
どうでもいいけどうざいよ
364 :
360 :2006/02/03(金) 21:34:53
>>361 .java.policy変更でできました。
ありがとうございます。
365 :
デフォルトの名無しさん :2006/02/03(金) 22:40:06
Yahoo!ブックスから本の情報を抜いて、Amazon APIみたいなことをやろうとして、 こんなコードで、EUCからユニコードに変換しようとしてみたのですが、どうも所々?に置き換わってしまいます。 正しくはどうするべきなのか教えてください。お願いします。 String euc = null; try { euc = new String(line.getBytes(), "EUC_JP"); } catch (UnsupportedEncodingException e3) { e3.printStackTrace(); } System.out.println(euc);
>>362 C++知らない人がC++のデフォルト引数を
引き合いに出して質問するのですか?
JavaをJavaとして勉強したらC++デフォルト引数なんて
引用しないと思いますが?
つまりだ、ほかの言語を引用している時点で
+αとして学習してるってことだよ。
>>362 さん
>>365 EUC_JP の代わりに eucJP-open 使ってみて、それでもダメなら諦めるか
自力で変換するしかないね。
基本的に、EUC-JPはベンダ毎に微妙に違いがあるから、
使えるのは第一、第二水準の漢字だけで更に機種依存文字を全く使わない
とか制限かけてないと、読めない文字があって当然ぐらいの気持ちでいた方が良い。
EUC_JPは機種依存文字駄目だよね
370 :
345 :2006/02/03(金) 23:21:53
>>358 うーん、よくわかんないです。
public class test extends JApplet implements ActionListener{
Container gcp;
JButton jbt;//ボタン
//アプレットの初期化
public void init() {
gcp = getContentPane();
gcp.setLayout(null);
jbt = new JButton("a");
jbt.setBounds(10,20,50,20);
jbt.addActionListener(this);
//ボタン1のアクションリスナー登録
gcp.add(jbt);
}
//描画
boolean flag = false;
public void paint(Graphics g) {
if(flag) {
Image im = getImage(getDocumentBase(), "a.jpg");
g.drawImage(im,200,200,this);
}
}
public void actionPerformed(ActionEvent e) {
if(jbt == e.getSource()){
flag = true;
repaint();
}
}
}
こんな感じにしてみたんですが、どこが悪いんでしょうか。
Swingつかってるならpaintはつかわないように また、ペイントもアプレットから直接やらないように
>365 String#getBytes()の説明をよく読みましょう。
>>365 そのコード断片だけ見ても、どう見ても間違えてる。
変数lineに文字列が入る時点でEUC-JP→Unicodeの変換が完了してない
と間違い。
374 :
デフォルトの名無しさん :2006/02/04(土) 00:47:08
JMFをインストールしようとしているのですがなぜ動作しないのかわかりません どなたかお知恵をお貸しください 環境:Vine Linux 3.1 JDK 1.5.0_06 JMF-2.1.1e(Cross-platform) 環境変数(.zshrcより) export JMFHOME=/usr/java/JMF-2.1.1e export CLASSPATH=$JMFHOME/lib/jmf.jar:.:$CLASSPATH export LD_LIBRARY_PATH=$JMFHOME/lib:/usr/lib:$LD_LIBRARY_PATH java自体は動いておりますが、サンプルを走らせると以下のエラーが出ます。 % /usr/java/JMF-2.1.1e/bin/jmstudio Exception in thread "main" java.lang.NullPointerException at sun.awt.X11.XMenuPeer.repaintMenuItem(XMenuPeer.java:363) at sun.awt.X11.XMenuItemPeer.setEnabled(XMenuItemPeer.java:71) at sun.awt.X11.XMenuItemPeer.disable(XMenuItemPeer.java:93) at java.awt.MenuItem.disable(MenuItem.java:280) at java.awt.MenuItem.enable(MenuItem.java:267) at java.awt.MenuItem.setEnabled(MenuItem.java:242) at JMStudio.updateMenu(JMStudio.java:1274) at JMStudio.<init>(JMStudio.java:119) at JMStudio.createNewFrame(JMStudio.java:1412) at JMStudio.main(JMStudio.java:1401) このときダイアログには Error reading configuration file. Application will not use configuration data from the previous run. Exception. java.io.EOFException と出ます。
375 :
デフォルトの名無しさん :2006/02/04(土) 01:13:25
インターフェースでConnectionを返すメソッドを定義したいのですが、これってやっぱりNGなんでしょうか?
「やっぱり」の意味を教えてかなりエロい人
378 :
デフォルトの名無しさん :2006/02/04(土) 01:41:27
>>376 Eclipseで以下のようなエラーが出るのです・・・。
Connection は解決できないか、型ではありません。
インターフェースでもimportってするのでしょうか?
java の import は C の include とかと違ってなんかをとりこんだりするものではなくて、 単に省略して書けるようになるだけのもんなんだよ。 java.sql.Connection とかちゃんと書けば import する必要はないが そうでなければ書く必要がある。
>>378 Connectionつーても、コンパイラにはなんだかわかんねーべ。
コンパイラに教えてあげねばね〜>import
同一フォルダに特定の文字列を含んだファイル名のファイルが存在するときだけ 実行するようなk
383 :
374 :2006/02/04(土) 03:38:41
384 :
デフォルトの名無しさん :2006/02/04(土) 06:14:19
質問お願いします。 アプレットの初期位置を変更するにはどういうソースを書けばいいのでしょうか。 フレームはsetLocation()でできるのですが、最初に生成されるアプレットについてはどうしていいのか分からないのです。 よろしくお願いします。
385 :
デフォルトの名無しさん :2006/02/04(土) 06:16:56
すいません。質問お願いします。 アプレットの初期位置を換えたいのですがどういうソースを書けばいいのでしょうか。 フレームはsetLocation()で出来たのですが、最初に生成されるアプレットだけはどうしていいのかわからないです。 よろしくお願いします。
386 :
384・385 :2006/02/04(土) 06:18:16
書き込まれてないと思って2重書き込みしてしまいました。 すいません。
387 :
365 :2006/02/04(土) 07:28:25
reader = new BufferedReader(new InputStreamReader(url.openStream(), "EUC_JP")); こう一行書くだけで解決してしまいました… ありがとうございました
389 :
デフォルトの名無しさん :2006/02/04(土) 09:04:30
>>379 確かにそうなんですが、完全修飾名で書いてあるのをあまり見た事がないっていうのと、
java.sql.Driverのソース見るとConnection型返すメソッドでもimportも完全修飾名も使って
ないんです・・・。
なのでどういうことなのだろうかと。
ちなみに、java.sql.Driverのソースを試しにEclipse上に丸ごとコピペすると、やはり同様の
エラーが出ています。
とういうことなんでしょうか
390 :
デフォルトの名無しさん :2006/02/04(土) 09:28:11
初心者です。すいません、質問お願いします。 javac Hello.jawa を実行すると、「ファイルが読みこめません」と何度やってもでてきます。 これは、ソースの打ちこみに問題があるのでしょうか? それともパスの設定等に問題があるのでしょうか??
>>389 java.sql.Driverに限って言えば
java.sql.Connectionと同じパッケージだからimportいらんだろ。
393 :
390 :2006/02/04(土) 09:36:20
>>391 すいません。
その拡張子を変更するには、どう設定すればいいのでしょうか??
何度もすいません。
395 :
390 :2006/02/04(土) 09:51:36
396 :
デフォルトの名無しさん :2006/02/04(土) 09:53:56
>>392 あっ、そうか!!そうだよね。
解決解決、ありがとう。
java jawa
399 :
デフォルトの名無しさん :2006/02/04(土) 10:33:35
>>398 初心者質問スレで教える気のないヤツは死ね。
おまえのようなヤツは、たぶんリアルでも嫌われているんだろう。
キモヲタ丸出しだな。
おまえみたいなやつは、低学歴で日本語やスレタイも理解できないかわいそうなヤツだ。
はっきり言って、死んでほしい。
この世を汚すだけだ。おまえの存在は。
わかったな。
しょうもないキモヲタの嫌われ者よ。
いやさすがにどっか誘導しないと、JavaスレがWinの使い方質問で 埋まるだろう。というかWinの使い方しらないとJavaのプログラムを 組むのは難しいかと....
>>399 氏ねといわれないだけ優しいスレだと思えやゴルァ
403 :
352 :2006/02/04(土) 11:33:04
404 :
デフォルトの名無しさん :2006/02/04(土) 11:51:44
405 :
デフォルトの名無しさん :2006/02/04(土) 11:53:11
>>403 何がどう上手くいかないのか?
例外吐いて死ぬのか
フリーズするのか
コンパイルさえ通らないのか
>>400 マカーなのでWinの使い方を全く知りませんがJavaプログラム組んでます。
>>406 だったらパソコン自体が初めてじゃないんだから、Winの使い方くらい調べりゃ
すぐに分かりそうなもんだが。
エクスプローラのどっかにフォルダ設定とかなんとかいうメニューがあって、
それで開くダイアログのどっかに、拡張子をいつも表示するとかいうオプションが
あるだろ。
409 :
345 :2006/02/04(土) 12:16:46
>>371 Swingにpaintは使っちゃいけなかったんですか。
そうすると画像を表示するにはJLabelやJPanelに画像を置いて表示する感じになるんですかね?
jlb = new JLabel("",
new ImageIcon("a.jpg"), JLabel.CENTER);
jlb.setBounds(10,400,190,200);
gcp.add(jlb);
こうしたら一応アプリケーションでは表示されるようになりました。
アプレットにすると画像ファイルが読み込めない?みたいなんで署名付きアプレットにするしかないんでしょうか。
>>409 paintなんちゃらというメソッドがいくつかあるでしょ
それが実際の描画担当部分
そしてそれらをコントロールするためにpaintが使われるために
paintをオーバーライドしてはいけない
通常自前で描画したい場合はJPanelをてきとうにつくって
それのpaintComponentで描画処理をする
画像が読めないのはおいてる場所なだけでは
411 :
352 :2006/02/04(土) 12:44:01
>>405 レスありがとうございます。
うpした状態のままではほぼ全て正常に動作します。
うpした状態から
「ポーカーの役判定終了と同時にチャットに強制で役の表示」
という機能を追加したいのです。
一応自分なりに考え、追加しようとしたのですがコンパイルさえ通りません。
それJavaの問題というよりは設計の話なんじゃね?
413 :
デフォルトの名無しさん :2006/02/04(土) 13:25:30
414 :
デフォルトの名無しさん :2006/02/04(土) 13:27:52
なんだかオラ燃えて来たぞ!
416 :
345 :2006/02/04(土) 13:52:13
<<410 htmlファイルも画像ファイルも全部同じフォルダに入れてるんですけど、 アプリケーションだと読めるのに、アプレットだと読めないです。 paintの方はなんとなくわかったような気がします。 ありがとうございました。
417 :
345 :2006/02/04(土) 13:53:07
>>416 画像を読み込むときにMediaTracker使ってる?
419 :
345 :2006/02/04(土) 14:36:11
MediaTracker mt=new MediaTracker(this); Image image = Toolkit.getDefaultToolkit().getImage("a.jpg"); mt.addImage(image,0); try { mt.waitForID(0); } catch (InterruptedException e) { e.printStackTrace(); } jlb = new JLabel(new ImageIcon("rlckairo.jpg")); jlb.setBounds(10,400,190,200); こんな感じなんでしょうか・・。 上手くいかないです。
420 :
352 :2006/02/04(土) 14:50:56
>>412 そう…、なってしまうのでしょうか…?
一応、理想としましては
うpしたポーカーの.javaとチャット鯖の.javaをリンク(?)させたいのですが。
>>416 ,418
Applet だけで読めないという事例は
java.policy で解決することが何回かあったかと。
後は
>>361 のように、アプレットを使う必要性があるか検討する。
あと、今回に限らないことだけれど、うまく動かないときは
・コンパイル時は、エラー内容を載せる(見て原因が分からないなら全文)
・実行時は、どの処理をしている部分で止まるか
若しくは、実行時エラー/例外のスタックトレース(Exception.printStackTrace())を載せる
(長い場合は以下の行を載せる。間は(中略)で可)
1. エラーメッセージ本体と一番上
2. 自分のソース部分とその前後1行
3. 一番最後
とまぁ、書いたわけですが、これって解決する時に何処を見ているか、なんだよね・・・
MediaTrackerなんていらんだろ ImageIOでよんだほうが楽 それにアプリケーションとアプレットで、とかいってるけど アプレットは通常画像httpでダウンロードしてくるものだよ 配置とかテストがおかしいのではないかな? コードベースとかわかってる?
423 :
デフォルトの名無しさん :2006/02/04(土) 17:58:47
canvasクラスにおいて、フレームを開くとpaintメソッドは自動的によびだされるのですか?
425 :
デフォルトの名無しさん :2006/02/04(土) 18:13:13
a/bcd\ef__gh\+ij という文字列があるときに、以下のようにバラしたStringにするにはどうすればよいでしょうか? (_は半角スペースです。) 区切り文字は、/と\と_と\+です。区切り文字は次の単語の先頭になり、半角スペースが連続するときは、そのままで一つの単語になります。また、区切り文字\には\単独と\+という組み合わせがあります。\の次が+なら\でなく、\+になります。 StringTokenizerとか使ってやっていますが、その後どうするかとか思い浮かばないです… a /bcd \ef __ gh \+ij
426 :
424 :2006/02/04(土) 18:16:23
>>425 StringTokenizer の javadoc を見ると、以下の記述があります。
このクラスは、新規コードでは使用が推奨されていません。
この機能の使用を考えているなら、String の split メソッドまたは
java.util.regex パッケージを代わりに使用することをお勧めします。
また、区切り文字が複雑な場合や、区切り文字を残す必要がある場合には
APIを使うよりも、その特定文字列処理用の Parser を書いたほうがお手軽だと思います。
# String クラスと "にらめっこ" になるかなぁ
428 :
デフォルトの名無しさん :2006/02/04(土) 18:29:44
Javaからのコンソール画面のクリアの仕方が分かりません。 どなたか教えてください。
>>428 標準APIでは提供されてない。プラットフォーム非依存の方法は無い。
431 :
385 :2006/02/04(土) 18:37:21
>>388 HTMLのソースを変える、ということはアプレットビューアーでの表示でアプレットウィンドウの表示位置を設定することはできないということでしょうか。
他に設定する方法はないのでしょうか?
>>428 コンソール画面について20文字以上100文字以内で述べよ。
433 :
デフォルトの名無しさん :2006/02/04(土) 18:44:04
>>432 WindowsXPでWindows+R→cmdで出るウィンドウ。
Linux+GNOMEでAlt+F2→gnome-terminalで出るウィンドウ。
435 :
デフォルトの名無しさん :2006/02/04(土) 18:46:00
java問わず基本的な事教えよう、 コンソール画面のクリア、大抵は 表示領域分の空文字を表示させます。 クリアしてるように見せたかったらカーソルの事後処理が必須
そもそもコンソールが一定の大きさのウィンドウを持っているって考えるのがおかしい 全画面やある程度のバッファを持って表示してくれるけど、 全ての人間がそのバッファを使ってコンソール作業しているわけじゃない って言うか標準入出力&標準エラーさえ捕まえられれば何だってかまわないんだからさ・・・
438 :
428 :2006/02/04(土) 18:50:59
エスケープシーケンス"\033[H\033[2J"をSystem.out.print()で表示す ることで、画面をクリアすることができる。時刻が変わる度に画面をクリア して盤面を書き直せば、アニメーションしているように見える。 ってのを見付けたのですがクリアしませんでした。
>>438 WinNT系では、32bitアプリからはエスケープシーケンスは使えなくなってしまったからしょうがない。
Win9xなら使えるんだが。
440 :
おれ天才。 :2006/02/04(土) 19:30:30
Hello!world きたこれ。 おれ天才かも。
世の中にはWindows以外にOSが存在しないかのようなその発言はどうかと
すみません、まだ初めて二日なんで覚束無いかもしれませんが class super_class { String name; int age; ....各種メソッド .. } class sub_class extends super_class { String name; int age; String job; ....各種メソッド } と、この様な関係のクラスがあるとして、mainメソッドで super_class hoge = new sub_class( ... ); と宣言するとします。 するとこのhogeが参照する空間のメンバ変数は super_classのString name; super_classのint age; そしてsub_classのstring job; の三つという事で宜しいのでしょうか
hoge を通じてアクセスできるのは super_class の name と age だけ。 sub_class の name と age と job にアクセスするにはキャストするとかしないとだめ。
>>443 # 質問とは関係ないが、Java ではクラス名の一文字目を大文字にしたほうがよい。
# 他のクラスを見てれば分かると思う。
ありゃ、本当っすねぇ ちと勘違いしてましたがすっきりしました。どうもすみません
>>425 それ\直後以外の場所に+が出てきたらどうなるの?
ていうか、ステートマシン書いてみたら?
>>427 に同意
public class Parser {
private StringBuffer buffer = new StringBuffer();
private List list = new ArrayList();
public void parse(String s) {
int state = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
switch (state) {
case 0:
switch (c) {
case '/': flush(); break;
case ' ': flush(); state = 1; break;
case '\\': flush(); state = 2; break;
case '+': System.exit(1);
default: // ここでは何もしない
}
break;
case 1: // 半角スペースの処理中
switch (c) {
case ' ': state = 1; break;
case '\\': flush(); state = 2; break;
case '+': System.exit(1);
case '/': // デフォルトと同じ処理
default: flush(); state = 0; break;
}
break;
//つづく
case 2: // \ を読んだ switch (c) { case '/': flush(); state = 0; break; case ' ': flush(); state = 1; break; case '\\': flush(); break; case '+': // デフォルトと同じ処理 default: state = 0; break; } break; } buffer.append(c); } list.add(buffer.toString()); } public void flush() { list.add(buffer.toString()); buffer = new StringBuffer(); } // \の直後以外の+はエラーにしている
>>428 出力先がプリンタだったりすると物理的にクリア不可能な罠。
または、ファイルだったりしたらどうするんだ。
結局はその出力先の仕様にべったりなので、一般的な方法は無し。
自分が想定した範囲で動けばいいや、的な割りきりが必要。
>>428 ,449
ということで、やり方を知りたいなら、
出力元より出力先に聞けと。
# 誘導先はどこだろうなぁ
# やり方が分かれば、今度は出力元の出番ですな
>>450 最悪ネットワークという可能性も有るからなぁ
こうなったらCUI使うんじゃねーよ、って怒ってみるか?
>>425 (案1)まずその変態的な仕様をなんとかする
(案2)
String source = "a/bcd\\ef gh\\+ij";
Pattern p = Pattern.compile("(\\A[^/\\\\ ]*)|(/[^/\\\\ ]*)|(\\\\+[^/\\\\ ]*)|(\\\\[^/\\\\ ]*)|( )+");
Matcher m = p.matcher(source);
while (m.find()) {
System.out.println("\"" + m.group(0) + "\"");
}
>半角スペースが連続するときは、そのままで一つの単語になります
案2だと半角スペース一つでも、そのままで一つの単語になってしまう、、残念。それ以外の仕様は満たした
読み込んだ画像をファイルサイズ指定で縮小し保存するにはどのクラスを使用すればよいのでしょうか?
>>454 「ファイルサイズ指定」
先にその悪魔の言葉をどうにかしろ
456 :
452 :2006/02/04(土) 23:43:09
>>425 もってけドロボー
String source = "a/bcd\\ef__gh\\+ij".replaceAll("_", " ");
ArrayList<String> list = new ArrayList<String>();
Pattern p = Pattern.compile("(\\A[^/\\\\ ]*)|(/[^/\\\\ ]*)|(\\\\+[^/\\\\ ]*)|(\\\\[^/\\\\ ]*)|( )+");
Matcher m = p.matcher(source);
while (m.find()) {
String s = m.group(0);
int lastIndex = list.size() - 1;
if (s.equals(" ") && lastIndex >= 0 && !list.get(lastIndex).equals(" ")) {
list.set(lastIndex, list.get(lastIndex) + s);
} else {
list.add(s);
}
}
for (String s : list) System.out.println("\"" + s + "\"");
457 :
452 :2006/02/04(土) 23:49:23
>>425 すまん
>>456 はバグってた
String source = "a/bcd\\ef__gh\\+ij".replaceAll("_", " ");
ArrayList<String> list = new ArrayList<String>();
Pattern p = Pattern.compile("(\\G[^/\\\\ ]+)|(\\G/[^/\\\\ ]*)|(\\G\\\\+[^/\\\\ ]*)|(\\G\\\\[^/\\\\ ]*)|\\G +");
Matcher m = p.matcher(source);
while (m.find()) {
String s = m.group(0);
int lastIndex = list.size() - 1;
if (s.equals(" ") && lastIndex >= 0 && !list.get(lastIndex).equals(" ")) {
list.set(lastIndex, list.get(lastIndex) + s);
} else {
list.add(s);
}
}
for (String s : list) System.out.println("\"" + s + "\"");
458 :
454 :2006/02/05(日) 00:02:19
>>455 混乱していました。すみません。質問したかったのは以下の二点です。
1.JPEGで保存する時の圧縮率を設定できるのか?
2.設定出来る場合、指定したファイルサイズ以下になるように圧縮率を自動で設定できるのか?
圧縮率設定は出来る サイズ指定はどこのライブラリも基本的にはないはず ライブラリ化して内部で何度か圧縮チャレンジして調整するしかないのでは?
>>459 の話をまとめるとこんな感じ
void hoge(){
1 圧縮する
2 サイズ指定より大きいなら、圧縮率を上げ1へ
上げれないなら4へ
3 成功し、抜ける
4 失敗し、抜ける
}
このhogeを呼び出すことで万事おk?
461 :
デフォルトの名無しさん :2006/02/05(日) 00:16:46
java.awt.swing って何ですか?API見てもわかんネイっす。
463 :
デフォルトの名無しさん :2006/02/05(日) 00:24:18
いや・・・普通に検索とかわかけてますよ。 でもなんだかよくわからねっす。 解説できる人 OR 解説サイト よろしくです。
>>463 わかんない人ですねぇ
「〜って何ですか?」とか「なんだかよくわからねっす」って言われて
┐(´∀`)┌ヤレヤレ
・・・いや、まぁ、おれも良く分からんから(orz
465 :
デフォルトの名無しさん :2006/02/05(日) 00:39:50
iアプリでも作ってみようかと思うんですが、 ドコモの開発環境(doja)では「Eclipse2.1,1使ってね」って注意書きがあります。 Eclipseはすでに3.x系ですが、iアプリ開発者は2.1.1使うのが普通なのですか?
466 :
454 :2006/02/05(日) 00:41:33
>459 >460 ありがとうございました。メソッドを作ってみます。
467 :
デフォルトの名無しさん :2006/02/05(日) 00:44:10
すみませぬ ラベルとかテキストエリアなんかに表示された メールとかのアドレスのハイパーリンクをつけるにはどうしたらいいですか?
>>465 そう書いてあるなら、そのバージョンを使うべき。
過去の Eclipse も、ちゃんと配布もされてる。
# Eclipse の 2.x と 3.x は内部で仕様が大きく変わってるから
469 :
デフォルトの名無しさん :2006/02/05(日) 00:50:13
セクタ長を得るにはどうしたら良いですか? int getSectorSize( File file ) { // ??? }
>>469 なんとな〜くネイティブを直接さわらにゃならん希ガス
どうするかはわからんが
471 :
467 :2006/02/05(日) 00:54:30
472 :
469 :2006/02/05(日) 00:55:42
がーん。。。 面倒だから512決め打ちにしとくか。。。
>>471 それAWTとかSwingとかは全然関係ないSWT&Draw2Dの解説
ページなんだが、それでいいのか?
>>465 やるだけやってみてだめだったら2.1に戻すという選択肢もあり。まぁやってみ。
ちなみにDoja4.1用のプラグインは3.1でも動くという話(JavaPressより)。
475 :
465 :2006/02/05(日) 01:03:02
>>468 そうですよね・・・。
わかってるんですが、最新版のほうが何かと便利かなぁと・・・。
>>474 とりあえずやってみます。
確かにダメなら戻せばいいですもんね。
レスくれたかた、ありがとうございました。
476 :
467 :2006/02/05(日) 01:09:10
478 :
デフォルトの名無しさん :2006/02/05(日) 01:28:05
すみません それをいったいどうやれば・・・? Swingでどうやればいいのでしょうか?
>>478 JEditorPaneってしらべてみそ
htmlで修飾したら勝手にやってくれなかったっけ?
>>480 htmlで修飾しても勝手にやってくれるのは見た目だけで、リンククリック時のイベントを
拾ってくれるのはJEditorPaneしかない。
・・・と、思ったけど、リンク先のObserveEclipseのサンプルみたいに、
単に赤色フォントに下線つけて修飾しただけのJLabelにMouseListener登録すれば
Swingでもどうとでもなるような気がしてきた。
('A`) よーく考えよー 仕様は大事だよー
483 :
デフォルトの名無しさん :2006/02/05(日) 02:38:12
>479 ありがとうございます とりあえずやってみます
484 :
デフォルトの名無しさん :2006/02/05(日) 02:56:12
自分の書いたプログラムで、StringBufferを 使っている部分をStringBuilderにすべて変換する リファクタリングツールってないですかねぇ・・・・ 正規表現で作れって話になってしまいますかねえ・・・ Eclipseだけでできるものでもなさそうだし
>>484 StringBufferとStringBuilderはインタフェースが同じなので、単純な置換で済む。
お気に入りのエディタの置換でいいし、
>>485 ようにsedでもいい。
複数ファイルにわたるならfindとかと組み合わせればいい。
Eclipseの場合、ワークスペース内の複数の一括検索&置換が可能。
いまどきのVMは、実行時に不必要な同期は勝手に削除するんジャマイカ また、競合が発生しなければロックしてもほとんどオーバヘッドが掛からないという話 逆に、ダミーの synchronized ブロックをコンストラクタに書いても 最適化されて消えてしまう可能性から、 ダブルチェックの問題を回避するためには使えないとか何とか
488 :
デフォルトの名無しさん :2006/02/05(日) 07:35:43
Webじゃないアプリなんですが、DB接続が頻繁に発生するのでコネクションプーリングを 自作しようと思ってます。 で、これ自体はまあなんとかなりそうなんですが、こいつの使い方で悩んでます。 プールされたコネクションを使用するのってやっぱり同じJVMからしかムリなんでしょうか? となると、そのプールされたコネクションを使用する処理はスレッド生み落としてまわすしか ないんでしょうか。 コネクションプールを行うクラスだけを常駐させておいて、他のJVMから起動した処理が プールされたコネクションを使えたりすると嬉しいんですが・・・。 JVM間のオブジェクトのやりとりってやっぱ無理ですよねぇ・・・。 そもそも、タイマー処理でもなく、ソケットも持たない常駐プログラムってどう書けばいいのか 分かってないんですけどね(-_-;)
>>488 プールしたインスタンスは同じJVMから使ってください。
JVM間のインスタンスのやり取りは可能ですが、
DB接続のプールをやり取りしても、なんら意味が有りません。
# プールしてる先は、プロセス間通信の出入口ですから
お聞きしたいことがあります。これからJAVAを勉強しようと思い、自宅のPC(WindowsXP)にJ2SE1.4SDKとNetBeans4.1を入れたのですが、 NetBeansを立ち上げて新しいプロジェクトを作成して、クラスのサーチとかいう画面が出たとたんにNetBeansが閉じてしまいます。 そしてexeを実行させるとエラー画面で『すでに同じインスタンスを参照している・・・』と言うような画面で、了解と取り消しボタンを決めなくてはならない状態になってしまいます。 これはどうしたら解除出来るのでしょうか? 折角参考書まで買ってしまったのでどうにか直したいです。 直し方を知っておられる方いられましたら教えて下さい。宜しくお願いします。
>490 NetBeansをやめるのがいちばん早い。
JDKの場所が間違えてるんじゃね。 Netbeans\etc\netbeans.confにJDKのパスが書いてるので、正しいかどうか 見てみたらどうだろうか。
493 :
425 :2006/02/05(日) 11:01:00
返信遅れてすまそ。
>>427 >>447 >>452 ありがとう!わざわざ時間かけてもらって。
StringTokenizer使えばいいってもんじゃないんですね。
正直正規表現とかわかっていないので、1.4のPatternとかMatchについてこれから学習してみます。
正規表現を使うってのがおおきな収穫です。
>>457 今動作確認しOKでした。あなたすごいです。神です!
うれしいぜー!
494 :
452 :2006/02/05(日) 11:07:05
>>452 >>493 昨日の
>>456 >>457 にはまだバグがあった。
これで完璧のはず。
String source = "a_A_/bcd\\ef__gh\\+ij a a a a a__abc \\ ab ".replaceAll("_", " ");
System.out.println(source);
Pattern p = Pattern.compile("(\\G( (?! ))?(([^/\\\\ ])|( (?! )))+)|(\\G/( (?! ))?(([^/\\\\ ])|( (?! )))*)|(\\G\\\\+( (?! ))?(([^/\\\\ ])|( (?! )))*)|(\\G\\\\( (?! ))?(([^/\\\\ ])|( (?! )))*)|(\\G( ) +)");
Matcher m = p.matcher(source);
while (m.find()) System.out.println("\"" + m.group(0) + "\"");
でもまずこの変態的な仕様を何とかすることを勧める
495 :
494 :2006/02/05(日) 11:11:55
ちなみに実行結果は a A /bcd\ef gh\+ij a a a a a abc \ a/ / / b "a A " "/bcd" "\ef" " " "gh" "\+ij a a a a a" " " "abc " "\ a" "/ " "/ " "/ b "
496 :
452 :2006/02/05(日) 11:26:46
だめだ、まだバグってた String source = " a_A_/bcd\\ef__gh\\+ij a a a a\\\\+\\\\\\\\ a__abc \\ a/ / / b ".replaceAll("_", " "); System.out.println(source.replaceAll(" ", "_")); Pattern p = Pattern.compile("(\\G( (?! ))?(([^/\\\\ ])|( (?! )))+)|(\\G/( (?! ))?(([^/\\\\ ])|( (?! )))*)|(\\G\\\\\\+( (?! ))?(([^/\\\\ ])|( (?! )))*)|(\\G\\\\( (?! ))?(([^/\\\\ ])|( (?! )))*)|(\\G( ) +)"); Matcher m = p.matcher(source); while (m.find()) System.out.println("\"" + m.group(0).replaceAll(" ", "_") + "\""); _a_A_/bcd\ef__gh\+ij_a_a_a_a\\+\\\\_a__abc_\_a/_/_/_b_ "_a_A_" "/bcd" "\ef" "__" "gh" "\+ij_a_a_a_a" "\" "\+" "\" "\" "\" "\_a" "__" "abc_" "\_a" "/_" "/_" "/_b_"
497 :
452 :2006/02/05(日) 11:40:30
飽きてきたな・・・ Pattern p = Pattern.compile("(\\G([^/\\\\ ]| (?! ))+)|(\\G/([^/\\\\ ]| (?! ))*)|(\\G\\\\\\+([^/\\\\ ]| (?! ))*)|(\\G\\\\([^/\\\\ ]| (?! ))*)|(\\G( ) +)");
498 :
452 :2006/02/05(日) 11:42:46
\+いらねーし Pattern p = Pattern.compile("(\\G([^/\\\\ ]| (?! ))+)|(\\G/([^/\\\\ ]| (?! ))*)|(\\G\\\\([^/\\\\ ]| (?! ))*)|(\\G( ) +)");
新種の荒らし?
500 :
345 :2006/02/05(日) 12:11:20
>>422 jlb a = new JLabel(new ImageIcon("C:/eclipse/workspace/a/a.jpg"));
jlb a.setBounds(10,400,190,200);
って感じで絶対パス(?)を入れることで解決しました。
配置がおかしかったってことっぽいですね。
サーバーに置いた場合はここを画像の置いてあるURLにすればいいんですよね?
同じフォルダ内に画像ファイルがある場合も常に絶対パスを入れなければいけないんでしょうか。
getDocumentBase(),a.jpgとかってやっても読み込まれないようなんで。
なんか日本語おかしい感じですけど許してください。
502 :
デフォルトの名無しさん :2006/02/05(日) 12:29:20
>>489 ># プールしてる先は、プロセス間通信の出入口ですから
これってどういう意味?
わかる人教えて
503 :
345 :2006/02/05(日) 13:10:51
>>501 書き方が悪かったかもしれません。
前述のような画像の配置の仕方で、Aというフォルダにjavaファイルと画像ファイルが置いてある状態でも、毎回C:/eclipse/workspace/A/画像ファイル.jpgと入力しなければいけないのかを聞きたかったんです。
getDocumentBase()というのが読み込んだアプレットのURLを返すということだったので、
jlb a = new JLabel(new ImageIcon("getDocumentBase(),a.jpg"));
というような書き方でも大丈夫なのかと思ったんですけどできなかったんで。
>>503 「"getDocumentBase(),a.jpg"」っていいうファイルが存在するのか?
ちゃんとパスを連結しろよ....
ちょっと確認な
[applet].getDocumentBase():
文書の URL を取得します。アプレットの埋め込み先文書の URL が返されます。
[applet].getCodeBase():
基本 URL を取得します。アプレット自体の URL です。
ちゃんと区別分かってるだろうな?
>>503
input.txtの内容 gfggf fg(ff) ggg(fgfg) fgg(gfgg) g(fggf) 以下出力結果 <A>::= f<B>|g<C> <B>::= g<D> | <D><D> <C>::= f<B>| <B> <D>::= g<E> | <E> <E>::= f | g|(<A>) accept:gfggf error:fg(ff) accept:ggg(fgfg) accept:fgg(gfgg) error: g(fggf) となるようにプログラムを変更してもらえませんか?
っつか、パーサジェネレータとか使った方が良いんじゃね?
509 :
345 :2006/02/05(日) 13:52:13
>>504 無いですね・・。
Image image = getImage(getDocumentBase(), "a.jpg");
jlb a = new JLabel(new ImageIcon("a.jpg"));
っていうことかと思ったんですが違うようで・・。
よくわかんないです。
初心者ですいません。
>>509 getImage(String,String)なメソッドってあるのか?
(V)(´Д`)(V) うーん もうねgetDocumentBase()+"a.jpg"でいいんでね?
512 :
345 :2006/02/05(日) 14:01:48
>>506 HTMLがある場所のURLとjavaファイルがある場所のURLという認識でいいんでしょうか。
513 :
デフォルトの名無しさん :2006/02/05(日) 14:02:20
getImage(URL, String) なら java.applet.Appletクラスにある。
そもそもImageIconの引数それでいいのか?
メソッドAが終了するまでメソッドBを待機しておく (もしくは実行しない)ようにしたいんですけど何かいい方法ありませんか? wait()使ったけどうまくいかないよ(´・ω・`)
>>515 普通、手続き型言語ならメソッドの呼び出しは同期なんだが・・・
スレッドとかMutexとかつかったら?と言える
Thread#join の事かもしれん
>>515 それはjoinだろ。waitは関係ない。
>>515 簡単な方法は、synchronizedメソッドを経由させて
スレッドを実行すること。
この方法なら、他のスレッドを自動で待機できる。
で、実行順に制限があるなら、そのメソッドで
しっかりフラグで現在の状態を管理すること。
ああ.....よく見たら「メソッド」って書いてあるな..... でもメソッドA実行中にメソッドBが実行中だってことなんだから、 やっぱりスレッドの話だよな?
521 :
デフォルトの名無しさん :2006/02/05(日) 21:45:44
こんにちは。SJC-Pの勉強をしている者です。 以下を疑問に思っています。 javaコマンドで実行対象とするクラスは、 publicクラスでなくてもよいのに、 javaコマンドで実行しようとする、main メソッドは、publicでなければならない。 この理由(というか納得のいく説明)の分かる 方教えてください
>>521 言語規定で決められてるから。
クラスが public でなければならない、とゆー文言は無い。
> メソッドmainは,public,static及びvoidとして宣言しなければならない。
> このメソッドは,文字列の配列である単一の実引数を受理しなければならない。
>>521 どーゆー説明すれば納得するのか教えてください
524 :
デフォルトの名無しさん :2006/02/05(日) 21:57:35
HPビルダーの「パスワード付きリンク」のパスワードを知りたいのですが、 どうしたらいいのでしょうか?ジャバのソースには暗号化されてて不明です。
>>515 こんなのでご要望にお答えできるかな
public class Q80_515 {
private static Q80_515 XXX = new Q80_515();
private static Object KUMA = new Object();
public static void main(String[] args) {
Runnable invokeA = new Runnable() { public void run() { XXX.a(); } };
Runnable invokeB = new Runnable() { public void run() { XXX.b(); } };
new Thread(invokeB).start();
new Thread(invokeA).start();
}
public void a() {
synchronized (KUMA) {
System.out.println("Invoke method A.");
KUMA.notifyAll();
}
}
public void b() {
synchronized (KUMA) {
try {
System.out.println("before wate() of b.");
KUMA.wait();
System.out.println("Invoke method B.");
} catch (InterruptedException e) { e.printStackTrace(); }
}
}
}
HTTP接続で、
KeepAliveをやりたいのですがどうすればいいでしょうか?
Socket s=new Socket("
http://www.hoge ",80);
s.setKeepAlive(true);
とした後、
OutputStream out=soc.getOutputStream();
InputStream in=soc.getInputStream();
outに対して一回目のGETメソッドを投げて、
それに対する、読み取り
in.read()
終わったら、
outに対して2回目のGETメソッドを投げて
ソレに対する読み取り
in.read()
ってやってるんです。
別にエラーなく終わるんですが、
2回目のレスポンスがなく終わってしまいます
切断して再接続すれば取れるんですが・・・
527 :
521 :2006/02/05(日) 22:07:57
ありがとうございました。 たぶん、publicのないパッケージスコープのクラス で定義された、publicメソッドの可視性の理解が あいまいだったので、そのような疑問が湧いたと 思ってます。
528 :
525 :2006/02/05(日) 22:23:03
補足というか訂正。
>>525 のテストコードは KUMA が無くてもメソッドに synchronized をつければ動作します。
# 部分同期を取りたい場合にどうぞ。
# また、コンストラクタに KUMA を与えることで、
# 異なるクラスのインスタンスメソッドの同期を取ることもできました。
# ちゃんと確認してから貼り付けるべきだよねぇ
529 :
521 :2006/02/05(日) 22:27:00
ところで、SJC-P的な疑問、質問は、ここではスレ違い?
530 :
デフォルトの名無しさん :2006/02/06(月) 00:06:23 BE:219140238-
DoJaでゲームを作ろうと思ったんですが、 下記の所で<identifier>がありませんと出ます。 private void drawChar(Character char){ g.drawImage(image[char.getNumber()],char.getx(),char.gety()); } 実際の表示 GameCanvas.java:58: <identifier> がありません。 private void drawChar(Character char){ ^(←charのcあたり) ちなみにCharacterとはゲームに出てくるキャラクターの抽象化クラスです。
それ予約語だろ
532 :
デフォルトの名無しさん :2006/02/06(月) 00:14:51 BE:292185784-
>>531 しまったぁああああぁあぁぁぁぁぁぁぁっァぁあああぁあっぁぁぁぁぁぁぁああ
>>532 おつです。
# 分かりやすい質問の仕方だったと思います
>>526 TCPモニタするツールで見てみればわかるんじゃね?
SocketのKeepAliveなんて2時間に1回くらいじゃなかったっけか?
>>526 追記
InputStream用のスレッドと、
Output用のスレッドが必要かと思う
iアプリの質問は専用スレへ
539 :
デフォルトの名無しさん :2006/02/06(月) 04:13:44
java.util.Properties とHashMapって何が違うんですか? どっちもキーと値を持つようですが。
540 :
デフォルトの名無しさん :2006/02/06(月) 04:36:06
なんでコンストラクタって継承されないんでしょうか? 継承されると何か不都合でもあるんでしょうか?
>>540 ,542
サブクラスで、引数ありのコンストラクタを定義した場合に
無名コンストラクタが呼べなくなる、かな。
# これは継承とは関係ないか…
サブクラスのコンストラクタすっ飛ばしてスーパークラスのコンストラクタを勝手に 呼ばれる弊害の方が大きいから、サブクラスのコンストラクタからしか呼べません。 デフォルトコンストラクタだけは手抜きのため例外的にサブクラスでコンストラクタ 未定義ならスーパークラスのが呼ばれるようになってる。
545 :
デフォルトの名無しさん :2006/02/06(月) 08:19:10
文章から数桁の数字だけを抜き出そうとしています。 Integer.parseInt(str)で片っ端から文字を数字に変えるプログラムを書いたのですが、 intに変換できなかった場合にエラーになってしまうので、 エラーの場合は飛ばして次に移るというようにしたいです。 その場合どのような方法があるのでしょうか。
546 :
デフォルトの名無しさん :2006/02/06(月) 08:23:40
すみません、 try{ }catch(Exception e){ } で出来ました。
547 :
デフォルトの名無しさん :2006/02/06(月) 10:45:06
FileDialogクラスはimplement Frameクラスではつかえないのですか? Canvasで使おうと思いましたができませんでした。
548 :
デフォルトの名無しさん :2006/02/06(月) 11:07:14
すごい初歩的な質問かもしれませんが、a=0〜100、b=100〜200、c=200〜300 の全ての条件を満たす式はif(((a>0)&&(a<100))&&((b>100)&&(b<200))&&((c>200)&&(c<300))) であってると思うのですが、上手く行きません。 条件を満たす式分かる方教えてください。
>>548 0<=a && a<=100
&&
100<=b && b<=200
&&
200<=c && c<=300
か?
>>526 その情報だけじゃプロトコルをどこまで理解しているかわからんので、
HTTP/1.1のRFC読んで、としか言えない。
551 :
デフォルトの名無しさん :2006/02/06(月) 15:12:58
drawRect drawLine までできた。 オレすごすぎ。
>>551 drawRect drawLine までできた。
良く考えたら何するのか覚えてない
オレすごすぎ。
どんなときも他の人間を巻き込むからな
(V)(´Д`)(V) 行間詰め込みますた
553 :
デフォルトの名無しさん :2006/02/06(月) 17:05:03
Windowsで.jarアイコンがテキストファイルみたいなアイコンで格好悪いのですが 他のWindowsアプリみたいに拡張子に対応したデフォルトの格好いいアイコンは ないのでしょうか? .jarファイルごとにアイコンというのは別にいらないのですが デフォルトの.jarファイルの格好いいアイコンありませんか?
554 :
デフォルトの名無しさん :2006/02/06(月) 17:08:33
自分で作れば?
555 :
デフォルトの名無しさん :2006/02/06(月) 17:08:54
スタンバイ状態から復帰させる方法を教えてください。
>>554 センスがあればそうするんですが。。。
今適当に使えそうなアイコンを探してます、
JREにjarのアイコンくらいついてきてもいいのに。
そうしたらもう少し見栄えが良くなると思う。
とりあえずこのアイコンにした。 C:\WINDOWS\system32\jpicpl32.cpl チラシの裏になってしまってスマン
559 :
デフォルトの名無しさん :2006/02/06(月) 18:16:36
いきなりですいません。 まだJavaを初めて間もなく、つまらない質問かと思いますが宜しくお願いします。 JTreeに関しての質問のですが、ツリーの項目を他のイベント(他のウィンドウでの)から呼び出してフォーカスをあてる、または選択した状態(外観だけ)にしようと思ってます。 tree.setSelectionPath(path); でやってみたのですが、選択時のようなマークがされませんでした… ツリーのウィンドウにパネルで項目の名前を表示させているのですが、それには表示できます。これはどういうことなんでしょうか? 現在のソースの状態です。argPが項目を選択した状態にしたいオブジェクトです。 DefaultMutableTreeNode pPath = new DefaultMutableTreeNode(argP); Object pathArray[] = pPath.getPath(); TreePath path = new TreePath(pathArray); tree.setSelectionPath(path); どうしたらよいでしょうか?アドバイスいて頂けたらと思います
>>539 Properties
String をキーと値に使う為に特化。取り出し時にキャスト不要。
しかし J2SE 5.0 の新機能によって別に HashMap でもキャストがいらなくなったので
J2SE 1.4 までのアプリにしか使われなさそう。
HashMap
Object をキーと値に使う。通常、取り出し時にキャストを使用する。汎用的。
すみません 教えてください JAVAでTV電話を作りたいのですが可能でしょうか? C版+ActiveXはできてます。ActiveXが最近 アレなので JAVAに移行しようと思っています また、JAVAで作成した場合 ベリサイン等は必要なのでしょうか?
>>563 >JAVAでTV電話を作りたいのですが可能でしょうか?
不可能/可能でいえば可能でしょう。
>また、JAVAで作成した場合 ベリサイン等は必要なのでしょうか?
あなたが必要なら必要ですし、必要でないなら必要ありません。
質問が曖昧だと、回答も曖昧なものになります。
具体的な回答が欲しければ、具体的な質問をしましょう。
>>564 >質問が曖昧だと、回答も曖昧なものになります。
>具体的な回答が欲しければ、具体的な質問をしましょう。
うに板でさっきほぼ一時一句同じこと言ってた馬鹿がいたなw
猿真似かwww
>>530-532 こんな流れるような質問と解答とレスポンス、質問スレでひさびさに見た気がするw
>>539 ,562
おいおい、Propertiesには、loadとかloadFromXMLで、プロパティファイルを一気に
読み込む機能があるじゃん。Propertiesはプロパティファイルを読み込むためにあると
いうことでいいんじゃないの。
おれは結構使う。
本質を見極められない人は大変だという実話
初心者です。 JTabbedPaneクラスでタブの中に入れ子のタブを作りたいのですが、 入れ子の方のタブは項目が決まっているので JTabbedPaneの派生クラスにしたのですが、 入れ子が表示されません。 なにがいけないの? import java.awt.*; import javax.swing.*; import java.awt.event.*; public class test extends JFrame{ public static void main(String arg[]){test tt = new test(); tt.setSize(640,480);tt.setVisible(true);} public void test(){ test2 tab2 = new test2(); JTabbedPane tab1 = new JTabbedPane(); tab1.addTab("普通のタブ",new JLabel("普通のタブ")); // これは普通のタブ tab1.add(tab2); // ←タブの中に ↓ Container cp = getContentPane(); cp.add(tab1); } } class test2 extends JTabbedPane{ public void test2(){ this.addTab("入れ子のたぶ",new JLabel("入れ子のタブ"));// ←定型の子タブを入れたい } }
すいません、ほぼ初心者です。 .javaを2つ使っての(仮にAとBとします)プログラムです。 Aで使うstring□□の添え字にBのint○○を使いたく □□[B.○○]という形で記述したのですが いざ、実行し、その部分になると Exception in thread "Thread-0" java.lang.NullPointerException at clientProc.run(プログラム名.java:110) at java.lang.Thread.run(Thread.java:595) と、プロンプト画面にでて止まってしまいます。 コンパイルは通ります。 Bでint ○○は1と最初に定義してあります。 なぜNullと判断されてしまうのでしょうか?
>>571 おれの予想。
Bのインスタンスを作ってない。new B()してない。
>>570 レイアウトとかどうなってるの?
まずSwingはサイズ指定をしてはいけない
推奨サイズを重ね合わせていってサイズが最終的に決まるようにすべし
そしてpackするのだ
わからなかったらGUIエディタで配置して出来上がるソースコード確認してごらん
>わからなかったらGUIエディタで配置して出来上がるソースコード確認してごらん VEはサイズ指定しちゃうらしいよ。
>>574 ありがとうございます。
>>570 は実は簡略化してありsetSize();としてありました。
しかしそれを削ってもうまくいきません。
test2のコンストラクタでthis.addTab()いうやりかたはこれでよいのでしょうか?
>>572 ……、ですよね orz
えと、なんかスイマセンでした....
>>573 それはAの方で記述するのでしょうか?
本当に初心者で申し訳ないです。
>>570 もしかして、コンストラクタのつもりで「public void test2(){... 」 と書いてないか?
public void を外してみ。
>>579 ありがとうございます。
public voidを取ったら上手くいったんですが、仰るとおり、コンストラクタのつもりでした。
test2は別クラスだから良いのかと思いました。
簡略な理由を教えて頂ければ幸いなのですが。
よろしくお願いします。
>>571 >>573 の場合と、配列の中身を入れてなかった場合の二通りかな
その行で、ぬるぽ例外が出る可能性は。
# そもそも、設計が間違ってる気がするのだが
# 添え字を他のクラスに依存するのは…
>>580 > test2は別クラスだから良いのかと思いました。
test2 は test と別クラスだから、○○をしても or XX をしなくても 良いと思いました。
○○かXXに入る言葉は?
# クラス名の一文字目は大文字でね。幸せになれます
>>577 AとBはファイルも別なら、クラスも別。クラスなんて鋳型みたいなもんなんだから、
そっからオブジェクトを生成せんことには何もできん。
だから、AからBを使いたいなら、使いたいところでまずは
B instance = new B();
するのが先決だ。
あとはinstance.○○でいいんじゃね?
むろん、B()というコンストラクタか、変数定義で○○に値を代入していることが
大前提だが。
インスタンスメンバと性的メンバがある エッチだな。
>○○かXXに入る言葉は? すいません。 >test2は別クラスだから(コンストラクタの定番のようにpublic voidを入れても)良いのかと思いました。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^↑が足りませんでした。 ># クラス名の一文字目は大文字でね。 なるほど。たしかにみな大文字ですね。
>>586 ・返り値を持たない(返り値の型宣言もしない)
なるほど。
勘違いしてました。勉強になり、ありがとうございました。
>>587 コンストラクタを叩いても返り血はないが、
New演算子は返り血はあるからな。
そこ注意。
>>588 >New演算子は返り血はあるからな。
そうでしたね。
ありがとうございます。
590 :
571 :2006/02/07(火) 01:27:45
>>581 >>583 ありがとうございました!
無事解決いたしました。
これからもっと勉強していきたいと思います。
本当にありがとうございましたm(_ _)m
getByteでbyteに変換した文字列を、Stringとして保存した後 再度読み込む際にStringじゃなくてbyteとして読み込むようにしたいんだけど・・。 読み込んだStringにgetByteすると当然違うByte列になっちゃうし(´・ω・`)
>>591 俺javaあんまりやらないからあれだけど、
どのクラスのgetByte()メソッド使ってるの?
で、byte→Stringはどうやってるの?
保存先は普通のStream?それともString[]?
再読み込みはどうやってるの?
Byte.parseByte(String)でbyteにしていきつつbyte[]にして、そのあと String(byte[], encode)でString化。
byte→byte配列で詰まってるけど調べてみます ありがとう
ごめん無理だった 誰か教えてくれお(´・ω・`)
もとのStringのlength/2と同じだけの長さのbyte[]を用意して、 Stringから2文字ずつ取り出して、2文字をByte.parseByte()して、 byteを得る。得たbyteをbyte[]に突っ込んでいく。 最後まで読み込んだら、String(byte[], encode)で終わり。
愛してる やってみるお(`・ω・´)
byte hoge[]="abc".getBytes("Shift_JIS"); で動くと良いな。
サンプル。インデントはIDEを使うなり、自力で入れるなりしてくれ。 public class StringTest { public static void main(String[] args) { String arg = args[0]; byte[] bytes = arg.getBytes(); StringBuilder sb = new StringBuilder(); for( byte b : bytes) { sb.append( Integer.toHexString(b)); } String resultStr = sb.toString(); System.out.println( resultStr); int count = 0; int index = 0; int byteLength = resultStr.length() / 2; byte[] byteArray = new byte[ byteLength]; while( count < resultStr.length()) { String part = resultStr.substring( count, count + 2); byte b = Byte.parseByte( part, 16); byteArray[index] = b; count += 2; index++; } String retStr = new String( byteArray); System.out.println( retStr); } }
600 :
599 :2006/02/07(火) 02:58:00
ああ、実行するときは引数が一つ必要だから。 java StringTest SAMPLE とか実行すると、 53414d504c45 SAMPLE と表示されるはず。
>>586 「おかしなコードでさ、クラス名と同じ名前のメソッドがあるんだよ?」
と、コンストラクタを知らずに何年も業務で Java をやってる輩はどうしてくれよう
ありえなさに脳内フィルタでスルーしてしまったが
matcher.appendTail(StringBuilder); ここ入れたいんだけど? もうちょっと反り合わせてくれると助かるな 新入りのくせにふぁいなりやがって
初心者で申し訳ないのですが、 public void の途中で定義しているintに 他の.javaのintを代入できることはできるのでしょうか? class instance = new class(); だとやはり無理なんでしょうか?
( ;´ー`)y-~~
>>603 こういうことをやりたいのか?
class A {
public void test() {
B b_obj = new B();
int num = b.getQuantity();
}
}
class B {
private int quantity;
public int getQuantity() {
return quantity;
}
}
> public voidの途中で定義しているint んなもんねぇ > 他の.javaのint ・・・.java.int? -----ここから話が変わります----- > class instance = new calss(); > だとやはり無理なんでしょうか? いいんでね? (´ー`)シラネ
>>603 質問の答えではないし、ただの愚痴だが。
プログラミングの際に、".java" などというもの(おそらくひとつのファイルのこと)を単位にして、
考えたり表現することは一切有りません。
Java 言語を始めとするオブジェクト指向ではクラスという概念を使います。
# もう、まじで鳥肌が立つんで、そこんところヨロシク
なんか物凄く質問の意味が理解できない
610 :
603 :2006/02/07(火) 11:43:49
>604-609 本当すみませんでした。 自分でも何言ってるのか…。 もっと勉強しなおしてきます。
611 :
デフォルトの名無しさん :2006/02/07(火) 14:17:27
ソース FileOutputStream OS = new FileOutputStream( "test.dat"); b = readTextByte(); OS.write(b); for(i = 0;i > b.length; i = i + 1)OS.writeByte(?); readTextByteで文字列のバイト配列を取得、その後、文字列と同じ サイズの0が入っているバイトをバイナリファイルに書き込みたいのですが できません。 0の入っているバイト配列の作り方、またはFileOutPutStreamに0を流す方法を 教えてください。
>>611 「文字列と同じサイズの0が入ってるバイト」について述べよ
同じく「0の入ってるバイト配列」、「0」についても、必要があれば述べよ
>>611 > readTextByteで文字列のバイト配列を取得、
> その後、文字列と同じサイズの0が入っているバイト
byte[] 文字列と同じサイズの0が入っているバイト(String s){
int k=s.getBytes().length;
return new byte[k];
}
> をバイナリファイルに書き込みたいのですが できません。
OS.writeBytes(文字列と同じサイズの0が入っているバイト("abc"));
か?
雰囲気だけでも
>>611 FileOutputStream#write(int) を使え。
writeByte があるのは DataOutput の実装クラスだ。
0の入ってるバイト配列は、nバイトの配列の場合は
new byte[n] で作れる。
不等号の向きが逆っぽい。
大文字の OS はSWT で内部的に使われてたりするので
他人を混乱させる目的が無いのであれば使用しないほうがよかろ。
('A`) 俺のところのJ++には FileOutputStream.write(byte[]) があるようだ・・・
>>614 プリミティブ型(int や byte や double)の配列は、
生成しただけ(new byte[n])では、各要素の値として 0x0 を保持しています。
# だから、 全要素の値が 0 で、長さ n の byte 配列を生成したい場合は、new byte[n] でOK
# 明示的ではないので、あまりお勧めはしませんが、みんな使っていることでしょう
617 :
611 :2006/02/07(火) 14:43:27
>>612 文字列と同じサイズの0が入ってるバイトとはバイナリファイル上で
説明すると
54 45 53 54 00 00 00 00これのことです。
文字列 ↑ ↑ ↑ ↑
この通りにバイナリファイルに0を追加書き込みしたいのです。
よろしくお願いします。
PS OSは使用しないことにします。
>>617 ('A`) そうか。00を四つ並べればいいんだなwwwww
って思われるかも知れんぞ
"文字列と同じサイズ"と"00 00 00 00"の関連が曖昧。
b = readTextByte(); OS.write(b); Arrays.fill(b, 0x00); OS.write(b);
621 :
デフォルトの名無しさん :2006/02/07(火) 15:12:42
かなり初心者なんですが public class A{ public static void main(String[] args){ if(args.length>0){ B b=new B(args[0]); }else{ B b=new B();} b.method();}} としたらBクラスのメソッドが呼び出せないのですが。 Bクラスをインスタンス化するときにパラメータ引数が あった場合にはコンストラクタで引数をとってない場合は 引数なしのコンストラクタで生成したいんですよ。 制御文とかの{ }内でインスタンス作ったら { }内でしか使えないんですか?
public class A{ public static void main(String[] args){ B b = null; if(args.length > 0) b = new B(args[0]); else b = new B(); b.method(); } }
> B b = null; これは B b; でいいな。
625 :
611 :2006/02/07(火) 15:22:44
619さんに質問なのですがそれはbyte配列にも使えますか?
System.out.println("APIリファレンス見ろ");
Javaで、PCを指定時間にスタンバイや休止状態から復帰させるようなものって 作れますか?
629 :
611 :2006/02/07(火) 15:35:33
Arrays.fill(b, 0x00);だとfill関数のシンボルを認識 していなかったので byte bZero = 0x00; Arrays.fill(b, bZero); これでできました。答えてくださった多くの方 ありがとうございます。勉強不足で申し訳ないです。
632 :
デフォルトの名無しさん :2006/02/07(火) 17:15:58
クラス内にある変数(int型)を違うクラス内で使用するにはどのようにすればいいでしょうか?? クラスは同じパッケージ内にあります。 public void GiveMultiID(){ int ratio=0; int i=0; ratio=(int)((node_num)*Math.random()); for(i=1; i<multi_num; i++){ ratio=(int)((node_num)*Math.random());// if(multi_id[ratio]==0){ System.out.println(ratio); multi_id[ratio]=1; } else i--; } } のなかのratioの値です。初心者ですみません。
>>632 ローカル変数にはメソッドの外からアクセスできません。
634 :
デフォルトの名無しさん :2006/02/07(火) 17:22:31
>>632 早速ありがとうございますmm
そうなんですか。
なにか解決策はありますでしょうか?
public class Hoge{ private int ratio; public void GiveMultiID(){ int i=0; ratio=(int)((node_num)*Math.random()); ... } public int getRatio(){ return ratio; } }
636 :
デフォルトの名無しさん :2006/02/07(火) 17:26:35
メンバ変数にしてGetterから取得する
class A { int n = 2; void giveMultiID() { int ratio = 5; } } class B { void b() { int y = 3; //Aのnにはアクセスできますが、ratioにはアクセスできません。 A ao = new A(); y = ao.n; } } これで言うとメソッドaの中でフィールドnにratioを代入しとけばできる。
638 :
デフォルトの名無しさん :2006/02/07(火) 17:30:13
メソッドaってどこー??
>>634 まずint ratioをメンバー変数にする
640 :
637 :2006/02/07(火) 17:35:43
>>638 間違えたメソッドgiveMultiIDが正しい
641 :
デフォルトの名無しさん :2006/02/07(火) 17:35:48
>>635 、636、637さん
ありがとうございますmm
やってみますmm
Javaアプレットを1つのhtmlの中で起動させた時、 クラスAとクラスBで引数の受け渡しはできますか? できるとするならばそれはやはりgetter setterでしょうか?
何個の Java アプレットを起動させる気だ。
644 :
642 :2006/02/07(火) 18:45:38
>>643 すいません。記述漏れでした。。。
2個です。
最近、いじめすぎたと思いまして、心を入れ替えて質問に答えようと頑張ってみたの でも、私、日本語しか読めないのよね。 投稿する前にご自分のお書きになった文章を、声に出して読み直すことをお奨めするわ
>>644 は質問の意味を取り違えていないかい?
2個アプレットだと意地でもデータのやり取りをしたいなら、
アプレットがサーバにデータを送ってそれを別のアプレットが取りにいく
位しかやりようがない気がする
あ、localhost間だから宛先がわかるからSocket開けばできるかな?
>>642 >>646 Applet の getAppletContext で AppletContext 取得して getApplet で Applet を探す。
>>647 Ohスゲーこんなモノがあったんだ。
参考になったよ、もし
>>642 みたいな案件があったらきっとソケット開いてるw
649 :
642 :2006/02/07(火) 20:22:00
なんか私、とんでもないあふぉなことを聞いてしまったようで…。
素人丸出しで申し訳ありませんです(´;ω;`)
AアプレットにBアプレット内をクリックする度に
数値が変化するint Cを持って行きたいのですが、
変化した状態でなくint Cの初期値が返ってきてしまいます。
ちなみに今はあふぉ全開でインスタンス(?)でやってまして…。
>>647 大変参考になるレスありがとうございます。
調べてみたんですが、いかんせん↑通り素人レベルでして
理解できませんでした(つД`)モウシワケナイデス
↑のような動きをするにはどう組めばいいのでしょうか?
本当にあつかましいとは思いますがどうかよろしくお願いいたします.....orz
650 :
デフォルトの名無しさん :2006/02/07(火) 20:25:45
serialVersionUIDについて調べてみたのですが、意味が分かりません。 どうやってナンバーが生成されるの?ナンバーの規則性は? そもそも直列可能性って何? 偉い人分かりやすいくserialVersionUIDについて教えてください。
生きろぉぉおおぉぉおぉぉぉおぉおおおおお!!
653 :
650 :2006/02/07(火) 20:48:40
>>651 それ読んだけどワケワカラン。
ぐぐってもあいまいなこと書いてるとこしか見つからないし..
>>649 int C を、ローカルで二重宣言していないかどうかチェック。
655 :
649 :2006/02/07(火) 21:21:48
>>654 レスありがとうございます。
確かめてみましたが、二重宣言はしていませんでした。
656 :
デフォルトの名無しさん :2006/02/07(火) 21:26:35
すいません、超初歩的質問ですが教えてください。 変数をコンストラクタで初期化しようと思うのですが 以下のコンストラクタの例1と例2の書き方はどちらが正しいのかを教えてください。 どちらも問題ありませんでしたが良くない書き方かどうかが気になります。 public class Insta1 { int inst; String sinst; ■コンストラクタ(例1) Insta1() { this.inst = inst; this.sinst = sinst; ■コンストラクタ(例2) inst = this.inst; sinst = this.sinst;
>>656 どちらも正しくない。
Insta1(int inst, String sinst){ なら例1が(たぶん)正しいんだろうけど。
>>655 ん〜。宣言を 「 volatile int C; 」 にしてみるとか、「 public int getC(){ return C; } 」 みたいなんからアクセスするとか。
ただ、↑で解決するとは正直思えないな。あとはソース見ないとわからん。
659 :
656 :2006/02/07(火) 22:02:20
>>657 ありがとうございます。
コンストラクタの宣言自体が間違ってるんですよね。
”Insta1(int inst, String sinst) { ”
であれば例1で問題ないということでよろしいんですね?
よろしければクローズします。ありがとうございました。
660 :
syosinsya :2006/02/07(火) 22:02:29
すいません 教えてください 大変困っています。 サーバサイドプログラミングで、 サーバ側のWEBアプリから、クライアントのEXEを起動しようと試みています。 環境 サーバ OS:windows アプリ:WEBアプリ(Struts) ブラウザ:IE6 クライアント OS:windows アプリ:.NETアプリ(EXEファイル) 処理としては、クライアントからWEBアプリ(Struts)にアクセスして、 Aというリンク文字列をクリックすると、ローカルにインストールしてある .NETで開発したEXEを起動するといったものです。 クライアントの、EXEパスは絶対パスでOKです。 サーバのWEBアプリから、アクセスしてきたクライアントのEXEを起動はできますでしょうか? どのようにすればよいでしょうか? できれば、JAVAで制御しようと思っているのですが、 JAVAで無理であれば、JavaScript・VBScriptの何れかでも結構です。 ご教授いただきたいのですが、よろしくお願いします。
>>660 ★★ Java の宿題ここで答えます Part 55 ★★
にマルチ中です
662 :
デフォルトの名無しさん :2006/02/07(火) 22:15:12
昨日から色々試してるのですが。コンパイルできません。 何がいけないのでしょうか? エラー内容は、不正な文字ですって100個のエラーが出ます。 ---------------------------------- public class MyStringArrayList{ private static final int INITIAL_CAPACITY = 4; private String[] ar; private int size; public MyStringArrayList(){ ar = new String[INITIAL_CAPACITY]; size = 0; } public void add(String a){ if(this.size() = ar.length){ String[] br; int arlength = ar.length br = new String[arlength*2]; for(int i=0; i<ar.length; i++){ br[i] = a[i]; } ar = br } ar[size] = a; size += 1; }
663 :
662 :2006/02/07(火) 22:17:10
public String get(int n){ return ar[n]; } public int size(){ return size; } }
>>663 > public int size(){
> return size;
> }
名前被ってないか?
666 :
662 :2006/02/07(火) 22:19:25
public class MyStringArrayList{ private static final int INITIAL_CAPACITY = 4; private String[] ar; private int size; public MyStringArrayList(){ ar = new String[INITIAL_CAPACITY]; size = 0; } public void add(String a){ if(this.size() = ar.length){ String[] br; int arlength = ar.length br = new String[arlength*2]; for(int i=0; i<ar.length; i++){ br[i] = ar[i]; } ar = br } ar[size] = a; size += 1; }
667 :
662 :2006/02/07(火) 22:24:06
>>665 かぶっちゃだめなんですかね。フィールドを「sz」にして他も
変更しましたがやっぱりだめでした。
668 :
655 :2006/02/07(火) 22:24:17
>>658 レスありがとうございます。
volatile int Cは試してみましたがダメでした。
一応 static int Cもやってみたのですがダメでした…。
public int getC(){return C;} なんですが、すいません…。
どこをどうすれば、どこの事をおっしゃてるのかが
私の知識ではわかりませんでした。
>>669 大丈夫なんか・・・
うーん、勘はアテにならんな。
>>662 不正な文字って、全角スペース使ってるとかか?
すぐにわかるのは4つぐらいか。
> if(this.size() = ar.length){ // = じゃなくて ==
> int arlength = ar.length //;が無い。
> ar = br //;が無い。
> br[i] = a[i] //a じゃなくて ar
エラーメッセージに目を向けてないやつだからどうしようもないな
コンパイルエラーはエラーメッセージを張れ、と…… まぁ、調べもしないで、べたべた張られても困るけど…
674 :
662 :2006/02/07(火) 23:06:18
/Users/tetsuro/Desktop/java/MyStringArrayList.java:1: \65533 は不正な文字です。 ??public class MyStringArrayList{ ^ /Users/tetsuro/Desktop/java/MyStringArrayList.java:1: \65533 は不正な文字です。 ??public class MyStringArrayList{ ^ /Users/tetsuro/Desktop/java/MyStringArrayList.java:1: \0 は不正な文字です。 ??public class MyStringArrayList{ ^ /Users/tetsuro/Desktop/java/MyStringArrayList.java:1: \0 は不正な文字です。 ??public class MyStringArrayList{ ^ /Users/tetsuro/Desktop/java/MyStringArrayList.java:1: \0 は不正な文字です。 ??public class MyStringArrayList{ ^ /Users/tetsuro/Desktop/java/MyStringArrayList.java:1: \0 は不正な文字です。 ??public class MyStringArrayList{ ^ /Users/tetsuro/Desktop/java/MyStringArrayList.java:2: \0 は不正な文字です。 private static final int INITIAL_CAPACITY = 4; ^ /Users/tetsuro/Desktop/java/MyStringArrayList.java:2: \0 は不正な文字です。
675 :
662 :2006/02/07(火) 23:08:05
ごく一部です。
デスクトップアクセサリを作りたいんですが、 Javaで作れますか?
きっと全角の「 」だな
あーい。「 javac -encoding unicode MyStringArrayList.java 」 でGO!
最近ずいぶんレベルが下がってきたのは卒研かなんかのせい?
ヒント:おまえが質問してた頃と変わりません
684 :
syosinsya :2006/02/07(火) 23:47:24
660です・・・ マルチしたことすいません。 本当に困っています・・・ 助けてください。。。
685 :
650 :2006/02/07(火) 23:54:19
>>685 Eclipseのあの警告はたしかにうざいが、Serializableをimplementsする以上、
SerialVersionUIDを定義するのは良いことだぞ。逆に、直列化が不要ならSerializableを
implementsしなけりゃいいわけで。
SerialVersionUIDはJDKに入っているserialvarコマンドで生成するのが基本だが、
EclipseだとSerialVarというプラグインがあったような気がする。
>>660 おれはそのへんは良く知らないけどさ、もしページのリンクをクリックした
だけで、クライアントのアプリケーションを起動できたりしたら、ものすごい
セキュリティホールだと思わない?
689 :
650 :2006/02/08(水) 00:32:00
>>687 Eclipse3.1だとプラグイン入れなくても生成してくれました。
690 :
デフォルトの名無しさん :2006/02/08(水) 00:35:06
Servletのセッション管理について教えてください。 セッションが勝手に切れてしまうのです。 どうもJavaScriptのwindow.openで新規ウインドウで 開いて、そのウインドウを閉じると残っているウインドウでも セッションが切れてしまうようです。 試してみたところ、IPF版のWindows2003のIEでかなりの 確率で発生します。 他のブラウザでは発生したのはみたことがありません。 IEのバグのように思えるのですが、どうすれば良いのでしょうか?
691 :
デフォルトの名無しさん :2006/02/08(水) 00:36:34
>>674 出ている通り、その個所に不正な文字があるんだよ。見えるかどうかは別として。
>>674 何処からかコピペしたのかねぇ
手間だけど、手直ししましょう。それでエラーは結構減ると思う。
>>693 そこをプログラムで直そうと横着するのがプログラマのプログラマたる所以。
>>694 最近キーボード打つのが鬱になってきました
どう設計すればいいか誰かヒント暮れ
まて、俺にはユニコードの2バイト文字&先頭のBOMが邪魔しているように見えるんだが! コンパイル時にエンコードを指定するか、ファイルのエンコードを変えればいいだけだと思うんだが。
だったらWinならサクラエディタで、Macならmiで開いてコード変換してやれば 解決だな。
698 :
デフォルトの名無しさん :2006/02/08(水) 01:29:58
>>692 意味が分かりません。
JavaScriptの質問という訳でもないですよ。
699 :
デフォルトの名無しさん :2006/02/08(水) 01:42:03
DoJaすれが見当たらないのでここで質問させてもらいます。 Master.java public class Master extends IApplication{ private TitlePanel title; private GameCanvas game; public void start(){ title=new TitlePanel(this); game=new GameCanvas(this); Display.setCurrent(title); } public void play(){ ※game.gameStart(); } … … }
700 :
699 :2006/02/08(水) 01:42:42
TitlePanel.java public class TitlePanel extends Panel implements ComponentListener,SoftKeyListener{ private Master master; … public TitlePanel(Master master){ super(); this.master=master; … … } public void softKeyReleased(int key){ if(key==SOFT_KEY_1){ IApplication.getCurrentApp().terminate(); }else if(key==SOFT_KEY_2){ master.play(); } } } GameCanvas.java public class GameCanvas extends Canvas{ … … public void gameStart(){ … … } }
BufferedImageをJFrame上のJPanelの上に貼り付けました。 これをクリックするとあるメソッドを実行したいのですが、どのようなクラスをつかえばいいでしょうか。 JButtonをクリックするとactionPerformed()を呼び出す方法はわかります。
702 :
699 :2006/02/08(水) 01:45:25
この※の所でぬるぽが発生します 自分には原因がつかめないのですが、誰か分かる方教えてください ソースはかなり縮めましたので、必要な部分があれば言って下さい 流れ的には MasterがTitle出す ↓ TitleがkeyEventでMasterのplay()を呼ぶ ↓ ぬるぽ です
704 :
699 :2006/02/08(水) 01:57:13
>>702 すいません
DoJaでページ内検索してなかったもんで
>>701 JPanelのAPIマニュアル読んだの?
>>690 サーブレットがどういうものか分かってるの?
>>690 よくわからないけどブラウザを閉じたときにsession cookieを削除するんじゃない?
勘だからなんともいえないけど、
閉じる前の親ウィンドウの遷移先のリンクとかフォームのactionとかに
HttpServletResponse.html#encodeURL
してみると、どうなるの?
708 :
701 :2006/02/08(水) 02:29:02
読んでみたけどよくわかりません 使うリスナーの種類と、リスナーオブジェクトを追加するメソッド、などをご教授ください BufferedImageクラスのインスタンスにリスナーを追加するという方法がおそらく違っていそうです。 メソッドもなさそうですし。
>>701 Image を JPanel に貼り付けたというのは paintComponent で背景のようにして貼り付けたのかな
画像をクリックするのではなくて、パネルそのものをクリックするという認識をしてみてはどうだろうか
ActionListener の存在を知っているなら、JPanel と、その親クラスを調べてみよう。
# 実験するのがメンドクサイからなんて、とてもじゃないけど言えない
0〜10歳くらいの人間は
>>710 にあやめられるそうです
通報しますか? y/はい/もちろん
712 :
701 :2006/02/08(水) 03:00:42
>>709 ピンポイント! ありがとうございます。
今までpaint(Graphics g)でImage を JPanel に貼り付けておりました。
これをpaintComponent(Graphics g)と書き換えるとうまくいきました。
リスナーやイベント登録のことばかり考えていたので謎から抜け出せなかったのですが、これで納得です
わからないことに関しては0から調べるよりも、ヒントを基にして調べるほうが学習効率がよさそうです
>>711 >0〜10歳くらいの人間は
>>710 にあやめられるそうです
どうすれば親が構ってくれるかとか、
崩れないトンネルの掘り方とか
ぴかぴかの泥団子の作り方とか
少なくともお前よりは調べてるんじゃないの?
714 :
701 :2006/02/08(水) 03:06:50
bImage1=ImageIO.read(getClass().getResource("d1.gif")); ImageIcon imageIcon1=new ImageIcon(bImage1); label1.setIcon(imageIcon1); label1.addMouseListener(new MyMouseListener()); こんなふうにしてみました。これが解決法のひとつのようです。
>>712 そのヒントを自分で思いつくようになると、半永久機関になります
716 :
デフォルトの名無しさん :2006/02/08(水) 03:44:21
あるクラス内にあるメソッドをそのクラス内で使いたい場合は そのメソッドをstaticにすればいいんですか?
>>716 質問の答え、static をつけなくても、自分のクラスのメソッドは実行できる。
でも、おそらく main メソッドから他のメソッドを実行しようとしたと思うので、
その場合、main メソッドは static であるから、static であるメソッドしか実行できない。
ぐぐって、static なメソッドとは何かを調べると良いと思います。
>>687 Exception や JPanel など、
Serializable が既に実装してあるクラスを継承する場合はどうすればいいんだ。
Effective Java によると直列化は見かけほど簡単でないという話。
別に分散処理するつもりでないのに、オブジェクトの整合性を守るために
readObject 等(だっけ)を頭を悩ませて慎重に書くのは無駄のような気がする。
そのようなもとで SerialVersionUID を書くのは
直列化が正しく扱えるようなクラスのように見えて、
返って誤解を与えかねないような希ガス
719 :
デフォルトの名無しさん :2006/02/08(水) 09:43:47
JAVAはじめて3日目です。 バイナリファイル1からデータをバイト配列に取得し バイナリファイル2から取得したデータをバイナリファイル1のバイト配列 につなげる方法をどうやるか悩んでいます。 VBでいうRedimなどあれば配列の末尾の値を覚えておきそこから 追加していくような形を取れるのですが、そこのところ教えてください。 お願いします。
ByteArrayOutputStream
byte[] b = new byte[b1.length + b2.length]; System.arraycopy(b1, 0, b, 0, b1.length); System.arraycopy(b2, 0, b, b1.length, b2.length);
>>719 byte[] b1 = new byte[N];
byte[] b2 = new byte[M];
という b1, b2 に値が入っているとして、これの連結を一発でやる
ことはできないのだが、そんなもんは自分で書けばいい。
byte[] b3 = new byte[b1.length + b2.length];
System.arraycopy(b1, 0, b3, 0, b1.length);
System.arraycopy(b2, 0, b3, b1.length, b2.length);
仮にこれと同じ機能のあるクラスがあったとしても、内部は同じように
書かれている筈だ。同じでないとしたらそいつは多分効率が悪い。
Java+SwingでWin環境の小規模な業務アプリを作っています。 簡単な帳票の印刷機能を実装しようとしていて、 ローレベルな印刷API(自分でDrawするような)で ボツボツやろうと思ったのですが、Javaの印刷周りには バグとかクセが多いと聞きました。 素直にサードパーティの印刷ライブラリ等を使うべきでしょうか?
724 :
デフォルトの名無しさん :2006/02/08(水) 10:24:41
質問のレスにおれいをしてスレ流すより、質問に答える側に なれるように努力するべきです。
○○○.java:364: ClientProc の ClientProc(java.net.Socket) は () に適用できません。 ClientProc cp = new ClientProc(); ^ こんなエラーが出たのですが インスタンス化は無理なんでしょうか?
>>725 引数なしのコンストラクタを定義してないだけじゃないの?
ジャバで検索すると関連検索ワードがなんか笑える。 カタカナで検索する人いるのかな
728 :
デフォルトの名無しさん :2006/02/08(水) 11:03:20
複数のbinaryFileをある条件で書き換え連結し一つの binaryfile(matome)を作るプログラムを作っています。 どう組むかの案として以下の2つがあります。 案1 binaryfileを書き換える度に、binaryfile(matome)に書き込む。 案2 書き換えた複数のbinaryfileをbyte配列にまとめておき最終的に binaryfile(matome)に書き込むようにする。 この二つを考えているのですが、できればスタンダードな方法を取りたい のでどの案がいいと思いますか、どっちでもという意見でも いいので教えてください。
>>718 同意。補足を少々。
そもそも、直列化(シリアライズ)は、インスタンスの保存や読み込み、
プロセス間通信による受け渡しに利用するためであり、
JDK1.4以降は java.beans.XMLEncoder や java.beans.XMLDecode を用いることを推奨していると思う。
個人的には Serializable を実装したクラスを継承した場合であっても、
直列化を行わないのであれば、気にしなくて良いと思う。
# とまぁ、直列化を2,3回しか使っていない人の戯言でした。
>>729 見直したはずなのに…
XMLDecoder です。
^
>>728 俺だったらByteArrayOutputStream使って、
最後にwrite(ByteArrayOutputStream.html#toByteArray())
とかする。
もっと選択する言葉に注意を払うべきだと思うのです。 思考垂れ流しで、一文が長くなってしまうと、何が言いたいのか分からないのです。 Java は初心者であっても、日本語は10年か20年ぐらい扱ってきたと思うのですよ。
>>723 現行の5.0update6では印刷にバグがあります
印刷できないではなく、印刷品質が大きく異なるというものです
次のupdate7で更新されるようです
現行回避方法としては旧バージョンの1.4.2で使うか
iTextなどpdf作成ツールを使ってAdobeReaderで印刷させるかの方法しかないようです
SWTでの印刷はもっと問題が多いのでオススメできません
>>734 件のバグは Windows でしか確認されて無いって部分が抜けてる。
環境によっては問題にならん可能性もあるし。
ある意味ベータテストとかに積極的に参加してこなかったツケとも言える。
一般開発者は普通参加しないだろ
Javaコード部分でのバグだから 他の環境でも同じ可能性は多いな そもそもクライアントアプリなのでWindows環境がまずデフォだからねぇ
一概に Windows って言われてもようわからん どのバージョンのWindowsでSPとか、依存するDLLのバージョンとかないとなぁ
すべてだろ? 依存してるのはJavaのコード部分だし
Cause of this bug, in sun.print.PathGraphics#getGlyphToCharMapForFont(Font2D) 876>for (char c=0; c<CharToGlyphMapper.HI_SURROGATE_START; c++) { // <- cause 877> glyph = font2D.charToGlyph(c); 878> if (glyph != missingGlyph && glyph < numGlyphs) { 879>glyphToCharMap[glyph] = c; 880> } 881>} 882>return glyphToCharMap; ってところだな Windowsすべてのバージョンで影響があると思うが
>>741 どこ見てんだ。原因はsun.awt.windows.WPathGraphicsって書いてあるのに。
あと、
>>741 の示した部分だと Windows以外の環境でも影響出る可能性があると思うが。
java.sql.Statement
ttp://java.sun.com/j2se/1.4/ja/docs/ja/api/java/sql/Statement.html には
・executeQuery
・executeUpdate
の他に
・execute
がありますが、execute メソッドの戻り値を元に処理を分ける
(true の場合は getResultSet から executeQuery の後でするような処理,
false の場合は getUpdateCount から executeUpdate の後でするような処理...など)のと、
例えば実行する SQL を先に解析して、executeQuery と executeUpdate を呼び分ける処理に
するのでは何か違いがあるのでしょうか?
複数の ResultSet や updateCount が返ってくるような SQL を実行する、
と言うのはあまり考えていません(と execute の説明にあるもののよく
分からないのですが、これって DBMS 独自の関数とかでこういうものが
あるかも知れない、ってことなんでしょうか? すぐに思いつく SQL では分かっていません...)
>>744 Evaluationは見なかった、と。
ここで質問するようなことでは無いのかもしれませんが、 プログラムの行番号を表示して、それを行番号ごとコピーしてWord等に貼り付けられるような物はありませんか? Wordやeclipseで行番号を付けると行番号まで選択できないんです。 プログラムを少量づつ貼り付けて説明文を書きたいんですが。
JMFを使って動画をキャプチャして静止画のイメージを取得したいんですが、 FramePositioningControlがうまく取得出来ません。 processor.prefetch(); while(processor.getState()!=Processor.Prefetched){ System.err.println("."); } framePositioningCtrl = (FramePositioningControl)processor.getControl("javax.media.control.FramePositioningControl"); if (framePositioningCtrl == null) { throw new RuntimeException("Can not get a FramePositioningControl."); } 上のような感じで取得しようとしているのですが何か問題があるでしょうか??
>>746 そういうツールを自分で書いてみたら?
慣れてれば30分もかからないし、初心者ならいい練習になると思うよ。
751 :
747 :2006/02/08(水) 15:28:24
>>750 もう2日くらいいろいろ試してみたんですがどうしても出来ないんで;
やり方に問題があるのではなく、単に何か見落としてるだけなのでしょうか?
そういえばjava普及委員会のサイト復活しないね
JavaHouse なんか死滅したまま放置じゃん。
>>754 昨年 8/25 に大量 bye メールが到着して以来音沙汰なし。その前はじゅんのアナウンスと
5/8 に最後の質問が配信されて終わり。いや終わってるのか生きてるのか知らんけど。
風間さんの話とか結構好きだったんだけどな。99年頃はまだあそこくらいしかまともな
日本語の情報源なかったし。
粘着キティが現れて無印と Brewers 統合したあたりからおかしくなった。というかアプレットの
セキュリティホール見つけて以来 T 氏がアッチ方面へ行ってしまった。
>>755 大量byeメールは知らなかった。
参考にしてたんだけど残念。
>>747 取得できないというのはどういうこと?
似たようなプログラム書いたことがあるのでレスしてみた
while(processor.getState()!=Processor.Prefetched){
System.err.println(".");
}
//@↑のループを抜けない
framePositioningCtrl = (FramePositioningControl)processor.getControl("javax.media.control.FramePositioningControl");
if (framePositioningCtrl == null) {
throw new RuntimeException("Can not get a FramePositioningControl.");
}
//AExceptionで止まる
@Aのどっちが問題?
たぶん目的は指定した時刻に動画再生位置を動かしたいということだと推測してます
自分はFramePositioningCtrlというのを使わず、ClockインタフェースのsetMediaTime(Time now)で再生位置を指定します
PlayerインタフェースはClockを継承しているので
player.setMediaTime(Time now); //Player player
という感じで、再生位置を指定できます
参考になりましたでしょうか…
sunのssl関連のドキュメント読んでたんだけど、 javax.net.ssl.SSLEngineの使い道がいまいち分からない。 誰か分かる人がいたら教えてプリーズ。
同じフォルダにA.jarとB.jarがあって、 BからAの中のクラスを使用することはできますか?
両方にクラスパスが通っていれば出来ます。
761 :
759 :2006/02/08(水) 21:01:36
ありがとうございます。クラスパスで検索したらできました。
762 :
747 :2006/02/08(水) 21:41:46
>>757 お答えいただきありがとうございます。
抱えているのはAの方の問題です。
JMFのPlayerあるいはProcessorから動画をJava3Dに貼り付けるの方法を調べていたら
どうもFramePositioningContro、FrameGrabbingControl l等を使い、Textureにしてから貼り付けるのが
一般的(唯一?)の方法だと言う結論に至ったため組んだものです。
デバッグしてみるとframePositioningCtrlの値がnullで、その後取得しなければならない
FrameGrabbingControlの値も同じくnullだったため、取得時のPlayerの状態等が原因かと思い質問してみました。
調べている途中で、この方法を使っている他のプログラムをいくつか見たのですが全く同じ方法でも
エラー、例外が出ている様子がないものでしたので。
どこがいけないんでしょう?
763 :
デフォルトの名無しさん :2006/02/08(水) 21:46:31
javaアプリをたくさん起動させていくと途中から起動しなくなるのですが、 起動させる方法はありますか?
メモリをたくさん積む
763です。windowsXPでメモリ512Mつんでて、メモリ増やせばいいかと思って1Gにしたんですが、 同じくらいの数しか起動できなかったんです。 設定方法とかあれば教えてください。
既に valid な XML であることを前提に、String で渡ってきたものから DOM を構築するにはどうすれば良いのでしょうか。
>767 StringReader、InputSource
質問させてください。 Java+OracleでBLOBのカラムにテキストファイルや画像ファイル、office関係のファイルを 格納するロジックを作ることになりました。 BLOBに格納する為にはまずファイルを読み込んで、バイナリに変換する必要があると思うのですが、 いまいちよく分かりません。 具体的には ・Fileで読み込んだ後どうやってバイナリに変換するのか。 ・変換したバイナリデータをDBにinsertする時は通常のVERCHAR2の様なロジックでよいのか。 という所です。 ヒントや「このページをみろ」というのでも構いません。 ご指導宜しくお願いします。
770 :
デフォルトの名無しさん :2006/02/09(木) 00:22:32
ていうか、ファイルの中味は元からバイナリだろう。 読むだけだよ。変換の必要があるとすればDBに引き渡す時だけ。
>>769 >>770 のいうとおり、ファイルの中身は(仮に文字だけで構成されてようが)基本的にバイナリ。
InputStream経由で読めばバイト単位で読み込める。Readerで読むと、文字単位で読み込む
便利機能がついているというだけ。もとはやっぱりバイナリ。
772 :
デフォルトの名無しさん :2006/02/09(木) 00:35:00
都内に住む大学1年なんですが、 どうしても秋学期の最終課題が時計+オリジナル機能で 俺はオリジナルのところにカレンダーをつけようと思うんですが パネルに乗っけるのが、どうしてもうまくいきません。 本当に単純なやつでいいんです。 枠とかも要らないんで参考になるソースコード教えてもらえませんか? よろしくお願いします!
while(true){ System.out.println(new Date()); Thread.sleep(1000); } ※オリジナル機能:タイムゾーンを変えると世界時計になります
30分ごとに特定メソッドを呼び出しとかどうやって実現する?
>>774 タイマーとちゃう?
間隔に30分なんていれらんねーよ!
というときは、1分/1秒間隔でチェック
776 :
769 :2006/02/09(木) 00:48:26
なるほどです。 Fileで読むのとInputStreamで読むのとではどう違うのでしょうか?
ヒント:Fileクラスでデータは読めない。 ヒント2:FileInputStreamはInputStreamを継承している。
779 :
769 :2006/02/09(木) 01:19:33
なんとなく分かってきました。 Fileで読んでlengthでサイズを測って、InputFileStreamをそのFileを引数にnewして PreparedStatementのsetBinaryStream()でセットするって感じでしょうか。 あれ?BLOBインターフェイスが出てこないのですがいいのでしょうか?
780 :
769 :2006/02/09(木) 01:21:54
↑ InputFileStreamではなくてFileInputStreamでした。
いいの
782 :
769 :2006/02/09(木) 01:33:21
そうなんですか。 とりあえずこれで明日がんばってみます。 ありがとうございました。
783 :
デフォルトの名無しさん :2006/02/09(木) 01:42:15
>>774 for(;;) {
myMethod();
Thread.sleep(30*60000);
}
784 :
デフォルトの名無しさん :2006/02/09(木) 01:48:38
>>779 んなまどろっこしいことしないでも読んだのを全部 ByteArrayOutputStream に
書いて最後に byte[] 取り出せばいいじゃんか。
// Bufferedにしてあるのは多くの場合こうした方が効率よくて速くなるため。
BufferedInputStream in = new BufferedInputStream(new FileInputStream(filename));
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buf = new byte[1000]; // 大きさはテキトー
int n;
while ((n = in.read(buf)) > 0) out.write(buf, 0, n);
in.close();
buf = out.toByteArray(); // bufは使い回しだが以前の値は不要なのでこれでもいい。
お前もまどろっこしい PreparedStatement#setBinaryStream() 使え
786 :
デフォルトの名無しさん :2006/02/09(木) 02:07:28
>>785 それSQLの場合だけだ。
元の質問がSQLだからいいか。
788 :
デフォルトの名無しさん :2006/02/09(木) 02:28:55
java.util.Timer だな。
789 :
デフォルトの名無しさん :2006/02/09(木) 02:32:36
new java.util.Timer().scheduleAtFixedRate(new TimerTask() {public void run() {System.out.println("うひょ");}}, 0L, 30 * 60 * 1000L);
>>789 30分後とに「うひょ」だけを出力し続けるプログラムを見たら
俺は発狂するねw
せめて時々「うひょひょ」になってほしいねw
792 :
デフォルトの名無しさん :2006/02/09(木) 10:33:01
Java&プログラム暦3ヶ月で23のパターンの本を読み終えたんですが どうやら巷ではEclipseを使ってるようなのでそろそろメモ帳を 卒業したいんですが、なんかおすすめの本ってありませんか? 高度なことはするつもりはなくて、基本的な使い方が分かればいいんですが。 複数、挙げて頂けると助かります。お願いします。
795 :
デフォルトの名無しさん :2006/02/09(木) 10:54:23
a>=200 なら @のプログラムへ b>=100 なら Aのプログラムへ 違うなら@へ としたいんですが、プログラムへ移動する仕方教えてください。 if(a>=200) @式 else if(b>=200) A式 else @ としたら、@式を2回使うので、長くなるんです。 b>=100とすれば、1つの条件ですが、必ずa>=200を入れます。
if(a >= 200 || b < 200){ 壱 } else { 弐 }
>>795 とりあえずわかったのはホットゾヌが =レス番号 でもポップアップしてくれること。
あと、機種依存文字を使っていること。
その他の場合は1処理でいいのか? 処理しないの場合はないのだろうか。
799 :
デフォルトの名無しさん :2006/02/09(木) 11:05:02
初心者からJava上級者への質問。 Javaの学習の仕方で最適な方法は、次のうちどれですか? 1)コンストラクタやメソッド、配列、インターフェイス、例外などの 定義の意味を学びつつ、それに沿ってそれらの基本的なコーディングの 仕方を覚える。その後、数百行程度の規模のプログラムのコード を読みながら、実際のコーディングを学んでいく。 2)上記の定義の意味を学びつつ、パターン化された小さなプログラムを 書きながら、ただひたすら感を養う。ある程度して数十パターン程度 を覚えたら、実際のコードを読んで、より大きめのプログラムの構成 を学んでいく。 3)それ以外。
必要は最大の理由なり、まで読んだ
>>799 この世に「初心者という人」と「上級者という人」は存在しないと思っている俺はどうなる・・・
その「〜分かれば上級者」とかいうわけのわからん設定を先にどうにかすれ
初心者という言葉を使わず勉強中とかにすれば風当たりいいかな?
803 :
デフォルトの名無しさん :2006/02/09(木) 11:27:42
わかりました。Java学習中の者ですが、Javaを使って食卓に食べ物を、 或いは奥様へ給料明細を持ってくることに成功されている方への質問。 Javaの学習の仕方で最適な方法は、次のうちどれですか? 1)コンストラクタやメソッド、配列、インターフェイス、例外などの 定義の意味を学びつつ、それに沿ってそれらの基本的なコーディングの 仕方を覚える。その後、数百行程度の規模のプログラムのコード を読みながら、実際のコーディングを学んでいく。 2)上記の定義の意味を学びつつ、パターン化された小さなプログラムを 書きながら、ただひたすら感を養う。ある程度して数十パターン程度 を覚えたら、実際のコードを読んで、より大きめのプログラムの構成 を学んでいく。 3)それ以外。
質問内容が
>>799 なら勉強中と言い換えても変わらんと思うぞ。
こんなのへのレスは 全部 それ以外で いいんじゃね?w
>>803 奥様も居ないし、給与明細もないから答えられないな
>>803 くだらない質問してる暇があるなら
コード書け、コード読め、言語規定とVM仕様読め
食卓に食べ物を出す方法はわからないが、 奥様と給与明細を受け取るにはもっと人として磨かないと無理だと思うぞ 結局仕事は一人でするんじゃなくて、人と人とでするからな ははは・・・
809 :
デフォルトの名無しさん :2006/02/09(木) 11:34:47
>>796 回答ありがとうございます。今から試してみます。
>>798 その他の場合は@で結構です。処理しない場合はありません。
>>809 なるほど、なら796のスタンダードな記述で全然よいとおも。
複雑な条件ならガード節使うのもありんす。
isOutAria(x,y)
>>792 バージョンが古いがJavapressとかムックで十分
ネットの情報のみで「使って慣れる」でも行けると思う
if(b>=200){ foo1(); return; } foo2(); 途中でenterしちゃったスマン。
813 :
デフォルトの名無しさん :2006/02/09(木) 12:06:38
JInternalFrameのフォーカスについてなのですが…困ってます。 JInternalFrameを2つ表示させているんですけど、 あるJInternalFrameから呼び出してもう一方のJInternalFrameをフォーカスを あてている状態(選択している状態)にしたいのですが、どうしたらいいのでしょうか? 例えばですが、片方のJInternalFrameに表示したボタンをクリックしたときに 自動でもう一方のJInternalFrameが選択される状態にしたいのです…
814 :
747 :2006/02/09(木) 12:19:31
>>793 ありがとうございます。
サンプルを参考に頑張ってみます。
>>813 JDesktopPaneのマニュアル見た?
816 :
デフォルトの名無しさん :2006/02/09(木) 12:26:13
Swingを使ってゲームを作成しているのですが MouseMotionAdapterを使って、マウスが動くたびに、フォームに対しての座標を取得しているのですが ラベルの上にマウスを置くと、ラベルの下にある、フォームの座標が取得できなくて・・・ どうすれば、全体の座標を、ラベルなどを無視して取得できますか?><教えてください・・・
長くても短くても、クラス名を書けクラス名を!
利用可能なクラスの中で、 1.最も長いクラス名 2.最も長いパッケージ名 3.最も長いFQCN を得るにはどうすればいいでしょう。ClassLoaderとかいじらないといけませんか?
819 :
デフォルトの名無しさん :2006/02/09(木) 13:18:23
>815さんありがとうございます! setSelectedFrame(JInternalFrame f)というのを使えばいいのはわかったんですが 実際動かしてみると、片方のJInternalFrameで呼び出したときに何もおこらず、 もう一方のJInternalFrameを選択したときに2つとも選択した状態になってしまいます… setSelectedFrameを呼ぶ場所がおかしいのでしょうか?
>>818 とりあえず「利用可能なクラス」が定義されないとどーしよーもない。
実行時にバイトコードを生成しても良いなら
後から幾らでも長い名前付けたクラスやパッケージを作れるし。
>>819 setSelectedFrame(JInternalFrame f)ではなく
JInternalFrameのsetSelectedを使ったらどう?
i1.setSelected(false);
i2.setSelected(true);
みたいな感じで。
822 :
デフォルトの名無しさん :2006/02/09(木) 15:48:13
質問させてください。 Eclipseでファイル読み込みを伴うJavaプログラムを作っているのですが、Jar出力したものを起動しようとすると、 読み込むファイルがJar内に固められた為か読み込みに失敗します。 Eclipseでの通常開発時とJar出力での起動と、両方に対応できるファイルの読み込み方法はありますでしょうか? 読み込んでいるものはxmlファイルと画像ファイルです。
>>822 絶対パスを入力してるってこと?
それなら相対パスにすればいいのでは?という回答しかできませんが
”jar内に固められた”がよーわからん
>>822 ファイルをクラスパス内に配置して、getResource(path) ではどうだ。
詳しくは ClassLoader getResource なんかでググってくれ。
<T> void func() { T t = new T(); } こういうのってできない?
827 :
デフォルトの名無しさん :2006/02/09(木) 16:32:27
Exception in thread "AWT-EventQueue-0" java.awt.IllegalComponentStateException: component must be showing on the screen to determine its location こんなメッセージが出るのですが・・・・ どう理解すればいいのでしょうか…?
>>827 他の処理との呼び出し順がマズイとか…
ちなみに俺は簡単なサンプル作って試したら普通に動いたけど…
830 :
デフォルトの名無しさん :2006/02/09(木) 17:32:26
>>823 Eclipseのプロジェクトフォルダの中に、読み込むファイルを置いてあるんです。
EclipseのJar出力機能でプロジェクトを丸ごとJarファイルにしているので、読み込むファイルも圧縮されているんです。
もしかしたらそれが原因かな、と。
831 :
デフォルトの名無しさん :2006/02/09(木) 17:33:57
すいません上の質問をした819です! 2つのJInternalFrameに関連があるんですけど、 JInternalFrame1 JInternalFrame2 があるとして 1から2に含まれているコンポーネントにポップアップを表示させたいのです(汗) ソースとしては1から JPopupMenu popup = new JPopupMenu(); JLabel label = new JLabel(); popup.add(label); popup.setBorder(BorderFactory.createLineBorder(Color.BLACK)); popup.menuSelectionChanged(false); popup.show(com,0-label.getPreferredSize().width,0-label.getPreferredSize().height); comはJInternalFrame2でポップアップを表示させたいコンポーネント てな感じで呼び出してるんですけど上みたいなメッセージがでるんです。
マルチポストうぜぇな
ClassLoaderのサブクラスを作り、defineClassをオーバーライドして、 特定のクラスをloadClassでロードしたのですが、 ClassクラスのインスタンスからnewInstanceでインスタンスを作り、 ロードしたシンボルの名前でキャストすると、NoClassDefFoundErrorが出てしまうのですが・・・。 これは何故なのでしょうか。 ひょっとして、インターフェイスだけは システムクラスローダで読み込ませておかねばならないのでしょうか?
>>834 >ひょっとして、インターフェイスだけは
>システムクラスローダで読み込ませておかねばならないのでしょうか?
そうだったと思うけど。
>>836 調べてみたところその様でした。ありがとうございました。
840 :
デフォルトの名無しさん :2006/02/09(木) 20:48:21
サーブレットとデータベース使って本の検索システム作ってるんですけど 困ってます。HTMLファイルでキーワードを入力して、それをBeanで受け取 ってデータベースから該当するデータを取り出してJSPで表示させたいんで すけど。BeanではGetParameterが使えないのでキーワードが受け取れない んです、どうしたらいいでしょうか?
>>840 そのレベルだとまずサーブレット初心者本よんで勉強からはじめたほうが近道っぽいぞ
場合によってはJava本からだな
すみません 例えば String str = "hogehoge" if(str == "hogehoge"){ ... } ですとifの条件に引っかかってコードブロックを実行するのですが BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); if( (str = br.readLine())=="hogehoge" ) { ... } とし、hogehogeと入力しますとなぜかifにひっかかってくれません どういう事でしょうか
>>842 Javaの最初のところから勉強したほうがいいよ
>>842 stringはclass
equals()つかいましょう?
>>842 Stringはクラスなので参照型です。equalsメソッドを使いましょう。
>>842 どうしても equals() 使いたくないならintern() しろ。
出力幅と精度を指定したくprintfを使用したのですが、以下のようなエラーが出ます。 Score.java:39: シンボルを解決できません。 シンボル: メソッド printf (java.lang.String,double) 場所 : java.io.PrintStream の クラス System.out.printf("%.2fです。\n", ae); クラスはimport java.io.*;とimport java.util.*;を使用していますがここが足りないのでしょうか? ちなみにJDKは5.0_06を使用しています。
printf()なんてメソッドが出来たんだ・・・いい加減JDKアップするかね・・うん
System.out.printf("%.2fです。\n", (Double)ae); これで上手くいかないか?
>847 $ javac -version
>>847 複数JDK入れててコンパイルに jdk1.4 使ってないか?
コンパイル時に javac -J-showvesion とかやってチェックしてみ。
Eclipse でもコンパイラレベルを 1.4 のままにしておいて
JDK5.0 使ってますが printf がエラーになりますって人がいたな。
ん? なんとなく。 ……ゴメン。恥ずかしいんだから放っておいて orz
854 :
847 :2006/02/09(木) 23:15:40
>>849-851 ありがと。指摘通りPATHが1.4だった。
んで、今度は間違えてクラスパス飛ばして復旧方法忘れてたので直すの面倒だった…
あと、どうでもいいけどdouble = int / int ってちゃんと出ないんだね
全部doubleにして解決したけど、なんとなく自分がぶつかったので報告。
基本から勉強しなおしてくれ・・・
856 :
デフォルトの名無しさん :2006/02/09(木) 23:32:31
全然、関係のない話なんですが、CCNAのスレってないでしょうか? 携帯なので誘導していただけると助かります。
857 :
デフォルトの名無しさん :2006/02/09(木) 23:48:29
クリックしたらm3uファイルが実行されてmediaPlayerが起動する。 というのをやりたいんですが、その場合どのような方法があるのでしょうか。 runtime.execを使うとmediaPlayerしか起動できないので。
コマンドプロンプトの勉強して Runtime#exec() 使e
859 :
デフォルトの名無しさん :2006/02/09(木) 23:58:18
>>857 そんなOS依存のことなんか知らねえよ。う゛ぉけ。
>>859 mediaplayer使えるということは普通windowsなのでは・・・
861 :
デフォルトの名無しさん :2006/02/10(金) 00:03:23
runtime.exec("D:/a.m3u"); runtime.exec("D:\\a.m3u"); としてみたのですが、エラー193その他たくさんがでるだけでうまく動いてくれませ ん。 コマンドプロンプトで、d:\a.m3uとしたらmediaPlayerがちゃんと起動してくれま す。 どうしたらよいのでしょうか。
>>861 たとえば、コマンドプロントで
cmd /c start d:\a.m3u
command /c start d:\a.m3u
とかやってみると嬉しくなれるかも
863 :
デフォルトの名無しさん :2006/02/10(金) 00:16:20
mediaPlayerを起動したいというより、m3uファイルを実行してプレイリストの再生をしたいのですが。
864 :
デフォルトの名無しさん :2006/02/10(金) 00:20:25
いい加減にしろよ阿呆
Log4Jのプロパティファイルってどこにおけばいいんですか? classes直下においたら認識してくれない・・・・ (フルパス指定だと読めるんですが)
867 :
デフォルトの名無しさん :2006/02/10(金) 01:40:51
Execution completed. 1666088 bytecodes executed 193 thread switches 744 classes in the system (including system classes) 6535 dynamic objects allocated (539988 bytes) 6 garbage collections (96196 bytes collected) エラーが怒ってしまう・・・何かおかしいとこあるんすか?
Execution completed = 実行が完了しました
869 :
デフォルトの名無しさん :2006/02/10(金) 02:50:06
>>860 Windows なんか知らねえよ。う゛ぉけ。
870 :
デフォルトの名無しさん :2006/02/10(金) 02:51:15
質問します。 「MIDP 2.0 携帯Java アプリ開発ハンドブック」(布留川英一著)という本にならって JDK1.4とWTK2.2とをインストールしていたのですが、 JDK1.4のほうはインストールできたんですが、 WTK2.2のほうは sunのダウンロードページに飛ぶ前に「UserNameとパスワード」を 要求されてしまい、このことについて上記の本では何も書いてないんです。 どうしたらよいのでしょうか?どなたかわかる方、教えてくださいませ。
874 :
デフォルトの名無しさん :2006/02/10(金) 05:44:17
857です。 runtime.exec("cmd /c start D:/a.m3u"); で、出来ました。ありがとうございました。
>>874 >>862 が何故2パターン用意してるのか分かった?
コマンドインタプリタで set comspec とか echo %comspec% ってやってみると嬉しくなれるぞ
876 :
デフォルトの名無しさん :2006/02/10(金) 11:01:29
絶対座標の取得はできますか?
getLocationOnScreen() (だっけ?)
878 :
デフォルトの名無しさん :2006/02/10(金) 11:52:02
カーソルの絶対座標は取得できますか?
879 :
デフォルトの名無しさん :2006/02/10(金) 12:31:38
できます。以上
881 :
デフォルトの名無しさん :2006/02/10(金) 12:41:21
>>880 できますか?と言う質問だから正しい答えだと思うよ
どうやったらできますか?とかどのAPIを使うんですか?という質問をすれば良いと思うよ
揚げ足取りを淡々と引きずってもおもしろくない。
次の人どうぞ〜
ハズレの回答者を引いたのはお前だ。諦めろ。
俺じゃないけど。
886 :
デフォルトの名無しさん :2006/02/10(金) 13:43:23
どうやったら、カーソルの絶対座標を取得できますか?
888 :
デフォルトの名無しさん :2006/02/10(金) 15:53:06
返答ありがとうございます 使ってみたのですが、、、 import java.awt.MouseInfo; の時点で、シンボルを解釈できませんとでました。。。 どうしてなのか教えていただけますか?
>>888 MouseInfoは1.5から導入されたので、1.4とかだと使えない。
手を抜いて一行で質問すると、余計時間がかかる、の典型だな
891 :
デフォルトの名無しさん :2006/02/10(金) 16:03:42
なるほど・・・1.5ですか・・・ 探したのですが、1.5をダウンロードできるページを見つけれなくて;; よければ、アドレスを紹介してもらえませんか?
最新版を見つけれないって珍しい質問だな
test.xmlという文字列から .xmlを取り除いて testという文字列を取り出したいです。 ご教授いただけるとうれしいです。
name.substring(0, name.length() - 4);
int last = name.lastIndexOf('.'); if (last >= 0) name = name.substring(0, last);
文字列の後ろ4文字をカットしたいのか、.xml という文字列を排除したいのか ピリオド以降をカットしたいのか、でやり方変わってくると思うが。 って書いてるうちに 4文字カットとピリオド以降の方法が書き込まれている
name = name.replaceFirst("\\.xml$", "");
899 :
894 :2006/02/10(金) 16:57:55
みなさんありがとうございますm(__)m
string hoge(){ s="test.xml" if(s.equals("test.xml")) return "test"; }
>>900 が正解。
仕様に書かれていないことを勝手に想像して実装してはいけない。
>>901 残念ながら "test" は string型にキャストできません。
ついでに、s.equals("test.xml") ではなかった場合の処理が抜けてるので
言語規定によりコンパイルエラーになるはずです。
> s="test.xml" s の宣言が抜けてるのとか、セミコロンが抜けてるのとかは?
高説垂れる前にコードくらい読めるようになれと
if文だけ書いてあればよかった
コンパイルも通らないコードに正解認定と聞いて飛んできました
そこまで揚げ足とるなら
>>894 はJavaでって書いてないから正解でいいんじゃね
>>907 スレタイ100回読み直して半年ROMってて下さい。
途中までVBで書いた javaだと思い出してequalsメソッドにした 面倒だからそのままにした
今は反省してる
>>884 質問の仕方で、はずれの回答者を召還することも大いにあるよねえw
Image の一部を三角形に切り出して回転させ、同じ Image の別の領域に描画したいんですけど、 三角形に切り取りとか、回転とかって機能ありましたっけ?
>>912 (俺の考えた便利な2D描写ライブラリなら)ある。普通に使える。
すみません、J2SE 1.4 のコアライブラリにです。 ひょっとして PixelGrabber でビット化してピクセル拾って座標変換するしかないですかね?
915 :
デフォルトの名無しさん :2006/02/10(金) 21:51:46
コアJavaってもうそろそろ改訂版が出ますか? 改訂版が出そうなので買うに買えないんですが
916 :
デフォルトの名無しさん :2006/02/10(金) 22:31:51
配列を扱うときはvectorよりArrayListの方が処理が早くなるって聞いたんですが本当なんでしょうか? 厨な質問ですいません
ひんと:どうき
>>912 やったことないけどアクセラレーションがきかなくてもいいならJava2Dでいけるんじゃない?
Shape+TexturePaint+AffineTransformていけると思うんだけど・・・試してないからよくわからん。
920 :
デフォルトの名無しさん :2006/02/10(金) 22:42:23
質問なんですが、 User user = null; にSQLで取得した値を代入して値を渡すのに user.no = result.getInt("USER_NO"); user.name = result.getString("USER_NAME"); user.pas = result.getInt("USER_PAS"); return user; て書き方は間違っていますか?教えてください。
>>920 > User user=null;
> に
何が「に」だ?
・・・nullに、か?
nullならその後のコードでぬるぽ出るだろ
>>918 プログラムの中で動的に配列のサイズを変えられるのなら配列を使いたいのですが・・・
>>923 ありがとうございます
早速試しに作ってみます
925 :
デフォルトの名無しさん :2006/02/10(金) 23:09:00
>>921 はい。でます。
そこでこの状態でのぬるぽの回避方法が知りたいんです。
『動的にサイズが変わる配列』は まさしく ArrayList にした方が良いものだろう
PixelGrabberって使う場面なんてあるか?
>>920 null.no
null.name
null.pass
…これ、どうしようか
他の言語でこういう書き方があるのか?
>>925 その「User」というクラスの仕様がわからないことには答えられないよ。
930 :
デフォルトの名無しさん :2006/02/11(土) 00:16:24
>>916 ArrayList ってたしか同期とってないんだよな。ちょっと速いんじゃない?
それのせいかどうかは知らないが。気になるならソース見たら?
931 :
デフォルトの名無しさん :2006/02/11(土) 00:17:31
>>925 わかんねえけど User user = new User(); とでも書けば? どうなるか知らないけど。
WebでないJavaアプリをJarに固めるときって、 ライブラリのjarファイルや設定のプロパティファイルは どこに置くのが普通でしょうか?
934 :
デフォルトの名無しさん :2006/02/11(土) 01:38:54
javaでweb上の画像ファイルを表示させるのは難しいでしょうか? C#だと簡単のようなのですが…
>>933 ライブラリはjarと同じフォルダかCLASSPATHの通った場所
どのライブラリのjarを見るかはMANIFESTファイルで設定しておく
設定のプロパティファイルはユーザーに触らせたくないならjarの中とかインターネットの特定URLに置いて置く
ユーザーが触って良いならjarと同じ場所か起動用のシェルやバッチのある場所
>>935 さんくすです。
とりあえず同じフォルダに置く方針でやってみまつ
>>924 自分でArrayList作ってどうする。
Javaで絶対パスを相対パスに変換するにはどうしたらいいんでしょうか……? parent = カレントとなるディレクトリ child = 相対にしたい絶対パス を使い、 new File( parent, child );で作成しても、 二つが連結されたパスが生成されるだけで困ってます。 ご存じのかたお助けください。
カレントはcurrentにしてほすぃの。
parent = new File(parent).getCanonicalPath(); child = new File(child).getCanonicalPath(); child = child.substring(parent.length() + 1);
>>941 ありがとう。(
>>939 じゃないけど勉強になるので)
それだとchildがparentの下にないとだめだよね?
たとえば
child=/usr/local/share/X11
parent=/usr/local/lib
を入力したときに、../share/X11を取得しようとしたら
やっぱり / で区切ってパスの先頭から一段づつ見て
いくしかないのかな。
if(parent.equals(child.substring(0, parent.length()))) とかで判定すりゃいいんじゃないか? Windowsのパスの大文字小文字を区別しない場合とかにも対応したいなら if(new File(parent).equals(new File(child.substring(0, parent.length())))) 括弧の数あってるか自信ない。
String#startsWith() か String#matches() 使え 上位階層の ../ 付けたいなら StringTokenizer と Stack でも使ってゴリゴリ書け
> 上位階層の ../ 付けたいなら StringTokenizer と Stack でも使ってゴリゴリ書け それは getCanonicalPath 使う事で解決するんじゃないか
946 :
デフォルトの名無しさん :2006/02/11(土) 16:15:35
〜Java初心者スレ 80 終わりの歌〜 ちんちんぺろんちょぺろんちょ ちょっとしめっぽい〜 なんでさきっちょひかるの〜 2mものびるよ〜 「あ、けっこう うまいんすね あ〜」 触るときに「すいません」なんて非日常会話 「Java好きなんすか?」 「ええ、Java好きっすね〜」 「P2Pなんてどう?」 「あ、いいっすね〜」 「俺とおまえでO2Oなんてな」 「ぎゃはははは」 じゃぱっじゃぱ、ぱ、ぱ、じゃばじゃば JavaJavaJavaJavaJavaJavaJava じゃ!。。。ばまたね
>>916 スレッドセーフは微妙な問題なので
Vector を使ったぐらいじゃどうにもならない可能性が高い。
むしろ、勝手に同期されると、デッドロックを起こす弊害になりかねない。
Vectorの同期ではデッドロックは起こらないんじゃないの? 少なくとも初心者が触っていて速度が問題になるとは考えられんが Lock使って実装されればその速度もさほど気にならんかもしれんが
949 :
939 :2006/02/11(土) 16:27:30
>>941 ,943,944,
ありがとうございます!
>>942 自分もそれを考えていたところでした。
絶対パス→相対パスはJakarta IOにもないので凹んでいたところでした。
本当にありがとうございます。
950 :
sage :2006/02/11(土) 16:30:24
んなことあるわけねーだろ
>949 どんなにがんばっても相対取れないこともあることに注意な。
952 :
sage :2006/02/11(土) 16:47:48
アルプスの少女ハイジを 保険のCMに利用するのはやめてください やずや。やずや。
953 :
デフォルトの名無しさん :2006/02/11(土) 16:54:57
public class Sample2_4{ private static int d = 10; protected void method(){ System.out.println("method"); } private Sample2_4(){ System.out.println("constructor"); } public static void main(String[] args){ System.out.println("d = " + d ); Sample2_4 spl =new Sample2_4(); spl.method(); } } を実行すると結果が d = 10 constructor method になります。 spl.method()メソッドを呼び出しているのでmethodが表示されるのは分かるのですが constructorも表示されるのはなぜなのでしょうか? どなたか教えてください。
> Sample2_4 spl =new Sample2_4(); コンストラクタ読んでるからじゃね?
> Sample2_4 spl = new Sample2_4(); ~~~~~~~~~~~~~~
956 :
デフォルトの名無しさん :2006/02/11(土) 17:00:31
流石に釣りだろ
957 :
sage :2006/02/11(土) 17:03:29
フィッシング詐欺 「掲示板にコンストラクタが呼ばれることを聞かれることってあるのですか?」
むかしの疑似餌はもっと精巧にできていた 今の若いものはこんなことも的もにできんのか
>>954 >>955 すいません、どういう意味ですか?
釣りとかはでありません。
最近独学でJAVAをはじめたばかりなので全然分かっていなくてすみません。
もう一度参考書をよく読んでみます。
960 :
sage :2006/02/11(土) 17:09:31
「的」 おまえの書きまちがえの方が。。。 伊勢エビラーメン800円ならやすいな ユンソナやります 「全メーカ社 okよ」
コンストラクタは何時実行されるものかよく調べろ。
つーか上の宣伝画像の小倉ありすの顔が、やらしてくれそうで 勃起してしまいます
コンストラクタというのはオブジェクトが作成されるときに自動的に呼び出される特殊なメソッドのこと。
いやいや、自動的には呼ばれないだろ ねこにゃんにゃんにゃん いぬわんわんわん かえるもあひるもがーもーらー ねこにゃんにゃんにゃん いぬわんわんわん じゃいあんと馬場も 「めんがまがまー!」
>>961 >>964 今知ったのですがデフォルトコンストラクタというものがあるのですね。
ありがとうございました。
constructor と表示されたのはデフォルトコンストラクタとは関係ないと思うが。
967 :
デフォルトの名無しさん :2006/02/11(土) 17:33:08
デフォルトコンストラクタに"constructor"を出力するように書いてあるんだが
968 :
デフォルトの名無しさん :2006/02/11(土) 17:35:58
>>966 これは引数無しのコンストラクタですよね、失礼しました。
中国のJavaプログラマー チン-チイサイ
小学校に犯罪予告葉書なんて。。。 犯人は子供だろ そのくらいコンストラクタが呼ばれる
>>967 デフォルトコンストラクタでなくても、同じように書けば同じように "constructor" と表示されるって事。
デフォルトコンストラクタの特例とかで、特別に "constructor" と表示されたのでは無いって事。
どうでもいいけど、技術系の板にはPREと等幅の機能がほしいよね ソースとか、DBのテーブル構造とか見づらくてかなわん。
>>953 > constructorも表示されるのはなぜなのでしょうか?
実行時の出力とソースを比較することにより、
main メソッドの以下の行が原因であることが分かる。
> Sample2_4 spl =new Sample2_4();
new Sample2_4() という式は、
Sample2_4 クラスにある引数無しのコンストラクタを実行する。
Sample2_4 クラスにおいて、引数無しのコンストラクタとは
Sample2_4() という文字列を宣言部に含む部分である。
Sample2_4 クラスにある引数無しのコンストラクタでは、
System.out.println("constructor") という式を実行するように記述してある。
この式を解決することにより、出力に "constructor" という文字列が表示される。
# うーん。結構難しいね。
vector配列の指定の要素をstring型で受け取りたいんですが、 Object cName = columnNames.get(row); String stcName = String(cName); とやるとエラーが出ます どのように書けばString型で受け取ることが出来るんでしょうか
String stcName = (String)cName;
子クラスのインスタンスから子クラスでオーバーライドされたpublicな親クラスのメソッドを参照するにはどうしたらいいのでしょう? class a {public void func(){}} class b extends a {public void func(){}} a a_instan = new b(); のような場合 a_instan.func(); で子のa_fun()が実行されますが、親のfunc()を呼び出す方法です。 C++の場合a::a_fun();になると思うのですが。
978 :
976 :2006/02/11(土) 19:00:03
訂正です。 C++の場合a::a_fun();になると思うのですが。 C++の場合a::func();になると思うのですが。
クラスbの中でsuper.func();
981 :
976 :2006/02/11(土) 19:04:38
>>978 は間違いました。
まず表記は上段が誤り下段が訂正後のつもりでした。
さらに内容が誤りでした。
×C++の場合a::func();になると思うのですが。
○a::a.func();になると思うのですが。
たしかこれで良いんですよね?
>なんで C++ が出てくるのか謎。 >母国語で解釈しようとする行為。 べつにC++で::を使うからjavaでもそうだと申してるのではないのですから、こういう批判は当らないですね。 C++は例に挙げたにすぎません。
>>980 superはクラスの中で使わないとダメですよね?
クラスの外からは参照できませんか?
>983 できません。
985 :
976 :2006/02/11(土) 19:24:08
>>984 方法がないということですか?
それでは不便じゃ?
((a)a_instan).func();
で出来るかもと思ったら出来ませんでした。
>985 方法がないということです。 不便だと思う人は不便だと思うし、思わない人は思わないと思います。
>>982 以下の状況だと判断した。
Java をそこそこ理解している人の前で、
こういうとき、C++ では、×××って書くんだけど、Java だとどうなの?
あなたと、C++ を理解したがってる人にとっては有益な情報かもしれないが、
Java のことだけを考える人には全く無価値な情報であると考える。
>>985 私に怒りを向けるのは自由だが、
>>979 で紹介している言語規定にまで怒りを向けないでいただきたい。
>>987 そこまでC++を敵視する理由を教えてください。
他の言語、例えばCやperlから見たらC++とjavaは非常に似た仕様の言語と言えるはずです。
そのC++の例えを示してやりたい事を説明してるだけなのに、あなたはC++に対してどうしてそこまで気難しく構えるのですか?
なにかトラウマのようなものでも有るのでしょうか?
ここは Java スレ。答える側の知らない言語を引き合いに出しても拒絶されるのは 当然のこと。関係ないけど a::func() に virtual 宣言居るんじゃないのか? 最近の ANSI 規格がどうなってるか知らんけど。 外部からオーバーライドされたスーパークラスのメソッドは呼び出せません。 サブクラスすっ飛ばして勝手にスーパークラスのメソッドが呼べたら、サブクラス側の 整合性が保てなくなる可能性があるから。スーパークラスのメソッドはサブクラス側で super.func() と明示的に呼んでやらないと実行されません。
>980 次スレ立てて。
>>987 >あなたと、C++ を理解したがってる人にとっては有益な情報かもしれないが、
>Java のことだけを考える人には全く無価値な情報であると考える。
あと一言、
私の質問がC++プロパーの内容なら兎も角、本質的にjavaの質問です。
あなたの批判するような、質問者にのみ価値のある質問は私の質問に限ったことではありませんし
そもそも、このスレでは回答者の利益になる質問のみオーケーという規則でもあるのでしょうか?
992 :
991 :2006/02/11(土) 19:44:23
>>989 上で書いた通りです。
>答える側の知らない言語を引き合いに出しても
既に書いた通りC++の例は例えに出したに過ぎません。
C++を知らなければ拘る必要はないのですよ。
自分の知らないことに抵抗感ばかり示さず、すこしは大人になってください。
994 :
990 :2006/02/11(土) 19:47:35
997 :
デフォルトの名無しさん :2006/02/11(土) 19:48:53
>>991 >>992 低脳プログラマうぜーよ
そもそもお前の質問は参考書読めば分る超初心者ような内容だろ
一々ツマラナイ内容で何レスもつけてるんじゃない
あっち池
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。