public class TestFrame extends javax.swing.JFrame {
    public TestFrame() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
        getContentPane().add(new javax.swing.JButton("button"), java.awt.BorderLayout.NORTH);
        getContentPane().add(new javax.swing.JLabel("label"), java.awt.BorderLayout.CENTER);        
        pack();
        dialog=new javax.swing.JDialog(this);
        dialog.getContentPane().add(new javax.swing.JButton("dialog button"));
        dialog.pack();
        dialog.setBounds(300,330,300,200);
        setSize(600,400);
        setLocationRelativeTo(null);
        setVisible(true);
        try{
            com.sun.awt.AWTUtilities.setWindowOpacity(dialog,0.5f); 
            dialog.setVisible(true);//关键、没这句试试
        }catch(java.lang.Exception e){
            e.printStackTrace(System.out);
        }
    }
    public static void main(String args[]) {
        javax.swing.JFrame.setDefaultLookAndFeelDecorated(true);
        new TestFrame();
    }
    javax.swing.JDialog dialog;
}