【初心者】Java質問・相談スレッド116【歓迎】at TECH
【初心者】Java質問・相談スレッド116【歓迎】 - 暇つぶし2ch791:デフォルトの名無しさん
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に変更を与えないようにするにはどのようにすればいいのでしょうか?

947:デフォルトの名無しさん
08/07/07 22:49:32
>>946間違えました

LinkedList <String>a = new LinkedList<String>();
a.add("abc");
LinkedList <LinkedList<String>>b = new LinkedList<LinkedList<String>>();
b.add(a);
a.add("def");

System.out.println(b);
これでabcと出力したいのですが、abc defと出力されてしまいます。
これをb.add(a);の後にaに編集を与えたとしても、bに変更を与えないようにするにはどのようにすればいいのでしょうか?




948:デフォルトの名無しさん
08/07/07 22:59:56
>>947
プログラムは書いたようにしか動かない。

質問するなら、
まず、何のつもりか、したいことの方を詳しく述べた方が良い。


949:デフォルトの名無しさん
08/07/07 23:22:47
>>948
すいません説明が足りませんでした
bのリストにはaが編集される度にその状態を保存しておきたいと思っています。
それで状況によってアンドゥのような処理でbのリストに保存してある状態をaに戻したいということです。

その1
a = {abc,edf,123}
b.add(a);

その2では456をaddしてaは以下のような状態になる
a={abc,edf,123,456}
b.add(a);

その3ではaをソートして以下のような状態になる
a={123,456,abc,edf}
b.add(a);

その2に戻したくなったのでbのリストに保存されているその2の状態をaに持ってくる
a = b.getLast();
b.removeLast();

a={abc,edf,123,456}

その1に戻したくなったのでbのリストに保存されているその1の状態をaに持ってくる
a = b.getLast();
b.removeLast();

a = {abc,edf,123}

ということを実現したいと思っています。

950:デフォルトの名無しさん
08/07/07 23:29:45
>>949
b.add(a)の時にaのコピーを作ってbにaddする。

951:デフォルトの名無しさん
08/07/07 23:36:53
>>950
なるほど!
早速試してみようと思います
ありがとうございました

952:デフォルトの名無しさん
08/07/08 00:28:45
先生、もうどうしていいか分かりません。
open-ejbでEJB3.0の実装をしようと思ってます。
トランザクション管理をコンテナ管理からBEAN管理
に替えたいのですが、どうやって指定したらいいか
分かりません。
EJB2.0のように、デプロイメント記述子を書くしか
ないのでしょうか。

953:デフォルトの名無しさん
08/07/08 01:28:58
>>949
効率を考えると操作履歴を残す方が良くないか?

e.g.
1. Aを追加
2. インデックスnを削除
    :

954:デフォルトの名無しさん
08/07/08 07:25:47
質問です。
あるクラスで他のクラスのインスタンスを生成した時に、そのインスタンスの中で生成元クラスの
フィールドやメソッドにアクセスしたい場合はどうすればよいのでしょうか?
具体的には、以下のように、
描画パネルのクラスでGUIを記述したクラスのボタンやテキストエリアにアクセスしたいのです。

public class Window() extends JFrame{
private MyPanel p = new Panel();
private JButton b = new JButton("button");

Container container = this.getContentPane();
container.add( p, BorderLayout.CENTER );
}

public class MyPanel() extends JPanel{
public void paintComponent(Graphics g){
(描画処理)
}

public void method1(){
b.setText("change text"); //ここでボタンbにアクセスしたい
}
}

かなり端折って書いてます、初心者なもので記述のおかしいところとかあるかもしれませんが
よろしくお願いします。


955:デフォルトの名無しさん
08/07/08 07:54:38
class Hogehoge {
  static MyPanel myPanel_p = null;
  static JButton b = null;
  public class Window extends JFrame{
    Window () {} // コンストラクタ
    myPanel_p = new Panel();
    b = new JButton("button");
    Container container = this.getContentPane();
    container.add( p, BorderLayout.CENTER );
  }
  public class MyPanel extends JPanel{
    MyPanel () {} // コンストラクタ
    public void paintComponent(Graphics g){
      (描画処理)
    }
  }
  public void method1(){
    b.setText("change text"); //ここでボタンbにアクセスしたい
  }
}

クラスの書き方が変だから直した。

956:デフォルトの名無しさん
08/07/08 07:56:02
PanelのほうにButtonのインスタンスを持たせておいてそれ使ってアクセス

957:デフォルトの名無しさん
08/07/08 09:55:03
CDでJAVA(JDK1.5.0)のソースを配るのですが、非公開にしたい場合はどうしたらよろしいのでしょうか?
JAVAを初めて1ヶ月弱色々なゲームができるようになりましたのでそろそろ同人ゲームを作りたいです。

958:957訂正
08/07/08 09:56:39
CDでJAVA(JDK1.5.0)のソースを配るのですが、ソースを非公開にしたい場合はどうしたらよろしいのでしょうか?(CDでプログラムを起動だけしたい)
JAVAを初めて1ヶ月弱で色々なゲームができるようになりましたのでそろそろ同人ゲームを作りたいです。


959:デフォルトの名無しさん
08/07/08 09:58:25
>>958
ソースを配るのにソースを非公開にする?配るのはclassファイルとかjarとかじゃないの?

960:デフォルトの名無しさん
08/07/08 10:12:22
リストに入れたオブジェクトのフィールドを変えると
リストの中のオブジェクトのフィールドもかわってしまいますか?
言い換えるとリストの中のオブジェクトは参照しているだけですか?

961:デフォルトの名無しさん
08/07/08 10:21:31
>>958
>>959の言う通り、意味が判らないけど、
パスワード付きzipで固めるとか、そういう事でいいのかな。
Javaの問題ではない様な気がする。

962:デフォルトの名無しさん
08/07/08 10:21:45
フィールドでオブジェクトを初期化するのと(例えば A a=new A();)
コンストラクタで初期化するのとは何が違うんですか?

963:958
08/07/08 11:11:58
jarで配ったらソースがばれるんちゃうか?アプリ使用して中身を盗みみるとか。
パスワード付きzipで固めましたらjavaそのものが起動できなくなるのでは?
知障ですいません。
私がしたいのはダブルクリックしたらプログラムが動く状態にまで持ってきたいです(それかコマンドプロントでjavaプログラムを叩いたら起動。そこの説明はテキストで説明します)。
とりあえずソースを見られないようにしたいのです。

964:デフォルトの名無しさん
08/07/08 11:24:50
ソースの難読化してくれるツール使うくらいしかないだろうな けど逆コンパイラのjadは最新のソースには対応してないから、普通に逆コンパイルしてもきれいには復元できないし気にしなくていいと思うけどな。 どうしてもされたくないならJavaは使わないべき。

965:デフォルトの名無しさん
08/07/08 11:30:32
>>960
かわってしまいます
だけです

966:デフォルトの名無しさん
08/07/08 11:34:28
>>962
そもそもフィールドを外から触れるという設計が良くない
特段の理由がなければフィールドはすべてprivateにするべき

967:デフォルトの名無しさん
08/07/08 11:38:12
>>962
class Foo { A a = new A(); Foo() {} }

class Foo { A a; Foo() { a = new A(); } }
の違い?
強いて言えばタイミングが違うが、大して変わらない、でいいだろか。

968:デフォルトの名無しさん
08/07/08 11:40:50
>>963
gcjとか・・・・・

969:966
08/07/08 11:46:04
そーゆー意味か・・・966は無視してくださいorz

970:958
08/07/08 11:57:14
>>968
この中で見た限りgciが有効なので解決致しました。
968さん、協力してくださった皆様方ありがとうございました。

971:958
08/07/08 11:57:54
gcjね。orz

972:デフォルトの名無しさん
08/07/08 13:03:42
gcjってjava5以降まともにコンパイルできたっけ?

973:デフォルトの名無しさん
08/07/08 13:10:34
できない。文法的には確か1.4止まりじゃなかったか? そもそも、ソース見せたくないからネイティブ化ってどうなんだろうな

974:デフォルトの名無しさん
08/07/08 13:48:59
>>964
>使わないべき
使わないべき? 使うべきでない?
どっちもアリなのかな。

975:デフォルトの名無しさん
08/07/08 14:24:10
画面遷移有りでクラス関係無しにデータ(値)を受け渡すのはどうやるんでしょうか?
{}でもとの数値に戻ってしまいますorz

976:975
08/07/08 15:57:36
画面遷移無しでアドベンチャーが作れるようになったので返答いりません。
画像を一瞬で表示するプログラムはありますでしょうか?
どうしても途中、途中で、読み込みが発生いたします。
トップ画面時に画像すべて読み込みのプログラムでも構いません。


977:976
08/07/08 16:13:21
ごめんなさい。自己解決致しました。

978:デフォルトの名無しさん
08/07/08 17:11:50
意味不明すぎワロタ

979:デフォルトの名無しさん
08/07/08 21:19:25
ひょっとして
JSFやStrutsはすれ違い?

980:デフォルトの名無しさん
08/07/08 22:47:23
そんなことより埋めようか

981:デフォルトの名無しさん
08/07/08 23:13:43
次スレは?

982:デフォルトの名無しさん
08/07/09 01:47:39
純粋なプログラミングではないのですが、詳しい方教えて下さい。

他社が作った昔のJavaソースを貰って、評価して作り替えの新規
提案する必要があります。規模は数10Kstep

その昔のJavaのソースを定量的/定性的に評価して
レポートをする必要があるのですが、皆さんならどういうことを
考えますか?

定量的:JTestでどの程度規約に沿っているか
定性的:Judeでクラス図起こして、変なところを探す

