import java.awt.BorderLayout;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.event.CaretListener;

/**
 * @author Remi Forax
 *
 */
public class Texte {

  private static JButton createButton(int i,final JTextArea area) {
    final JButton button=new JButton("button "+i);
    button.setSelected(false);
    area.addCaretListener(new CaretListener() {
      public void caretUpdate(CaretEvent e) {
        button.setEnabled(area.getSelectedText()!=null);
      }
    });
    return button;
  }

  public static void main(String[] args) {
    JFrame frame=new JFrame();
    
    JTextArea area=new JTextArea();
    
    JToolBar bar=new JToolBar();
    bar.add(createButton(1,area));
    bar.add(createButton(2,area));
    bar.add(createButton(3,area));
    bar.add(Box.createHorizontalStrut(15));
    bar.add(createButton(4,area));
    bar.add(createButton(5,area));
    bar.add(Box.createHorizontalGlue());
    bar.add(createButton(6,area));
    
    frame.getContentPane().add(bar,BorderLayout.NORTH);
    frame.getContentPane().add(area);
    
    frame.setSize(400,300);
    frame.setVisible(true);
  }
}
