WebHU - Programozási kérdések és válaszok

Egyéni vezérlés és átlátszatlan felugró ablak

Egy egyéni vezérlőt tartalmazó JavaFX könyvtárat írok. Létrehoztam egy egyéni felületet ehhez a vezérlőhöz, ahol elhelyezek egy szövegmezőt és egy gombot. Amikor a gombra kattintunk, egy felugró ablaknak kell megnyílnia.

Az a bajom, hogy a felugró ablak átlátszó. Hogyan tudnám átlátszatlanná tenni? Megpróbáltam beállítani a hátteret a CSS-ben, de sikertelenül.

A vonatkozó kód ennek az egyéni vezérlőelemnek a Skin implementációjában található. A CSS-re az egyéni vezérlő getUserAgentStylesheet() metódusa hivatkozik. Az egyéni vezérlő a styleClass "egyéni vezérléssel" rendelkezik.

Alapvetően a Skin azt mondja:

  • a cutom vezérlőt szövegmezőként és gombként jeleníti meg
  • ha ezt a gombot (a Skin egy részét) megnyomják: felugrik egy ablak egy másik egyéni vezérlővel (amelynek saját Skinje van stb.)

Íme a vonatkozó kód:

 public class SomeControlSkin implements Skin<SomeControl> {

    private SomeControl control;

    private OtherControl otherControl = new OtherControl();
    private Popup popup = new Popup();

    public SomeControlSkin(SomeControl someControl){
      this.someControl = someControl;
      otherControl.fooProperty().bind(someControl.fooProperty());

      ...

      popupControl.getContent().add(otherControl);   

      ...
   }

...

}

és

.some-control { 
    -fx-skin: "somePackage.SomeControlSkin";
}

.some-control .popup{ 
    -fx-background-color: yellow;
}

.some-control .other-control{ 
    -fx-background-color: yellow;
}

Próbáltam PopupControl-lal is, de az sem ment.

Megjegyzés: Ez egy keresztbejegyzés:

https://forums.oracle.com/forums/thread.jspa?messageID=10819020

Szerkesztés:

Sikerült egy kis lépéssel előrébb jutnom. Az előugró ablakot a következő tölti ki:

popupControl.getScene().setFill(Color.YELLOW);

De hogyan tudom ezt megtenni CSS-sel?

Ki is próbáltam:

.some-control { 
    -fx-skin: "somePackage.SomeControlSkin";
    -fx-background-color: black;
    -fx-background-insets: 0;
    -fx-fill: black;
}

.other-control { 
    -fx-skin: "somePackage.OtherControlSkin";
    -fx-background-color: black;
    -fx-background-insets: 0;
    -fx-fill: black;
}

De nem változtatta meg a hátteret, mindegy, hogy egy Popuphoz vagy a főjelenethez adtam hozzá a vezérlőt!? (Nem vagyok biztos benne, hogy a kitöltésnek vagy a háttérnek kell-e a trükkje, és nem vagyok biztos benne, hogy be kell-e állítani a beillesztéseket, és milyen értékre).

Megpróbáltam hozzáadni egy styleClass-t is:

   popupControl.getContent().add(otherControl);
   otherControl.getStyleClass().add("other-control-popup");

és

.other-control-popup {
    -fx-background-color: black;
    -fx-background-insets: 0;
    -fx-fill: black;
}

De ez sem működött.


  • Nem szakértő, de: megnézted, hogy milyen css mezőket örököltek a caspian.css fájlból, hátha van valami, amit felül kell bírálnod (kicsit próba-hibának hangzik...)? 30.01.2013
  • Igen, megnézem a caspian.css-t, és szerintem -fx-background-color kellene, de nem vagyok benne 100%-ig biztos. 30.01.2013

Új anyagok

A rádiógomb ellenőrzött eseményének használata a jQueryben
Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

Miért érdemes elkezdeni a kódolást 2023-ban?
01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

🎙 Random Noise #2  – Örökbefogadás és hit
az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..