2010-12-14 6 views
2

Привет У меня есть полная программа экран, который я не хочу людей, чтобы закрыть, если у них нет пароля у меня есть этот код на данный моментJava остановить людей от закрытия

public void windowClosing(WindowEvent arg0) 
{ 
    System.out.println("HERE"); 
    String inputValue = JOptionPane.showInputDialog("Please input the closeword"); 

    if (inputValue != "closeplz") 
    { 

    } 
} 

в если заявление я хочу его остановить метод, чтобы программа была закрыта. любая помощь будет в значительной степени благодаря aprecheated STE

+2

насчет CTRL + ALT + DEL или CTRL + SHIFT + ESC на Windows? – thejh

+5

Убийство запущенного java-процесса не будет запрашивать пароль. –

+2

Что вы пытаетесь сделать? Есть лучший способ. – thejh

ответ

7

Вы должны вызвать

setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 

на (или внутри) JFrame экземпляра. Тогда рамка не будет закрыта, если вы не сделаете ее вручную, хотя windowClosing() все равно будет вызываться. В этом случае вы можете условно позвонить по телефону

System.exit(1); 

который закончит заявку. Обязательно выполните необходимую очистку.

+1

Не возвращает код 1 указывает на ошибку, и вы должны использовать 0? – thejh

+0

@thejh: true, это общее соглашение. Но графические приложения редко (если вообще когда-либо) проверяют код возврата. –

1

Отъезд Closing an Applicaton для простого класса, который поможет вам в этом. Вам нужно будет предоставить настраиваемое действие закрытия, которое запрашивает у пользователя пароль.

Использование простой пример кода будет:

Action ca = new AbstractAction() 
{ 
    public void actionPerformed(ActionEvent e) 
    { 
     JFrame frame = (JFrame)e.getSource(); 

     String inputValue = JOptionPane.showInputDialog("Please input the closeword"); 


     if (! inputValue.equals("closeplz")) 
     { 
      frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); 
     } 
    } 
}; 

CloseListener cl = new CloseListener(ca); 
Смежные вопросы