0
我已經爲VBox添加了一個標籤,該標籤由Scrollpane進一步包裝。這樣做,我的標籤樣式不起作用。使用Scrollpane jfx中的風格化問題
我在這裏有一個代碼。它可以正常工作,當我刪除滾動窗格。
package javasocket;
import javafx.fxml.FXML;
import javafx.scene.control.Label;
import javafx.scene.control.ScrollPane;
import javafx.scene.control.TextField;
import javafx.scene.input.KeyCode;
import javafx.scene.input.KeyEvent;
import javafx.scene.layout.VBox;
import javafx.scene.text.TextAlignment;
public class Controller {
VBox msg_vbox = new VBox();
@FXML
ScrollPane scrlpane;
@FXML
TextField message;
@FXML
protected void sendMessage() {
Label set_text = new Label();
set_text.setText("Server Says: \n" + message.getText());
set_text.setStyle("-fx-padding:10;-fx-margin:10;"
+ "-fx-background-color:teal;"
+ " -fx-background-insets: 5;"
+ "-fx-font-size:15;"
+ "-fx-background-radius: 3;");
set_text.setPrefSize(Double.MAX_VALUE, Double.compare(0, 500));
set_text.setWrapText(true);
set_text.setTextAlignment(TextAlignment.JUSTIFY);
msg_vbox.getChildren().addAll(set_text);
scrlpane.setContent(msg_vbox);
message.setText("");
}
@FXML
protected void check_key(KeyEvent ae) {
if (ae.getCode().equals(KeyCode.ENTER)) {
sendMessage();
}
}
}
'-fx-margin'不是'Label'的CSS屬性。 Furhermore我推薦使用'Region.USE_COMPUTED_SIZE'而不是計算使用'Double.compare(0,500)'的相同值。這裏真正的問題是將'prefWidth'設置爲'Double.MAX_VALUE',可能你需要將'Label'的'maxWidth'設置爲'Double.MAX_VALUE'並將'ScrollPane'的'fitToWidth'設置爲'true'(通過將內容寬度設置爲視口寬度來避免水平滾動條)。 – fabian
非常感謝@fabian。我很感激。我可以得到Region.USE_COMPUTED_SIZE的線索嗎? –