прослушиватель событий Windows java [дубликат]

Вы можете отменить клавиатуру, убрав фокус TextFormField и передав ее неиспользованному FocusNode:

FocusScope.of(context).requestFocus(new FocusNode());
0
задан bnr32jason 29 November 2015 в 22:00
поделиться

2 ответа

похоже, что у вас все в порядке!

Теперь то, что я считаю вашим учителем, это: обработчик должен быть экземпляром (а не «объектом») внутреннего класса, который расширяет WindowAdapter class .

Сделав следующее:

new WindowAdapter() {

    // Use annotations, it's useful :)
    @Override
    public void windowCloses(WindowEvent e) {
        // ...
    }
}

... вы на самом деле создаете новый анонимный класс, который extends WindowAdapter. В этом новом определении вы переопределяете метод WindowAdapter#windowCloses, затем создаете его в новом объекте, который вы передаете в качестве аргумента в addWindowListener.

По-видимому, ваш учитель ожидает, что вы на самом деле определите внутренний класса и создать новый экземпляр. Я не хочу просто дать вам код для этого, но вы чертовски близки, вы это выясните в одно мгновение!

2
ответ дан ccjmne 20 August 2018 в 19:17
поделиться
  • 1
    С кодом, написанным таким образом, где я помещаю windowListener? – bnr32jason 29 November 2015 в 21:35
  • 2
    Я думаю, что лучше понимаю, это не совсем понятно, но я отредактировал оригинал, чтобы добавить то, что я сделал. Благодаря! – bnr32jason 29 November 2015 в 22:01
  • 3
    Да, я только что прочитал ваш обновленный вопрос! Это прекрасно (за исключением того, что соглашение состоит в том, чтобы все имена классов начинались с прописных букв), вы получили его! Теперь вы можете использовать addWindowListener(new InnerClass()) :) – ccjmne 29 November 2015 в 22:03
  • 4
    Благодаря! В нижнем регистре я только торопился, я слежу за традиционными соглашениями, насколько могу. – bnr32jason 29 November 2015 в 22:19

Насколько я понимаю, это должно помочь:

 addWindowListener(new WindowAdapter() {
      public void windowCloses(WindowEvent e) {
        try{
            int confirmed = JOptionPane.showConfirmDialog(null, 
            "This is my handler. Shall I Exit?", "Exit Message Box, JOptionPane.YES_NO_OPTION);
            if (confirmed == JOptionPane.YES_OPTION) {                                        
              dispose();
            }
         }
      catch(Exception ex){
          //Error print
        e.getWindow.dispose()
      }
    });
0
ответ дан nullpointer 20 August 2018 в 19:17
поделиться
  • 1
    Спасибо за ввод, но, похоже, вы, возможно, неправильно поняли. Мне не нужна помощь в написании логики кода, я оставил ее, потому что все работает нормально. Я на самом деле просил переписать код как внутренний класс, но я довольно запутался в этом. – bnr32jason 29 November 2015 в 21:39
Другие вопросы по тегам:

Похожие вопросы: