标签: javafx-2

如何遍历整个场景图层次结构?

我想编写一个方法,将整个场景图(包括节点的名称和与节点关联的css属性)打印到控制台.这将使得能够查看场景图的层次结构以及与每个元素相关联的所有css属性.我尝试这样做(请参阅下面的scala代码),但我的尝试失败了.

我正在测试它的场景图包含我按照本教程制作的自定义控制器.它不打印自定义控制器中包含的任何嵌套控件.自定义控制器在舞台上显示正常(并且它正常运行)所以我知道所有必需的控件都是场景图的一部分,但由于某种原因,示例代码不会递归到自定义控制器中.它会打印自定义控制器的名称,但不会打印控制器内的嵌套元素.

object JavaFXUtils {

  def printNodeHierarchy(node: Node): Unit = {
    val builder = new StringBuilder()
    traverse(0, node, builder)
    println(builder)
  }

  private def traverse(depth: Int, node: Node, builder: StringBuilder) {
    val tab = getTab(depth)
    builder.append(tab)
    startTag(node, builder)
    middleTag(depth, node, builder)
    node match {
      case parent: Parent => builder.append(tab)
      case _ =>
    }
    endTag(node, builder)
  }

  private def getTab(depth: Int): String = {
    val builder = new StringBuilder("\n")
    for(i <- 0 until depth) {
      builder.append("   ")
    }
    builder.toString()
  } …
Run Code Online (Sandbox Code Playgroud)

javafx javafx-2

1
推荐指数
1
解决办法
2923
查看次数

如何在JavaFX TableView中点击像JTable一样获得第一列值?

我希望得到第一列值,因为我们可以使用swing在Jtable中实现.下面是我的jtable代码和图片.

String Table_Clicked = jTable1.getModel().getValueAt(row, 0).toString();
Run Code Online (Sandbox Code Playgroud)

JTable中

正如您在图像中看到的那样,当我单击" 名称"列值8时,它会给出第一个列值,如8.但我选择名称列

那么如何使用TableView Componenet在JavaFX中实现这一点.

我从TableView中获取所选的值,如下图所示,其中包含代码.

   tableview.getSelectionModel().selectedItemProperty().addListener(new ChangeListener() {
        @Override
        public void changed(ObservableValue observableValue, Object oldValue, Object newValue) {
         if(tableview.getSelectionModel().getSelectedItem() != null) 
            {  
                TableViewSelectionModel selectionModel = tableview.getSelectionModel();
                ObservableList selectedCells = selectionModel.getSelectedCells();
                TablePosition tablePosition = (TablePosition) selectedCells.get(0);
                Object val = tablePosition.getTableColumn().getCellData(newValue);
                System.out.println("Selected value IS :" + val);
            }

         }
     });
Run Code Online (Sandbox Code Playgroud)

TableView的JavaFX

所以我想在tableview中获得相同的第一列数据,因为我们可以在Jtable中获得?所以如何获得NO值...因为使用我的上面的代码我得到选定的Cell的值,这是在控制台中的八个打印..但我想获得第一列值..帮助我彻底前进.

谢谢..

更新TABLEVIEW的数据填充代码

   PreparedStatement psd = (PreparedStatement) conn.prepareStatement("SELECT No,name FROM FieldMaster");
    psd.execute();
    ResultSet rs …
Run Code Online (Sandbox Code Playgroud)

java swing javafx tableview javafx-2

1
推荐指数
1
解决办法
8135
查看次数

如何通过JavaFX而不是FXML CSS修改MenuButton箭头颜色?

我正在尝试MenuButton使用JavaFX而不是通过代码修改箭头的颜色CSS

我在里面找到它caspian.css

.menu-button > .arrow-button > .arrow {
    -fx-background-insets: 1 0 -1 0, 0;
    -fx-background-color: -fx-mark-highlight-color, -fx-mark-color;
    -fx-padding: 0.25em; /* 3 */
    -fx-shape: "M 0 -3.5 v 7 l 4 -3.5 z";
}
Run Code Online (Sandbox Code Playgroud)

我试图使用类似的东西:

menubutton.lookup(".arrow");
Run Code Online (Sandbox Code Playgroud)

但它抛出 NullPointerException

当我这样做时:

System.out.println(this.getStyleClass().toString());

它仅表明:menu-button仅。

所以任何人都可以给我一种无需使用CSS即可使用Java对其进行修改的方法吗?

java javafx javafx-2 fxml javafx-8

1
推荐指数
1
解决办法
2999
查看次数

来自Custom类的fireEvent

我有以下类ProtokollEvent

public class ProtokollEvent extends Event {

//variable holds all devices in given protokoll
private ObservableList<Device> devicesList;

//variable holds SaveResult
private SaveResult result;

//final ProtokollEvents
public static final EventType<ProtokollEvent> PROTOKOLL_SAVE = new EventType(ANY, "PROTOKOLL_SAVE");
public static final EventType<ProtokollEvent> PROTOKOLL_SAVE_DONE = new EventType(ANY, "PROTOKOLL_SAVE_DONE");
public static final EventType<ProtokollEvent> PROTOKOLL_UPDATED = new EventType(ANY, "PROTOKOLL_UPDATED");
public static final EventType<ProtokollEvent> PROTOKOLL_DELETED = new EventType(ANY, "PROTOKOLL_DELETED");

public ProtokollEvent() {
    this(PROTOKOLL_SAVE);
}

public ProtokollEvent(EventType<? extends Event> arg0) {
    super(arg0);
}

public ProtokollEvent(Object arg0, EventTarget arg1, EventType<? …
Run Code Online (Sandbox Code Playgroud)

java javafx javafx-2 javafx-8

1
推荐指数
1
解决办法
7277
查看次数

除了java fx中的小动画时间轴之外还有其他解决方案吗?

我是javafx的初学者.我需要使用小动画这么多.有没有办法创建除时间轴之外的小动画?谢谢

java javafx javafx-2 scenebuilder javafx-8

1
推荐指数
1
解决办法
180
查看次数

无论如何以编程方式在javafx中最小化一个阶段

问题非常简单,在javafx 2.2中的一个阶段,其中最大化不是一个选项(通过从菜单栏中取消控制)但是需要允许最小化,是否可以在代码中取消最小化舞台?

我尝试过的东西(我可以访问静态阶段):

stage.show();
stage.requestFocus();
stage.toFront();
stage.getScene().getWindow().requestFocus();
Run Code Online (Sandbox Code Playgroud)

Platform.runLater(new Runnable(){public void run(){
stage.show(); stage.requestFocus(); stage.toFront(); stage.getScene().getWindow().requestFocus();}}) ;

没有任何影响.我尝试使用Google搜索,并且只提出了解决方案,因此首先不允许用户最小化,这对我来说真的不是一个选择.

无论如何,如果有人有一个聪明的主意,我会全力以赴.该程序使用了一些带有c的jni,所以本机调用并不是不可能的,但我会认为这真的是最后的手段.

值得注意的是,这是在javafx 2.2 jdk 7_bu52 Windows 7 64位上

windows javafx-2

1
推荐指数
1
解决办法
1096
查看次数

从GridPane中选择文本

我有一个非常简单的GridPane示例.

    GridPane playerGrid = new GridPane();

    Text title = new Text("Top Scorers in English Premier League");
    title.setFont(Font.font("Arial", FontWeight.BOLD, 20));
    playerGrid.add(title, 0,0,4,1);
Run Code Online (Sandbox Code Playgroud)

如何用鼠标选择文本并在程序运行时复制它?

javafx javafx-2 javafx-8

1
推荐指数
1
解决办法
1197
查看次数

JavaFX - 控件数组

我想创建一个JavaFX控制器数组,以便更容易使用它们,例如,您可以在GridPane中循环添加/设置元素.

但是,尽管编译器/ IDE没有显示任何错误,但下面的代码不起作用:

public GridPane drawPane(){
    GridPane grid = new GridPane();
    Button[] btn = new Button[10];
    grid.add(btn[0], 0,0);
    return grid;
}
Run Code Online (Sandbox Code Playgroud)

但是这个确实有效:

public GridPane drawPane(){
    GridPane grid = new GridPane();
    Button btn = new Button();
    grid.add(btn, 0,0);
    return grid;
}
Run Code Online (Sandbox Code Playgroud)

我是否错误地控制了控制器?为什么此代码不适用于数组?

java arrays oop javafx javafx-2

1
推荐指数
2
解决办法
1万
查看次数

Vertical ProgressBar JavaFX

我有一个StackPane,大小为(15px宽,400px高).我想对StackPane进行"垂直ProgressBar".我正在做的是将进度条旋转90度.但是,progressBar无法适应具有该旋转的堆栈窗格.它只是在StackPane中心显示为一个小的平方进度条.

我该如何解决这个问题?

javafx-2 progress-bar

1
推荐指数
1
解决办法
2621
查看次数

javafx按代码点击按钮

我想点击一个功能按钮.

我知道这在我们使用的java应用程序中是可行的

jButton1.doClick();
Run Code Online (Sandbox Code Playgroud)

在javafx中有没有做同样的工作

请帮我

谢谢.

java javafx javafx-2 javafx-8

1
推荐指数
1
解决办法
1377
查看次数

标签 统计

javafx-2 ×10

javafx ×8

java ×6

javafx-8 ×5

arrays ×1

fxml ×1

oop ×1

progress-bar ×1

scenebuilder ×1

swing ×1

tableview ×1

windows ×1