如果只是浮在你窗体的话,构造时把父窗体传入,然后设为模态的就行了。
如:
JFrame frame = new JFrame("parent");
JDialog dialog = new JDialog(frame, true);
而如果是永远浮在所有窗口之上的话,就不好办了,以前有这方面的贴子,你可以搜一下。

解决方案 »

  1.   

    严重同意楼上,第一个参数不能为null,最后参数不能为false
      

  2.   

    这在vc中是很容易实现的,只要是窗口具有风格topmost就行了,但是java中比较难实现,一起学习,帮你up!
      

  3.   

    下面的小例子你可以运行演示一下:  
    你窗口有个菜单,当点击ShowDialog菜单时,将显示dialog,由于该dialog是模态的,所以如果不关闭此dialog的话,你是没办法关闭父窗口的。你可以改一下dialog的构造方法,传入一个false(改成非模态),体会区别。  public class Temp {      JFrame parentFrame = new JFrame("parent frame");      JDialog dialog = new JDialog(parentFrame, true);      JMenuBar jMenuBar1 = new JMenuBar();      JMenu jMenu1 = new JMenu("MENU");      JMenuItem menuItem = new JMenuItem("ShowDialog");      public Temp() {          menuItem.addActionListener(new ActionListener() {
                  public void actionPerformed(ActionEvent e) {
                      dialog.show();
                  }
              });          dialog.addWindowListener(new WindowAdapter() {
                  public void windowClosing(WindowEvent e) {
                      dialog.dispose();
                  }
              });          jMenu1.add(menuItem);
              jMenuBar1.add(jMenu1);
              parentFrame.setJMenuBar(jMenuBar1);
              parentFrame.setBounds(100, 100, 300, 300);
              dialog.setBounds(200, 200, 200, 200);
              parentFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              parentFrame.show();
          }      public static void main(String[] args) {
              new Temp();
          }
      }
      

  4.   

    yuanmeng163(今天我有空) :--------------------Configuration: j2sdk1.4.1_01 <Default>--------------------
    C:\Documents and Settings\Administrator.JAVAFAN\Desktop\Temp.java:3: cannot resolve symbol
    symbol  : class JFrame 
    location: class Temp
          JFrame parentFrame = new JFrame("parent frame");
          ^
    C:\Documents and Settings\Administrator.JAVAFAN\Desktop\Temp.java:5: cannot resolve symbol
    symbol  : class JDialog 
    location: class Temp
          JDialog dialog = new JDialog(parentFrame, true);
          ^
    C:\Documents and Settings\Administrator.JAVAFAN\Desktop\Temp.java:7: cannot resolve symbol
    symbol  : class JMenuBar 
    location: class Temp
          JMenuBar jMenuBar1 = new JMenuBar();
          ^
    C:\Documents and Settings\Administrator.JAVAFAN\Desktop\Temp.java:9: cannot resolve symbol
    symbol  : class JMenu 
    location: class Temp
          JMenu jMenu1 = new JMenu("MENU");
          ^
    C:\Documents and Settings\Administrator.JAVAFAN\Desktop\Temp.java:11: cannot resolve symbol
    symbol  : class JMenuItem 
    location: class Temp
          JMenuItem menuItem = new JMenuItem("ShowDialog");
          ^
    C:\Documents and Settings\Administrator.JAVAFAN\Desktop\Temp.java:3: cannot resolve symbol
    symbol  : class JFrame location: class Temp
          JFrame parentFrame = new JFrame("parent frame");
                                   ^
    C:\Documents and Settings\Administrator.JAVAFAN\Desktop\Temp.java:5: cannot resolve symbol
    symbol  : class JDialog 
    location: class Temp
          JDialog dialog = new JDialog(parentFrame, true);
                               ^
    C:\Documents and Settings\Administrator.JAVAFAN\Desktop\Temp.java:7: cannot resolve symbol
    symbol  : class JMenuBar 
    location: class Temp
          JMenuBar jMenuBar1 = new JMenuBar();
                                   ^
    C:\Documents and Settings\Administrator.JAVAFAN\Desktop\Temp.java:9: cannot resolve symbol
    symbol  : class JMenu 
    location: class Temp
          JMenu jMenu1 = new JMenu("MENU");
                             ^
    C:\Documents and Settings\Administrator.JAVAFAN\Desktop\Temp.java:11: cannot resolve symbol
    symbol  : class JMenuItem 
    location: class Temp
          JMenuItem menuItem = new JMenuItem("ShowDialog");
                                   ^
    C:\Documents and Settings\Administrator.JAVAFAN\Desktop\Temp.java:15: cannot resolve symbol
    symbol  : class ActionListener 
    location: class Temp
              menuItem.addActionListener(new ActionListener() {
                                             ^
    C:\Documents and Settings\Administrator.JAVAFAN\Desktop\Temp.java:21: cannot resolve symbol
    symbol  : class WindowAdapter 
    location: class Temp
              dialog.addWindowListener(new WindowAdapter() {
                                           ^
    C:\Documents and Settings\Administrator.JAVAFAN\Desktop\Temp.java:32: cannot resolve symbol
    symbol  : variable JFrame 
    location: class Temp
              parentFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                                                   ^
    13 errorsProcess completed.
      

  5.   

    晕。
    我以为这个你会,就没加上去。
    你在最前面把下面的两句加上去
    import javax.swing.*;
    import java.awt.event.*;