fork download
  1. package hinoeditorpane;
  2.  
  3. import java.awt.Color;
  4. import java.util.HashMap;
  5.  
  6. import javax.swing.JEditorPane;
  7. import javax.swing.SwingUtilities;
  8. import javax.swing.event.DocumentEvent;
  9. import javax.swing.event.DocumentListener;
  10. import javax.swing.text.DefaultStyledDocument;
  11. import javax.swing.text.SimpleAttributeSet;
  12. import javax.swing.text.StyleConstants;
  13.  
  14. public class HinoEditorPane extends JEditorPane implements DocumentListener{
  15. HashMap<String,SimpleAttributeSet> attr=new HashMap<String,SimpleAttributeSet>();
  16. public HinoEditorPane() {
  17. setDocument(doc);
  18. doc.addDocumentListener(this);
  19. attr=new HashMap<String,SimpleAttributeSet>();
  20. token.addAttribute(StyleConstants.Bold, true);
  21. token.addAttribute(StyleConstants.Foreground, new Color(0,0, 255));
  22. attr.put("token",token);
  23. suuzi.addAttribute(StyleConstants.Foreground, new Color(127,127,255));
  24. attr.put("suuzi",suuzi);
  25. comment.addAttribute(StyleConstants.Foreground, new Color(0,255, 0));
  26. attr.put("comment",comment);
  27. identifer.addAttribute(StyleConstants.Foreground, new Color(0,0, 0));
  28. attr.put("identifer",identifer);
  29. }
  30.  
  31. public void setAttribute(String type,SimpleAttributeSet at){
  32. attr.put(type,at);
  33. }
  34.  
  35. public SimpleAttributeSet getAttribute(String type){
  36. return attr.get(type);
  37. }
  38.  
  39. @Override
  40. public void insertUpdate(DocumentEvent e) {
  41. System.out.println("insert");
  42. //HinoSyntax.doSyntax(this);
  43. SwingUtilities.invokeLater(new Runnable() {
  44. @Override
  45. public void run() {
  46. doSyntax();
  47. }
  48. });
  49. }
  50.  
  51. @Override
  52. public void removeUpdate(DocumentEvent e) {
  53. System.out.println("remove");
  54. //HinoSyntax.doSyntax(this);
  55. }
  56.  
  57. @Override
  58. public void changedUpdate(DocumentEvent e) {
  59. System.out.println("change");
  60. }
  61.  
  62. void doSyntax(){
  63. int n=0;
  64. while(n<getText().length()){
  65. n=token(n);
  66. n++;
  67. }
  68. }
  69.  
  70. int token(int n){
  71. String str=getText().substring(n);
  72. if(str.startsWith("もし")){
  73. System.out.println("hit");
  74. doc.setCharacterAttributes(n, "もし".length(), attr.get("token"), true);
  75. }
  76. return n;
  77. }
  78. }
  79.  
Compilation error #stdin compilation error #stdout 0s 0KB
stdin
Standard input is empty
compilation info
Main.java:14: error: class HinoEditorPane is public, should be declared in a file named HinoEditorPane.java
public class HinoEditorPane extends JEditorPane implements DocumentListener{
       ^
1 error
stdout
Standard output is empty