当单元格值是书签并且书签以编程方式更新(通过 Java 中的 UNO 调用)时,我真的很难找出如何强制以编程方式刷新 openoffice writer (3.3) 单元格计算。
例子
| start | stop | duration |
| 9:30 | 11:30 | = <A2>-<B2> | <= cell formula
Run Code Online (Sandbox Code Playgroud)
当用户手动编辑表格时,这很好用,当他们移动到下一个单元格时,值会更新。但是,如果我通过将文本插入单元格中的书签以编程方式更新值,则计算出的单元格不会更新。如果您单击表格,它们会更新,但我希望这是自动的。
书签像这样在表格中。
| start | stop | duration |
| <start0> | <stop0> | = <A2>-<B2> |
Run Code Online (Sandbox Code Playgroud)
更新书签的示例代码:
XBookmarksSupplier xBookmarksSupplier = (XBookmarksSupplier) UnoRuntime.queryInterface(XBookmarksSupplier.class, document);
XNameAccess xNamedBookmarks = xBookmarksSupplier.getBookmarks();
Object bookmark = xNamedBookmarks.getByName("stop0");
XTextContent xBookmarkContent = (XTextContent) UnoRuntime.queryInterface(XTextContent.class, bookmark);
xBookmarkContent.getAnchor().setString("11:30");
// code needed to force calculation of duration cell
Run Code Online (Sandbox Code Playgroud) 所以这是我的计划:
创建一个只包含字符串的ArrayList按顺序将以下内容添加到列表中
使用增强的for循环打印列表在Mahendra前面插入Harry,然后在John然后从列表中删除位置4
这是我写的:
import java.util.ArrayList;
import java.util.Scanner;
public class Name {
public static void main(String[] args) {
ArrayList<String> names = new ArrayList<String>();
Scanner input = new Scanner(System.in);
names.add(input.nextLine());
names.add(input.nextLine());
names.add(input.nextLine());
names.add(input.nextLine());
names.add(input.nextLine());
names.add(input.nextLine());
names.add(input.nextLine());
for (String n : names) {
System.out.println(n);
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想我在添加和删除方面遇到了问题.我相信其他一切都应该没问题.
我正在尝试使用定义将数据添加到oracle 11g数据库中的表.
CREATE TABLE FOO_TIME_TEST
(ID NUMBER(20) NOT NULL, TIME TIMESTAMP(6),
CONSTRAINT FOO_TIME_TEST_PK PRIMARY KEY (ID) USING INDEX);
CREATE UNIQUE INDEX "foo_time_test_idx" ON "FOO_TIME_TEST" (TIME)
Run Code Online (Sandbox Code Playgroud)
使用Joda时间的Hibernate/JPA映射具有以下内容
@Type(type = "com.foo.PersistentDateTime")
@Column(name = "TIME")
public DateTime getTime() {
return time;
}
Run Code Online (Sandbox Code Playgroud)
映射类PersistentDateTime相关位
public void nullSafeSet(PreparedStatement preparedStatement, Object value, int index) throws SQLException {
if (value == null) {
Hibernate.TIMESTAMP.nullSafeSet(preparedStatement, null, index);
} else {
Hibernate.TIMESTAMP.nullSafeSet(preparedStatement, ((DateTime) value).toDate(), index);
}
}
public int[] sqlTypes() {
return new int[] { Types.TIMESTAMP, };
}
Run Code Online (Sandbox Code Playgroud)
并且要编写的代码是这样的,它是在使用plusTime()的循环中,但我将它隔离到这两个调用. …
我希望在 HTML 表格中布局二维数据,例如
Cow Horse
Big 1 3
Small 5 7
Run Code Online (Sandbox Code Playgroud)
我可以通过以下标记轻松实现这一点。
<table>
<tr><th></th><th>Cow</th><th>Horse</th></tr>
<tr><th>Big</th><td>1</td><td>3</td></tr>
<tr><th>Small</th><td>5</td><td>7</td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)
但是,我一直想知道 tbody 和 thead 标签是否可以实现这一点?
我已经尝试过这个,但数据只出现在标题下方,这是我所期望的,但不想要。
<table>
<thead>
<tr><th></th><th>Cow</th><th>Horse</th></tr>
<tr><th>Big</th><th></th><th></th></tr>
<tr><th>Small</th><th></th><th></th></tr>
</thead>
<tbody>
<tr><td></td><td>1</td><td>3</td></tr>
<tr><td></td><td>5</td><td>7</td></tr>
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
结果
Cow Horse
Big
Small
1 3
5 7
Run Code Online (Sandbox Code Playgroud)
这是否可能,或者只能用于顶部或侧面的标题,但不能同时用于两者。我在网上找不到这个问题的任何例子,也许我正在寻找错误的东西。
对于给定的控制器,无论如何都有内置的方式访问控制器"附加"的节点,而不必给它一个FXML ID和特定的注释?我在官方文档中找不到与此相关的任何内容或在线搜索.
例如,如何从org.example.FooController访问HBox
<HBox xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="org.example.FooController">
<children>
<Button mnemonicParsing="false" text="Button" />
</children>
</HBox>
Run Code Online (Sandbox Code Playgroud)
现在我只是给节点一个FXML ID为"root",然后在我的控制器中使用以下内容,但感觉我错过了一个技巧......
@FXML
private Node root
Run Code Online (Sandbox Code Playgroud) 我正在尝试将 Swing 内容嵌入到更大的 JavaFX 应用程序中,但是我无法让嵌入的 JPanel 具有透明背景。JPanel 仅绘制其部分区域。我希望绿色“显示出来”,即删除下图中的浅灰色背景。

public class TransparentSwingNode extends Application {
@Override
public void start(Stage stage) {
BorderPane pane = new BorderPane();
pane.setStyle("-fx-background-color: green");
final SwingNode swingNode = new SwingNode();
BorderPane.setMargin(swingNode, new Insets(20));
createAndSetSwingContent(swingNode);
pane.setCenter(swingNode);
// swingNode.setStyle("-fx-background-color: transparent"); // doesn't work
stage.setScene(new Scene(pane, 240, 240));
stage.show();
}
private void createAndSetSwingContent(final SwingNode swingNode) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JPanel panel = new DummyPanel();
panel.setOpaque(false);
// panel.setBackground(null); // doesn't work
// panel.setBackground(new Color(0, 0, 0, …Run Code Online (Sandbox Code Playgroud) 如何将字节数组n位置向右移位?例如,将一个16字节数组右移29个位置?我在某个地方看过它可以用很长的时间来完成吗?会使用这样的长期工作:
长k1 =从0到7的字节数组
长k2 =从8到15的字节数组
然后使用Long.rotateRight(长x,旋转次数)右旋这两个long.如何将两个long连接回一个字节数组?
我在我工作的一些项目中使用Java bean,这意味着很多像这样的手工样板代码.
我正在使用Eclipse插件,或者是一种配置Eclipse代码模板的方法,允许开发人员从简单的骨架类生成setter,其方式与"Generate Getters and Setters"对POJO类似.
输入
public class MyBean {
private String value;
}
Run Code Online (Sandbox Code Playgroud)
预期产出
public class MyBean {
private final PropertyChangeSupport pcs = new PropertyChangeSupport(this);
private String value;
public String getValue() {
return this.value;
}
public void setValue(String newValue) {
String oldValue = this.value;
this.value = newValue;
this.pcs.firePropertyChange("value", oldValue, newValue);
}
[...]
}
Run Code Online (Sandbox Code Playgroud)
我知道项目Lombok,但我更喜欢坚持纯Java/Eclipse方法.
我正在考虑为此自己编写一个Eclipse插件,真正有用的是Eclipse中一个更强大的模板插件,可以解决这个问题和其他问题.
我在 Ubuntu 17.04 和 Oracle JDK 8u144 中使用 Eclipse Oxygen 4.7.0。
任何在包中引用 JavaFX 类的代码javafx.*,例如javafx.application.Application(错误地)报告为错误
Access restriction: The type 'ScrollPane' is not API (restriction on required library '/opt/jdk1.8.0_144/jre/lib/ext/jfxrt.jar')
Run Code Online (Sandbox Code Playgroud)
这似乎与“Java 系统库”JavaSE-1.8 有关。在jfxrt.jar有“访问规则”,你可以在属性窗口- > Java构建路径,这些只允许使用javax / ,JAVA /,org.w3c *等,其中没有一个即使在是jfxrt.jar。
我可以通过两种不同的方式解决这个问题
这两种方法都不理想,因为我有大量 Eclipse 项目要调整,并且希望禁用的引用检查保持启用状态以捕获真正的错误。
请注意,通过 Eclipse 中包含的标准 Gradle …
我需要在给定窗口上设置最小宽度和最小高度。
我发现如果我这样做,那么当窗口首次显示时,场景不会填充父级。如果您手动拉伸窗口,它会正确重新绘制。
仅当 minWidth = width 并且 minHeight = height 时才会出现这种情况。在所有其他情况下,它都会按预期调整大小(例如 minWidth = width -1)。
此外,这种情况似乎只发生在 Linux 上,特别是 Red Hat 6 上,并且只发生在 Java 8 上。我找不到任何关于此行为的现有错误报告。
我正在寻找解决此问题的方法。这是一个遗留项目,不幸的是无法更新 Java。
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;
public class SceneDoesntFillStage extends Application {
public static void main(String\[\] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
primaryStage.setMinWidth(300);
primaryStage.setWidth(300);
primaryStage.setMinHeight(200);
primaryStage.setHeight(200);
HBox root = new HBox() {
protected void layoutChildren() {
super.layoutChildren();
System.out.println("Layout");
}
};
root.setStyle("-fx-background-color:red");
root.setPrefWidth(250);
root.setPrefHeight(150);
primaryStage.setScene(new Scene(root)); …Run Code Online (Sandbox Code Playgroud)