我正在用javafx做一个项目。作为选币人,我选择Pane,也许是最糟糕的决定!是否可以使用根据面板大小加载的句子长度来居中显示文字?
我实际上正在显示我编写的代码。如您所见,GeneralQuestion的长度是多种多样的,问题没有最小或最大字符。如何根据面板的尺寸居中?
这是输出,如您所见,它没有居中。我知道有VBox或其他类型的面板,但是我已经选择了它,并且在更改所有内容之前,我想知道是否有任何方法可以使它看起来更好!
这是控制器:
public void nextQuest(ActionEvent e) throws IOException
{
secondaryImg.setVisible(false);
nextQuestionButton.setVisible(false);
getQuestion(cont);
cont++;
}
public void getQuestion(int cont) throws FileNotFoundException,
IOException
{
FileManager f = new FileManager();
numQuest();
QuestionManager m = new QuestionManager(f.loadQuestion());
GeneralQuestion.setText(m.getAllQuestion().get(cont).getBody());
answ=m.getAllQuestion().get(cont).getAnswer();
if(m.getAllQuestion().get(cont).getType().equals("normale")||m.getAllQuestion().get(cont).getType().equals("perditutto"))
answS.setVisible(true);
else if(m.getAllQuestion().get(cont).getType().equals("verofalso")){
RbVero.setVisible(true);
RbFalso.setVisible(true);
}
}
这是FXML(的一部分):
<Pane maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" style="-fx-background-color: #b8ffe0; -fx-border-width: 8px; -fx-border-color: #0e3d73;" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="guiz.controller.GameScreenController">
<children>
<Label id="numquest" fx:id="numquest" layoutX="286.0" layoutY="35.0" text="Label">
<font>
<Font size="15.0" />
</font></Label>
<Label fx:id="GeneralQuestion" layoutX="225.0" layoutY="123.0" style="-fx-font-weight: 800;" text="Quest">
<font>
<Font size="18.0" />
</font>
</Label>
</children>
</Pane>
答案 0 :(得分:0)
在JavaFX中,您可以通过相互嵌套各种布局窗格来获得所需的布局。窗格确实是个糟糕的决定,因为窗格根本不做任何布局。在您的情况下,将VBox确实更好地替代它,您可以将其放入BorderPane中。
答案 1 :(得分:-1)
谢谢!我将尝试将其更改为VBox!