[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 01/06 12:55 / Filesize : 277 KB / Number-of Response : 985
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【初心者】Java質問・相談スレッド115【歓迎】



1 名前:Javaが初心者 mailto:sage [2008/05/12(月) 03:05:27 ]
プログラミング言語Javaに関する質問スレです。
JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理    pc11.2ch.net/hp/
Webプログラミング pc11.2ch.net/php/
をご利用下さい。

よくある質問
・「コマンドまたはファイル名が違います」
 「'javac' は、内部コマンドまたは外部コマンド、
 操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
 「Exception in thread "main" java.lang.NoClassDefFoundError: 」
 www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」

前スレッド
【初心者】Java質問・相談スレッド114【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1207385614/
次スレは>>990あたりで。

過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/

717 名前:デフォルトの名無しさん [2008/06/01(日) 23:26:06 ]
testフォルダをルートとして
その中にtestaとtestbのフォルダを作って
testaフォルダの中にあるjavaファイルから
testbのフォルダの中にあるファイルデータaa.textを
ロードする場合の指定は
testb/aa.textでいいでしょうか?
実行すると
java.lang.NullPointerException
Exception in thread "main" java.lang.IllegalArgumentException: input == null!
という例外が出るんですが

718 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 23:35:26 ]
フォルダ云々じゃなくてまずはパッケージの概念と実行する時のクラスパスに関して勉強して来い
お前の質問じゃ、それでもいいともそれではダメともどちらでも取れる

719 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:11:45 ]
>>717
釣りなのか?なんか笑える

720 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 00:32:34 ]
>>717 説明の文章だけ読むと ../testb/aa.txt

721 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 03:38:56 ]
     * Returns a shallow copy of this <tt>ArrayList</tt> instance.  (The
     * elements themselves are not copied.)

    public Object clone() {

        ArrayList<E> v = (ArrayList<E>) super.clone();
        v.elementData = Arrays.copyOf(elementData, size);

これ、ディープ・コピーじゃないんですか?
以前のソースがないので分かりませんが、clone()の実装がバグってるんでしょうか。

722 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 05:41:04 ]
>>721
6のArrayListの実装?
どうみてもシャローコピーなんだが。
super.clone()
は継承元ではオーバーライドされていないからObject#clone()呼び出しと同義だし、
v.elementData = Arrays.copyOf(elementData, size);
は単に各要素への参照値をクローンしたArrayListの方にコピーしているだけでしょ?
コメントにも要素自身はコピーされないって書いてあるやん。

723 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 07:56:08 ]
v.elementData = Arrays.copyOf(elementData, size); 

これでしょ問題なのは。

v.elementData = this.elementData

シャローコピーといえば、普通はこうじゃないの?
オブジェクト(クラス)がArrayListだから、クラスの意味からすれば
オブジェクトのフィールドにある配列の内容の方もコピーするってのは分からなくもないけど、
シャローコピーは配列の参照だけコピーで内容はやんないんじゃなかったか。


724 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 07:57:04 ]
> v.elementData?=?this.elementData
>
> シャローコピーといえば、普通はこうじゃないの?

コピーになっとらんがな。

725 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 08:05:34 ]
>>723
そもそも
> * Returns a shallow copy of this <tt>ArrayList</tt> instance.
をわざわざ引用していたり
> clone()の実装がバグってるんでしょうか
などと言っているところからみて
> ディープ・コピーじゃないんですか?
は配列のコピーうんぬんの話でなく
ArrayList#clone()のことを質問してるんじゃないの?



726 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 08:08:25 ]
>>724
要素が変更されたらおかしくなるし、確かにコピーになってない。
そうするとコレクションに限っては、cloneの仕様を満たすのは、やっぱこれでいいじゃないの?

727 名前:デフォルトの名無しさん [2008/06/02(月) 08:10:54 ]
これだとコンストラクタと同じだし、cloneを実装したSUNの意図がイマイチわからん。
継承しても、cloneを再実装しようかどうか迷うじゃん。

728 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 08:17:41 ]
>>727
インスタンスメソッドである事に意味があるんじゃね?

コンストラクタは型わかってないと呼べないし。

729 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 08:25:07 ]
>>728
インスタンスなら、キャストしないといけないから結局はキャスト先の型がわかんないとダメでしょ。
リフレクト使うのもいいけど、そうれなら全て継承元の(ArrayList)のキャストになってしまう。
型分かってんなら、継承していてもいなくても、ArrayListのコンストラクタでいいでしょ。
イマイチわかんないな。
cloneが実装されている標準のクラスはあまりないから馴染みないけど、どういうときに使うんだ?


730 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 08:41:41 ]
>>729
(T)arraylist.clone() のキャスト先の型Tは
T extends Cloneable & List みたいちょっとだけでも抽象化できる。
コンストラクタ呼ぶ時ほど具体的な型名は必要ない。

731 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 08:58:55 ]
>>727
配列の clone() と似た動作を目指しただけだと思うが。

片っ方を変更したら、もう片方も変更されるようなものが欲しければ
List#subList(int, int) 使えって言われるだろうし。

732 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 14:58:40 ]
インスタンスメソッドでArraylListであることは最低限保証できるってことだと思う。
それなら、cloneじゃなくてdupとか別の名前でもいい気がしたけど
Vectorのころにcloneを実装しちゃったからその名残かな。

733 名前:デフォルトの名無しさん [2008/06/02(月) 15:10:46 ]
Appletが起動したらTextFieldにカーソルが点灯している状態にしたいのですが
教えてください。FrameやWindowはつかってません。


734 名前:デフォルトの名無しさん [2008/06/02(月) 15:53:18 ]
>v.elementData = this.elementData 

シャローコピーならこれでコピーされてるでしょ。
どうせコピー元が変更されたり追加されて内部の配列の参照が変更されても、
コピー先はその時点での状態がコピーできればいいんだし。
コピーになってないとかいって、意味わかんないな。

v.elementData = Arrays.copyOf(elementData, size);  

でも実質同じだから冗長と言えなくもない。


735 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 16:21:15 ]
>>733
検索した
ttp://www.alles.or.jp/~torutk/oojava/maneuver/1998/swing/swing_ja.html
>また、フォーカスを持つコンポーネントをプログラム中から指定することもできます。JComponentクラスのメソッド、requestFocus()です。

これでいい?



736 名前:デフォルトの名無しさん [2008/06/02(月) 17:24:05 ]
sample.jsp

<%@ page contentType="text/html;charset=Shift_JIS" %>
<%! String a=""; %>
<%
//↓これを書くとjsp:paramで何故かエラー
request.setCharacterEncoding("JISAutoDetect");
a=request.getParameter("nam");
%>
<html>
<head>
<title>sample</title>
</head>
<body>
<jsp:include page="include.jsp">
<jsp:param name="param" value="<%=a %>" />
</jsp:include>
</body>
</html>

737 名前:736 [2008/06/02(月) 17:26:02 ]
include.jsp
<div align="right">
<%= request.getParameter("aaa") %>
</div>


実行結果:
org.apache.jasper.JasperException: An exception occurred processing JSP page /sample.jsp at line 16
(16行目は<jsp:include page="include.jsp">の行です)


何故かjsp:includeでUnsupportedOperationExceptionになるんですが。
<jsp:include page="include.jsp" />と閉じると何事も無く実行され、
request.setCharacterEncoding("JISAutoDetect");をコメントアウトしても実行できます。

なぜでせう?

738 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 18:15:28 ]
>>734がすごいことを言っている件

739 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 18:24:31 ]
super.clone();使ってるから
v.elementData = this.elementData 
の代入すら必要ないんじゃないの?

740 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 18:28:47 ]
何かアプリケーションを作りたいと思ってJavaで開発用エディタを作ったのですが、
これを個人毎に文字の色とかコンパイラのURIとかの各種情報を保存して
起動時に設定するようにしようかと思ったのですが、
こういう設定の保存ってどういう形式で行うのが普通なのでしょうか?
「設定.txt」とかいう形で保存するのも何か変な気がします。

741 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 18:54:04 ]
サンプルプログラムでは、*.propertiesが多いね

742 名前:デフォルトの名無しさん [2008/06/02(月) 19:11:39 ]
そのclone()についてなんですけど、java.lang.NumberやStringなどはclone()実装されてないのがよく分からないんです。
コレクションの方はclone()あるのに、値の方はなんでないんでしょうか。

それもthis用のコンストラクタとでも言うのか、それ用のコンストラクタすら用意されてないのもあり、
もしコピーするならかなり遠回りな操作をしなければならないですよね。
イミュータブルだとしても、classもfinalのも多く、設計上に意図としてはインスタンスのコピーはするなってことなんですか?

743 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:22:01 ]
> イミュータブルだとしても、classもfinalのも多く、設計上に意図としてはインスタンスのコピーはするなってことなんですか?
Immutableなオブジェクトのコピーとって何したいの?

744 名前:デフォルトの名無しさん [2008/06/02(月) 19:31:05 ]
内部が変更できるかどうかじゃなくて、インスタンスのコピーの話なんですけど、ごっちゃにしてませんか?

745 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:33:23 ]
何したいとかじゃなくて、そもそもそのAPIがないなら何も出来ないでしょw



746 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:40:30 ]
>>740
サラッとスゴい事をおっしゃる。

747 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 19:47:31 ]
>>742
cloneを実装してないのは、たぶんイミュータブルなインスタンスをコピーできても、うれしいことが特に無いからじゃないかな
finalは、イミュータブルな性質を維持するために必要なことだから、仕方ない

748 名前:デフォルトの名無しさん [2008/06/02(月) 20:02:07 ]
>finalは、イミュータブルな性質を維持するために必要なことだから、仕方ない 

こういうこと平気で書いちゃうあたりが、イミュータブルとかextendsとかを分かってないんだろうね。
インスタンスとcloneも同じく、ごっちゃにしてるんだろうw

749 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:02:09 ]
>>742
もし仮にNumberやStringをコピーできるとしたら、それがどんな場面で役に立つ?

750 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:04:22 ]
>>741
ありがとうございます!
propertiesをキーワードにググって実装してみたところ出来ました!

>>746
すいません、やっぱり.txtで保存するのはおかしいですよね;
直感的に変なのは分かるのですが、テキストファイルだとデータと値の関係がないとか、
そういうことが.txtを用いない理由なんでしょうか?

751 名前:デフォルトの名無しさん [2008/06/02(月) 20:29:52 ]
>>749
仮にも何も、もう設計上出来ないんだよ。
まあ書いてもいいんだけどね(笑)
インスタンスをコピーするってことはどういうことなのかをよく理解すればいいんじゃないの?

752 名前:デフォルトの名無しさん [2008/06/02(月) 20:30:47 ]
>finalは、イミュータブルな性質を維持するために必要なことだから、仕方ない  

こういうこと平気で書いちゃうような人だしなぁw

753 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 20:58:23 ]
>>751
俺がバカだからか、よくわからないので教えてほしい。
インスタンスをコピーするってことはどういうことなんだ?
コピーなんかせずに同じインスタンスを使えばいいじゃないか?

754 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:00:45 ]
>>750
いや、スゴい事ってのは
>Javaで開発用エディタを作ったのですが、
の部分。
質問するより答える立場の人でしょ。

755 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:01:58 ]
>>721に戻ると、
・これは普通shallow copyと言わないのでは?

という話だよね。たしかに「オブジェクトのshallow copy」とは言えない。
フィールドにぶらさがったものを複製しているからね。
でも、「(このオブジェクトが表している/保持している)配列のshallow copy」ではあるでしょ。
参照の羅列としての配列を複製しているだけで、配列の要素をいちいち複製していないから。
〜 完 〜

てことじゃないのかい



756 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:04:53 ]
> 配列の要素

配列にぶらさがっているオブジェクト
と言った方がいいか

757 名前:デフォルトの名無しさん [2008/06/02(月) 21:21:20 ]
clone()したくローン先の方で変更したら、クローンもとのオブジェクト
でも変わる事が期待されるでしょ。
o2=(...) o1.clone ();
o1.set (1,val)
シャローコピーって書いてあるなら、このときo2, o1の保持してるvalは同じであってほしいよね。
今さらだから、APIドキュメントの方をそう書き直せばすむんじゃないの?
確かVector.clone()の記述はそんな風に書いてあった(jdk 1.5だけど)。
ドキュメントにうそ書いてあると、実装するとき困るんだよ。

758 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:25:47 ]
>>757
> clone()したくローン先の方で変更したら、クローンもとのオブジェクト
> でも変わる事が期待されるでしょ。

クローンを殴ったらクローン元も痛みを共有するわけですね、わかります

759 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 21:43:53 ]
>>721
> (The elements themselves are not copied.)

って但し書きの意図を汲めば、まー、まず迷わないと思うんだけどどうよ。
でも、ここで「elements」を「参照」ではなく、「参照先のインスタンス」だと解釈しなければならないってのが、
微妙といえば微妙なのかな。ふつうわかるんじゃね?名前を書き写さずに何が名簿のcloneなのかっていう。

>>757
> シャローコピーって書いてあるなら、このときo2, o1の保持してるvalは同じであってほしいよね。

全然思わない。(一応言っておこうw)

