D:\Documenti\Java\Informatica\BloccoNote\src\blocconote\Main.java |
package blocconote; import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSeparator; import javax.swing.JTextArea; import javax.swing.JToolBar; import javax.swing.KeyStroke; import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.filechooser.FileNameExtensionFilter; public class Main extends JFrame { public JTextArea txtrTesto; public static void main(String[] args) { try { UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel"); } catch (Throwable e) { e.printStackTrace(); } EventQueue.invokeLater(new Runnable() { public void run() { try { Main frame = new Main(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } public Main() { setTitle("Senza nome - Blocco note"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); JMenu mnFile = new JMenu("File"); mnFile.setMnemonic('F'); menuBar.add(mnFile); JMenuItem mntmNuovo = new JMenuItem("Nuovo"); mntmNuovo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK)); mntmNuovo.setIcon(new ImageIcon(Main.class.getResource("/blocconote/img/nuovo.png"))); mntmNuovo.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { nuovo(); } }); mnFile.add(mntmNuovo); JMenuItem mntmApri = new JMenuItem("Apri..."); mntmApri.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK)); mntmApri.setIcon(new ImageIcon(Main.class.getResource("/blocconote/img/apri.png"))); mntmApri.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { apri(); } }); mnFile.add(mntmApri); JMenuItem mntmSalva = new JMenuItem("Salva..."); mntmSalva.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK)); mntmSalva.setIcon(new ImageIcon(Main.class.getResource("/blocconote/img/salva.png"))); mntmSalva.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { salva(); } }); mnFile.add(mntmSalva); JSeparator separator = new JSeparator(); mnFile.add(separator); JMenuItem mntmEsci = new JMenuItem("Esci"); mntmEsci.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F4, InputEvent.ALT_MASK)); mntmEsci.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { System.exit(0); } }); mnFile.add(mntmEsci); JMenu mnModifica = new JMenu("Modifica"); mnModifica.setMnemonic('M'); menuBar.add(mnModifica); JMenuItem mntmTaglia = new JMenuItem("Taglia"); mntmTaglia.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK)); mntmTaglia.setIcon(new ImageIcon(Main.class.getResource("/blocconote/img/taglia.png"))); mntmTaglia.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { taglia(); } }); mnModifica.add(mntmTaglia); JMenuItem mntmCopia = new JMenuItem("Copia"); mntmCopia.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK)); mntmCopia.setIcon(new ImageIcon(Main.class.getResource("/blocconote/img/copia.png"))); mntmCopia.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { copia(); } }); mnModifica.add(mntmCopia); JMenuItem mntmIncolla = new JMenuItem("Incolla"); mntmIncolla.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK)); mntmIncolla.setIcon(new ImageIcon(Main.class.getResource("/blocconote/img/incolla.png"))); mntmIncolla.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { incolla(); } }); mnModifica.add(mntmIncolla); JMenu mnAiuto = new JMenu("?"); mnAiuto.setMnemonic('?'); menuBar.add(mnAiuto); JMenuItem mntmInformazioniSu = new JMenuItem("Informazioni su..."); mntmInformazioniSu.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I, InputEvent.CTRL_MASK)); mntmInformazioniSu.setIcon(new ImageIcon(Main.class.getResource("/blocconote/img/informazioni.png"))); mntmInformazioniSu.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { informazioniSu(); } }); mnAiuto.add(mntmInformazioniSu); JPanel contentPane = new JPanel(); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); JToolBar toolBar = new JToolBar(); contentPane.add(toolBar, "North"); JButton btnNuovo = new JButton(""); btnNuovo.setFocusPainted(false); btnNuovo.setToolTipText("Nuovo"); btnNuovo.setIcon(new ImageIcon(Main.class.getResource("/blocconote/img/nuovo.png"))); btnNuovo.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { nuovo(); } }); toolBar.add(btnNuovo); JButton btnApri = new JButton(""); btnApri.setFocusPainted(false); btnApri.setToolTipText("Apri"); btnApri.setIcon(new ImageIcon(Main.class.getResource("/blocconote/img/apri.png"))); btnApri.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { apri(); } }); toolBar.add(btnApri); JButton btnSalva = new JButton(""); btnSalva.setFocusPainted(false); btnSalva.setToolTipText("Salva"); btnSalva.setIcon(new ImageIcon(Main.class.getResource("/blocconote/img/salva.png"))); btnSalva.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent arg0) { salva(); } }); toolBar.add(btnSalva); JSeparator separator1 = new JSeparator(); separator1.setOrientation(SwingConstants.VERTICAL); toolBar.add(separator1); JButton btnTaglia = new JButton(""); btnTaglia.setFocusPainted(false); btnTaglia.setToolTipText("Taglia"); btnTaglia.setIcon(new ImageIcon(Main.class.getResource("/blocconote/img/taglia.png"))); btnTaglia.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { taglia(); } }); toolBar.add(btnTaglia); JButton btnCopia = new JButton(""); btnCopia.setFocusPainted(false); btnCopia.setToolTipText("Copia"); btnCopia.setIcon(new ImageIcon(Main.class.getResource("/blocconote/img/copia.png"))); btnCopia.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { copia(); } }); toolBar.add(btnCopia); JButton btnIncolla = new JButton(""); btnIncolla.setFocusPainted(false); btnIncolla.setToolTipText("Incolla"); btnIncolla.setIcon(new ImageIcon(Main.class.getResource("/blocconote/img/incolla.png"))); btnIncolla.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { incolla(); } }); toolBar.add(btnIncolla); JSeparator separator2 = new JSeparator(); separator2.setOrientation(SwingConstants.VERTICAL); toolBar.add(separator2); JButton btnInformazionisu = new JButton(""); btnInformazionisu.setFocusPainted(false); btnInformazionisu.setToolTipText("Informazioni su..."); btnInformazionisu.setIcon(new ImageIcon(Main.class.getResource("/blocconote/img/informazioni.png"))); btnInformazionisu.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { informazioniSu(); } }); toolBar.add(btnInformazionisu); JScrollPane scrollPane = new JScrollPane(); contentPane.add(scrollPane, "Center"); txtrTesto = new JTextArea(); txtrTesto.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 12)); scrollPane.setViewportView(txtrTesto); } public void nuovo() { if (JOptionPane.showConfirmDialog(this, "Se non è stato salvato, il documento corrente andrà perso.\nDesideri continuare?", "Nuovo documento", JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) { txtrTesto.setText(""); setTitle("Senza nome - Blocco note"); } } public void apri() { JFileChooser fc = new JFileChooser(); fc.setAcceptAllFileFilterUsed(false); fc.addChoosableFileFilter(new FileNameExtensionFilter("Documenti di testo (*.txt)", "txt")); fc.setAcceptAllFileFilterUsed(true); if (fc.showOpenDialog(this) == JFileChooser.APPROVE_OPTION) { nuovo(); try { FileReader fr = new FileReader(fc.getSelectedFile()); txtrTesto.read(fr, null); fr.close(); setTitle(fc.getSelectedFile().getName() + " - Blocco note"); JOptionPane.showMessageDialog(this, "File letto con successo", "Informazione", JOptionPane.INFORMATION_MESSAGE); } catch (FileNotFoundException e) { JOptionPane.showMessageDialog(this, "File non trovato", "Errore", JOptionPane.ERROR_MESSAGE); } catch (IOException e) { JOptionPane.showMessageDialog(this, "Errore di lettura del file", "Errore", JOptionPane.ERROR_MESSAGE); } } } public void salva() { JFileChooser fc = new JFileChooser(); fc.setAcceptAllFileFilterUsed(false); fc.addChoosableFileFilter(new FileNameExtensionFilter("Documenti di testo (*.txt)", "txt")); fc.setAcceptAllFileFilterUsed(true); if (fc.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) try { if (!fc.getSelectedFile().getPath().endsWith(".txt")) fc.setSelectedFile(new File(fc.getSelectedFile().getPath()+".txt")); FileWriter fw = new FileWriter(fc.getSelectedFile()); fw.write(txtrTesto.getText()); fw.close(); setTitle(fc.getSelectedFile().getName() + " - Blocco note"); JOptionPane.showMessageDialog(this, "File salvato con successo", "Informazione", JOptionPane.INFORMATION_MESSAGE); } catch (FileNotFoundException e) { JOptionPane.showMessageDialog(this, "File non trovato", "Errore", JOptionPane.ERROR_MESSAGE); } catch (IOException e) { JOptionPane.showMessageDialog(this, "Errore di scrittura del file", "Errore", JOptionPane.ERROR_MESSAGE); } } public void taglia() { txtrTesto.cut(); } public void copia() { txtrTesto.copy(); } public void incolla() { txtrTesto.paste(); } public void informazioniSu() { JOptionPane.showMessageDialog(this, "Blocco note\nCopyright © GfO 2016", "Informazioni su Blocco note", JOptionPane.INFORMATION_MESSAGE); } }