javafx - Label text position -
i have label image , text
final label label = new label(labeltext); label.settextalignment(textalignment.center); imageview liveperformicon = new imageview(mainapp.class.getresource("/images/folder-icon.png").toexternalform()); label.setgraphic(liveperformicon);
i visual result:
how can change text position? want set text below image?
label.setcontentdisplay(contentdisplay.top);
play see effect of different alignment settings:
import javafx.application.application; import javafx.geometry.insets; import javafx.geometry.pos; import javafx.scene.scene; import javafx.scene.control.combobox; import javafx.scene.control.contentdisplay; import javafx.scene.control.label; import javafx.scene.image.imageview; import javafx.scene.layout.borderpane; import javafx.scene.layout.gridpane; import javafx.scene.text.textalignment; import javafx.stage.stage; public class labelgraphicalignmenttest extends application { @override public void start(stage primarystage) { borderpane root = new borderpane(); label label = new label("some\ntext"); label.setgraphic(new imageview(getclass().getresource("/images/folder-icon.png").toexternalform())); label.setmaxwidth(double.positive_infinity); label.setmaxheight(double.positive_infinity); label.setstyle("-fx-border-color: blue;"); root.setcenter(label); combobox<contentdisplay> contentdisplaybox = new combobox<>(); contentdisplaybox.getitems().addall(contentdisplay.values()); contentdisplaybox.getselectionmodel().select(contentdisplay.left); label.contentdisplayproperty().bind(contentdisplaybox.valueproperty()); combobox<pos> alignmentbox = new combobox<>(); alignmentbox.getitems().addall(pos.values()); alignmentbox.getselectionmodel().select(pos.center); label.alignmentproperty().bind(alignmentbox.valueproperty()); combobox<textalignment> textalignmentbox = new combobox<>(); textalignmentbox.getitems().addall(textalignment.values()); textalignmentbox.getselectionmodel().select(textalignment.left); label.textalignmentproperty().bind(textalignmentbox.valueproperty()); gridpane ctrls = new gridpane(); ctrls.sethgap(5); ctrls.setvgap(5); ctrls.setpadding(new insets(10)); ctrls.addrow(0, new label("content display:"), new label("alignment:"), new label("text alignment:")); ctrls.addrow(1, contentdisplaybox, alignmentbox, textalignmentbox); root.settop(ctrls); scene scene = new scene(root, 600, 250); primarystage.setscene(scene); primarystage.show(); } public static void main(string[] args) { launch(args); } }
Comments
Post a Comment