如果只是浮在你窗体的话,构造时把父窗体传入,然后设为模态的就行了。
如:
JFrame frame = new JFrame("parent");
JDialog dialog = new JDialog(frame, true);
而如果是永远浮在所有窗口之上的话,就不好办了,以前有这方面的贴子,你可以搜一下。
如:
JFrame frame = new JFrame("parent");
JDialog dialog = new JDialog(frame, true);
而如果是永远浮在所有窗口之上的话,就不好办了,以前有这方面的贴子,你可以搜一下。
你窗口有个菜单,当点击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();
}
}
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.
我以为这个你会,就没加上去。
你在最前面把下面的两句加上去
import javax.swing.*;
import java.awt.event.*;