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



Popular posts from this blog

How to Use Extends and Implements

Fibonacci Algorithm in Java Array