小编Ada*_*dam的帖子

OpenOffice writer - 使用单元格公式以编程方式更新表格

当单元格值是书签并且书签以编程方式更新(通过 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)

java openoffice-writer uno

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

创建仅包含字符串的ArrayList.使用增强的for循环打印

所以这是我的计划:

创建一个只包含字符串的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)

我想我在添加和删除方面遇到了问题.我相信其他一切都应该没问题.

java string for-loop arraylist

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

Hibernate和oracle问题时间戳和夏令时

我正在尝试使用定义将数据添加到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()的循环中,但我将它隔离到这两个调用. …

timezone hibernate jpa

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

是否可以使用 thead 和 tbody 制作带有顶部和左侧标题的表格?

我希望在 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)

这是否可能,或者只能用于顶部或侧面的标题,但不能同时用于两者。我在网上找不到这个问题的任何例子,也许我正在寻找错误的东西。

html

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

如何访问附加控制器的相应节点

对于给定的控制器,无论如何都有内置的方式访问控制器"附加"的节点,而不必给它一个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)

javafx javafx-8

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

具有透明内容的 SwingNode

我正在尝试将 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)

java swing javafx javafx-8

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

Java中字节数组的位移操作

如何将字节数组n位置向右移位?例如,将一个16字节数组右移29个位置?我在某个地方看过它可以用很长的时间来完成吗?会使用这样的长期工作:

长k1 =从0到7的字节数组

长k2 =从8到15的字节数组

然后使用Long.rotateRight(长x,旋转次数)右旋这两个long.如何将两个long连接回一个字节数组?

java bit-manipulation

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

在Eclipse中生成Java Bean setter

我在我工作的一些项目中使用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中一个更强大的模板插件,可以解决这个问题和其他问题.

java eclipse javabeans

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

Eclipse Oxygen 中对 JavaFX 类的访问限制

我在 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

我可以通过两种不同的方式解决这个问题

  • 将首选项 -> Java -> 编译器 -> 错误和警告 -> 弃用和受限 API -> 禁止引用(访问规则)更改为不是错误。
  • 通过 Properties -> Java Build Path -> JRE System Library -> Edit 手动将系统库从“JavaSE-1.8”更改为“Workspace default JRE”

这两种方法都不理想,因为我有大量 Eclipse 项目要调整,并且希望禁用的引用检查保持启用状态以捕获真正的错误。

请注意,通过 Eclipse 中包含的标准 Gradle …

java eclipse gradle buildship eclipse-oxygen

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

如果舞台设置了 minWidth/minHeight,JavaFX 场景不会调整大小以填充舞台

我需要在给定窗口上设置最小宽度和最小高度。

我发现如果我这样做,那么当窗口首次显示时,场景不会填充父级。如果您手动拉伸窗口,它会正确重新绘制。

仅当 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)

javafx javafx-8

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