不知怎的,我無法訪問&關閉具有withDispose()的JFrame,它給了我一個nullPointerException。我也不想做一個System.exit(0)。我如何直接訪問JFrame,是否有解決方法來關閉JFrame?如何關閉窗口而不是JFrame
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
try
{
frame = new ScannerUI();
frame.setVisible(true);
}
catch (Exception e)
{
e.printStackTrace();
}
}
});
}
...(進一步下跌,我已經不能訪問的JFrame,給了我一個NullPointerException)
btnBack.setBounds(400, 270, 80, 40);
panel.add(btnBack);
btnBack.setText ("BACK");
btnBack.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//ScannerUI.DISPOSE_ON_CLOSE();
//frame.dispose();
//this.dispose();
//frame.setVisible(false);
//System.out.println ("dsakjf;dsalkhfsa;lklf");
//System.exit(0);
//JFrame test = ScannerUI.frame;
//test.dispose();
// p = false;
System.out.println ("asdfasfas");
System.exit(frame.dispose());
}
});
爲什麼假設「沒有辦法直接訪問JFrame」?可能最好的解決方案是編寫代碼,使其功能完整。例如,讓持有JFrame的類成爲其他類可調用的公共方法的類來更改其包含的組件的行爲,例如關閉JFrame。爲獲得更好的幫助,請顯示相關的代碼。那麼也許我們可以幫你提供具體的答案。此外,也許更好的解決方案是不打開和關閉窗口,但直到我們看到你的代碼,我們只能猜測。 –
你只是想從代碼,而不是從UI做到這一點,正確嗎? –
錯誤,窗口和JFrame是一樣的東西。郵政編碼,如果你需要幫助。併發布異常的完整堆棧跟蹤。不要認爲某些事情是不可能的,或者只是因爲你的代碼有bug而必須解決。 –