Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Problem] Zamykanie programu - pytanie, tak czy nie


Varp

Rekomendowane odpowiedzi

Opublikowano

Witam

Chciałbym, żeby po wciśnięciu EXIT wyskoczyło okienko z zapytaniem, czy naprawdę chcę zakończyć – i ta część działa poprawnie. Jednak bez względu na wybór YES, czy NO program się i tak zamyka (ewentualnie odwrotnie). Jak zrobić, żeby po wciśnięciu na NO program nie zamykał się?

 

public class Game extends JFrame {

JFrame f = new JFrame();

 

// konstruktor

public Game() {

f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

 

// wyskakujące okno z zapytaniem czy naprawdę zakończyć (po wciśnięciu przycisku 'exit')

exit.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

JOptionPane op = new JOptionPane("Really exit?");

op.setMessageType(JOptionPane.QUESTION_MESSAGE);

op.setOptionType(JOptionPane.YES_NO_OPTION);

JDialog d = op.createDialog(f, "Exit");

d.setVisible(true);

 

// wciskamy przycisk Yes - program się zamyka

if (op.getOptionType() == JOptionPane.YES_OPTION)

System.exit(0);

 

// wciskamy przycisk No - program działa dalej --> niestety nie wiem co zrobić, żeby to działało

else if (op.getOptionType() == JOptionPane.NO_OPTION)

return; // to wpisałem byleby coś wpisać, ale co by tu nie było to i tak nie chce działać

...

}

Opublikowano

Witam

Chciałbym, żeby po wciśnięciu EXIT wyskoczyło okienko z zapytaniem, czy naprawdę chcę zakończyć – i ta część działa poprawnie. Jednak bez względu na wybór YES, czy NO program się i tak zamyka (ewentualnie odwrotnie). Jak zrobić, żeby po wciśnięciu na NO program nie zamykał się?

 

public class Game extends JFrame {

JFrame f = new JFrame();

 

// konstruktor

public Game() {

f.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

 

// wyskakujące okno z zapytaniem czy naprawdę zakończyć (po wciśnięciu przycisku 'exit')

exit.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

JOptionPane op = new JOptionPane("Really exit?");

op.setMessageType(JOptionPane.QUESTION_MESSAGE);

op.setOptionType(JOptionPane.YES_NO_OPTION);

JDialog d = op.createDialog(f, "Exit");

d.setVisible(true);

 

// wciskamy przycisk Yes - program się zamyka

if (op.getOptionType() == JOptionPane.YES_OPTION)

System.exit(0);

 

// wciskamy przycisk No - program działa dalej --> niestety nie wiem co zrobić, żeby to działało

else if (op.getOptionType() == JOptionPane.NO_OPTION)

return; // to wpisałem byleby coś wpisać, ale co by tu nie było to i tak nie chce działać

...

}

optionType to nie wartość którą zwraca po naciśnięciu yes/no tylko typ:

TTYm194.png

Wartość którą potrzebujesz to op.getValue() i wtedy:

fb1k9SR.png

Ale tak też się tego nie powinno robić :F powinno się to robić w sposób następujący:

1a4m0it.png

Efekt ten sam ale ładniej wygląda ;d

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...