ぐらいしか思いつきません。

いいアイディアが有れば教えて下さい。

983:デフォルトの名無しさん
08/07/09 02:21:04
>>982
何を目的に作り替えるの。

984:デフォルトの名無しさん
08/07/09 09:48:37
>>982
FindBugで潜在的なバグ要因となるコードを探すとか。
結構出るので、相手によるけどびっくりさせられていいかも。

>>983
アレだろ。
「このプログラムはこんなにヒドイ!
バグてんこ盛りで、規約もいい加減。メンテ無理!
ですから、既存コードの改修はあきらめて
当社に新規開発させてもらえませんか?
その方が安く付きます。」
って話のネタ。

985:デフォルトの名無しさん
08/07/09 10:59:33
EclipseとTomcatでMysqlのデータを操作するプログラムを作りたいのですが、
動的webプロジェクトを作成し、サーブレットにHttpServletを継承しようとするとHttpServletが解決できないというエラーが出てしまいます。
Tomcatプラグインをいれ、Tomcatプロジェクトだと継承はできるのですが、動的webプロジェクトだと継承できない原因が分かりません。
Javaを再インストールしたり最新版のものにしても継承できませんでした。
どうか原因が分かる方ご教示ください。

986:デフォルトの名無しさん
08/07/09 11:42:47
switchの中で数値を引きたいのですがどうしても除々に引かれていきます。
一度だけ引くにはどういう記述を入れたらよろしいのでしょうか?
JHP = JHP -da;
switch (pa) {
case 1:
gv.drawString(""10, 325);
da=10;
break;
case 2:
gv.drawString(""10, 325);
break;
case 3:
gv.drawString("10, 325);
break;
case 4:
gv.drawString("10, 325);
break;
case 5:
gv.drawString("", 10, 325);
break;
case 6:
gv.setFont(new Font("Arial", Font.PLAIN, 20));
gv.drawString("", 70, 150);
break;

}

というプログラムです。アドベンチャーの一部のプログラムです。詳細は隠してありますが。
ご提示宜しくお願いします。

987:デフォルトの名無しさん
08/07/09 11:46:45
switchの中のどこで数値を引いてるって?

>JHP = JHP -da;

の部分か?
元の変数JHPを書き換えるのをやめればいいのでは?

988:デフォルトの名無しさん
08/07/09 12:00:47
>>987
それをやったら画像が表示されなくなりJHPも0になってしまいましたorz
プログラムはJHP=da; da=-10;でやってみました。

989:デフォルトの名無しさん
08/07/09 12:15:24
>>986,988
やりたいことをもっと詳しく書きましょう。
「~の場合に変数xxxの数値を減らしたいけど、いまはどんな場合にも減っ
てしまう」とか。


990:デフォルトの名無しさん
08/07/09 12:19:31
画像ってなんだよ
>>986 のプログラムのどこにそんな画像があるの
書いてないことまではわからないよ

991:デフォルトの名無しさん
08/07/09 12:28:26
次スレ立てるよー

992:デフォルトの名無しさん
08/07/09 12:33:27
あとはよしなに

【初心者】Java質問・相談スレッド117【歓迎】
スレリンク(tech板)

993:デフォルトの名無しさん
08/07/09 12:54:44
>>990
そこまで書いたら漏れの苦労が台無しになる。

>>989
pa=3の場合に変数aの数値10だけを減らしたいけど、いまは除々に減っていきます。

994:993訂正orz
08/07/09 12:55:39
pa=3の場合に変数daの数値10だけを減らしたいけど、いまは除々に減っていきます。

995:デフォルトの名無しさん
08/07/09 12:58:37
pa≠3の場合は減った数値を元に戻したいということ?

996:デフォルトの名無しさん
08/07/09 13:00:31
なに作ってんのか知らないけど、NScripterがあれば不必要なものじゃないの?
URLリンク(ja.wikipedia.org)

997:デフォルトの名無しさん
08/07/09 13:08:18
>>995
分かりやすくしたい事を日本語で書きますと、
最大HPが100あります。
ある場面Aにいきました。
あるイベントが起きました。
ダメージが10減りました
HP、10減ってHPが90になりました。
的な事をやりたいです。


998:デフォルトの名無しさん
08/07/09 13:16:17
言わんとしている事は、こんなことだろ。

java.util.Scanner s = new java.util.Scanner(System.in);
int JHP=100;
int da =0;
while(true){
int pa = s.nextInt();
JHP = JHP -da;
switch (pa) {
case 1:
da=10;
break;
case 2:
break;
}
System.err.println(JHP);
}

999:デフォルトの名無しさん
08/07/09 13:18:09
なんでswitchがいるんだ?

1000:デフォルトの名無しさん
08/07/09 13:27:51
>>997
switchの外の
>JHP = JHP -da;
は消して、case 3 のところに
JHP -= 10;
と書けばいいんじゃない

1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch