- 1 名前:デフォルトの名無しさん mailto:sage [2016/11/11(金) 20:25:11.04 ID:zFksT2Ki.net]
- Java初心者のためのスレッドです。
※前スレ Java入門・初心者質問スレ echo.2ch.net/test/read.cgi/tech/1462997913/
- 969 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 07:23:06.99 ID:Otn8HbSa.net]
- >>950
あるというか、仕様として決めればいい話 Javaでかつエンターいらないって仕様なら、 1行読みじゃなくて1文字読みすればいいだけのこと
- 970 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 09:02:39.11 ID:Ynkhy4/h.net]
- コマンドプロンプトとjavaだけじゃ不可能じゃね?
- 971 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 09:03:42.27 ID:XdddFVWv.net]
- cで言う所のgetche()だな
- 972 名前:デフォルトの名無しさん [2017/03/31(金) 10:51:24.05 ID:ndHhBxYB.net]
- >>952
ぐるぐる回ればいいんだよ。
- 973 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 11:08:45.91 ID:H1pQ0CXA.net]
- >>953
getche()嫌い(´・ω・`)
- 974 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 12:08:22.35 ID:r4bo6GQ0.net]
- ネイティブライブラリ作ってJNIで利用するしか手がなさそう
- 975 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 20:55:58.48 ID:+RoQYFQA.net]
- javaでゲームを作っています
キー入力でキャラクターが移動してマウスで様々なイベントの処理をしようとしているのですがマウスでイベントを処理するとキー入力を受け付けなくなってしまいます 原因が分かる方いますか?
- 976 名前:デフォルトの名無しさん [2017/03/31(金) 21:09:11.82 ID:w9WwQK5E.net]
- >>957
わかんない。変な書き方してるんじゃない?
- 977 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 21:46:30.50 ID:Tf8W7eqI.net]
- わかったぞ
バグってるからだ!
- 978 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 21:58:04.26 ID:+RoQYFQA.net]
- やはりどこかバグがあるんですかね
そこまで複雑な処理はしてないのですが... しばらく探してみます
- 979 名前:デフォルトの名無しさん mailto:sage [2017/03/31(金) 22:13:13.87 ID:mtJPl6/b.net]
- バグってハニー
- 980 名前:デフォルトの名無しさん [2017/04/01(土) 05:25:50.87 ID:2aD1OODW.net]
- ていうか、どう書いたのかここに書くなり何処かに書いてリンクするなりしてくれないと誰も何とも言えんだろう
- 981 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 16:16:56.73 ID:2aD1OODW.net]
- >>953
その関数環境依存で最初からライブラリに入ってるのは主にWindows用Cコンパイラだよな。 他の環境だと自作することになって面倒。
- 982 名前:デフォルトの名無しさん [2017/04/01(土) 21:22:01.68 ID:j/176Eap.net]
- ttps://pastebin.com/eJLwe5pK
コンソルに出力された結果値 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 名前:デフォルトの名無しさん mailto:sage [2017/04/01(土) 23:32:20.40 ID:JX3Xm6T9.net]
- 想定がよくわからん。↓みたいな事がしたいのかと思ったけど。
ttps://paiza.io/projects/eGVsgPaiOfG8hG7yst2CBg
- 985 名前:デフォルトの名無しさん [2017/04/01(土) 23:52:55.78 ID:j/176Eap.net]
- >>965
そうです。まさにその通りです。ソースを参考に何が間違っていたのか分析してみます。 大変ありがとうございました。
- 986 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 00:57:17.53 ID:oPl36p+V.net]
- ソースコードを見て考えなくても、1行ずつ、デバッグすれば良いだけだろ?
それか、あちこちに、print文をばらまくとか
- 987 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 09:48:13.58 ID:7PiFqLeo.net]
- >>964
正直何がしたいか(要件)がわからないけど、やりたいことに対して実装が複雑すぎじゃない? 実業務だったら多分全部書き直してる
- 988 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 16:17:59.71 ID:E8izrwFB.net]
- wait()って、notify()ではなくタイムアウトで関数ブロック状態で抜けた場合それを知るすべが無いの?
タイムアウト・InterruptedExceptionで抜けた場合は処理Aを、 notify()で抜けた場合は処理Bを、ってことがやりたいんだが
- 989 名前:デフォルトの名無しさん mailto:sage [2017/04/02(日) 19:16:01.75 ID: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 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 00:57:41.00 ID:uNrfjwY7.net]
- https://ideone.com/ccxD7R
上記のソースコードで実行時エラーが発生してしまうのですが、 どう直せばよいでしょうか?(Scannerの文) スッキリわかるJava入門を参考に書いたのですが、 (例えば)String str = new java.util.Scanner(System.in).nextLine(); という文にある問題点が分かりません。
- 991 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 01:56:35.58 ID:BUL/emew.net]
- 自分の手元で動かせる環境がないのかな?
ideoneの使い方がそもそも間違ってるぞ。
- 992 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 03:01:27.51 ID:UirRGd7/.net]
- >>970
ありがとうございます!
- 993 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 06:44:58.47 ID:UyEHLSu2.net]
- >>971
単純に入力が無いぞこのやろーっていうエラーを吐いてる IntelliJ辺りでソースコードコピーして実行したら ちゃんと動いたぞ
- 994 名前:971 mailto:sage [2017/04/03(月) 15:54:28.98 ID:QRQ9n9IP.net]
- >>972>>974
ありがとうございます。 エクリプスが入ってます。確かにそこではコンパイルエラーは出ていません。 しかしこのソースコードだとScannerクラスの使い方がよくないみたいなんですが、その辺りをどなたか説明して頂けないでしょうか?Googleで調べてもよくわかりません…。
- 995 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 16:11:53.89 ID:yiUlzfB2.net]
- 入力がないぞこのやろーってエラーをはいてるって言ってくれてるんだから入力するだけと違うんか
- 996 名前:971 mailto:sage [2017/04/03(月) 16:25:25.04 ID:uNrfjwY7.net]
- >>976
どうやって入力すればいいんですか? エクリプスのような案内が出ないんですが…。
- 997 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 16:31:30.42 ID:uA2N3UXp.net]
- >>977
ideoneでコード書いてる下にstandard inputみたいなのあるはず 手元にEclipseあるならそれでやればいいんじゃないの?
- 998 名前:971 mailto:sage [2017/04/03(月) 17:08:42.50 ID:QRQ9n9IP.net]
- >>978
ありがとうございます。 必要とされるであろうリテラルを、まとめて書いておくんですか?
- 999 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 18:03:17.35 ID:uA2N3UXp.net]
- >>979
そう 改行挟んでね []- [ここ壊れてます]
- 1001 名前:971 mailto:sage [2017/04/03(月) 19:41:05.11 ID:uNrfjwY7.net]
- >>980
分かりました。 ありがとうございました。
- 1002 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 19:43:08.35 ID:gZTdU5yD.net]
- 34歳ここにも書き込んでるなら向こうはよくね?
- 1003 名前:デフォルトの名無しさん [2017/04/03(月) 19:44:04.24 ID:bUINxLhd.net]
- >>957
キーイベントはフォーカスを持ったパネルとかコントロールしか受け取れない あと、恐らくjframe使ってると思うけど、Container cont=getContentPane();で contに直接ボタンとかをaddしてない?それやるとタイトルバーに食い込むよね? まずpannelをaddするとpanelはバーの下に配置されて左上0,0がバーの下になる。 マウスの位置の取得とかフォーカスとか全てそのパネルを基準にするといい。
- 1004 名前:デフォルトの名無しさん [2017/04/03(月) 19:50:58.79 ID:C0G2h/2V.net]
- >>967
わかりました。デバッグしてみます。 >>968 Cで書かれているものをjavaで書こうとしているので、できるだけ、C実装と同じようにしたいと思っています。
- 1005 名前:デフォルトの名無しさん mailto:sage [2017/04/03(月) 19:55:50.56 ID:jWiaLeMO.net]
- >>984
他言語で同じ動作をするプログラムを組むってのは同じコードを書くって意味じゃないぞ
- 1006 名前:デフォルトの名無しさん [2017/04/03(月) 21:40:30.47 ID:C0G2h/2V.net]
- >>985
はい、今回初めてわかりました。今は以下のようになっています。もう少し修正してみます。 ttps://pastebin.com/5GYupJyS
- 1007 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 05:18:13.74 ID: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 名前:デフォルトの名無しさん [2017/04/04(火) 14:36:15.40 ID:S7/ucjiF.net]
- なぁ
interrupt()のすぐ後にsleep()入れると何故かスリープ後に割り込みが発生するんだけどこれ仕様?おかしいだろ。 すぐ割り込ませたいんだけど
- 1009 名前:デフォルトの名無しさん [2017/04/04(火) 19:05:06.01 ID:I9HDP9Y0.net]
- わからん。
なぜ< Result > false false false false false 表示されるんだろうか。 [false, true, false, true, false]が表示されるはずなんだが。 ttps://pastebin.com/DhqE0x1K
- 1010 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 19:18:34.10 ID:865J8TPA.net]
- >>970
Thread.currentThread().isInterrupted()じゃダメなんだっけ?
- 1011 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 19:47:54.02 ID:iuVo07t1.net]
- >>989
ざっとしか見てないけど50-58の間にreturnがなくて58で必ずFalse入れてるんだからそうなるだろ
- 1012 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 20:22:21.70 ID:D5e7y0zT.net]
- 40行目、selected = tmpSelect;じゃなくてselected = new ArrayList<>(tmpSelect);じゃないか?
- 1013 名前:デフォルトの名無しさん [2017/04/04(火) 20:47:18.61 ID:I9HDP9Y0.net]
- >>991
39行目でtrueの場合(値更新)のみselectedは更新されるので、それ以外ではFalseの影響は受けないと考えます。 デバグ走らせたけど、2回しかこの処理は通っていませんでした。 >>992 ありがとうございます。予想通りに出力されました。 しかし、なぜselected = tmpSelect;では出来なかったのでしょうか。
- 1014 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 20:50:02.91 ID:y0EcmGB0.net]
- 次スレ
Java入門・初心者質問スレ Part.3 echo.2ch.net/test/read.cgi/tech/1491306071/ >>990 Thread.currentThread().isInterrupted()でなにをすると? 割り込みステータスじゃタイムアウトとnotifyの判別できないんじゃね?
- 1015 名前:デフォルトの名無しさん [2017/04/04(火) 22:43:40.74 ID: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 名前:デフォルトの名無しさん mailto:sage [2017/04/04(火) 23:05:30.35 ID:rl/ytT5/.net]
- >>995
edit.getText().toString()呼び出すタイミングが悪いのでは? Activity.onCreate()とかで呼び出してるんじゃないかな 上記ならどのタイミングでEditTextに入力された値を扱いたいかが分からないとそれ以上のアドバイスはできないけど
- 1017 名前:デフォルトの名無しさん [2017/04/04(火) 23:24:24.85 ID: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 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 00:29:20.89 ID:QXjM+MPV.net]
- >>997
onClick()の中でnum1、num2取るように直してみな
- 1019 名前:デフォルトの名無しさん mailto:sage [2017/04/05(水) 00:35:55.27 ID:ft0BvTmE.net]
- >>993
Cで言うポインタみたいなもんなのよ。 selected = tmpSelect;ってすると以降tmpSelect、selectedが同じインスタンスを指すようになる。 そうなると当然tmpSelectで行った変更はselectedでも見えるし、selectedで行った変更はtmpSelectでも反映される。 ttps://paiza.io/projects/P95uB_jQm3p0-qLv8Y7fuw
- 1020 名前:デフォルトの名無しさん [2017/04/05(水) 00:38:09.83 ID:/7gGEn2o.net]
- >>989
staticおじさんの回答 https://paiza.io/projects/Z4PUIZZTxSSXqP8Xfs0fwQ
- 1021 名前:過去ログ ★ [[過去ログ]]
- ■ このスレッドは過去ログ倉庫に格納されています
|

|