760 名前:デフォルトの名無しさん [2008/06/02(月) 21:58:51 ]
ああ、わりい。飯食ってた

>clone()したくローン先の方で変更したら、ローンもとのオブジェクト 

気がつかなったかけど笑えるね。たぶん自己破産の相談なのかな?

>全然思わない。(一応言っておこうw) 

長年使ってると、全然思うのが、まあ普通なんだけどw
その挙動がArrayListにふさわしくないなら、clone実装すんなってこと。もしくはAPI DOCのバグを書き直せ。
どうせ翻訳の人も見てんだろうしSUNに言っといてよ。頼むよ。

761 名前:デフォルトの名無しさん [2008/06/02(月) 22:03:40 ]
>>754

>Javaで開発用エディタを作ったのですが、 

実はTextAreaをaddしただけでも、偉そうに言えばこうもいえるんじゃないの?
どう凄いのかわかんないんだけど。

762 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:25:02 ]
>>760
一応言うだけ言ってみるけど、トリップつけてくれないかな

763 名前:デフォルトの名無しさん [2008/06/02(月) 22:27:39 ]
なんで?

764 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:28:17 ]
無視したいから

765 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:34:36 ]
>>760
>長年使ってると、全然思うのが、まあ普通なんだけどw

悪いけど風呂入ってくるから、全然思わないにもう一票入れておいてよ



766 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:39:21 ]
>>754,>>761
開発用「エディタ」なので、ホントIDEみたいに立派なもんじゃないです><;
インテリセンスとかキーワード色分けとかオートインデントとか
IDEの中で自分が欲しい部分だけ取って軽く書きたいときに使う用に作った程度です。

普段はC/C++畑でJavaは全然なので、勘違いさせてすいません。。

767 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 22:56:37 ]
質問です。
Component.createImage(int width, int height);
でcreateImageしたのですが、これに透過色を設定したgifファイルをdrawImageすると透過される(ハズ)の部分が白で塗りつぶされた状態になってしまいます。
試しにcreateImageを使わないでただgifファイルをdrawImageすると透過はされていたのでgifファイルには問題がないように思います。
また、createImageしたImageにgifファイルを書き込まずImageをdrawImageしても白で塗りつぶされてしまっています。


768 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:06:34 ]
>>767
component.getGraphicsConfiguration().createCompatibleImage(width, height, Transparency.TRANSLUCENT);
でイメージを作って、gifを乗せる前に
((Graphics2D)g).setComposite(AlphaComposite.Src);
するといいよ

769 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:17:10 ]
>>757
> clone()したくローン先の方で変更したら、クローンもとのオブジェクト
> でも変わる事が期待されるでしょ。
期待されない。

> 確かVector.clone()の記述はそんな風に書いてあった(jdk?1.5だけど)。
書いてない。
> Returns a clone of this vector. The copy will contain a reference to a clone of the internal data array,
> not a reference to the original internal data array of this Vector object.

770 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:20:26 ]
>>768
ご丁寧にどうもありがとうございます。
無事透過したまま書き込むことができました。

それにしても他のソースで使ってるコードなのに突然動作が変わるなんてなんだか怖いです。
精進します・・・。

771 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 23:25:59 ]
>>757 
> clone()したくローン先の方で変更したら、クローンもとのオブジェクト 
> でも変わる事が期待されるでしょ。 
それをしたいなら、o2=o1;でいいよーな。

772 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:31:41 ]
charにnullが代入できない。
納得いかない。

char test1 = '';

char test2 = null;

どっちも駄目なんだよな。

773 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:33:58 ]
納得いかないかもしれないが、そういうものだと思って使うしかない。

774 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:37:25 ]
新しいプログラミング言語が生まれることを期待したい!!

775 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:39:37 ]
新しいプログラミング言語はすでに色々あると思うけど・・・
C#などはいかが?



776 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:52:21 ]
>>772
> char test1 = '';

これはないでしょw
Unicodeだっつってんだからその範囲内でなんとかしようよ

777 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 00:57:35 ]
Character c = null;

778 名前:772 mailto:sage [2008/06/03(火) 01:13:41 ]
返信ありがとう。

int型にもnullを代入できないや・・・。
昔は代入できたよね?
勘違いかな?

779 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 01:23:15 ]
>>772
あそうか、「何charにnull突っ込んでんのww」と未熟者に突っ込む機会喪失問題か

780 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 01:23:41 ]
違ったらしいなw

781 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 01:30:42 ]


