Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA:将框架和对话框放在前面_Java_Swing_Jframe_Jdialog - Fatal编程技术网

JAVA:将框架和对话框放在前面

JAVA:将框架和对话框放在前面,java,swing,jframe,jdialog,Java,Swing,Jframe,Jdialog,我有一个包含“计算”按钮的框架,当我点击按钮“计算”时,有一个处理打开一个对话框和一个框架。但是在第一帧之下 我试图添加setAlwaysOnTop(true),但打开的帧和对话框仍保留在前景中,用户被迫关闭它们以返回上一帧 下面是计算操作: public T compute(){ //Some code HistogramView hv = new HistoGramView(owner, graph); AdjustDepthMapDialogVarioMap admap

我有一个包含“计算”按钮的框架,当我点击按钮“计算”时,有一个处理打开一个对话框和一个框架。但是在第一帧之下

我试图添加setAlwaysOnTop(true),但打开的帧和对话框仍保留在前景中,用户被迫关闭它们以返回上一帧

下面是计算操作:

public T compute(){
   //Some code
   HistogramView hv = new HistoGramView(owner, graph);
   AdjustDepthMapDialogVarioMap admap = new AdjustDepthMapDialogVarioMap(owner,text);   
 }

public class HistogramView extends OwnerJFrame{
  //Code
 }    

public class OwnerJFrame extends JFrame{
  //Code
 }    

public class AdjustDepthMapDialogVarioMapextends OwnerJDialog{
  //Code
}    

public class OwnerJDialog extends JDialog{
 //Code
} 
以下是HistorogramView类的构造函数:

public HistogramView(Component parent, Graph graph) {
  super("Histogram View");
  graphPanel = new GraphPanel (graph);
  setLocationRelativeTo(parent);
  setTitle("Histogram "); 
  setSize(550, 850);
  pack();
  setVisible(true);
}
以下是AdjustDepthMapDialogVarioMap类的构造函数:

 public AdjustDepthMapDialogVarioMap(Component parent, String text){
 try {
  text= text;
  pack();
  setVisible(true);
}
当对话打开时,它实际上必须在前台打开。另一方面,我们不想强迫它保持在前台(如果用户愿意,必须能够通过另一个对话框隐藏它)


有一种解决方案不使用setAlwaysOnTop?

您是否尝试过toFront()或toBack()?为了更快获得更好的帮助,请添加or。您的主JFrame窗口必须将setAlwaysOnTop属性设置为true*。在打开下一个窗口(JFrame或JDialog)之前,将父窗体的setAlwaysOnTop属性设置为false(因为它扩展了:)
this.setAlwaysOnTop(false);新的HistorogramView().setVisible(true)。您可能需要考虑设计更改,并在父JFrice中打开Windows,在这种情况下,您可能需要考虑使用.s。您尝试过FoTrn()或ToBoSE()以更快地提供帮助,添加一个OR。您的主JFrror窗口必须将StalAlWaveStopy属性设置为true *。在打开下一个窗口(JFrame或JDialog)之前,将父窗体的setAlwaysOnTop属性设置为false(因为它扩展了:)
this.setAlwaysOnTop(false);新的HistorogramView().setVisible(true)。您可能需要考虑设计更改,并在父JFrice中打开Windows,在这种情况下,您可能需要考虑使用“S”。