小编Dev*_*ter的帖子

Apache PDFBox:将最后一页移动到第一页

我正在用Apache PDFBox编写一个简单的Java应用程序.我有几个PDF,其中最后一页是前几页中内容的索引.

我需要索引(最后一页)成为PDF文件的第一页.

可能吗?

我还发现http://itextpdf.com/库听起来比Apache PDFBox好,但在这种情况下我不知道我是否可以做我需要的东西

或者也许我可以使用这个:http://saaspose.com/docs/display/pdf/How+to+Move+Page+within+a+Pdf+Document+%28Java+SDK%29

java apache pdf

4
推荐指数
2
解决办法
4521
查看次数

如何复制文件并将完整路径粘贴到JTextField

在Java中是否可以从操作系统中复制文件并将其粘贴JTextField到复制文件的完整路径中?

例如,我的桌面上有文件"text.txt".

所以我复制它 RightClick -> Copy

JFrame我的Java应用程序中,我专注于a JTextField和我用来CTRL+V 粘贴.然后应用程序应该将复制文件的完整路径粘贴到JTextField

java swing absolute-path jtextfield java-7

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

Nimbus L&F - 改变进度条的背景颜色

我正在使用Netbeans Editor使用Java开发一个小的GUI应用程序.我在JFrame中添加了一个简单的进度条.我正在用JDK7开发这个项目

我想将背景颜色从默认橙色更改为个人颜色.我已经尝试了颜色变化的所有属性但是当我运行程序时颜色仍然相同.

我已经尝试过使用ProgressBar1.setBackground(new java.awt.Color(0,204,255));

UIManager.put("ProgressBar.background", Color.YELLOW);
UIManager.put("ProgressBar.foreground", Color.MAGENTA);
UIManager.put("ProgressBar.selectionBackground", Color.red);
UIManager.put("ProgressBar.selectionForeground", Color.green);
Run Code Online (Sandbox Code Playgroud)

相同的结果.....背景总是橙色

这是我的测试项目的代码

public class Frame extends javax.swing.JFrame
{

    public Frame()
    {
        initComponents();
    }

    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() {

        jProgressBar1 = new javax.swing.JProgressBar();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

        jProgressBar1.setBackground(new java.awt.Color(0, 204, 255));
        jProgressBar1.setValue(75);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jProgressBar1, javax.swing.GroupLayout.DEFAULT_SIZE, 380, Short.MAX_VALUE)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jProgressBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 73, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>

    public static void …
Run Code Online (Sandbox Code Playgroud)

java swing colors jprogressbar nimbus

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

Java用特定字符周围(前后)的大写字母替换字符

我有这种意见

word w'ord wo'rd
Run Code Online (Sandbox Code Playgroud)

我需要在单词的开头和正确的'字符后面(可以多次存在)将两个字符转换为大写.

我需要的输出(使用前面的例子)是

word W'Ord Wo'Rd
Run Code Online (Sandbox Code Playgroud)

我尝试了一个简单的模式

s.replaceAll("(\\w)(\\w*)'(\\w)", "$1");
Run Code Online (Sandbox Code Playgroud)

但是我无法将第1组和第3组转换为大写


编辑:在我发现主要问题中的一个小错误后,我编辑了@Wiktor Stribizew代码,以便包括我错过的案例.

Matcher m = Pattern.compile("(\\w)(\\w*)'(\\w)").matcher(s);
StringBuffer result = new StringBuffer();
while (m.find()) {
    m.appendReplacement(result, m.group(1).toUpperCase() + m.group(2) + "'" + m.group(3).toUpperCase());
}
m.appendTail(result);
s = result.toString();
Run Code Online (Sandbox Code Playgroud)

java regex apostrophe uppercase

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

BigQuery:联合两个基于联合 Google 电子表格的不同表

我有两个不同的 Google 电子表格:

一个有 4 列

+------+------+------+------+
| Col1 | Col2 | Col5 | Col6 |
+------+------+------+------+
| ID1  | A    | B    | C    |
| ID2  | D    | E    | F    |
+------+------+------+------+
Run Code Online (Sandbox Code Playgroud)

一个包含前一个文件的 4 列和另外 2 列

+------+------+------+------+------+------+
| Col1 | Col2 | Col3 | Col4 | Col5 | Col6 |
+------+------+------+------+------+------+
| ID3  | G    | H    | J    | K    | L    |
| ID4  | M    | N    | O    | P    | …
Run Code Online (Sandbox Code Playgroud)

sql google-sheets google-bigquery bigquery-standard-sql

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

BigQuery:从json对象中提取键,将json从对象转换为键值数组

我有一个表,其中有一列包含 json 对象,值类型始终是字符串。

我需要两种信息:

  • json 键的列表
  • 将 json 转换为键值对数组

这是我到目前为止所得到的,正在发挥作用:

CREATE TEMP FUNCTION jsonObjectKeys(input STRING)
RETURNS Array<String>
LANGUAGE js AS """
  return Object.keys(JSON.parse(input));
""";

CREATE TEMP FUNCTION jsonToKeyValueArray(input STRING)
RETURNS Array<Struct<key String, value String>>
LANGUAGE js AS """
  let json = JSON.parse(input);
  return Object.keys(json).map(e => {
    return { "key" : e, "value" : json[e] }
  });
""";

WITH input AS (
  SELECT "{\"key1\": \"value1\", \"key2\": \"value2\"}" AS json_column
  UNION ALL
  SELECT "{\"key1\": \"value1\", \"key3\": \"value3\"}" AS json_column
  UNION ALL
  SELECT …
Run Code Online (Sandbox Code Playgroud)

arrays json google-bigquery

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

Google BigQuery:检索每一行的最后一个版本

我有一个包含所有版本资源的 Google BigQuery 表。每次创建/更新/删除资源时,都会添加新行并增加版本号(此数字将是添加行时的时间戳)

+-------+------------+--------+-------+-------------+
|  ID   | ResourceID | Action | Count |  Timestamp  |
+-------+------------+--------+-------+-------------+
| ABC_1 | ABC        | CREATE |    10 | {timestamp} |
| ABC_2 | ABC        | UPDATE |     8 | {timestamp} |
| ABC_3 | ABC        | UPDATE |     4 | {timestamp} |
| ABC_4 | ABC        | DELETE |     4 | {timestamp} |
| -     |            |        |       |             |
| DEF_1 | DEF        | CREATE |    10 | {timestamp} |
| …
Run Code Online (Sandbox Code Playgroud)

performance version google-bigquery

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

将 TIME 添加到 DATETIME 值

我可以从文档中看到,该文档DATETIME_ADD仅适用于INT64值,不适用于TIME对象。

我有一个DATETIME代表开始点,然后是TIME对象中的持续时间

WITH input AS (
  SELECT
    DATE(2018,03,05) AS start_date,
    TIME(5,0,0) AS start_time,
    TIME(8,0,0) AS duration
)

SELECT
  *,
  DATETIME(start_date,start_time) AS start_datetime,
  DATETIME_ADD(
      DATETIME_ADD(
        DATETIME_ADD(
          DATETIME(start_date,start_time), 
          INTERVAL EXTRACT(HOUR FROM duration) HOUR
        ),
        INTERVAL EXTRACT(MINUTE FROM duration) MINUTE
      ),
        INTERVAL EXTRACT(SECOND FROM duration) SECOND
    ) AS end_datetime

FROM input
Run Code Online (Sandbox Code Playgroud)

是否存在更好的方法将TIME对象的 3 个值(小时、分钟、秒)添加到给定DATETIME对象?

google-bigquery

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