17/03/31 09:03:42.27 XdddFVWv.net
cで言う所のgetche()だな
972:デフォルトの名無しさん
17/03/31 10:51:24.05 ndHhBxYB.net
>>952
ぐるぐる回ればいいんだよ。
973:デフォルトの名無しさん
17/03/31 11:08:45.91 H1pQ0CXA.net
>>953
getche()嫌い(´・ω・`)
974:デフォルトの名無しさん
17/03/31 12:08:22.35 r4bo6GQ0.net
ネイティブライブラリ作ってJNIで利用するしか手がなさそう
975:デフォルトの名無しさん
17/03/31 20:55:58.48 +RoQYFQA.net
javaでゲームを作っています
キー入力でキャラクターが移動してマウスで様々なイベントの処理をしようとしているのですがマウスでイベントを処理するとキー入力を受け付けなくなってしまいます
原因が分かる方いますか?
976:デフォルトの名無しさん
17/03/31 21:09:11.82 w9WwQK5E.net
>>957
わかんない。変な書き方してるんじゃない?
977:デフォルトの名無しさん
17/03/31 21:46:30.50 Tf8W7eqI.net
わかったぞ
バグってるからだ!
978:デフォルトの名無しさん
17/03/31 21:58:04.26 +RoQYFQA.net
やはりどこかバグがあるんですかね
そこまで複雑な処理はしてないのですが...
しばらく探してみます
979:デフォルトの名無しさん
17/03/31 22:13:13.87 mtJPl6/b.net
バグってハニー
980:デフォルトの名無しさん
17/04/01 05:25:50.87 2aD1OODW.net
ていうか、どう書いたのかここに書くなり何処かに書いてリンクするなりしてくれないと誰も何とも言えんだろう
981:デフォルトの名無しさん
17/04/01 16:16:56.73 2aD1OODW.net
>>953
その関数環境依存で最初からライブラリに入ってるのは主にWindows用Cコンパイラだよな。
他の環境だと自作することになって面倒。
982:デフォルトの名無しさん
17/04/01 21:22:01.68 j/176Eap.net
URLリンク(pastebin.com)
コンソルに出力された結果値
A:X, B:〇, C:X, D:X, E: X, -> @@ : TW : 15, $ : 650 <-ここは300
A:X, B:X, C:〇, D:X, E: X, -> @@ : TW : 15, $ : 650 <-ここは350
A:X, B:X, C:X, D:〇, E: X, -> @@ : TW : 15, $ : 650 <-ここは500
A:X, B:X, C:X, D:X, E: X, -> @@ : TW : 15, $ : 650 <-ここは0
質問:<-[ここは~] の箇所は出力値が想定と違うのは�
983:ネぜでしょうか?
984:デフォルトの名無しさん
17/04/01 23:32:20.40 JX3Xm6T9.net
想定がよくわからん。↓みたいな事がしたいのかと思ったけど。
URLリンク(paiza.io)
985:デフォルトの名無しさん
17/04/01 23:52:55.78 j/176Eap.net
>>965
そうです。まさにその通りです。ソースを参考に何が間違っていたのか分析してみます。
大変ありがとうございました。
986:デフォルトの名無しさん
17/04/02 00:57:17.53 oPl36p+V.net
ソースコードを見て考えなくても、1行ずつ、デバッグすれば良いだけだろ?
それか、あちこちに、print文をばらまくとか
987:デフォルトの名無しさん
17/04/02 09:48:13.58 7PiFqLeo.net
>>964
正直何がしたいか(要件)がわからないけど、やりたいことに対して実装が複雑すぎじゃない?
実業務だったら多分全部書き直してる
988:デフォルトの名無しさん
17/04/02 16:17:59.71 E8izrwFB.net
wait()って、notify()ではなくタイムアウトで関数ブロック状態で抜けた場合それを知るすべが無いの?
タイムアウト・InterruptedExceptionで抜けた場合は処理Aを、
notify()で抜けた場合は処理Bを、ってことがやりたいんだが
989:デフォルトの名無しさん
17/04/02 19:16:01.75 REfjDWjC.net
>>969
notifyする側でsynchronizedブロック抜ける前になんかのフラグたてて、
wait終わったときにそのフラグ読み込むとかじゃだめかな?
waitObjectにboolean notifyFlagとか持たせて
// wait側
synchronized(waitObject)
{
try {
waitObject.wait(timeout);
} catch (InterruptedException e) {
// Thread.interrupted();
}
if (waitObject.notifyFlag) {
// 処理B
} else {
// 処理A
}
}
// notify側
synchronized(waitObject)
{
waitObject.notifyFlag = true;
waitObject.notify();
}
990:デフォルトの名無しさん
17/04/03 00:57:41.00 uNrfjwY7.net
URLリンク(ideone.com)
上記のソースコードで実行時エラーが発生してしまうのですが、
どう直せばよいでしょうか?(Scannerの文)
スッキリわかるJava入門を参考に書いたのですが、
(例えば)String str = new java.util.Scanner(System.in).nextLine();
という文にある問題点が分かりません。
991:デフォルトの名無しさん
17/04/03 01:56:35.58 BUL/emew.net
自分の手元で動かせる環境がないのかな?
ideoneの使い方がそもそも間違ってるぞ。
992:デフォルトの名無しさん
17/04/03 03:01:27.51 UirRGd7/.net
>>970
ありがとうございます!
993:デフォルトの名無しさん
17/04/03 06:44:58.47 UyEHLSu2.net
>>971
単純に入力が無いぞこのやろーっていうエラーを吐いてる
IntelliJ辺りでソースコードコピーして実行したら
ちゃんと動いたぞ
994:971
17/04/03 15:54:28.98 QRQ9n9IP.net
>>972>>974
ありがとうございます。
エクリプスが入ってます。確かにそこではコンパイルエラーは出ていません。
しかしこのソースコードだとScannerクラスの使い方がよくないみたいなんですが、その辺りをどなたか説明して頂けないでしょうか?Googleで調べてもよくわかりません…。
995:デフォルトの名無しさん
17/04/03 16:11:53.89 yiUlzfB2.net
入力がないぞこのやろーってエラーをはいてるって言ってくれてるんだから入力するだけと違うんか
996:971
17/04/03 16:25:25.04 uNrfjwY7.net
>>976
どうやって入力すればいいんですか?
エクリプスのような案内が出ないんですが…。
997:デフォルトの名無しさん
17/04/03 16:31:30.42 uA2N3UXp.net
>>977
ideoneでコード書いてる下にstandard inputみたいなのあるはず
手元にEclipseあるならそれでやればいいんじゃないの?
998:971
17/04/03 17:08:42.50 QRQ9n9IP.net
>>978
ありがとうございます。
必要とされるであろうリテラルを、まとめて書いておくんですか?
999:デフォルトの名無しさん
17/04/03 18:03:17.35 uA2N3UXp.net
>>979 そう 改行挟んでね
1001:971
17/04/03 19:41:05.11 uNrfjwY7.net
>>980
分かりました。
ありがとうございました。
1002:デフォルトの名無しさん
17/04/03 19:43:08.35 gZTdU5yD.net
34歳ここにも書き込んでるなら向こうはよくね?
1003:デフォルトの名無しさん
17/04/03 19:44:04.24 bUINxLhd.net
>>957
キーイベントはフォーカスを持ったパネルとかコントロールしか受け取れない
あと、恐らくjframe使ってると思うけど、Container cont=getContentPane();で
contに直接ボタンとかをaddしてない?それやるとタイトルバーに食い込むよね?
まずpannelをaddするとpanelはバーの下に配置されて左上0,0がバーの下になる。
マウスの位置の取得とかフォーカスとか全てそのパネルを基準にするといい。
1004:デフォルトの名無しさん
17/04/03 19:50:58.79 C0G2h/2V.net
>>967
わかりました。デバッグしてみます。
>>968
Cで書かれているものをjavaで書こうとしているので、できるだけ、C実装と同じようにしたいと思っています。
1005:デフォルトの名無しさん
17/04/03 19:55:50.56 jWiaLeMO.net
>>984
他言語で同じ動作をするプログラムを組むってのは同じコードを書くって意味じゃないぞ
1006:デフォルトの名無しさん
17/04/03 21:40:30.47 C0G2h/2V.net
>>985
はい、今回初めてわかりました。今は以下のようになっています。もう少し修正してみます。
URLリンク(pastebin.com)
1007:デフォルトの名無しさん
17/04/04 05:18:13.74 K8Tf42DL.net
Haxe(ヘックス)はOSSで、JSに型チェックを付けたような言語で(altJS)、
JS(ES5), Flash, PHP, C++, Java, C#, Python, Lua に書き出せる。
Windows8.1対応。IDEは、FlashDevelop
このサイトで、ブラウザでプログラミングして、実行できる
Try Haxe !
try.haxe.org/
Haxeプログラミング入門、尾野政樹、2015
1008:デフォルトの名無しさん
17/04/04 14:36:15.40 S7/ucjiF.net
なぁ
interrupt()のすぐ後にsleep()入れると何故かスリープ後に割り込みが発生するんだけどこれ仕様?おかしいだろ。
すぐ割り込ませたいんだけど
1009:デフォルトの名無しさん
17/04/04 19:05:06.01 I9HDP9Y0.net
わからん。
なぜ< Result >
false
false
false
false
false
表示されるんだろうか。
[false, true, false, true, false]が表示されるはずなんだが。
URLリンク(pastebin.com)
1010:デフォルトの名無しさん
17/04/04 19:18:34.10 865J8TPA.net
>>970
Thread.currentThread().isInterrupted()じゃダメなんだっけ?
1011:デフォルトの名無しさん
17/04/04 19:47:54.02 iuVo07t1.net
>>989
ざっとしか見てないけど50-58の間にreturnがなくて58で必ずFalse入れてるんだからそうなるだろ
1012:デフォルトの名無しさん
17/04/04 20:22:21.70 D5e7y0zT.net
40行目、selected = tmpSelect;じゃなくてselected = new ArrayList<>(tmpSelect);じゃないか?
1013:デフォルトの名無しさん
17/04/04 20:47:18.61 I9HDP9Y0.net
>>991
39行目でtrueの場合(値更新)のみselectedは更新されるので、それ以外ではFalseの影響は受けないと考えます。
デバグ走らせたけど、2回しかこの処理は通っていませんでした。
>>992
ありがとうございます。予想通りに出力されました。
しかし、なぜselected = tmpSelect;では出来なかったのでしょうか。
1014:デフォルトの名無しさん
17/04/04 20:50:02.91 y0EcmGB0.net
次スレ
Java入門・初心者質問スレ Part.3
スレリンク(tech板)
>>990
Thread.currentThread().isInterrupted()でなにをすると?
割り込みステータスじゃタイムアウトとnotifyの判別できないんじゃね?
1015:デフォルトの名無しさん
17/04/04 22:43:40.74 A2bdtwo3.net
趣味でプログラミング始めようとして、一応入門書一冊読んだだけでプログラム作り始めました。
複数の入力に対して、計算結果を出力する泥アプリを作ろうとしています。
AndroidStrudioでエミュ起動するところまではできましたが、
Caused by: java.lang.NumberFormatException: Invalid int: ""はいています。
該当箇所は以下で、EditTextは入力を数字に制限しています。
EditText edit = (EditText) findViewById(R.id.edit);
String str = edit.getText().toString();
int num = Integer.parseInt(str);
TryCatchが必要のようなので、
String str = edit.getText().toString();
try {
num = Integer.parseInt(str);
}catch (NumberFormatException e){
num = 10;
}
としてひとまず代入が成功しているかのチェックも行いましたが、初期化された数字しか表示できません。
正しく自分の状況を説明できているかもわかりませんが、よろしくお願いいたします。
1016:デフォルトの名無しさん
17/04/04 23:05:30.35 rl/ytT5/.net
>>995
edit.getText().toString()呼び出すタイミングが悪いのでは?
Activity.onCreate()とかで呼び出してるんじゃないかな
上記ならどのタイミングでEditTextに入力された値を扱いたいかが分からないとそれ以上のアドバイスはできないけど
1017:デフォルトの名無しさん
17/04/04 23:24:24.85 A2bdtwo3.net
>>996
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
int num1 , num2 ;
EditText edit = (EditText) findViewById(R.id.edit_ab);
String str1 = edit_ab.getText().toString();
num1 = Integer.parseInt(str1);
EditText edit2 = (EditText) findViewById(R.id.edit2);
String str2 = edit_hr.getText().toString();
num2 = Integer.parseInt(str2);
final float num0 = num1 + num2 / 100;
final TextView text = (TextView)findViewById(R.id.text);
Button button_done = (Button)findViewById(R.id.button);
button_done.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
text.setText(String.valueOf(num0));
}
});
}
}
一部割愛していますが、上記のような形になっています。
@Overrideの意味も理解できていない状況ですが、そのonCreateも影響しているのでしょうか。
1018:デフォルトの名無しさん
17/04/05 00:29:20.89 QXjM+MPV.net
>>997
onClick()の中でnum1、num2取るように直してみな
1019:デフォルトの名無しさん
17/04/05 00:35:55.27 ft0BvTmE.net
>>993
Cで言うポインタみたいなもんなのよ。
selected = tmpSelect;ってすると以降tmpSelect、selectedが同じインスタンスを指すようになる。
そうなると当然tmpSelectで行った変更はselectedでも見えるし、selectedで行った変更はtmpSelectでも反映される。
URLリンク(paiza.io)
1020:デフォルトの名無しさん
17/04/05 00:38:09.83 /7gGEn2o.net
>>989
staticおじさんの回答
URLリンク(paiza.io)
1021:過去ログ ★
[過去ログ]
■ このスレッドは過去ログ倉庫に格納されています