Hallo,
ich versuche gerade Fehlermeldungen meines Clients am Bildschirm mit einem JDialog auszugeben. Dabei soll einfach eine JOptionPane.WARNING_MESSAGE (icon erstmal egal ebenso wie look and feel) sowie ein custom button angezeigt werden in dem ein Time 3 sekunden runterzählt. (Siehe LoL fehlermeldung wenn die server nich erreichbar sind o.Ä.)
Hier mal mein bisheriger Code:
Das Problem ist, das ich keinen Zugriff auf die Buttons des Dialogs bekomme und somit die buttons nicht textlich ändern kann. Allerding habe ich auf dem Oracle Java tutorial nachgeschaut, wo eben das erklärt wird, allerdings komme ich da dann nur soweit, dass ich das gewünschte dialogfenster anzeigen kann aber den Text (siehe counter im Scheduler oben im Code nicht anzeigen kann. Hier nochmal das von Oracle:
Vielleicht weiss jemand Rat.
Grüße
Eichelhäer
ich versuche gerade Fehlermeldungen meines Clients am Bildschirm mit einem JDialog auszugeben. Dabei soll einfach eine JOptionPane.WARNING_MESSAGE (icon erstmal egal ebenso wie look and feel) sowie ein custom button angezeigt werden in dem ein Time 3 sekunden runterzählt. (Siehe LoL fehlermeldung wenn die server nich erreichbar sind o.Ä.)
Hier mal mein bisheriger Code:
Java:
JOptionPane optionPane = new JOptionPane(message,JOptionPane.WARNING_MESSAGE,JOptionPane.OK_OPTION);
JButton button = new JButton("Client beenden");
button.setEnabled(false);
button.addActionListener(e -> {
System.exit(0);
});
optionPane.add(button,BorderLayout.PAGE_END);
JDialog dialog = new JDialog();
dialog.setUndecorated(true);
dialog.setContentPane(optionPane);
dialog.pack();
dialog.setLocationRelativeTo(null);
dialog.setVisible(true);
final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
final Runnable runnable = new Runnable() {
int counter = 4;
public void run() {
counter--;
button.setText("Client beenden ("+counter+")");
if (counter < 1) {
button.setEnabled(true);
scheduler.shutdown();
}
}
};
scheduler.scheduleAtFixedRate(runnable, 0, 1, SECONDS);
Das Problem ist, das ich keinen Zugriff auf die Buttons des Dialogs bekomme und somit die buttons nicht textlich ändern kann. Allerding habe ich auf dem Oracle Java tutorial nachgeschaut, wo eben das erklärt wird, allerdings komme ich da dann nur soweit, dass ich das gewünschte dialogfenster anzeigen kann aber den Text (siehe counter im Scheduler oben im Code nicht anzeigen kann. Hier nochmal das von Oracle:
Code:
Object[] options = {"Client beenden"};
int n = JOptionPane.showOptionDialog(this,message,"Serverstatusmeldung",JOptionPane.OK_OPTION,JOptionPane.WARNING_MESSAGE,null,options,options[0]);
JOptionPane optionPane = new JOptionPane(message,JOptionPane.WARNING_MESSAGE,n);
Vielleicht weiss jemand Rat.
Grüße
Eichelhäer