Я выучил Java около года назад.Теперь я хотел вернуться к этому, но мои навыки стали немного ржавыми.Поэтому я использую Eclipse с WindowBuilder, чтобы сделать приложение Form простым, чтобы начать работу снова.Я хотел получить всплывающее окно при выходе из приложения, потому что в будущих проектах мне нужно выполнить некоторый код, когда приложение выходит из программы другим способом, чем моя собственная кнопка выхода (например, через красный крест или Alt + F4).
Итак, это мой код:
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JButton;
import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class Mainframe {
private JFrame frame;
/**
* Launch the application.
*/
public static void main(String[] args) {
Runtime.getRuntime().addShutdownHook(new Thread()
{
@Override
public void run()
{
JOptionPane.showConfirmDialog(null, "Do you", "Message",
JOptionPane.YES_NO_OPTION);
MessageBox.infoBox("YOUR INFORMATION HERE", "TITLE BAR MESSAGE");
}
});
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Mainframe window = new Mainframe();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Mainframe() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton btnNewButton = new JButton("New button");
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
frame.getContentPane().add(btnNewButton, BorderLayout.SOUTH);
}
}
Я использовал код "когда приложение закрывается" из этого примера, но неважнокак я его закрываю, нет "Messagebox появляется".Когда я использую код для MessageBoxes непосредственно после основной пустоты, появляются MessageBoxes, поэтому я полагаю, что поставил ShutdownHook неправильно.
Буду очень признателен, если кто-нибудь сможет помочь мне решить эту проблему.