Mercurial > hg > Database > Christie
view src/main/java/christie/textEditor/textFrame.java @ 221:7e5f18a5e612
add RemoteEditor & TextEditor
author | ichikitakahiro <e165713@ie.u-ryukyu.ac.jp> |
---|---|
date | Tue, 19 Nov 2019 16:51:26 +0900 |
parents | |
children | 1c37472fc00d |
line wrap: on
line source
package christie.textEditor; import christie.remotingTextEditor.SetInstance; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import javax.swing.JInternalFrame; import javax.swing.JTextArea; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.BadLocationException; import javax.swing.text.Document; public class TextFrame extends JInternalFrame { private JTextArea textArea; private static String DEFAULT_CHARACTER_CODE = "Shift_JIS"; public int loc = 0; SetInstance setInstance = new SetInstance(); 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 class MyDocumentListener implements DocumentListener { public void insertUpdate(DocumentEvent e) { Document doc = (Document) e.getDocument(); loc = e.getOffset(); System.out.print("location = " + loc + "\n"); ReturnToChristie(loc); try { System.out.print("string = " + doc.getText(loc, 1) + "\n"); } catch (BadLocationException e1) { e1.printStackTrace(); } } @Override public void removeUpdate(DocumentEvent e) { Document doc = (Document) 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 void ReturnToChristie(int loc){ System.out.println("return" + loc); } public void StartEditor(){ MainFrame mainFrame = MainFrame.getInstance(); mainFrame.setVisible(true); System.out.println("move"); } }