質問: ### 前提・実現したいこと 今javaでノベルゲームを作っているのですが、文字を左から右に流したいのですが、やり方が全く分かりません。どのようにすればよいのでしょうか、教えてください。 ちなみにjavaを始めてからまだ1か月くらいしかたってないので分からないことが沢山あるのですが、どうぞよろしくお願い致します。 ### 試したこと 二日くらいかけて、文字を流す方法を調べていろいろサンプルコードは出てきたのですが、どの部分を書けばよいのか分からず何をしていいか分からなかったので質問させていただきました。 ### 補足情報(FW/ツールのバージョンなど) eclipseのバージョン4.5を使用しています。 javax.swingで作っています。
回答: このようなことかと思います. ``` import javax.swing.JFrame; import javax.swing.JTextArea; import javax.swing.SwingUtilities; import javax.swing.WindowConstants; public class NovelText extends JFrame { public static void main(String[] args) { JFrame frame = new NovelText(); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.setSize(500, 400); frame.setVisible(true); } NovelText() { super(); JTextArea textArea = new JTextArea(); textArea.setEditable(false); getContentPane().add(textArea); setTalking(textArea, "じゅげむ じゅげむ ごこうのすりきれ\n" + "かいじゃりすいぎょの すいぎょうまつ\n" + "うんらいまつ ふうらいまつ\n" + "くうねるところに すむところ\n" + "やぶらこうじの ぶらこうじ\n" + "パイポパイポ\n" + "パイポのシューリンガン\n" + "シューリンガンのグーリンダイ\n" + "グーリンダイのポンポコピーのポンポコナーの\n" + "ちょうきゅうめいのちょうすけ"); } void setTalking(final JTextArea textArea, final String text) { Thread thread = new Thread(new Runnable() { @Override public void run() { try { int index = 0; while(true) { textArea.append(text.substring(index, index+1)); if(++index >= text.length()) break; Thread.sleep(300); //[ms] } } catch (InterruptedException ignore) { } } }); thread.start(); } } ```