- Luck Dragon: Asszociációs játék. :)
- Magga: PLEX: multimédia az egész lakásban
- sziku69: Fűzzük össze a szavakat :)
- btz: Internet fejlesztés országosan!
- sziku69: Szólánc.
- zebra_hun: Hűthető-e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- sh4d0w: Árnyékos sarok
- eBay-es kütyük kis pénzért
- Elektromos rásegítésű kerékpárok
Új hozzászólás Aktív témák
-
Murphistic
aktív tag
Nekem is ugyanazt a hibát dobja mint neked, ha a netbeansből indítom a programot.
Viszont ha a parancssorból indítom, akkor működik. Erre csak az az ötletem van, hogyha a fejlesztőkörnyzet konzolja is fontos neked, akkor használd a System.in -t bemenetként. Nekem eddig nem volt vele gondom, bár az is igaz, hogy ritkán használtam. -
Murphistic
aktív tag
-
Murphistic
aktív tag
A ma délután írt hozzászólásomban írt kód működött. Viszont a tesztemben volt annyi körítés hozzá, hogy az ablakban volt egy gomb is és a számláló csak arra kattintva indult el, de ez szerintem nem számít.
A kód egyébként így az alapértelmezett megjelenítést használja. Én pl. a NetBeans-ben állítottam be, hogy milyen színű legyen a JLabel.
Egyébként nagyon eredeti megelenítést akarsz? Mert akkor tényleg a Graphicsos megoldást kéne megtalálnunk
. Annyit olvastam, hogy az update eljárás békén hagyja a hátteret és meghívja a ComponentUI osztály update függvényét. Itt elvesztettem a fonalat, hogy miért nem működik ( esetemben a végén eltűnt a kiírt szöveg csak a háttér maradt )
-
Murphistic
aktív tag
Megint próbálkoztam egy kicsit. Sajnos most olyan hibával találkoztam, hogy ugyan szépen frissíti a képet a kód ( az is, amit elsőnek írtál ), de a végén, amikor kilép a ciklusból eltűnik a kiírt szöveg. Mintha ezt a Java update hívásai okoznák, sajnos a megoldásra még nem jöttem rá.
Viszont ha csak egy számláló kiírása a cél, akkor szerintem egyszerűbb egy JLabel-t használni erre a célra, amit pl. NetBeansben is vagy saját prancsokkal testre szabsz ( háttérszín, betűméret, betű színe, típusa )
Csináltam egy osztályt, aminek a konstruktorában beállítod, hogy melyik JLabel számoljon és utána meghívod a start-ot.
class IdoThread extends Thread{
JLabel label;
public IdoThread(JLabel label)
{
this.label=label;
}
public void run(){
int ido=0;
while(ido<5){label.setText(""+ido);
label.update(label.getGraphics());
try{
Thread.sleep(1000);
}catch(InterruptedException ie){
ie.printStackTrace();
}
ido++;}
}
}Valahol a programkódban, ahol szükséged van a számláló elindítására ( pl. egy gombra kattintva ) beszúrod ezt:
IdoThread it=new IdoThread(jLabel1);
it.start();Ennek még az is az előnye, hogy nem blokkolja az alkalmazásod felületét, tehát a számláló akkor is megy, ha mondjuk gépelsz a programodban, vagy így használható lesz egy másik gomb is, ami mondjuk a számláló leállítására szolgál.
Úgy néz ki, hogy a tegnap esti megoldásom egy elég nagy katyvasz lett
és nem valószínű, hogy működni is fog.
Nem tudom, hogy ennyi megoldja-e a problémádat, mert az tényleg furcsa, hogy nem akar működni a kirajzolás a Graphics-on.
-
Murphistic
aktív tag
Hmmm.
Most olyasmi jutott még eszembe, hogy az update() hívása nem-e egy másik szálban fut le, ami az aktuális szál lesz és emiatt a sleep dob egy kivételt és emiatt a vibrálás.
Esetleg ki lehetne próbálni az updatet egy külön szálonmeghívni, így nem az lenne az aktuális.
Akkor megpróbálnám így: ( az updatet egy külön szálban hívnám meg )
//Egy külön osztály az update meghívására
class UThread extends Thread{
Graphics g;
JFrame jf; //nem tudom hogy JFrame-e a super típusa a mintádban
public UThread( Graphics g, JFrame jf )
{
this.g=g;
this.jf=jf;
}
public void run(){
jf.update(g);
}
}ido++;
nap.setText(""+ido);
g.drawString(nap.getText(),10,90);UThread ut=new UThread(g, super);
ut.start(); //meghívjuk az updatet
try{
Thread.sleep(1000);
}catch(InterruptedException ie){
is.printStackTrace(); //kiírjuk az esetleges hibainformációt
}Remélem nem írtam el semmit, most sajnos nincs alkalmam a kód ellenőrzésére.
-
Murphistic
aktív tag
Szervusz!
Az nem lehet a gond, hogy a super.update(g) -t azután hívod meg, hogy 1 másodpercet őihent a szálad és utána azonnal módosítja a kiírt számot?
Én így próbálnám meg:
g.drawString(nap.getText(),10,90);
super.update(g);
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {}
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Apple MacBook
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Windows 10
- Autós topik
- Csak semmi szimmetria: flegma dizájnnal készül a Nothing Phone (3)
- Itthon is kapható lesz a kerámia Xiaomi Band 10
- Milyen egeret válasszak?
- BestBuy ruhás topik
- Internet Rádió építése (hardver), és programozása
- A sógorokhoz érkezik a kompakt Vivo X200 FE
- További aktív témák...
- Honor 400 Lite 256GB Kártyafüggetlen 1Év Garanciával
- Xiaomi Redmi Note 14 Pro 256GB Kártyafüggetlen 1Év Garanciával
- iPhone 12 Pro Max / 128 GB / 88%-os akku / gyári független / Pacific Blue
- GAMER PC : RYZEN 5 4500 / 16GB DDR4 / ASUS RX 480 8GB / WiFi / Bluetooth / 512GB M.2 SSD / 500GB HDD
- Dell Latitude 7390, 13,3" FHD IPS , I5-7300U CPU, 16GB DDR4, 512GB SSD, WIN 11, ( olvasd végig )
- Telefon felváráslás!! Xiaomi 13T, Xiaomi 13T Pro, Xiaomi 14T, Xiaomi 14T Pro
- Üzleti Fujitsu Lifebook u7510 15,6" FHD IPS 2021/08. havi gyártás
- ÁRGARANCIA! Épített KomPhone Ryzen 5 5500 16/32/64GB RAM RTX 4060 8GB GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- AKCIÓ! GIGABYTE B360 i5 9600K 16GB DDR4 512GB SSD RX 7600 8GB Rampage SHIVA Zalman 600W
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest