Je ne sais pas pourquoi tous les champs ProgressMonitor sont privés. Probablement pas M. Godsling de création le plus fier :)
* @author James Gosling
* @author Lynn Monsanto (accessibility)
* @version 1.37 04/12/06
clone Il suffit, avec quelques-uns paquet des choses privées de Swing, vous pouvez faire ce que vous voulez, comme ajouter un drapeau pour cancelability, et de l'utiliser dans le constructeur de ProgressOptionPane .
(UPDATE) Si vous ne pouvez pas obtenir le code sous TSSL JDK, alors voici une façon sournoise de mettre la main sur la JDialog, alors vous pouvez faire tout ce que vous voulez, y compris la suppression du bouton Annuler:
progressMonitor = new ProgressMonitor(ProgressMonitorDemo.this,
"Running a Long Task",
"", 0, 100);
progressMonitor.setMillisToDecideToPopup(0);
progressMonitor.setMillisToPopup(0);
progressMonitor.setProgress(0);
JDialog dialog = (JDialog)progressMonitor.getAccessibleContext().getAccessibleParent();
JOptionPane pane = (JOptionPane)dialog.getContentPane().getComponent(0);
pane.setOptions(new Object[]{});
C'est moche, et cela dépend totalement de l'implémentation de ProgressMonitor. Donc, vous devriez vérifier ClassCastException et null.
Pourquoi avez-vous besoin de définir les deux périodes à 0? Sinon, la boîte de dialogue n'est pas créée dans setProgress.
Oui, il est possible: http://stackoverflow.com/questions/2778045/how-to-omit-the-cancel-button-in-java-progressmonitor –
@BarbeRouge cette réponse vous pointer sur indique la même chose que la mienne - vous ne pouvez pas utiliser ProgressMonitor, vous devez créer votre propre boîte de dialogue JProgressBar. La seule différence est qu'ils ont copié le code du tutoriel Java dans la réponse. –