【初心者】Java質問・相談スレッド120【歓迎】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/10/10(金) 10:55:27JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド119【歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1220388885/
次スレは>>990あたりで。
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
0002デフォルトの名無しさん
2008/10/10(金) 10:56:15■ AWT と Swing は --
Java低速GUI Swing 7
ttp://pc11.2ch.net/test/read.cgi/tech/1204155623/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50
■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part18
ttp://pc11.2ch.net/test/read.cgi/tech/1214192372/l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 8
ttp://pc11.2ch.net/test/read.cgi/tech/1206017034/l50
■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 65 ★★
ttp://pc11.2ch.net/test/read.cgi/tech/1212085079/l50
**** 開発環境が必要の場合は ****
■ J2SE 1.4.0
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/index.html
■ J2SE 5.0 (1.5.0)
ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
ttp://java.sun.com/javase/ja/6/
**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja/
0003デフォルトの名無しさん
2008/10/10(金) 17:15:42でウイルススキャンを開始しようとすると
致命的エラー
「同じプロセスで実行中のjava仮想マシンによってエラーが発生」
と出て先に進みません
原因はなんでしょうか?
よろしくお願いします
0004デフォルトの名無しさん
2008/10/10(金) 17:29:28RandomAccessFileで読み取りモードで開き、seek(0)して、readChar()しても、読み取り値が?になってしまいます。
どうしたらいいのでしょうか?
0005デフォルトの名無しさん
2008/10/10(金) 17:51:53nを指定して出来た結果をファイルに保存したいのですが全くわかりません。
どのように書けばよいのでしょうか?
0006デフォルトの名無しさん
2008/10/10(金) 18:10:200007デフォルトの名無しさん
2008/10/10(金) 18:38:01私もつい最近それで困っていた。
今でも原因は不明だけど、(image.getType()がBufferedImage.TYPE_BYTE_GRAYの時に起きる)
RasterにgetPixelすれば正常な色が取得できると思う。
BufferedImage image = ImageIO.read(bmpFile);
Raster raster = image.getData();
int[] color = new int[4];
raster.getPixel(x,y,color);
(byte)color[0];で正常な色。
0008デフォルトの名無しさん
2008/10/10(金) 22:49:53>>7
おお、助かります。
TYPE_BYTE_GRAY の時だけ処理を変えることで対応してみます。
ありがとうございました。
0009デフォルトの名無しさん
2008/10/11(土) 00:00:45簡単なプログラムでテストしようとすると、次のようなエラーが出ます(一部)。
Error loading class Files\iDKDoja5.1\lib\classes.zip;C:\Program
Error loading class Files\iDKDoja5.1\lib\doja_classes.zip
dojaのインスコ先をもとにNetBeansが自動生成するdoja.propertiesでのパスの設定は以下(一部)
doja.home=C\:\\Program Files\\iDKDoja5.1
doja.classpath=${doja.home}/lib/classes.zip;${doja.home}/lib/doja_classes.zip
要するにWindowsのパスに含まれる空白文字(Program Files)が正しく解釈されない様子。
c:/iDLDoja5.1にインストールしなおしたところ、うまくいきました。
パス中の空白文字って他のケースでも問題になるんじゃないかと思うのですが、
プロパティファイルで空白文字をエスケープするなど、一般に回避方法はあるでしょうか?
0010デフォルトの名無しさん
2008/10/11(土) 00:12:28ホームディレクトリから辿っていく方法だと確実性はありませんし、
主要OS分をサポートしたライブラリを探しています。
0011デフォルトの名無しさん
2008/10/11(土) 00:19:070012デフォルトの名無しさん
2008/10/11(土) 00:27:18レス、ありがとうございます。
user.homeとgetHomeDirectoryは返す値が違っていたのですね。
0013デフォルトの名無しさん
2008/10/11(土) 03:12:23どういうことをするんですか?
0014デフォルトの名無しさん
2008/10/11(土) 08:28:07レベル10くらいでアリアハン脱出するくらい
0015デフォルトの名無しさん
2008/10/11(土) 09:01:360016デフォルトの名無しさん
2008/10/11(土) 10:04:53Javaサーブレットだととめないといけないの?
なんかあれだよね
0017デフォルトの名無しさん
2008/10/11(土) 11:30:03使ってるライブラリの仕様はよく分からんが、
用意されているクラスを使って、とりあえず業務ロジックは書ける。
しかしコード品質が悪く、レビュー者を内心いらつかせる。
Effective Javaやデザパタ本を読ませたくなる頃かな。
0018デフォルトの名無しさん
2008/10/11(土) 11:34:56正しくは止めなきゃいけないものもあれば、止めなくてもいいものもある。
使ってるフレームワークにもよるが、
基本的にページクラス/テンプレートは止めなくていい。
MVCの中を動き回るようなクラスなら、
むしろ止めてくれないとバグを残すので困る
デバッガで見えてる値がいつの頃の値が見誤るからね。
0019デフォルトの名無しさん
2008/10/11(土) 12:13:05何か良いことあるの?
0020デフォルトの名無しさん
2008/10/11(土) 12:27:14・ソースコードの読み方がある程度画一的になり、他人が見たとき悩まない(パターンによる恩恵)
・クラスの役割が明確になり、概念や制約、実装を分けて管理できる(鉄板による恩恵)
・上記の恩恵のため、設計に時間を掛けられない時に悲惨なミスをせずに済む(リスク制御の恩恵)
0021デフォルトの名無しさん
2008/10/11(土) 12:29:040022デフォルトの名無しさん
2008/10/11(土) 17:40:52そこで英語のテンプレみたいなのがそろっているサイトなどを知りたいのですがご存知ないでしょうか?
throw new FooException("I can NOT speak English !");
0023デフォルトの名無しさん
2008/10/11(土) 17:50:22もしくは 形容詞+名詞
file not exist
file cannot open
bad filename
例外メッセージなんかこれだけでいいんじゃね?
0024デフォルトの名無しさん
2008/10/11(土) 18:40:160025デフォルトの名無しさん
2008/10/11(土) 19:49:380026デフォルトの名無しさん
2008/10/11(土) 20:39:04いるよ。
ヒントは2バイト。下位のバイトが最初ね。
0027デフォルトの名無しさん
2008/10/11(土) 20:43:39RandomAccessFile#readChar() は UTF-16BE で読み込む。
BufferedWriter の基礎となる Writer の出力エンコーディングが何か知らんが
それが UTF-16BE でなければ化けて当然。
0028デフォルトの名無しさん
2008/10/11(土) 23:08:26Name
Address
Phone
%%
Name
Address
Phone
%%
Name
Address
Phone
のように、特定の文字列 (ここでは%%) のみの文字列で区切れているデータファイルをプログラムから読み込んで処理したいのですが、
Buffered
0029デフォルトの名無しさん
2008/10/11(土) 23:10:53g1とg2に分けるには
public void paint(Graphics g1,g2)
としたらいけないのでしょうか。
0030デフォルトの名無しさん
2008/10/11(土) 23:11:57うまく全体を読み込んで各データを別個にするのに何かうまい方法はありますか?
今は、とにかくreadLineで全部読み込んでから、分けてるのですがどうも効率悪いような気がして…。
Perlの、$/を書き換えるみたいに、入力レコードのセパレータを、\nから%%にすることが出来たらいいのですが。
Javaならではのやり方みたいのがあったら教えてください。
0031デフォルトの名無しさん
2008/10/11(土) 23:31:01その例を見る限り4行ずつ読んでいけば良いように見えるけど。
0032デフォルトの名無しさん
2008/10/11(土) 23:42:15と
java.util.regex.Matcher
使って正規表現で取れば?
コードはすっきりするかも決して速いとはいえないけど。
003325
2008/10/12(日) 00:04:27ファイルは、メモ帳やエクセルで普通に開ける、.csvのテキストファイルなんですよ。
なんで、Shift_JISだと思うんですけど、
File csvFile = new File(aaaa.csv);
BufferedWriter bw =
new BufferedWriter(new FileWriter(csvFile, false));
bw.write("0,1,2,3,4");
としてかきこんだファイルなんですけど、どうやって読み取ったらいいですかね?
0034デフォルトの名無しさん
2008/10/12(日) 00:30:12そういうことはソースを見て言ってるんでしょうね?正規表現は速いですよ。
0035デフォルトの名無しさん
2008/10/12(日) 01:00:09どっちが早いんだろうかw
0036デフォルトの名無しさん
2008/10/12(日) 01:42:37\\d*をcompileするより、Character.isDigitを回した方が5倍速い。
Matcherの生成コストをベンチマークの対象から外しても
Character.isDigitを回した方が3倍速い。
0037デフォルトの名無しさん
2008/10/12(日) 01:48:59何か言いたいなら、まずは実測してから言えよw
0038デフォルトの名無しさん
2008/10/12(日) 01:52:400039デフォルトの名無しさん
2008/10/12(日) 01:55:22ベンチマークってのはマシンスペックを書かない場合は比率で表現するもんだ。
0040デフォルトの名無しさん
2008/10/12(日) 01:56:02isDigit()で済むようなメソッドなら、なにも\\d*とかregexなど使わんな。
おまえ、何倍速いとか寝言みたいな旧世代なこといってるけど、そもそも正規表現ってのをイマイチ勘違いしてないか?
それと速さ気にするような鼻糞野郎なら、\\d*でいいんだし、isDigti()なんかより '0' <= ch <= '9' の不等式をつかうだろ。
おまえはプロでも職人でもない糞ガキ以下だなww
というか突っ込みどころ多すぎでワロタw
0041デフォルトの名無しさん
2008/10/12(日) 01:58:360042デフォルトの名無しさん
2008/10/12(日) 01:58:490043デフォルトの名無しさん
2008/10/12(日) 02:06:140044デフォルトの名無しさん
2008/10/12(日) 02:19:13やるなら
マシンスペック、JVMバージョン、起動オプション
検索対象の文字列、検索文字列(数種類)、ソースコード
とか出してやってくれよ。
でも面倒だから誰もやらない罠
0045デフォルトの名無しさん
2008/10/12(日) 02:22:34しまくり
0046デフォルトの名無しさん
2008/10/12(日) 02:22:510047デフォルトの名無しさん
2008/10/12(日) 02:26:480048デフォルトの名無しさん
2008/10/12(日) 02:30:57日曜のこんな夜なのに、おまえらそんなに鼻の穴開いてよっぽどヒマなんだなww
おれは残業。。。「倍」さらに「倍」!ドン!!
0049デフォルトの名無しさん
2008/10/12(日) 02:30:59まあ、やるとすればReaderの自作か
速くはなりそうだが、十分に効果が出るかは自信がない
0050デフォルトの名無しさん
2008/10/12(日) 02:35:270051デフォルトの名無しさん
2008/10/12(日) 03:03:28複数個の描画とかg1とg2に分けるってのがよくわからんけど、それはできない。
複数のキャラクタにアニメさせたいならキャラ(や小道具など)の全てに
Graphicsを引数に持つ共通のメソッド(interfaceを使っとこう)を持たせて、
ループ文使ってキャラクタ自身に描画させるといいよ。
0052デフォルトの名無しさん
2008/10/12(日) 03:12:55しまりまくってんですねw
0053猫2
2008/10/12(日) 03:53:530054デフォルトの名無しさん
2008/10/12(日) 03:54:380055デフォルトの名無しさん
2008/10/12(日) 04:50:54これほどPCに有用性のない言語が今までにあったか?これからもないだろう。
0056デフォルトの名無しさん
2008/10/12(日) 05:50:530057デフォルトの名無しさん
2008/10/12(日) 07:17:22BufferedReader で読めば良いんじゃ?
0058デフォルトの名無しさん
2008/10/12(日) 10:46:24ノードクラスには、
ノード型の子ノードを定義してます。
条件によって親に対する子ノードの数を1個増やしたいのですが。
最終的な親に対する子の数は不定として、子を増やすことは可能ですかね??
デフォルトでは2つの子ノードを持ってます
0059デフォルトの名無しさん
2008/10/12(日) 10:48:02設定して行っていますが、プロパティーの数が多くなりすぎるとぐちゃ
ぐちゃになって判りづらいのと設定からアクセスまでの流れがめんどい
ので何とかならないでしょうか。普通にクラスのメソッドを呼び出すように、
型 変数 = 画面名.メソッド名(型 変数)
みたいに出来れば楽なんですけど。
0060デフォルトの名無しさん
2008/10/12(日) 11:35:45どんなコード書いてんだか知らんが、例えばファイルシステムがどうなってんのか考えてみ?
0061デフォルトの名無しさん
2008/10/12(日) 13:57:490062デフォルトの名無しさん
2008/10/12(日) 14:00:120063デフォルトの名無しさん
2008/10/12(日) 14:01:020064デフォルトの名無しさん
2008/10/12(日) 14:08:25RandomAccessFileで一部の読み書きをしたいんです・・・・
0065デフォルトの名無しさん
2008/10/12(日) 14:12:55またまた糞食べちゃったんですかw
0066デフォルトの名無しさん
2008/10/12(日) 14:20:33RandomAccessFileにこだわる意味がよく分からないんだけど、
そのファイルってそんなにサイズがでかいの?メモリに読んじゃえよ。
例えば1000レス行った2chスレを読み込んでも1MB行かないと思うぞ。
0067デフォルトの名無しさん
2008/10/12(日) 16:00:35あくまでもRandomAccessFile#getChar()にこだわるならUTF-16BEで読み書きすればいい。
0068デフォルトの名無しさん
2008/10/12(日) 16:46:250069デフォルトの名無しさん
2008/10/12(日) 17:01:25これで要素数0、初期容量2の可変長リストが出来る。
要素数が少ないならLinkedListより実行時間もメモリも安い。
0070デフォルトの名無しさん
2008/10/12(日) 17:58:37OSがWin98で主にアプリケーションソフトを作る場合
0071デフォルトの名無しさん
2008/10/12(日) 18:11:220072デフォルトの名無しさん
2008/10/12(日) 18:33:29Font.createFontで独自フォントを生成してJLabelなどに表示することはできます。
しかし、ファミリ名から独自のフォントを呼べず、
StyleConstants.setFontFamily(SimpleAttributeSet, ファミリ名);
で設定できないため、JTextPaneに独自フォントで追加できません。
Fontクラスを使って文字を追加できればいいのですが良い方法はないでしょうか?
下記のような方法でテキストをJTextPaneに追加しています。
sas = new SimpleAttributeSet();
StyleConstants.setFontFamily(sas, "MS Pゴシック");
Document doc = JTextPane.getDocument();
doc.insertString(doc.getLength(), "test", sas);
0073デフォルトの名無しさん
2008/10/12(日) 19:11:30ぐぐって3ページ内に出てくるような質問だぜ。
0074デフォルトの名無しさん
2008/10/12(日) 19:59:22違うところを見て回っててGraphicsEnvironmentを見逃してました。
0075デフォルトの名無しさん
2008/10/12(日) 20:34:55Scanner stdIn = new Scanner (System.in);
int a, b, c;
while (true) {
try {
System.out.println("三つの整数の最大値を求めます。");
System.out.print("aの値:");
a = stdIn.nextInt();
System.out.print("bの値:");
b = stdIn.nextInt();
System.out.print("cの値:");
c = stdIn.nextInt();
break;
} catch (InputMismatchException e) {
System.out.println("整数値を入力してください。");
}
}
int max = a;
if (b > max) max = b;
if (c > max) max = c;
System.out.println("最大値は" + max + "です。");
}
例外絡みが原因みたいなんですけど、どこがおかしいのでしょうか?
0076デフォルトの名無しさん
2008/10/12(日) 20:42:290077デフォルトの名無しさん
2008/10/12(日) 20:47:01×マークがついてるんですがどう直せばいいのでしょうか?
0078デフォルトの名無しさん
2008/10/12(日) 20:57:02javaで可能でしょうか?
また、可能でしたら何から始めればよろしいでしょうか?
0079デフォルトの名無しさん
2008/10/12(日) 21:05:270080デフォルトの名無しさん
2008/10/12(日) 23:20:25____/ ̄ ̄
/ │ ̄\__ ゴゴゴ・・・
/
.. 、 ,_
 ̄\_/ ̄ ̄\/ ̄ ゴゴゴゴゴゴ・・・