782 名前:デフォルトの名無しさん [2008/06/03(火) 01:32:05 ]
web.xmlの<servlet>タグでサーブレットのクラスを指定すると、それまでアクセスできてたjspにアクセスできなくなるんですけど、、なんで!?


783 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 02:19:38 ]
>>778
nullは参照型のリテラルであり参照型からプリミティブ型への暗黙の型変換は
プリミティブ型のラッパークラスからのauto-unboxingによるもの以外にない

784 名前:778 mailto:sage [2008/06/03(火) 02:37:23 ]
>>783
暗黙の型変換を使えば、プリミティブ型にnullを代入出来るって言ってるのかな?
ちょっと判り難かったから・・・すみません。
とりあえず有難う。
もう寝なきゃ・・・。

785 名前:デフォルトの名無しさん [2008/06/03(火) 02:39:33 ]
>>769
君、しつこいよ。荒らしと同じだよ。
そういう君独自の解釈はもういいから、早くSUNの翻訳担当の人に言っといてよ。



786 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 02:41:40 ]
>>783
場を和ませたい人がいるのか、たぶん釣りだと思うんだがww

787 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 02:42:52 ]
>>785
ごめん、これで最後にするけど、>>764以降漏れは無視してるから

788 名前:デフォルトの名無しさん [2008/06/03(火) 02:59:29 ]
>>787
一日中2CHに張り付いてんですか…邪魔する気はありませんけど、ホント、ご苦労なことですね…

789 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 03:29:09 ]
>>784
釣りじゃなくてマジ?
プリミティブ型にはそもそもnullという概念自体存在しない。

790 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 05:58:03 ]
もしSQL流のNULLがJavaにあったらキッツイ気がするな

791 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 10:57:57 ]
>>772
charに無効な値を入れたいなら、U+FFFFというソレ用のコードポイントがある。


792 名前:784 mailto:sage [2008/06/03(火) 11:35:32 ]
>>789
大マジまんだけど、でもようやく理解できた。
int型にnullへのポインタ突っ込むのは無理があるもんな。(遠い昔C言語をやっていた頃の記憶を呼び起こした。間違ってるかも。)


>>791
それ使える。
int(Unicode補助文字)ならU+FFFFFFFFって訳ね。

793 名前:784 mailto:sage [2008/06/03(火) 11:43:15 ]
>>784
>>791
感謝の言葉を忘れていた。
ありがとう。

794 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 16:40:14 ]
nullは-1でいいのか?0がいい感じの気がするけど。

795 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 17:55:27 ]




796 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 17:57:04 ]
一貫してれば具体値は何でもイイよ。

797 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 20:16:55 ]
質問させてください。
Eclipseの使用を考えています。
そのためには、どの程度のPC性能が必要ですか?

現在使用中のPCは、
CPU Pentium4 3.0GHz
MEM 1Gbyte
です。



798 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 20:20:14 ]
どなたかご教授願います。
-------------------------------

class sample1
{
public static void main(String args[])
{
double ans3 =(double)5/3;

System.out.println("5÷3は" + ans3 + "です。");

}
}

---------------------------------

上のようなソースがあるとして、
5/3の前に(double)の表記を入れる理由というのはなぜなんでしょうか?
すでにdouble ans3 のところでdoubleと書いてあるのでans3には、
ちゃんと小数点が含まれた答えが表示されると思うのですが。
もしかしてアホすぎる質問でしょうか

799 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 20:20:52 ]
>>797
大丈夫だと思うが、とにかく落としてきて軽く動かしてみ
どのぐらいが「快適に動かせる」と感じるかは、個人差がある

800 名前:797 mailto:sage [2008/06/03(火) 20:34:03 ]
>>799
> 大丈夫だと思うが、とにかく落としてきて軽く動かしてみ
とりあえず動くようで安心しました。さっそく、インストールしてみます。
回答ありがとうございます。

801 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:21:38 ]
>>598
5/3するときにはそれがdouble型に代入されるなんて気にしちゃいない。
つーか、思ってるだけじゃなく、キャストのありなしで結果が違うことくらいは試せ。


802 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:34:41 ]
>>798
www.lcv.ne.jp/~kenmio/yomimono/yomimono4.htm
ここの「5割る2は2?」って所を見ると良いよ。

803 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:46:15 ]
>>802
ありがとうございました。
これで寝れそうです。

804 名前:デフォルトの名無しさん mailto:sage [2008/06/03(火) 21:48:18 ]
>>803
マルチ先にも断っとけよ。

805 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:39:53 ]
設計に関して質問があります。

