2013-01-01 23 views
8

संभव डुप्लिकेट:
What components should I use for building a Java WYSIWYG HTML editorजावा घुमाओ पाठ संपादक

मैं जावा प्रोग्रामिंग में कुल नौसिखिया हूँ। मुझे स्विंग/एडब्ल्यूटी में टेक्स्ट एडिटर करना है और मेरे पास इसके बारे में एक सवाल है। मैं एक चुने हुए शब्द को कैसे संपादित कर सकता हूं, उदाहरण के लिए इसका रंग बदलें? मैं कौन सा घटक और किस कार्य का उपयोग करना चाहिए?

+2

है इस ट्यूटोरियल पर एक नज़र डालें: http://docs.oracle.com/javase/tutorial/uiswing/components/editorpane.html – aly

+0

भी देखें [* WYSIWYG पाठ जावा में संपादक *] (http://stackoverflow.com/q/853071/230513)। – trashgod

+0

एडब्ल्यूटी प्रारूपित पाठ का समर्थन करने वाले किसी भी घटक की पेशकश नहीं करता है, इसलिए इसे 'स्विंग' भी माना जा सकता है। –

उत्तर

10

जावा स्विंग के लिए शुरुआत करने के लिए, इस परियोजना को सरल रखने की कोशिश करें। एक ही दस्तावेज़ में एकाधिक रंगों और एकाधिक आकारों को दिखाने के लिए बहुत जटिल कोडिंग और एचटीएमएल प्रस्तुत करना आवश्यक है।

केवल मूल प्रतिलिपि, कट, पेस्ट फीचर्स प्रदान करने का प्रयास करें क्योंकि उन्हें कार्यान्वित करना आसान है।

उन सुविधाओं को प्रदान करने के लिए, एक JTextArea पर्याप्त है।

इसे आजमाएं। यह एक सुंदर सरल पाठ संपादक

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 

public class Document extends JFrame implements ActionListener 
{ 
private JTextArea ta; 
private int count; 
private JMenuBar menuBar; 
private JMenu fileM,editM,viewM; 
private JScrollPane scpane; 
private JMenuItem exitI,cutI,copyI,pasteI,selectI,saveI,loadI,statusI; 
private String pad; 
private JToolBar toolBar; 
public Document() 
{ 
    super("Document"); 
    setSize(600, 600); 
    setLocationRelativeTo(null); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    Container pane = getContentPane(); 
    pane.setLayout(new BorderLayout()); 

    count = 0; 
    pad = " "; 
    ta = new JTextArea(); //textarea 
    menuBar = new JMenuBar(); //menubar 
    fileM = new JMenu("File"); //file menu 
    editM = new JMenu("Edit"); //edit menu 
    viewM = new JMenu("View"); //edit menu 
    scpane = new JScrollPane(ta); //scrollpane and add textarea to scrollpane 
    exitI = new JMenuItem("Exit"); 
    cutI = new JMenuItem("Cut"); 
    copyI = new JMenuItem("Copy"); 
    pasteI = new JMenuItem("Paste"); 
    selectI = new JMenuItem("Select All"); //menuitems 
    saveI = new JMenuItem("Save"); //menuitems 
    loadI = new JMenuItem("Load"); //menuitems 
    statusI = new JMenuItem("Status"); //menuitems 
    toolBar = new JToolBar(); 

    ta.setLineWrap(true); 
    ta.setWrapStyleWord(true); 

    setJMenuBar(menuBar); 
    menuBar.add(fileM); 
    menuBar.add(editM); 
    menuBar.add(viewM); 

    fileM.add(saveI); 
    fileM.add(loadI); 
    fileM.add(exitI); 

    editM.add(cutI); 
    editM.add(copyI); 
    editM.add(pasteI);   
    editM.add(selectI); 

    viewM.add(statusI); 

    saveI.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, ActionEvent.CTRL_MASK)); 
    loadI.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, ActionEvent.CTRL_MASK)); 
    cutI.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, ActionEvent.CTRL_MASK)); 
    copyI.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, ActionEvent.CTRL_MASK)); 
    pasteI.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, ActionEvent.CTRL_MASK)); 
    selectI.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, ActionEvent.CTRL_MASK)); 

    pane.add(scpane,BorderLayout.CENTER); 
    pane.add(toolBar,BorderLayout.SOUTH); 

    saveI.addActionListener(this); 
    loadI.addActionListener(this); 
    exitI.addActionListener(this); 
    cutI.addActionListener(this); 
    copyI.addActionListener(this); 
    pasteI.addActionListener(this); 
    selectI.addActionListener(this); 
    statusI.addActionListener(this); 

    setVisible(true); 
} 
public void actionPerformed(ActionEvent e) 
{ 
    JMenuItem choice = (JMenuItem) e.getSource(); 
    if (choice == saveI) 
    { 
     //not yet implmented 
    } 
    else if (choice == exitI) 
     System.exit(0); 
    else if (choice == cutI) 
    { 
     pad = ta.getSelectedText(); 
     ta.replaceRange("", ta.getSelectionStart(), ta.getSelectionEnd()); 
    } 
    else if (choice == copyI) 
     pad = ta.getSelectedText(); 
    else if (choice == pasteI) 
     ta.insert(pad, ta.getCaretPosition()); 
    else if (choice == selectI) 
     ta.selectAll(); 
    else if (e.getSource() == statusI) 
    { 
     //not yet implmented 
    } 
} 
public static void main(String[] args) 
{ 
    new Document(); 
} 
संबंधित मुद्दे