Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno JavaFX - přidání 2. labelu na 1. label

Dobrý den,

Abych to vysvětlil, ve swingu jsem vytvořil javax.swing.JLabel, pomocí setIcon jsem ho změnil na obrázek a na něj jsem metodou add přidal další label.

(Doufám, že je to srozumitelné)

V javaFX jsem chtěl napsat to samé, jenže javafx.scene.control.Label žádnou metodu add nemá.

Prosím o radu.

Děkuji.

Předmět Autor Datum
Ne, srozumitelne to opravdu neni. Ve swingu jsou komponenty vetsinou zaroven i Container, takze maji…
MaSo 16.10.2017 13:55
MaSo
No tak se hned nerozčiluj. To s těma kontejnerama jsem nemohl vědět. Mám přes 20 obrázků, které už…
MichalDM 16.10.2017 16:15
MichalDM
StackPane pane = new StackPane(new Label("text")); pane.setLayoutX(100); pane.setLayoutY(100); pane…
MichalDM 18.10.2017 16:57
MichalDM
Trochu jsem se v tom šťoural a nemusíš psát absolutní cestu, pouze 'file:src/.../image.png' respek…
MichalDM 18.10.2017 21:43
MichalDM
Teď mi došlo, že je to blbost. Do FXML můžu psát pouze vlastnost : hodnota; Existují ještě preproce…
MichalDM 19.10.2017 16:14
MichalDM
String PATH = "file:image/"; StackPane pane = new StackPane(new Label("text")); pane.setLayoutX(100)… poslední
MichalDM 23.10.2017 22:57
MichalDM

No tak se hned nerozčiluj. To s těma kontejnerama jsem nemohl vědět.

Mám přes 20 obrázků, které už sami o sobě musím pozicovat. A na každý chci doprostřed přidat číslo. A proto jsem to dával jako potomka konkrétního obrázku, abych to nemusel pozicovat vůči celému oknu, ale pouze obrázku, který je jeho rodič.


StackPane pane = new StackPane(new Label("text"));
pane.setLayoutX(100);
pane.setLayoutY(100);
pane.setPrefSize(100, 100);
pane.setStyle("-fx-background-image: url('file:absolutní cesta/image.png'); -fx-background-size: cover;");

Tohle dělá přesně co jsem chtěl, až na ten problém, že k obrázku musím psát absolutní cestu, přitom všude na internetu je napsaná relativní cesta, ale mně to prostě nefunguje. Nevíte, prosím vás, jak to zpravit.

Děkuji

Trochu jsem se v tom šťoural a nemusíš psát absolutní cestu, pouze

'file:src/.../image.png'

respektive cestu od src.

Ovšem stačí napsat pouze obrázek, pokud použiješ

getClass().getResourceAsStream("image.png")

Jenže jak to mám, prosím vás, napsat, protože je to celé v uvozovkách. A navíc, potřebuji se dostat i složku víš, což taky netuším jak.

Teď mi došlo, že je to blbost. Do FXML můžu psát pouze vlastnost : hodnota;

Existují ještě preprocesory, jako je LESS A SASS, kde můžu používat proměnná : hodnota; vlastnost: proměnná; (což nevím, jestli je to případ FXML?)

Každopádně metody místo hodnoty psát nemůžu, ale i tak nevím, jak to naspat.

A co se týče toho, jak se dostat o složku výš, tak jsem našel ../ jenže to taky nefunguje.

String PATH = "file:image/";

StackPane pane = new StackPane(new Label("text"));
pane.setLayoutX(100);
pane.setLayoutY(100);
pane.setPrefSize(100, 100);
pane.setStyle("-fx-background-image: url('" + PATH + "image" + ".png" + "'); " + "-fx-background-size: cover;");

Do src se mají ukládat kódy a ne obrázky, takže načtení složky projektu má své důvody.

Tohle funguje v pořádku, ovšem teď mám problém, který s tímhle úzce souvisí.

Byl bych rád, kdybys mi s tím poradil, protože si vážně nevím rady.

Díky.

2704051-javafx-imageview-resize-without-change-aspect-ratio

Zpět do poradny Odpovědět na původní otázku Nahoru