今作っているソフトの中でJButtonやJTextなどのオブジェクトが多数出現します。
こうした場合配列にしておくと
JButton button[]=new JButton[BUTTONNUM];
for(int i=0;i<button.length;i++)
{
button[i].〜
}
みたいに一括で処理できるものもあるので便利なのですが、
個別の名前(例えばdeletebutton)を付けた場合に比べて
button[1]、button[2]では何のボタンか分かりづらい面があります。

こういう場合、一般的にor皆さんの場合どうしているか教えてください。



806 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 01:43:31 ]
ちなみに今現在の処理方法ですが、
HashtableとgetIndex(String)という関数を作って、

Hashtabel hash=new Hashtable();
hash.put("delete","0"");
hash.put("prev","1");
・・・
public int getIndex(String buttonname)
{
return Integer.parseInt((String)hash.get(buttonname));
}
button[getIndex("delete")]という風にしています。

807 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 03:46:46 ]
自分では使ったことのない機能:
enum MyButton { DELETE, ... }

... button[MyButton.DELETE] ...
(いきなり質問の条件を無視してみる)

808 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 04:08:34 ]
>>806
そういうハッシュテーブルの使い方をするくらいなら、
間接的に配列のインデックスなんかに結びつけるんじゃなくて、
HashMap<String, JButton> buttons = new HashMap<String, JButton>();
buttons.put("delete", new JButton());
buttons.put("prev", new JButton());
...
buttons.get("delete").〜
みたいに名前とインスタンスを直接結び付けておいてもいいような。
>>805のように一括して処理したいようなループを回すときは、
for (JButton button : buttons.values()) {
button.〜
}
のようにできるし。

809 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 04:30:13 ]
>>807
たぶんそれコンパイルできない
Cの列挙型ではないからもしやるならbutton[MyButton.DELETE]でなくbutton[MyButton.DELETE.ordinal()]だ

810 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 08:03:06 ]
>>805
個別の名前をつけて配列にも入れておけばいいじゃない
JButton deleteButton = new JButton();
JButton prevButton = new JButton();
...
JButton button[] = { deleteButton, prevButton, ... };

811 名前:デフォルトの名無しさん [2008/06/04(水) 08:45:22 ]
ボタンいくつ貼り付けてるの?

812 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 11:26:13 ]
>>810
たぶん、そういう生成もループで済ませたいんじゃないかな。わかんないけど。
たしかに「多数」ってどのくらいなのか気になるw

813 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 12:11:24 ]
>>805
一括に処理したいというのと個別に名前で指定したいという要求はバッティングするんじゃ?

本当に希望しているのは、個別に指定したいけど、コード量は減らしたいってだけじゃないの?

それなら、
private JButton getButton(String name,...){}
JButton delete = this.getButton("削除",...)
みたいなビルダーメソッドを作ればいいのでは

814 名前:805 mailto:sage [2008/06/04(水) 12:57:50 ]
皆さんありがとうございます!
ですね、一括で処理したいのは生成も含めて、
パネルへの追加とかフォントの指定とかまとめて共通の処理を行う部分で、
個別に判断する所というのはActionListenerを実装したりする部分なんかです。
色んな方法を聞けて勉強になりました、列挙体に至ってはJavaであることを知らなかった…。
今日学校からやってみます、本当にありがとうございます!

ちなみにリネーマ&ファイル整理用のプログラムなのでボタンは今は
プレビュー、リネーム、ファイル検索、削除、移動、ディレクトリ表示くらいですが、
テキストフィールドの方が
ワイルドカード、正規表現、前方一致、後方一致、ユーザ定義用etcとたくさん指定出来るように作ってあって11個くらいといった感じでしたw

815 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 17:03:17 ]
>>57-58を見て思った。

>>57のような意味不明なレスをすると自分のレス番号が該当になったとき
>>58のように「おかしい」とおもわないといけない儀式でもあるのか?

おかしいと思ってる>>58まったく理解できないのだが。
別の意味でおかしいとは思うけどさ



816 名前:デフォルトの名無しさん mailto:sage [2008/06/04(水) 17:07:34 ]
君がThreadとか理解してるなら気にしなくていいんじゃない?

817 名前:デフォルトの名無しさん [2008/06/04(水) 17:09:58 ]
結局ビルダーパタンで落ち着いたのね。
せいぜいそれぐらい(11個)とか思ったけど、チェックボックス(とラベル)が100個超えてるUIのパターンもあるから。
それならソースコード11行とか100行にわたり書けばいいんじゃないかと思うけど。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<277KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef