/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
At gøre en knap inaktiv i x sekunder i all~
Fra : Kim Voss Schrader


Dato : 25-05-04 18:45

Hej!

Subj. prøver at forklare mit problem

Jeg har en webside hvor der bliver hentet en applet, som kommunikerer med en
serverapplikation. Serverapplikationen består af to klasser - en som hele tiden
checker for trafik på port 1234 og i så fald der sker noget, spawner den en
session af en anden klasse, som håndterer trafikken til/fra applet'en på
selvsamme port.

Nu er der så den spidsfindighed, at jeg kan sende enten 'start' eller 'stop' til
serverapplikationen. Hvis der trykkes 'stop' må der under ingen omstændigheder
kunne aktiveres 'start' før min. 30 sekunder senere.

Hvordan kunne dette implementeres? Jeg har overvejet at skrive det nyeste
'stop'-tidspunkt til en fil og checke denne fil når der trykkes 'start', men det
virker ikke helt gennemtænkt imho.

Nogen der har en god ide?

Serverapplikationen, som spawner sessions:
(Den spawnede session modtager data via en socket og ikke interessant som sådan)

public class ServerAppletThread {
public static void main(String args[]) {

ServerSocket echoServer = null;

try {
   echoServer = new ServerSocket(3456);
   }
catch (IOException e) {
   System.out.println(e);
   }

System.out.println("Server-Program startet...");
try {
   while(true) {
      new ComThread(echoServer.accept()).start();
      System.out.println("Ny forbindelse...");
   }
   }
   catch (IOException ex) {
      //echoServer.close();
   }
   
}
}


--
Mvh, Kim Voss Schrader

OBS: Der kan max. attaches 30kb i e-mails til mig, ellers bouncer de.

 
 
Kim Voss Schrader (25-05-2004)
Kommentar
Fra : Kim Voss Schrader


Dato : 25-05-04 18:49

Hej!

Kim Voss Schrader wrote:
>
....
> checker for trafik på port 1234 og

Det er faktisk 3456, men i forstår nok meningen alligevel :)

--
Mvh, Kim Voss Schrader

OBS: Der kan max. attaches 30kb i e-mails til mig, ellers bouncer de.

Ukendt (26-05-2004)
Kommentar
Fra : Ukendt


Dato : 26-05-04 00:23

Kim Voss Schrader wrote:
> Jeg har en webside hvor der bliver hentet en applet, som kommunikerer med en
> serverapplikation. Serverapplikationen består af to klasser - en som hele tiden
> checker for trafik på port 1234 og i så fald der sker noget, spawner den en
> session af en anden klasse, som håndterer trafikken til/fra applet'en på
> selvsamme port.
>
> Nu er der så den spidsfindighed, at jeg kan sende enten 'start' eller 'stop' til
> serverapplikationen. Hvis der trykkes 'stop' må der under ingen omstændigheder
> kunne aktiveres 'start' før min. 30 sekunder senere.
>
> Hvordan kunne dette implementeres? Jeg har overvejet at skrive det nyeste
> 'stop'-tidspunkt til en fil og checke denne fil når der trykkes 'start', men det
> virker ikke helt gennemtænkt imho.
>
> Nogen der har en god ide?

Såfremt du bruger knapper til at starte/stoppe, kan du f.eks.
disable start knappen, når stop knappen trykkes på. Du kan så
starte en javax.swing.Timer med et delay på 30 sekunder.
ActionListeneren kan så enable knappen igen, når de 30 sekunder
er gået. Dette skal nok gøres via en ny tråd.

Disable og enable gøres via "setEnabled" metoden.

--
Mvh.
Martin Møller Bæk
www.yavi.dk

Kim Voss Schrader (26-05-2004)
Kommentar
Fra : Kim Voss Schrader


Dato : 26-05-04 09:59

Hej!

Martin Møller Bæk wrote:
>
....
> Såfremt du bruger knapper til at starte/stoppe, kan du f.eks.

Det gør jeg.

> disable start knappen, når stop knappen trykkes på. Du kan så
> starte en javax.swing.Timer med et delay på 30 sekunder.
> ActionListeneren kan så enable knappen igen, når de 30 sekunder
> er gået. Dette skal nok gøres via en ny tråd.
>
> Disable og enable gøres via "setEnabled" metoden.

Lyder egentligt som en god ide. Men vil det virke i alle sessions? Hvad hvis en
bruger allerede er logget på systemet og en anden bruger klikker 'stop' i sit
vindue? Så vil den første bruger vel stadig kunne se 'start'-knappen og lave
problemer?

--
Mvh, Kim Voss Schrader

OBS: Der kan max. attaches 30kb i e-mails til mig, ellers bouncer de.

Ukendt (26-05-2004)
Kommentar
Fra : Ukendt


Dato : 26-05-04 10:27

Kim Voss Schrader wrote:
>>disable start knappen, når stop knappen trykkes på. Du kan så
>>starte en javax.swing.Timer med et delay på 30 sekunder.
>>ActionListeneren kan så enable knappen igen, når de 30 sekunder
>>er gået. Dette skal nok gøres via en ny tråd.
>>
>>Disable og enable gøres via "setEnabled" metoden.
>
>
> Lyder egentligt som en god ide. Men vil det virke i alle sessions? Hvad hvis en
> bruger allerede er logget på systemet og en anden bruger klikker 'stop' i sit
> vindue? Så vil den første bruger vel stadig kunne se 'start'-knappen og lave
> problemer?

Nej, det har du ret i. Det vil det ikke.

Det kunne være en mulighed, at lave tjekket på, om knapperne skal
være aktive, i serverapplikationen, da du så med en enkelt variabel
kan gemme dette.

Problemet er så, hvis du vil have informationen tilbage til appletten.
Dvs. hvis du vil have, at knapperne skal disables, når man ikke skal
kunne "starte".
Hvis du er ligeglad med dette, kan server app bare ignorere alle
"starts" indtil, det igen er tilladt. Ellers skal alle applets via
en ny tråd hele tiden tjekke i server app om, knappen skal være
enabled eller disabled. Det kan godt blive noget rod eller generere
en del trafik.
Ellers kunne alle applets måske lytte til server app, og hvis der
er kommet en stop, sender server app en disable kommando ud til
alle applets. Jeg ved ikke, om det er muligt.

Håber du kan bruge det til noget.

--
Mvh.
Martin Møller Bæk
www.yavi.dk

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste