Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>For a beginner to Java Swing, try to keep this project simple. To show multiple colors and multiple sizes in the same document requires a lot of complex coding and rendering html.</p> <p>Try to just provide the basic copy,cut,paste features because they are easier to implement.</p> <p>To provide those features, a JTextArea is sufficient.</p> <p>Try this. It's a pretty simple text editor</p> <pre><code>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(); } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload