我想Node
通过改变它的风格类来改变风格.
Button button = new Button();
button.getStyleClass().add("class1")
button.setOnMouseClicked(new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent mouseEvent) {
button.getStyleClass().add("class2");
}
});
Run Code Online (Sandbox Code Playgroud)
是否有可能逐渐改变风格,使之成为过渡?
我有一个巨大的XML(~2GB),我需要添加新元素并修改旧元素.例如,我有:
<books>
<book>....</book>
...
<book>....</book>
</books>
Run Code Online (Sandbox Code Playgroud)
并希望得到:
<books>
<book>
<index></index>
....
</book>
...
<book>
<index></index>
....
</book>
</books>
Run Code Online (Sandbox Code Playgroud)
我使用了以下代码:
XMLInputFactory inFactory = XMLInputFactory.newInstance();
XMLEventReader eventReader = inFactory.createXMLEventReader(new FileInputStream(file));
XMLOutputFactory factory = XMLOutputFactory.newInstance();
XMLStreamWriter writer = factory.createXMLStreamWriter(new FileWriter(file, true));
while (eventReader.hasNext()) {
XMLEvent event = eventReader.nextEvent();
if (event.getEventType() == XMLEvent.START_ELEMENT) {
if (event.asStartElement().getName().toString().equalsIgnoreCase("book")) {
writer.writeStartElement("index");
writer.writeEndElement();
}
}
}
writer.close();
Run Code Online (Sandbox Code Playgroud)
但结果如下:
<books>
<book>....</book>
....
<book>....</book>
</books><index></index>
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
由于JavaFX 8中的新功能,可以将3D对象与2D UI控件组合在一起.
我将这些文档用作手册:JavaFX教程,探索JavaFX 3D.
所以,我做了这个代码:
public class CastAnalytics extends Application {
final Group root = new Group();
final Group axisGroup = new Group();
final XForm world = new XForm();
final PerspectiveCamera camera = new PerspectiveCamera(true);
final PerspectiveCamera subSceneCamera = new PerspectiveCamera(false);
final XForm cameraXForm = new XForm();
final XForm cameraXForm2 = new XForm();
final XForm cameraXForm3 = new XForm();
final double cameraDistance = 450;
final XForm moleculeGroup = new XForm();
private Timeline timeline;
boolean timelinePlaying …
Run Code Online (Sandbox Code Playgroud) 也许这个问题非常简单并且被问过很多次,但是,尽管我搜索了很多,但我找不到构建Qt的逐步说明.所有这些都是Qt4或包含一些错误.我需要64位版本的Qt for Windows 7.如何才能完成?
如何定义我自己的具有特定精度和指数和有效数位的浮点格式(类型)?例如,具有 20 位指数和 107 位有效数(非标准 15/112 位)的 128 位浮点数,或具有 19/236 位指数/有效数的 256 位浮点数。
我想创建一个新的JavaFX组件并在FXML中使用它.如何定义此组件的使用可能性和子类型?有没有办法为这个组件创建我自己的atrributes?例如,这就是我想要的:
<MyNewComponent specificAttribute="...">
<children>
<SpecificChildren></SpecificChildren>
</children>
</MyNewComponent>
Run Code Online (Sandbox Code Playgroud) 我尝试使用官方教程在JavaFX应用程序中创建一个平面,并具有下一个代码:
Image diifuseMap = new Image(getClass().getResource("t.jpg").toExternalForm());
TriangleMesh planeMesh = new TriangleMesh();
float[] points = {
-5, 5, 0,
-5, -5, 0,
5, 5, 0,
5, -5, 0
};
float[] texCoords = {
0, 0,
0, 1,
1, 0,
1, 1
};
int[] faces = {
0, 0, 1, 1, 2, 2,
2, 2, 3, 3, 1, 1
};
planeMesh.getPoints().addAll(points);
planeMesh.getTexCoords().addAll(texCoords);
planeMesh.getFaces().addAll(faces);
MeshView meshView = new MeshView(planeMesh);
meshView.setMaterial(new PhongMaterial(Color.BLACK, diifuseMap, null, null, null));
Group3D plane = new Group3D(new MeshView(planeMesh));
Run Code Online (Sandbox Code Playgroud)
但不幸的是,现场没有任何东西出现.任何人都可以解释如何在JavaFX中创建自己的3D模型吗?是否可以创建没有纹理(我想要线框模型)?
我想在JavaFX 8应用程序中创建一个模型,它将有大约400000个多边形.而且我不需要任何纹理,只需要简单的颜色.通常有必要这样的东西:
float[] points = {
-5, 5, 0,
-5, -5, 0,
5, 5, 0,
5, -5, 0
};
float[] texCoords = {
1, 1,
1, 0,
0, 1,
0, 0
};
int[] faces = {
2, 2, 1, 1, 0, 0,
2, 2, 3, 3, 1, 1
};
TriangleMesh mesh = new TriangleMesh();
mesh.getPoints().setAll(points);
mesh.getTexCoords().setAll(texCoords);
mesh.getFaces().setAll(faces);
Run Code Online (Sandbox Code Playgroud)
如果我使用没有texCoords
和faces
数组的代码,它肯定不起作用.那么有可能创建没有纹理的3D模型吗?
我有类STLFile,它返回两个数组:一个坐标为法线,另一个坐标为坐标.所以现在我想在我的JavaFX应用程序中使用这些坐标创建3d形状.问题是如何在没有纹理的情况下做到这一点.使用官方指南我用坐标制作了TriangleMesh并将其添加到MeshView.但不幸的是,现场没有任何东西出现.所以有人可以解释我怎么做,因为官方指南中的描述不能称之为足够吗?
当使用TabPane并在侧面放置标签时,标签的标题和字符串会旋转并具有垂直方向.当使用TabPane和右/左侧标签时,有没有办法水平放置标签的字符串?
我已经创建了一个Java/JavaFX控制台,现在我面临一个例外:Console reports an Internal error.The error is: java.lang.IllegalStateException: Not on FX application thread; currentThread = Thread-5
.控制台的代码:
package core.console;
import javafx.concurrent.Service;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.scene.control.TextArea;
import javafx.stage.Stage;
import java.io.*;
import java.util.ResourceBundle;
public class Console implements Runnable{
private Console(ResourceBundle resourceBundle) throws IOException {
FXMLLoader loader = new FXMLLoader(this.getClass().getResource("Console.fxml"), resourceBundle);
Parent root = (Parent) loader.load();
controller = loader.getController();
Scene scene = new Scene(root);
stage = new Stage();
stage.setScene(scene);
textArea = controller.getTextArea();
show();
PipedOutputStream pout=new PipedOutputStream(this.pin);
System.setOut(new PrintStream(pout,true)); …
Run Code Online (Sandbox Code Playgroud) 我想围绕一个自定义枢轴旋转一个对象,这是它的重点,所以我有这样的代码:
private final EventHandler<MouseEvent> mouseEventHandler = new EventHandler<MouseEvent>() {
@Override
public void handle(MouseEvent mouseEvent) {
if (mouseEvent.getEventType() == MouseEvent.MOUSE_PRESSED) {
dragStartX = mouseEvent.getSceneX();
dragStartY = mouseEvent.getSceneY();
mousePosX = mouseEvent.getSceneX();
mousePosY = mouseEvent.getSceneY();
mouseOldX = mouseEvent.getSceneX();
mouseOldY = mouseEvent.getSceneY();
if (mouseEvent.isMiddleButtonDown()) {
pivot = mouseEvent.getPickResult().getIntersectedPoint();
camForm1.rx.setPivotX(pivot.getX());
camForm1.ry.setPivotY(pivot.getY());
camForm1.rz.setPivotZ(pivot.getZ());
System.out.println(pivot);
}
} else if (mouseEvent.getEventType() == MouseEvent.MOUSE_DRAGGED) {
double modifier = 1.0;
double modifierFactor = 0.3;
if (mouseEvent.isControlDown()) {
modifier = 0.1;
}
if (mouseEvent.isShiftDown()) {
modifier = 10.0;
}
mouseOldX = …
Run Code Online (Sandbox Code Playgroud)