# HG changeset patch # User Shinji KONO # Date 1579865577 -32400 # Node ID 6fe174283811f5ac923190d15e3d224a8d30825a # Parent 4794710670bf37ef842cdffca845c411f8d2ef44 case fix diff -r 4794710670bf -r 6fe174283811 src/main/java/christie/textEditor/textFrame.java --- a/src/main/java/christie/textEditor/textFrame.java Fri Jan 24 20:32:22 2020 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,154 +0,0 @@ -package christie.textEditor; - -import java.io.ByteArrayOutputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.IOException; - -import javax.swing.*; -import javax.swing.event.DocumentEvent; -import javax.swing.event.DocumentListener; -import javax.swing.text.BadLocationException; -import javax.swing.text.Document; -import javax.swing.text.StyleContext; - -@org.msgpack.annotation.Message -public class TextFrame extends JInternalFrame { - private JTextArea textArea; - - private static String DEFAULT_CHARACTER_CODE = "Shift_JIS"; - - public int loc = 0; - - public boolean send = false; - - private String inserted_string; - - private int sendLoc = 0; - - private boolean canWrite = true; - - StyleContext sc = new StyleContext(); - - public TextFrame() { - this("新規テキスト"); - } - - public TextFrame(String title) { - //JInternalFrameのコンストラクタの呼び出しを実行 - super(title, true, true, true, true); - //サイズの指定 - this.setSize(800, 600); - // JTextArea(テキスト入力のコンポーネントを追加する。) - textArea = new JTextArea(); - - textArea.getDocument().addDocumentListener(new MyDocumentListener()); - - //textArea.getDocument().putProperty("name", "Text Area"); - this.add(textArea); - } - - - public TextFrame(File file) throws IOException { - this(file.getName()); - this.openFile(file); - } - - void openFile(File file) throws IOException { - FileInputStream fiStream = null; - ByteArrayOutputStream baoStream = null; - try { - fiStream = new FileInputStream(file); - System.out.print(fiStream); - baoStream = new ByteArrayOutputStream(); - System.out.print(baoStream); - //読み込みデータ格納用配列 - byte[] byteData = new byte[1]; - int ret = fiStream.read(byteData); - //ファイルの最後まで繰り返す。 - while (ret != -1) { - baoStream.write(byteData); - ret = fiStream.read(byteData); - } - //バイト配列を文字列に変換、重い。 - String text = new String(baoStream.toByteArray(), DEFAULT_CHARACTER_CODE); - //テキストGUIに読み込んだファイルの内容を設定 - textArea.setText(text); - //タイトルを開いたファイル名へ変更 - this.setTitle(file.getName()); - } finally { - if (fiStream != null) { - fiStream.close(); - } - if (baoStream != null) { - baoStream.close(); - } - } - } - - public void insertText(int pos, String str){ - textArea.insert(str, pos); - } - - public boolean SendPermission(){ - return send; - } - - public void changeToFalseSend(){ - send = false; - } - - public int returnOffset(){ - return sendLoc; - } - - public void prohibitDL(){canWrite = false;} - - public String returnString(){return inserted_string;} - - public class MyDocumentListener implements DocumentListener { - public void insertUpdate(DocumentEvent e) { - if(canWrite == true) { - Document doc = e.getDocument(); - loc = e.getOffset(); - sendLoc = loc; - - try { - inserted_string = doc.getText(loc, 1); - System.out.println("string = " + doc.getText(loc, 1)); - } catch (BadLocationException e1) { - e1.printStackTrace(); - } - send = true; - } - canWrite = true; - - } - - @Override - public void removeUpdate(DocumentEvent e) { - Document doc = e.getDocument(); - int loc = e.getOffset(); - int e_length = e.getLength(); - int del_loc_end = loc + e_length - 1; - if (e_length == 1) { - System.out.println("delete " + loc); - } else { - System.out.println("delete " + loc + " to " + del_loc_end); - } - - } - - @Override - public void changedUpdate(DocumentEvent e) { - } - - } - - - - public static void StartEditor(){ - MainFrame mainFrame = MainFrame.getInstance(); - mainFrame.setVisible(true); - } -}