2012-03-02 233 views
0

創建一個圖形窗口,我使用此代碼如何用Java

private void botaoGrafADMouseClicked(java.awt.event.MouseEvent evt) { 
    try { 
     boolean[] b=new boolean[8]; 
     if (Caixa9.isSelected()) b[0]=true; else b[0]=false; 
     if (Caixa11.isSelected()) b[1]=true; else b[1]=false; 
     if (Caixa10.isSelected()) b[2]=true; else b[2]=false; 
     if (Caixa12.isSelected()) b[3]=true; else b[3]=false; 
     b[4]=false;b[5]=false;b[6]=false;b[7]=false; 
     final LineChartDemo1 demo = new LineChartDemo1("Leitura A/D",b,"outad.txt",4); 
     demo.pack(); 
     RefineryUtilities.centerFrameOnScreen(demo); 
     demo.setVisible(true); 
    } catch (IOException ex) { 
     Logger.getLogger(Comunicacao.class.getName()).log(Level.SEVERE, null, ex); 
    }  
} 

調用的圖形界面。但是,當我這樣做時,每次我調用圖時,它都會在新窗口中生成,如果我關閉這些窗口,則整個程序都會關閉。 我想知道我做錯了什麼。我怎樣才能避免這種情況(我會發布PR​​INTSCREEN,但是,新的用戶,我不能,它是http://i.stack.imgur.com/4JLxQ.png我認爲

編輯:圖片 enter image description here

回答

1

JFrame中有一個默認的關閉操作(即當你使用你的窗口管理器)EXIT_ON_CLOSE的關閉窗口時會發生什麼。使用JFrame.setDefaultCloseOperation來設置不同的值。

1

我不知道是什麼類的LineChartDemo1是的,但你也許可以將其設置爲JDialog的內容並在每個對話框中調用setDefaultCloseOperation (JDialog.DISPOSE_ON_CLOSE)。這樣,當用戶關閉對話框時,只有那個窗口將關閉,其他窗口將保持打開狀態。

+0

我只是在不同的JFrame中運行代碼,因此當我關閉它時,程序仍在運行。然後,我用 public void windowClosing(final WindowEvent evt)if(evt.getWindow()== this){0} {0} {0} {0} } } 最後不要關閉。 – 2012-03-05 19:14:49

0

我創建一個新的NetBeans的JFrame並參考它像這樣:

InterfaceGrafico minhaInterface = new InterfaceGrafico("Leitura I/O",b,"outio.txt",8); 

其中參數其中相同的,以產生曲線圖。在這個 「InterfaceGrafico」 類:

public InterfaceGrafico(final String title,boolean[] b, String nomeArquivo, int col) { 
try { 
     initComponents(); 
     final LineChartDemo1 demo = new LineChartDemo1("Leitura I/O", b, "outio.txt", 8); 
     demo.pack(); 
     RefineryUtilities.centerFrameOnScreen(demo); 
     demo.setVisible(true); 
    } catch (IOException ex) { 
     Logger.getLogger(InterfaceGrafico.class.getName()).log(Level.SEVERE, null, ex); 
    } 

}

這意味着,我只是轉移的代碼到另一個JFrame中。我也評論了公共的無效運行方法。現在我可以關閉生成的每個圖形,而不關閉整個應用程序和其他生成的圖形。在「LineChart1」類中,我添加了這個

public void windowClosing(final WindowEvent evt){ 
    if(evt.getWindow() == this){ 
    dispose(); 
    } 
}