___/ ̄へ√⌒l⌒´ ̄ ̄\_
´ / \
_ ./ ̄ ̄ ̄\ /
__ `ソ/ ─ ─ \/ ̄/
\/゚ (●)。 (●) \/ rへ,ノ 断る!!!
__>-へ| i (__人__) |ノ :.\_
.:/从へ、.゚` ⌒´o.ノ从rーヘ_
_::ノ :ノ`⌒Y⌒´:: \
.::┘ :│ ゚
0081デフォルトの名無しさん
2008/10/12(日) 23:22:07>>69
0082デフォルトの名無しさん
2008/10/12(日) 23:39:33エラーメッセージ読めよ
0083デフォルトの名無しさん
2008/10/12(日) 23:41:35買った方が安いし時間の節約になりますよ。
0084デフォルトの名無しさん
2008/10/12(日) 23:52:53挑戦するのにいい参考書があったら教えてほしいです
0085デフォルトの名無しさん
2008/10/13(月) 00:25:45JDK5のいくつかだったか以降はXPSP2未満だとインスコ時に警告出るよ。
XPSP1にインスコしようとしてはまった事がある。
sunのページにはそういうこと一切書かれてないが。
0086デフォルトの名無しさん
2008/10/13(月) 14:04:10jdk1.5.0.16
jre1.5.0.08
jre1.5.0.16
の3つのディレクトリができてるけどjre1.5.0.08は削除しても良いのかな?
0087デフォルトの名無しさん
2008/10/13(月) 14:15:24古いバージョンの消さないから
削除してよいよ
0088デフォルトの名無しさん
2008/10/13(月) 14:30:24俺、不安で最近まで取っておいた
0089デフォルトの名無しさん
2008/10/13(月) 14:50:20昔のjdk1.1.8とかなくなると、その環境で引き受けたクライアントもいるから開発するのにかなり困るし。
javacのオプション使ってもいいけど。
0090デフォルトの名無しさん
2008/10/13(月) 15:09:19拡張子が独自のものだと読めないんでしょうか?
0091デフォルトの名無しさん
2008/10/13(月) 15:09:49jarファイル内のファイルをgetClass().getResourceAsStream()で呼んでも
拡張子が独自のものだと読めないんでしょうか?
0092デフォルトの名無しさん
2008/10/13(月) 15:48:230093デフォルトの名無しさん
2008/10/13(月) 19:37:13Jungというネットワーク図を描画するライブラリと,JFrameを使って可視化ツールを
作っています.
JFrameを継承したJungSampleというコードを使用して,その中でaddメソッドを使用して
JungのコンポーネントをJFrameに登録して,JFrameに図を描画しています.
http://www.techscore.com/tech/Others/Jung/02.html
こののサンプルコードをそのままコピペしました.
やりたいのは,JFrameに描かれたすべての描画をいったん全部消して,また新しい図を
描画したいのですが,これはどうすればよいのでしょうか?
removeメソッドなどを使ってみましたが,うまくいきません.
どなたか教えてください.
0094デフォルトの名無しさん
2008/10/13(月) 20:48:46ttp://jung.sourceforge.net/doc/manual.html#remove
Graph#removeVertex(Vertex)を呼べ、と書いてある。
全削除なら、すべてのVertexを一つ一つ指定する必要があるけど、
ttp://jung.sourceforge.net/doc/api/edu/uci/ics/jung/graph/impl/AbstractSparseGraph.html#getVertices()
これでVertexのSetが取得できるので、問題はない。
techscoreのサンプルと同じにするのなら、
UndirectedSparseGraphにはremoveVertices(Set)があるから
graph.removeVertices(graph.getVertices());
でいけるんじゃね?
0095デフォルトの名無しさん
2008/10/13(月) 20:56:54マニュアル嫁って話ですね...すみませんありがとうございます.
0096デフォルトの名無しさん
2008/10/13(月) 23:33:22protected void paintComponent(Graphics g) {
Graphics2D g2d = (Graphics2D)g;
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
g2d.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
super.paintComponent(g2d);
}
};
小さい文字にアンチエイリアスをかけたいのですが、とあるところに落ちていたこのソースが機能しません。
大きな文字の場合、VALUE_TEXT_ANTIALIAS_OFFをしてもアンチエイリアスがかかるため、
方法そのものがおかしいのかなと思っているんですが、どうなのでしょうか。
どこかでSystem.setProperty("awt.useSystemAAFontSettings", "on");をすると小さい文字にもアンチエイリアスがかかりますが、一つのコンポーネントにのみかけたいのです。
また、JTextPaneを使いアンチエイリアスのかかった文字とそうでない文字を混同して表示させたいのですが、良い方法はありますか?
もしJTextPaneで問題があるなら他のコンポーネントでも構いません。
0097デフォルトの名無しさん
2008/10/14(火) 00:33:360098デフォルトの名無しさん
2008/10/14(火) 00:36:18実装してないとちゃんとエラーになるから。
Overrideの場合は間違ってもエラーにならず気が付きにくい。
0099デフォルトの名無しさん
2008/10/14(火) 12:09:48BufferedReaderを使った方が簡単なんですけど遅くてなんとも
0100デフォルトの名無しさん
2008/10/14(火) 13:12:17全部を一気にメモリに読み込んでから処理すればいいじゃん
1行のサイズが1GBありますとかじゃないんでしょ?
0101デフォルトの名無しさん
2008/10/14(火) 13:21:29オーバーライドしませんってのが出てエラーになっちゃうんですが
どうすればいいですか?
0102デフォルトの名無しさん
2008/10/14(火) 13:24:14import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class ExpButton2 extends JFrame{
public Container container = null;
public JToggleButton b1,b2;
public Icon icon1 = new ImageIcon("pin1.gif");
private Font font = new Font("serif",Font.ITALIC + Font.BOLD,36);
public ExpButton2(){
super("ExpButton_2");
container = this.getContentPane();
container.setLayout(null);
container.setBackground(Color.gray);
container.setForeground(Color.red);
b1 = new JToggleButton("ButtonA",icon1);
b1.setVerticalTextPosition(SwingConstants.BOTTOM);
b1.setHorizontalTextPosition(SwingConstants.CENTER);
b1.setSize(80,60);
b1.setLocation(40,30);
b1.setVisible(true);
b1.setOpaque(false);
b1.setBorderPainted(true);
b1.addActionListener(lsn);
container.add(b1);
0103デフォルトの名無しさん
2008/10/14(火) 13:27:59b2.setVerticalTextPosition(SwingConstants.BOTTOM);
b2.setHorizontalTextPosition(SwingConstants.CENTER);
b2.setSize(80,60);
b2.setLocation(120,30);
b2.setVisible(true);
b2.setOpaque(false);
b2.setBorderPainted(true);
b2.addActionListener(lsn);
container.add(b2);
addWindowListener(new WindowEvevtHandler());
setVisible(true);
}
static ActionListener lsn = new ActionListener(){
public void actionPerfomed(ActionEvent e){
String pushedButton = e.getActionCommand();
System.out.println(pushedButton);
//if(pushedButton.equals("make mean 1")) method1();
//else if(pushedButton.equals("make mean 2")) method2();
//else if(pushedButton.equals("ReadFile")) method3();
//else if(pushedButton.equals("SaveToFile")) method4();
}
};
0104デフォルトの名無しさん
2008/10/14(火) 13:29:54public void windowClosing(WindowEvent e){
System.exit(0);
}
}
public void paint(Graphics g){
super.paint(g);
g.setColor(Color.blue);
g.setFont(font);
g.drawString("message",40,160);
}
public static void main(String args[]){
new ExpButton2();
}
}
0105デフォルトの名無しさん
2008/10/14(火) 13:38:52読込完了->処理なんで少しは早くなるのではないかと思って
使ってるのが化石PCなのが最大の原因な気がしなくもないですけど
そして自己解決
StringBuffer buf=null;
FileChannel fis = new FileInputStream(ファイル名).getChannel();
ByteBuffer buffer = ByteBuffer.allocate((int)fis.size());
byte[] bytes = new byte[buffer.capacity()];
buffer.get(bytes);
for (int i=0;i<buffer.capacity();i++){
if((char)bytes[i]=='\n'){
String str=buf.toString();
//
//ここに処理が入る
//
}
buf.append((char)bytes[i]);
}
でよさそうですね
お手数おかけしました
0106デフォルトの名無しさん
2008/10/14(火) 13:43:41素直に BufferedReader 使った方が速いんじゃ?
0107デフォルトの名無しさん
2008/10/14(火) 13:46:40× actionPerfomed
○ actionPerformed
0108デフォルトの名無しさん
2008/10/14(火) 14:01:520109デフォルトの名無しさん
2008/10/14(火) 16:43:35やっぱりJAVAがいいんでしょうか。
C言語等と比較して何で作ったら良いか迷っています。
0110デフォルトの名無しさん
2008/10/14(火) 16:48:00C#がいいよ
0111デフォルトの名無しさん
2008/10/14(火) 17:19:00どんなプログラムを作りたいかで適切な言語は変わってくる。
状況によって複数使い分けるのがいまどきのってやつさね。
0112デフォルトの名無しさん
2008/10/14(火) 19:03:47周りにすぐ質問できる人がいる言語にしとけ
いちいちここに書かれても面倒だからな
0113デフォルトの名無しさん
2008/10/14(火) 19:08:14それで早いのか?
0114デフォルトの名無しさん
2008/10/14(火) 19:16:32>>113
少しは早くなりました
あと>>105だと駄目駄目でした
というかググれば出てきました
0115デフォルトの名無しさん
2008/10/14(火) 19:17:11を埋め込んだのですがコンボがうまいこと動作しません
誰か実績ある人おりませんですか。
0116デフォルトの名無しさん
2008/10/15(水) 03:35:550117デフォルトの名無しさん
2008/10/15(水) 04:17:150118デフォルトの名無しさん
2008/10/15(水) 04:23:43この、ソースコードで理解できない部分がありますので
助言。お願いいたします。
class Sample7_3
{
public static void main(String args[])
{
int test[] = new int[5];
test[0] = 80;
test[1] = 60;
test[2] = 22;
test[3] = 50;
test[4] = 75;
for(int i = 0; i<5; i++){
System.out.println((i + 1) + "番目の人の点数は" + test[i] + "です。");
}
}
}
これを、実行すると"test[i]"が、80や60など点数に変わるのか理解できません。
0119デフォルトの名無しさん
2008/10/15(水) 06:37:08javaの入門書見てそれでもわからんかったらもう一度来い
0120デフォルトの名無しさん
2008/10/15(水) 06:53:500121デフォルトの名無しさん
2008/10/15(水) 19:05:07簡単な統計や、表の作成ができるものを作りたいと思っているのですが、
ローカルで動くものを作ろうとするとJavaの場合どの辺りを勉強するのがいいですか?
ざっと調べてみて、現在JDBC(+MsSQL)とAWTクラスを利用することを考えていますが、
方向性としてもこんなもんでしょうか
0122121
2008/10/15(水) 21:17:30もしPHPのようにHTML吐いてブラウザベースでやる方法が
別にあるなら教えていただきたいですm(;_ _)m
0123デフォルトの名無しさん
2008/10/15(水) 22:29:53(1)JFrameの上にJTextAreaとJButtonがあります。
JTextAreaにフォーカスがある時にTABキーを押下すると
テキストエリア内にTABが入力されます。
これをTABが押下されたらJButtonにフォーカスを遷移させるには
どうすればよいでしょうか?
(2)質問(1)に関連して、JButtonにフォーカスがある場合、
Enterキーを押下したら特定の動作をさせるには
どうすればよいでしょうか?
よろしくお願いいたします。
0124123
2008/10/16(木) 08:09:33(1)はJTextAreaおよびJButtonにキーリスナーを登録し、キーイベント(keyPressed)を拾って
仮想キーコードがTABだった場合にトラバーサルを次に進めるようにしました。
(2)も同様にキーイベント(keyPressed)を拾って、仮想キーコードが
ENTERの場合にJButtonがフォーカスオーナーであれば
特定動作をさせるようにしました。
以上。
0125デフォルトの名無しさん
2008/10/16(木) 10:47:17直接KeyEventを拾うリスナを新たに書くよりも、折り返してるのでちょっと見づらいけど、
JTextArea area;
JButton button;
area.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS,
Collections.singleton(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, 0)));
area.setFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS,
Collections.singleton(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, InputEvent.SHIFT_MASK)));
InputMap map = button.getInputMap();
map.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0),
map.get(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0)));
map.put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0, true),
map.get(KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0, true)));
みたいに既存の機構を利用したほうが統一感があるかも。
JTextAreaの方はここでは簡単のために元々のCTRL+TABやSHIFT+CTRL+TABを上書きしてるけど、
元のキーも活かしたいなら新たにSetを作って元のと新しいのと両方をaddすればいいと思う。
getFocusTraversalKeysが返すSetは変更不可なので。
JButtonの方は元々SPACEでアクションを起こすようになっているので、
押された時と離された時の両方をSPACEに関連付けられた名前に合わせる。
こちらは追加なのでSPACEでもアクションを起こす。
0126デフォルトの名無しさん
2008/10/16(木) 18:21:12javaのプログラムで整数を引数として与えて、その整数をアスキーコードとして持つ文字を
戻り値として得られるようなメソッドはあるのでしょうか?
0127デフォルトの名無しさん
2008/10/16(木) 18:48:310128デフォルトの名無しさん
2008/10/16(木) 18:49:38int i = 65;
char c = (char) i;
System.out.println(c);
0129デフォルトの名無しさん
2008/10/16(木) 18:54:40できました!
さっきまで自分では>>128さんのソースの2行目の部分をStringにしてたからできなかったんです
助かりました!ありがとうございました!
0130デフォルトの名無しさん
2008/10/16(木) 22:12:20class Aクラス名<Bクラス名>{ … }
みたいなクラスの宣言を見たのですが、
"<"+">"で囲まれている部分は、どんな意味があるのですか?
教えてください。
0131デフォルトの名無しさん
2008/10/16(木) 22:21:290132デフォルトの名無しさん
2008/10/16(木) 22:49:210133デフォルトの名無しさん
2008/10/16(木) 23:01:05Eclipse、J2SE、500行〜5000行程度、非マルチスレッド、非GUIプログラムで処理速度、メモリ使用量改善と予想外の出力結果が出てくる時のデバッグ想定してます。
自分で調べた限りだと
ソースで流れを追う
println、assertを入れまくる
toStringを実装する
EclipseでbreakPoint/一時停止して変数の値、関数の呼び出し状況を見る、
hprofで呼び出し回数の多い関数を調べる
0134デフォルトの名無しさん
2008/10/16(木) 23:03:29自分の認識だとObject型へのキャスト、Object型からのキャストを減らすもの
ここのキャストはintをdoubleに変換するやつじゃなくてね
0137デフォルトの名無しさん
2008/10/17(金) 10:16:37plintln最強
0138デフォルトの名無しさん
2008/10/17(金) 10:55:33java用のlintってfindbugsみたいなのとか?
0139デフォルトの名無しさん
2008/10/17(金) 11:01:260140デフォルトの名無しさん
2008/10/17(金) 11:08:400141デフォルトの名無しさん
2008/10/17(金) 18:39:00初歩的な質問ですいません
OSはvista(笑)です
0142デフォルトの名無しさん
2008/10/17(金) 18:42:47gcj(笑)
0143デフォルトの名無しさん
2008/10/17(金) 19:40:53上達するにはどのようなことをすればいいんですか?
オススメ参考書などあれば教えてください。
0144デフォルトの名無しさん
2008/10/17(金) 23:29:11このあたりで実際にプログラム作ってみるのがいいんじゃないかな。
★★ Java の宿題ここで答えます Part 66 ★★
http://pc11.2ch.net/test/read.cgi/tech/1221652206/101-200
0145デフォルトの名無しさん
2008/10/17(金) 23:35:56あと俺はきしだタソじゃないよ。
0146デフォルトの名無しさん
2008/10/18(土) 01:09:41public static void main(String[] args) {
int i;
for (i = 0; i <= 10; i++) {
if (i == 5) {
break;
}
System.out.println(i);
}
System.out.println("finish!!");
}
}
どうして、これを実行するると
0から実行されるのではなく、1から実行されるのでしょうか?
普通は、0からはじまるのですよね・・・?
0147デフォルトの名無しさん
2008/10/18(土) 01:13:56ファイルにリダイレクトしても、0はない?
0148146
2008/10/18(土) 01:14:180149デフォルトの名無しさん
2008/10/18(土) 01:43:31import javax.swing.*; import javax.swing.text.*;
public class JDialogTest extends JDialog implements ActionListener{
public static void main(String[] args){
for(int i = 0; i < 100; i++){
System.out.println(i); new JDialogTest(null, "hoge", "hogehoge");}
}
public JDialogTest(Frame owner, String title, String message){
super(owner, title, true); setTitle(title);
addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent evt) {dispose();}});
Container c = getContentPane(); c.setLayout(new BorderLayout());
DefaultStyledDocument document = new DefaultStyledDocument();
SimpleAttributeSet attribute = new SimpleAttributeSet();
try{
// この行の有り無しで変化がみられます。。。
document.insertString(document.getLength(), message + "\r\n", attribute);
} catch (Exception e){e.printStackTrace();};
JTextPane tp1 = new JTextPane(); tp1.setDocument(document);
JScrollPane jsp = new JScrollPane(tp1); jsp.setPreferredSize(new Dimension(520, 320));
c.add(jsp, BorderLayout.CENTER);
JButton bOK = new JButton("OK");
getRootPane().setDefaultButton(bOK);
bOK.addActionListener(this);
c.add(bOK, BorderLayout.SOUTH);
pack();
Toolkit tk = Toolkit.getDefaultToolkit();
setLocation((tk.getScreenSize().width - getWidth()) / 2, (tk.getScreenSize().height - getHeight()) / 2);
setAlwaysOnTop(true); bOK.requestFocus(); setVisible(true);
}
public void actionPerformed(ActionEvent ae){this.setVisible(false);}
}
0150149
2008/10/18(土) 01:45:27同じモーダルダイアログをループで表示させていくプログラムですが、
// この行の有り無しで変化がみられます。。。
document.insertString(document.getLength(), message + "\r\n", attribute);
この行があると、数回目で表示されなくなり停止します。
何が悪いんでしょうか??
ちなみに、上の部分をコメントアウトすると、正常に動きます。
0151デフォルトの名無しさん
2008/10/18(土) 11:23:34TextFeildとBottonの位置の指定の仕方がわかりません
初歩的な質問ですがよろしくお願いします
0152デフォルトの名無しさん
2008/10/18(土) 12:04:110153デフォルトの名無しさん
2008/10/18(土) 12:13:21リリース内容に何か問題があって黙って直している最中とか
0154デフォルトの名無しさん
2008/10/18(土) 12:32:57レイアウトマネージャで検索
0155デフォルトの名無しさん
2008/10/18(土) 14:54:370156デフォルトの名無しさん
2008/10/18(土) 16:09:27今考えてるのはMyAppにTomcatなどのWebサーバ機能を持たせて、MyMonitorからHTTP通信などで連携する事を考えてるのですが・・・
ちなみにMyMonitorはjavaでかかれるとは限りません
目的はMyAppからSwingで書いたGUIを分離することです
0157デフォルトの名無しさん
2008/10/18(土) 16:18:40ソケット通信
0158デフォルトの名無しさん
2008/10/18(土) 16:43:57自身のスレッドが検知したいのですがどうしたらいいのでしょうか?
0159デフォルトの名無しさん
2008/10/18(土) 17:05:39ワーカースレッドの空きを言ってるなら、キューが空ならスレッドも仕事してないってわかるでしょ。
0160デフォルトの名無しさん
2008/10/18(土) 18:48:49例えば下のように変数aは途中でnullを代入してますが、
この時点でスレッドはどこからも参照されなくなりました。
参照されなくなったスレッド自身が、自分誰からも参照されなくなった!と判断したいのです。
Thread a = new Thread( new MyRunnable() );
a.start();
a = null;
GCじゅありませんが、誰からも参照されなくなったらというのを判断するのは出来ないのでしょうか?
0161デフォルトの名無しさん
2008/10/18(土) 19:37:330162デフォルトの名無しさん
2008/10/18(土) 19:41:48アンチエイリアスがかかるだけと思われ
テキストの設定は別
0163デフォルトの名無しさん
2008/10/18(土) 21:25:23スレッドが走ってる間は常に参照が保持され続けている
Thread.currentThread() でそれが返ってくるし、スレッドグループにも保持されている
スレッドが停止しない限り、誰からも参照されなくはならない
0164デフォルトの名無しさん
2008/10/18(土) 21:28:340165デフォルトの名無しさん
2008/10/18(土) 23:12:53教えてください。
他にHSPとRubyを触っています。(こちらも実用レベルではないです)
言語初心者ではないという情報だけ。
0166デフォルトの名無しさん
2008/10/18(土) 23:36:53あと俺はきしだタソじゃないよ。
0167デフォルトの名無しさん
2008/10/19(日) 00:29:49あと、携帯アプリを作りたいと考えているのですが、
携帯アプリでJavaを入門するより、普通の入門書から入った方がいいですかね?
0168デフォルトの名無しさん
2008/10/19(日) 03:05:02もうそれいいから
0169デフォルトの名無しさん
2008/10/19(日) 07:39:190170デフォルトの名無しさん
2008/10/19(日) 09:04:55documentとattributeをJDialogTestのインスタンス生成する度に作っているからじゃない?
この二つをprivate staticでそれぞれ一個だけ作ってやって、setVisible(true)のあとで
document.remove(0,message.length()+2); とかやってみれば?
0171デフォルトの名無しさん
2008/10/19(日) 13:44:26eclipseを使用しており、Swingを用いて単純な電卓を作成したのですが、
それをeclipseから独立したアプリケーションにするにはどうしたらいいんでしょうか?
初心者なんで低レベルな質問で申し訳ないです。
0172デフォルトの名無しさん
2008/10/19(日) 14:10:28ようはJARに出来れば良いんだから、
プロジェクトを右クリックしてメニュー探して見ればいい。
0173デフォルトの名無しさん
2008/10/19(日) 14:23:34え、、、>>166って嘘なんですか?。。。
0174デフォルトの名無しさん
2008/10/19(日) 16:05:02ファイルメニューorプロジェクト右クリック>エクスポート>Java>JARファイル
0175デフォルトの名無しさん
2008/10/19(日) 16:41:46解決しました!ありがとうございます!
0176デフォルトの名無しさん
2008/10/19(日) 16:54:100177デフォルトの名無しさん
2008/10/19(日) 18:28:42WikiRoom?からWikiHouse?に移動します。問題がある場合は 10/21 までに support[at]wikiroom.com までメールをください --- WikiRoom
だって
しかし今年になってwikiの更新頻度が極端に落ちたね
春に自分が更新した後夏の間ちょいとサボってて秋に久しぶりに見たら
その間ここは2スレぐらい進んでたのに1件しか更新されてなかった
0178デフォルトの名無しさん
2008/10/19(日) 18:34:56ウィンドウを画面の一番手前に持ってくるには
どうすればいいでしょうか?
0179デフォルトの名無しさん
2008/10/19(日) 18:44:51まだJDK6のダウンロードできないね
でも英語の方のダウンロードページからは今普通に落とせた
日本語ページからの接続をサーバがうまく処理できてないみたいだ
0180デフォルトの名無しさん
2008/10/19(日) 21:02:31http://www.javadrive.jp/tutorial/jtable/index14.html
このページに画像をセルに表示する方法が書かれていますが、
画像をセルではなく、一行全体に表示するようなことは可能でしょうか。
目的は、一行全体に画像を表示することで、
「ここから下には○○系のデータが並んでいますよ」
ということをユーザーに分らしたいのです。
要はテーブルの任意の行に見出しを作りたいのです。
画像が不可能である場合は、テキストの描画でも構いません。
TableCellRendererは、行ではなくセルを対象にしているので、
この場合には使えないと思っています。
0181デフォルトの名無しさん
2008/10/19(日) 21:26:08モデルはどうしてるの?
その行の各セルに、「この行は見出し行ですよ」って示すようなデータ入れるの?
0182デフォルトの名無しさん
2008/10/19(日) 22:03:10ソースこぴって、モデルから取得したデータが行見出しデータなら自前の見出しレンダラへ描画を委譲。
これでできるっちゃできるよ。
0183デフォルトの名無しさん
2008/10/19(日) 22:07:47回答ありがとうございます。
見出しとする行に入れる数字の値は問いません。
その数字はセルに設定するつもりがないからです。
要は下のようなテーブルを
1 2 3
4 5 6
7 8 9
次のように表示したいのです。
1 2 3
4 5 6
--2007年-- (←のような見出しを追加したい)
7 8 9
イメージとしては、row == 2のときに見出しを描画するコードを記述
するものなのですが、このような事は可能でしょうか。
>>182
回答ありがとうございます。
調査します。
0184デフォルトの名無しさん
2008/10/20(月) 02:05:23BasicTableUIのpaintの処理をコピーし、
super.paintでデフォルトの描画をしてから、
Graphicsを使って任意の行を描画するようにしました。
助言なしでは実装できなかったと思います。
本当にありがとうございました。
0185デフォルトの名無しさん
2008/10/20(月) 04:11:24当方、全くの初心者です。JAVAじゃないけどVBで
いくつかソフトを作ったぐらいであとは何もやってません。
0186デフォルトの名無しさん
2008/10/20(月) 11:09:28終了してるが、その場合は無理に全部1つのJTableに入れずに、
各年毎のJTableと見出しのJLabelをBoxに入れるのがいいような気がする。
0187デフォルトの名無しさん
2008/10/20(月) 14:58:290188デフォルトの名無しさん
2008/10/20(月) 15:23:25たぶん符号ビットのせいだろうと思ってint型の下位16ビットだけを使うようにしたら上手くいったんだけど、
もしかしてそんな面倒しなくてもchar型でやればOKだったりする?
あとbyte型だとうまくいかなったのは符号ビットのせいって考えはあってる?
0189デフォルトの名無しさん
2008/10/20(月) 15:24:310190デフォルトの名無しさん
2008/10/20(月) 16:17:57int i = 10;
for(int n = -i; n >= i; n++){
}
0191デフォルトの名無しさん
2008/10/20(月) 16:24:10理由:IE7.0に入れられたWindows Live系のアドオンがJAVAと競合している。
Internet Explorer 7のメニューから[ツール] → [アドオンの管理] →[アドオンの有効化または無効化]を開く
・現在 Internet Explorerで読み込まれているアドオン
・Internet Explorerで使用されたアドオン
・許可なしで実行されるアドオン
・ダウンロードされたActivwXコントロール(32ビット)
を全部見て調べる
○Sign-in Helper(Windows Live Messengerインストールで入れられる)
→無効にする
○Windows Live Toolber helper(Windows Live Toolbarインストールで入れられる)
→無効にする
0192デフォルトの名無しさん
2008/10/20(月) 16:29:08なにがOKなんだ
それじゃループ回らないだろ
0193デフォルトの名無しさん
2008/10/20(月) 16:30:51そんなもん気にしなくていいようにRMI使ってるんじゃないのか
0194デフォルトの名無しさん
2008/10/20(月) 16:35:11どういうコードでどうなると思っていてどうなったから「うまくいかない」となったという説明とコードを書け
0195デフォルトの名無しさん
2008/10/20(月) 21:32:14java.rmi.server.RemoteServer.getClientHost() を使え。
前スレでもあったな、この質問。
0196デフォルトの名無しさん
2008/10/21(火) 01:12:20ブラウザで更新ボタン押すと高確率でクラッシュする
IE7なんて使ってないし、コンパネでネットワーク設定→直接接続もやってるのに
0197デフォルトの名無しさん
2008/10/21(火) 06:00:02Eclipse統合M26【Java/C/PHP/Ruby/Python/Perl】
http://pc11.2ch.net/test/read.cgi/tech/1224536200/
0198デフォルトの名無しさん
2008/10/21(火) 12:01:54をコマンドラインから入力する。その文字列を数値に変換し、合計を計算し、2進数表記の文字列に変換するプログラムを作成しろ。
ただし次の機能は使ってはいけない
1 文字列の加算
3 Integerクラスなどのラッパークラス
4 DecimalFormatなどの書式変換クラス
2 System.outまたはSystem.errのprint系メソッドで、Stringの値を受け取るもの以外
という風なJavaプログラムの課題を出されているのですけれど
文字列を数値に変換する方法が分かりません。教えていただけないでしょうか?
0199デフォルトの名無しさん
2008/10/21(火) 12:11:30文字列から文字を1つずつ取り出す
・・・ char c = s.charAt(i) 等
各桁ごとに文字を数値に変換する
・・・ if (c == '0') x = 0;
else if (c == '1') x = 1;
else throw new IAE(); 等
各桁の数値を足し合わせる
・・・ n = n * 2 + x; 等
0200デフォルトの名無しさん
2008/10/21(火) 14:25:08ありがとうございます。
一文字ずつ取り出すのですか、思いつきませんでした。
0201デフォルトの名無しさん
2008/10/21(火) 15:07:33SystemColor.windowは白を返すようです。
SystemColor.controlは色が違いますし...。
環境windowsです。
0202デフォルトの名無しさん
2008/10/21(火) 15:31:13ウィンドウのどのへんの色?
0203デフォルトの名無しさん
2008/10/21(火) 15:44:54ボタンやラベルなどを張り付ける領域です。
0204デフォルトの名無しさん
2008/10/21(火) 16:04:24UIManager.getColor("control")
0205デフォルトの名無しさん
2008/10/21(火) 16:31:350206デフォルトの名無しさん
2008/10/22(水) 00:51:27http://ipv6.2ch.net/ipv6/
なんか凄い板を見つけた。
IPv6でないと書き込めないってよ
しかも、IDの桁数が倍
0207デフォルトの名無しさん
2008/10/22(水) 01:43:54失敗した〜人生の汚点だぁって死ぬまで後悔するんだろうか。
0208デフォルトの名無しさん
2008/10/22(水) 06:09:51過去も未来も変わらないのは傘とワイパーとカブくらいだろう。
0209デフォルトの名無しさん
2008/10/22(水) 09:20:390210デフォルトの名無しさん
2008/10/22(水) 12:54:39出来ません
どうすれば良いですか?
0211デフォルトの名無しさん
2008/10/22(水) 12:55:33import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import javax.swing.*;
public class ExpList1 extends JFrame{
public JList list0,list1;
public JScrollPane scrollPane;
public JLabel lb1;
public Container container = null;
private Font font = new Font("serif",Font.ITALIC + Font.BOLD,36);
private Font font2 = new Font("serif",Font.BOLD,18);
public ExpList1(){
super("ExpList1");
setSize(300,320);
container = this.getContentPane();
container.setLayout(null);
container.setBackground(Color.gray);
container.setForeground(Color.red);
ListeSelectionListener lsl = new ListListener();
list0 = new JList();
list0.setSize(180,60);
list0.setLocation(40,70);
list0.setFont(font2);
list0.setForeground(Color.bule);
container.add(list0);
0212デフォルトの名無しさん
2008/10/22(水) 12:56:56list0.setListData(sdata);
list0.setSelectedIndex(1);
String[] name = {"aiba","iba","uba","eba","oba","kaba","kiba","kuma"};
list1 = new JList(name);
list1.setSelectedIndex(0);
list1.setSelectionForeground(Color.red);
list1.setSelectionBackground(Color.orange);
scrollPane = new JScrollPane(list1);
scrollPane.setSize(180,160);
scrollPane.setLocation(40,80);
scrollPane.setVisible(true);
container.add(scrollPane);
list1.addListSelectionListener(ls1);
lb1 = new JLabel();
lb1.setSize(180,60);
lb1.setLocation(40,250);
lb1.setForeground(Color.red);
lb1.setFont(font);
lb1.setVisible(true);
container.add(lb1);
addWindowListener(new WindowEvevtHandler());
setVisible(true);
}
0213デフォルトの名無しさん
2008/10/22(水) 12:59:16public void valueChanged(ListSelectionEvent e){
lb1.setText((String)list1.getSelectedValue());
}
}
class WindowEvevtHandler extends WindowAdapter{
public void windowClosing(WindowEvent e){
System.exit(0);
}
}
public static void main(String args[]){
new ExpList1();
}
}
0214デフォルトの名無しさん
2008/10/22(水) 13:01:20全角空白を取り除く
0215デフォルトの名無しさん
2008/10/22(水) 13:26:07コンパイルしようとすると<identifier>がありませんと]がありませんというエラーが出ます
int[] s = new int[3];
s[0] = 0;
s[1] = 1;
s[2] = 2;
の部分を
int[] s ={1,2,3};
に変えればエラーが無くなるのですがこれはなぜでしょうか?
また、上のように後で別々に代入するにはどのようにすればいいのでしょうか?
class tes{
int[] s = new int[3];
s[0] = 0;
s[1] = 1;
s[2] = 2;
public void show(){
for(int i = 0;i < s.length;i++){
System.out.println(s[i]);
}
}
public static void main(String[] args){
tes l = new tes();
l.show();
}
}
0216デフォルトの名無しさん
2008/10/22(水) 13:28:13クラスの中に直接
s[0] = 0;
のような実行コード (文) を書くことはできません
文はメソッドの中にしか書けません
別々に書きたいならコンストラクタでやればよろしい
0217デフォルトの名無しさん
2008/10/22(水) 14:05:15ありがとうございますコンストラクタで解決しました
いかにもjavaの基礎をすっ飛ばして勉強した間違いだったなこれ
0218デフォルトの名無しさん
2008/10/22(水) 22:03:07�@JAVAではC見たいに引数や戻り値をconstに出来ないのでしょうか?
public byte[] getAddress() { return m_address; }
この場合、m_addressを変更されたくない場合はコピー作って返すしかないんですか?
�A文字列の全てのスペースを消す楽な方法ないでしょうか。trim()は前後しかやってくれないので。
�B配列をenumeration型にしてforで回したいのですが、変換する楽な方法は無いですか?
0219デフォルトの名無しさん
2008/10/22(水) 22:03:26いろいろ調べた結果よく明確にわかる資料がありませんでした。
0220デフォルトの名無しさん
2008/10/22(水) 22:13:011 無理。
JDK7で @ReadOnly みたいなアノテーション付けられるようになるらしいけど、
それまでは防衛的コピー返すか、Immutableなオブジェクト返すかの二択。
2. "文 字 列".replaceAll("\\s", "")
3. Collections.enumeration(Arrays.asList(array))
0221デフォルトの名無しさん
2008/10/22(水) 22:21:14エスパー風に答えるなら
-encodingを使うこと
0222デフォルトの名無しさん
2008/10/22(水) 22:24:02配列は普通に for でまわせるだろ?
何で型変換が必要なんだ?
0223デフォルトの名無しさん
2008/10/22(水) 22:25:49早いレス、有難うございます。
�@C++からJAVAに移ったんでconst出来ないのに違和感がありまして。
やっぱり基本無理なんですね。
�Aタブや全角スペースなど空白全般となると面倒そうですね。基本地道に取り除くしかなさそうと…
�Bコレクションに格納しないと、やっぱり無理ですか。
無駄なコピーは避けたかったのですが。
でも、イチイチenumeration継承させたクラス作るくらいならそっちの方が楽そう。
どうもありがとう御座いました★
0224デフォルトの名無しさん
2008/10/22(水) 22:29:25ループをenumeration用と配列用で分けたくなかったので。
enumerationがメインのループでして、
補助的に配列も突っ込む予定でenumerationに出来たら楽だなぁと考えた訳です。
0225デフォルトの名無しさん
2008/10/22(水) 22:44:051.5以降なら拡張 for 構文があるから配列と Iterator でほとんど一緒。
0226デフォルトの名無しさん
2008/10/22(水) 22:59:37enumeration⇔Iterator変換はありますかね?
メインで取得する型enumerationなもので。ループもenumerationベースになっております。
0227デフォルトの名無しさん
2008/10/22(水) 23:08:50Enumeration 型って Iterator 型の間違いだと思ったけどマジなのか。
新しく実装する場合は Iterator にしろって公式ドキュメントにあるから
Enumeration を Iterator に置き換えたほうが良いと思う。
もう Enumeration で動いてどうしようもないなら
Jakarta の IteratorUtils.asEnumeration を使うとか。
0228デフォルトの名無しさん
2008/10/22(水) 23:11:180229デフォルトの名無しさん
2008/10/22(水) 23:16:13新しいライブラリ追加するほどディープなループじゃないんで、
簡単な方法が無いならそこの中だけ関数として切り出します。
0230デフォルトの名無しさん
2008/10/22(水) 23:18:12int next = present^(1<<n);
という方法があることを習ったのですが、
ある数のnビット目が0であるか1であるかを知るためにはどのような方法があるのでしょうか?
0231デフォルトの名無しさん
2008/10/22(水) 23:22:25nビット目が1で他が0であるビット列との論理積をとってそれが0かそうじゃないか
0232デフォルトの名無しさん
2008/10/22(水) 23:31:32ちょっとビックリというか感動しました、ありがとうございます!!
0233デフォルトの名無しさん
2008/10/22(水) 23:48:18機能は同等なんだからラップクラス作ればおk
0234デフォルトの名無しさん
2008/10/23(木) 00:10:06そこまで手間を掛けるか、ループ二重持ちかなんだけど、
ラップクラスつくほどの物ではないんで
0235デフォルトの名無しさん
2008/10/23(木) 00:33:19手間かかるか?
機能一緒だからメソッド委譲するだけだと思うが。
0236デフォルトの名無しさん
2008/10/23(木) 01:02:46presentのasdf[n]ビット目が0であるならnextが加算され、
1であるならばnextが減算されるコードを書きたかったのですが
if ((present && (1<<asdf[n])) == 0){
next = next + 1;
} else {
next = next - 1;
}
と書いたところ
"&&はintで未定義です"とエラーが出ました
どう書けばいいのでしょうか?
0237デフォルトの名無しさん
2008/10/23(木) 01:27:39それはboolの方だ。
&は1つで。
0238デフォルトの名無しさん
2008/10/23(木) 01:45:364行程度のものにクラス作るのは…
別にループ作っても8行プラスα程度のものなんで。
0239デフォルトの名無しさん
2008/10/23(木) 02:04:18なるほど!
勉強になります
0240デフォルトの名無しさん
2008/10/23(木) 02:21:29仮にs1に「abcdefg」と入力して「abc」まで取り出し、その取り出した「abc」の後ろに
「WWW」を連結させて「abcWWW」としたいのですがどのようなメソッドを指定すればいい
か分りません。説明下手ですがお願いします。
0241デフォルトの名無しさん
2008/10/23(木) 03:14:110242デフォルトの名無しさん
2008/10/23(木) 03:39:35http://java.sun.com/javase/ja/6/docs/ja/api/java/lang/String.html
自分ならstringbuffer使わずにstringで押し通すかな
Stringのsubstringと+=で
0243デフォルトの名無しさん
2008/10/23(木) 03:39:35リンクをクリックしたときに、そのときselectOneMenuで選択できる全ての
項目を取得したいのですが、具体的にどうすれば良いかご教授願います。
0244デフォルトの名無しさん
2008/10/23(木) 06:03:32Foo hoge(Bar bar){
//ここで"hoge"とFooの型とBarの型を知りたい
}
0245デフォルトの名無しさん
2008/10/23(木) 08:07:32逆に聞きたいんだが、それは何に使うんだ?
0246デフォルトの名無しさん
2008/10/23(木) 10:07:39確かに && は bool 専用だが、 & との使い分けも楽しいヨ。
0247デフォルトの名無しさん
2008/10/23(木) 10:39:18>>1
0248デフォルトの名無しさん
2008/10/23(木) 13:49:03なにかわくわくするようなサンプルありません?
SWINGでこんなことできちゃうの、みたいな。
0249デフォルトの名無しさん
2008/10/23(木) 16:58:040250デフォルトの名無しさん
2008/10/23(木) 17:12:10正規表現を用いて正しく入力されたか判断したいのですが、
"\\d[-\\d+]*\\d"
では、ハイフンが2回連続したときもマッチしてしまいます。
どこがおかしいのでしょうか
0251デフォルトの名無しさん
2008/10/23(木) 17:16:030252デフォルトの名無しさん
2008/10/23(木) 17:26:09丸括弧が使えたのですね。
正規表現についてなかなか詳しいサイトが見つからず四苦八苦していたところでした。
ありがとうございます。
0253デフォルトの名無しさん
2008/10/23(木) 17:56:20僕は学習方法の質問はしますが
難問の質問はしないですよ。
自力で解いてきましたから。
予備校などに行く目的は、「効率のよい学習をするため」です。
それと同じです。
かけるべき時間とかけなくてよい時間の峻別が大事なのです。
メモしていいですよ。
メモしましたか?
復唱してください。
0254デフォルトの名無しさん
2008/10/23(木) 21:10:34周期的にやるだけならタイマー使えばいいんですが、遅延が生じないようにしたいんです
上手く伝えられるか分かりませんが、20〜30msぐらいの間隔である処理を実行するようにしたいんです
色々調べたりしてみましたが、私には理解できず…皆さんどうか力をお貸し下さいorz
0255デフォルトの名無しさん
2008/10/23(木) 21:23:130256デフォルトの名無しさん
2008/10/23(木) 21:27:03Timerの他にはScheduledThreadPoolExecutorとか、
あとSwingに何かあったような気がするが、
どれもリアルタイム性は保証されていなかったと思う
0257デフォルトの名無しさん
2008/10/23(木) 21:41:48別にJavaに限ったことでは無いのですが、関数の型宣言でなぜVoid型というのが
あるのでしょうか?
値を返さないないのに敢えてVoidを宣言するのは、自由参加の行事の場にわざわざ
やってきて、「私は参加しません」と言うのと同じようで無駄な気がするのですが・・・
0258デフォルトの名無しさん
2008/10/23(木) 21:41:57リアルタイム性が必要なのか?
デスクトップOSにそんなものを期待するのが間違いだろう
ドライバでも書くのならともかく・・・
0259デフォルトの名無しさん
2008/10/23(木) 21:45:41Javaでは、戻り値の型を書かないと、コンストラクタと区別が付かないからです
class Foo {
public Foo(){} // これはコンストラクタ
public void Foo(){} // これは値を返さないメソッド
}
0260デフォルトの名無しさん
2008/10/23(木) 21:47:38調べてみm…早くも挫折しそうだ…
>>256
やっぱムリですかねぇ…
Swingにもタイマーっぽい何かがあったんですが、やはりリアルタイム精度は保障されてなかったです…
>>258
リアルタイム性というか、一定間隔で処理を実行したいだけなんです
具体的にやる内容書くと、一定間隔(数10ms)で文字列の出力を行いたいんです
間隔が短いと一つ前の段階のファイル出力が終わる前に次の文字出力要求が来てしまうとどうなるのか確認したくて…
上手く伝えられた自信がありませんorz
0261デフォルトの名無しさん
2008/10/23(木) 21:49:28値の最大値より大きい数を扱いたい場合です
0262デフォルトの名無しさん
2008/10/23(木) 21:52:40大きい数を使いたいなら、考えられる大きい数字を格納できる変数を使うべき。
0263デフォルトの名無しさん
2008/10/23(木) 21:56:31さんきゅう
0264デフォルトの名無しさん
2008/10/23(木) 21:59:18出来る言語もあるということですか
0265デフォルトの名無しさん
2008/10/23(木) 22:01:02こんな感じ
Runnable task = new Runnable(){ public void run() {
//ここに実行したいことを書く
}};
ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);
executor.scheduleAtFixedRate(task, 0, 数10, TimeUnit.MILLISECONDS);
・・・
executor.shutdown();
終わる前に次の時間が来たら、前のが終わってから実行される
0266デフォルトの名無しさん
2008/10/23(木) 22:04:25BigInteger や BigDecimal を使う
0267デフォルトの名無しさん
2008/10/23(木) 22:12:35おお…わざわざ本当にありがとうございます…!
やはり終わる前に次の時間が来たら待機しちゃいますよね…
というかそれが分かったことが最高の結果です…ホントにありがとう!
0268デフォルトの名無しさん
2008/10/23(木) 22:17:44というより、値の大きさに制限が無い(メモリのある限り)
という言語はいくつもある
0269デフォルトの名無しさん
2008/10/23(木) 22:22:20「ボタンをクリックしたら別のクラスを起動」
としたいのですが、どうすればいいのでしょうか?
0270デフォルトの名無しさん
2008/10/23(木) 22:28:16並列実行したいってんなら方法はあるけど、
並列数が際限なく増えていってCPUもメモリも食い潰すだけかと・・・
0271デフォルトの名無しさん
2008/10/23(木) 22:31:24並列実行…ではないです、多分。正直良くわからんです…
アバウトな説明ですが
・"output.txt"というファイルに文字列を一行ずつ書き込む
という処理を数10ms間隔で行いたいのです。
その際に、文字列の長さによっては4行目に書き込んでる最中に5行目の内容を書けと命令が来たらどうなるか試してみたかったんです
分かり辛い説明ですいませんorz
0272デフォルトの名無しさん
2008/10/23(木) 22:41:19どうなるかわからないようなプログラムは書かない
どうしたいのか、というのがまずあって、それを実現するためにプログラムを書く
その例の場合なら
・4行目に書き込むのが終わるのを待ってから5行目を書き込んで欲しいのか
・4行目と5行目の内容がでたらめに混ざって欲しいのか
・4行目と5行目の書き込みを同時に行いつつも混ざらないようにしたいのか
・俺の想像の及ばないような別の何かか
いくつか選択肢があると思うが、どういう動作をしてほしいのかわからない状態なら、まずそれを整理するべき
0273デフォルトの名無しさん
2008/10/23(木) 22:50:07俺としては
・4行目と5行目がでたらめに混ざるのか
・それか俺のあずかり知らぬ謎のエラーが発生するのか
・普通に4行目,5行目と出力される
の何らかの状態が発生するか確認したいんです。
が、その状態を発生させようにも一定間隔で処理が実行させられず…orz
0274デフォルトの名無しさん
2008/10/23(木) 22:51:570275デフォルトの名無しさん
2008/10/23(木) 22:56:57わざと並列実行させて挙動を観察して楽しみたいってことなら、
こんな感じで一定時間ごとにスレッド作ってみたらどう
Runnable task = new Runnable(){ public void run() {
//実行する内容
}};
for(;;){
Thread.sleep(10);
new Thread(task).start();
}
0276デフォルトの名無しさん
2008/10/23(木) 22:59:28点を何個打ちたいかによる
1個打ちたいだけならfillRectでいいかと
100万個打つなら、BufferedImageでごにょごにょ・・・
0277デフォルトの名無しさん
2008/10/23(木) 23:00:450278デフォルトの名無しさん
2008/10/23(木) 23:01:35おお…ありがたや…試してみます!
0279デフォルトの名無しさん
2008/10/23(木) 23:10:59BufferedImage DataBufferInt drawImage でぐぐってください
0280デフォルトの名無しさん
2008/10/23(木) 23:51:37ソラリスたんとかはいいけどwinは大丈夫なのか?
0281デフォルトの名無しさん
2008/10/24(金) 03:28:29うちの環境では\n書けばflashされたが、明示しなきゃだめなんだね
0282デフォルトの名無しさん
2008/10/24(金) 18:36:18field.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
try {
Thread.sleep(5000);
System.out.println("pressed");
} catch (InterruptedException e1) {
e1.printStackTrace();
}
}
});
としているのですが、フィールドに数文字を高速でタイプしたときに、
Pressedが一回だけ表示されるようにするにはどうすればいいのでしょうか。
KeyAdapterが複数立ち上がるときに、新しいのが古いのを棄却するようにしたいのですが。
よろしくお願いします。
0283デフォルトの名無しさん
2008/10/24(金) 19:10:04それぞれ独立したイベント(KeyEvent)を、
一つのまとまりとして扱うための仕組み(何らかのオブジェクト)を用意する。
Bufferみたいなもん。あとはタイマー機能やら出力機能やら付けてあげれば。
0284デフォルトの名無しさん
2008/10/24(金) 19:58:37うまくいきました!
ありがとうございました。
0285デフォルトの名無しさん
2008/10/24(金) 20:18:49int i = Integer.parseInt(args[0]);
を使って、コンソール?から数値を入力したいのですが
コンソールに何も入力することができません。
どうすれば入力できるようになるでしょうか?
0286デフォルトの名無しさん
2008/10/24(金) 20:25:150287デフォルトの名無しさん
2008/10/24(金) 20:52:40クラスやメソッドにカーソルを合わせて[Shift]+[F2]を押すと
webブラウザでドキュメントを開くのですが
これをeclipseで観覧することは可能でしょうか?
他の方法でも何かeclipse自体でドキュメントを開く方法があれば教えてください。
0289デフォルトの名無しさん
2008/10/25(土) 00:20:30System.out.print(".");
OK?
0290デフォルトの名無しさん
2008/10/25(土) 02:43:43Do you film good Porno Video? Yes? So, good !
I look forward to watch your Hentai Video !
If Filming your porno video is finished, please teach me!!
Good-Bye!!!
0291デフォルトの名無しさん
2008/10/25(土) 12:04:41try
{
port = Integer.parseInt(s);
}
catch(NumberFormatException e)
{
}
0292デフォルトの名無しさん
2008/10/25(土) 12:46:12port = Integer.tryParseInt(s, -1);
static int tryParseInt(string s, int returnValueIfFailed) {
try {
return Integer.parseInt(s);
}
catch {
return returnValueIfFailed;
}
}
0293デフォルトの名無しさん
2008/10/25(土) 12:56:04面倒だけど今そうやってます。
0294デフォルトの名無しさん
2008/10/25(土) 13:23:54なんで面倒なの?一回作ったらそれで終わりじゃん。
0295デフォルトの名無しさん
2008/10/25(土) 13:26:40Sun JDKのparseIntを元に改良したいんだけど、これってライセンス的にNG?
GPL classpath exceptionで公開されてるコードを落として来る方がいいのかな。
0296デフォルトの名無しさん
2008/10/25(土) 13:30:45openjdkからパクってくればGPLだけど。
0297デフォルトの名無しさん
2008/10/25(土) 14:44:38以下のベンチでInteger.parseIntは547ms、ラストエラー方式(ThreadLocal使用)は125msだった。
まあ実運用ではこんな性能誤差だけど、コードはちょっとすっきり。
試す場合はJDKのコードを各自で改変してくらさい。
public static void main(String[] args) {
String[] input = {
"1234", "1234", "1234", "123a",
"1234", "1234", "1234", "123a",
"1234", "1234", "1234", "123a",
"1234", "1234", "1234", "123a"
};
long start = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
int jlen = input.length;
for (int j = 0; j < jlen; j++) {
// try {
// Integer.parseInt(input[j]);
// } catch (NumberFormatException ex) {
// }
parseInt(input[j]);
isInvalidByLastFormat();
}
}
long end = System.currentTimeMillis();
System.out.println(end - start);
}
public static boolean isInvalidByLastFormat() {
FormatResult result = tlformatFormat.get();
return result.invalid;
}
0298デフォルトの名無しさん
2008/10/25(土) 16:02:33コマンドラインに数値を入力する際
x = Integer.parseInt(args[0]);
を使っているのですが、何も入力されなかったとき、もう一度入力させるためにはどうしたらいいでしょうか?
上の式をdo〜while(args[0]==null)
でかこって試してみたのですが、だめでした。
0299デフォルトの名無しさん
2008/10/25(土) 16:13:27コマンドライン引数がそのプログラムの使用に合わないなら、
エラーを返してプログラムを止めてしまうのが通例。
まあユーザとパスワードぐらいなら、中で再入力機能を作るだろうけど。
Scanner in = new Scanner(System.in);とか使えばいい。
0300デフォルトの名無しさん
2008/10/25(土) 16:19:06args.lengthが0の時はコマンドライン引数を与える必要があるとの使い方を示して終了させる。
if (args.length == 0) {
使い方の表示;
return;
}
これをmainの最初に行う。
コマンドライン引数をコマンドライン引数として与えられるのは起動する時だけ。
もし、コマンドライン引数が無いときにその旨を表示して引数としてではなく
代わりの何かを標準入力からargs[0]に代入したいのなら、
if (args.length == 0) {
args = new String[1];
引数が無かったので何か入れてねと表示;
args[0] = new Scanner(System.in).nextLine();
}
x = Integer.parseInt(args[0]);
みたいなことをmainの頭でやる。argsをここ以外で使わないのなら、
新たなargsを作らずに直接入力をxに変換してもいいけど。
0301298
2008/10/25(土) 16:28:31なるほど〜
コマンドライン引数は、はじめに与えることしかできないのですね
Scanner〜に関してはまだ習ってないので
ここでは
if (args.length == 0)
を使い、プログラムを止めてしまう方向でやってみたいと思います。
とても参考になりました。ありがとうございました。
0302デフォルトの名無しさん
2008/10/25(土) 20:38:46クラスメソッドであろうとインスタンスメソッドであろうと同じように親クラスを特定できるはずです。
0303デフォルトの名無しさん
2008/10/25(土) 20:50:38そんな事いったらクラスメソッドであろうとインスタンスメソッドであろうと
同じように自分のクラスを特定できるはずだから、
this が使えないのも super が使えないのと同じ理由で納得できないと思うんだが。
0304デフォルトの名無しさん
2008/10/25(土) 20:53:14protectedなら親クラス指定してアクセス出来なかったっけ?
0305デフォルトの名無しさん
2008/10/25(土) 21:03:18何で関数が渡せないんだ?
何で関数が返せないんだ?
0306302
2008/10/25(土) 21:08:14thisはクラスではなく自分のインスタンスに対して処理してたはずです。
>>304
親クラスにアクセス可能であればsuperが使えるということですか?
0307デフォルトの名無しさん
2008/10/25(土) 21:09:420308デフォルトの名無しさん
2008/10/25(土) 21:35:10ServletContextスコープのgetAttributeNames()を実行して、
while(Enumerationオブジェクト.hasMoreElements()){
String key = (String)Enumerationオブジェクト.nextElement();
Object val = ServletContextオブジェクト.getAttribute(key);
}
という風に次々とServletContextスコープにsetAttribute()した物を取り出そうとしたのですが、
key = "WELCOME_File"という謎な初期パラメータが入っており上手くいきません。
解決法っぽいことをご存じの方ご教授下さい。
0309308
2008/10/25(土) 21:40:53os:xp
tomcat:6.1
です。
0310デフォルトの名無しさん
2008/10/25(土) 22:50:59まず、T の上位クラスが S であると仮定する。クラスTにおいて
T.super.name および、super.name は (S)this.name であるように処理される。
コンパイル時に名前解決が出来ない場合、エラーとなる。
まー、thisから逃れられない仕様になっています、と。
0311デフォルトの名無しさん
2008/10/25(土) 23:51:55public class Sample2_7 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int test[] = new int[5];
System.out.println(test.length + "人の点数を入力して下さい");
for(int i=0; i<test.length; i++){
String str = br.readLine();
test[i] = Integer.parseInt(str);
}
for(int s=0; s<test.length-1; s++){
for(int t=s+1; t<test.length; t++){
if(test[t] > test[s]){
int tmp = test[t];
test[t] = test[s];
test[s] = tmp;
}
}
}
for(int j=0; j<test.length; j++){
System.out.println((j+1) + "番目の人の点数は" + test[j] + "です");
}
}
}
0312311
2008/10/25(土) 23:53:06for(int s=0; s<test.length-1; s++){
for(int t=s+1; t<test.length; t++){
if(test[t] > test[s]){
int tmp = test[t];
test[t] = test[s];
test[s] = tmp;
です。
0313デフォルトの名無しさん
2008/10/25(土) 23:53:17つScala
0314デフォルトの名無しさん
2008/10/25(土) 23:59:14バブルソート
0315311
2008/10/25(土) 23:59:190316311
2008/10/26(日) 00:01:55"test.length-1;"は、縦方向の最後が不要だからでしょうか?
0317311
2008/10/26(日) 00:06:16"test.length-1;"の、"-1"は縦方向の最後が不要だからでしょうか?
あと、"test.length-1;"を"test.length; "こうしても
実行結果が同じになりますが、"-1"にする必要がないと?
0318デフォルトの名無しさん
2008/10/26(日) 00:11:20内側の for(int t=s+1; t<test.length; t++) が何回繰り返されるか考えてみるといいんじゃない
0319311
2008/10/26(日) 00:43:53バブルソートでぐぐったりしましたが、理解できません
特に
int tmp = test[t];
test[t] = test[s];
test[s] = tmp;
これらです・・・・
0321デフォルトの名無しさん
2008/10/26(日) 13:39:04ある程度大きなプログラムになるとパフォーマンス向上のためにほとんどのメソッドがスレッドになったりするんですか?
0322デフォルトの名無しさん
2008/10/26(日) 13:49:35そういうふうになら無いようにするには、処理をするスレッドと
ボタンが押されたかどうか判定するスレッド分けておく。
キャンセルボタンで処理を中断できるようにするには、マルチスレッドが必要。
0323デフォルトの名無しさん
2008/10/26(日) 16:14:100324デフォルトの名無しさん
2008/10/26(日) 16:17:440325デフォルトの名無しさん
2008/10/26(日) 16:24:180326デフォルトの名無しさん
2008/10/26(日) 16:24:330327デフォルトの名無しさん
2008/10/26(日) 16:25:15何をしたいかは分からないけど
リフレクションについて調べれば
なんかのヒントになるかも知らん
0328デフォルトの名無しさん
2008/10/26(日) 16:31:41「解凍されたファイルであることを確認してください」
って出て開けません><
解凍はされてると思うんですがこれはどうやったら開けるの?
0330デフォルトの名無しさん
2008/10/26(日) 18:26:23C++でいう
void set(int& x)
{
x = 10;
}
をJAVAではどうすればいいのでしょうか。
0331デフォルトの名無しさん
2008/10/26(日) 18:30:53x[0] = 10;
}
0332デフォルトの名無しさん
2008/10/26(日) 18:32:07配列にしないと駄目なんですか?!
うーん…
0333デフォルトの名無しさん
2008/10/26(日) 18:33:130334デフォルトの名無しさん
2008/10/26(日) 19:17:14別に配列以外でもいいけど。
Javaでは参照渡しがない上に、標準ライブラリで参照渡しの代わりに使う
標準的な型ってのが用意されてない。だから人によって配列使ったり
AtomicInteger 使ったり、MutableInteger 自作したり、メソッド構造変えたりしてる。
0335デフォルトの名無しさん
2008/10/26(日) 19:27:56Integerとしてarraycopy使ったら何とかなるかなとか試行錯誤しましたが、駄目でした。
配列とかAtomicIntegerとか引数の形を複雑にするのがなんか気分的に嫌なので、
単純な方法が無いなら諦めます。
どうも有難うございました。
0336デフォルトの名無しさん
2008/10/26(日) 19:51:45void set(int& x)
{
x = 10;
}
javaでこれを使う設計ってない(orやらない)。
out引数とか別にいらないでしょ。
0337デフォルトの名無しさん
2008/10/26(日) 20:00:30そういう意味不明なところから察するに、たぶんやらなくていいことやろうとしてる。
0338デフォルトの名無しさん
2008/10/26(日) 20:01:25設計レベルでやらないから、と門前払いするのはどうかと
0339デフォルトの名無しさん
2008/10/26(日) 20:02:350340デフォルトの名無しさん
2008/10/26(日) 20:03:23{
return 10;
}
でいいじゃん。
0341デフォルトの名無しさん
2008/10/26(日) 22:28:420342デフォルトの名無しさん
2008/10/26(日) 23:08:300343デフォルトの名無しさん
2008/10/26(日) 23:22:40Javaのソース側から無理
Fontの問題だからbashやコマンドプロンプトの設定で変える
0344デフォルトの名無しさん
2008/10/26(日) 23:37:19Windowなら、chcp 437すればバックスラッシュに。
元に戻すにはchcp 932で。
0345デフォルトの名無しさん
2008/10/26(日) 23:41:51ありがとうございます
0346デフォルトの名無しさん
2008/10/26(日) 23:47:52OFile.Printlnの場合もおなじですか?
0347デフォルトの名無しさん
2008/10/27(月) 04:05:32OFile.printlnって何か分からないけど、outputstreamとかjava.io.Writerの派生クラスとかつかっても指定できるのはunicodeから変換する文字コードを指定できるだけでFontは指定できない
ファイルに出力した場合はメモ帳等利用するプログラムののフォント設定による。
もしバックスラッシュを表示させるなら、
メモ帳、コマンドプロンプトFont設定を変える
word、pdf等のFont情報を指定できるファイルの構造になるよう出力する
画像に変えるとかとか
if('¥'=='\')//ともに本来は半角
みたいなコードは書けないはず。(文字ごとに別のフォントを設定できるWord等は除く)
無理やりコピペとかでもってくるとどっちかに変るはず(Eclipseとかのフォント設定による)
てか、バックスラッシュと円記号の区別はDPE業界じゃないかぎり必要ないと思う
0348デフォルトの名無しさん
2008/10/27(月) 11:48:22Tomcatを使って1つのアプリケーションを動かしていて、
他にはJava使っていないので、そのアプリケーションが原因だと思いますが、
その中のどの部分がどう悪さしているのか?が判らない状態です。
どう調査すればいいのか、検討が付かないので、調査方法などのアドバイスをしてほしいです。
お願いいたします。
0349デフォルトの名無しさん
2008/10/27(月) 12:34:25常識です。
0350デフォルトの名無しさん
2008/10/27(月) 12:40:55右クリックでポップアップメニューを表示させたいのです
しかしJTextPaneにaddMouseLisnerは登録できないようなのですが
どうすれば良いのでしょうか?
0351デフォルトの名無しさん
2008/10/27(月) 13:03:35LaF依存の操作でポップアップ表示してくれる。
0352デフォルトの名無しさん
2008/10/27(月) 13:04:05○ JComponent#setComponentPopupMenu(JPopupMenu)
0353デフォルトの名無しさん
2008/10/27(月) 13:27:43ありがとうございます、やってみます
0354デフォルトの名無しさん
2008/10/27(月) 15:09:22Tomcat5.5のJNDIのスコープに関しての質問です。
Tomcatのcontext.xmlに<Resource>タグでJNDIリソースを
書き、
Webアプリ内で、それを参照しています。
このとき、webアプリ1とwebアプリ2のそれぞれのcontext.xmlで、同一の名前を設定しています。
(Resourceタグのname属性を同じに)
その後、name属性以外の情報を変更し、アプリを配備した場合、
それぞれのアプリで設定したcontext.xmlでの内容が反映されるでしょうか?
以前はうまくいっていたと思うのですが、今やってみようとすると
うまく動かないので悩んでいます。
よろしくお願いします。
0355デフォルトの名無しさん
2008/10/27(月) 15:37:56結果が同じになりますが、どちらでもいいのでしょうか?
0356355
2008/10/27(月) 15:38:50public class Sample2_1 {
public static void main(String[] args) throws IOException{
System.out.println("テストの受験者数を入力して下さい");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine(); //配列要素の数を入力させる
int num = Integer.parseInt(str); //必要な数だけ配列要素を準備
int test[];
test = new int[num]; //num分を用意(例:5個[0][1][2][3][4]←配列要素)
System.out.println("人数分、入力して下さい");
for(int i=0; i<num; i++){ //numの分繰り返す
str = br.readLine(); //キーボードから必要な数だけ点数を入力させる
int tmp = Integer.parseInt(str); //←ここに注目
test[i] = tmp; //配列要素に点数を格納する例:5個[0]=1 [1]=2 [2]=3 [3]=4 [4]=5←配列要素 4まで?
}
System.out.println("出力します");
for(int i=0; i<num; i++){ //
System.out.println((i+1) + "番目の人の点数は" + test[i] + "です");
//1回目[0]=10、2回目[1]=20、3回目[2]=30、4回目[3]=40、5回目[4]=50を繰り返していく(出力)?
}
}
}
0357355
2008/10/27(月) 15:39:59public class Sample2_1 {
public static void main(String[] args) throws IOException{
System.out.println("テストの受験者数を入力して下さい");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine(); //配列要素の数を入力させる
int num = Integer.parseInt(str); //必要な数だけ配列要素を準備
int test[];
test = new int[num]; //num分を用意(例:5個[0][1][2][3][4]←配列要素)
System.out.println("人数分、入力して下さい");
for(int i=0; i<num; i++){ //numの分繰り返す
str = br.readLine(); //キーボードから必要な数だけ点数を入力させる
test[i] = Integer.parseInt(str); //←ここに注目
}
System.out.println("出力します");
for(int i=0; i<num; i++){ //
System.out.println((i+1) + "番目の人の点数は" + test[i] + "です");
//1回目[0]=10、2回目[1]=20、3回目[2]=30、4回目[3]=40、5回目[4]=50を繰り返していく(出力)?
}
}
}
0358355
2008/10/27(月) 15:41:020359デフォルトの名無しさん
2008/10/27(月) 16:19:030360355
2008/10/27(月) 18:03:50どうしてなのでしょうか?直接代入するか否かの違いですかね?
0361デフォルトの名無しさん
2008/10/27(月) 18:22:570362デフォルトの名無しさん
2008/10/27(月) 19:49:00public interface Test{
@SomeClass
public int getNum():
}
みたいな感じです
0363デフォルトの名無しさん
2008/10/27(月) 19:58:550364デフォルトの名無しさん
2008/10/27(月) 20:01:56ありがと。ググったらわかりそうだ。java 5からの機能なのか・・
0365デフォルトの名無しさん
2008/10/27(月) 22:41:22今使ってる参考書を捨てなくてもいいけどjdk5の新機能は軽く見ておいた方がいいかと ジェネリックスとか
0366355
2008/10/27(月) 23:16:12どうして、この最後の
for(int i=0; i<num; i++){ //
System.out.println((i+1) + "番目の人の点数は" + test[i] + "です");
を
for(int j=0; j<num; j++){ //
System.out.println((j+1) + "番目の人の点数は" + test[j] + "です");
iでなくjとiを変えてもいいのでしょうか?こも、同じ結果になります。
0367デフォルトの名無しさん
2008/10/27(月) 23:36:26try{}catch{}でデータベースから項目を読み込み、System.out.printlnで出力させることはできました
このデータベースの項目をapplet上に表示させるのがどうしても出来ないのですが何か手段はありますか?
0368デフォルトの名無しさん
2008/10/27(月) 23:38:450369355
2008/10/27(月) 23:48:55どうしてか、とても気になりまして・・・
ずっと悩んでいます
0370デフォルトの名無しさん
2008/10/28(火) 00:07:43ローカル変数名変えてるだけ
0371355
2008/10/28(火) 00:53:26レス、サンクスです。
ローカル変数名を変えると、値は違ってくるのではないでしょうか?
では、参考書などでは解りやすくする為に変数名だけを変えていると?
0372デフォルトの名無しさん
2008/10/28(火) 00:53:51JavaのSDKをダウンロードしようとしたところ、J2SE1.4.1は終了とのことですが。。
なにからはじめたらよいのでしょうか?
新しいSDKは古いSDKとまったく違うのであれば、新しいほうからはじめたいと思います
(たぶん機能追加だと思いますが。)
どのSDKからはじめるべきですか?
0373デフォルトの名無しさん
2008/10/28(火) 01:07:450374デフォルトの名無しさん
2008/10/28(火) 01:37:15>ローカル変数名を変えると、値は違ってくるのではないでしょうか?
なにが疑問なのかよくわからん。
代入した時test[i]なのに取り出す時はtest[i]で無くてもいいのかって質問?
とりあえず、test[j]だとどういう値になると思っているのか書いてみて。
>参考書などでは解りやすくする為に変数名だけを変えていると?
どういう意図があって変数名を変えているのかなんて事、その参考書書いた奴にしかわからんと思うよ。
0375デフォルトの名無しさん
2008/10/28(火) 01:37:55箱に付けてるラベルを貼り替えてるだけで、中身が変わるわけじゃないから。
リンゴの入ってる箱に「リンゴ」ってラベルを付けて「あの『リンゴ』の箱取ってきて」って言う場合と、
リンゴの入ってる箱に「ミカン」ってラベルを付けて「あの『ミカン』の箱取ってきて」って言う場合で、
動作に何か違いはあるか?
0376355
2008/10/28(火) 03:40:42>>とりあえず、test[j]だとどういう値になると思っているのか書いてみて。
エラーを、起こすとおもっていました。
>>どういう意図があって変数名を変えているのかなんて事、その参考書書いた奴にしかわからんと思うよ。
にかんしても、>>357->>357
int tmp = Integer.parseInt(str); //←ここに注目
test[i] = tmp;
と
test[i] = Integer.parseInt(str); //←ここに注目
も、作者の考え次第って事ですね
>>375
はぁ〜、そういう事でしたか
0377355
2008/10/28(火) 03:41:340378355
2008/10/28(火) 03:49:17中身は同じリンゴには、変わりありませんね
動作もラベルが違うだけで、動作自体同じです
0379デフォルトの名無しさん
2008/10/28(火) 10:00:200380デフォルトの名無しさん
2008/10/28(火) 10:02:56keyword> javac encoding
0381デフォルトの名無しさん
2008/10/28(火) 11:15:12質問させてください。
ArrayListクラスを使ったサンプルを見る度に、
次のような記述をよく見かけます。
List ls = new ArrayList();
基本情報技術者の試験問題に於いては、ArrayListクラスを生成する際、
頻繁にListインターフェイスが用いられています(上記の様な生成記述)。
『 ArrayList als = new ArrayList(); 』で良い気がするのですが、
Listインターフェイスを用いる事で、どの様な恩恵が受けられるのでしょうか?
ご存知の方、ご教授ください。よろしくお願いします。
0382デフォルトの名無しさん
2008/10/28(火) 11:32:35Listを用いる際に頻繁にArrayListのインスタンスを使用しているだけ
と考えると悩まずに済む、かも?
0383デフォルトの名無しさん
2008/10/28(火) 11:35:08後々何かの事情で LinkedList や CopyOnWriteArrayList や Vector に変えたくなっても
共通の List インタフェイスを使っていれば new の部分だけ変えれば済む
0384デフォルトの名無しさん
2008/10/28(火) 12:05:43アプレットで画像を読み込む時にやりたいのですが可能ですか?
0385デフォルトの名無しさん
2008/10/28(火) 12:18:290386デフォルトの名無しさん
2008/10/28(火) 12:30:05使いたいのはあくまでListであって、ArrayList型を使いたいわけではないから。
0387デフォルトの名無しさん
2008/10/28(火) 19:09:47Polymorphism の典型的なパターン
わからんかったらgoogleに聞きなさい
0388デフォルトの名無しさん
2008/10/28(火) 19:25:100389381
2008/10/28(火) 19:27:57遅レスになりました。ご教授ありがとうございます。
リスト構造の機能を提供してくれるクラスが多数用意されており、
それらがListインターフェイスを実装している。
何らかの事情により、現在使用しているリスト構造クラスから
別のリスト構造クラスへと乗り換える必要が発生しそうな可能性を持つ
プログラムを開発する時に、そのリスト構造クラスのインスタンスを
Listインターフェイスで初めから管理しておけば、乗り換えが発生した時の
移行が容易になるから。
と言う事ですね。今まで良く分からなかったインターフェイスの存在意義
ですが、少し見えてきた気がします。ありがとうございました。
0390デフォルトの名無しさん
2008/10/28(火) 19:31:06このポリモーフィズムはリストに限らず、いろんなんで使うから頭入れといたほうがいいよ。
デザインパターンとか、そのうちやるだろうけど。
0391デフォルトの名無しさん
2008/10/28(火) 19:44:44調べた限りだとメディアトラッカーは目的に即してないようですし
通常の非同期読み込みでもデータを受信している間は反応が無いようです
知りたいのは、画像が今全体の何%読み込まれているかという情報です
0392デフォルトの名無しさん
2008/10/28(火) 19:53:430393デフォルトの名無しさん
2008/10/28(火) 20:08:47詳細に関する情報を積極的に削除することで、
開発者が一度に管理しなければならない情報を減らすため。
この例で、ポリモーフィズム云々は言いすぎじゃまいか
0394デフォルトの名無しさん
2008/10/28(火) 20:38:38Javaゲーム作成総合スレ
http://pc11.2ch.net/test/read.cgi/gamedev/1225185820/
0395デフォルトの名無しさん
2008/10/28(火) 20:49:23ArrayList als = new ArrayList();で良い気がする
0396デフォルトの名無しさん
2008/10/29(水) 00:22:54ArrayList als = new ArrayList(); じゃダメな理由が良くわからん。
0397デフォルトの名無しさん
2008/10/29(水) 01:05:081,234から元の1234という数字を取得することはできるでしょうか。
よろしくお願いします。
0398デフォルトの名無しさん
2008/10/29(水) 01:14:13JFreeChartに関してなんですが、
ChartPanelをJFrameにaddして表示したときに、
ウィンドウサイズを変更するとチャート上の文字や線も
そのサイズに応じて太くなったり細くなったりしてしまいます。
JFrameのウィンドウサイズにかかわらずChartPanel上の文字や線の太さを
一定にしたいのですが、どうやってやるのかご存じの方いませんか?
0399デフォルトの名無しさん
2008/10/29(水) 01:43:04JFrameに一旦スクロールペインを貼って、そこに固定サイズのChartPanelを貼ればいいけど
多分そういう意味じゃないよね?
ちょこちょこっとオリジナルレンダラを作るしかないのでは
0400デフォルトの名無しさん
2008/10/29(水) 01:48:05int num;
double gas;
void show1(){ //メソッドを定義しておく
System.out.println("車のナンバーは" + num + "です");
System.out.println("ガソリンの量は" + gas + "です");
}
void show2(){ //メソッドを定義しておく
System.out.println("第二の車のナンバーは" + num + "です");
System.out.println("第二のガソリンの量は" + gas + "です");
}
}
0401デフォルトの名無しさん
2008/10/29(水) 01:49:40public static void main(String[] args) {
Car car1;
car1 = new Car();
car1.num = 1234;
car1.gas = 20.5;
Car car2;
car2 = new Car();
car2.num = 5678;
car2.gas = 21.6;
car1.show1();
car1.show1();
car2.show2();
car2.show2();
}
}
エラーを起こしてしまい、原因がわかりません
訂正お願いいたします
0402デフォルトの名無しさん
2008/10/29(水) 02:59:280403デフォルトの名無しさん
2008/10/29(水) 03:57:40ありがとうございます
0404デフォルトの名無しさん
2008/10/29(水) 03:58:41int num;
double gas;
void show1(){ //メソッド
System.out.println("車のナンバーは" + num + "です");
System.out.println("ガソリンの量はは" + gas + "です");
}
void show2(){ //メソッドを定義しておく
System.out.println("第二の車のナンバーは" + num + "です");
System.out.println("第二のガソリンの量は" + gas + "です");
}
void showCar(){
System.out.println("これらの情報を表示します");
show1();
show2();
}
}
0405デフォルトの名無しさん
2008/10/29(水) 03:59:37public static void main(String args[]){
Car car1;
car1 = new Car();
car1.num = 1234;
car1.gas = 20.5;
Car car2;
car2 = new Car();
car2.num = 5678;
car2.gas = 21.6;
car1.showCar(); //クラス外なので、特定が必要であり"caer1."が要る
}
}
0406デフォルトの名無しさん
2008/10/29(水) 04:04:41C:\sou>java Mikaiketu3
これらの情報を表示します
車のナンバーは1234です
ガソリンの量はは20.5です
第二の車のナンバーは1234です
第二のガソリンの量は20.5です
結果を
C:\sou>java Mikaiketu3_2
これらの情報を表示します
車のナンバーは1234です
ガソリンの量はは20.5です
第二の車のナンバーは5678です
第二のガソリンの量は21.6です
したいのですが、どうすればいいでしょうか?
因みに、クラス外でやるのではなく
car1.showCar();
car1.show1();
car2.show2();
このクラス内でやる場合です。
void showCar(){
System.out.println("これらの情報を表示します");
show1();
show2();
}
0407デフォルトの名無しさん
2008/10/29(水) 05:15:470408デフォルトの名無しさん
2008/10/29(水) 06:14:170409デフォルトの名無しさん
2008/10/29(水) 06:15:08正 C++すらろくに書けない数学者
0410デフォルトの名無しさん
2008/10/29(水) 09:14:23可能であれば、調節するための関数を教えていただけないでしょうか?
0411デフォルトの名無しさん
2008/10/29(水) 10:13:57右も左も分からないのですが、何から始めたらいいでしょうか?
いきなり難しい本を買ってもわからないと思います
アドレスお願いします
0412デフォルトの名無しさん
2008/10/29(水) 10:14:38javax.sound.sampled あたり見てみれば?
0413デフォルトの名無しさん
2008/10/29(水) 10:19:580414デフォルトの名無しさん
2008/10/29(水) 10:35:46プログラム初心者なら、まず「javaの絵本」
0415デフォルトの名無しさん
2008/10/29(水) 11:09:02シングルトンみたいにして使ってるんですがこれってよくないですか?
jsp では
<jsp:useBean id="dbProc" scope="application" class="proc.DbProcessor" />
servlet では
proc.DbProcessor dbProc = null;
synchronized (context) {
dbProc = (proc.DbProcessor) context.getAttribute("dbProc");
if (dbProc == null){
dbProc = new proc.DbProcessor();
context.setAttribute("dbProc", dbProc);
}
}
として使ってます。
DbProcessor はきちんと同期化されていると思います。
デメリットはgetのContextへのロックくらいだと思うんですが、
参照渡ししてるだけなのでさほどオーバヘッドにはなりづらいと考えています。
0416デフォルトの名無しさん
2008/10/29(水) 11:27:200417デフォルトの名無しさん
2008/10/29(水) 12:11:320418デフォルトの名無しさん
2008/10/29(水) 12:35:53javaの絵本ですか、ググってみます
0419デフォルトの名無しさん
2008/10/29(水) 12:50:06DBのトランザクションですか?
>>417
クラス変数を持たず、
メソッドの集まりみたいなクラスです。
また、どのような設計だとまずいでしょうか?
0420デフォルトの名無しさん
2008/10/29(水) 14:42:350421デフォルトの名無しさん
2008/10/29(水) 14:52:18(クラス変数でなくても)フィールドでConnectionを持っているとまずい。
Connectionのクローズ、トランザクションのコミット/ロールバックは
どこが責任を持つのか明確でないとまずい。
0422デフォルトの名無しさん
2008/10/29(水) 15:13:10pool はインストラクタで JNDI でコンテナから取得しています。
close commit rollback はメソッド内で完結させています。
0423デフォルトの名無しさん
2008/10/29(水) 15:27:150424デフォルトの名無しさん
2008/10/29(水) 15:29:330425デフォルトの名無しさん
2008/10/29(水) 15:31:01インストラクタ(笑)でDataSourceの取得に失敗すると
インスタンス化そのものに失敗するので、そのあたりの例外のハンドリングができていればね。
あとは、Servletでコネクションをどうこうするのが気持ち悪いと思わなければ、
0426デフォルトの名無しさん
2008/10/29(水) 15:48:43RuntimeExceptionが発生するようにしてあります。
DB処理の部品をContextに持たせて使いたいときに使うって言うイメージなんですが、
普通はどうやって実装するんでしょうか?
0427デフォルトの名無しさん
2008/10/29(水) 16:33:25としようとしてDataEnterFrame extends JFrameだった場合、containerに(JFrameの親の親)windowは
addingできませんって怒られるんですけど、JTableのエディタにJFrameを指定することってできないんですか?
仕方がないのでsetCellEditor(new DataEnterPanel())//DataEnterPanel extends JPanelしたら今度は
DataEnterPanelのがJTableの該当セル1つ分の大きさまでしか表示してくれないんですが
どうすればうまくいくでしょうか?
0428デフォルトの名無しさん
2008/10/29(水) 17:07:08ボタンでも入れておいてそれ押したらダイアログ出すとかすればいいんじゃないか?
0429デフォルトの名無しさん
2008/10/29(水) 18:03:23少し違うんですけど、結局setCellEditorで呼び出されるのは
セル上の描画だからWindow(or Frame)は呼べなくて、
エディタでsetValueAtするComponentを呼びつつreturn nullする
って方向でもいいのかな?
これでモーダルにできたらとりあえずよさそうです
そういえばdialogもwindowなのになんで怒られないんだ
最初chooserができるんだから普通にできると思ったんだけどchooserもdialogだったな
0430デフォルトの名無しさん
2008/10/29(水) 20:13:03空の配列a(動的)に加える操作ってどうやるんですか?
またそのオブジェクトでパブリックしたint型変数k(初期値0)を、
こんなイメージで操作できますか?
a[0].k=1
0431デフォルトの名無しさん
2008/10/29(水) 20:15:45public class Test { public static void main(String[] args) {
MyObject[] a = new MyObject[1];
a[0] = new MyObject();
a[0].k = 1;
}}
0432デフォルトの名無しさん
2008/10/29(水) 20:34:42動的にしたいのでa配列の要素数の初期値は不定でお願いします。
また引数ありのコンストラクタMyObjectにしたいです。
0433デフォルトの名無しさん
2008/10/30(木) 00:03:51書店でjavaの本を探してみたのですが、
ホームページで利用する事を目標にした本しか見つけられず困っています。
出来るだけサーバーへのアップはせずに作りたいのですが…
javaでカレンダーを作るとき
どのような本やサイトを見ると良いか、教えていただけないでしょうか。
プログラム自体全く未経験で初めて触れるので
解りやすいものだと嬉しいです。
初心者以前の質問で申し訳有りませんが、よろしくお願いします。
0434デフォルトの名無しさん
2008/10/30(木) 00:51:46何か問題が起きるのでしょうか?
0435デフォルトの名無しさん
2008/10/30(木) 00:53:180436デフォルトの名無しさん
2008/10/30(木) 00:57:39そうなんですか?競合して描画がおかしくなったりするのかと
思ってました。
0437デフォルトの名無しさん
2008/10/30(木) 01:13:56実際におかしくなったのかい?
もしそうなら問題を起こすサンプルを
0438デフォルトの名無しさん
2008/10/30(木) 04:04:03クラスパス通さなくてもロードされると思うんですが、
jre/lib/extに相当するディレクトリを変更したり、
増やしたりってできないんでしょうか。
なんでもかんでもjre/lib/extに置いていってるので、
ディレクトリの中がぐちゃぐちゃになってしまっています。
0439デフォルトの名無しさん
2008/10/30(木) 04:31:06今、Javaのクラスについて学んでいて、わからない事があります
クラスのメソッドを呼び出すときに、引数渡すのと、
渡さないで呼び出すのがありますが、違いがわかりません
0440デフォルトの名無しさん
2008/10/30(木) 06:27:56改善策を教えてください。
public void actionPerformed(ActionEvent e){
OtherMethod();
}
public void OtherMethod(){
.
.
.
}
0441デフォルトの名無しさん
2008/10/30(木) 07:38:53actionPerformedが呼ばれないというのであれば
・ActionListenerが継承されていない
・GUI側で生成されたコンポーネントに対してリスナが登録されていない、又は異なるリスナが登録されている
・実はOtherMethod()が何もせずに処理を戻している
くらいかな?(とエスパーしてみる)
0442デフォルトの名無しさん
2008/10/30(木) 08:39:39説明不足ですいません。
public void actionPerformed(ActionEvent e){
Button bt = (Button)e.getSource();
}
と記述すればエラーを吐かないけど、
OtherMethod内にButton〜..記述した際に、どのような記述をすればいいのかが分からないのです。
>*: シンボルを見つけられません。
>シンボル: 変数 e
とエラーを吐く。
すごく根本的な事だと思うんですが、よろしくお願いします。
0443デフォルトの名無しさん
2008/10/30(木) 09:37:20引数でOtherMethodにActionEvent eなりButton btなりを渡してやればいい。
0444デフォルトの名無しさん
2008/10/30(木) 10:58:260445デフォルトの名無しさん
2008/10/30(木) 10:59:14a = Arrays.copyOf(a, a.length + 1);
a[a.length - 1] = new MyObject(1, 2, 3);
0446デフォルトの名無しさん
2008/10/30(木) 10:59:31could not open 'C:\Program Files\Java\jre1.6.0_07\lib\i386\jvm.cfg
と出てきます。
何故1.6.0_07が出てくるのか分からないですが、
どうすればいいのでしょうか。
よろしくお願いします。
0447デフォルトの名無しさん
2008/10/30(木) 11:14:500448デフォルトの名無しさん
2008/10/30(木) 11:54:20メソッドの中身をみてみりゃわかるでしょ。
使わないなら引数を渡さなくていい。
使うなら渡す。
それに何の疑問が?
0449デフォルトの名無しさん
2008/10/30(木) 13:19:32・最近のメーカー製PCには自社アプリで使うためによくJRE6が元から入ってる。
・ネット中にJREが古いからインスコされた
0450446
2008/10/30(木) 15:17:32有難うございます。
外でプログラムが組みたくて五万円のPCに
図書館でCDR付きのJAVAの本を借りてダウンロードしてみたんですが、
ネカフェでは出来たのにダメでした。
0451デフォルトの名無しさん
2008/10/30(木) 15:19:08Process process = Runtime.getRuntime().exec("start cmd");
を実行するとIOExceptionが発生してしまいます
コマンドプロンプト上でstart cmdと入力すれば問題なく二つ目が起動するのですが・・・・・・
どういう事が考えられるでしょうか
0452デフォルトの名無しさん
2008/10/30(木) 15:47:17Runtime.getRuntime().exec(new String[]{"cmd", "/K", "start", "cmd"});
startはcmdの中にしか存在しないコマンドなので直接startを呼び出すことはできない
0453デフォルトの名無しさん
2008/10/30(木) 15:51:53つまりcmd /k startでも可。
0454デフォルトの名無しさん
2008/10/30(木) 15:59:45なるほど、できました!!
ありがとうございます
0455デフォルトの名無しさん
2008/10/30(木) 17:26:16これと同じようなことをstaticメソッド内で行うにはどうすれば?
0456デフォルトの名無しさん
2008/10/30(木) 17:30:490457デフォルトの名無しさん
2008/10/30(木) 17:40:28ありがとう。
やりたいことが「クラス名の取得」なので、
それを行うコードにクラス名が出てくるのは何か変な感じがするけど、
そういうものなのかな?
0458デフォルトの名無しさん
2008/10/30(木) 19:33:19静的に定まっているクラスのClassインスタンスを得るなら、
.classを使うのが一番簡単だし特におかしいということはない。
間違って存在しないクラスのClassインスタンスを得ようとすれば
コンパイル時にエラーを吐いてくれるし。
クラス名を何らかの理由で変更する時にMyClass.classの記述部分も変えないといけないのが面倒だが、
変更の手間を少なくする手法はいろいろある。
ただ、動的にClassインスタンスを得たいということは当然あり得るので、
ClassクラスにはforNameというスタティックメソッドがあって、
Stringでクラス名を指定して、そのClassインスタンスを得ることはできる。
0459133
2008/10/30(木) 23:23:25関数の呼び出し回数とか、HDDのreadが遅いのかThreadSleepなのかとか気になると思うんだけど
0460デフォルトの名無しさん
2008/10/31(金) 01:37:49ググるとリプリケートは出てくるんですが
0461460
2008/10/31(金) 01:41:51war間での認証情報が共有できず悩んでいます
0462デフォルトの名無しさん
2008/10/31(金) 12:07:25元々の目的であるクラスの名前そのものが分かっているのだから、
わざわざClassインスタンスを取得するような回り道は変な感じがするのは当然だけど、
クラスの名前が確定していなくて変更する可能性があり、
直接そのクラス名をソース中に入れると後が面倒かもと気にするような場合であれば、
public class ChangeableNameClass {
private class UnchangeableName {}
static {
System.out.println(UnchangeableName.class.getEnclosingClass().getName());
}
}
のように名前を変更することのないダミーの内部クラスを作って、
それを囲うクラスのClassインスタンスを取得するという手もある。
0463デフォルトの名無しさん
2008/10/31(金) 12:16:34a.b.cというパッケージをつくったとするとします。
そうすると
aという欄と、a.bという欄とa.b.cという欄が別々にできてしまいます。
そこで、aを選んでaの中のbを選んでbの中のcを選ぶようにはできませんか?
もう一つ質問します。eclipseでジャバアプレットを作るときに
一つのjavaファイルに使うクラスをクラスを全部書き込むようなことできますか?
本当にこまっています。よろしくおねがいします。
0464デフォルトの名無しさん
2008/10/31(金) 12:27:03パッケージというのはそういうもの。a.bの中にcが入ってるのではなく,a.b.cという名前のパッケージなの
>一つのjavaファイルに使うクラスをクラスを全部書き込む
全てのクラスを一つの大きなクラスの中にネストしたクラスとして書く
超頭悪いやり方だから全くお勧めしない
0465デフォルトの名無しさん
2008/10/31(金) 12:34:41後半の質問はちょっと勘違いされたようなので、別の言い方でいうと、
別々につくったclassファイルをコンパイルすると別々のjavaファイルにならないで
一つのjavaファイルにすることは出来ますか?
ということです。
0466デフォルトの名無しさん
2008/10/31(金) 12:46:35classファイルをコンパイルしてjavaファイルを作るのかよwwwww
classファイルをまとめたいならjar使えよp
0467デフォルトの名無しさん
2008/10/31(金) 12:47:12javaコマンドは認識されるのに
javacコマンドは認識されない。
この差は何なんですか?
いずれもjdk/bin直下のコマンドですよね。
0468デフォルトの名無しさん
2008/10/31(金) 12:49:13eclipseにありませんか?
0469デフォルトの名無しさん
2008/10/31(金) 12:51:46たぶんその認識されているjavaコマンドはJREの方が認識されている。
もう一度パスを確認してJDKのbinディレクトリに通っているか見てみて。
javacはJDKの所にしか存在しないが、javaの方はそこ以外にも存在する場合がある。
0470デフォルトの名無しさん
2008/10/31(金) 12:55:140471デフォルトの名無しさん
2008/10/31(金) 12:57:370472467
2008/10/31(金) 12:58:59なるほど、JREの方にもjavaコマンドがあったんですね。
確かに実行環境のコマンドであればインストール後にすぐ使えるべきですね。
環境変数など見る限りではどうやってJREのパス見てるのか分からなかったけど裏でうまくやってるのかな?
0473デフォルトの名無しさん
2008/10/31(金) 13:00:060474デフォルトの名無しさん
2008/10/31(金) 13:00:56windowsだったらwindows\system32にもjava.exeがインストールされていて、
設定にもよるが一番新しいバージョンのjreが使用される。
0475デフォルトの名無しさん
2008/10/31(金) 13:07:09OSによると思うんだけど、
例えばwindowsならpublic JREをJDKと一緒にインストールすると、
%windir%/system32にjavaコマンドがインストールされる。
普通デフォルトで%windir%/system32にはパスが通っているはずなので、
そのjavaコマンドが使われる。
複数のJDKやJREをインストールしている時はパスでの指定順序を気にしていないと、
思わぬ場所のコマンドが使用されたりするから気をつけて。
0476デフォルトの名無しさん
2008/10/31(金) 13:08:44別々に作ったjavaファイルを内部クラスにして一つのjavaファイルにして
コンパイルして一つのclass ファイルにしたいです。
0477デフォルトの名無しさん
2008/10/31(金) 13:11:35%windir%/system32でなく%windir%\system32だね
0478467
2008/10/31(金) 13:12:37>>475
windows/system32にjavaコマンドありました。
こんな仕組みがあったとは…とても勉強になりました。
丁寧にありがとうございました!
0479デフォルトの名無しさん
2008/10/31(金) 13:14:49内部クラスも取り囲むクラスとは別に .class 作る。
jar ではダメなん?
0480デフォルトの名無しさん
2008/10/31(金) 13:18:170481デフォルトの名無しさん
2008/10/31(金) 13:19:49classファイルは何のファイルと思ってるんだ?100回classファイルを音読しろ
まとめたい全てのクラスをリファクタリングというか難読化して全てのクラスのフィールドとメソッドをひとつのクラスにまとめてしまえ
オブファスケータによってはそういう手法を行うものもある
>>479
>>476は使い方を知らないとかかもしれん
0482デフォルトの名無しさん
2008/10/31(金) 13:22:27クラスファイルにソースファイルの全ての情報が保持されているわけではないから完全には戻せない
0483デフォルトの名無しさん
2008/10/31(金) 13:24:06取り囲むクラスの意味がわかりません。くわしくおねがいします。
>>481
クラスファイルとは実行ファイルとおもっています。
0484デフォルトの名無しさん
2008/10/31(金) 13:26:56何をやりたいのかもう一回考えをまとめてからレスしてください。
0485デフォルトの名無しさん
2008/10/31(金) 13:30:47やりたいこと。
javaファイルを沢山使ったアプレットを作って
ホームページに乗せたい。
そのときホームページにjarファイルは置きたくないので。
classファイル一つを置いて、HTMLファイルにはファイル名.classと書きたい。
0486デフォルトの名無しさん
2008/10/31(金) 13:31:52すべての処理をひとつのクラスで完結させる。内部クラスもenumも一切なしで。
0487デフォルトの名無しさん
2008/10/31(金) 13:33:24素直に出来ないでなっとくするのに
回りくどい言い方するのがよくないです。
これは回答側の意見なので気にしないでください。
では!!
0488デフォルトの名無しさん
2008/10/31(金) 13:37:120489デフォルトの名無しさん
2008/10/31(金) 13:39:08知識をひけらかすよりも、できる、できない。
これのみ言えばいいんだよ。
なぜできないか等は、それはオマケだよ。
オマケは回答者が希望したときのみ与えればヨシ!
0490デフォルトの名無しさん
2008/10/31(金) 13:41:080491デフォルトの名無しさん
2008/10/31(金) 13:45:13病気なので気にしないでください。
0492デフォルトの名無しさん
2008/10/31(金) 13:51:50.class ファイルを 文字列リテラルにして詰め込んどいて
extends ClassLoader して
文字列リテラル
-> String#getBytes(String) でバイト配列化
-> ClassLoader#defineClass(byte[], int, int) でロード
とかやれば、出来ない事もない。
文字列リテラルの長さ制限と 1クラスが持てる定数の最大数の制限受けるから
限界まで詰め込もうと思ったらもっと複雑怪奇になるような気がするけど。
0493デフォルトの名無しさん
2008/10/31(金) 14:01:42>>485 だとアプレットでしょ。
extends Applet しないといけないからそれじゃ無理
0494デフォルトの名無しさん
2008/10/31(金) 14:50:20Java5と言う人がいたりJava1.5と言う人がいますよね。
たとえば今自分のPCにはJDK 5.0 Update 11が入っていますが、
Java5
Java5.0
Java5.11
Java1.5
Java1.5.0_11
一般的にはどの書き方を使うのでしょうか?
0495デフォルトの名無しさん
2008/10/31(金) 15:04:30http://java.sun.com/j2se/1.5.0/docs/relnotes/version-5.0.html
0496デフォルトの名無しさん
2008/10/31(金) 15:30:07良い質問をしないと、良い答えは返ってこない。
毎日ご飯を食べる前に唱えようね。
0497デフォルトの名無しさん
2008/10/31(金) 15:42:120498デフォルトの名無しさん
2008/10/31(金) 20:24:49今Servletを学んでいるのですが
PrintWriter out = response.getWriter( );
out.println("Hello!");
というのがよく理解できません
参考書には、getWriter( )メソッドで文字列出力用のPrintWriter( )オブジェクトを取得し,
println( )メソッドで文字列を書きこんでいると書いてあります。
つまりresponse.getWriter( )は PrintWriter out = new PrintWriter( )
をおこなっているという事ですか?
0499デフォルトの名無しさん
2008/10/31(金) 20:49:37newで作成されたインスタンスが返されているとは限らない。
内部でゴチャゴチャやっているかも。
0500>>498
2008/10/31(金) 21:09:58PrintWriter 型の outフィールドを定義しているだけですよね?
インスタンスを生成する際には、フィールドの型にあわせないといけないから、
response.getWriter( )によって返される値は、様々な処理を経て、
PrintWriter型に合わせられているという事ですか?
0501デフォルトの名無しさん
2008/10/31(金) 21:22:00おそらく、responseインスタンスのフィールドが
反映された PrintWriterのインスタンスが返されて、
outはそれを受けているんじゃないかな。
だから、getWriteメソッドの返り値は当然、PrintWrite型だろうね。
public PrintWriter getWriter(){
ってこと。
new PrintWriter()だと
コンストラクタを使ったまっさらなインスタンスが返されるけど、
getWriter()を使うことによって、
インスタンスにたいしてなんらかの処理が施された
インスタンスが返されている可能性が高いと思います。
デザインパターンでいうところのstatic factoryパターンかもしれませんけど。
0502>>498
2008/10/31(金) 21:42:53なるほど、なんとなくですが理解できたような気がします。
どうやらgetWriter( )メソッドはなんらかの処理を施してはいるが、
我々使用者はあまり意識する事なく使ったほうがよさそうですね。
PrintWriter out = getWriter( )
と宣言すれば
out.println( )
で文字が出力できると、それ単体で覚えたほうがいいのかもしれませんね。
わざわざ説明ありがとうございました。
0503デフォルトの名無しさん
2008/10/31(金) 21:43:00中で何かしたいんだろうねぇ、やはり。
0504デフォルトの名無しさん
2008/10/31(金) 23:53:02クライアントからURL(HTTP)で示されるWebサーバ上のファイルが
存在するかどうかを確認できるメソッドってあるんでしょうか?
存在確認って以下を想定しています。
1.サーバ(www.abc.abc)が存在するかどうか
2.サーバは見つけたけどファイル(http://www.google.com/abc.zip)が存在するかどうか
URLとかURLConnectionとか見たんですが見つけられませんでした。
URLConnection#connectするときに例外を取るしかないんでしょうか?
ヒントでもいいのでお願いします。
今は http://www.abc.abc/abc.zip に接続しようとして
例外:UnknownHostException が発生している状態です。
例外を発生させず、予め存在するのかどうか確認したいんです。
0505デフォルトの名無しさん
2008/11/01(土) 01:58:220506デフォルトの名無しさん
2008/11/01(土) 04:01:05(1) フィールドをprotectedにする,
(2) フィールドはprivateにして,親クラスにprotectedなアクセッサーメソッドを作成する,
のどちらが良いのでしょうか?
0507デフォルトの名無しさん
2008/11/01(土) 04:18:09ありがとうございます。早速試してみました。
ファイルの有無は確認できるようですが、
サーバの有無は確認できないようでした。
《ソース》
public class Test01 {
public static void main(String[] args) {
try {
FileSystemManager manager = VFS.getManager();
FileObject fileObject = manager.resolveFile(args[0]);
if (fileObject.exists()) System.out.println(fileObject.getURL() + " は存在します。");
else System.out.println(fileObject.getURL() + " は存在しません。");
fileObject.close();
} catch (Exception e) {
e.printStackTrace();
}}}
《結果》
1.http://www.abc.abc/
org.apache.commons.vfs.FileSystemException: Could not connect to HTTP server on "www.abc.abc".
Caused by: java.net.UnknownHostException: www.abc.abc
2.http://www.google.com/abc.zip
http://www.google.com/abc.zip は存在しません。
・・・すみません。
VFSじゃなくてtryすることにします・・・
0508デフォルトの名無しさん
2008/11/01(土) 10:56:10自分で、mypackage.Randomクラスを作って、
import java.util.*;
import mypackage.*;
としてRandomを呼び出すとどうなるんですか?
0509デフォルトの名無しさん
2008/11/01(土) 11:01:410510デフォルトの名無しさん
2008/11/01(土) 11:08:14言語仕様に則ってれば、曖昧なのでコンパイルエラーにしかならん。
0511デフォルトの名無しさん
2008/11/01(土) 11:21:38めんどくっさー
>>510
ありがとうございます。
なるほどコンパイルエラーですか。
なんかjavaはここら辺の仕組みって汚いですよね。
自分でももっとスマートに作れそうだ。
0512デフォルトの名無しさん
2008/11/01(土) 11:25:44ス マ ー ト (笑)
0513デフォルトの名無しさん
2008/11/01(土) 12:00:59アタシがつるんでる友達は援助交際をやってるミキ、学校にナイショで
キャバクラで働いてるユウカ。訳あって不良グループの一員になってるアキナ。
友達がいてもやっぱり学校はタイクツ。今日もミキとちょっとしたことで口喧嘩になった。
女のコ同士だとこんなこともあるからストレスが溜まるよね☆そんな時アタシは一人で繁華街を歩くことにしている。
がんばった自分へのご褒美ってやつ?自分らしさの演出とも言うかな!
「あームカツク」・・。そんなことをつぶやきながらしつこいキャッチを軽くあしらう。
「カノジョー、ちょっと話聞いてくれない?」どいつもこいつも同じようなセリフしか言わない。
キャッチの男はカッコイイけどなんか薄っぺらくてキライだ。もっと等身大のアタシを見て欲しい。
「すいません・・。」・・・またか、とセレブなアタシは思った。シカトするつもりだったけど、
チラっとキャッチの男の顔を見た。
「・・!!」
・・・チガウ・・・今までの男とはなにかが決定的に違う。スピリチュアルな感覚がアタシのカラダを
駆け巡った・・。「・・(カッコイイ・・!!・・これって運命・・?)」
男はホストだった。連れていかれてレイプされた。「キャーやめて!」ドラッグをきめた。
「ガッシ!ボカッ!」アタシは死んだ。スマート(笑)
0514デフォルトの名無しさん
2008/11/01(土) 12:01:14>自分でももっとスマートに作れそうだ。
どうやんのか興味あるから教えてよ
0515デフォルトの名無しさん
2008/11/01(土) 12:42:30変える必要のない設計ってどうんあものなんでしょ?
0516デフォルトの名無しさん
2008/11/01(土) 13:10:09update 7 に戻すと想定どおりなんです。
GraphicsDevice クラスを使ってるんですけど
DirectX 10 がどうのこうのってリリースノートに書いてあるから
そのあたりに何かあるんだとは思うんですが。。
eclipse から実行する際は JRE のバージョン切り替えられるんですが、
普通に OS に関連づけられている JRE のバージョンを切り替える
(つまり、update 10 じゃなくて update 7 を使う)
にはどうすればいいんでしょうか?
0517デフォルトの名無しさん
2008/11/01(土) 13:24:50C:\Program Files\Java 以下のバイナリに直接関連付ければいいんじゃね?
0518517
2008/11/01(土) 13:38:16自作アプリの起動は、バッチファイルから
java -Xmx***m -jar ***.jar
として起動しているので、(大きいメモリ確保が必須なので)
パスが通っている(?)java.exe が使われるみたいなんです。
コマンドラインから java で起動する JRE のバージョンを切り替える
ことができれば解決すると思うんですが、どうしたらいいでしょうか?
Windows にあまり詳しくないもので。。
0519デフォルトの名無しさん
2008/11/01(土) 13:51:27a) C:\Program Files\Java\jre1.6.0_07\bin にPATHを通す。
b) javaをフルパスで書く。"C:\Program Files\Java\jre1.6.0_07\bin\java" ...
(ファイル名/ディレクトリ名に空白がある場合はダブルクォートでくくるのを忘れないように)
どちらでも好きな方を。
0520デフォルトの名無しさん
2008/11/01(土) 17:06:38TCP/IP使った方がいい?RMI使った方がもっと便利??
RMIは良く知らないのでついでに勉強してみたい気もするんだけど。。
詳しい人教えて。Javaでネットワーク組むの初めてだもんだから。
0521デフォルトの名無しさん
2008/11/01(土) 17:11:090522520
2008/11/01(土) 17:14:090523デフォルトの名無しさん
2008/11/01(土) 17:39:55サーバーとしか通信できないようになっています
ですから、P2Pの通信というのはできないと思うのですが、
BitLetというファイル共有のappletが存在します
いったいどうやってP2Pを実現させているのでしょうか?
0524デフォルトの名無しさん
2008/11/01(土) 17:54:54それはデフォルトの話でしょ。
署名されてるアプレットとか、
ユーザが自分の環境の policy ファイル弄ったりすれば
アプレットでも自由に通信したりクライアントPCのファイルに触ったりできる。
普通は署名アプレットだね。実行していいか確認のダイアログでたりするけど。
金ない場合はオレオレ署名アプレット。
0525デフォルトの名無しさん
2008/11/01(土) 19:40:17http://localhost:8080/
とアクセスすると
webappsの直下にデフォルトで入っているROOTという
アプリケーションを表示しているようなのですが、
これはどこかの設定ファイルで関連付けをされているのでしょうか?
例えば、自分でwebapps/myappを作り、
http://localhost:8080/ でmyappを表示させることは可能ですか?
0526デフォルトの名無しさん
2008/11/01(土) 20:12:21あるコマンドの出力を直接ソースに取り込む方法ってない?
c とかだとこんなイメージ...
=== static な配列に押し込みたいデータの中身だけ作る
$ [適当なコマンド] [元データ > inc.h
=== 出来上がった inc.h
"aaaaa", "BBBB", ....
=== C のコード
String[] xTab = {
# include "inc.h" // inc.h の内容をここにまんま展開したい
};
0527デフォルトの名無しさん
2008/11/01(土) 20:44:22javaのソースにbccのプリプロセッサ使えたりするが?
まあ適当にスクリプト書くのが一番だろう。
0528デフォルトの名無しさん
2008/11/01(土) 21:21:58この点を (x、 y) 座標平面上の指定された位置に移動します。
void setLocation(int x, int y)
この点を指定された位置に変更します。
http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/awt/Point.html
Pointクラスのこの2つのメソッドは、どのように使い分けるべきなんでしょうか?
0529デフォルトの名無しさん
2008/11/01(土) 21:27:35move
この点を (x、 y) 座標平面上の指定された位置に移動します。このメソッドは setLocation(int, int) と同じです。
同じです。
0530デフォルトの名無しさん
2008/11/01(土) 21:32:07アッー!どうも失礼しました
0531デフォルトの名無しさん
2008/11/01(土) 22:08:29Mac の Look&Feel を使うことってできますか?
0532デフォルトの名無しさん
2008/11/01(土) 23:09:16正常にDL、インストール出来ていてポートも使用してない番号のはずなんですが他に原因考えられることありますか?
JDKのpathは設定したんですがTomcat入れる時も別にpathの設定って必要ですか?
初心者な質問すいませんがわかる方いたらお願いします
0533デフォルトの名無しさん
2008/11/01(土) 23:57:53ScannerクラスのnextInt関数を使って、キーボードから整数値の入力を行う
プログラムを作ろうとしています。その際に、正常な値(整数値)が入力されるまで
再入力を促す仕組みを設けたいのですが、下記プログラムでは希望する結果を得る事が
できませんでした。
int iInput = 0;
boolean input_ok = false;
Scanner scan = new Scanner(System.in);
while( ! input_ok ){
try {
System.out.print("整数値を入力してください -> ");
iInput = scan.nextInt();
input_ok = true;
}
catch(Exception e){
System.out.print("入力に不備がありました。 再度");
}
}
このプログラムを実行し、『3.2』などの実数値を入力すると、プログラムが暴走を始めます。
原因と解決方法をご存知の方が居られましたら教えてください。よろしくお願いします。
0534デフォルトの名無しさん
2008/11/02(日) 00:26:10Scanner#nextInt
> 次のトークンを有効な int 値に変換できない場合、
> このメソッドは InputMismatchException をスローします。
> 変換に成功すると、スキャナは一致した入力の先に進みます。
失敗した文字を自分で読み飛ばさないとダメ。
0535デフォルトの名無しさん
2008/11/02(日) 00:49:23暴走の原因は、『変換されずに残っている入力』だったのですね。
プログラムを下記の様に書き換えて、その場を凌ごうかと思っていましたが、
変換に失敗した文字を読み飛ばす手段があるのですね。早速探してみます。
ありがとうございました。
int iInput = 0;
boolean input_ok = false;
while( ! input_ok ){
try {
System.out.print("整数値を入力してください -> ");
Scanner scan = new Scanner(System.in);
iInput = scan.nextInt();
input_ok = true;
}
catch(Exception e){
System.out.print("入力に不備がありました。 再度");
}
}
0536デフォルトの名無しさん
2008/11/02(日) 01:23:46このような画像を作りたいのですが
立体画像生成未経験の場合、まずどんなスキルから学ぶべきでしょうか
0537デフォルトの名無しさん
2008/11/02(日) 04:17:13今あるJava知識しだいじゃね?
0538デフォルトの名無しさん
2008/11/02(日) 07:51:19これ4次元? 5次元?
描画は>>537の言うとおりでいいけど。3次元への投影が必要になる。
まぁ、3次元空間を2次元のディスプレイに投影するのと理屈は一緒だけど。
ぐぐったら正八胞体で出てきた。
0539デフォルトの名無しさん
2008/11/02(日) 10:03:11public main()
{
String a, b, c;
a = null; b=""; c="1";
System.out.print("La=" +a.getLength()+ " Lb="+b.getLength()+" Lc="+c.getLength());
}
の出力ってどうなるんでしょうか? aがnullなので例外発生でしょうか?
どうぞよろしくお願いします。
0540デフォルトの名無しさん
2008/11/02(日) 11:44:28>aがnullなので例外発生でしょうか?
そのとおり
0542デフォルトの名無しさん
2008/11/02(日) 12:49:09なんでそんなことが知りたいの?
0543デフォルトの名無しさん
2008/11/02(日) 13:00:29情報関係の資格試験の勉強をしていて、ネットで
上のような問題に遭遇した次第です。
0544デフォルトの名無しさん
2008/11/02(日) 14:19:51プログラミングの勉強は実際に自分で作成して動かしてみることが基本だよ
頭の中だけで妄想しても身に付くものはほとんどない
0545デフォルトの名無しさん
2008/11/02(日) 14:43:24String に getLength なんてメソッドはないからコンパイルエラーじゃないか?
0546デフォルトの名無しさん
2008/11/02(日) 16:36:45試験に合格するだけなら紙の上での仕様を理解していれば
十分じゃないか?俺は昔CASLを一度も動かしたことがなく
ても情報処理の一種や二種に余裕で合格したぞ。
0547デフォルトの名無しさん
2008/11/02(日) 16:57:19実践で使い物になるかは別にして。
0548デフォルトの名無しさん
2008/11/02(日) 17:24:09iアプリ開発をしているのですが、画像が読み込めません・・・
ビルドは成功するのですが、"Unknown media image format"と出て実行できません。
詳細を書きますと
(前略)
Image img_title_0;
Image img_title_1;
(中略)
public Image loadImage(String name) {
MediaImage mImg = null;
Image img = null;
try {
mImg = MediaManager.getImage("resource:///" + name + ".gif");
mImg.use();
img = mImg.getImage();
}
catch(ConnectionException ce) {
if(mImg != null) {
mImg.unuse();
mImg.dispose();
}
throw new RuntimeException(ce.getMessage());
}
return img;
}
(中略)
0549>>548の続き
2008/11/02(日) 17:25:21public void paintTitle() {
img_title_0 = loadImage("title_0");
img_title_1 = loadImage("title_1");
draw(true);
setColor(0, 0, 0);
fillRect(0, 0, AREA_WIDTH, AREA_HEIGHT);
drawImage(img_title_0, 0, 0);
drawImage(img_title_1, 0, 0);
setColor(255, 255, 255);
if(frameCount%2 == 0) {
// 点滅処理
drawString("PUSH SELECT KEY !", 10, 180);
}
draw(false);
}
(後略)
こんな感じです。
画像はペイントで書いたものをresフォルダにGIF形式で保存しています。
一応「"Unknown media image format" java」でググッたのですが、まともなページがなくて解決できませんでした。
初歩的な質問で申し訳ありませんが、よろしくお願いします。
長文失礼しました。
0550デフォルトの名無しさん
2008/11/02(日) 17:38:410552デフォルトの名無しさん
2008/11/02(日) 18:01:01App"l"ication.
0553>>548
2008/11/02(日) 19:05:23ありがとうございました
0554デフォルトの名無しさん
2008/11/02(日) 20:26:02エロゲメーカーマップ
0555デフォルトの名無しさん
2008/11/02(日) 22:04:33とても抽象的な質問なので、思いついたのをちょちょっと書いて頂けたら幸いです。
0556デフォルトの名無しさん
2008/11/02(日) 22:09:03同時にアクセスするな。
0557デフォルトの名無しさん
2008/11/02(日) 22:28:09class Car{
int num;
double gas;
void setNumGas(int n, double g){
num = n+1;
gas = g+1;
System.out.println("車のナンバーを" + num + "にガソリンの量を" + gas + "にしました");
}
int getNum(){ //int型の値を返すメソッドです
System.out.println("ナンバーを調べました");
return num; //呼び出し元に値を返します
}
double getGas(){ //double型の値を返すメソッドです
System.out.println("ガソリンの量を調べました");
return gas; //呼び出し元に値を返します
}
void show(){
System.out.println("車のナンバーは" + num + "です");
System.out.println("ガソリンの量は" + gas + "です");
}
}
0558デフォルトの名無しさん
2008/11/02(日) 22:30:08public static void main(String args[]){
Car car1 = new Car();
car1.setNumGas(1234, 20.5);
int number = car1.getNum(); //戻り値を持つメソッドを呼び出します、戻り値を変数numberに代入します
double gasoline = car1.getGas(); //戻り値を持つメソッドを呼び出します、戻り値を変数gasolineに代入します
System.out.println("サンプルから車を調べたところ");
System.out.println("ナンバーは" + number + "ガソリンの量は" + gasoline + "でした");
car1.show();
}
}
この、ソースで
private int num;
private double gas;
とにしても、アクセスできてしまうのは何故でしょうか?
0559デフォルトの名無しさん
2008/11/02(日) 22:31:47class Car{
private int num;
private double gas;
void show(){
System.out.println("第二の車のナンバーは" + num + "です");
System.out.println("第二のガソリンの量は" + gas + "です");
}
}
public class Sample4_1 {
public static void main(String[] args) {
Car car1 = new Car();
car1.num = 1234;
car1.gas = 20.5;
car1.show();
}
}
0560557-559
2008/11/02(日) 22:33:090561デフォルトの名無しさん
2008/11/02(日) 22:50:18あー、それ、初心者の時混乱するよね。
privateって「他のクラスからアクセスできない」ってわけじゃないんだよ。
「他のクラスから”直接”アクセスできない」ってことなんだ。
Aのクラスの中のprivateなメンバは、Aのクラスのインスタンスからならアクセスできるんだよ。
Car car1 = new Car();で クラスCarのインスタンスcar1を作ったから
car1.num(Carのインスタンスcar1の持っているnum)と書けばアクセスできるんだ。
>>558では、それをクラスMikaiketu5_2のふつーのメンバ(int numとか)に渡してる。
System.out.println(num); の中のnumは
「クラスCarのインスタンスcar1の持っているnumを、Mikaiketu5_2のふつーのnumに渡したやつ」なんだよ。
わかった?
これがわかれば>>559がアクセスできない理由もわかるよね。
0562デフォルトの名無しさん
2008/11/02(日) 23:11:36レス、ありがとうございます
う〜ん、難しい・・・・もう少し考えて見ます・・・
0563デフォルトの名無しさん
2008/11/02(日) 23:26:550564デフォルトの名無しさん
2008/11/02(日) 23:30:24マウスのポインタの位置と描いた矩形の位置がズレてしまいます。
0565564
2008/11/02(日) 23:31:15{
point.x = e.getX(); //押した点の座標を保存
point.y = e.getY();
}
public void mouseReleased(MouseEvent e) //マウスを放すと呼ばれる
{
int x = point.x;
int y = point.y;
width = Math.abs(e.getX() - x);
height = Math.abs(e.getY() - y);
//座標軸のマイナス方向に引いた場合
if(point.x > e.getX()) x = e.getX();
if(point.y > e.getY()) y = e.getY();
rect.add(new Rectangle(x, y, width, height));
myPanel.repaint();
}
0566564
2008/11/02(日) 23:32:37{
int x = point.x;
int y = point.y;
width = Math.abs(e.getX() - x);
height = Math.abs(e.getY() - y);
//座標軸のマイナス方向に引いた場合
if(point.x > e.getX()) x = e.getX();
if(point.y > e.getY()) y = e.getY();
frameRect = new Rectangle(x, y, width, height);
myPanel.repaint();
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2 = (Graphics2D)g;
for(Rectangle r: rect)
g2.fill(r);
g2.draw(frameRect);
}
何故なのでしょうか?よろしくお願いします。
0567557-559
2008/11/02(日) 23:32:403つ質問があります
car1.num = 1234;
car1.gas = 20.5;
これらは、
class Car{
int num;
double gas;
に、アクセスして値を代入しているんですよね?
そして 、
car1.setNumGas(1234, 20.5);
は、
void setNumGas(int n, double g){
に、アクセスして代入しているんですよね?
この、オブジェクトはC言語言うポインタに近いものなのでしょうか?
1、オブジェクトの作成(Car car1 = new Car(); )
Car変数は、オブジェクトを指し
2、それを使いメンバにアクセス
という感じに・・・・
0568デフォルトの名無しさん
2008/11/02(日) 23:55:480570デフォルトの名無しさん
2008/11/03(月) 14:11:00ほんとにずれてる程度の間違いならデバックすると一目瞭然かと
0571557 556
2008/11/03(月) 16:28:260572デフォルトの名無しさん
2008/11/03(月) 18:06:21曖昧記憶なと憶測での助言で申し訳ないんだけど、
Graphics2Dクラスの原点座標(0,0)は、フレームのタイトルバーと外枠を
含んだ上での最左上部になるんじゃなかったっけ。
原点座標(0, 0)をタイトルバーや外枠分ずらしてあげる為に、
Insetクラス用いて、フレームの情報持ってきて原点ずらしてあげてた記憶が…
Inset ins = frame.getInsets();
g.translate(ins.left, ins.top);
みたく。
0573557-559
2008/11/03(月) 18:14:14これは
"car1.num = 1234;
car1.gas = 20.5; "
クラスのメンバ
"class Car{
int num;
double gas;"
に、直接?アクセスして値を代入しているんですよね?
そして、これ
"car1.setNumGas(1234, 20.5);" は
void setNumGas(int n, double g){
に、アクセスしてから、迂回する形で(この様に)
"num = n+1;
gas = g+1; "
で、メンバの
"int num;
double gas;" に代入しているのでしょうか?
>>570
今、デバックツール探してみます。
代入しているんですよね?
0574557-559
2008/11/03(月) 18:29:07ですので、>>557->>558の場合は同じクラス内の
引数のところ
"num = n+1;
gas = g+1; "
から、代入しているから、privateでもアクセスできるのですね?
そして、>>559は
外から直接なのでアクセスできないのですね?
連投、申し訳ありません
昨日から一日中考えています
0575デフォルトの名無しさん
2008/11/03(月) 18:38:05Carクラスのメンバ変数『int num;』を『private int num;』とすると、
numは、外部から『直接アクセスできない』変数となります。
class Car{
private int num;
}
class Sample{
Car c = new Car();
c.num; // privateな情報なので直接アクセスできず、エラーになります。
}
private化したnumですが、Carクラス内部からは直接操作をする事が可能です。
これを利用して、『外部から直接アクセスできる仲介者』を用意し、
それを媒介に、privateなnumに『間接的にアクセス』する手法があります。
class Car{
private int num;
public void setValue(int arg){ this.num = arg; } // 引数のargを媒介に、numへと値代入。
public int getValue(){ return num;} // 戻り値intを媒介に、numの値を返す。
}
class Sample{
Car c = new Car();
c.setValue(10);
int getNum = c.getNum();
}
0576575
2008/11/03(月) 18:41:45int getNum = c.getValue();
です。
0577デフォルトの名無しさん
2008/11/03(月) 18:49:36よければご講義をお願いします
0578デフォルトの名無しさん
2008/11/03(月) 19:10:52Java 開発をする際に JDK のホームディレクトリを OS が知っておくと何かと便利。
そのため環境変数にそれを指定するのだけど JDK (Java) のホームディレクトリなので
JAVA_HOME とするとわかりやすいのでそのように指定している。
0579デフォルトの名無しさん
2008/11/03(月) 19:18:24つまりひろくそういう暗黙の了解ができてるだけで
JAVA_HOMEとしなくても動くということですか?
0580デフォルトの名無しさん
2008/11/03(月) 19:19:28動く奴は動く。JAVA_HOMEだけに依存してる奴は動かない。
0581デフォルトの名無しさん
2008/11/03(月) 19:24:51Tomcatの場合はどのように利用しているのでしょうか?
実際にTomcatでプログラミング(初心者ですが)しているのですが
ソースコードをコンパイルするために、システム環境変数に設定したPathの
JDKしか用途がよくわかりません
0583デフォルトの名無しさん
2008/11/03(月) 22:00:04gerWord( ) と getSingleWord( )
の解説をお願いします。
今手持ちの参考書の練習問題にこの二つのメソッドが使われてて
解答にそのメソッドの解説が載ってません。
Yahoo検索で調べたのですが、解説がうまくでてきませんでした。
お願いします
0584デフォルトの名無しさん
2008/11/03(月) 22:26:36変数に格納されている数値の桁数を出したいのですが
どうすればいいでしょうか?
0585デフォルトの名無しさん
2008/11/03(月) 22:36:07プログラミングとは関係なく10ベースの対数の整数部を取ればええんちゃう?
0586デフォルトの名無しさん
2008/11/03(月) 23:01:02わざわざ小数点で書いてるけど、それは10.1の場合は3って表示にするってこと?
0587デフォルトの名無しさん
2008/11/03(月) 23:10:50それその本の中の自作関数じゃないの?
0588デフォルトの名無しさん
2008/11/03(月) 23:54:500589デフォルトの名無しさん
2008/11/04(火) 00:52:47全部に static つけてください。
0590デフォルトの名無しさん
2008/11/04(火) 01:28:300591デフォルトの名無しさん
2008/11/04(火) 03:14:17double value = 100.0;
int keta = (int)(Math.log(Math.abs(value)) / Math.log(10)) + 1;
で、いけると思ったけど丸めが入るので
keta = (int)value == 0 ? 0 : Integer.toString(Math.abs((int)value)).length();
としてみた・・・駄目だセンスのかけらもないorz
0592デフォルトの名無しさん
2008/11/04(火) 10:08:59Del.addItemListener(new ItemSelect());
class ItemSelect implements ItemListener {
public void itemStateChanged(ItemEvent e) {
System.out.println("動け動け動け");
TextEditor.textPane.replaceSelection(""); }
}
と書いているのですが、うまくいっていませんorz
何か根本的に間違ってますか
0593デフォルトの名無しさん
2008/11/04(火) 10:13:03ここみてシンちゃん再始動ktkr!!とか思った俺。
0594デフォルトの名無しさん
2008/11/04(火) 11:09:42int num; //桁を知りたい数
int keta; //桁
for( int i=0; Math.pow(10,i) >num ; i++){ keta=i+1;}
とかどうよ
0595592
2008/11/04(火) 12:06:53別の話なんですが、Checkboxを生成したんですけれども
プログラムの起動時はそのチェックボックスが表示されなくて
一度クリックすると普通に表示されるようになるのですが
どうしてですかねー?? チェックボックスのcheckを生成したあと
panel.add(check);しかしてないですけど
何か足りないですか・・・?
最初から表示されてほしいです!111
0596595
2008/11/04(火) 12:49:48http://www.dotup.org/uploda/www.dotup.org15927.bmp.html
クリック後
ttp://www.dotup.org/uploda/www.dotup.org15928.bmp.html
こうなっているのです……
0597デフォルトの名無しさん
2008/11/04(火) 19:37:350598デフォルトの名無しさん
2008/11/04(火) 19:47:010599デフォルトの名無しさん
2008/11/04(火) 21:22:56表示させるコードの書き方を教えて下さい。
0600デフォルトの名無しさん
2008/11/04(火) 21:25:580601デフォルトの名無しさん
2008/11/04(火) 21:30:29そうですね、間違ってましたスミマセン
じゃあ1から999までの書き方を教えて下さい。
0602デフォルトの名無しさん
2008/11/04(火) 21:33:58説明不足で悪かった。
0603デフォルトの名無しさん
2008/11/04(火) 21:43:29if(i % 2 != 0)
System.out.println(i);
俺優しすぎかも
0604デフォルトの名無しさん
2008/11/04(火) 21:48:03ちょwサンクス!!
優しすぎだろ、惚れたよ!
マジで。
0605デフォルトの名無しさん
2008/11/04(火) 21:48:370606デフォルトの名無しさん
2008/11/04(火) 21:51:40( ゚Д゚)ゞ リョーカイ!!
誘導してくれてサンクス
0607デフォルトの名無しさん
2008/11/04(火) 22:03:07宿題スレから誘導してもらいました。
さっきの続きで
for (int i = 0; i <= 1000; i++)
if(i % 2 != 0)
System.out.println(i);
これはどの様な処理をしてるんですか?
for (int i = 0; i <= 1000; i++)
ここまでは何となく分かるんですけど、
if(i % 2 != 0)が微妙に分かりません。
コピペですみませんm(_ _)m
0608デフォルトの名無しさん
2008/11/04(火) 22:10:56%ってのは剰余の演算子で
iを2で割った余りってのがi%2ね。
だから2で割った余りが0じゃないとき、つまり奇数の時となるわけさ
ちなみにこれは「Javaで〜」とかそういうレベルの話じゃないからね
0609デフォルトの名無しさん
2008/11/04(火) 22:11:072で割って余りが0じゃなかったらという意味
0610デフォルトの名無しさん
2008/11/04(火) 22:12:56import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloServlet extends HttpServlet{
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws IOException,ServletException{
PrintWriter out = response.getWriter();
out.println("Hello");
}
}
doGet( )メソッド内で宣言した HttpServletResponse response
このresponseを使って
PrintWriter out = response.getWriter();
とありますが
HttpServletResponseのインスタンスを生成したわけでもないのに
どうしてresponse.getWriter( );という記述ができるのですか?
仮に HttpServletResponseがクラスメソッドだとしても、
このような記述はできませんよね?
0611デフォルトの名無しさん
2008/11/04(火) 22:26:28制御の主体であるAPサーバがインスタンスを生成してお前のコードに渡してる。
0612デフォルトの名無しさん
2008/11/04(火) 22:31:47doGet( ) メソッド内で
HttpServletResponse response
とした時点で、我々の目に見えないところで
APサーバがインスタンスを生成しているとい
うことですか?
0613デフォルトの名無しさん
2008/11/04(火) 22:53:270614デフォルトの名無しさん
2008/11/04(火) 22:55:24メソッド内じゃない。responseはdoGet()の引数だ。APサーバはHttpServletResponseのインスタンスを生成して、それを引数としてdoGet()を呼び出してるだけ。
0615デフォルトの名無しさん
2008/11/04(火) 23:21:24スレッドを3本つくり、それぞれ順番に1〜10までカウントさせたいのですが
スレッド0が動いたところで止まってしまいます。なにがおかしいのでしょうか?
class Ex11{
public static void main(String[] args){
Count10 count =new Count10();
count.start(); //スレッド0
count.start(); //スレッド1
count.start(); //スレッド2
}
}
class Count10 extends Thread{
public synchronized void run (){
try{
for(int i=1;i<11;i++){
System.out.println(Thread.currentThread().getName()+":count="+i);
Thread.sleep(700);
}
}catch(InterruptedException e){
}
}
}
0616デフォルトの名無しさん
2008/11/04(火) 23:27:580617615
2008/11/04(火) 23:47:17別のThreadオブジェクトを作るというのは
Count10 count1 =new Count10();
Count10 count2 =new Count10();
Count10 count3 =new Count10();
count1.start(); //スレッド0
count2.start(); //スレッド1
count3.start(); //スレッド2
のようにするってことなんでしょうか?
0618デフォルトの名無しさん
2008/11/04(火) 23:47:50確認する前に実行すればいいじゃない
0619615
2008/11/04(火) 23:50:45待機している、スレッド1か2にカウントさせたいので
この方法だとうまくいかないのです。
0620デフォルトの名無しさん
2008/11/04(火) 23:54:53join でスレッドの終了を待機する。
0621615
2008/11/05(水) 00:32:36joinを用いて試してみたところ、うまくいきました。
ありがとうございました。
つづけて質問なんですが、ひとつのインスタンスに対して計3本のスレッドを通し
今回のような結果を得ることはできないのでしょうか?
このとき、どのスレッドから数え始めてもらっても構わないのですが。
0622デフォルトの名無しさん
2008/11/05(水) 00:56:57いまいち要求仕様がはっきりしないけど、java.lang.Runnableのこと?
3つのスレッドが必要なら3つのThreadインスタンスが必要なのは変わら
ないけどね。
0623デフォルトの名無しさん
2008/11/05(水) 00:59:16始終荒れまくりの海外サーバ絵チャだ
一人の神プログラマーが強すぎてマクロ荒しが全く太刀打ちできてない。
荒しプログラマーは全員退散!!
誰か倒してくれwwwwww
荒らしても荒らしても線が消されてしまう
一体どうやっているのか?!
0624615
2008/11/05(水) 01:13:30始めたばっかりなので
言葉の意味とか微妙に違ってるかも分かりません。ごめんなさい><
実はsynchronizedの練習をしたかったんです。
synchronizedはインスタンスに対して鍵をかけるのですよね?
でもインスタンスがスレッドの数だけあると
synchronizedの意味がなくなっちゃうなあ、と思っていたのです。
でもなんだかスレッドインスタンス?と、実行するクラスのインスタンス?
が頭の中でごっちゃになってるような気がしてきました・・・
もう一度、考え直してみます。
遅くまでお付き合いいただいてありがとうございました!
0625デフォルトの名無しさん
2008/11/05(水) 01:17:47ttp://www.nicovideo.jp/watch/sm2346912
0626デフォルトの名無しさん
2008/11/05(水) 06:45:22struts-config.xmlにhogeという名前でfuga.jspに遷移する設定があるとします。
Actionの最後にmapping.findForward("hoge")しますが、
この結果得られたpathを加工する方法を教えてください。
具体的にはfuga.jspの後ろにアンカー(#moge)を追加して、遷移先の表示位置をAction内で動的に制御したいのです。
アンカーの数はデータ数で可変なので、全てのパターンをstruts-config.xmlに記述することはできません。
getPath()して加工はできるのですが、setPath()するとIlligal State Exceptionが発生して詰まっています。
どうかよろしくお願いします。
0627デフォルトの名無しさん
2008/11/05(水) 07:31:08なるほど!わかりました!
いきづまったときはまたこのスレで質問させて
いただく事があると思いますので、そのときは
よろしくお願いします。
ありがとうございました
0628デフォルトの名無しさん
2008/11/05(水) 10:33:00ファイルに出力する時には BufferedWriterを使っているのですが
その両方の機能を持ったクラスはありますか?
例えば
ファイル1 ファイル2 ファイル1
abcde 12345 → abcde
12345 67890 12345
67890
といった風にファイル1を読み込んで、ファイル2と比較してファイル1に存在しないコードがあったら追加するといったプログラムがしたいんです。
わかりにくいかもしれませんが、わかる方いたらお願いします。
0629デフォルトの名無しさん
2008/11/05(水) 11:55:160630デフォルトの名無しさん
2008/11/05(水) 13:02:240631デフォルトの名無しさん
2008/11/05(水) 13:40:23推奨されないAPIを使用またはオーバーライドしています
詳細については、-deprecationオプションを指定して再コンパイルしてください
ってのが出て出来ないんですけどどうしたら良いですか?
0632デフォルトの名無しさん
2008/11/05(水) 13:42:30import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import javax.swing.*;
import java.util.*;
public class ExpText1 extends JFrame{
public JScrollPane scrollPane,scrollPane2;
public JLabel lb1,lb2;
public JButton b1,b2;
public TextField tf1,tf2,tf3;
public JPasswordField pwf;
public Container container = null;
private Font font = new Font("serif",Font.ITALIC + Font.BOLD,36);
private Font font2 = new Font("serif",Font.BOLD,18);
public ExpText1(){
super("ExpText1");
setSize(500,280);
container = this.getContentPane();
container.setLayout(null);
container.setBackground(Color.gray);
container.setForeground(Color.red);
0633デフォルトの名無しさん
2008/11/05(水) 13:43:31b1.setSize(120,35);
b1.setLocation(345,200);
b1.setVisible(true);
b1.setOpaque(false);
b1.setBorderPainted(true);
b1.addActionListener(lsn);
container.add(b1);
tf1 = new TextField("Write here and type \"return\"");
tf1.setSize(300,30);
tf1.setLocation(40,65);
tf1.setForeground(Color.red);
tf1.setFont(font2);
tf1.setVisible(true);
tf1.addActionListener(lsn);
container.add(tf1);
tf2 = new TextField();
tf2.setSize(300,30);
tf2.setLocation(40,105);
tf2.setForeground(Color.red);
tf2.setFont(font2);
tf2.setVisible(true);
container.add(tf2);
0634デフォルトの名無しさん
2008/11/05(水) 13:44:08tf3.setSize(200,30);
tf3.setLocation(140,155);
tf3.setForeground(Color.red);
tf3.setFont(font2);
tf3.setVisible(true);
container.add(tf3);
pwf = new JPasswordField(6);
pwf.setSize(200,30);
pwf.setLocation(140,195);
pwf.setForeground(Color.red);
pwf.setFont(font2);
pwf.setVisible(true);
pwf.addActionListener(lsn);
container.add(pwf);
pwf.setEchoChar('@');
lb1 = new JLabel("UserID");
lb1.setFont(font2);
lb1.setSize(80,30);
lb1.setLocation(40,160);
lb1.setOpaque(false);
container.add(lb1);
lb2 = new JLabel("Password");
lb2.setFont(font2);
lb2.setSize(100,30);
lb2.setLocation(40,200);
lb2.setOpaque(false);
container.add(lb2);
0635デフォルトの名無しさん
2008/11/05(水) 13:45:15setVisible(true);
}
ActionListener lsn = new ActionListener(){
public void actionPerformed(ActionEvent e){
String pushedButton = e.getActionCommand();
if((e.getSource())instanceof JTextField){
System.out.println("JTextField was actionvated");
tf2.setText(e.getActionCommand());
}
else if(e.getSource() instanceof JButton){
System.out.println(pushedButton);
if(pushedButton.equals("Enter")) method1();
}
}
};
0636デフォルトの名無しさん
2008/11/05(水) 14:00:36それは単なる警告だからコンパイル出来てると思うけど
気になるなら指示の通り
javac -deprecation ExpText1.java
のように-deprecationオプションを指定して再コンパイルすればよい
0637デフォルトの名無しさん
2008/11/05(水) 14:22:21何をダウンロードしたらいいですか?
別々にC++とjavaようのeclipseをインストールしないといけないのですか?
0638デフォルトの名無しさん
2008/11/05(水) 14:30:50あなたはお尻から入りますか?
それとも耳から入りますか?
0639デフォルトの名無しさん
2008/11/05(水) 15:09:260640デフォルトの名無しさん
2008/11/05(水) 15:42:00一つのeclipseでjavaとCを開発したいです。
CDTをjava板のやつにインストールしてもできませんでした。
0641デフォルトの名無しさん
2008/11/05(水) 15:45:04GCC無いとか?
っつかEclipseスレで聞けよ
0642デフォルトの名無しさん
2008/11/05(水) 15:45:090643デフォルトの名無しさん
2008/11/05(水) 15:46:14GCCはあります。CDTを認識しません。
0644デフォルトの名無しさん
2008/11/05(水) 15:50:55ここJavaスレだからEclipseの話は基本的にスレ違い。
Java開発環境としてのEclipseの話ならともかくも、CDTの話じゃねぇ
0645デフォルトの名無しさん
2008/11/05(水) 15:53:06私の作ろうとしているソフトはjavaをmainにつかいつつ
Cを使おうという趣旨なので、java上でcを使うという意味で、
このスレを選択しました。
0646デフォルトの名無しさん
2008/11/05(水) 16:06:52eclipseで・・・出来ますか?は全く別の質問であることを認識しよう。
0647デフォルトの名無しさん
2008/11/05(水) 16:11:55ポインターにしっとしてるからね。
0648デフォルトの名無しさん
2008/11/05(水) 16:39:41って今公式から落とせますか?
0649デフォルトの名無しさん
2008/11/05(水) 16:41:22最終目的がどうであれ、質問内容はEclipse開発環境の構築なわけで。
スレ違いだよ。
あ、あとJNIも別にスレあるから、JNIの質問あるならそっちでね。
0650デフォルトの名無しさん
2008/11/05(水) 20:48:43実行時でもテキストファイルに上書きは出来ますか?
0651デフォルトの名無しさん
2008/11/05(水) 21:11:52Writerの生成して、それそのまま保持して書いてるんじゃないの?
一旦closeしてもっかいWriterのインスタンス生成して書き込むといいよ。
0652デフォルトの名無しさん
2008/11/05(水) 21:44:50上書きモードじゃなく追記モードでファイルオープン。
0653デフォルトの名無しさん
2008/11/05(水) 21:49:130654デフォルトの名無しさん
2008/11/05(水) 22:01:13java.awt.Window#dispose()
0655デフォルトの名無しさん
2008/11/05(水) 22:04:30出来ました。
有難うございます。
0656デフォルトの名無しさん
2008/11/05(水) 23:41:000657デフォルトの名無しさん
2008/11/05(水) 23:43:120658デフォルトの名無しさん
2008/11/06(木) 11:54:01特に小細工せず普通にnew→write→closeすれば上書きされると思うんだが
Writer w;
w = new FileWriter("hoge");
w.write("7点");
w.close();
w = new FileWriter("hoge");
w.write("100点");
w.close();
0659デフォルトの名無しさん
2008/11/06(木) 15:19:02getEndPosition()は使えないのですよね……?
JTextPaneではどのようにするのでしょうか?
0660デフォルトの名無しさん
2008/11/06(木) 20:00:350661デフォルトの名無しさん
2008/11/06(木) 23:22:02javacが見つかりません。
どうやってコンパイルするのですか。
0662デフォルトの名無しさん
2008/11/06(木) 23:28:36JREにはjavac入ってない。
0663デフォルトの名無しさん
2008/11/07(金) 15:49:05BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
PrintWriter writer = new PrintWriter (new BufferedWriter(new FileWriter(fileA)));
String line;
while((line = reader.readLine()) !=null){
writer.println(line);
}
reader.close();
writer.close();
以上のプログラムを実行し、コンソールから文章を書き込むのですが
コンソールからの入力の終了し、while文へと行くにはどうしたらよいのでしょうか?
ちなみにeclipseを使っています。
0664デフォルトの名無しさん
2008/11/07(金) 17:39:530665デフォルトの名無しさん
2008/11/07(金) 18:08:48できました。
ありがとうございました!
0666デフォルトの名無しさん
2008/11/07(金) 21:18:41文字列を表示させるときはダブルクオーテーション""でくくりますよね?
でもダブルクオーテーション自体を表示させたいときはどうするんでしょうか?
0667デフォルトの名無しさん
2008/11/07(金) 21:24:570668デフォルトの名無しさん
2008/11/07(金) 22:49:530669デフォルトの名無しさん
2008/11/08(土) 01:32:57new String(new char[]{ '\u0022' });
0670デフォルトの名無しさん
2008/11/08(土) 02:31:430671デフォルトの名無しさん
2008/11/08(土) 05:41:55形態素解析でsenを導入して普通に実行した場合は上手くいくのですが
サーブレットとしてWebで表示させようとしたときはエラーがでます。エラーは下記の通りで
java.lang.NoClassDefFoundError: net/java/sen/StringTagger
SenSample.service(SenSample.java:17)
17行目にはStringTagger tagger = StringTagger.getInstance();を記述させています。
System.setProperty("sen.home","xxx");に問題があるのかと思い、ファイルの直下にsenを置いたり色々いじくってみたのですがエラーは変わりませんでした。
心当たりのある方がいましたらお願いします。
もしかたらsen単品ではサーブレット不可だったりするんですかね?
0672671
2008/11/08(土) 07:39:50Tomcatのシステムが分かっていなかったようです。
てっきり環境変数を通せばtomcat下のlibに追加しなくて良いと思っていたのですが…違うようですね。
辞書とか色んなファイルが詰まっているものを扱うのが初めてだったんでいい勉強になりました。
0673デフォルトの名無しさん
2008/11/08(土) 10:32:25書けないんですか?
0674デフォルトの名無しさん
2008/11/08(土) 11:14:520675デフォルトの名無しさん
2008/11/08(土) 11:43:52以下のようなコードで javac が文句言うのを黙らせたい
Socket sock = null しとけば問題ないのは知ってるが,
try の外で宣言して try の中で使う変数が増えると,
いちいち null を代入するのがうざい
Socket sock;
try {
sock = new Socket();
...
} catch {
...
System.exit(1);
}
anyMethod(sock ...);
アノーテーションでもなんでもいいんだが, コンパイラが黙ってくれると幸せ
0676デフォルトの名無しさん
2008/11/08(土) 11:54:28フィールド変数だとnull, 0, 0.0で初期化されるが、
ローカル変数だと不定のままなので叱ってくる。
それを無視したら言語仕様から外れてしまう。
0677デフォルトの名無しさん
2008/11/08(土) 12:02:12exitの後にreturn
0678デフォルトの名無しさん
2008/11/08(土) 13:19:01try{
sock = new Socket();
...
anyMethod(sock ...);
} catch {
じゃ駄目なの?
0679デフォルトの名無しさん
2008/11/08(土) 14:07:23anyMethod() が new Scoket() と同じタイプの Exception 投げたら
exit() してしまうではないか。Socket() の失敗は exit() したいけど
anyMethod() の失敗では exit() したくないって意味じゃねぇの?
0680デフォルトの名無しさん
2008/11/08(土) 14:14:18WindowsXPならcp932とか・・・
0681デフォルトの名無しさん
2008/11/08(土) 14:17:34return を書く部分に明示的に, ここには絶対に到達しないってな事が
コンパイラにも人間にも分かる形で表記できれば, 保守性も上がると
思うんだが...
System.exit() とかなら見た目一発で分かるけど, 通常は行った先から
帰って来ない, なんてのはそこ見ただけじゃわかんないでしょ?
まぁ, 無い物ねだりをしても意味がないんで諦めるしかなさげだな.
0682デフォルトの名無しさん
2008/11/08(土) 14:20:54先にデフォルトを指定するか、後で分岐する全ての場合に対して指定するかの違い
0683デフォルトの名無しさん
2008/11/08(土) 14:23:02throw new RuntimeException("致命的な問題が発生しました!");
0684デフォルトの名無しさん
2008/11/08(土) 14:26:59読んでますか?
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/java/net/URLEncoder.html
どう見ても UTF-8 推奨と書いてありますが。
0685680
2008/11/08(土) 14:38:19どうもありがとうございます。UTF-8が推奨なんですね。ありがとうございました。
UTF-8の文字変換用テーブルがあって、それをつかって文字列をエンコードするっていうことなんですね。
ローカルPCの文字コードなど何も関係ないんですね。文字コードのエンコードの仕方とかがなんとなくわかりました。
どうもありがとうございました。文字コードは難しいですね。
0686デフォルトの名無しさん
2008/11/08(土) 15:48:35一つ目はJavaのif文の真偽判定についてですが、
trueの場合のみ真となり、falseの場合のみ偽となり、それ以外の値は全てコンパイルエラー
という認識で合ってるでしょうか?
もうひとつはfor文についてなのですが、
javascriptにあるようなfor 〜in オブジェクト のようにinの後にオブジェクトを置いてforで回せるような構文はありますか?
自分javascriptしか分からないもので変な例えになってしまいましたが
よろしくお願いします。
0687デフォルトの名無しさん
2008/11/08(土) 15:51:20javaのifはboolean値限定
拡張for文というのを使う
for (object item : collection)
0689デフォルトの名無しさん
2008/11/08(土) 22:39:521つのソースtest.javaからなるプログラムにおいて,
class test{
public static void main(String args[]){}
}
だと正常に動作するのに,
public class test{
public static void main(String args[]){}
}
とすると動作しないのはなぜなのでしょうか。
つまり,classの前にpublicをつけるかどうかで何がかわるのでしょうか。
0690デフォルトの名無しさん
2008/11/08(土) 22:44:09その例ならどちらでも動作するはずだが、本当に動作しないのか?
0691689
2008/11/08(土) 22:47:53ごめんなさい,少し記述を間違えました。
動作しないのは,
public class Nondeterminism{
public static int i = 0;
public static void main(String args[]){}
}
です。
0692デフォルトの名無しさん
2008/11/08(土) 22:56:44TEST.javaには一つのpublicクラスが必ずありクラス名はTEST
TEST.javaの他のクラスはpublicはつけてはいけない。(インナークラスを除く)
0694デフォルトの名無しさん
2008/11/09(日) 01:01:06しもなくても構わない
もしpublicなトップレベルクラスがあるのならその数は一つでクラス名はTESTでなければならない
0695デフォルトの名無しさん
2008/11/09(日) 03:19:26エラーはSyntax error on token "(", ; expectedといっているのですが、どこがおかしいのかわかりません。
class Abs{
private int x;
private int y;
public Abs(){
x=120;
y=200;
}
public void show(){
System.out.println("x is: "+this.x);
System.out.println("y is: "+this.y);
}
}
public class Test{
public static void main(String args[]){
Test abc = new Test();
checkobj(abc);
Abs obj = new Abs();
obj.show();
void checkojb(Object xxx){
if(xxx instanceof Test){
System.out.println("this is Test");
} else {
System.out.println("this is not Test");
}
}
}
}
0696デフォルトの名無しさん
2008/11/09(日) 03:34:01obj.show(); の後ろに } をいれて最後の } を消す。
0697デフォルトの名無しさん
2008/11/09(日) 03:34:25定義されていないメソッド名を呼び出している。
メソッドは入れ子に出来ない。
0698695
2008/11/09(日) 03:47:23エラーが出るようになりました。。何がおかしいのでしょう??度々すみません。
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method checkobj(Test) is undefined for the type Test
0699デフォルトの名無しさん
2008/11/09(日) 08:08:52checkojb
--->
checkobj
0700デフォルトの名無しさん
2008/11/09(日) 11:43:010701デフォルトの名無しさん
2008/11/09(日) 13:46:210702デフォルトの名無しさん
2008/11/09(日) 15:22:07自分自身(ShowFile1.java)を表示するプログラムを作成しなさい。
という宿題が出されたんですがコマンドに何を入力すればいいのか分かりません。
誰か分かる人お願いします。
0703デフォルトの名無しさん
2008/11/09(日) 15:35:27教科書か初級参考書読めばすぐ分かると思うのだが。
0704702
2008/11/09(日) 15:45:02showfileを使うんですね、ありがとうございます
0705デフォルトの名無しさん
2008/11/09(日) 15:50:420706デフォルトの名無しさん
2008/11/09(日) 16:30:570707デフォルトの名無しさん
2008/11/09(日) 17:35:03objectstreamクラスを使って受け渡しをしたときの問題なのですが、
送信側から一度インスタンスを送信し、そのインスタンスの内部の情報を変更し、
再び送信した場合、受信側では2つインスタンスが届くのですが、
2つ目に届いたインスタンスが1つ目のインスタンスと全く同じ情報を持ったインスタンスとして
届いてしまいます。原因は恐らく受信側が送信側から送られてきた2つ目のインスタンスを
以前届いたインスタンスと同じものであると判断してストリームから読み込んでいないものと思われるのですが、
解決方法がどうしてもわかりません。どなたかご指南お願いします。
0708デフォルトの名無しさん
2008/11/09(日) 18:33:14Serialize は少し賢いけど、ある程度は調教する必要があるので、そのあたり?
google> java serialize
0709デフォルトの名無しさん
2008/11/09(日) 18:57:54BigIntegerの四則演算をint,longなどのシフト演算で自作する。
そんな課題でヽ(・∀・)ノってなってるわけだが…
どなたか教えてはくれまいか。
0710デフォルトの名無しさん
2008/11/09(日) 19:25:43つリセット
0711デフォルトの名無しさん
2008/11/09(日) 19:37:31★★ Java の宿題ここで答えます Part 66 ★★
http://pc11.2ch.net/test/read.cgi/tech/1221652206/
0712デフォルトの名無しさん
2008/11/09(日) 20:46:04mouseReleased()では反応しているのですが・・・何故でしょうか?
0713デフォルトの名無しさん
2008/11/09(日) 20:47:38public void mouseClicked(MouseEvent e)
{
if(e.isPopupTrigger())
{
Point p = new Point();
p.setLocation(scrollPanel.toCanvasPoint(e.getX(),e.getY()));
pop.show(scrollPanel, p.x, p.y);
}
else if(javax.swing.SwingUtilities.isRightMouseButton(e))
{
Point p = new Point();
p.setLocation(scrollPanel.toCanvasPoint(e.getX(),e.getY()));
pop.show(scrollPanel, p.x, p.y);
}
↑でelse ifの中にブレークポイントを置くとそこで止まる。
0714デフォルトの名無しさん
2008/11/09(日) 20:57:38テキストファイルのデータを
Enterキー押すと一行出力
またEnterキー押すと次の一行出力
というようなことは出来ますか?
要するにEnterキーが押されるまで処理を停止させることは出来ますか?
0715デフォルトの名無しさん
2008/11/09(日) 23:35:38MouseEventのJavaDocより
>public boolean isPopupTrigger()
>このマウスイベントが、そのプラットフォームのポップアップメニュートリガイベントであるかどうかを返します。
>注: ポップアップメニューのトリガはシステムによって異なります。したがって、共通プラットフォームを適切に機能させるために、mousePressed および mouseReleased の両方で isPopupTrigger をチェックする必要があります。
ってことでisPopupTrigger はmousePressedかmouseReleasedでしか使えないんじゃないの?
>>714
CUIでいくならSystem.in使うとか
未検証だけど
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String text = null;
while((text = br.readLine()) != null){
printNextLine();
}
0716デフォルトの名無しさん
2008/11/10(月) 00:07:48そうですか・・・有り難うございます
0717デフォルトの名無しさん
2008/11/10(月) 01:06:46googleソースコード検索とかでググって見ても,要所をピンポイントで使うだけのような感じです.
プライベートメソッドの引数のヌルチェックやら値域チェックやらガチガチに書いていくもんだと思いましたが・・・
0718デフォルトの名無しさん
2008/11/10(月) 01:32:240719デフォルトの名無しさん
2008/11/10(月) 01:41:40を return しないといけないときに
List<BookImpl>を return してもダメなんですか?
変換できないって言われます。
Book : Interface
BookImpl : implements Book
0720デフォルトの名無しさん
2008/11/10(月) 04:42:17List<Book>とList<BookImpl>とは互換性のない型なのでそうなる。
もし互換性を認めてしまうとタイプセーフでなくなる。
例えば、
List<BookImpl> list = new ArrayList<BookImpl>();
List<Book> list2 = list; // 実際はここで互換性がないのでエラーになる
list2.add(new BookAnotherImpl());
みたいなことができてしまう。
list2の実体はlistであるにも関わらずBookImplでない別のBookの実装をadd可能になる。
もし、
public List<Book> getList() {
List<BookImpl> list = new ArrayList<BookImpl>();
list.add(new BookImpl());
return list;
}
のようなことがしたいのなら、
public List<Book> getList() {
List<Book> list = new ArrayList<Book>();
list.add(new BookImpl());
return list;
}
のようにList<Book>を作成してそれを返すようにする。
List<Book>にBookImplをaddすることはできるので。
0721デフォルトの名無しさん
2008/11/10(月) 05:55:39public class SuperTest{
}
public class Test {
public static void main(String args[]){
}
}
SuperTestのクラス宣言からpublicを取ると通るようになるのでしょうか?
0722デフォルトの名無しさん
2008/11/10(月) 06:22:03>>692, >>694
0723721
2008/11/10(月) 06:31:18なるほど似たような質問が。ちなみに、ファイルをSuperTestとTestで分割したところ
動作しましたが、要するに1ファイルあたりpublicは0個もしくは1個のどちらかでなくては
ならないということですね。
0724721
2008/11/10(月) 06:33:23public class Test {
public static void main(String args[]){
}
}
は1ファイル内にpublicが2個ありますが。。これがインナークラスって奴ですか?
いや、mainなので別にクラスではないですよね。。??
0725デフォルトの名無しさん
2008/11/10(月) 06:51:03classというキーワードがmainには付いていないでしょ?
publicというキーワードはクラス名にだけ付くものではない
0726721
2008/11/10(月) 06:56:31なぜ1ファイル内にpublicは1つまでという仕様になっているのでしょうか?
0727デフォルトの名無しさん
2008/11/10(月) 07:09:50ソースパスに存在するファイル名だけを見ればどこに目的のクラスのソースがあるか分かるので
さもないとコンパイラがソースファイルの中を探していかないといけなくなる
特にそうしなければならない場合以外はpublicでないクラスの場合とかでも
ソースファイル1個にはトップレベルクラス1個にしておいた方がいい
0728デフォルトの名無しさん
2008/11/10(月) 07:35:48enumは例外にして欲しいな。
0729デフォルトの名無しさん
2008/11/10(月) 07:39:17どっかのクラスのメンバにしちまえば?
0730デフォルトの名無しさん
2008/11/10(月) 09:46:07ありがとうございます。
勉強になりました。
0731デフォルトの名無しさん
2008/11/10(月) 11:23:25自分が勉強した限りでは
タグファイルは、WEB-INF/tags もしくは WEB-INF/lib/META-INF/tags
に配置しなければならないはずなのですが、
WEB-INF/libに入れているstrustsのファイル群の中にそれらしいものが見当たりません。
0732デフォルトの名無しさん
2008/11/10(月) 14:11:37どうすればよいのでしょうか?
class SuperTest{
}
public class Test{
public static void main(String args[]){
SuperTest[] abc = new SuperTest[] {abc[0], abc[1]};
}}
これはなぜコンパイルエラーになるのでしょうか?
0733デフォルトの名無しさん
2008/11/10(月) 14:40:40宣言と同時に初期化なら
SuperTest[] abc = {new SuperTest(), new SuperTest()};
宣言した後に初期化なら
SuperTest[] abc; abc = new SuperTest[]{new SuperTest(), new SuperTest()};
貼られたコードがコンパイルエラーになるのは"Definite Assignment"、
日本語訳だと「確実に代入」されてないから。
abc[0] とか abc[1] を使いたければ、
abcが「確実に代入」された後じゃないとダメ。
SuperTest[] abc = null; abc = new SuperTest[]{ abc[0], abc[1] };
とすればコンパイルエラーは出なくなる。実行時に例外食らうけど。
0734デフォルトの名無しさん
2008/11/10(月) 14:42:58SuperTest[] abc = new SuperTest[] {abc[0], abc[1]};
は
SuperTest[] abc = new SuperTest[2];
abc[0] = abc[0];
abc[1] = abc[1];
ということをやろうとしているのに等しいので初期化されていない配列の要素を代入しようとしてエラーになる
配列abcの要素として入れたいのはSuperTestのインスタンスだから上の書き方なら
SuperTest[] abc = new SuperTest[2];
abc[0] = new SuperTest();
abc[1] = new SuperTest();
というように普通の変数に代入するのと同じように書く
これは
SuperTest[] abc = new SuperTest[] {new SuperTest(), new SuperTest()};
と書け
SuperTest[] abc = {new SuperTest(), new SuperTest()};
のように宣言と初期化を同時に行うのなら略記できる
0735734
2008/11/10(月) 14:52:31abc[0] = abc[0];
abc[1] = abc[1];
自体はabcが代入されたあとなのでコンパイルエラーにならないので
「ということをやろうとしているのに等しい」は大体の意味合いとしてってことで
>>733の言うように
宣言と初期化を一緒に行う場合はabc自体が確実に代入されたあとでないと
abcを初期化には使えない
0736732
2008/11/10(月) 15:13:020737デフォルトの名無しさん
2008/11/10(月) 20:11:42InterruptedExceptionの発生する箇所にはtry{} catch(InterruptedException)で例外発生時の捕まえる文を書きました。
先輩が、mainメソッドにもthrows InterruptedExceptionを書かなくちゃいけないといってきたんですが、
正直その先輩はちょっと怪しいです・・本当に書かなくちゃいけないのですか?
プログラムとしてはこんな感じです。↓
public static void main(String[] args) throws InterruptedException {
// 何らかの処理
try {
Thread.sleep(1000);
} catch(InterruptedException e) {
System.out.println(e);
}
}
0738デフォルトの名無しさん
2008/11/10(月) 20:16:320739737
2008/11/10(月) 20:19:01やっぱそうですよね・・ 例外が発生する箇所はちゃんとtry{〜}catch(InterruptedException){〜}
でキャッチするように書いているので、書く必要はないですよね。
基本的に例外が発生して呼び出しもとのクラスに処理依存するときにthrows節を書かなくてはいけないと
認識していました。
どう考えても、理屈に合わないので、ここで聞いてみました。答えがわかって良かったです。
ありがとうございました。
0740デフォルトの名無しさん
2008/11/10(月) 20:20:27わかってやる分にはいいが
0741デフォルトの名無しさん
2008/11/10(月) 20:23:48例外処理の中で Thread.currentThread().interrupt() を呼び出して復元しておくのが定跡
0742737
2008/11/10(月) 20:38:24どうもありがとうございます。スレッドはあまり触れた事がないので
分厚い本をみて勉強しながらプログラムを組んでいる最中です。
ご助言をスクラップブックに保存しておいたので、なにかのときには
役にたてたいとおもっています。
他のご助言までくださり、ありがとうございました。
0743デフォルトの名無しさん
2008/11/10(月) 21:13:02interfaceを実装(implement)するクラスで、制約通りにメソッドの中身を書くわけですが、
最初からメソッドをそのまま書いた場合と、
interfaceで定義されてる定数が利用出来る意外のメリットはあるんでしょうか。
interfaceがあるから、これだけコードを書かなくて済むとか、
メリットについて分かりやすいっていうサイトや表現があればお願いします。
0744デフォルトの名無しさん
2008/11/10(月) 21:21:36void hoge(Printable obj) { obj.print("hoge"); }
こういう風に、実装に関係なくメソッドを呼び出せる
実際に表示するのはコンソールかもしれないしファイルかもしれないしメッセージボックスかもしれない
でも「文字列を出力する」のは同じだから同じように扱える
0745デフォルトの名無しさん
2008/11/10(月) 21:28:29どっちかっつーとinterfaceのメリットっつーか
interface使わない場合のデメリットになるけど
「実装の多重継承」でぐぐってみれば?
0746デフォルトの名無しさん
2008/11/10(月) 22:50:24それを実装する側に属するのではなく、それを呼び出す側に属する。
使われ方を想定せずに、いきなりインタフェースや抽象クラスを書いて
それを実装しても無意味
0747デフォルトの名無しさん
2008/11/10(月) 22:51:14ここで聞きたいんだけど、あと、Javaの文法的なことだし・・
サーブレットのdoGetメソッドって実装するときextends HttpServletクラスを実装してて
doGetメソッドをオーバーライドすることになるんだろうけど、どうしてsuper.doGet()の一文がなくていいの?
教えてエロイ人。
0748デフォルトの名無しさん
2008/11/10(月) 22:57:22HttpServlet.doGet を使わないから。
0749747
2008/11/10(月) 22:59:20でも、わかりました。HttpServletクラスがabstractクラスだからですよね。
でも、他のところでまた疑問が・・
initメソッドだとあるホームページだとsuper.init()って書いてあるんです。。なんでだろう。難しいなあ。
0750デフォルトの名無しさん
2008/11/10(月) 23:04:45ウィンドウが真っ白になったりする事があるのですが、
これはJavaのバグでしょうか?JDK1.6.0_10を使っています。
0751デフォルトの名無しさん
2008/11/10(月) 23:06:17abstract はあまり関係ない。
単に HttpServlet クラスで定義された doGet メソッドを使用せずに
継承した独自のクラスで定義した doGet メソッドを使用すれば事足りるから
super.doGet を使わない。
init の例だと HttpServlet クラスで定義された init を使いたいから
super.init してるだけ。
0752747
2008/11/10(月) 23:10:24どうもありがとうございます。とてもよく分かりました。
その辺の区別をつけるのが難しいと思いますが、難しい事を考えず
本のサンプルの通りにしばらくやっていこうとおもいます。
とても丁寧に教えていただいてありがとうございました。感謝しています。
0753デフォルトの名無しさん
2008/11/10(月) 23:50:590754デフォルトの名無しさん
2008/11/11(火) 00:12:25小さいこと言うなって
0755デフォルトの名無しさん
2008/11/11(火) 01:02:10「Test」と表示されるアプレットを作ったのですがブラウザに表示されません。
appletviewerではきちんと表示されたのですが…
ブラウザはFirefoxの最新版です。
何か設定が必要なのでしょうか?
よろしくお願いしますm(__)m
0756デフォルトの名無しさん
2008/11/11(火) 01:14:37<applet code="クラス名" width="幅" height="高さ">
</applet>
上の文はHTMLに書いたよね?配置するフォルダとかあってるよね?
0757デフォルトの名無しさん
2008/11/11(火) 01:26:18はい。
アプレット以外のプログラムはいくつか作りましたし、フォルダとかは間違いありません。
htmlの中身も確認しましたが間違いありませんね…
0758デフォルトの名無しさん
2008/11/11(火) 01:36:50やっぱりFirefoxが原因みたいです。
これだとスレ違いになってしまいますね…
もう一度調べてみることにしますm(__)m
0759デフォルトの名無しさん
2008/11/11(火) 02:23:39foo.bar.Baz
foo.bar.impl.BazImpl
な風にユーザが利用することを想定しているfoo.bar.Bazと
その内部実装であるfoo.bar.impl.BazImplに別けてる事例を散見するんですが
こういう技法は一般的にはなんて呼ばれてるんでしょうか?
またこういうのを勉強するには何を参考にしたらいいでしょうか?
0760デフォルトの名無しさん
2008/11/11(火) 03:51:43なぜ配列の場合は変更出来るのでしょうか?
public class Test {
public static void main(String args[]){
final int[] a = new int[] {10};
System.out.println(a[0]);
a[0]=12;
System.out.println(a[0]);
}
}
0761デフォルトの名無しさん
2008/11/11(火) 06:38:38final は変数に対する修飾子。
変数に対して再代入出来なくなるだけなので、変数が指しているオブジェクトは変更できる。
>>760 の例で言うと、変数 a に対して、
a = new int[5];
などのように再代入できなくなっているが、
a[0] = 12;
のように中身は変更できる。
String などのように元々変更できないものを指す変数に対して final を付ければ、その変数に
対して再代入できなくなり、なおかつオブジェクトも変更できないので、全体として定数と
同じ扱いになる。
0762デフォルトの名無しさん
2008/11/11(火) 06:42:03配列は基本型ではなく参照型だからね、クラスと同様に。
クラスの場合で考えてみて…
final Test t = new Test() ;
で、new したあとで t が持ってるフィールドを変更できなくなっちゃったら困るでしょ。
ではこの場合の final はどういう意味か?
それは「t が示すインスタンスを、他のインスタンスに変えることはできない」って意味になる。
Test t = new Test(); // instance1
t = new Test() ; // instance2
これだと、2行目で instance2 が作られると同時に、変数 t は instance2 を示すようになる。
この時点でほかに instance1 を示している変数などが存在しなければ、instance1 はガベージコレクトの対象になる。
でも t がこのように違うインスタンスを示すようになっては困る場合に、t の宣言時に final をつける。
配列の場合も同様。言語によってイメージが違うけど、
Java における配列は、たとえ基本型の配列であっても「配列という参照型」になるんだ。
つまり「配列の中身を変えられたくない」ではなく「他の配列を指さないでほしい」という配列変数に final をつけるんだな。
0764デフォルトの名無しさん
2008/11/11(火) 08:43:10が発生します。自分的にはcreateメソッドを呼び出す際に配列abcは配列defを指し示すように
したつもりなので、createメソッド呼び出し後は配列abcの要素数は3ではなく5のつもりなのですが。。
どの認識が違うのでしょう??
public class Test3 {
public static void main(String args[]){
Object[] abc = new Object[] {3, 56, 2};
create(abc);
abc[4]=1000;
for(Object num: abc) System.out.println(num);
}
public static void create(Object abc){
Object def = new Object[5];
System.arraycopy(abc, 0, def, 0, 3);
abc = def;
}
}
0765デフォルトの名無しさん
2008/11/11(火) 08:49:34create() メソッドの2行目をよく見るんだ
0766デフォルトの名無しさん
2008/11/11(火) 09:02:27Javaには参照渡しがないから
メソッド内で参照型の引数に新しい参照代入しても呼び出し元では影響受けない。
0767デフォルトの名無しさん
2008/11/11(火) 09:06:21?createメソッドの中では
1行目:Object def = new Object[5];
この時点でabc={3, 56,2}, def={Null, Null, Null, Null, Null}
2行目:System.arraycopy(abc, 0, def, 0, 3);
この時点でabc={3, 56,2}, def={3, 56, 2, Null, Null}
3行目:abc = def;
この時点でabc={3, 56, 2, Null, Null}, def={3, 56, 2, Null, Null}ではないのでしょうか?
配列はクラスやStringと同様、アドレスを指し示しているだけなので、C言語のノリでいくと
abcはdef配列をポイントするようになるかと思ったのですが
0768デフォルトの名無しさん
2008/11/11(火) 09:12:06--->
Object def = new Object()[5];
ではなかったかな?
0769764
2008/11/11(火) 09:17:04本当ですか。
Object def = new Object()[5];にすると
xception in thread "main" java.lang.Error: Unresolved compilation problem:
The type of the expression must be an array type but it resolved to Object
というコンパイルエラーが発生するようです
0770768
2008/11/11(火) 09:20:55Object[] def = new Object()[5];
だと思う。あと引数のabcもObject[] abcのはず。
それから、最後のabc=defは意味をなさない。
0771768
2008/11/11(火) 09:27:48引数でObject abcとするのと、Object[] abcとするのとでは意味が違う
けれど、Javaでは、実引数が配列だった場合もObject abcで受け取れる
事は受け取れてしまう。だからコンパイル・エラーにはなってない。
この場合、abc=defは、意味が分かりにくい。
言語仕様によっては中身もコピーしてくれても良さそうではある。
しかし、長さまで修正するかな・・・。
これがやりたいなら、戻り値をvoid型にせず、Object[] 型にして
return 文でdefを返し、main側で、abc=create(abc)とすると良いです。
0772デフォルトの名無しさん
2008/11/11(火) 09:51:58C言語のノリでいくと、
void create(void* abc){ abc = 0; }
int main(int argc, char* argv[]) {
void* abc = malloc(sizeof(int) * 3);
create(abc);
printf("%p", abc);
}
で何が表示されるか? ってのと似てる。
0773764
2008/11/11(火) 09:53:18public class Test3 {
public static void main(String args[]){
Object[] abc = new Object[] {3, 56, 2};
create(abc);
// abc[4]=1000; ERROR!!
for(Object num: abc) System.out.println(num);
}
public static void create(Object[] abc){
Object def[] = new Object[5];
for(Object num: def) System.out.println(num);
System.arraycopy(abc, 0, def, 0, 3);
for(Object num: def) System.out.println(num);
abc = def;
}
}
>>770
Object[] def = new Object()[5];
これはエラーになりますので()は不要かと思います。
766さんの回答が恐らく答えなのでしょうが、あんまりよくわからないです。
C言語だと、関数内でポイントし直すとそれはmainに戻ったときも有効だと思うのですが、
Javaの場合はC言語と同じように配列は参照型でありながら、(参照渡しがないから?)
動作が異なるということでしょうか?すみません、参照渡しって何でしょうか。。
どなたかCとJavaの違いを解説して頂けるとうれしいです
0774デフォルトの名無しさん
2008/11/11(火) 10:24:18違う言語を似てるからそうだろとか無理だろw
Javaの入門書1冊やってから来てくれ
0775デフォルトの名無しさん
2008/11/11(火) 10:48:18たぶんC言語の方の理解が中途半端だから混乱してるだけ
0776デフォルトの名無しさん
2008/11/11(火) 11:18:24これで何が表示されるか考えてみるといいよ
intは値型だろって言いたいなら、Integerでもいいよ
public static void main(String[] args) {
int abc = 3;
create(abc);
System.out.println(abc);
}
public static void create(int abc) {
int def = 5;
abc = def;
}
0777デフォルトの名無しさん
2008/11/11(火) 12:03:00そこまで徹底しなきゃいけないの?
0778デフォルトの名無しさん
2008/11/11(火) 12:24:360779デフォルトの名無しさん
2008/11/11(火) 12:28:49mainメソッドにある変数abcとcreateメソッドでパラメータとして受け取ったabcは
そもそも別の変数だと理解しないとな。
createメソッドを呼び出すとき、mainのabcの値(配列なので参照先≒Cでいうアドレス)がcreateのabcに入る。
そのabcにdefの値(同じく配列以下略)を入れたところで、createから戻った時に引数の変数の値も戻される
(createのabcの値がmainのabcに上書きされる)わけじゃないから、mainのabcはcreateを呼び出す前と変わらない。
以前のスレにこの辺をAAで上手く書いた人がいたんだがな・・・
0780デフォルトの名無しさん
2008/11/11(火) 14:45:26Javaは「参照の値渡し」。
似たようなことをやりたければ、
abc = create(abc); となるように create を書き換える。
いろんな意味で、もっと仕様を固めた方が良いと思うがね。
0781デフォルトの名無しさん
2008/11/11(火) 17:20:38どのように作ればよいでしょうか
0782デフォルトの名無しさん
2008/11/11(火) 17:39:09public class MyObject<T> implements Cloneable {
public MyObject<T> clone() {
try {
@SuppressWarnings("unchecked")
MyObject<T> clone = (MyObject<T>) super.clone();
ごにょごにょ
return clone;
} catch (CloneNotSupportedException e) {
throw new AssertionError(e);
}
}
}
0783デフォルトの名無しさん
2008/11/11(火) 17:42:18たとえばweb.xmlの
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
こういうのって皆さん覚えているんでしょうか?
それとも一々ググったり過去のソース見たりしてコピペして書くものなのですか?
0784デフォルトの名無しさん
2008/11/11(火) 17:51:300785デフォルトの名無しさん
2008/11/11(火) 17:52:46J2SE5.0系?それともJavaSE6.0系?
0786>>785
2008/11/11(火) 17:54:050788デフォルトの名無しさん
2008/11/11(火) 19:29:48そんなもの最初のうちは丸暗記Orコピペで十分。ただ、バージョンごとに違うからServlet2.5を使いたいときはそれ相応の
文章を書かなくてはいけないから、そこだけは注意する。
5年もたてば、どういうことかすぐわかるよ。っていうか、すぐわかりたいならXMLのDTDやらスキーマ(Schema)やら
本で勉強したらいいよ。内容としては、文章の定義をどういう定義にするかっていう糞つまらない話なだけだから。
0789デフォルトの名無しさん
2008/11/11(火) 22:13:24もしclone()のシャローコピーはどういうパターンのときで有用なのでしょうか?
0790デフォルトの名無しさん
2008/11/11(火) 23:26:41メモリ節約したい場合とか、
メンバーフィールドが参照してるインスタンスを共有したい場合とか。
0791デフォルトの名無しさん
2008/11/11(火) 23:44:190792デフォルトの名無しさん
2008/11/11(火) 23:48:46そもそも、コピー取りたいんだから this と完全に同じじゃダメでしょ。
0793デフォルトの名無しさん
2008/11/11(火) 23:49:530794デフォルトの名無しさん
2008/11/12(水) 00:30:530795デフォルトの名無しさん
2008/11/12(水) 00:32:51そもそも、シャローコピーだとオブジェクトの状態はほとんどthisと同じになるんじゃないのか?実装によるけど。
0796デフォルトの名無しさん
2008/11/12(水) 01:35:260797デフォルトの名無しさん
2008/11/12(水) 01:45:180798デフォルトの名無しさん
2008/11/12(水) 02:02:06なにしたらいいの?
0799デフォルトの名無しさん
2008/11/12(水) 04:31:040800びぎなぁ
2008/11/12(水) 05:20:24するとエラーになります。なんででしょうか?
エラー:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method Sort(Student[]) is undefined for the type Test
((Test.java))
public class Test {
public static void main(String args[]){
Student[] student = new Student[6];
student[0]=new Student("1gou", 1, 150, 89);
student[1]=new Student("2gou", 2, 140, 30);
student[2]=new Student("3gou", 3, 170, 47);
student[3]=new Student("4gou", 4, 110, 67);
student[4]=new Student("5gou", 5, 200, 50);
student[5]=new Student("6gou", 6, 90, 77);
Sort(student);
}
}
0801びぎなぁ
2008/11/12(水) 05:25:13public class Student {
public String name;
public int studentid;
public double height;
public double weight;
public Student(){
this.studentid=0;
this.height=0.0;
this.weight=0.0;
}
public Student(String name, int studentid, double height, double weight){
this.name = name;
this.studentid = studentid;
this.height = height;
this.weight = weight;
}
つづく
0802びぎなぁ
2008/11/12(水) 05:28:20Student temp = new Student();
for(int i=0; i<student.length; i++){
for(int j=i+1; j<(student.length)-i; j++){
if(student[i].height>student[j].height){
temp=student[j];
student[j]=student[i];
student[i]=temp;
i++;
}
}
}
return student;
}
}
すみません。いっぱい貼りましたが質問内容はすごい基本的なことだと思います。
0803デフォルトの名無しさん
2008/11/12(水) 05:45:34意訳: Testクラスの中で Sort(Student[]) メソッドが定義されていません。
このエラーだけを直すなら以下の通り。
でも、初心者本なり、Webなりでキチンと基礎をやってからの方が良いと思う。
Sort(student) を
Student.Sort(student) へ
public Student[] Sort(Student[] student) を
public static Student[] Sort(Student[] student) へ
// メソッド名の1文字目はラテン文字の小文字で。
0804びぎなぁ
2008/11/12(水) 07:10:49勉強になりました。あと疑問なんですが、上記のStudentクラスのコンストラクタで、基本型の変数を初期化している
のですが、Stringも初期化しようと思ってString name=Null;と指定したところコンパイルエラーになりました。
(1)なぜエラーになるのでしょうか?
(2)通常Stringなどのオブジェクト変数はコンストラクタでどのように初期化するのでしょうか?
0805デフォルトの名無しさん
2008/11/12(水) 07:53:38null と書こうとして Null って書いちゃった
みたいな間抜けな話じゃないよな?
0806びぎなぁ
2008/11/12(水) 08:05:38間抜けな話です。生まれて初めて知りました。。オブジェクト型でも初期化出来るんですね。
nullで。(汗)ありがとうございました!
0807デフォルトの名無しさん
2008/11/12(水) 09:55:43サーバに大量のアクセスがあった際、Servletの動作はシングルコアより早くなるでしょうか?
0808デフォルトの名無しさん
2008/11/12(水) 10:33:320809デフォルトの名無しさん
2008/11/12(水) 11:27:20ありがとうございます。
Javaのマルチスレッド処理はマルチコア動作に対応しているが、
負荷がかかっている場合でも必ずしも全てのコアが効率的に動作するとは限らないということですね。
0810デフォルトの名無しさん
2008/11/12(水) 12:32:020811デフォルトの名無しさん
2008/11/12(水) 13:46:361,a,b,c,
2,d,e,f
3,g,h,i
これを読み込んで配列に代入する際に2次元配列に代入するにはどうすればよいでしょうか。
よろしくお願いします。
0812デフォルトの名無しさん
2008/11/12(水) 15:01:01BufferedReader br=new BufferedReader(new FileReader("ファイルパス"));
String str;
String buff[][]=new String[3][4];
for(int i=0;(str=br.readLine())!=null;i++)
buff[i]=str.split(",");
0813デフォルトの名無しさん
2008/11/12(水) 15:48:38ありがとうございます。
これを実行したら配列に代入することはできたのですが、csvファイルの1行目だけうまくいきません。
[0][0]〜[0][3]がcsvファイルの2行目を読み込んでしまいました。
何が原因かお分かりになりますでしょうか。
初歩的で申し訳ありません。
0814デフォルトの名無しさん
2008/11/12(水) 16:26:38ちょっと君のソースを見せてくれ。
0815デフォルトの名無しさん
2008/11/12(水) 17:21:48あれ?君がうわさの「鼻糞クン」ですか?
0816デフォルトの名無しさん
2008/11/12(水) 18:20:090817デフォルトの名無しさん
2008/11/12(水) 18:58:01リンク先を取得できますか?
sun.awt.shell.ShellFolder というクラスを見つけましたが
Sun固有のAPIのようですし。
0818デフォルトの名無しさん
2008/11/12(水) 19:23:191.7からは、java.nio.Path#readSymbolicLine() が追加されて、
それ使えばシンボリックリンクは読める予定。
現行バージョンではベンダ固有のAPIとかライブラリとか
自前でJNI使って読むとかしないと取得できない。
0819デフォルトの名無しさん
2008/11/12(水) 20:00:290820デフォルトの名無しさん
2008/11/12(水) 20:18:06そうですか。JDK7まではsun.awt.shell.ShellFolder使ってみます。
ありがとうございます。
>>819
もちろん分かってます。
しかしsun.awt.shell.ShellFolderでは
ショートカットとシンボリックリンクの区別はないようですし、
片方がサポートされるなら他方もサポートされるだろうと思い
同列に扱いました。
0821デフォルトの名無しさん
2008/11/12(水) 21:17:55ソースは
import java.io.*;
public class tom{
int num,wei;
String sex,nam;
void showProfile(){
System.out.println(num+" "+wei+" "+sex+" "+nam);
}
}
0822デフォルトの名無しさん
2008/11/12(水) 21:19:08public static void main(String args[])throws IOException,FileNotFoundException{
String filename="fi.csv";
BufferedReader br=new BufferedReader(new FileReader(filename));
String str;
String line=br.readLine();
String buff[][]=new String[3][4];
for(int i=0;(str=reader.readLine())!=null;i++){
buff[i]=str.split(",");
}
tom a1=new tom();
a1.num=Integer.parseInt(buff[2][0]);
a1.wei=Integer.parseInt(buff[0][1]);
a1.sex=buff[0][2];
a1.nam=buff[0][3];
a1.showProfile();//これをa1〜a3まで作る予定。
}
}
です。
まだおられましたら、よろしくお願いします。
0823デフォルトの名無しさん
2008/11/12(水) 21:34:56一行目読み込めないって
String line=br.readLine();
これなにさ。
勝手に改変されて読み込めないとか言われても知らんがな。
0824デフォルトの名無しさん
2008/11/12(水) 21:42:15buff[0][0]じゃないの?
>>for(int i=0;(str=reader.readLine())!=null;i++){
readerじゃなくてbr
0825824
2008/11/12(水) 21:43:160826デフォルトの名無しさん
2008/11/12(水) 21:44:55申し訳ありません。教科書を見つつやっていて勝手に付け加えてしまいました。
一行を消したらうまくいきました…
ほんとに助かりました。
ありがとうございました。
0827デフォルトの名無しさん
2008/11/12(水) 21:47:01ありがとうございました。
0828デフォルトの名無しさん
2008/11/12(水) 21:49:150829デフォルトの名無しさん
2008/11/12(水) 21:51:26シャローコピーとディープコピーでぐぐればいいんじゃない
0830デフォルトの名無しさん
2008/11/12(水) 22:12:100831デフォルトの名無しさん
2008/11/12(水) 22:20:550832デフォルトの名無しさん
2008/11/12(水) 22:30:37なんかそうしても画面全体が対象となってしまうのですが・・・
解決策があったら教えていただけないでしょうか。
0833デフォルトの名無しさん
2008/11/12(水) 22:50:40http://blog.ddc.co.jp/mt/dtp/archives/20050727/124307.html#id_3_0_0
ってかホントスレ違いすぎだろ…。
0834デフォルトの名無しさん
2008/11/12(水) 23:42:23Serializableはオブジェクトをファイルに保存したりネットワークに送信したりするのが主目的だろ
コピーのためにあるわけじゃない
0835びぎなぁ
2008/11/13(木) 00:02:13なんででしょうか?SuperTestのコンストラクタは定義しているのですが、何が悪いのですか?
class SuperTest{
protected int a;
public SuperTest(int a){
this.a=a;
}
}
class ChildTest extends SuperTest {
private int b;
public ChildTest(int a, int b){
this.a=a;
this.b=b;
}
}
public class Main {
public static void main(String args[]){
ChildTest abc = new ChildTest(4, 7);
}
}
0836デフォルトの名無しさん
2008/11/13(木) 00:07:55引数なしの SuperTest() がないから。
言語仕様により、ChildTest(int a, int b) の先頭で暗黙のうちに
引数なしの SuperTest() が呼ばれてる。
明示的に SuperTest(int a) を呼びたい場合は
ChildTest(int a, int b) の先頭で super(a); しないとだめ。
0837デフォルトの名無しさん
2008/11/13(木) 00:07:57ChildTestのコンストラクタでは、SuperTestの引数なしのコンストラクタ
を自動的に呼び出そうとする。
なので、引数なしのSuperTestのコンストラクタが定義されていないので
エラーになっているんだと思う。
ChildTestの{の直後の行にsuper(a);と書いて、this.a=a;を削除すれば、
動くはず。
0838びぎなぁ
2008/11/13(木) 00:32:37ChildTest abc = new ChildTest(4, 7);のところを
SuperTest abc = new ChildTest(4, 7);、つまり親クラス 変数 = new 子クラス()と右辺と左辺が
違うものを見た事があるのですが、これは何がメリットでこのようなことをするのでしょうか?
ちなみに、
SuperTest abc = new ChildTest(4, 7);
System.out.println("abc's a= "+abc.a);
System.out.println("abc's b= "+abc.b);
とやってみたところabc.b cannot be resolved or is not a fieldというエラーに
なりました。ChildTest(4, 7)でインスタンスをつくっている以上、b=7も存在している
のではないのでしょうか?
0839デフォルトの名無しさん
2008/11/13(木) 00:37:570840デフォルトの名無しさん
2008/11/13(木) 00:38:16そのように書くと、コンパイル時には、abcは、SuperTestのメンバにしか
アクセスできない様な書き方になる。bというメンバはSuperTestには
ないのでコンパイル時エラーになる。
しかし、実行時には確かにbというメンバも持っていて、abcが参照している
先は、SuperTestではなく、ChildTestになっている。
ChildTestでSuperTestで定義されたメンバ関数をオーバーライドすると、
abc.メンバ関数()と書いた時、ChildTestの方の新しい関数が呼び出される。
その書き方は何を目的とするかというと、SuperTestで定義された
変数と関数しかコンパイル時には「書かない」と言うこと。
「使わない」というのは微妙に間違い。使っていないようで実際には
新しい方の関数が使われる時があるから。
0841840
2008/11/13(木) 00:41:31と複数あった場合に、SuperTestで定義された関数しか使わないように書いて
おいて、実行段階で自動的に新しくオーバーライドしたそれぞれの関数を呼
び出すようにする事が出来る。
0842びぎなぁ
2008/11/13(木) 01:22:05class SuperTest{
protected int a;
public SuperTest(){
this.a=0;
}
public void printSuperTest(){
System.out.println("SuperTest's a is: "+this.a);
}
public void showTest(){
System.out.println("SuperTest's a is: "+this.a);
}}
class ChildTest extends SuperTest {
protected int b;
public ChildTest(int a, int b){
this.a=a;
this.b=b;
}
public void printChildTest(){
System.out.println("ChildTest's a is: "+this.a);
System.out.println("ChildTest's b is: "+this.b);
}
public void showTest(){
System.out.println("ChildTest's a is: "+this.a);
System.out.println("ChildTest's b is: "+this.b);
}}
0843びぎなぁ
2008/11/13(木) 01:22:38public static void main(String args[]){
SuperTest abc = new ChildTest(4, 7);
System.out.println(abc.a);//SuperTestのフィールドにはアクセスOK
abc.printSuperTest();//SuperTestのメソッドにもアクセスOK
// System.out.println(abc.b);//ChildTestのフィールドにはアクセスNG
// abc.printChildTest();//ChildTestのフィールドにはアクセスNG
abc.showTest();//オーバーライドの場合だけ、特別にChildTestのメソッドにアクセス可能、これがメリット
}}
0844デフォルトの名無しさん
2008/11/13(木) 01:26:290845デフォルトの名無しさん
2008/11/13(木) 01:26:54ChildTestをSuperTestの一種とみなしたいとき。よくある例:
class 図形 { void 表示() {...} } // 普通はabstract classかinterfaceだが
class 円 extends 図形 { void 表示() { /* 円を書く */ } }
class 正方形 extends 図形 { void 表示() { /* 正方形を書く */ } }
図形[] いろいろ = new 図形[2];
いろいろ[0] = new 円(); // 普通はこんな風には書かないが
いろいろ[1] = new 正方形();
for (int i = 0; i < いろいろ.length; i++) { // 普通は拡張for文使うが
いろいろ[i].表示();
}
表示したいときは、「図形」として「円」が入ってようが「正方形」が入ってようが関係なく「表示()」を呼び出せばいい。また、後で図形の種類を増やしても、「図形」しか使っていない部分は修正せずに済む。
0846デフォルトの名無しさん
2008/11/13(木) 01:50:18二次元の配列C[][]をreturn文で戻り値を返す時は
return(C[][]);
ではダメなのでしょうか・・・?
コンパイルしても文法エラーとでてしまって困ってます。。
初心者の質問で申し訳ないですが、回答お願いします。。。
0848デフォルトの名無しさん
2008/11/13(木) 01:52:530849デフォルトの名無しさん
2008/11/13(木) 01:56:26ありがとうございます。無事コンパイルできました!
0850デフォルトの名無しさん
2008/11/13(木) 02:39:47>>845なんか、普通にオブジェクト指向の本にあるような説明だと思うよな。
0851デフォルトの名無しさん
2008/11/13(木) 07:16:240852デフォルトの名無しさん
2008/11/13(木) 12:03:04or -> Collection#addAll
notは無い
0853デフォルトの名無しさん
2008/11/13(木) 12:40:03notに関しては、あるCollectionの要素でないもの、というものは、
要素の全体集合を制限しておかないといくらでも存在するので、
全体集合的なCollectionの中の部分的なCollectionの補集合を取るということなら、
全体からCollection#removeAllで部分的なCollectionを削除すればいいと思う。
0854デフォルトの名無しさん
2008/11/13(木) 14:11:50例えば
while(TRUE){
String s=getMethod();
if(judgeMethod(s)){doMethod(s);}
sleep(1000);
}
なのと
String s
while(TRUE){
s=getMethod();
if(judgeMethod(s)){doMethod(s);}
sleep(1000);
}
なのとです
0855デフォルトの名無しさん
2008/11/13(木) 14:20:11String sだけなら場合は効果はない。
>String s=getMethod();
を全部外に出せるならある。
0856デフォルトの名無しさん
2008/11/13(木) 14:35:27じゃあ行数短い上にしましょうか
どうもありがとう
ちなみに細かいですが下は
String s; //行末のセミコロン
while(true){ //trueは小文字
s=getMethod();
if(judgeMethod(s)){doMethod(s);}
Thread.sleep(1000); //Threadのメソッド
}
が正しかったですね
ちょっと慌ててました
0857デフォルトの名無しさん
2008/11/13(木) 20:08:02↑のサイトのテンプレートマッチングのプログラムを実行しようと思ってるのですが、
どう頑張っても動きません。
Faces、Tempの画像を同じフォルダに入れてイクリプス実行しようと試みたのですが
どうもうまくいかないので誰かアドバイスお願いします。
0858デフォルトの名無しさん
2008/11/13(木) 21:49:51それらのメソッドをコレクション向けに総合的にライブラリにしたような、論理・集合ライブラリみたいなプロジェクトは存在しないのでしょうか?
0859デフォルトの名無しさん
2008/11/13(木) 21:59:460860デフォルトの名無しさん
2008/11/13(木) 22:41:41そういうのはコレクション・フレームワークみたいにライブラリにして再利用するものかと思います。
それも、たいていの場合、熟練者がプロジェクトでやってるとより使いやすい仕様や設計になってるんですけど、そういうのはないんでしょうか?
0861デフォルトの名無しさん
2008/11/13(木) 22:52:440862デフォルトの名無しさん
2008/11/13(木) 23:00:44BufferedWriterクラスのflush()メソッドの説明をみると
“ストリームをフラッシュする”
とあるのですが、フラッシュするとは一体なにをすることなのでしょうか?
0863デフォルトの名無しさん
2008/11/13(木) 23:03:560864デフォルトの名無しさん
2008/11/13(木) 23:09:590865デフォルトの名無しさん
2008/11/13(木) 23:19:13回路作るわけじゃあるまいに
0866デフォルトの名無しさん
2008/11/13(木) 23:28:55入力して確定していない全角文字の文字数制限のやり方が分かりません。
半角のみの場合はKeyListenerやKeyAdapterで
入力文字数、入力文字種の制限かけられるのですが・・・。
例えば、氏名を入力するテキストフィールドに20文字までの入力制限をかけても
あああああああああああああああああああああああああああああ //←確定していない状態
と入力すると制限を超えて入力されてしまいます。
確定前の全角文字数を監視して
制限超えたらキー入力受け付けなくする方法ないでしょうか。
0867862
2008/11/13(木) 23:33:59いままでflush()メソッドを知らなかったので使っていなかったのですが
それでもファイルにはきちんと書き込みが行われていました。
flushメソッドを呼ばないと
せっかくBufferedWriterクラスをつかっても
writeメソッドが呼ばれる度に書き込みを行ってしまうのですね
勉強になりました。ありがとうございます。
0868デフォルトの名無しさん
2008/11/13(木) 23:40:04逆
どうして
> writeメソッドが呼ばれる度に書き込みを行ってしまう
なんて結論になるんだろう
flushを呼ばないとバッファに溜まったものがファイルに書き込まれない可能性がある
flushを使わなくてもきちんと書き込まれていたのは最後にきちんとcloseしていたから
0869デフォルトの名無しさん
2008/11/13(木) 23:56:00それじゃあなたは何を作ってるんですか?
0870デフォルトの名無しさん
2008/11/14(金) 00:05:550871デフォルトの名無しさん
2008/11/14(金) 00:06:13closeを呼んでいれば、そのときにフラッシュもされる
0872862
2008/11/14(金) 00:14:03なるほど、closeすることによって書き込まれていたのですね。
詳しく説明してくださりありがとうございました。
また何かありましたらよろしくお願いいたします。
0874デフォルトの名無しさん
2008/11/14(金) 00:52:200875デフォルトの名無しさん
2008/11/14(金) 07:18:000876デフォルトの名無しさん
2008/11/14(金) 07:30:130877デフォルトの名無しさん
2008/11/14(金) 12:31:37class A {}
public final class Test3 extends A {}
class B extends Test3 {}
�A以下のプログラムをコンパイルすると下記のようなエラーになる。どのように修正すればよいか?
interface VideoGame {
void play(String software);
}
public class Famicom implements VideoGame {
public static void main(String[] args) {
System.out.println("Famicom");
}
}
--------------------------------------------
Famicom.java:5: Famicom は abstract でなく、
VideoGame 内の abstract メソッド play(java.lang.String) をオーバーライドしません。
public class Famicom implements VideoGame {
^
エラー 1 個
わかりますか?
0878デフォルトの名無しさん
2008/11/14(金) 12:34:04しかし宿題は宿題スレへ
0879デフォルトの名無しさん
2008/11/14(金) 13:18:50Javaを1から勉強し直そうと思っているのですが、1からの勉強に向いている本を教えてください
出来れば、エクリプスを開発環境にして書いてあるものだと助かります
0880デフォルトの名無しさん
2008/11/14(金) 13:22:21Sessionからマッピングオブジェクトを取得する処理で
Product product = session.get(Product.class, i)
のような記述があります。
このProduct.classというのがクラスを表わしてるのは分かるのですが
文法的にはどういう意味があるのでしょうか?
Objectクラスのクラスメンバあたりに当たりをつけて調べてみましたが
API見てもそれらしいメソッドは見当たりません。
そもそもclassメソッド自体が全てのクラスから検索しても存在しませんでした。
0881デフォルトの名無しさん
2008/11/14(金) 13:31:01それはメソッドではないです
文法的にはクラスリテラルといい、そのクラスを表す java.lang.Class のインスタンスが得られます
Class foo = Product.class;
System.out.println(foo.getName());
のように使います
0883デフォルトの名無しさん
2008/11/14(金) 15:49:13宿題スレに一度はったものの、すれ違いだと思い
向こうで「誤爆です、すみません」とカキコしたバカ者です
失礼しました
0884デフォルトの名無しさん
2008/11/14(金) 22:07:51勉強し直すって、すでにいくらからJava知識があるわけ?
0885デフォルトの名無しさん
2008/11/14(金) 22:48:24入力した文字列、例えば"山田太郎"を入力などを
山田
太郎
のように半分で改行したいのですが、わかりません・・・
"\n"を使用するのは、わかります
あと、StringBufferも使用するはずなのも・・・・
0886885
2008/11/14(金) 22:54:580887デフォルトの名無しさん
2008/11/14(金) 23:09:250888デフォルトの名無しさん
2008/11/14(金) 23:17:29javaの仮想マシンだけでjavaの仮想マシンを作るのは無理
javaのコンパイラあたりまでなら無問題
ってな答えを期待してる?
0889デフォルトの名無しさん
2008/11/14(金) 23:17:58でもそうやって作った仮想マシンを動作させるためには別の仮想マシンが要る
0890デフォルトの名無しさん
2008/11/14(金) 23:24:34ブートストラップ問題じゃん、直接ネイティブコード吐けなきゃ無限ループ
ネイティブコード吐く所作ればどんな言語でも可能ちゃうか?
# COBOL に出来るかどうかはしらんが…
0891デフォルトの名無しさん
2008/11/14(金) 23:27:17java languageにはnativeキーワードがあるから使れるだろ。おまえら適当なこと言うなよw
0892デフォルトの名無しさん
2008/11/14(金) 23:35:22native なしでどこまで行けるかって話じゃねぇのか?
バイトコードのネイティブコンパイラだって Java で書いてあったりするじゃんw
0893デフォルトの名無しさん
2008/11/14(金) 23:39:450894デフォルトの名無しさん
2008/11/14(金) 23:41:45/*php html*/
echo <<<_EOD_
<img src="xxx.jpg" width="640" height="480" alt="" />
<p>W:<span id="w">640</span>pix H:<span id="h">480</span>pix</p>
_EOD_;
id="w" の640やid="h"の480はjavaスクリプトで取得できてるのですが
取得した値を例えば 640/2 などして320となった値width="640"を変更してwidth="320"と数値を変更したいのですが
なにか方法はないでしょうか。
0895デフォルトの名無しさん
2008/11/15(土) 00:37:00bookListとかproductListとか。
配列ならbookArrayでマップならbookMapで。
分かりやすいですよね?
なのに口うるさい先輩が怒るんですよ
名前に型を持ち込んでどうする!お前は文字列変数全ての語尾にStringを付けるのかってね。
あぁ頭が固い堅物は嫌だね
0896デフォルトの名無しさん
2008/11/15(土) 00:40:51コレクションの種類が重要でないときはbooksみたいに複数形にするだけにしてる
0897デフォルトの名無しさん
2008/11/15(土) 00:42:14books とか products の方が良く使うかもしれん
単に短いから読みやすい/書きやすいという理由だが
0898デフォルトの名無しさん
2008/11/15(土) 00:47:540899デフォルトの名無しさん
2008/11/15(土) 00:56:43十分(種類には興味がない)な場合が多いから、とりあえず複数形にするだけが多いかな
だからって種類を明示して悪いことはないと思うよ
0900デフォルトの名無しさん
2008/11/15(土) 02:04:41gccのC++なんか最悪だろw
0901デフォルトの名無しさん
2008/11/15(土) 04:13:33SwingのJTextFieldならできるけど、AWTのTextFieldは知らない。
ちなみにJTextFieldならこんな感じ。テキストのうpロダが見つからなかった…。
// ここから
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
/**
* テキスト入力制限クラス
* @author nanashi
*/
public class LimitDocument extends PlainDocument{
/** 入力最大文字数 */
private int limit;
/**
* コンストラクタ
* @param limit 入力最大文字数
*/
public LimitDocument(int limit){
this.limit = limit;
}
@Override
public void insertString(int offset, String str, AttributeSet a){
String tempStr = str;
if(offset < limit){
int enableLength = limit - offset; // 現在の入力可能文字数
int inputLength = str.length(); // 入力文字数
0902901続き
2008/11/15(土) 04:14:14if(enableLength > 0){
if(enableLength < inputLength){
tempStr = tempStr.substring(0, enableLength);
}
} else{
tempStr = "";
}
super.insertString(offset, tempStr, a);
} catch (BadLocationException e) {
e.printStackTrace();
}
}
}
/**
* メインメソッド
* @param args コマンド引数
*/
public static void main(String[] args){
JFrame frame = new JFrame();
JTextField textField = new JTextField();
textField.setDocument(new LimitDocument(10));
frame.getContentPane().add(textField);
frame.setTitle("入力テスト");
frame.setSize(500, 55);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
0903901
2008/11/15(土) 04:20:21SwingのJFrameにJButtonやJTextAreaを貼り付けて
表示させた時にウィンドウだけ描画されて中身が真っ白に
なってしまう事があるのですが、JVMのバグでしょうか?
それともsetVisible(true)の呼び出しタイミングが悪いのでしょうか?
ちなみにWindowsXP SP3、jdk1.6.0_10で実行しています。
0904デフォルトの名無しさん
2008/11/15(土) 05:05:310905デフォルトの名無しさん
2008/11/15(土) 07:09:07複数の本をおさめるリストなのだから
「本たち(books)」よりも「本のリスト(bookList)」のほうが
言語として自然だという考え方もあると思う。
0906デフォルトの名無しさん
2008/11/15(土) 07:37:220907デフォルトの名無しさん
2008/11/15(土) 07:46:04>>1
【初心者】Java質問・相談スレッド120【歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1223603727/
0908デフォルトの名無しさん
2008/11/15(土) 07:47:13907破棄で
0909デフォルトの名無しさん
2008/11/15(土) 07:59:530910デフォルトの名無しさん
2008/11/15(土) 08:27:23ぼくは分かりやすくていいとと思うけどな
0911デフォルトの名無しさん
2008/11/15(土) 08:34:12シャッフルして頭から25個使えばいい
シャッフルの方法解りませんとか聞くなよググれ
0912デフォルトの名無しさん
2008/11/15(土) 08:36:58普通に答えてやれよ。
0913デフォルトの名無しさん
2008/11/15(土) 08:38:08シャフルの方法じゃなくて、Random Number Generatorの方法を聞いてんだよ。
0914デフォルトの名無しさん
2008/11/15(土) 09:16:330915デフォルトの名無しさん
2008/11/15(土) 09:32:11初めからそう書けよ。おまえは馬鹿かw
0916デフォルトの名無しさん
2008/11/15(土) 09:39:41同じ数字が出てもいいなら、普通に乱数発生させて99.0倍したあと1足して、キャストするなりすればいい。
被ったらだめだというなら、
1:1〜100の整数を配列に代入
2:500回位ランダムに入れ替える
3:頭から25個取り出す
これでおk。
または、既に発生させた乱数を調べ、被ったら新しく乱数を発生させる。
ただ、>>909のいう範囲と個数なら、今回は多分前者の方がいいよ。
0917デフォルトの名無しさん
2008/11/15(土) 10:02:19糞野郎に答えてやるおまえは馬鹿か?
0918デフォルトの名無しさん
2008/11/15(土) 10:14:49重複なしは
2.for(i=1から100)swap(i,乱数)
がいいみたいよ
0919903
2008/11/15(土) 10:30:36コンポーネントはJFrameに貼り付けた後にsetVisible(true)を
呼び出しています。実装としては下の通りで、TestJFrameオブジェクトを生成して、
メソッドdisplay()を間隔を空けずに何回も呼び出しまくると、画面が真っ白な
ウィンドウが表示される事があります。
JavaVMの引数に-Dsun.java2d.noddraw=trueを指定しても同様の現象が発生します。
何が問題なのか全くわかりません。
public TestJFrame extends JFrame implements ActionListener{
public void display(){
JButton button1 = new JButton("test1");
button1.setActionCommand("test1");
JButton button2 = new JButton("test2");
button2.setActionCommand("test2");
JTestArea textArea = new JTextArea();
JPanel panel = new JPanel();
panel.add(button1);
panel.add(button2);
Container contentPane = this.getContentPane();
contentPane.add(textArea, BorderLayout.CENTER);
contentPane.add(panel, BorderLayout.EAST);
this.setTitle("test");
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setAlwaysOnTop(true);
this.setVisible(true);
this.toFront();
public void actionPerformed(ActionEvent e){
if(e.getActionCommand().equals("test1")){
System.out.println("test1");
} else if(e.getActionCommand().equals("test2")){
this.dispose();
}}}}
0920デフォルトの名無しさん
2008/11/15(土) 11:09:52はじめから読み取れよ、おまえは馬鹿かw
0921デフォルトの名無しさん
2008/11/15(土) 11:22:160922デフォルトの名無しさん
2008/11/15(土) 11:34:400923デフォルトの名無しさん
2008/11/15(土) 12:05:170924デフォルトの名無しさん
2008/11/15(土) 12:38:25単にスワップを繰り返すやり方は目の出方に偏りがでることは明らかだけどな
0925デフォルトの名無しさん
2008/11/15(土) 12:53:47Random.nextInt( )
についてご教授お願いします
0926デフォルトの名無しさん
2008/11/15(土) 12:58:51今まで入れた中の数字と同じのがなければ無ければ、入れるって繰り返せばいいと思うが。
0927デフォルトの名無しさん
2008/11/15(土) 13:08:13ランダムクラスの「次の整数をだす」っていう技をつかう
って言う意味だよ。
0928デフォルトの名無しさん
2008/11/15(土) 13:27:38ひでえアルゴリズムだなw下手するとやたら時間かかるぞw
配列の0から99までをforループで順番にランダムに出た場所のものと取り替える
これを好きな回数やりゃいんじゃね
0929デフォルトの名無しさん
2008/11/15(土) 13:35:54重複があれば最初に戻る
0930デフォルトの名無しさん
2008/11/15(土) 13:37:020931デフォルトの名無しさん
2008/11/15(土) 13:39:09ステータス:インストーラを抽出していますってとこで止まり
このWindowsインストーラパッケージには問題があります。
このインストールを完了するのに必要なプログラムを実行できませんでした。
と表示されてインストールできません。
原因は何でしょうか。
OSはvistaです。
j2sdk-1_4_2_18まで遡ったけど無理でjdk1.3.1_20でなら出来ました。
0932デフォルトの名無しさん
2008/11/15(土) 13:54:01Random r = new Random();
for (i = 0 から 25回)
int randint[i] = r.nextInt(100);
これなら0−100のランダムINTだ。じゃあ、1−100にするには?
0933デフォルトの名無しさん
2008/11/15(土) 13:56:26r.nextInt(100) なら0から99だろ…
0934デフォルトの名無しさん
2008/11/15(土) 14:17:19SWTやらSwingやらありますが、作りやすい(とっつきやすい)ものはどれでしょうか?
Java経験:Springフレームワークを1ヶ月
GUI経験:Unix-CでのXlib
0935デフォルトの名無しさん
2008/11/15(土) 14:29:080936デフォルトの名無しさん
2008/11/15(土) 16:38:44・[n][0]に、1〜100を入れる。
・[n][1]に、乱数を入れる。範囲は適当でいいし、重複してもいい。
・[n][0]と[n][1]をペアにして、[n][1]の内容でソート。
・[n][0]を取り出す。
0937デフォルトの名無しさん
2008/11/15(土) 16:46:46今継承、抽象クラスについて疑問があります。
今抽象メソッドX,とメソッドYを持つクラスAを抽象クラスとして、そこからクラスBとクラスCを派生するように
します。この時クラスB、クラスCそれぞれでメソッドX,メソッドYを実装しないとエラーが出てしまうのですが、
これは片方のサブクラスだけでメソッドX,メソッドYを実装するだけでよくなるような対処法はありますか?
よろしくお願いします。
0938デフォルトの名無しさん
2008/11/15(土) 17:05:27インターフェース使えば。
0939デフォルトの名無しさん
2008/11/15(土) 17:23:49多次元配列は面倒だ。
・100個分の1次元配列を作る。
・「下位バイトは1〜100、上位バイトは適当な乱数」という整数を入れる。
・ソートする。
・下位バイトを取り出す。
0940デフォルトの名無しさん
2008/11/15(土) 17:47:38↑
こちらのIPAのHPからCASL�UのシミュレータをDLしたのですが、どうやって実行すればいいのか分かりません
同じページに「JavaTM 2 SDK Standard Edition Version 1.4.2 をダウンロードしてください」と書かれているのですが、
「JavaTM 2 SDK Standard Edition Version 1.4.2 をダウンロードしてください」をDLしてインストールすれば
CASL�Uのシミュレータを動かせるんでしょうか?イマイチ分からないので、どなたか分かる方いましたら教えてください
あと、「JavaTM 2 SDK Standard Edition Version 1.4.2 をダウンロードしてください」というのは、
↓のHPからDLできるんでしょうか?IPAのHPにはリンクされているんですが、どこのボタンを押せばいいのか分かりません・・・
ttp://java.sun.com/products/archive
0941デフォルトの名無しさん
2008/11/15(土) 17:57:09そこのページの J2SDK/J2RE - 1.4 の隣が 1.4.2_17 になってる状態でその隣の GOボタン押して、
次のページで Download J2SDK して、
次のページで Platform に自分の使ってるOS選択して
I agree to the following Software License Agreements のチェックオンにして continue、
次のページにバイナリへのリンクあるから、それダウンロード。
0942デフォルトの名無しさん
2008/11/15(土) 18:19:56THX
何か英語ばかりで意味不明だったけど、ウィザードみたいのが出てきて
今、インストールが終わったっぽい・・・
だけど、これインストールしたけど、EXEファイルみたいなのは無いの?
どうやって、CASL2のシミュレータを動かせばいいのか分からん・・・
0943デフォルトの名無しさん
2008/11/15(土) 18:57:120944デフォルトの名無しさん
2008/11/15(土) 19:09:07実用に耐えるの意味がわからん。
普通に実装すればよい気がするんだが。
0945デフォルトの名無しさん
2008/11/15(土) 19:18:22速度的に...
0946デフォルトの名無しさん
2008/11/15(土) 19:22:54スレッドを作るとき、mainメソッドがどこにもありません。
0947デフォルトの名無しさん
2008/11/15(土) 19:25:31どこかに作ってください。
0948デフォルトの名無しさん
2008/11/15(土) 19:28:050949デフォルトの名無しさん
2008/11/15(土) 19:37:46どこかにつくってください
0950デフォルトの名無しさん
2008/11/15(土) 19:43:400951デフォルトの名無しさん
2008/11/15(土) 19:50:49ソースはここです。
0952デフォルトの名無しさん
2008/11/15(土) 19:57:53どこにも作らなくて良いです。
0953デフォルトの名無しさん
2008/11/15(土) 20:41:440954デフォルトの名無しさん
2008/11/15(土) 20:50:28java SEのコレクションと何か違うんでしょうか?
0955デフォルトの名無しさん
2008/11/15(土) 20:59:57http://java.sun.com/javase/ja/6/docs/ja/api/java/util/Enumeration.html
0956デフォルトの名無しさん
2008/11/15(土) 21:02:48ちゃんとイベントディスパッチスレッド上でやってる?
0957デフォルトの名無しさん
2008/11/15(土) 21:50:40アプレットのことかな?mainメソッドっていうのは、いわゆる普通のアプリケーションで
どこからプログラムをスタートさせるのか書かないと実行マシン(仮想マシン)が、どこからはじめたらいいか
わからないからmainメソッドを書くんだよ。必ずmainメソッドから始まるようにするんだ。これはC言語とかC#でもいっしょ。
アップレットやサーブレットは決まった処理は決まったメソッドを呼ぶようにしてるから
メインメソッドがなくても、きまった処理が必要になったときに決まったメソッドが呼ばれるようになっているんだよ。
0958デフォルトの名無しさん
2008/11/15(土) 22:23:31ありがとうございました
0959デフォルトの名無しさん
2008/11/15(土) 23:18:09ウイルスキラーを削除したらインストールできました。
ウイルスキラーは終了するだけでは無理でした。
0960デフォルトの名無しさん
2008/11/16(日) 00:42:18import javax.media.opengl.GL;
import javax.media.opengl.glu.GLU;
ってパッケージのimportができないんだ
eclipseでパスの追加はしてある
/usr/lib/jvm/default-java/jre/lib/ext/jogl.jar
/usr/lib/jvm/default-java/jre/lib/ext/jogl-natives-linux.jar
なんでダメなんだろ
0961デフォルトの名無しさん
2008/11/16(日) 00:48:47GL.classがあるのは
/net/java/games/jogl/GL.class
という場所だ
ひょっとしてパッケージ宣言とimportが
かみ合ってないんだろうか
0962903
2008/11/16(日) 00:57:51イベントディスパッチスレッドで実行しても同じ現象が発生してます。
JavaVMのバグなのか自分のプログラムのバグなのか切り分けができません。
正直疲れました。
SwingUtilities.invokeLater(new Runnable(){
public void run(){
try{
for(int i = 0; i < 1000; i++){
TestJFrame frame = new TestJFrame();
frame.display();
Thread.sleep(1000);
}
} catch(InterruptedException e){
e.printStackTrace();
}
}
});
0963デフォルトの名無しさん
2008/11/16(日) 01:13:34for文の中の前2行(new と display)を invokeLater に実行させたら?
0964デフォルトの名無しさん
2008/11/16(日) 01:18:50イベントディスパッチスレッドをスリープで止めてるから他のものが描画されない。
0965デフォルトの名無しさん
2008/11/16(日) 01:26:23RootPaneのpaintImmediatelyを使いなはれ
0966デフォルトの名無しさん
2008/11/16(日) 02:08:28Swing コンポーネントの描画も EDT で行われる。
どうしても1秒間止めたいなら
javax.swing.Timer で1秒後に display() を
呼ぶようにすればいい。
0967903
2008/11/16(日) 02:32:32>>964
>>965
>>966
ありがとうございます。
Thread.sleep(1000)をはずしてTimerでやってみたましたが、
やはり数十回に1回は真っ白なウィンドウが出てしまいます。
その時のウィンドウはキーイベントを受け取っている(KeyListenerで確認)ので、
完全に固まっているわけではなく、描画だけが追いついていない様子です。
そんなに重い処理でもしているのでしょうか?私はそうは思えないです。
試しにpaintImmediately()やrepaint()を実行しても現象変わらずです。
0968デフォルトの名無しさん
2008/11/16(日) 04:36:58インクルードすることによって何が出来るようになるんですか?
ServletDispatcher(サーブレット名).include(req,res)
これで指定したサーブレットのメソッドが使えるようになったりするんでしょうか?
0969デフォルトの名無しさん
2008/11/16(日) 09:19:03実行可能な最小ソースコード見せて
0970デフォルトの名無しさん
2008/11/16(日) 17:26:07include っていうのは、そのファイルに色々サーブレットの処理を書いておいて
それを表示するってことだよ。
たとえば、エラーページなんか表示したいとき、ひとつのページごとに違うエラーページつくってたら
めんどくさいでしょ?上の君の貼った例ServletDispatcher(サーブレット名).include(req,res) だと
色々なページでエラーがおきたら、そこのURLに飛ばしてそこでinclude文使ってあるファイルをインクルードすると
エラーページは1つ書いておけばいいだけになるんだよ。
サーブレットのメソッドもつかえるようになるんだけど、ページの取り込みというのが目的だよ。includeファイルにエラーのページの内容を書いておけば
そこで処理すればいいからね。ひとつのインクルードファイルだけですむんだ。include文でよまれたインクルードファイルは処理して
表示されるんだ。たとえば、a.classでb.classをインクルードするとa.classの中のb.classをインクルードした場所に
bのサーブレットで書いた部分が表示される。
0971デフォルトの名無しさん
2008/11/16(日) 18:56:351.Moneyのサブクラスである。
2.コンストラクタにdouble型で値を入れるとその値を持つオブジェクトを生成する。
3.toStringメソッドを使うと、「$(コンストラクタに入れた値)」となる文字列を得る。
この特に条件2をどうしても実現できません(この場合のオブジェクトを生成する方法がわからない)。
アドバイス、ヒント等よろしくお願いします。
0972デフォルトの名無しさん
2008/11/16(日) 18:58:30public Dollar(double value) { this.value = value; }
でいいの?
0973デフォルトの名無しさん
2008/11/16(日) 19:05:08すいません。クラスMoneyが抽象クラスなんです。。
abstract public class Money {
private double value;
protected Money(double value){
this.value = value;
}
abstract protected String getPrefix();
abstract protected String getPostfix();
@Override public String toString(){
return getPrefix()+String.valueOf(value)+getPostfix();
}
abstract public double getYenRate();
public double getValue(){
return value*getYenRate();
}
@Override public boolean equals(Object obj){
if(this == obj) return true;
if(!(obj instanceof Money)) return false;
Money m = (Money) obj;
return this.getValue() == m.getValue();
}
@Override public int hashCode(){
long v = Double.doubleToLongBits(getValue());
return (int)(v^(v>>>32));
}
}
0974はんしょう
2008/11/16(日) 19:07:50JAVAのJBUILDER2005を見ています(正直使っているという状態ではまだないのです)が、
JPX(プロジェクト)ファイルを再BulidするのとMakeをするのとがメニューにあります。
1:この違いはなんでしょうか?一見どうちらを選択しての既存のものは実行できるか
できないのか について言えば変わりはなかった。
2:幾つかのサンプルの内、上のようにJbuliderで実行をすると絵が出ますので、実行できるようになるですが
Jbuliderのソフトを介さないで 実行できることはないでしょうか。
Javaは実行ファイル(正確な用語でないかもしれませんが)というものはないでしょうか?
例えばWindowsで言えば、拡張子.exeのファイルは直に、
あるいは FLASHの.swfファイルはIEで(ブロックは外して)開くことが出来る。同じflashの.flvファイルはWeb上で、起動ファイルを導入してしか見えない(Youtubeのように)。
JAVAはどうでしょうか?
それと.JAVAという拡張子ファイルはソースファイルと理解してよいでしょうか?
0975デフォルトの名無しさん
2008/11/16(日) 19:09:25なんで条件を後出しするの?
馬鹿なの? 死ぬの?
public Dollar(double value) { super(value); }
@Override protected String getPrefix() { return "$"; }
@Override protected String getPostfix() { return ""; }
0976デフォルトの名無しさん
2008/11/16(日) 19:12:03申しわけございません。
ちなみにオブジェクトを生成っていうのはnew演算子を使う以外方法はないんですか?
0977デフォルトの名無しさん
2008/11/16(日) 19:23:43今作っているのは(例え話として)「引き出しクラスを指定できる可変長タンス」です。
public class Tansu {
Class<? extends IHikidashi> hikidashiClass;
ArrayList<IHikidashi> hlist;
public Tansu(Class<? extends IHikidashi> hikidashiClass)
{ this.hikidashiClass = hikidashiClass; }
public void addHikidashi() throws Exception
{hlist.add(hikidashiClass.newInstance());}
}
Tansu tansu = new Tansu(ConcreteHikidashi.class); tanse.addHihidashi();
でタンスを作成して引き出しを追加します。ここまではOK。
ここでタンスの引き出しの中身を任意のクラスに差し替え可能にしようとしました。
public class Tana<NAKAMI> {
Class<? extends IHikidashi<NAKAMI>> hikidashiClass;
ArrayList<IHikidashi<NAKAMI>> hlist;
public Tana(Class<? extends IHikidashi<NAKAMI>> hikidashiClass)
{ this.hikidashiClass = hikidashiClass; }
...
で、中身が整数型なタンスを作成しようと
Tansu<Integer> tansu = new Tansu<Integer>(ConcreteHikidashi<Integer>.class);
とすると、".class"近辺が文法エラーで怒られてしまいます。
つまりジェリックスを利用して宣言されたクラスのClassオブジェクトを
入手したいのですが、これはどのようにすれば良いのでしょうか?
0978デフォルトの名無しさん
2008/11/16(日) 19:43:54ConcreteHikidash の代わりに IntegerHikidash implements IHikidasshi<Integer> 使うとか。
0979デフォルトの名無しさん
2008/11/16(日) 20:16:59あぁ、確かに出来ました。コードの何処かで
class IntegerHikidashi extends ConcreteHikidashi<Integer>{}
とか宣言しておいて、
Tansu<Integer> tansu = new Tansu<Integer>(IntegerHikidashi.class);
でエラーも警告も無しでコンパイルが通ります。助かりました。
しかし上記のような空の継承クラス宣言無しでスマートに出来る方法は
無いでしょうかね。
また以下のように引き出しのインスタンスを生成してそのクラスを渡して
も怒られるなど、まだまだ私にとってジェリックスには謎が多いです・・・
IHikidashi<Integer> prototype = new ConcreteHikidashi<Integer>();
Tansu<Integer> tansu2 = new Tansu<Integer>(prototype.getClass());
-> The constructor Tansu<Integer>(Class<capture#4-of ? extends IHikidashi>) is undefined
0980デフォルトの名無しさん
2008/11/16(日) 20:55:52SomeClass method(Class klass, String arg) {
< xxxx を呼ぶだめの前処理 >
Class ? x = new klass(<前処理結果 1>);
return klass.any_method(arg, <前処理結果 2>);
}
てな事を書きたい場合、どうすればええの?
0981980
2008/11/16(日) 21:09:56ぶっちゃけ Lisp 系の言語で良く定義される
(with-open-file (ファイルオープン処理) 本体)
(with-disable-interrupt 本体)
外側の () から抜けるときは exception だろうが何だろうが,
ファイルクローズなり, 割り込み許可の処理をおわってブロック
から抜けてくるような作りにしたい
本体は, 戻値と引数がマッチしていれば何でも OK みたいな………
0982デフォルトの名無しさん
2008/11/16(日) 21:34:18つ無名クラス
クロージャ持つ言語に比べてめちゃめちゃ冗長になるけどな。
0983デフォルトの名無しさん
2008/11/16(日) 22:15:01リフレクション
0985デフォルトの名無しさん
2008/11/16(日) 22:31:23勉強中
0986デフォルトの名無しさん
2008/11/16(日) 22:32:10DI
0987デフォルトの名無しさん
2008/11/16(日) 22:51:37コンパイルは、どうやるんですか?
OSは、Windouwsです。
入門書を買ったんですか・・・コンパイルの方法が書いてない・・
0988デフォルトの名無しさん
2008/11/16(日) 23:03:320989デフォルトの名無しさん
2008/11/16(日) 23:15:22何千個もインスタンス作るとかじゃなきゃ
速度は問題にならないっしょ。
0990デフォルトの名無しさん
2008/11/16(日) 23:20:11使うだけなら比較的簡単。
言語仕様については理解することを放棄した。
(理論的背景がさっぱりだ)
0991デフォルトの名無しさん
2008/11/16(日) 23:31:460992デフォルトの名無しさん
2008/11/16(日) 23:47:41Yen オブジェクトで返す public Yen total() メソッドを実装するのですが、
格納されているのはMoneyのオブジェクトで返す時はYenオブジェクトにするという場合どのように
すればいいですか?下のようにpublic Yen total()メソッドを実装しようとしたんですが、
失敗続きで。。。アドバイスお願いします。
import java.util.*;
public class MoneyCollection extends ArrayList<Money> {
public MoneyCollection(){
super();
}
public Yen total(){
???
}
public void show(){
for(Money m : this){
System.out.println(m);
}
}
}
0993デフォルトの名無しさん
2008/11/16(日) 23:53:04>>971と同じ人?宿題は宿題スレへ。
>>971のときもそうだったけど条件は全部書こうぜ。
0994デフォルトの名無しさん
2008/11/17(月) 00:26:31http://www.smg.co.jp/seminar/java/でインストールすましたら(かならずPATHは設定する事)
コマンドプロンプト開いてcdコマンドで自分のソースファイルを保存したディレクトリに移動して
javac ファイル名とコマンドするだけ。cdはコマンドプロンプトが作業するディレクトリを移動するコマンド。
たとえば、c:\javaフォルダにソースファイルを保存したら、コマンドプロンプトを開いてcd c:\javaとすれば
移動できる。そこで、javac 保存したファイル名 とコマンドをうてばコンパイルできる。コンパイルの仕方は
→を参照。http://www.stackasterisk.jp/tech/java/java01_03.jsp
ちなみに、PATHっていうのは、
C:\Program Files\Java\jdk1.5.0_16\bin
↑
Javaのバージョン
と設定するんだけど、binフォルダにあるjavacがjavaコンパイラのこと。
だから、コンパイルするときjavac ソースファイル名 とするんだけど
コマンドプロンプトでプログラム起動するときはPATHに設定しておくと
プログラム名だけで起動できる。
PATHっていうのは、そういうもの。
0995994
2008/11/17(月) 00:29:10jdk1.5.0_16 ← これがJavaのバージョン。
だから、質問者がダウンロードしたバージョンにより、このフォルダ名が
変わっているはずだから、自分のフォルダ名をしっかり書くこと。
一度、マイコンピュータから順々にJavaのインストールしたフォルダ階層をくぐっていくといいよ。
0996デフォルトの名無しさん
2008/11/17(月) 01:11:34【初心者】Java質問・相談スレッド121【歓迎】
ttp://pc11.2ch.net/test/read.cgi/tech/1226851794/
0997デフォルトの名無しさん
2008/11/17(月) 01:55:39乙。
0998デフォルトの名無しさん
2008/11/17(月) 02:00:47乙
0999デフォルトの名無しさん
2008/11/17(月) 02:24:221000デフォルトの名無しさん
2008/11/17(月) 02:29:0510011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。