¿Es posible mezclar Awt y Swing?

2054 vistas

Como regla, los programas no deben usar componenetes pesados de AWT junto a componentes Swing, ya que los componentes de AWT son siempre pintados sobre los de Swing. (Por componentes pesadas de AWT se entiende Menu, ScrollPanel y todos los componentes que heredan de las clases Canvas y Panel de AWT).

Pequeña demostración



java
  1. import javax.swing.*;
  2. import java.awt.*;
  3. public class AWTSwing {
  4.         private JComboBox combo; // Componente Swing
  5.         private Button boton; // Componente AWT
  6.         public AWTSwing () {
  7.                 JFrame frame = new JFrame ("¿Es posible mezclar Awt y Swing?");
  8.                 frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
  9.                 frame.setBounds (300, 300, 200, 300);
  10.                 String [] a = {"sÃ", "no", "quizás"};
  11.                 combo = new JComboBox (a);
  12.                 frame.getContentPane ().add (combo, BorderLayout.NORTH);
  13.                 boton = new Button ("Cucu");
  14.                 frame.getContentPane ().add (boton, BorderLayout.CENTER);
  15.                 frame.setVisible (true);
  16.         }
  17.  
  18.         public static void main (String argv []) {
  19.                 new AWTSwing ();
  20.         }
  21. }



Cuando abrimos el menú contextual del JComboBox, éste último se ocultará por el botón de tipo java.awt.Button.