質問するログイン新規登録

質問編集履歴

2

修正

2015/08/10 02:38

投稿

Tron
Tron

スコア27

title CHANGED
File without changes
body CHANGED
@@ -2,26 +2,34 @@
2
2
  具体的には、ConsoleReader#setPrompt(String)で指定している文字の後に非同期で出力したメッセージが表示されてしまいます。
3
3
  どうすればいいでしょうか?
4
4
  同期実行されている場合はこのようにはなりません。
5
- ![画像](d2bd6bf41aa7ef247743a7f4c0a51857.png)
5
+ ![イメージ説明](91f38517efc6a100064c962cb87bed88.png)
6
6
 
7
7
  ```Java
8
- public static void main(String args[]) {
8
+ public static void main(String args[]) {
9
9
  try {
10
10
  final ConsoleReader reader = new ConsoleReader();
11
- reader.setPrompt(">");
11
+ reader.setExpandEvents(false);
12
12
 
13
+ while (true) {
14
+ String line = reader.readLine(">");
13
- Timer timer = new Timer();
15
+ if (line != null) {
16
+ if (line.split(" ")[0].equalsIgnoreCase("copy")) {
17
+ System.out.println("Start Copy Thread");
14
- timer.schedule(new TimerTask() {
18
+ Thread thread = new Thread(new Runnable() {
15
- @Override
19
+ @Override
16
- public void run() {
20
+ public void run() {
21
+ // Dummy
22
+ try {
23
+ Thread.sleep(1000);
24
+ } catch (InterruptedException e) {
25
+ e.printStackTrace();
26
+ }
17
- System.out.println("hoge");
27
+ System.out.println("End Copy Thread");
28
+ }
29
+ });
30
+ thread.start();
31
+ }
18
32
  }
19
- }, 0, 1000);
20
- String line;
21
- while ((line = reader.readLine()) != null) {
22
- if (line.equalsIgnoreCase("stop")) {
23
- break;
24
- }
25
33
  }
26
34
  } catch (Throwable t) {
27
35
  t.printStackTrace();
@@ -31,7 +39,10 @@
31
39
 
32
40
 
33
41
  期待する動作
42
+ 下記のようにプロンプト部分「>」に出力された文字がかぶらないようにしたいです。
43
+ 常に一番下の行にプロンプト部分「>」が来るようにしたいです。
44
+
34
- hoge
45
+ >copy
46
+ Start Copy Thread
35
- hoge
47
+ End Copy Thread
36
- hoge
37
48
  >

1

期待する動作を追加

2015/08/10 02:38

投稿

Tron
Tron

スコア27

title CHANGED
File without changes
body CHANGED
@@ -27,4 +27,11 @@
27
27
  t.printStackTrace();
28
28
  }
29
29
  }
30
- ```
30
+ ```
31
+
32
+
33
+ 期待する動作
34
+ hoge
35
+ hoge
36
+ hoge
37
+ >