import java.awt.BorderLayout;
import java.awt.event.ActionEvent;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.event.CaretListener;

public class Exercice1 {

  public static void main(String[] args) {
    final JFrame frame=new JFrame();
    
    final JTextArea area=new JTextArea();
    
    final Action action=new AbstractAction("display") {
      public void actionPerformed(ActionEvent e) {
        JOptionPane.showMessageDialog(frame, area.getSelectedText());
      }
    };
    action.setEnabled(false);
    
    area.addCaretListener(new CaretListener() {
      public void caretUpdate(CaretEvent e) {
        action.setEnabled(area.getSelectedText()!=null);
      }
    });
    
    JMenuBar menubar=new JMenuBar();
    JMenu menu=new JMenu("Edition");
    menu.add(action);
    menubar.add(menu);
    
    frame.setJMenuBar(menubar);
    
    JToolBar bar=new JToolBar();
    bar.add(action);
    
    frame.getContentPane().add(bar,BorderLayout.NORTH);
    frame.getContentPane().add(area);
    
    frame.setSize(400,300);
    frame.show();
  }
}
