08/06/26 17:51:23
>>FileReader#read() は一文字(or一行?)を読むのではなく、1バイトを読み込みます。
>これは非常に語弊があると思うんだけど。。
そうでした、FileReaderは文字読みでした。
なので一行でも1バイトでもなく、一文字が正解です。ごめんなさい。
631:630
08/06/26 17:54:29
>>629
一行を文字列として読み込むというメソッドを持つクラスがあるので探してみてください。
632:デフォルトの名無しさん
08/06/26 18:07:56
>>622
繰り返しによって合計を取る方法(どう考えても基本です)をおさらいすることも重要かと。
ちなみに、mとかsというのは何かの略ですか?気になる。
633:624
08/06/26 18:08:04
>>631
ありがとう
634:デフォルトの名無しさん
08/06/26 18:52:03
スレリンク(tech板:259番)
このスレでちょっと出てたのをみて興味がわいたのですが、Javaで配列の要素側から、その要素を含む配列を取得することって出来ますか?
635:デフォルトの名無しさん
08/06/26 18:55:41
基本無理。その要素に、それを含む配列を持たせたらできるけどあほらしいし・・
636:デフォルトの名無しさん
08/06/26 19:18:47
質問なんですけど、夏にjavaプログラマのSJC-Pの試験を受けるため勉強してるんですが、
問題集しか購入してなく、用語の解説や流れなどのった教科書が欲しいところなのですが
お勧めの本とかないですか?友達がもってるSCCの教本見たら微妙だったんですよね。
問題集のほう「徹底攻略 Java2プログラマPlatform1.4」の黒本使ってます。
お勧めなどありましたら教えてください。
637:デフォルトの名無しさん
08/06/26 20:39:12
質問です。
Java システムアイコンを抽出 / Chat&Messenger
URLリンク(sattontanabe.blog86.fc2.com)
のサイトで、ウィンドウにドラッグドロップしたファイルのアイコンを取得する
サンプルプログラムが公開されているのですが、このプログラムでは
16*16サイズのアイコンを取得することしか出来ません。
Fileから32*32もしくはそれ以上のサイズのアイコンを取得する方法はありますか?
638:デフォルトの名無しさん
08/06/26 21:27:39
>>637
無理っす。
639:デフォルトの名無しさん
08/06/26 22:47:09
メソッド名の書き方について質問です。
メソッド名が長くなるので略して書きたいのですが、その場合大文字小文字の区別はどうするべきでしょうか?
例として
aaaaaBbbbbCcccccDdddd
というメソッド名を短くしてABCDという名前に略すのですが、これだと規約から外れてしまいます。
そこで
1.aBCD
2.abcd
3.aaaaaBbbbbCcccccDdddd(略すべきではない)
4.その他
どれがいいのでしょうか?
640:デフォルトの名無しさん
08/06/26 22:53:52
aaaaaBCDとか
641:使用書無しさん
08/06/26 23:00:45
netBeansとかいまどきのIDE使ったら自動補完してくれるので、後々の読みやすさ
考えたら略さないほうがいいと思うけど。
642:デフォルトの名無しさん
08/06/26 23:18:47
>>639
略し方すらわからなくて人に聞かなきゃいけないレベルなら略さない方が良いと思うぞ。
無意識のうちに>>639が望む回答するように情報隠してる可能性もあるし。
例えば、命名規約のルールだって全部出してるわけじゃないでしょ。
643:使用書無しさん
08/06/26 23:22:59
634<< 配列よりVectorつかったらどうだ。
class A {
public B parent=null;
public void setParent(B parent){
this.parent=parent;
}
public B getParent(){
return parent;
}
}
class B extends Vector<A>{
@override
public void add( A child){
child.setParent(this);
super.add(child);
}
public void add(int index,A child){
child.setParent(this);
super.add(index,child);
}
}
こんなもんかな。
644:デフォルトの名無しさん
08/06/26 23:43:35
>>639
長すぎるってのはクラスの設計が良くない兆候。
aaaaaBbbbbCcccccDdddd というメソッドが HogeManagerとかにあるんだろ、どうせ。
HogeAaaaBbbbクラスをつくり、ccccDdddってメソッドを作るような状況な筈
645:デフォルトの名無しさん
08/06/27 00:05:06
>>624
ファイルからのデータの読み取りにはcsv形式が便利(基本)。(「1,2」とか書いてtest.csvを準備。)
以下はCSVテキスト上で同じ行にある数値の合計を順次算出して別ファイルに集計する例
package javaapplication2;
import java.io.*;
import java.util.*;
public class Load {
public static void main(String[] args) {
//データ格納用Listの準備
List<String[]> list = new ArrayList<String[]>();
try {
FileReader fr =new FileReader("test.csv");
BufferedReader bf = new BufferedReader(fr);
String st = null;
while ((st = bf.readLine()) != null) {
String[] line = st.split(",");
list.add(line);//ファイル上1行の各数値を文字列として格納
}
bf.close();
646:デフォルトの名無しさん
08/06/27 00:05:38
//計算結果データ格納用Listの準備
List<Integer> result = new ArrayList<Integer>();
int sum = 0;
for(String[] values: list){
for(String value: values){
int num = Integer.parseInt(value);//文字列を数値型に変換
sum += num;//同じ配列内の値の合計値を求める
}
System.out.println(sum);
result.add(sum);//合計値を格納
sum = 0;
}
FileWriter fw = new FileWriter("result.csv");
PrintWriter pw = new PrintWriter(new BufferedWriter(fw));
for(Integer val: result){
pw.println(val);
}
pw.close();
}catch(IOException e) {
e.printStackTrace();
}
}
}
647:639
08/06/27 00:11:41
レスどうもです。
今iアプリを作成してて複数単語を繋げて長くなったら打つのが面倒だから略して書けないか?
その場合どうするべきか?というのを軽く疑問に思っただけだったので、変な例を出してしまいましたが、
それがいけなかったようですので実際に作っているのを出してみます。
ダーツゲームを作成しているのですが、ゲームルールとしてスーパー・ラウンド・ザ・クロックというのがあります。
ルールクラスの中にスーパー・ラウンド・ザ・クロックメソッド(SuperRoundTheClock)を作るのですが、
この場合どうするべきか?というのが知りたかったのです。
ちなみに、SuperRoundTheClockぐらい打てよ!というのは無しの方向で・・・。
より長いものが出てきた場合に参考にしておきたいので。
648:デフォルトの名無しさん
08/06/27 00:17:54
今どき補完できるエディタ使おうよ
649:使用書無しさん
08/06/27 00:19:47
>>647それjavaの質問というよりセンスの問題じゃねえ?
昔cobolやってたころなんか母音略して子音だけで名づけてたな
sprRndTheClckなんてな..
650:デフォルトの名無しさん
08/06/27 00:23:43
>>647
その場合、RuleクラスのサブクラスとしてSuperRoundTheClockRuleを作成するのが定石だと思う。
なので、メソッド名は同じになりオーバーライドすることになる。
651:デフォルトの名無しさん
08/06/27 00:28:29
>>647
頭字語で補完してくれるよ、最近のIDEは。
Eclipseの場合だと、sRTC で補完すると superRoundTheClock() が出てくる。
重複するものがなきゃもっと短かくてもOK。
あと、Javaではメソッド名の先頭は小文字な。
652:639
08/06/27 01:32:47
開発環境が固定されていないため(自宅と学校で学校の中でもいろんな場所でやってる)エディタ変更は厳しいです。
今は全マシンにインストールされてるエディタがあるのでそれを使っています。
今後は略さずに補完機能のあるエディタを使って開発する事がベストということですね。
>>650
上の例で突っ込まれそうな予感はしてましたが、突っ込まれてしまいました。
これはRuleクラスでメンバと抽象メソッドを作ればよいということでいいんでしょうか?
653:デフォルトの名無しさん
08/06/27 01:51:06
>>652
そのとおり。ストラテジーパターンで。
感覚は掴めていそうに見えるから、ググって実装例を見てみるといいと思う。
もっとも、ルールが2種類しかないとか言うなら、デザパタを適用するまでも無いけどね。
654:639
08/06/27 02:09:48
>>653
ルールは追加する予定ではいますが、時間の都合上、最悪superRound・・・だけというのも有り得ます。
が、勉強のためにそれでやってみようと思います。
655:デフォルトの名無しさん
08/06/27 06:32:30
>>635
ありがとうございます
656:デフォルトの名無しさん
08/06/27 15:32:50
JSFでSSLは実現できますか
657:デフォルトの名無しさん
08/06/27 16:09:57
JDBCのresultsetのgetObjectで取得したデータの
型を取得する方法をご教示ください。
やりたいことは
resultsetのgetObjectによって
取得されたデータで作成された
ArrayList内データをcsvに出力する汎用的な
メソッドを作成しています。
そのArrayList内のデータで、文字型なら「"」で
くくりたいと考えています。
public void createCSV(List table) {
//tableはgetObjectで取得したデータが渡される。
for (int r = 0; r < table.size(); r++) {
List rec = (ArrayList)table.get(r);
for( int c = 0; c < rec.size(); c++ ) {
//ここでrec.get(c)のデータ型を知りたい。
}
・・・
}
658:デフォルトの名無しさん
08/06/27 16:13:48
>>657
if (rec.get(c) instanceof String) {
...
} else {
...
}
659:デフォルトの名無しさん
08/06/27 16:15:55
getClass().getName()
の方が早くね
660:デフォルトの名無しさん
08/06/27 16:24:39
>>658-659
即レスでありがとうございます。
無事やりたいことができました。
勉強になりました。
661:デフォルトの名無しさん
08/06/27 22:55:13
少し前に為替レートの取得法を相談したものですが,URLConnectionをつかってそのサイトのデータ引き落としは上手く行きましたが、
やはりレートを秒単位でリアルタイム表示しているところはとる事が出来ず行き詰ってしまいました・・
何かいい案はないでしょうか?
662:デフォルトの名無しさん
08/06/27 23:17:54
クラス図での表現を教えてください。
(属性と操作は省略していいそうです)
そのクラス図がどのような現実世界の仕掛けを表現したものか
も教えてください。
Course Person Professor ShedcleOfClasses Section
Student Transcript TranscripEntry
663:661
08/06/27 23:44:49
すいません。いろいろ試した結果為替レートの取得できるようになりました。
申し訳ありませんでした
664:デフォルトの名無しさん
08/06/28 00:35:59
'else'への'if'がありません
ってどうすれば解決できるんでしょうか?
665:639
08/06/28 00:41:43
問題になってるif文をここに貼り付ければ?
666:デフォルトの名無しさん
08/06/28 00:42:51
ifまわりの括弧がおかしいとかだろうな
667:デフォルトの名無しさん
08/06/28 01:10:59
URLリンク(www.objectstart.com)
にある下から2番目のClick here to access a
Zip file containing the Java 1.5.x version
of source code for the second edition of BJO.
(This version of source code will not compile
with Java 1.4.x or earlier compilers.)
のファイルにあるCh14のCourse Person Professor
ShedcleOfClasses Section
Student Transcript TranscripEntry
のクラス図を教えてください
668:デフォルトの名無しさん
08/06/28 09:45:47
>>667
クラス図がどんなものか知ってて、ソースコードがあれば
他人に聞く必要のあることなんてこれっぽっちも無いと思うぞ。
描くのが面倒臭いのか?
もしそうなら、ソースからクラス図を吐き出すツールを作ればいいじゃない。
あとは、それくらいの発想なら世の優秀な兄者どもが
既に思いついてるんだろうな~って感じで、ググっちゃいなヨ。
↓はJudeっていうツールだけど、ソースからクラス図作成もできるので便利よ
URLリンク(jude.change-vision.com)
ちなみに ShedcleOfClasses じゃなくて ScheduleOfClasses ね
669:デフォルトの名無しさん
08/06/28 13:56:52
☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ毎日新聞社による日本人女性への誹謗中傷☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ☠ฺ
・母親は受験勉強をする息子の学力向上のためにフェラチオをする
・日本人女性の55%は、出会ったその日に男と寝る
・ファストフードは女子高生たちを性的狂乱状態におとしいれる
・ティーンたちはバイアグラを使ってウサギのようにセックスをする
・女子高生は、刺激のためにノーブラ・ノーパンになる
・日本の最新の流行 : 70歳の売春婦
・老人の売春婦の人気にもかかわらず、日本では小学生の売春婦にも仕事がある
・日本の若い看護婦は売春婦に勝る
・24時間オルガズムが止まらない病気で苦しむ日本人女性の数が増えている
・15未満の子供を対象とした疑似ポルノが日本に蔓延している
・OLの72%が、セックスをより堪能するために何らかのトレーニングを受けている
・人妻は気分転換の目的で昔の恋人に抱かれに行く
・主婦は郊外のコイン・シャワーで売春をしている
・日本男子は柔道や空手の部活で男相手に童貞を捨てている
・ほとんどすべての漁師は海でマンタとSEXしている
・まだ10代の少年から退職した老人までみんな2980円の手コキを利用している
・六本木のあるレストランでは、食事の前にその材料となる動物と獣姦する
※同社が全年齢向けコーナーで七年以上にわたり世界に向けて配信していたものの一部です
※同社の行為は日本人への偏見や人種差別、婦女暴行、幼児虐待を助長するものです
◆毎日新聞の英語版サイトがひどすぎる まとめ@wiki
URLリンク(www9.atwiki.jp)
◆毎日新聞問題の情報集積wiki
URLリンク(www8.atwiki.jp)
つまり日本国民は
URLリンク(www.vipper.net)
670:デフォルトの名無しさん
08/06/28 17:55:22
>>661
秒単位だとどうしてもソフトを間に挟むしかない
MT4などにDllフックするか優良サービスを得るか
URLリンク(www.dailyfx.com)
で動いてるアプレットからデータを取得するのが無難
671:デフォルトの名無しさん
08/06/28 18:03:12
てか
前に答えてあったな
672:デフォルトの名無しさん
08/06/28 18:13:48
670訂正
○有料
×優良
だね
673:デフォルトの名無しさん
08/06/28 21:11:44
mysqlで100mbのデータをソートしたいのですが
ResultSetのインスタンスを所得した時点でメモリ不足になりました
また、ヒープのサイズを512MBに設定し、
100mbのCSVをCollectionsのsortメゾットでsortしたのですが
これもまたメモリ不足になってしまいました。
大量データをソートする場合どのような手段をとればいいのでしょうか
674:デフォルトの名無しさん
08/06/28 22:36:31
マージソートの要領で、データ全体をメモリに入るサイズに分割して個別にソートし、最後にマージする
675:デフォルトの名無しさん
08/06/28 22:38:31
ゲームプログラミングで一般的にルールを破った場合というのは例外を投げ、それを対処すべきでしょうか?
それとも、毎度ルールに沿っているかチェックして対処すべきでしょうか?
676:デフォルトの名無しさん
08/06/28 22:39:45
入力された数字が一桁なら先頭に0をつけたすプログラムを書きたいのですが、
どうすればいいでしょうか・・・。
たとえば
6→06
としたいのです。
初歩的な質問過ぎてすいません。
677:デフォルトの名無しさん
08/06/28 22:44:06
int num;
...
String numtext = String.format("%02d",num);
678:デフォルトの名無しさん
08/06/28 23:27:15
URLリンク(www.objectstart.com)
にある下から2番目のClick here to access a
Zip file containing the Java 1.5.x version
of source code for the second edition of BJO.
(This version of source code will not compile
with Java 1.4.x or earlier compilers.)
のファイルにあるCh14のCourse Person Professor
SchedcleOfClasses Section
Student Transcript TranscripEntry
のクラス図を教えてください
679:デフォルトの名無しさん
08/06/28 23:53:53
javaでブラウザを作ってみたいのですが
SWTを使わずにGeckoエンジンを使った表示の方法はないでしょうか?
680:デフォルトの名無しさん
08/06/28 23:53:57
プロンプトでパラメータから年・月を受け取り、その「前月」「当月」「次月」の3ヶ月をコンソールに
出力するカレンダーにするにはどうしたらいいですか?
(要するに、2008、5と入力したら、4月、5月、6月の3か月分を出力する)
条件として、
・パラメータチェックメソッドを実装すること
ただし、同メソッド内にtry/catch句を記述してはいけない。
(自前で数値チェックを実装する)
・mainメソッドはControllerとしてのみ使用すること。
(実際の作成/出力処理は別メソッドに実装すること)
助けてもらえたら幸いです、みなさんお願いします:;
681:デフォルトの名無しさん
08/06/29 00:02:03
>>679
Java Mozilla Html Parser
682:デフォルトの名無しさん
08/06/29 00:03:09
なんか最近勘違い君が多いけど、ここは宿題スレじゃないんだぜ
>どうしたらいいですか?
なんて曖昧な質問には、
プログラムしたらいいのでは?
としか答えようがないでしょ?
せめて、あたかも宿題じゃないかのようにぼかす配慮をした上で
どういうコードを書いたらどういうエラーがでた、位は書こうぜ
683:デフォルトの名無しさん
08/06/29 00:16:34
680です。
すいませんでした、ご指摘のとおり宿題スレに行きますね。
684:デフォルトの名無しさん
08/06/29 00:20:27
if(arg[0].equals("2008") && arg[1].equals("5")){
System.out.println("2008年4月、2008年5月、2008年6月");
}else{
System.out.println("自分でカレンダー見て");
}
685:679
08/06/29 00:24:20
>>681
解答ありがとうございます。
しかしパーサーじゃなくてレンダリングの方法をお願いしたかったのですが。。
XULRunnerやJavaXPCOMを見ていたのですが
SwingやAWTはなにやら無理なようなので他に方法はないでしょうか
686:デフォルトの名無しさん
08/06/29 00:40:36
URLリンク(java.sun.com)
J2SE SDK のダウンロードができないんです
Archiveのリンクも開けません
何故でしょうか?
687:デフォルトの名無しさん
08/06/29 00:52:04
>>679
これは?
URLリンク(jrex.mozdev.org)
688:デフォルトの名無しさん
08/06/29 00:53:30
>>673
100MB(合計だよね?)のデータを読み込めて、同程度の作業領域を確保出来るだけのメモリがあるんだから、
適当にin-placeなソートでもすればいいと思うよ
お勧めは、multikey quicksort, msd/lsd radix sort, bucket sortあたり
どのソートアルゴリズムを利用すべきかは、データ構造によるところが大きいので適宜選択のこと
689:デフォルトの名無しさん
08/06/29 00:57:03
>>682
話に加われるだけのレベルをつけてからおいで
690:デフォルトの名無しさん
08/06/29 01:15:20
>レベルをつけてから
>レベルをつけてから
>レベルをつけてから
>レベルをつけてから
>レベルをつけてから
>レベルをつけてから
691:デフォルトの名無しさん
08/06/29 01:22:41
>>689
あんたは会話が成立するレベルの日本語を
操れるだけの能力を身につけてから出直しておいで。
692:デフォルトの名無しさん
08/06/29 01:48:08
>>691
偉そうに言いながら「ら」抜き日本語かよww
正しくは「操られる」だろ
おまえこそまともな日本語使えよなww
693:デフォルトの名無しさん
08/06/29 01:55:52
>>692
ねーよ
694:デフォルトの名無しさん
08/06/29 01:57:52
int型のポインタを関数の引数に渡して、引数に、なんか値を戻してやる、
・・・って感じのこと、javaは、できないのか?
695:デフォルトの名無しさん
08/06/29 02:00:44
最近のJavaって終末感漂ってるよね
10年前の輝きは何だったんだろうね
新しい言語の説明ってどれもJavaの悪い部分との比較だったりするし
Cみたいに恒常的に長生きする言語でもないし
696:デフォルトの名無しさん
08/06/29 02:06:37
>>695
今、一番輝いてる言語ってなに?
697:デフォルトの名無しさん
08/06/29 02:07:00
>>695
他のツールが生き残らなかったから、javaと比較するしかないって?
それ程の勢力じゃないだろう。
698:デフォルトの名無しさん
08/06/29 02:07:52
>>673
ResultSet.TYPE_SCROLL_INSENSITIVE や ResultSet.TYPE_SCROLL_SENSITIVE を指定してないか?
それ、インメモリで処理するからメモリを馬鹿食いするはず。
ResultSet.TYPE_FORWARD_ONLY で解決しない?
699:デフォルトの名無しさん
08/06/29 02:09:00
>>686
よくわからんが、英語版の画面に切り替えれば、1.4.2_17 ならダウンロードできたぞ。
700:デフォルトの名無しさん
08/06/29 02:09:23
>>694
できない。どうしてもやりたいなら、クラスに包んで渡してやる必要がある
701:デフォルトの名無しさん
08/06/29 02:12:38
>>699
ありがとうございます。
目当てのバージョンをダウンロードできました。
702:デフォルトの名無しさん
08/06/29 02:16:18
>>694
void callee(int[] x) { x[0] = 100; }
void caller() { int[] x = new int[1]; callee(x); System.out.println(x[0]); }
滅多にこんなことしないけどなー。// 適切にクラス設計すればまず出番がない。全くないとは言わんが。
703:デフォルトの名無しさん
08/06/29 08:56:56
691 名前: デフォルトの名無しさん [sage] 投稿日: 2008/06/29(日) 01:22:41
>>689
あんたは会話が成立するレベルの日本語を
操れるだけの能力を身につけてから出直しておいで。
692 名前: デフォルトの名無しさん 投稿日: 2008/06/29(日) 01:48:08
>>691
偉そうに言いながら「ら」抜き日本語かよww
正しくは「操られる」だろ
おまえこそまともな日本語使えよなww
★「操れる」は「ら抜き言葉」じゃないだろ。
★「食べれる」なら「ら抜き言葉」だから間違ってるが、「操れる」は正しい日本語だよ
★「操れる」=操ることができる
★「操られる」=誰かが自分を操っている
704:デフォルトの名無しさん
08/06/29 09:13:07
しつけえ
705:デフォルトの名無しさん
08/06/29 14:49:55
超初心者で申しあけございませんが、
画像を複数枚表示させたら画像がちらつきます。
repain();でもちらつきます。
どのワードを打ったら常にはり絵でいられるでしょうか?
マルチですけど応答がないのでこちらに質問します。
706:r545
08/06/29 15:21:55
超初心者ですが、質問があります。
Cで言う構造体は、Javaではどのように定義すれば良いですか?以下のやつだと
どうなるか教えてください。
typedef struct cell { // セル構造体
char *key ; // 格納されたキー
int next ; // 次のセル(同族のキー)
} CELL;
typedef struct bucket { // バケット構造体
int Bdepth ; // バケットのビット長
int nkeys ; // バケットに格納されているキーの個数
CELL cell[BSIZE] ; // キーを格納するハッシュテーブル
} BUCKET;
typedef struct directory { // ディレクトリー構造体
BUCKET *ref ; // バケットへのポインタ
} DIRECTORY;
707:デフォルトの名無しさん
08/06/29 15:31:52
>>706
class Cell {
String key;
int next;
}
class Bucket {
int Bdepth;
int nkeys;
Cell[] cell = new Cell[BSIZE];
}
class Dictionary {
Bucket bucket;
}
708:r545
08/06/29 15:52:20
どうもありがとうございます。
3つのクラスファイルにした方が良いんですか?それとも、メインを含めて全部
まとめた方が良いですか?
あと、classの前にpublicはいらないんですが?
709:デフォルトの名無しさん
08/06/29 15:55:36
>>708
publicなクラスはファイルを分ける必要がある。
そうじゃない場合まとめて書いても良い。
publicにするかどうかは用途による。
710:r545
08/06/29 16:04:35
709>>
Cで書かれたプログラムをJavaで書き直せっていう課題が出てて、Cで構造体が使われて
いるんですよ。難しいです。。もし良かったら、
URLリンク(rg550.hp.infoseek.co.jp)
にのせてあるんで見てもらえますか?
711:デフォルトの名無しさん
08/06/29 16:14:29
そういう課題ってどこで出るの?
高校?専門?大学?
712:デフォルトの名無しさん
08/06/29 16:18:43
質問です。
次のような、タブペインに、newでインスタンスとして生成したラベルlabelをタブの数だけ配置するプログラムがあります。
public class TabbedPaneSample1 {
JLabel label;
public TabbedPaneSample1() {
JFrame frame = new JFrame("TabbedPane Sample");
JTabbedPane pane = new JTabbedPane();
for (int i = 0; i < 5; i++) {
label = new JLabel("Tab" + i);
pane.addTab("Tab " + i, label);
}
frame.add(pane);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 200);
frame.setVisible(true);
}
public static void main(String[] args) {
new TabbedPaneSample1();
}
}
ボタンを押すなどしたときに「現在表示中の」ラベルの内容を書き換えるにはどうしたらいいでしょうか?
label.settext("A");などでは一番最後に貼り付けたラベルにメソッドが働いてしまうようです。
タブペインのgetSelectedComponent();メソッドでコンポーネントは取得できるようなのですが、
コンポーネントからそのメソッドを呼び出せるものなのでしょうか?
タブの数は不定なので、あらかじめラベルを用意しておく事は出来そうにないです。
713:デフォルトの名無しさん
08/06/29 16:21:36
>>710
つかロダのリストのどれやねん(笑
見た感じ直訳するか意訳するかがポイントかね。
コレクション使って書き直すか、Cのロジックでやってる部分をそのまま使うか。
そのまま直訳するならポインタをどう扱うかがポイントで、
意訳するなら処理の内容を理解してないと辛いかな。ソースは短くなると思うけど。
714:デフォルトの名無しさん
08/06/29 16:28:56
>>712
取得したコンポーネントをLabelでキャストしたらいいんじゃね?
715:デフォルトの名無しさん
08/06/29 16:40:16
>>714
キャストで出来ました!即答ありがとうございます
716:r545
08/06/29 16:51:55
713>>
すいません!課題は大学で出ました。
ロダの306.txtと310.txtと311.txtです。
Cプログラムをただ単にJavaに書き直せと言うことだそうです。
オブジェクト指向の考えはしなくて良いので全てまとめて良いらしいですが。
Javaは勉強中でして、ちょっと出来る気がしないので見てもらえますか?
よろしくお願いします
717:デフォルトの名無しさん
08/06/29 17:14:38
>>716
宿題スレじゃないからな、わからんとこだけワンポイントで質問しなされ
718:デフォルトの名無しさん
08/06/29 17:21:36
CとJava同時にやるとかおもしろいなぁ・・
719:デフォルトの名無しさん
08/06/29 19:46:05
つーかCをJavaのコードに直せとか
典型的なダメ教育だよな
720:デフォルトの名無しさん
08/06/29 19:49:33
逆にバリバリのオブジェクト指向で書いたjavaのコードをCに直させたら勉強になるかも
721:デフォルトの名無しさん
08/06/29 20:55:16
それJNI書くのと一緒じゃね
722:デフォルトの名無しさん
08/06/29 21:28:42
ナンダッテ?
723:r545
08/06/29 21:32:09
717>>
すいません。。
せめて、メイン関数だけJavaに直したのを教えてもらいたいんですが。。
少しづつやってるのですが不安で。残りはは、自分でやるので。
724:デフォルトの名無しさん
08/06/29 21:45:50
>>719-720
変な癖が付きそうで怖い。
725:デフォルトの名無しさん
08/06/29 21:58:55
Cでオブジェクト指向みたいなことをやってるのって、
GKT+あたりかな。
726:デフォルトの名無しさん
08/06/29 21:59:08
>>723
そもそもどっちかの言語をある程度使える状況になってからやる課題。
おまえさんには多分無理ということであきらめた方がいい
727:デフォルトの名無しさん
08/06/29 22:00:31
>>716
Cは読めるのか?
読めるならばどの部分がJavaに変換できないのかを質問してくれ
728:r545
08/06/29 22:24:22
727>>
Cは読めます。Cのメインは自分で作ったので。
メインが分らないんですが。。少しずつやってるんですけど。
729:デフォルトの名無しさん
08/06/29 22:32:25
質問です。
今、フルスクリーンとウィンドウを切り替えるようなものを作ろうとしているのですが
描画にはBufferStrategyでgetDrawGrapicsしたものを使用しています。
フルスクリーンからウィンドウに切り替える場合、ウィンドウにはなるものの
BufferStrategyがnullになってしまい描画処理が行えないという状況になりました。
少々強引ですが、runの頭でgetStrategyをし取得を試みたのですが上手くいきませんでした。
ウィンドウからフルスクリーンに切り替える場合setUndecoratedが実行できず
setUndecoratedを実行しないで切り替えると上と恐らく同じ理由で描画処理が行えませんでした。
もちろん、setUndecoratedにtrueを渡してフルスクリーンにしたいので
setUndecoratedを実行しないということはできればしたくありません。
よろしくお願いします。
730:デフォルトの名無しさん
08/06/29 22:37:07
>>728
メインの何処が分からないのかと
731:デフォルトの名無しさん
08/06/29 22:40:30
聞いてると
分からない所が分からない人なんじゃないのかなこの人
732:名無し
08/06/29 23:03:44
javaの影響でyoutubeが見れなくなってしまったんですが、どうすれば見れるようになりますか?
教えてください(>_<)
733:デフォルトの名無しさん
08/06/29 23:09:28
>>728
意地悪してるわけじゃないけど君の質問の仕方では答えのしようがないよ
きっと自分で何が分からないのかが分かってないんだと思うけど
そういう状態で人に物を聞くのは失礼というものですよ
社会に出る前にその癖を直したほうがいい
734:r545
08/06/29 23:22:06
728 731 733
すいません。遅れました。。
メインの変数定義からファイルを読み込むまでです。
int main (void){
FILE *fp; //ファイルポインタ宣言
char *a[HSIZE]; //格納用配列
int i; //ループ変数
char inv[100]; //入力値
char infile[80]="wordE100KR.dat";
double sec;
clock_t start, end;
DIRECTORY *directory;
int depth = 2; //バケットの深さ
if((fp = fopen(infile,"r")) == 0){
printf("ファイルオープンできません。\n");
exit(0);
}
i = 0; //初期化ループ変数初期化
while(fscanf(fp, "%s\n", inv) != EOF){ //キーの読込み
a[i] = strdup(inv); //ポインタ配列にデータを格納する.
printf("%s\n",a[i]);
i++;
if(i >= HSIZE)
break;
}
fclose(fp);//ファイルクローズ
735:r545
08/06/29 23:23:34
734をJavaにすると↓
public static void main(String args[]){
String a[]=new String[HSIZE];
String inv[]=new String[100];
int i;
double second;
clock_t start, end;
DIRECTORY[] directory;
int depth = 2;
i=0;
try{
BufferedReader f=
new BufferedReader(new FileReader("wordE100KR.dat"));
while((inv=f.readLine())!=null){
a[i] = inv;
System.out.println(a[i]);
i++;
if( i>= HSIZE)
break;
}
f.close();
}catch(FileNotFoundException e1){
System.out.println("NO File");
}catch(IOException e2){
System.out.println("Can not Open");
}
736:r545
08/06/29 23:24:14
合ってますか?
737:デフォルトの名無しさん
08/06/29 23:27:03
聞く前に試したら?
と言わざるを得ない
738:デフォルトの名無しさん
08/06/29 23:38:32
まぁファイル読み込みぐらい調べればすぐできるしな・・
次からが問題だなぁ
739:r545
08/06/30 00:44:08
737>>
動かしたんですが、警告は無視しても平気ですか。エラーは5個でたんですが。。
public class HashExtend {
static final int HM = 1048583; // 擬似キー生成時にハッシュ関数へ渡す素数
static final int BSIZE = 100; // バケットの容量
static final int BPOS_MAX = 100; // バケットの占有率上限での容量
static final int BPOS_MIN = 50; // バケットの占有率下限での容量
static final int BHM = 97; // セル格納時にハッシュ関数へ渡す
static final int BC = 29; //セル格納時に衝突した場合のハッシュの増分
static final int HSIZE = 100000;//配列のサイズ
上のコメント分が
警告: この文字は、エンコーディング MS932 にマップできません。
のように出るのですが。。
740:デフォルトの名無しさん
08/06/30 00:49:05
>>739
そりゃエディタの文字コードの設定か何かがおかしいだけ。
Windowsのメモ帳でソースを開いてみて、おかしいところが何とかして直すんだ。
741:r545
08/06/30 01:18:45
TeraPad でやってるんですが。
文字コードがSHFT-JISになっています。。分んないです。。
742:r545
08/06/30 03:29:22
740>>
すいません。解決できました。
しかし、次の問題が。。
HashExtend.java:46: 互換性のない型
検出値 : java.lang.String
期待値 : java.lang.String[]
while((inv = f.readLine())!=null){
^
HashExtend.java:47: 互換性のない型
検出値 : java.lang.String[]
期待値 : java.lang.String
a[i] = inv;
このエラーって、何ですか?invがString型になってないってことですか?
743:デフォルトの名無しさん
08/06/30 04:16:31
>>742
f.readLine() は String を戻すのであって String[] を戻すのではない。
BufferedReader を使ってファイルの読み込みをする場合、普通は
String line;
while ((line = f.readLine()) != null) {
System.out.println(line);
}
こんな感じ。
744:r545
08/06/30 06:00:29
742>>
どうもありがとうございます!!!Cと違って代入する方は
配列にしなくても良いってことですか?
String inv[]=new String[100];は
String inv;
にしてファイルを読み込みさせれば良いんですよね?
これならエラーは取れました!
745:デフォルトの名無しさん
08/06/30 06:30:31
>>744
URLリンク(java.sun.com)()
C言語が最低限理解出来てるならこれ見れば分かるだろ。
746:デフォルトの名無しさん
08/06/30 12:43:52
JSF&SSLの件有難うございました
何とかWeb.xmlをいじる方法で解決しました
747:デフォルトの名無しさん
08/06/30 16:11:27
最近JDK14→15になったのでGenericsで躓いています。
単体テストでフィールド変数の中身の確認が必要になり、
748:デフォルトの名無しさん
08/06/30 16:15:59
すみません途中で送ってしまいました。
単体対象クラスをTestというクラスだとすると
Class<? extends Test> cl = test.getClass();
Field fd = cl.getDeclaredField("fieldObjName");
Object obj = fd.get(test);
このfieldObjNameはtestの中にあるHashMap型の変数で、これが
Testクラスの持つclearメソッドでclearされていることを確認したいのですが、
ここからobjをHashMapに持っていく方法が分かりません。
そのままキャストすると勿論叱られます。
よろしくお願いいたします。
749:デフォルトの名無しさん
08/06/30 16:35:45
>>748
なんて言って叱られるの?
750:デフォルトの名無しさん
08/06/30 16:59:53
Java
751:747-748
08/06/30 17:03:08
Type safety: Unchecked cast from Object to HashMap<String,ResultSetMetaData>
ObjectからHashMapへの未検査キャストを叱られているのだと思います。
単体テスト用テストケースの中で、clear前はこのフィールドがcontainsKeyで
与えられたキーのオブジェクトを持っており、clear後は持っていないことを確認する
つもりだったのですが。
どうしたらいいんだろう。
752:デフォルトの名無しさん
08/06/30 17:10:19
>>751
Object から総称型へのキャストは怒られる。
警告つきでもいいならコンパイルオプションで -Xlint:unchecked つければコンパイルは通る。
警告抑止したいならメソッドにアノテーション @SuppressWarnings("unchecked") つけろ。
753:デフォルトの名無しさん
08/06/30 17:18:03
>>751
HashMap<String,ResultSetMetaData>にキャストしようとするから警告が出ているのね。
使い方としておかしいんだろうけど、それでも動くし、
HashMapにキャストする分には警告も出ないのでは?
754:747-748
08/06/30 17:47:25
>>752、>>753
ありがとうございます。
やっぱりこの場合は警告無視するしかないんでしょうか。
例えばinstanceofとかでobjectがhashMapのインスタンスであることを確認するとか
なにかそういうような必要な手順があって、それをすれば叱られなくなるのかと思ってました。
ちなみにただのHashMapにキャストしようとすると警告が増えますw
HashMap は raw 型です。 総称型 HashMap<K,V> への参照は、パラメーター化する必要があります
とりあえず@SuppressWarnings付けて逃げました。
どうもありがとうございました。
もう少し頑張ってGenerics勉強します。
755:デフォルトの名無しさん
08/06/30 17:47:33
>>751
HashMap<?,?> にならキャストできるはず
756:デフォルトの名無しさん
08/06/30 17:52:02
もう終わったらしいよ
757:デフォルトの名無しさん
08/06/30 17:57:13
らしいね
無駄な労力になったが、まぁ暇潰しだし
758:747-748
08/06/30 18:00:52
>>755
うぉぉぉぉぉぉぉぉぉホントだー!ありがとうございます!!
なんでなんだろう奥が深すぎる_| ̄|〇
759:デフォルトの名無しさん
08/06/30 18:19:58
>>754
> HashMap は raw 型です。 総称型 HashMap<K,V> への参照は、パラメーター化する必要があります
それは、GenericじゃないHashMapに何かを詰めようとしているからでは?
クリアを確認したいと言う話だったような・・・?
760:747-748
08/06/30 19:27:31
fd.get(test)でアクセスしようとしているprivateフィールドfieldObjNameは、
HashMap<String,ResultSetMetaData>が本来の型なんですが。
1)
HashMap<String,ResultSetMetaData> hoge =
(HashMap<String,ResultSetMetaData>)fd.get(test);
→Type safety: Unchecked cast ~と叱られる
2)
HashMap hoge = (HashMap)fd.get(test);
→HashMap は raw 型です。 総称型 HashMap<K,V> への~と叱られる
3)
HashMap<?, ?> hoge = (HashMap<?, ?>)fd.get(test);
→おっけー!\(^o^)/
かくして3)の後、test.clearして、hoge.containsKeyがfalseになることを
確認できました。
いろいろ教えていただいて本当にありがとうございました。
761:デフォルトの名無しさん
08/06/30 22:46:01
質問っす
javaからphpにデータを送ろうとしていて、うまくphpにデータを送信できずこまってます
環境 ローカル
php環境 Apach2
String data = "data=1";
URL cgiURL=null;
try {
//URLの生成
try{
cgiURL = new URL("URLリンク(localhost)");
}catch(MalformedURLException e){
e.printStackTrace();
}
//設定
HttpURLConnection uc = (HttpURLConnection)cgiURL.openConnection();
uc.setRequestMethod("GET");
uc.setDoOutput(true);
uc.setUseCaches(false);
uc.setAllowUserInteraction(false);
// CGIへの書き込み用ストリームを開く
OutputStreamWriter pw = new OutputStreamWriter( uc.getOutputStream() );
// CGIにデータを送信する
pw.write(data);
// ストリームを閉じる
pw.flush();
pw.close();
}catch (MalformedURLException e) {
e.printStackTrace();
}catch (IOException e) {
e.printStackTrace();
}
apacheのログデータをみてみると、アクセスログさえのこっていません.php単体では動作するのですがなぜかjavaからphpにはできませんでしたどういう問題点があるのでしょうかご教授ください
762:>>761
08/06/30 22:47:08
エラーはとくにありませんでした
763:デフォルトの名無しさん
08/06/30 23:10:00
>>761
connect() をしていない所為か?
764:デフォルトの名無しさん
08/06/30 23:30:16
>>761
GETでDoOutputは有り得ない。
765:r545
08/06/30 23:57:58
以下のCをJavaにすると、mallocの領域確保のところはどうやって
表すのですか??調べたらnewを使うってのが出たんですが、使い方が分らない
です。。
// 入力引数: depth : ディレクトリのビット長
// 戻り値 DIRECTORY : ディレクトリ
DIRECTORY *create_directory(int depth) {
DIRECTORY *directory ;
directory = (DIRECTORY *)malloc(sizeof(DIRECTORY) * (unsigned int)pow(2, depth)) ; // 2のべき乗倍の領域を確保
if (directory == NULL) {
fprintf(stderr, "領域確報に失敗しました\n\n") ;
exit(EXIT_FAILURE) ;
}
return directory;
}
766:デフォルトの名無しさん
08/07/01 00:00:43
アプレットを使って定義した範囲での座標の取得の仕方は分かるんですが、アプレット以外の時はどうすればいいのでしょうか?
画面左上から(x,y)の地点にマウスカーソルがある。みたいなプログラムを作りたいです。
(簡単に言うとペイントの右下に表示されるようなのの全画面ver)
このクラスを使えばできる。みたいな感じで良いので教えてください。
767:デフォルトの名無しさん
08/07/01 00:05:38
>>765
JavaとCは違うんだから無理なこと考えるな
何をするプログラムでそれを満たすような実装であることが重要なだけ
先にやさしいJavaでも読んでから出直せ
768:デフォルトの名無しさん
08/07/01 00:15:37
>>765
Cのことは忘れて1からjava勉強しろ。考え方が違うから、それをJavaに1:1マッピングできたところで意味がない。
769:>>761
08/07/01 00:30:32
>>764
すみません、POSTの間違いでした
POSTでも結果はかわりません
connect()
は参考サイトもしてなかったのでしてないです
しても結果はかわりませんでした
770:>>761
08/07/01 00:32:59
swingでウィンドウつくってやってるのでアプレットではないです
もしかしてそこらへんで通信できないのでしょうか
771:デフォルトの名無しさん
08/07/01 01:15:46
>>765
コードの意味を考えようよ。
pow(2,depth)個のDIRECTORYの場所を用意しているだけでしょ?
772:デフォルトの名無しさん
08/07/01 01:25:12
>>765
その宿題はJavaで明示的にメモリを管理させようとしてるの?
それとも結果が同じならOKなの?
コテハンつけてても一々過去のレスさかのぼって見ないんだから
宿題なら宿題である事と出題者の意図をださなきゃ答え様がないよ
773:デフォルトの名無しさん
08/07/01 02:43:47
イテレータとコレクションに関する質問です.
クラスHogeCollectionはgetFoos()でiteratorを返すのですが,
HogeCollection h = new HogeCollection();
h.add( new Foo() );
for(Iterator<Foo> it = h.getFoos(); it.hasNext(); ){
Foo f = it.next();
}
h.getFoo()の部分で
"型の安全性:型Iteratorの式は、未検査の型変換を使用して
Iterator<Foo>に準拠するようにする必要があります。"
という警告がでます.
かといって
HogeCollection<Foo> h = new HogeCollection<Foo>();
とすると
"型HogeCollectionは総称ではありません。引数<Foo>でパラメータ化できません。"
とエラーになります.
LinkedList<E>クラスのときはできました.
LinkedList<Integer> l = new LinkedList<Integer>();
l.add(1);
for (Iterator<Integer> it = l.iterator(); it.hasNext();)
System.out.println(it.next());
HogeCollectionの場合,どうすれば正しい構文になるのでしょうか.
Eclipse, JavaSE6です.
774:デフォルトの名無しさん
08/07/01 06:48:49
>>773
簡単な順に、
getFoos()の戻りがIterator<Foo>になるよう実装する。
中身ができてるなら、受け取った後でキャストするだけでもいい。
または、
HogeCollection implements Itarable<Foo> として、実装する。
この場合、イテレタの取得はiterator()で。
または、
HogeCollectionを総称化して、
HogeCollection<E> implementes Itarable<E> として実装する。
この場合、宣言と生成時は
HogeCollection<Foo> h= new HogeCollection<Foo>();
イテレタ取得は iterator();
Collection<E>を実装しないなら、HogeCollectionという命名がすでに紛らわしい。
総称の連鎖は面倒みてるときりがないので、どっかでキャストで断ち切るのも大事。
775:デフォルトの名無しさん
08/07/01 08:42:59
>>774
アドバイスありがとうございます.
あと出しのような形になってしまい,大変申し訳ないです.
そのHogeCollectionやgetFoos()は外部の(オープンソース?というのかはわかりませんが)
jarファイルに入っていたAPIを使っていまして,私がソースを改変するのは避けたいです.
方法1,2,3もすべて外部jarのソースをいじる必要がありますよね?
>Collection<E>を実装しないなら、HogeCollectionという命名がすでに紛らわしい。
私もそう思います.iteratorを得るメソッドもiterator()になってないですし.
>>752さんのレス見て
@SuppressWarnings("unchecked")で警告は消せますが,根本的な解決になっていなくて,
少し気持ち悪いですが,あきらめるしかないでしょうか.
776:デフォルトの名無しさん
08/07/01 08:52:40
そーゆー手が出せない(出したくない)状況で妥協するための方法だから、
@SuppressWarningsで回避しとくのだ妥当かと。
777:デフォルトの名無しさん
08/07/01 11:20:50
Iterator<?> it = h.getFoos()
778:デフォルトの名無しさん
08/07/01 20:49:41
皆さんにお聞きしたいのですが、さっき始めてJavaをダウンロードして環境変数を変えようと思ったら、環境変数の欄がありませんでした。
どうやって変えるか教えてください。
OSはXPでJavaはバージョン6です。
779:デフォルトの名無しさん
08/07/01 20:56:22
>>778
path?
コントロールパネル→システム→環境変数
あれば編集、なければ新規で作れば良いよ。
780:デフォルトの名無しさん
08/07/01 21:03:07
>>779
アリガトウございました。
解決しました。
781:デフォルトの名無しさん
08/07/01 22:15:56
先日質問に来た者です。
フルスクリーンとウィンドウの切り替えはなんとなくできるようになったのですが
なんだかできたりできなかったりとイマイチ安定しません。
そこで助言をいただきたいと思いました。
URLリンク(rg550.hp.infoseek.co.jp)
325です。
よろしくお願いします。
782:デフォルトの名無しさん
08/07/01 22:45:37
>>781
とりあえず、
> private boolean isFullScreenMode=true;
と言うのは合ってるの?
783:デフォルトの名無しさん
08/07/01 23:17:18
>>782
最初をウィンドウにするかフルスクリーンにするかというところなので問題ないはずです。
切り替え自体ができたりできなかったりという状況なのでそれぞれの状態での動作は問題ない
はずなのですが・・・。
784:デフォルトの名無しさん
08/07/01 23:25:43
安定しないのは仕方ないような気もするな
グラフィックボードに依存しちゃう処理だろうし
個人的には・・・
起動時にパラメータでフルスクリーンかどうかで起動方法を変えるほうが良いと思う。
もしくは起動時に起動モードを選択するパネルだけ出して、その後メインフレームをどっちかのモードで起動かね。
785:デフォルトの名無しさん
08/07/01 23:30:29
安定させたいならJOGL+AWTが良い
786:デフォルトの名無しさん
08/07/01 23:39:03
JOGLって3Dで使うもんだーって聞いていたのでよくわからないのですが
OpenGLの利用なんてまだ先な気がするので起動時のパラメーターで切り替えるようにしようかと思います。
切り替え自体はオマケみたいなもんだとわりきってみます・・・
787:デフォルトの名無しさん
08/07/01 23:50:28
>>783
キーイベントとrun()に
synchronized(bufferStrategy){
をかけてやると安定するだろうか?
788:デフォルトの名無しさん
08/07/02 07:01:33
BigDecimalでの値を、小数点以下を切り上げる方法って
あるんでしょうか?
Math.ceilメソッドに当たるメソッドってないですよね。
BigDecimal bd = new BigDecimal(10000.1)
を
結果が10001.0になるようにしたいのですが・・・。
ご教示お願いいたします。
789:デフォルトの名無しさん
08/07/02 07:24:51
setScaleでモード指定して1で割れば?
790:デフォルトの名無しさん
08/07/02 10:00:42
>>788
bd.setScale(0, RoundingMode.CEILING)
791:デフォルトの名無しさん
08/07/02 11:09:06
ヒントありましたら教えてください。
Swing で JTable に RowSorter を設定してソートしてますが、
ソート対象の列のヘッダに「▲」「▼」というソート対象&方向を示す
マークが付くのを止めたいのです。
列幅がぎりぎりなのでマークが付くとヘッダ文字列が省略されてしまって…。
どうやったら出来るものなのか(プロパティ設定するだけとか
レンダラ作ってなにかメソッド無効化しろとか)情報ありましたら教えてください。
792:デフォルトの名無しさん
08/07/02 11:34:16
教えてください。
現在の日付の前日を求めたいのですがどうしたらよいでしょうか?
793:デフォルトの名無しさん
08/07/02 11:53:13
ほい
URLリンク(sasuke.main.jp)
794:デフォルトの名無しさん
08/07/02 12:36:55
>>793
ありがとうございます!
795:デフォルトの名無しさん
08/07/02 15:15:16
>>794
これくらいぐぐれるようにならないとだめだぜべいびー
796:デフォルトの名無しさん
08/07/02 15:36:13
javaアプレットを作ろうとeclipseをインスコしたんですが、参考にしているサイトに載っているgetImageメソッドが使えませんでした。
仕方がないのでNetBeanでも試してみましたが、こちらでも使えなくて困ってます。
swingのImageIConも使えないので何かアプレット用の設定が必要なのだろうとは思いますが、調べてもわからないのです。
一体どのような設定が必要なのでしょうか…
797:デフォルトの名無しさん
08/07/02 15:38:36
参考にしているサイトでわかるとおもうか?
リンクぐらいつけれw
798:デフォルトの名無しさん
08/07/02 15:44:31
一応、参考にしているサイトはここなんですが、eclipseの使い方に関してはノータッチなのです。
URLリンク(wisdom.sakura.ne.jp)
import java.applet.Applet すればいいと思ってたんですが、違うんでしょうか…
799:デフォルトの名無しさん
08/07/02 15:58:38
>>798
どれよw
800:デフォルトの名無しさん
08/07/02 16:09:51
うわ、自己解決でけた!
class宣言にextends Applet無かったです…
801:デフォルトの名無しさん
08/07/02 17:10:12
>>89
無理やり抜くの痛そう、くしゃみ出る
普通にはさみで切ればいいさ
なんかシェーバーみたいなので切るやつあるけどアフロ山田読んでしまったせいで怖くて手が出せないぜw
802::デフォルトの名無しさん
08/07/02 23:43:45
お絵かきチャットをやろうとしたら「javaがインストールされていません。」とでて、出来ません。
最新のjavaはインストールしております。
インターネットオプションのセキュリティで「java アプレットのスクリプト」
「アクティブ スクリプト」「スクリプトの貼り付け処理による許可」を有効にしてます。
詳細設定でjavaの使用を設定してますが、
javaVM、MicrosoftVMというものはありませんでした。
インターネットセキュリティはNorton360を使っています。
ファイアウォールのプログラムルールでのjuschedは許可してます。
インターネットで色々調べたところ
javaが無効で、javaスクリプトは有効でした。
javaを有効にするにはどうすればいいでしょうか。
803::デフォルトの名無しさん
08/07/02 23:50:43
すみません。スレ間違いました
804:デフォルトの名無しさん
08/07/02 23:54:24
もし知ってる人がいたら教えてください
ActiveObjectsっていうORマッパなんですが
複合主キー使えるんでしょうか?
805:788
08/07/03 00:35:34
>>789
>>790
ありがとうございます。
setScaleメソッドを使えばよかったんですね。
気付かなかった・・・不覚。
806:デフォルトの名無しさん
08/07/03 01:46:16
>>804
こっちで聞くが吉
スレリンク(tech板)
807:デフォルトの名無しさん
08/07/03 13:01:25
インターネット一時ファイルは通常のファイルとは異なる扱いですか。
一時ファイルに対して
FILEのインスタンスを生成しようとしたらFile Not Foundとなってしまいました。
生成する方法はあるのでしょうか?
808:デフォルトの名無しさん
08/07/03 15:01:13
>>807
そこにあるのは見せかけ?だけで実体のファイルは別の所にある。
File#list()で一時ファイルのディレクトリ一覧を見ると実際の構造が分かると思う。
で、具体的に一時ファイルがあるのは直下のContent.IE5ってところだけど、
このディレクトリは一時ファイルのディレクトリに表示されない。
なので直接アドレスバーに\Temporary Internet Files\Content.IE5って続けて書いてアクセスする。プログラムから参照する場合も同様に。
809:デフォルトの名無しさん
08/07/03 15:55:35
例外クラスの大元であるExceptionクラスのサブクラスを作りたいときに
あなたが定義したほうがよいものを記述せよ、という問があるのだが
ぶっちゃけよくわからん
優しく教えて欲しいなり
810:デフォルトの名無しさん
08/07/03 16:27:04
その問は間違っている
例外クラスの大元は Throwable だ
811:デフォルトの名無しさん
08/07/03 17:55:06
その例外クラスを投げるクラスの目的によって違うだろ。
812:デフォルトの名無しさん
08/07/03 18:06:37
>>808
ありがとうございます。
無事目的の動作をさせることができました。
list()も使って確認してみました。
そういう構成になってたんですね。
813:デフォルトの名無しさん
08/07/03 18:56:03
>>809
問題の定義自体があいまい過ぎ
814:デフォルトの名無しさん
08/07/03 18:58:21
>>809
問題があってそれに対する独自の例外クラスを作るとかじゃないのか・・
好きなの作れと言われても漠然としてるなぁ
815:デフォルトの名無しさん
08/07/03 19:04:56
>>814
809ですがその通りなんです。問題文がこれで全てのためあいまい過ぎて
途方にくれてる状態です
816:デフォルトの名無しさん
08/07/03 19:22:54
URLリンク(rg550.hp.infoseek.co.jp)
332番のコードですが、MainCanvas()のコメントをはずすと
ぬるぽになります。なぜでしょうか?
817:デフォルトの名無しさん
08/07/03 19:27:51
>815
理解できないときは、まず出題者に質問しましょう
問題文をそのまま捉えれば、
・コンストラクタ(引数無し・文字列)
・有益な例外情報を得るためのコンストラクタとメソッド
を定義する必要があると思う。
818:デフォルトの名無しさん
08/07/03 19:41:39
>>816
kuni[1] = new Kuni();
kuni[2] = new Kuni();
kuni[3] = new Kuni();
が必要
819:816
08/07/03 20:13:03
回答ありがとうございます。できれば、このあたりのことを
日本語で解説しているwebサイトなどはないでしょうか?
820:デフォルトの名無しさん
08/07/03 20:25:49
サイトは知らないけど
booleanの初期値はfalse、intやfloatの初期値は0、オブジェクトの初期値はnull
ってことくらい、どこにでも載ってそうな気がする
new したばかりの Kuni[17] には、初期値として 17 個の null が詰まってる
インスタンスを new して代入しないと、ぬるぽは当然
821:816
08/07/03 20:52:47
ありがとうございました。なんでもかんでもnewをすれば
インスタンスがはいるものだと思ってました。
また質問しにくることがあると思いますがそのときは
よろしくお願いします。
822:デフォルトの名無しさん
08/07/04 10:57:20
パッケージ名には、企業のドメイン名を逆順でつけるのが推奨されていますが、
うちのドメイン名にはハイフンがついているのでそのままではパッケージ名に出来ません。
こういう場合に推奨される命名規約ってあるのでしょうか?
823:デフォルトの名無しさん
08/07/04 11:03:02
sun-java→sunJavaとか
824:デフォルトの名無しさん
08/07/04 11:34:50
>>822
ある、アンダースコアにすべし。
URLリンク(java.sun.com)
>If the domain name contains a hyphen, or any other special character not allowed in an identifier (§3.8),
>convert it into an underscore.
825:デフォルトの名無しさん
08/07/04 16:02:38
証券会社のトップとかに表示される為替レートをとりたいんですが、
ConnectURLだとやはりその部分が表示されません。
ああ言ったデータを読み取ることはJavaではできないでしょうか。
826:デフォルトの名無しさん
08/07/04 16:04:20
>>825
たとえばどのページ?
827:デフォルトの名無しさん
08/07/04 16:13:16
レスありがとうございます。
証券会社だとマネーパートナーとかのトップから落としたいのですが。
828:デフォルトの名無しさん
08/07/04 16:22:12
>>827
パケットキャプチャすればURLわかったよ。
そのURLでゲットすれば取れたよ。
829:デフォルトの名無しさん
08/07/04 16:37:05
なんと!
自分の未熟さがわかりました・・・
いまJava始めて2ヶ月ほどなのですが、パケットキャプチャという単語すら知らず。
自分も早く答えれる側になれるようがんばります。
ありがとうございました。
830:デフォルトの名無しさん
08/07/04 16:54:22
>>829
うむ。精進しなされ
831:デフォルトの名無しさん
08/07/04 16:55:05
脆弱なインターフェイスなのに好きだね~
そのサイトがデザインや仕組みを変えてこないとは限らないだろうに
832:デフォルトの名無しさん
08/07/04 17:29:11
元気な人が居るなw
>>831
確かに思うけど、個人ではそれが限界なのかも。まさか銀行に金払って送ってもらうほどでもないし。
>>829
いきなりパケットキャプチャ城ってのも酷だな
そんなことはどうでもいいんだけど、おすすめ2ちゃんなるに育児が入ってるのが地味におもしろい
833:319
08/07/04 18:22:36
自己組織化(雪の結晶の成長とか貝殻の形成とか砂浜の造成など…)をグラフィカルに表示するような Java を書いてみたいのですが、そういったソースコードはどこかに落ちていませんでしょうか?
もしくはそういったページをご存知でしたら教えていただけると嬉しいです。
834:319
08/07/04 18:31:20
「自己組織化」について学問・理系板の「全般」「物理」「化学」「生物」「機械・工学」「ロボット技術」「情報システム」「情報学」「シミュレート」「未来技術」「地球科学」 あたりはタイトル一覧を全て探してみたのですが見付かりませんでした。
他の分野は何となく無さそうだったので調べていません。「化学」と「生物」で見付からなかったのは驚きでした。
835:デフォルトの名無しさん
08/07/04 18:40:13
>>833
URLリンク(homepage3.nifty.com)
836:319
08/07/04 20:18:14
>>835
ありがとうございます!
837:デフォルトの名無しさん
08/07/04 20:19:53
strutsのActionServletやActionFormを継承したクラスのクラス編集に直列化できないフィールドを追加すると、
シリアライズしたときにエラーになると思いますが、実際この辺をシリアライズするのは
ウェブコンテナだと思いますが、コンテナがシリアライズ失敗したときにはシリアライズをあきらめるだけなので、
クラスタ構成をしていなければ問題無しと考えてよろしいでしょうか?
838:デフォルトの名無しさん
08/07/04 23:46:45
「'else'への'if'がありません。」と出たのですが、エラーを示されてる文には「else if」と入力されており、エラーの意味がわかりません。
どうすればいいですか?
839:デフォルトの名無しさん
08/07/04 23:53:47
>>838
if(~){
~
}else if(~){
~
}
の最初のifが無いんじゃね?
840:デフォルトの名無しさん
08/07/04 23:55:42
>>839
それはあります。
なんでできないのかいまだにわけがわかんないです。
841:デフォルトの名無しさん
08/07/05 00:01:14
該当部分のコードを貼るんだ
このままだと誰にもエスパー回答しかできないと思うが
842:デフォルトの名無しさん
08/07/05 00:03:59
どうせ{}忘れだろな~と
843:デフォルトの名無しさん
08/07/05 00:04:46
ソースの形を変えてみたら、少し改良の問題は残るものの一応コンパイルできました。
ただ、またこういうトラブルが起きたときに困りそうなので、とりあえず一通りソース貼ってみます。
(前略)
int num = (int)(Math.random()*11);
int N;
do{
System.out.println("1~10までの整数を入力してください。");
BufferedReader br =(以下略)
String str = br.read.line();
int num2 = Integer.parseInt(str);
if(num == N)
break;
else if(num > N)
System.out.println("もっと大きいです。");
else if(num < N)
System.out.println("もっと小さいです。");
else if((num != N && N > num+2)||(num != N && N < num-2))
System.out.println("もっと大きいです。");
System.out.println("惜しい");
else if((num != N && N < num+2)||(num != N && N < num-2))
System.out.println("もっと小さいです。");
System.out.println("惜しい");
}while(true);
System.out.println("あたりです。答えは"+num+"です。);
(以下略)
コンピュータがランダムで出した数字に対して、数字を入力し、正解していたらあたり、はずしていたら「もっと小さいです。」などを表示し、さらに誤差が±2以内であれば「惜しい」と表示されるプログラムです。
844:デフォルトの名無しさん
08/07/05 00:08:06
>>842
あなたは何時もただしい。
845:デフォルトの名無しさん
08/07/05 00:24:30
>>828
そのURLは
URLリンク(www.moneypartners.co.jp)
ですか?いろいろ試したんですが・・・
846:デフォルトの名無しさん
08/07/05 00:38:22
>>843
ifで{}が省略できるのは処理が1行のみのとき。
else if((num != N && N > num+2)||(num != N && N < num-2))
System.out.println("もっと大きいです。");
System.out.println("惜しい");
else if((num != N && N < num+2)||(num != N && N < num-2))
System.out.println("もっと小さいです。");
System.out.println("惜しい");
ここでelse if内にSystem.out・・・が2あるからダメかと。
あと、上のほうでnum == Nとしてるからnum != Nって省略してもいいと思うけど。
847:デフォルトの名無しさん
08/07/05 00:49:57
質問です
JavaBeansについて調べようと思ったのですが
EJBとかの本はたくさん出てるのに、
デスクトップアプリで使いそうな単なるJavaBeansの入門書とかの情報
は随分と古い本しかみつからないんですが、
もう使われてない技術なんでしょうか?
848:デフォルトの名無しさん
08/07/05 00:55:16
>>846最終行
上の方云々の前に、
N > num+2 ⇒ num != N
は自明だし、そもそも
num == N
num > N
num < N
で全部じゃないかというツッコミが…
>>843は論理式の勉強をして、カルノー図くらい書けるようになるのが先決だな
849:デフォルトの名無しさん
08/07/05 01:04:42
>>833
ぐぐってみた。
URLリンク(www001.upp.so-net.ne.jp)
URLリンク(www2.ttcn.ne.jp)
URLリンク(ja.wikipedia.org)
意外な所だけどこのスレがいいかも。
【ダンジョン】 自動生成 2 【地形】 @ゲーム制作板
スレリンク(gamedev板)
850:デフォルトの名無しさん
08/07/05 01:44:13
>>847
ググレば充分
JavaBeansは別に難しい技術じゃなくて、こういうルールで作ろうぜっていう決まりみたいなもん
XMLのルールはあるがどのようにXMLを使うかは技術次第とかそんな類
851:デフォルトの名無しさん
08/07/05 02:58:08
>>848
>int num2 = Integer.parseInt(str);
入力してるのは N じゃなく num2 だろというツッコミも…
852:791
08/07/05 05:56:40
自己解決しました。
DefaultTableCellHeaderRenderer のソースをやっと見られまして、アイコンとして設定していることが分かりました。
以下のレンダラを JTableHeader に設定することで「▲」「▼」が付かなくなりました。
class TableCellHeaderRenderer extends DefaultTableCellHeaderRenderer {
private static final long serialVersionUID = 1L;
@Override
public void setIcon(Icon icon) {
if(icon == UIManager.getIcon("Table.ascendingSortIcon") ||
icon == UIManager.getIcon("Table.descendingSortIcon") ||
icon == UIManager.getIcon("Table.naturalSortIcon")) return;
super.setIcon(icon);
}
}
853:デフォルトの名無しさん
08/07/05 06:08:13
>>843
なんという予想通りw。一応まとめ↓
// 前略。でも int N=Integer… ← int num2=Integer・・・ だよね
// >843のif(N==num)のところから置き換え
if(N<=0 || 10<N) continue; // 入力が1~10でなければループの先頭からやり直す
if(num==N){ // 正解の場合。ループを抜ける
System.out.println("あたりです。答えは"+num+"です。"); //正解のときに表示するんだから普通ここに書くべき
break;
}
if(num < N){
System.out.println("もっと小さいです。");
}else{ // すでに==にはなり得ないのでelseで十分
System.out.println("もっと大きいです。");
}
// ↓ここにelseをつけないのが重要。else ifは、それ以前のifがヒットした時に無視される
if(num-2 <= N && N <= num+2){ // num-2 <= N <= num+2 の意味。
System.out.println("惜しい");
}
} while(true);
数直線にしてみるとわかると思うが、else if((num != N && N… あたりの不等号が明らかにおかしい。
if((num != N && N > num+2)||(num != N && N < num-2)) には、
あと、random()は0もとり得るので、ソコは
int num = (int)(Math.random()*10) + 1; とかのほうがマシかと。
いや、Javaはあんま知らんから違ってたら誰か直して。
854:853
08/07/05 06:11:03
ミスった。Shift+Enterしてもたotz。
「あと、random・・・」の前の行は、
「if((num != N && N > num+2)||(num != N && N < num-2)) には、N=100もマッチするはず。」
と書きたかった。
855:デフォルトの名無しさん
08/07/05 07:04:48
javaコントロールパネルが開きません。
コントロールパネルからjavaのアイコンをクリックすると
「C:\Program Files\Java\jre1.6.0_06\bin\javacpl.exe」
と表示されるので、「javacpl.exe」をクリックすると今度は
「C:\Program Files\Java\jre1.6.0_06\bin\javaw.exe -Xbootclasspath/a:"C:\Program Files\Java\jre1.6.0_06\bin\..\lib\deploy.jar" -Duser.home="C:\Documents&Settings\ユーザー名" com.sun.deploy.panel.ControlPanel」
と表示されます。
どうか対処法をご教授くださいませ。
856:デフォルトの名無しさん
08/07/05 11:38:01
Ruby の File#truncate(バイト数) のように、
ファイルサイズを指定バイト数にするには、Java ではどうしたら良いのでしょうか。
857:デフォルトの名無しさん
08/07/05 11:51:08
>>856
RandomAccessFile raf = new RandomAccessFile(path, "rw");
raf.setLength(バイト数);
raf.close();
標準APIには、メソッド一発でできる様な便利メソッドはなかったような。
858:デフォルトの名無しさん
08/07/05 12:08:21
>>852
へえ、こんなんあるんだ
859:デフォルトの名無しさん
08/07/05 19:51:07
java初めて8年の初心者です。嘘です。あんまり初心者じゃない。
仕事で、金勘定とか在庫管理とか何だとか、いくつかのプロジェクトを周ってきたんだけど
「コード」「コード定数」とかいう言葉がよく使われますよね?
業界標準と考えていいのかな?
(お前のプロジェクトだけだwwって事なら、後で解説します・・)
んで、今まで周ってきた、どの会社のどのプロジェクトでも、このコードを
普通のクラスと普通の public static final String で定義する決まりになってるんですが
enum を使いたくない理由って何なのでしょうか?
DBに値を突っ込みにくいとか、あるいはDBからエンティティを復元しにくいとか?
でも enum を使えば、麺種別コードを入れるべき所に間違えてダシ種別コードを入れてしまうような
事故がなくなるはずなのに。
この事故のせいで、数十人月は損してるんじゃないかな?特に今回のアソコは・・・
860:デフォルトの名無しさん
08/07/05 20:12:08
>>859
enumはjava5からだから昔からあるシステムのメンテや追加だとまだ使いたがらないことが多い。
861:デフォルトの名無しさん
08/07/05 20:24:00
うちのシステムではなぜか定数はinterface派だな。
public interface Foo {
int AAA = 1;
String MSG = "UGO UGO";
}
862:デフォルトの名無しさん
08/07/05 20:36:42
>>859
「よく解らないので(知らないものは)採用できない」と言われたことあるぜw
863:デフォルトの名無しさん
08/07/05 21:05:58
むしろ定数自体が邪悪
864:デフォルトの名無しさん
08/07/05 21:31:43
うちもインターフェイスかな・・
Static importとか使う?
865:デフォルトの名無しさん
08/07/05 21:36:35
>>864
import java.util.*; のような表記は全然OKだけど、static import は使わない。
866:デフォルトの名無しさん
08/07/05 22:05:38
個人のサンデープログラマは気ままにEnumのみ
867:デフォルトの名無しさん
08/07/05 22:35:05
質問です。
画像ビューワみたいなのを作ってます。
画像を JScrollPane の中央に表示させたいんですけど、
ウィンドウのサイズをいじると左上に移動してしまいます。
これをなくしたいのですが。。。以下ソースコード(1/2)
package test;
import java.awt.*; import java.awt.image.*; import javax.swing.*; import javax.swing.event.*;
public class JSTest extends JFrame implements ChangeListener{
private JScrollPane sp;
private MyCanvas mc;
public JSTest(){
mc = new MyCanvas();
sp = new JScrollPane(mc);
getContentPane().setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS));
getContentPane().add(sp);
JSlider js = new JSlider(20, 300, 100);
js.addChangeListener(this);
getContentPane().add(js);
pack(); setVisible(true);
}
public void stateChanged(ChangeEvent e){
int newScale = ((JSlider)e.getSource()).getValue();
mc.setScale(newScale);
// サイズに合わせて位置を調整
sp.getViewport().setViewPosition(new Point(newScale - 100, newScale - 100));
repaint();
}
public static void main(String[] args){ new JSTest();}
868:デフォルトの名無しさん
08/07/05 22:37:33
class MyCanvas extends JComponent{
private int scale = 100;
private Image img;
private Dimension size;
public MyCanvas(){
int[] pixelData = new int[240 * 240];
for(int i = 0; i < pixelData.length; i++) pixelData[i] = (255 << 24) | (int)(Math.random()*256*256*256);
MemoryImageSource mis = new MemoryImageSource(240, 240, ColorModel.getRGBdefault(), pixelData, 0, 240);
img = createImage(mis);
size = new Dimension(240, 240);
}
public int getWidth(){ return size.width * scale / 100;}
public int getHeight(){ return size.height * scale / 100;}
public void setScale(int scale){
this.scale = scale;
}
public void paintComponent(Graphics g){
g.drawImage(img, 0, 0, getWidth(), getHeight(), null);
}
}
}
ソースコード終わり。getWidth()とかオーバーロードしてるのがまずいんですかねぇ。。
869:デフォルトの名無しさん
08/07/06 03:16:22
>>867
スクロールペインで全体の一部を表示する為の機能なので、通常の使い方ではないのでは?
真ん中に表示だと、こんな感じ。
URLリンク(rg550.hp.infoseek.co.jp)
870:デフォルトの名無しさん
08/07/06 04:07:52
>>869
ごめんなさい
スクロールできてなかった。
URLリンク(rg550.hp.infoseek.co.jp)
871:デフォルトの名無しさん
08/07/06 08:28:52
JPanelにBufferedImageをadd出来た気がする
872:867
08/07/06 09:50:38
>>869,870
うおお。なるほど!
paintComponent のほうで調節するんですね。。
これなら使えそうです。ありがとうございました。
873:デフォルトの名無しさん
08/07/06 10:32:07
質問です。
今、Java で大量に同時に画像を読み込むプログラムを書いてるのですが、
-Xmx オプションで 1GB くらい確保しても、OutOfMemoryError がでてしまいます。
Windows には物理メモリが足りなくなったときに HDD をメモリに見立てた
仮想メモリというものがあると思いますが、これを Java で使うことはできない
んでしょうか?
874:デフォルトの名無しさん
08/07/06 10:42:40
それで足りないならば設計を疑えよ
どっかに大きなボトルネックあるだろ、常考
おおかた全部配列とか馬鹿食いのオンメモリなんだろうが
875:873
08/07/06 10:48:34
>>874
そうです。画像データは全部配列です。。。
int[] pixelData = new int[2000 * 2000];
みたいな画像データを20~50くらいメモリに持ってます。
同時に表示することもあります。
表示するサイズは小さいサムネイルサイズなので、
それだけ残して、元データは HDD に保存してもいいんですけど、
VM が物理メモリを勝手に使ってくれるというのは
結局同じようなことなのかと思ったので質問しました。
VM が全部解決してくれたら、プログラマは楽だなぁと。。
876:デフォルトの名無しさん
08/07/06 10:55:28
画像のクラスを使わないであえて配列でしてるのか・・
877:873
08/07/06 10:57:48
>>876
あえてというか、画像クラスの使い方がわかってません orz
32bit グレースケール
32bit x 3 の RGB 画像
これを保持できる画像クラスがあればそれで代用したいですが。
878:デフォルトの名無しさん
08/07/06 11:12:03
配列はなるべく連続した領域をメモリに確保しようとするから効率は最悪
そもそも、bmpみたいな形式でオンメモリに持っている時点でアウト
素直にImageクラスなり使え、不満になったら自作するか拡張しろ
879:デフォルトの名無しさん
08/07/06 11:15:04
むしろ画像を使おうとしてどうして配列を思いついたほうがすごいな
ググってもImageとかBufferedImageとかしか出ないと思うんだが
880:873
08/07/06 11:17:48
>>878
なるほど、効率が最悪なんですね。。。
ただ、高速化のために配列のデータを C++ で書いた DLL に渡して
ゴリゴリ画像処理もしたりしてるので、難しいかもしれません。。
まぁ、最初から明示的にメモリを解放できる C++ で作った
ほうがよかったかもしれませんね。。。
881:デフォルトの名無しさん
08/07/06 12:14:41
>>873
DLL使っているならば最初からC++で書けよ
なんでJava使うのか意味わからね
言語の選択方法から学んだほうがいいぞ
882:デフォルトの名無しさん
08/07/06 12:18:58
サムネイルを表示した後も、プログラム内でくわえ込んでいるようなこと書いてるから、
C++で書いても同じことでは?
883:デフォルトの名無しさん
08/07/06 12:26:10
>>873
OS が仮想化してようがなんだろうが、VM に最大 1GB だと言えばそれしか使えないだろ。
なんだったら 100GB でも 100TB でも要求してやれば?
結局やることをやらにゃならんことが分かるだろw
884:デフォルトの名無しさん
08/07/06 12:35:22
結論:Javaは糞
885:873
08/07/06 12:38:19
周囲にプログラマーが居ないので勉強になります。助かります。m(_ _)m
>>881
もっともな意見です。ただ、
・Java での画像処理関連の資産を使いたかった
・開発当初は高速化の必要性がなかった
・開発当初は VC++ を持ってなかった(笑
という感じで、こうなってます。
あとやっぱり開発環境は Eclipse が好きなので、、
>>882
そうなんですけど、使わなくなった画像とかを gc がちゃんと
回収してくれてないような気がして。。
しっかり解放してないからかもしれませんが。。
>>883
-Xmx で 5000M とか指定すると VM が起動しないのですが。。
それとも何かやりかたがあるのでしょうか
886:デフォルトの名無しさん
08/07/06 12:54:38
>>885
>-Xmx で 5000M とか指定すると VM が起動しないのですが。。
すまん、回りくどかったか。
「仮想化さえされてれば*無限に*メモリがつかえる」と勘違いしてるように見えたので
「無限に取って見れ」と言いたかったのだ。
5000M 指定で VM が起動できない理由は自分で調査してもらうとして、仮にそれで動いても
「大量に同時に画像を読み込むプログラム」に足りてるかどうか分からない。
結局いつかは Out of Memory になる可能性があるだろう。
gc の回収が間に合わないかもしれないしな。
それなら結局どこかでメモリ使用量を抑える(ファイルベースで動くとか)様にせにゃならん。
これでどうかな?
887:デフォルトの名無しさん
08/07/06 13:01:08
>>875
おまい、ちょっとは消費メモリ見積れ。
4(intのサイズ) * 2000 * 2000 = 約16MB、それが50個あったら800MB、
その配列以外にもいろいろリソース使ってるはず(サムネイル生成とか)
だから、そりゃ1GBじゃ足りなくなるだろう。
GCは、使ってない領域を解放するだけで、使ってる領域をどうにかして
くれるわけじゃないぞ。
888:873
08/07/06 13:06:25
>>886
なるほど。わかりました。
>それなら結局どこかでメモリ使用量を抑える(ファイルベースで動くとか)様にせにゃならん。
これをJVMが勝手にやってくれると助かるなぁと思ったんですよね。
C/C++ に比べて Java はメモリスペースを意識しなくてプログラミングできるのが
利点だと思っていますので。。。(勘違いでしたらすいません。)
889:デフォルトの名無しさん
08/07/06 13:11:20
>>885
> 使わなくなった画像とかを gc がちゃんと回収してくれてないような気がして
お前が使わないつもりでも、「どこか」からたどれるルートがあれば、それは「使われてる」と見なされる。
例えば、
static int[] img = new int[2000 * 2000];
なんて書いてあったら、img に null を入れん限り永遠に解放されない。
890:デフォルトの名無しさん
08/07/06 13:13:48
>>888
勘違い。free/deleteを自動的にやってくれるだけ。
891:873
08/07/06 13:27:17
うーん、なるほど。
Javaでは、ポインタが無かったり、GCがあったり、明示的に解放できなかったり
するんで、JVMが「メモリのことは忘れてくれ」って言ってくれてるんだと拡大解釈していました。
ソフトの設計のほうを見直すことにします。
ただ、画像をファイルに保存して、配列を解放するようにしても
gc が追いつかずにOutOfMemoryが出ることはありそうですが。。。
ありがとうございました。
892:デフォルトの名無しさん
08/07/06 13:29:24
言い切ってしまえば、VM にメモリ仮想化は無い。
(世の中全部の VM を知ってるわけじゃないから「ある」と言われたらそれまでだがw)
だから、自分でしろ。
893:デフォルトの名無しさん
08/07/06 13:40:01
VMってマジで物理メモリでしかやりくりできないの?
Windowsに乗ってるアプリとは思えない仕様だね
894:デフォルトの名無しさん
08/07/06 13:41:49
>>891
VM規定に反してなければOutOfMemoryError出す前にGCが未使用メモリを回収してるはず。
強参照しっぱなしなのに「解放してるはず」と思い込んでる事は、かなり頻繁にある。
895:デフォルトの名無しさん
08/07/06 13:57:58
>>893
それはおまえの読み違いだ。
896:デフォルトの名無しさん
08/07/06 14:07:10
JPAでOneToManyのMany側を絞り込み検索した状態で
One側を得るようなJPQLはどのように書けばよいのでしょうか。
例えば従業員の作業日誌の直近5日分を
全ての従業員分取得するといったケースです。
897:896
08/07/06 14:18:27
あ、ORMスレがあったのでそちらに移動します。
こちらはクローズでお願いします。
898:デフォルトの名無しさん
08/07/06 18:07:40
JToolBarのボタンにつくフォーカスの四角い枠の表示ってどうやったら操作出来るでしょうか?
899:デフォルトの名無しさん
08/07/06 18:37:24
しつこくすみません。
どなたか>>618を教えていただけないでしょうか?
900:898
08/07/06 18:37:56
すいません自己解決しました。
901:デフォルトの名無しさん
08/07/06 19:01:14
>>899
設定しなおせば?
902:デフォルトの名無しさん
08/07/06 19:18:10
>>901
いえ、設定し直すもなにも、methodをPOSTに設定しrequestPropertyを設定するまではいいのですがその後コンテンツを取得する際、
内部的にrequestMethodを初期化(あるいは再設定?)するらしく、設定できないのです。
903:デフォルトの名無しさん
08/07/06 20:00:52
>>902
「その後」と言うが良く分からない。
こんな風なGETやPOSTじゃないの?
URLリンク(www.hpc.cs.ehime-u.ac.jp)
904:デフォルトの名無しさん
08/07/06 20:35:29
1.POSTでログイン時の情報を送る。
2.サーバーからSet-Cookieなどの返答がある。
3.GETでページデータを取得。
POSTに設定後各種プロパティを設定し、getInputStream()をした時点で内部で上の1~3を行うようで、
1の接続ではMessageHeaderに設定したプロパティがそのまま使われるので大丈夫なのですが、3で再び接続する際勝手に各プロパティを設定されてしまいます。
説明が分かりにくくて申し訳ありません。
905:デフォルトの名無しさん
08/07/06 20:52:43
1.リクエストプロパティの設定
2.サーバーからレスポンスを得る
3.InputStreamなどでデータを読む
一回の接続でこれを行うので、ほかにも処理をしたい場合は再度1~3を繰り返す。
それともリダイレクトの事なのだろうか?
906:デフォルトの名無しさん
08/07/06 21:06:56
>>899
そのコードをアプしてくれ。
907:デフォルトの名無しさん
08/07/06 21:20:46
>>904
1 → 2 と 3 は別だろ。
1 の POST に関する処理は 2 で終わってる。
1 のために作った HttpURLConnection に対しての getInputStream と、
3 の GET と勘違いしてないか?
908:デフォルトの名無しさん
08/07/06 21:32:57
ちなみにPOSTで送られてくるクッキーはGET時に自分で設定しないと
送られないのは分かっているか?
909:デフォルトの名無しさん
08/07/06 21:45:37
>>905
その通りでした。確かにリダイレクト時にリクエストプロパティが再設定されてしまうようですが、今回はそれが原因ではありませんでした。
クッキーについては、CookieManagerにCookiePolicyとしてとりあえずCookiePolicy.ACCEPT_ALLを設定し、一応その情報が送られていることをパケットキャプチャで確認しておりましたが、そのクッキーがいくつか欠けていたようです。
サーバーからSet-Cookieとして送られてきていて、全て受け入れるようにしているにも関わらず一部しかクッキーが設定されていないのが現在の疑問です。
まだしばらく検証してみます。
いろいろな方がわざわざ解決しようとしていただいたのに、お気持ちを踏みにじるようなことになってしまってすみません。
910:デフォルトの名無しさん
08/07/06 22:08:01
ava.util.Map.Entryってどういう意味があるの?
どういうときに使うかを教えてください。
911:デフォルトの名無しさん
08/07/06 22:15:57
それはKeyとValueのペアを表すオブジェクト。
基本的にはMapの内部で使われるだけで、あんまり意識しなくていい。
意識する時はKeyとValue両方の値をイテレートする時くらいかな。
keySetのイテレートからgetで値を取り出す手法より速いからね。
912:デフォルトの名無しさん
08/07/06 23:37:02
>>899
これ、何に使うのかが気になる。
913:デフォルトの名無しさん
08/07/06 23:46:04
テストの自動化とか、日次処理とか用途はいろいろ考えられるね。
914:デフォルトの名無しさん
08/07/06 23:46:32
すみません、質問です。
現在JavaからMS-DOSのバッチファイルを呼び出して処理したいと思っています。
Runtime.exec()を使用して呼び出し・処理自体は成功しているのですが
バッチ内部からの返り値をJava側で取得する事はできないのでしょうか?
915:デフォルトの名無しさん
08/07/06 23:46:56
>>912
fx取引でもするつもりなんじゃね
916:デフォルトの名無しさん
08/07/07 00:01:37
Process#exitValueじゃね?
917:デフォルトの名無しさん
08/07/07 00:32:32
>>916
Exitvalueで値は帰ってくるのですが、常に0となってしまいます。
バッチ内では明示的に1を返しているのですが・・・
何かやり方がまずいのでしょうか・・・。
918:デフォルトの名無しさん
08/07/07 00:39:47
>常に0となってしまいます。
バッチの呼び出しに成功してるから0なんじゃね?
ここらへんwinとlinuxで実装違った気がする。
linuxで同じこと試せる?
919:デフォルトの名無しさん
08/07/07 00:52:14
バッチって
cmd /c batch.bat
って呼び出すんだっけ?
920:デフォルトの名無しさん
08/07/07 00:52:20
>>918
>linuxで同じこと試せる?
今のところLinuxの環境がないですね・・・
会社の方にあったかもしれないので探してみます。
>バッチの呼び出しに成功してるから0なんじゃね?
ExitValueとは、バッチでの処理で返した値というより
バッチを動かすプロセス自体の成否結果を取得する、というイメージでしょうか?
921:デフォルトの名無しさん
08/07/07 00:55:53
もしexitValueでの解決が難しいようなら、ステータス(に相当するモノ)を
echoして、Processの出力を読むことで代替できるかもしれない。
敗北感ありまくりだけど。
922:デフォルトの名無しさん
08/07/07 00:56:56
public static void main(String[] args) {
// TODO Auto-generated method stub
Runtime rt = Runtime.getRuntime();
try{
Process p = rt.exec("hoge.bat");
p.waitFor();
System.out.println(p.exitValue());
}catch(Exception ex){
ex.printStackTrace();
}
}
hoge.bat中身は、
exit 1
のみ。
当方の環境は、windows
これで 1 って表示されるよ。
923:デフォルトの名無しさん
08/07/07 01:10:51
>>921
アドバイスありがとうございます。
解決が難しい場合はやってみたいと思います。
>>922
サンプルまでつけて頂きありがとうございます。
やはりExitValueでバッチの返り値自体を取得できるのですね・・・
当方もWindowsなのですが、なにか環境の問題なのかもしれませんねorz
もう一度全体的に問題がないか見直してみます。
924:デフォルトの名無しさん
08/07/07 01:21:42
URLリンク(www.velocityreviews.com)
自分のとこでやったら0だったけど、Windows 2003 (Server?)では期待通りに
動いたとかいう古い投稿記事。
925:デフォルトの名無しさん
08/07/07 01:25:18
>>923
batの内容とソースうp
926:デフォルトの名無しさん
08/07/07 06:18:24
>>904
Cookieを決めるのはSet-Cookieだけではなくて、javascriptにも命令文が有った筈。
927:デフォルトの名無しさん
08/07/07 09:14:22
>>912
特にこれといって今のところは使う予定はありません。
単純に便利なクラスだなぁ~、といろいろ試してました。
>>926
他のブラウザで実行した場合の全てのクッキーがSet-Cookieで送られ、実際に設定されたクッキーもそれらであったため、それはないと思います。
928:デフォルトの名無しさん
08/07/07 11:44:51
Set-Cookieはサーバーサイドcookieでjsのはクライアントサイドcookieな。
929:デフォルトの名無しさん
08/07/07 12:14:20
そんなネタに釣られ熊
930:デフォルトの名無しさん
08/07/07 13:33:31
すみませんが質問、というか相談です。
アノテーションとその応用について、参考になるリンクや書籍をご紹介いただ
けないでしょうか?書籍は和書だとありがたいですが、なければ英語でも。
【コラム】ライトニングJava (26)
アノテーション(1) - Javaの大きな変貌、アノテーションの導入
URLリンク(journal.mycom.co.jp)
この連載を読んで興味を持ったのですが、どのような応用が考えられるのか、
あまり参考になる情報を見つけられませんでした。
931:デフォルトの名無しさん
08/07/07 15:06:00
すごいアホな質問で申し訳ありませんが、JUnitの3までは
TestAAAA#testBBBをTestSuite に追加するには
TestSuite suite = new TestSuite();
suite.addTest(new TestAAAA("testBBB"));
とかって出来ましたよね?
JUnit4はどう指定したらいいのでしょうか。
932:デフォルトの名無しさん
08/07/07 15:14:31
>>909
CookieManagerって期限判定がおかしくない?
933:デフォルトの名無しさん
08/07/07 15:31:35
>>931
URLリンク(www.google.co.jp)
934:931
08/07/07 16:51:55
いろいろ見てみたんですけど、基本的に
TestSuite suite = new TestSuite();
suite.addTest(new TestSuite(TestAAAA.class));
というやり方しか見つからない気がするのです。
これだと#testBBB()だけでなく、TestAAAAに記述された全テストメソッドが
実行されますよね?
4からはTestAAAAがtestCaseを継承していない以上、3までのTestCase(String name)
コンストラクタが使えないのは判るのですが代替方法が判りません。
935:デフォルトの名無しさん
08/07/07 18:03:20
>>932
Locale.setDefault(Locale.ENGLISH);
とすると期限を判定してくれることが分かった。
日本語ロケールでは、日付が読めないらしい。
936:デフォルトの名無しさん
08/07/07 20:09:24
質問させていただきます。
JavaとMysqlをつかって200万ほどのデータを扱っているのですが、そのデータは一週間ごとに毎回不特定の数が増えて
txt形式で送られてきます。これをデータベースに入れるときに、増えた行だけを新たに更新という形でMysqlを操作したいのですが、
たとえばデータが
2,600,000行→2,600,100行になったときに100行だけ追加したいのです。
プログラミングは初心者で、現在はテーブルのデータ全消し→一からファイル読み込み
という流れで30秒ほどかかります。
他にスムーズに行く方法があるのでしょうか?
質問が良くわからなかったら申し訳ありません。
937:デフォルトの名無しさん
08/07/07 20:19:01
>>936
Javaに関係する前の段階な気がするが。
その増えた分を既存分と区別することができるフィールドがあれば、
それを見て例えの100件を取り出してテーブルに入れればいいわけだ。
そしてその区別することが出来るフィールドが在るのか無いのかは
936しか分からんだろ。
938:デフォルトの名無しさん
08/07/07 20:19:09
すみません、フリーでお薦めJava開発ツールを教えてください
939:404
08/07/07 20:21:09
フリーなんだから使ってみりゃいいだろにw
940:936
08/07/07 20:29:16
>>937
確かにそうでした・・・Javaとは直接関係ないですね;
フィールドは日付と、あとは売り上げなどの数値だけです。
table(day date,data1 double,data2 double);
といった感じです。ファイルの日付が(08-97-07のような感じです)○日~読み取るということが出来るのでしょうか?
あぁ・・Javaじゃ無くなってしまってますね。。
すいません鬱陶しかったら無視してくださって結構です。
941:デフォルトの名無しさん
08/07/07 20:57:02
こんばんわ。
JAVA言語とは直接関係のない話になるのですが、
レンタルサーバでJAVAが使えるところって、どこも結構値が張りますよね。
お仕事とか教育機関で使ってる方は別にして、趣味のレベルでJAVAを使ってる人は、どこで活用してるんでしょうか。
自宅サーバとか、単独アプリケーションあたりは思い付いたのですが、
何か人とは違う面白い使い方してますっていうのがあったら紹介してもらえますか?
よろしくお願いします。
942:937
08/07/07 21:09:44
>>936
前回受け取ったデータから増えた分というのが売上日で判断付く
(「今MySqlに入っている売上日より後のものが追加分」等)のなら、
取り込み時に SELECT MAX(売上日) FROM 売上 とかやって、
その送られてきたtxtから一件ずつ読んでその条件に当たる分だけ追加。
200何十万件分をチェックするのにどれくらいかかるかはやってみるのが一番か。
一番いいのは、追加分だけtxtで送ってもらうことかw
943:936
08/07/07 21:30:28
>>937
なるほど!
つまりそのSELECT MAX(day) from データベースで最終更新の日時をもらって
その日時以降の日付があればデータベースに入れるということですね。
Javaだとwhileとif,scannerを使えばできそうですね。
ありがとうございました。すれ違いのようなので試行錯誤してみます。
944:デフォルトの名無しさん
08/07/07 22:42:47
Strutsで質問なんですが、
ValidatorFormを直接継承したフォームだとvalidateできるのですが、
ValidatorFormの孫?になると、動作しなくなってしまいました。
(間の親は、ValidatorFormを継承しただけの抽象クラスです)
URLリンク(d.hatena.ne.jp)
↑これと多分現象は同じですが、attribute属性は指定してないです。
勿論、form-beanの名前もconfigに書いたものと一致しています。
ソースを追っていったら、FormSetオブジェクトがnullで、
Validatorがうまく生成されていないようでした。
ちなみに、JDKは1.5.0_13、APサーバはweblogic9.2です。
原因や疑わしい箇所の検討がつく方、よろしくお願いしますm(_ _)m
945:944
08/07/07 22:43:35
すいません、追記です。
Strutsは1.2.8です。
946:デフォルトの名無しさん
08/07/07 22:48:05
LinkedList <String>a = new LinkedList<String>();
a.add("abc");
LinkedList <LinkedList<String>>b = new LinkedList<LinkedList<String>>();
b=a;
a.add("def");
System.out.println(b);
これでabcと出力したいのですが、abc defと出力されてしまいます。
これをb=a;の後にaに編集を与えたとしても、bに変更を与えないようにするにはどのようにすればいいのでしょうか?