2012-09-09

トレンドチャートのサンプル

JavaFX でグラフのサンプルを作成しました。いろいろを試行錯誤しましたが、悔しいことに、まだ満足にチャートを駆使出来るまでには至っていません。とりあえず途中経過ということで、報告しておきます。使用環境は NetBeans IDE 7.2 on Fedora 17 (Linux) + Java SDK 7u7 です。
Sample_TrendGraph.java を以下に示します。
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sample_trendgraph;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.chart.LineChart;
import javafx.scene.chart.NumberAxis;
import javafx.scene.chart.ScatterChart;
import javafx.scene.chart.XYChart;
import javafx.scene.effect.DropShadow;
import javafx.scene.layout.StackPane;
import javafx.scene.paint.Color;
import javafx.stage.Stage;

/**
 *
 * @author bitwalk
 */
public class Sample_TrendGraph extends Application {

    @Override
    public void start(Stage primaryStage) {
        final NumberAxis xAxis = new NumberAxis(0, 100, 10);
        final NumberAxis yAxis = new NumberAxis(-1, 1, 0.1);
        final LineChart grp = new LineChart<>(xAxis, yAxis);

        grp.setCreateSymbols(true);     
        grp.setAlternativeRowFillVisible(false);
        grp.setPrefSize(600, 400);
        grp.setTitle("トレンドチャート");      

        xAxis.setLabel("時間軸");
        yAxis.setLabel("データ値");

        DropShadow shadow = new DropShadow();
        shadow.setOffsetX(2);
        shadow.setColor(Color.GREY);
        grp.setEffect(shadow);

        final XYChart.Series series1 = new XYChart.Series();
        series1.setName("系列1");
        for (int i = 0; i <= 100; i++) {
            series1.getData().add(
                    new ScatterChart.Data(i, (Math.random() - 0.5) * 1.6));
        }
        grp.getData().addAll(series1);

        StackPane root = new StackPane();
        root.getChildren().add(grp);
        Scene scene = new Scene(root);
        scene.getStylesheets().add(Sample_TrendGraph.class.getResource("Chart.css").toExternalForm());

        primaryStage.setTitle("トレンドチャート");
        primaryStage.setScene(scene);
        primaryStage.show();

    }

    /**
     * The main() method is ignored in correctly deployed JavaFX application.
     * main() serves only as fallback in case the application can not be
     * launched through deployment artifacts, e.g., in IDEs with limited FX
     * support. NetBeans ignores main().
     *
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        launch(args);
    }
}
Chart.css を以下に示します。
.chart-series-line {
    -fx-stroke-width: 1px;
    -fx-effect: null;
}

.chart-plot-background {
    -fx-background-color: #E0FFFF;
}
.chart-vertical-grid-lines {
    -fx-stroke: #0000C0;
}
.chart-horizontal-grid-lines {
    -fx-stroke: #0000C0;
}

.default-color0.chart-series-line {
    -fx-stroke: #800000;
}

.default-color0.chart-line-symbol {
    -fx-background-color: #800000, #C04000;
    -fx-background-radius: 0;
    -fx-background-insets: 1px;
    -fx-shape: "M2,2 L2,-2 -2,-2 -2,2 Z";
}

実行例を以下に示しました。

2012-09-02

Change to Java SE 7 and Java SE 6 Update Release Numbers

On August 30, 2012, Oracle released an out-of-schedule Security Alert remediating security vulnerabilities affecting Java running in web browsers.

To date all Critical Patch Updates (CPUs) for Java 7 have been odd numbers (JDK 7 Update 1, i.e. 7u1, 7u3, 7u5, etc.), while limited update releases have been even numbers (7u2, 7u4, 7u6, etc.). Since the August 2012 Security Alert release required the use of version numbers originally planned for a later CPU, Oracle will increment the release number for all subsequent Java 7 and Java 6 releases by two numbers in order to continue having CPUs as odd numbers and limited updates as even numbers.

The next Java CPU release, scheduled for October 16, 2012, will be renamed to Java SE 7u9 and Java SE 6u37.

This increment in the update release number does not change the scheduled dates or content of any future releases.


次回の Java のアップデートは、2012 年 10 月 16 日 に予定され、アップデート番号は Java SE 7u9 と Java SE 6u37 になるそうです。現在の開発版は、これにより 7u8 から 7u10 にシフトしました。

アップデート番号が奇数の場合はセキュリティなどの重大なパッチをあてたリリース、偶数の場合は、部分的な機能などの更新、追加したリリースに使われます。

アンテナの張り方が悪いのか、今回も Java SE 7u7 のリリースを知るのが遅れてしまいました。JavaFX が 2.2.1 になっているし…。今回は深刻な脆弱性が見つかったことを受けた緊急リリースのようです。


引用サイト

[1] Java SE 7 and Java SE 6 Update Release Numbers Change
[2] Java™ SE Development Kit 7 Update 7 Release Notes
[3] Oracle Java Development Kit 7u7 Downloads
[4] ニュース - 米オラクル、Java 7の深刻な脆弱性を塞ぐアップデートを緊急リリース:ITpro