Simple Java Code HTML Highlighter
This is simple code to highlight Java code to insert in HTML page:
package htmltotext; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.border.EmptyBorder; public class HTMLtoText extends JFrame { private JTextArea textArea = new JTextArea(); private JTextArea textHasil = new JTextArea(); private String[] tobiru=new String[]{"new","package","import","public","private","protected","extends","implements","for","if","while","class","int","float","double","this","true","false"}; public void convert() { String string=textArea.getText(); String[] baris = string.split("\\r?\\n"); string=""; boolean ketemupetik=false,backslashed=false; for (int i=0; i < baris.length;i++){ String[] arrSplit=baris[i].split("\\s"); for(int n=0;n<arrSplit.length;n++){ if(!arrSplit[n].isEmpty()){ String[] parts = arrSplit[n].split("(?<=[-+*/=\\(\\)\"<>\\{\\}\\,\\.;])|(?=[-+*/=\\(\\)\"<>\\{\\}\\,\\.;])"); for(int m=0;m<parts.length;m++){ boolean tutuppetik=false; if(parts[m].equals("\"")){ if(!ketemupetik){ parts[m]="<font style='color:orange'>"+parts[m]; ketemupetik=true; }else if(ketemupetik){ if(!backslashed){ tutuppetik=true; ketemupetik=false; } } } for(int j=0;j<tobiru.length;j++){ if(parts[m].equals(tobiru[j])){ if(!ketemupetik)parts[m]="<font style='color:blue'>"+parts[m]+"</font>"; break; }else if(parts[m].equals("\"")){ parts[m]="""; }else if(parts[m].equals("<")){ parts[m]="<"; }else if(parts[m].equals(">")){ parts[m]=">"; } } if(tutuppetik)parts[m]+="</font>"; if(parts[m].equals("\\")){ backslashed=true; }else backslashed=false; string+=parts[m]; } } string+=" "; } string+="\n"; } textHasil.setText(string); } public void showFrame() { this.setSize(800,600); this.setLocation(200,200); this.setTitle("Java Code to HTML Text"); this.setLayout(new BorderLayout()); JPanel panel=new JPanel(); BoxLayout boxLayout = new BoxLayout(panel, BoxLayout.X_AXIS); panel.setBorder(new EmptyBorder(5, 10, 5, 10)); panel.setLayout(boxLayout); textArea.setLineWrap(true); textHasil.setLineWrap(true); JScrollPane areaScrollPane = new JScrollPane(textArea); areaScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); areaScrollPane.setPreferredSize(new Dimension(300,400)); panel.add(areaScrollPane); areaScrollPane = new JScrollPane(textHasil); areaScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); areaScrollPane.setPreferredSize(new Dimension(300,400)); panel.add(areaScrollPane); JButton b=new JButton("Convert"); b.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { convert(); } }); this.add(panel,BorderLayout.PAGE_START); panel=new JPanel(); boxLayout = new BoxLayout(panel, BoxLayout.X_AXIS); panel.setBorder(new EmptyBorder(5, 10, 5, 10)); panel.setLayout(boxLayout); panel.add(b); this.add(panel,BorderLayout.PAGE_END); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.pack(); this.setVisible(true); } public static void main(String[] args) { HTMLtoText mainframe=new HTMLtoText(); mainframe.showFrame(); } }



Comments
Post a Comment