java - Shaped JDialog: Dragging in JTextField causes window to move -


i'm using transparent (shaped) jframe under java 6 mac os x.

my system tells me translucency.perpixel_translucent supported. although system tells me translucency.perpixel_transparent not supported, found out works under mac os x when putting pixels alpha=0.

now, when selecting text in jtextfield, drags window if drag on underlying contentpane.

here sample code try (contains main-method run on computer)

import com.sun.awt.awtutilities; import java.awt.color; import java.awt.gradientpaint; import java.awt.graphics; import java.awt.graphics2d; import java.awt.paint; import java.awt.shape; import java.awt.geom.ellipse2d; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.jtextfield; import javax.swing.swingutilities;  public class dialogtest extends jframe {      public dialogtest() {         setbackground(new color(0, 0, 0, 0));         jpanel p1 = new jpanel() {             public void paintcomponent(graphics g1) {                 if (g1 instanceof graphics2d) {                     paint p =                             new gradientpaint(0.0f, 0.0f, new color(240,240,240, 0),                             0.0f, getheight(), new color(240,240,240, 255), true);                      graphics2d g2d = (graphics2d) g1;                     g2d.setpaint(p);                     shape s = new ellipse2d.double(0,0,getwidth(),getheight());                     g2d.fill(s);                 }             }         };          add(p1);         p1.setopaque(false);         p1.add(new jbutton("button 1"));         jtextfield tf = new jtextfield("sample text select");         p1.add(tf);         p1.add(new jbutton("button 2"));          setundecorated(true);                setsize(400,400);         awtutilities.setwindowopaque(this, false);     }      public static void main(string[] s) {         // create gui on event-dispatching thread         swingutilities.invokelater(new runnable() {             @override             public void run() {                 dialogtest tw = new dialogtest();                  // display window.                 tw.setvisible(true);             }         });      } }