在做了关于TableView的Oracle教程之后,我想知道是否有一种方法可以以编程方式将不同的CSS样式应用于所选的TableView行.例如,用户选择某一行,单击"突出显示"按钮,所选行获得棕色背景,白色文本填充等.我在JavaFX中阅读了JavaFX tableview颜色,用2种颜色更新TableView行外观和背景?,但无济于事= /
这是来源:
import javafx.application.Application;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.scene.Group;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.stage.Stage;
public class TableViewSample extends Application {
private TableView<Person> table = new TableView<Person>();
private final ObservableList<Person> data =
FXCollections.observableArrayList(
new Person("Jacob", "Smith", "jacob.smith@example.com"),
new Person("Isabella", "Johnson", "isabella.johnson@example.com"),
new Person("Ethan", "Williams", …
Run Code Online (Sandbox Code Playgroud) 这就是我使用 gridlines布局的样子,这就是我调整主窗口大小时的样子,这就是我想要的最终结果。基本上,我需要一些技巧来让我的 GridPane 水平和/或垂直填充整个舞台,同时它的一些单元格保持指定的宽度/高度。我已经尝试了目前能想到的所有方法,但仍然找不到解决方案。使用 AnchorPane 可能会帮助我实现想要的结果,但我仍在试图弄清楚如何。我不想使用 SceneBuilder,因为我不是“拖放”编程的忠实粉丝 =)
@Override
public void start(final Stage primaryStage){
BorderPane border = new BorderPane();
GridPane grid = new GridPane();
grid.getColumnConstraints().add(new ColumnConstraints(70)); //column 1
grid.getColumnConstraints().add(new ColumnConstraints()); //column 2
grid.getColumnConstraints().add(new ColumnConstraints(70)); //column 3
grid.getColumnConstraints().add(new ColumnConstraints(100)); //column 4
grid.getColumnConstraints().add(new ColumnConstraints()); //column 5
grid.getColumnConstraints().add(new ColumnConstraints()); //column 6
grid.getColumnConstraints().add(new ColumnConstraints()); //column 7
grid.getColumnConstraints().add(new ColumnConstraints()); //column 8
grid.setVgap(10);
grid.setHgap(5);
grid.setPadding(new Insets(20,20,20,20));
grid.setGridLinesVisible(false);
Button btnDownload = new Button("Download next");
Label lblDownloadNext = new Label("next …
Run Code Online (Sandbox Code Playgroud) 我有一个相当简单的JavaFX GUI应用程序,它有一个标签,显示在某个操作开始之前剩余的时间.为此,我创建了一个DownloadTimer类,如下所示:
public class DownloadTimer(){
private int minutes;
private int seconds;
private Timer innerTimer = new Timer();
private TimerTask innerTask;
private boolean isActive;
public DownloadTimer(int minutes, int seconds) {
if (seconds > 60) {
int minToAdd = seconds / 60;
this.minutes = minutes;
this.minutes += minToAdd;
this.seconds = seconds % 60;
} else {
this.minutes = minutes;
this.seconds = seconds;
}
}
public void start() {
innerTask = new TimerTask() {
@Override
public void run() {
isActive = …
Run Code Online (Sandbox Code Playgroud)