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


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

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



1 名前:デフォルトの名無しさん mailto:sage [2007/04/30(月) 22:10:53 ]
過去ログ、関連スレッド、よくある質問とその回答、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
www.wikiroom.com/java/

これからJavaでプログラミングを始めたいが、何をすればいいかわからない人も、
wikiからのリンクをおたどりください。

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

前スレッド
【初心者】Java質問・相談スレッド100【大歓迎】
pc11.2ch.net/test/read.cgi/tech/1175317038

/* 既出の質問や、他に適切なスレが存在する質問は、容赦なく無視されます。
質問をする前にwikiで過去ログ、関連スレ、FAQをチェックしてください。 */
また、当スレで質問をするかたは、回答をもらえたときに、
wikiの更新をして頂ければ、忝なく存じます。

JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作板をご利用ください。pc10.2ch.net/hp/

次スレは>>980あたりで。

116 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 14:46:42 ]
>>112
>B,C,Dは異なる実装ですが、同じ機能を提供します。
ここまで分かってるなら理解してるような気がするけど、
機能が同じでも実装が違えば返ってくる値が違うってのは理解してる?


117 名前:112 mailto:sage [2007/05/03(木) 14:54:11 ]
>>116さん ご返答有難うございます。

>機能が同じでも実装が違えば返ってくる値が違う
Aから継承したメソッドをA型参照から呼び出しても、
それがBのインスタンスであるかCのインスタンスであるかによって、
実行される処理が変わるということでしょうか?

118 名前:112 mailto:sage [2007/05/03(木) 14:55:19 ]
115について、自分が考えたのは、

1.AにstaticなA型ポインタをメンバとして加える。
2.Aにstaticなインスタンス生成用のメソッドを追加する。
3.2のメソッドは1のポインタにB,C,D何れかのインスタンスを生成して参照(代入)させ、
1のポインタを返す。
4.B,C,Dのクラスまたはコンストラクタのスコープをパッケージで閉じてしまう。
5.↑によって、B,C,DのインスタンスはAのメソッドを通してA型としてしか取得できないようにする。

これってなんかおかしいでしょうか・・・。

119 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 14:59:44 ]
>>115
排他的でシングルトンなファクトリクラスを作れば良いかな。
シングルトンの管理は色々出来そうだけど
A,B,C,D,ファクトリを同じパッケージにしてB,C,Dのコンストラクタはパッケージープライベートにする。
んで、ファクトリはAのサブクラスのインスタンスを一度でも生成したか
どうかのフラグを持つ。B,C,Dのインスタンスを返すメソッド(ファクトリメソッド)内でフラグ立てる。
フラグが立ってれば以降はインスタンスを返さないか、
または生成済みインスタンスを返す。

大雑把だけどかんな感じか。


120 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 15:45:19 ]
>>117
そう。これサンプル。
ttp://www.vipper.org/vip499966.java

抽象クラスと継承については理解してるよ。
やろうとしてる事は
それとはあんまり関係ないきがする。
デザインパターンかも。



121 名前:112 mailto:sage [2007/05/03(木) 16:11:50 ]
>>119さん,120さん
有難うございます。
デザインパターンについて少し調べてみることにします。

122 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 00:13:16 ]
APIのメソッドのソースをEclipse上での見方を教えてください。
「ソースが見つかりませんでした。」
となるのですが・・。
どこからかDLすれば見れるようになるとかいうことでしょうか?

宜しくお願いします。


123 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 00:15:27 ]
APIソースはJDKに入ってる。
仮想マシンの設定あたりにソースzipを指定する箇所があるよ。


124 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 00:18:46 ]
構造体の2次元配列ってどうやって定義すればよいの?

こんな感じで使いたいのです。

myName[0][0].sei = "性"
myName[0][0].mei = "名"

ちなみにこんなふうにしてみましたがダメでした。

class StructName {
String sei;
String mei;
}

StructName myName[][] = new StructName[5][5];

myName[0][0].sei = "性" ← 代入しようとするとエラーになる。






125 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 00:26:37 ]
まずそれは構造体じゃない
で、最初に初期化しなきゃだめ
for〜〜
for〜〜
myName[i][j] = new StructName();

あとお前はコンストラクタでググるべきだ

126 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 01:23:52 ]
コンストラクタでググる前にjavaの教科書を頭から読み直すべきだな

127 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 01:44:55 ]
オブジェクトが存在するかどうか調べるにはどうすればいいでしょうか。

128 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 05:27:42 ]
もすこし詳しく

129 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 14:19:42 ]
int[] vec = new int[2];

このような1次元配列vecを2次元配列としてメソッドに渡したいのですが、どうしたらいいのでしょうか?
今は下のように書いているのですが、キャスト専用の変数を作るのとコードが冗長になってしまうのとが気になってしまって
もっとシンプルに書く方法ってありませんかね?

int[][] temp = new int[1][2];
temp[0] = vec;
method(temp);

130 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 14:36:03 ]
>>129
new int[][]{ vec };

131 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 16:10:19 ]
>>130
即レスありがとうございます
期待した通りに動かすことができました

132 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 17:24:54 ]
java入門したばかりで言語より考える方について質問ですが割合を出す方法を式で書くとどうなのかお尋ねします。
例えば、製品数a(1000個)の内、不良品b(200個)あると良品数c(80%)ですよね。

*a,bは決まった数字じゃありません

133 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 17:29:08 ]
それ算数の問題だからjavaとか関係ない

134 名前:デフォルトの名無しさん [2007/05/04(金) 20:03:54 ]
C系では、メソッドやクラスの左かぎ括弧は改行するけどJavaではしないよね。慣例なの?

【C系】
public class SampClass
{
}

【Java】
public class SampClass{
}



135 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 20:23:20 ]
Javaの場合、Sunが自身のコードで使っているとされるコーディング規約が文書化
されていて、その中に
java.sun.com/docs/codeconv/html/CodeConventions.doc5.html#381
というものがある。実際JDKのライブラリソースはこれに則っている感じ。

もちろん外部の人間が従う義務はない。ただ、Javaの黎明期には参考になるコード
はJDKのライブラリソースくらいだったわけで、この頃から一般人もJDKのソース
の書き方を真似て、カーリーブレースの前で改行しないスタイルが定着したのだろ
うと想像する。


136 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 20:24:35 ]
>>134
Sun のコーディング規約だと後者に近いってだけじゃね?

C言語でも改行しない人は一杯いるしね。
プログラミング言語C++ とかでも switch { やら struct hoge_tag { では改行してないし。
GNUコーディング規約だと if とか while とかでは改行+インデントして括弧つけたりするし。

137 名前:デフォルトの名無しさん [2007/05/04(金) 21:08:13 ]
これ、コピペ多用する言語なのか?
なんだかその悪寒がしてきたんだが

138 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 21:10:05 ]
>>137
なんで?

139 名前:デフォルトの名無しさん [2007/05/04(金) 22:31:55 ]
javaでExcelを作れるが、そのExcelにVBAコードを挿入できる??

140 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 22:59:48 ]
>>136
各言語でそういう規約があるのね。
eclipseの自動生成や、書籍を見てて改行してなかったから、慣例だと思ってたよ。
まぁ俺はクラス・メソッドは改行、制御文は改行なし、でいつもやってるんだがなぁ。
ま、javaは規約に従うとするか・・・。約1行、節約になるしw

141 名前:140 mailto:sage [2007/05/04(金) 23:00:27 ]
>>135もサンクス。

142 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 23:07:36 ]
コンストラクタの実行に時間がかかるクラスを作ったんで、カウンタ設置してその値に応じてJProgressBarで経過を表示しようとしたんだが、コンストラクタの実行中はバーが全然更新されなくて、実行終了後に更新されてバーがMAXになる。
どうすれば・・・

143 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 23:20:44 ]
>>142
今週のJavaクイズ(6):ボタンを押すとどうなる?
blogs.sun.com/javaev/entry/%E4%BB%8A%E9%80%B1%E3%81%AEjava%E3%82%AF%E3%82%A4%E3%82%BA_6_%E3%83%9C%E3%82%BF%E3%83%B3%E3%82%92%E6%8A%BC%E3%81%99%E3%81%A8%E3%81%A9%E3%81%86%E3%81%AA%E3%82%8B

「Java SE 6完全攻略」
第27回 Swingでマルチスレッド - SwingWorker その1(上記の解答編っぽい)
itpro.nikkeibp.co.jp/article/COLUMN/20070413/268205/

144 名前:デフォルトの名無しさん mailto:sage [2007/05/04(金) 23:39:00 ]
>>143
まじでサンクス!
明日早速なおしてみます。



145 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 10:06:07 ]
マルチにも回答がやってくる恋の季節

146 名前:デフォルトの名無しさん [2007/05/05(土) 14:27:24 ]
このエラー何ですが、どうしたらなおるでしょう?

シンボルを解釈処理できません。
シンボル: メソッド equals (char)
位置 : java.lang.String の クラス
if("\t".equals(tmpStr.charAt(i))){



147 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 14:30:27 ]
>>146
> if("\t".equals(tmpStr.charAt(i))){
if("\t".equals(tmpStr.substring(i, i+1))){

148 名前:デフォルトの名無しさん [2007/05/05(土) 14:36:12 ]
>>147
ありがとうござます。iが原因みたいですた。

149 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 14:42:51 ]
>>147
if('\t' == tmpStr.charAt(i)){

でも良かったのでは?

150 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 14:49:48 ]
別のプロセスにオブジェクトを渡したいのですが、どんな方法がありますか?

151 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 15:14:19 ]
コピペ

152 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 16:47:24 ]
>>150
java越えて共有メモリにしたいとか、そういう事?

153 名前:デフォルトの名無しさん [2007/05/05(土) 17:36:07 ]
オブジェクトを構成する全てのパラメータを
エクスポート、インポート出来るようにして・・・ってそういう事でいいのか?

154 名前:デフォルトの名無しさん [2007/05/05(土) 18:07:51 ]
Javaのクラスでつまずいている者です。

ttp://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29366

このようなソースの場合、
class Employeeの、

public Employee(String n, double s)
{
name = n;
salary = s;
id = 0;
}

public String getName()
{
return name;
}
はどういった役割をしているのでしょうか?
また、
public void setId()
{
id = nextId; // set id to next available id
nextId++;
}
もどういった役割なのでしょうか?
なぜ、getとsetを設定するのかが分からず、混乱しています。




155 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 18:16:17 ]
新しく犬を飼おう
名前はポチにしよう(setName)

このわんちゃんの名前なんていうの?
ポチだよ(getName)

156 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 18:19:58 ]
何でポチって名前なの?
ポチって首輪に書いてあるから
ポチって犬小屋に書いてあるから
ポチって焼き印wが押してあるから
ポチって俺が名付けたから

何でポチかは自由。知りたいのは何故かではなく名前だけ。

157 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 20:33:01 ]
fukumori.org/oo/why_use_getters_and_setters_j.html

158 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 21:13:24 ]
>>154
ただの変数だと、制限がかけられない。(現実的にありえない数値が入ったりする)
そこで、セッターを作り、引数をチェックし、ありえない数字が来たら例外を発生させる。

void setHoge(int foo) {
 if () {

}

159 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 21:16:41 ]
↑途中で送信してしまった。
if で引数チェックして、例外発生させるの。
そしたら、変数が適切な値だと保障することができる。

クラスや例外ない言語の場合、
関数呼んだあと、戻り値でエラーチェックしたりするのが
めんどくせえぞ。


160 名前:デフォルトの名無しさん mailto:sage [2007/05/05(土) 21:36:51 ]
オブジェクトってのは変数が賢くなったみたいなもん。
箱にボタンがついたみたいなもん。
自販機を考えてみれば、箱の中身の仕組みを知る必要はなく、
お金を入れて、ボタンさえ押せばジュースが返ってくる。

クラス(設計図)に中の仕組み書いて、
new クラス名でインスタンス(実体/オブジェクト)を作るってだけ。
クラスの外からは、中のメソッド(ボタン)の仕組みを知る必要はなく、
何が必要で、何が返ってくるかだけ知っていれば良い。

161 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 00:33:02 ]
jarファイルというのを作って実行してみたのですが、
プログラムは正しく動作するのに、画像が表示されません。

classファイルと同じディレクトリにgif画像はあるのですが、
どういった原因が考えられますか?

162 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 00:35:38 ]
>>161
正しく動作してんなら何の問題もないよね。

次の質問どーぞー

163 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 00:36:13 ]
>>161
エスパー募集キター

164 名前:161 mailto:sage [2007/05/06(日) 01:19:20 ]
ああ、そうですね。矛盾してますね。

パッケージに纏める前は正しく動作して画像もきちんと表示されていました。

しかしjarファイルを作った後にプログラムを実行したところ、画像は表示されないけど、
それ以外は前と同じ動作をしているように見えます。



165 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 01:40:57 ]
>>164
ClassやClassLoaderのgetResourceで画像ファイルのURLを求めてそのURLから読み込むようにしていないか
大文字と小文字の区別をつけられないファイルシステムを使っていて上手く動くような気になって
その区別をつけるjarの中の画像ファイル名を正しく指定していないか

166 名前:デフォルトの名無しさん [2007/05/06(日) 02:33:56 ]
Javaのawtってボタンとかの配置を座標で指定できないの?
それっていくらなんでも不便じゃない

167 名前:デフォルトの名無しさん [2007/05/06(日) 02:40:42 ]
>166おれにもおせーて

168 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:44:43 ]
つ ILikeTroublesomenessLayout implements LayoutManager2

169 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 02:48:16 ]
JNIを使ったクラスライブラリを書いているのですが、
ネイティブなファイルをjarに含めて動作させるにはどうしたら良いのでしょうか。

ぐぐるとBundle-NativeCodeなるものが見つかったものの
書いても何も変わらず、loadLibraryがネイティブなファイルを見つけてくれないのです。

170 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 04:31:56 ]
携帯電話向けJavaでは、
使いまわされないデータ型だけのクラス(構造体)なんかは、
メインのクラスで内部メンバとして書いたり、
ステップ数が多い処理を、メソッドを使わずインラインでガリガリ書いたりと、
独特の流儀があるようです。

以前の携帯は実行ファイルサイズ制限があって、
このような方法が主流みたいですが、
今は実行ファイルサイズの制限は緩和されたようです。

とすると、上のような携帯Java独特の、
およそJavaらしからぬコーディングスタイルには意味はあるのでしょうか?

例えば、単一のデータ構造を参照するのにインナークラスを使わずに、
呼び出し元のメンバとして参照する事で、速度的なメリットがあったりするのでしょうか?

171 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 05:12:58 ]
>>170
それはもう過去の話。心配しないで関数にしておk

172 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 05:13:46 ]
単一クラスでがんばる、とかは?

173 名前:デフォルトの名無しさん [2007/05/06(日) 07:25:37 ]
ライブカメラ全般たとえば「東京ストリート
チャンネル」などが見れなくなってしまった
のですが、何が原因なんでしょうか。
javaを再インストールしたがダメです。


174 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 10:08:54 ]
>>166
一応、java.awt.Component#setLocation()



175 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 10:12:10 ]
>>166
つ null layout

176 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 11:09:04 ]
>>170
食らうヒープ量が全然違うので関係大あり。


177 名前:デフォルトの名無しさん [2007/05/06(日) 11:17:24 ]
JAVAでロボット動かせるって本当ですか

178 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 11:20:22 ]
>>177
ロボットにJava仮想マシン載せれば

179 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 12:26:10 ]
ウインドウアプリケーションを作ろうと思っています。
Appletクラスの継承を用いてアプレットを起動する場合には、
htmlファイルの中に
<applet code="XXX.class" width=256 height=256>
を記入すればいいと思いますが、Frameクラスの継承を用いた場合、
同様にインターネットエクスプローラーから起動させるにはどうすればいいのでしょうか?



180 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 12:27:53 ]
>>179
Java Web Startでぐぐる

181 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 12:31:51 ]
>>174
これ使ってもうまくいかなかった。
ていうかJavaは用意されたレイアウトを組み合わせることでGUI部品を配置していく
仕組みを奨励してるのかな。面倒だよな。配置の仕方に限界がありそう。
なんで他言語のようなリソースエディタがないのだろう。
GUI部品のレイアウトをいちいち回りくどく記述するなんて古いよ


182 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 13:05:13 ]
同一環境でしか動かさないつもりなら別にいいが
そうでないなら絶対座標指定のほうがよっぽど限界があるわ。

183 名前:179 mailto:sage [2007/05/06(日) 13:08:21 ]
>>180
ありがとうございます。ちょっくらやってみます。

184 名前:170 mailto:sage [2007/05/06(日) 13:09:16 ]
>>172
>>176
速度的な面はどうなんでしょうか…?



185 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 13:15:40 ]
>>184
実測して計ってみるのがいいでしょう

186 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 13:17:02 ]
>>181
>>175は見たか?


187 名前:161 mailto:sage [2007/05/06(日) 16:08:50 ]
知識が乏しくて恐縮ですが
自分が使っているファイルシステム?ってのはどうやって調べられるのでしょうか。


188 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 17:39:17 ]
現在専門学校生なのですが、学校と同じ環境を作りたく設定で悩んでいます

コマンド プロンプトで、terapad ----.javaと打てばterapadが立ち上がるようにしたいのですがどうすればいいのでしょうか?

189 名前:デフォルトの名無しさん [2007/05/06(日) 17:40:16 ]
JFrameで質問があります。
Core Javaのボールオブジェクトが跳ね返るプログラムの応用で、
JFrame内に存在するオブジェクト(この場合、四角です)をD&DでJFrame内なら
自由に移動出来るJavaプログラムを作成しているのですが、
JFrameの外(見えない部分)にも移動でき、そうした場合、オブジェクトが見えなくなるので、
強制終了する以外終了する方法がないという意味のないプログラムになってます。

どうすれば、オブジェクトをJFrame内のみ移動可能なプログラムにする事ができるのでしょうか?

190 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 18:00:13 ]
>189
どうしてボールが跳ね返る(ようにみえる)か考えてみたら?

191 名前:デフォルトの名無しさん [2007/05/06(日) 18:23:56 ]
遠坂凛に質問です。

宝石製のバイブでオナニーすると、魔力を溜めることはできるんでしょうか?

192 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 18:30:00 ]
>>189
ズバリ解答を言うと、端に来たらD&Dでき無くすればおk

193 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 18:35:55 ]
>>188
exploreのオプション->ファイルタイプ
で.javaにそのterapadとやらを割り付ける

だけど、なんでterapadなんだ?
terapadとかcpadとか、わけわからん

194 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 18:47:37 ]
>>188
java関係ないがterapadをパスの通った場所に置けば良いじゃん。
てか、start XXX.javaじゃだめなん?



195 名前:189 [2007/05/06(日) 19:25:24 ]
>>190
Core Javaを参考にして、dx を -dxにしてみたのですが、上手くいきません。

>>192
それはどういう風に設定すればいいのでしょうか?

一応、ソースをサラしておきます。

ttp://a-draw.com/uploader/src/up22130.txt

196 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 20:13:45 ]
>195
全然無関係のところをまねしてどうする?
やるべきことはShapeに渡す値を描画エリアのサイズ内に調整すること

197 名前:189 [2007/05/06(日) 20:54:32 ]
>>196
shapeBeingDragged.moveBy(x - prevDragX, y - prevDragY);

の部分を調整すればよいのでしょうか?

198 名前:デフォルトの名無しさん [2007/05/06(日) 20:58:22 ]
>>181
つ NetBeans

199 名前:デフォルトの名無しさん [2007/05/06(日) 21:07:42 ]
eclipse使ってたらなんか上書きモードになっちゃった。
どうやったら治るの

200 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:13:30 ]
>>199
デフォルトのキーバインドなら insertキー

201 名前:デフォルトの名無しさん [2007/05/06(日) 21:17:39 ]
>>200
インサートキーってどうやってonにしたりoffにしたりできるの?教えて

202 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:24:07 ]
これはひどい

203 名前:デフォルトの名無しさん [2007/05/06(日) 21:25:38 ]
eclipseでお勧めの本おしえて

204 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:27:24 ]
>197
そう
元のCore Javaのソースはしらないけど
ボールが描画エリアの端にあたってはねかえるのは
端の座標を越えたら増分を反転させているから

そしてこの場合はDnDだから(つまり人間が操作しているから)
増分を反転させるのではなくそこの座標に制限する
言葉で説明するの面倒になってきたので
コードで書くとこんな感じかな

if (shapeBeingDragged == null) return;
int x = evt.getX();
int y = evt.getY();
Dimension cs = this.getSize();
int maxw = shapeBeingDragged.width - cs.width;
int maxh = shapeBeingDragged.height - cs.height;
if (x < 0) x = 0; else if (x > maxw) x = maxw;
if (y < 0) y = 0; else if (y > maxh) y = maxh;
shapeBeingDragged.moveBy(x, y);
repaint();




205 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:45:49 ]
>197
わるい逆だ
なれない変数名だったので混乱した
int maxw = cs.width - shapeBeingDragged.width;
int maxh = cs.height - shapeBeingDragged.height;


206 名前:189 [2007/05/06(日) 21:50:16 ]
>>205
ありがとうございます。
ソースに組み込んでみたのですが、クリックをするとはぐれメタルが逃げるかのごとく、
画面上からオブジェクトが右下に消えてしまいます。

207 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:57:30 ]
>206
mouseReleased()の方の実装もかえてね
mouseDragged()と1行違いだから共通部分を切り出して
別メソッド呼び出しにすればいいかな

if (shapeBeingDragged == null) return;
int x = evt.getX();
int y = evt.getY();
Dimension cs = this.getSize();
int maxw = cs.width - shapeBeingDragged.width;
int maxh = cs.height - shapeBeingDragged.height;
if (x < 0) x = 0; else if (x > maxw) x = maxw;
if (y < 0) y = 0; else if (y > maxh) y = maxh;
shapeBeingDragged.moveBy(x, y);
shapeBeingDragged = null;
repaint();


208 名前:189 [2007/05/06(日) 22:07:18 ]
>>207
こうでしょうか?

synchronized public void mouseDragged(MouseEvent evt) {
if (shapeBeingDragged == null) return;
int x = evt.getX();
int y = evt.getY();
Dimension cs = this.getSize();
int maxw = cs.width - shapeBeingDragged.width;
int maxh = cs.height - shapeBeingDragged.height;
if (x < 0) x = 0; else if (x > maxw) x = maxw;
if (y < 0) y = 0; else if (y > maxh) y = maxh;
shapeBeingDragged.moveBy(x, y);
repaint();
}

synchronized public void mouseReleased(MouseEvent evt) {
if (shapeBeingDragged == null) return;
int x = evt.getX();
int y = evt.getY();
Dimension cs = this.getSize();
int maxw = cs.width - shapeBeingDragged.width;
int maxh = cs.height - shapeBeingDragged.height;
if (x < 0) x = 0; else if (x > maxw) x = maxw;
if (y < 0) y = 0; else if (y > maxh) y = maxh;
shapeBeingDragged.moveBy(x, y);
shapeBeingDragged = null;
repaint();
}
ttp://a-draw.com/uploader/src/up22134.txt

209 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 22:14:49 ]
>208
いいんじゃないかな
逃げ去るってことはその他にタイマー処理が行われているって
可能性が考えられるけど元のソースのボールの処理が残ってない?


210 名前:189 [2007/05/06(日) 22:39:11 ]
>>209
タイマー処理は行われていません。

211 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 23:10:12 ]
>210
moveBy()で加算しているようだから以下のように書き換えてみて

left = dx;
top = dy;


212 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 12:40:08 ]
二つのクラスがあったとして
Class1のテキストフィールドにClass2のメソッドの処理結果を表示させたいんですがどのような方法が
ありますか??メソッドは引数をもたないものとして

213 名前:デフォルトの名無しさん [2007/05/07(月) 12:45:05 ]
SocketChannelでreadで-1が帰ってくる以外に正常切断を判断する方法はありますか。
FINで終わったのかどうかが知りたいです。

214 名前:213 [2007/05/07(月) 12:47:44 ]
Class1のインスタンスをClass2に事前に持たさせておいて
Class2のメソッドの処理結果がでたタイミングで
Class2で保持しているClass1のインスタンスのテキストフィールドに表示させる



215 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 14:25:23 ]
>>214
ありがとうです

class2{
class1 cls=new class1
処理
cls.text.setText(処理結果);}

このようにやってみたんですが表示してくれません・・・
エラーはないんですがどこが間違ってますか><?

216 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 14:41:05 ]
>>215
class1でのテキストフィールドのsetTextはちゃんと働いてるの?






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

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

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