28. november 2001 - 16:57Der er
35 kommentarer og 1 løsning
Gør da snart amok - LostFocus
Det var da utroligt, jeg har et JWindow hvor jeg har prøvet med alverdens listeners men jeg kan bare ikke få vinduet til altid at komme frem i toppen af skærmen, altså hvordan laver jeg så mit JWindow er \"Always on top\" indtil programmet afsluttes ?
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.
Nix, tror du det er en gavebutik, det her - nå ja, det er det jo næsten.
Men kunne du ikke vise hvad du gør? Måske er 5 gange i sekundet for meget. Hvis den ikke kan nå at gøre den færdig, håber de hændelser sig jo op. Prøv evt. lidt færre gange.
Jamen du kunne da bare have sagt at der var noget der hed sleep() er jo ikke mester i Java :=)
Som din svigermor ? Hm..
Det går ikke det med at sætte den til at sove, computeren går helt amok og de ActionListeners som er i mit JWindow virker ikke, dvs. alle knapper bliver uklikbare så det er ikke kun mine Listeners.
Definer tråd ? Jeg lavede extends Thread på min klasse og lave så en metode der hed getFocus() som blev kaldt efter load, den indeholdt en while løkke der så sådan her ud:
Du skal nok gøre det i en helt anden klasse - ikke din gui-klasse. Du skal have winMain med som parameter. Det du skal opnå, at der er en tråd, der udelukkende har til formål at sove - og så en gang imellem lave en toFront() - mens resten af dit program cykler derudaf som det plejer.
public class FocusControl extends Thread { public FocusControl(JWindow com) { while (true) { try { com.toFront(); sleep(2000); } catch(Exception e) { } } } }
også laver jeg en new FocusControl(winMain); i min gui klasse, men computeren går stadig amok, har den engang tabt focus bliver det bare til en hvis kasse på skærmen.
Ja jeg ved ikke lige hvad der skete om det ikke var fordi jeg fik compilet det hele ordentligt eller hvad det var, men nu virker det ihvertfald med den FocusControl, så hvis du lige lægger et svar Erik :)
Har lige fundet et nyt problem ved at gøre det på den måde, hvis man har to sidestående vinduer vil det vindue som bruger FocusControl() hele tiden få focus hvilket ikke var meningen, kan man gøre noget ved det ?
Det hele bunder i at jeg starter med at åbne en JFrame i fuldskærm størrelse herefter åbner jeg JWindows oven på dette for at få programmet til at flyde sammen i et istedet for at bestå af mange små vinduer, det kan være der er en nemmere måde at gøre det på, udover at skrive det hele i en klasse og vise og skjule paneler efter behov.
Jo med JWindow ser det jo ikke ud som et rigtigt vindue, det flyder ligesom på skærmen, så ved at have en fuldskærm bagved giver det et pænt layout. Mit program består af mange dele som indtil videre vises som en masse vinduer på skærmen, det ville jeg gerne have lavet så det ser ud som ét program.
Hmm, jeg er ikke sikker på jeg kan hjælpe dig til en løsning på det - men man burde kunne programmere det, så du kan simulere en MDI. Men jeg ved nok ikke tilstrækkeligt om det.
Nå men det er der så ikke noget at gøre ved, det må jeg jo prøve at lege med i juleferien, nu må jeg nok hellere komme videre med det eksammens projekt her, vinduer eller ej :)
øv, det kunne være sjovt nok at have dig til censor :)
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.