- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- sziku69: Fűzzük össze a szavakat :)
- sziku69: Szólánc.
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- mefistofeles: Az elhízás nem akaratgyengeség!
- Lalikiraly: Commodore The C64, Ultimate
- Geri Bátyó: Régi VGA, HDMI és a felbontás
- Kókuszdió: Tápegység – hova jutottunk 5 év alatt?
Új hozzászólás Aktív témák
-
Drizzt
nagyúr
válasz
Dinter
#10108
üzenetére
Valahol van erre minta kódod?
"Ha én az EventHandler-t az App-on belül valósítom meg, akkor minden gombnak az App osztály adattagjának kell lennie, hogy a handle függvényben le tudjam ellenőrizni, hogy melyik osztályban történt a kattintás."
Ez szerintem nem így van. Vagyis nem teljesen értem, hogy mit értesz az alatt, hogy le kell tudd ellenőrizni, hogy melyik osztályban történt a kattintás? Miért kellene ezt leellenőrizni? Ha bárhol csinálsz EventHandler-t implementáló osztályt, azt be tudod állítani event handlernek. Akár csinálhatsz egy olyan függvényt az Appban, ami EventHandler<MouseEvent>-et ad vissza, pl. így:
Class MyApplication {
EventHandler<MouseEvent> createTeamHandler(Team t) {
return new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent e) {
System.out.println("MouseEventhandler runs");
t.doSomething();
}
};
}
}És akkor ahol akarod használni:
MyApplication app = new MyApplication();
Team t = new Team();
button.addEventHandler(app.createTeamHandler(t));Mondjuk Javafx-hez sem értek. De ehhez hasonló dolog simán megy pl.: Consumer-ekkel:
public class Book{
public Book(String name) {
this.name = name;
}
private String name;
private Consumer<Book> consumer;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public void setConsumer(Consumer<Book> bookConsumer) {
consumer = bookConsumer;
}
public void consume() {
consumer.accept(this);
}
}
public class Tester {
public static Consumer<Book> getBookConsumer(int number) {
return new Consumer<Book>() {
@Override
public void accept(Book book) {
System.out.println(number);
}
};
}
public static void test() {
Book b1 = new Book("AGILE workflow");
b1.setConsumer((book -> {
System.out.println(visitables.size());
}));
b1.consume();
b1.setConsumer(getBookConsumer(8));
b1.consume();
}
} -
skoda12
aktív tag
válasz
Dinter
#10018
üzenetére
Itt több esetet kell majd szétválogatni szerintem. Induljunk egy runnable állapotból, ekkor a lépések:
1. A foobar.wait() hívása előtt meg kell szerezni a monitor lockját. Ez vagy sikerül elsőre vagy blocked állapotba kerül a thread, ha valaki másnál van lock.
2. Valahogy túljutunk az előző ponton, runnable állapotban van a thread és meghívódik a foobar.wait(). Az új állapot waiting.
3. Valamiért (*) felébred a thread, runnable állapotba kerül. Ahhoz, hogy ki tudjon lépni a wait()-ből kell a monitor lock. Itt megint vagy sikerül elsőre vagy blocked állapot jön és ha megvan a lock akkor runnable megint.(*) A notify() hatására átmehet blocked állapotba a thread. A foobar.notify() híváshoz is kell a monitor lock. Ha a felébresztett thread már futna, de a notify()-t hívó thread még fogja a lockot, akkor a felébresztett thread megy a blocked állapotba. Ha viszont véletlen úgy kapna cpu időt, hogy a notfiy()-t hívó thread (és mindenki más) már eleresztette a lockot, akkor ki is maradhat ez a blocked állapot.
Viszont nem csak a notify() miatt mehet át ilyen állapotokon a thread. Például spurious wakeup miatt a wait()-et hívó thread még a notify() hívás előtt is felébredhet "magától". És akkor itt megint jön az, hogy vagy runnable vagy runnable + blocked + runnable állapotokon megy át.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Százmilliárd dolláros AI-fegyverkezésbe kezdett az Amazon és a Google
- Formula-1
- Végre hivatalos, mikor lesz az S26 hivatalos
- Parfüm topik
- Luck Dragon: Asszociációs játék. :)
- Horgász topik
- Apple iPhone Air - almacsutka
- Kormányok / autós szimulátorok topikja
- Elődje legnagyobb hibáját javítja az iPhone 17e
- gban: Ingyen kellene, de tegnapra
- További aktív témák...
- Kingston 16GB DDR5 5600MHz CL46 - Új, bontatlan, több darab - Eladó!
- Corsair VENGEANCE RGB 2x16GB DDR5 6400MHz CL32 - Új, bontatlan - Eladó!
- Corsair VENGEANCE RGB 2x16GB DDR5 6200MHz CL36 - Új, bontatlan - Eladó!
- Corsair VENGEANCE RGB 2x16GB DDR5 6000MHz CL36 - Új, bontatlan - Eladó!
- Chieftec proton 750w full moduláris
- Telefon felvásárlás!! Samsung Galaxy A70/Samsung Galaxy A71/Samsung Galaxy A72
- iPhone 14 128GB 100% (1év Garancia)
- Jura Impressa S90 Automata kávégép 6 hónap Garancia Beszámítás Házhozszállítás
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- Eredeti Microsoft Windows 10 / 11 Pro OEM licenc Akciós áron! 64/32 bit Azonnali kézbesítéssel
Állásajánlatok
Cég: Central PC számítógép és laptop szerviz - Pécs
Város: Pécs
Cég: Laptopműhely Bt.
Város: Budapest

