我想编写一个方法,将整个场景图(包括节点的名称和与节点关联的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) 我希望得到第一列值,因为我们可以使用swing在Jtable中实现.下面是我的jtable代码和图片.
String Table_Clicked = jTable1.getModel().getValueAt(row, 0).toString();
Run Code Online (Sandbox Code Playgroud)

正如您在图像中看到的那样,当我单击" 名称"列值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中获得相同的第一列数据,因为我们可以在Jtable中获得?所以如何获得NO值...因为使用我的上面的代码我得到选定的Cell的值,这是在控制台中的八个打印..但我想获得第一列值..帮助我彻底前进.
谢谢..
更新TABLEVIEW的数据填充代码
PreparedStatement psd = (PreparedStatement) conn.prepareStatement("SELECT No,name FROM FieldMaster");
psd.execute();
ResultSet rs …Run Code Online (Sandbox Code Playgroud) 我正在尝试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对其进行修改的方法吗?
我有以下类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) 我是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位上
我有一个非常简单的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控制器数组,以便更容易使用它们,例如,您可以在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)
我是否错误地控制了控制器?为什么此代码不适用于数组?
我有一个StackPane,大小为(15px宽,400px高).我想对StackPane进行"垂直ProgressBar".我正在做的是将进度条旋转90度.但是,progressBar无法适应具有该旋转的堆栈窗格.它只是在StackPane中心显示为一个小的平方进度条.
我该如何解决这个问题?
我想点击一个功能按钮.
我知道这在我们使用的java应用程序中是可行的
jButton1.doClick();
Run Code Online (Sandbox Code Playgroud)
在javafx中有没有做同样的工作
请帮我
谢谢.