TextAreaにAと記入
↓
setText("");で初期化。
↓
同じ場所にBと記入。
という、流れにしたいのですが、初期化した後、なぜかABと記入されてしまいます。
用意されている文章を順番に出力したいだけなので、記載したコードだけで完結しています。
java
1public class Frame4 extends JFrame implements MouseListener { 2 int count = 0; 3 JTextArea mainArea; 4 Scanner input = new Scanner(System.in); 5 6 ByteArrayOutputStream bytes = new ByteArrayOutputStream() { 7 public synchronized void flush() throws IOException { 8 mainArea.setText(toString()); 9 } 10 }; 11 12 PrintStream out = new PrintStream(bytes, true); 13 14 Frame4(String title){ 15 this.setTitle(title); 16 this.setSize(624, 580); 17 this.setLocationRelativeTo(null); 18 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 19 this.addMouseListener(this); 20 21 JPanel pane1 = new JPanel(); 22 23 mainArea = new JTextArea(""); 24 mainArea.setPreferredSize(new Dimension(580, 150)); 25 mainArea.setEditable(false); 26 mainArea.setLineWrap(true); 27 mainArea.setBorder(new EtchedBorder(EtchedBorder.LOWERED)); 28 29 pane1.add(mainArea); 30 31 Container con = this.getContentPane(); 32 con.add(pane1); 33 } 34 35 @Override 36 public void mouseClicked(MouseEvent e) { 37 System.setErr(out); 38 System.setOut(out); 39 switch(count){ 40 case 0: 41 System.out.println("テスト1"); 42 break; 43 case 1: 44 System.out.println("テスト2"); 45 break; 46 case 2: 47 mainArea.setText(""); 48 break; 49 case 3: 50 System.out.println("テスト3"); 51 break; 52 } 53 count ++; 54 } 55}
コード上でmainAreaは編集不可になっており、setTextで""以外を設定する箇所はSystem.outのコンソールの出力によっているようですが、再現手順がよくわかりません。また一部コードを省略しておられますが、肝心な部分が抜けているということはないでしょうか?どうやったらABとなるのか再現手順を明確に記入してはいかがでしょうか?コンソールから実行しているか(そのコンソールはどのOSのどういうターミナルソフトか)またはIDEから実行しているならどのIDEのどのバージョンかも記入した方がよいかも知れません。
説明が足りなくて申し訳ないです。用意されている文章を順番に出力したいだけなので、記載したコードだけで完結しています。
回答1件
あなたの回答
tips
プレビュー