15. april 2002 - 17:07Der er
2 kommentarer og 1 løsning
stoppe en forløkke
Hej allesammen
Sider her med et (måske) mindre problem.
Jeg skal have stoppet en forløkke vedr at trykke på en knap i en BGF.
Forløkken er: for (int i = 0; i<100000; i++){ draw(); }
når denne kører kan jeg naturligt nok ikke komme til at trykke på nogen knapper, hvilket indebærer at den først reagere på tryk efter forløkken er kørt.
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Jeg er ikke sikker på at jeg helt forstår hvad du ønsker at opnå i ovenstående for-løkke, men hvis du vil hoppe ud af sådan en undervejs, kan du bare bruge kommandoen break; dvs. for (int i = 0; i<100000; i++){ draw(); if (betingelseOpfyldt) { break; } }
Det er ikke noget problem at stoppe, her er et simpelt eksempel der ligner dit meget. import java.awt.event.*; import javax.swing.*; public class Stop extends JFrame { private boolean stop = false; public Stop() { super( "Stop" ); JButton stopButton = new JButton( "Stop" ); getContentPane().add( stopButton ); stopButton.addActionListener( new StopListener() ); pack(); show(); int i; for (i = 0; i < 10000 && !stop; i++) { try { Thread.sleep( 100 ); } catch (InterruptedException ie) {} } System.out.println( i ); System.exit( 0 ); } private class StopListener implements ActionListener { public void actionPerformed( ActionEvent ae ) { stop = true; } } public static void main( String[] args ) { Stop stop = new Stop();
mogli: vær opmærksom på at hvis du starter din beregning lige efter at du har aktiveret noget i din BGF(en start knap f.eks.) så låser du BGF'ens tråd og din BGF vil virke låst, dvs din stop knap vil ikke kunne aktiveres. I det filfælde skal du starte din nye beregning i en tråd med noget der ligner: Thread t = new Thread() { public void run() { for (int i = 0; i < 10000 && !stop; i++) { ... } } }; t.start(); og du skal her sørge for at stop er tilgængelig for den anonyme tråd.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.