diff --git a/dist/xchart-1.0.0.jar b/dist/xchart-1.0.0.jar
new file mode 100644
index 0000000000000000000000000000000000000000..975bb4a371b0e9f5d73755946336444a7e9f1b5d
Binary files /dev/null and b/dist/xchart-1.0.0.jar differ
diff --git a/src/com/xeiam/swing/ButtonDemo.java b/src/com/xeiam/swing/ButtonDemo.java
new file mode 100644
index 0000000000000000000000000000000000000000..a14854925695eaba312711338f4db5bc6ce3bc23
--- /dev/null
+++ b/src/com/xeiam/swing/ButtonDemo.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ *
+ *   - Redistributions of source code must retain the above copyright
+ *     notice, this list of conditions and the following disclaimer.
+ *
+ *   - Redistributions in binary form must reproduce the above copyright
+ *     notice, this list of conditions and the following disclaimer in the
+ *     documentation and/or other materials provided with the distribution.
+ *
+ *   - Neither the name of Oracle or the names of its
+ *     contributors may be used to endorse or promote products derived
+ *     from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+package com.xeiam.swing;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+
+import javax.swing.AbstractButton;
+import javax.swing.ImageIcon;
+import javax.swing.JButton;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+
+/* 
+ * ButtonDemo.java requires the following files:
+ *   images/right.gif
+ *   images/middle.gif
+ *   images/left.gif
+ */
+public class ButtonDemo extends JPanel implements ActionListener {
+    protected JButton b1, b2, b3;
+
+    public ButtonDemo() {
+        ImageIcon leftButtonIcon = createImageIcon("images/right.gif");
+        ImageIcon middleButtonIcon = createImageIcon("images/middle.gif");
+        ImageIcon rightButtonIcon = createImageIcon("images/left.gif");
+
+        b1 = new JButton("Disable middle button", leftButtonIcon);
+        b1.setVerticalTextPosition(AbstractButton.CENTER);
+        b1.setHorizontalTextPosition(AbstractButton.LEADING); // aka LEFT, for left-to-right locales
+        b1.setMnemonic(KeyEvent.VK_D);
+        b1.setActionCommand("disable");
+
+        b2 = new JButton("Middle button", middleButtonIcon);
+        b2.setVerticalTextPosition(AbstractButton.BOTTOM);
+        b2.setHorizontalTextPosition(AbstractButton.CENTER);
+        b2.setMnemonic(KeyEvent.VK_M);
+
+        b3 = new JButton("Enable middle button", rightButtonIcon);
+        // Use the default text position of CENTER, TRAILING (RIGHT).
+        b3.setMnemonic(KeyEvent.VK_E);
+        b3.setActionCommand("enable");
+        b3.setEnabled(false);
+
+        // Listen for actions on buttons 1 and 3.
+        b1.addActionListener(this);
+        b3.addActionListener(this);
+
+        b1.setToolTipText("Click this button to disable the middle button.");
+        b2.setToolTipText("This middle button does nothing when you click it.");
+        b3.setToolTipText("Click this button to enable the middle button.");
+
+        // Add Components to this container, using the default FlowLayout.
+        add(b1);
+        add(b2);
+        add(b3);
+    }
+
+    @Override
+    public void actionPerformed(ActionEvent e) {
+        if ("disable".equals(e.getActionCommand())) {
+            b2.setEnabled(false);
+            b1.setEnabled(false);
+            b3.setEnabled(true);
+        } else {
+            b2.setEnabled(true);
+            b1.setEnabled(true);
+            b3.setEnabled(false);
+        }
+    }
+
+    /** Returns an ImageIcon, or null if the path was invalid. */
+    protected static ImageIcon createImageIcon(String path) {
+        java.net.URL imgURL = ButtonDemo.class.getResource(path);
+        if (imgURL != null) {
+            return new ImageIcon(imgURL);
+        } else {
+            System.err.println("Couldn't find file: " + path);
+            return null;
+        }
+    }
+
+    /**
+     * Create the GUI and show it. For thread safety, this method should be invoked from the event-dispatching thread.
+     */
+    private static void createAndShowGUI() {
+
+        // Create and set up the window.
+        JFrame frame = new JFrame("ButtonDemo");
+        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+
+        // Create and set up the content pane.
+        ButtonDemo newContentPane = new ButtonDemo();
+        newContentPane.setOpaque(true); // content panes must be opaque
+        frame.setContentPane(newContentPane);
+
+        // Display the window.
+        frame.pack();
+        frame.setVisible(true);
+    }
+
+    public static void main(String[] args) {
+        // Schedule a job for the event-dispatching thread:
+        // creating and showing this application's GUI.
+        javax.swing.SwingUtilities.invokeLater(new Runnable() {
+            @Override
+            public void run() {
+                createAndShowGUI();
+            }
+        });
+    }
+}
diff --git a/src/com/xeiam/swing/SwingHelper.java b/src/com/xeiam/swing/SwingHelper.java
new file mode 100644
index 0000000000000000000000000000000000000000..8ec2783d969202b9d844d9ae1da22a1ece446f73
--- /dev/null
+++ b/src/com/xeiam/swing/SwingHelper.java
@@ -0,0 +1,55 @@
+package com.xeiam.swing;
+
+import javax.swing.BoxLayout;
+import javax.swing.JFrame;
+import javax.swing.JPanel;
+
+import com.xeiam.xcharts.Chart;
+import com.xeiam.xcharts.JChartPanel;
+
+public class SwingHelper {
+
+    Chart[] charts;
+
+    public SwingHelper(Chart chart) {
+        this.charts = new Chart[1];
+        charts[0] = chart;
+    }
+
+    public SwingHelper(Chart[] charts) {
+        this.charts = charts;
+    }
+
+    /**
+     * Create the GUI and show it. For thread safety, this method should be invoked from the event-dispatching thread.
+     */
+    private void createAndShowGUI() {
+
+        // Create and set up the window.
+        JFrame frame = new JFrame("XChart");
+        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+        frame.getContentPane().setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS));
+
+        for (int i = 0; i < charts.length; i++) {
+            JPanel chartPanel = new JChartPanel(charts[i]);
+            frame.getContentPane().add(chartPanel);
+        }
+
+        // frame.setContentPane(newContentPane);
+
+        // Display the window.
+        frame.pack();
+        frame.setVisible(true);
+    }
+
+    public void displayChart() {
+        // Schedule a job for the event-dispatching thread:
+        // creating and showing this application's GUI.
+        javax.swing.SwingUtilities.invokeLater(new Runnable() {
+            @Override
+            public void run() {
+                createAndShowGUI();
+            }
+        });
+    }
+}
diff --git a/src/com/xeiam/xcharts/example/HugeChart.java b/src/com/xeiam/xcharts/example/HugeChart.java
deleted file mode 100644
index 7858eecd6c8e113e91a619bfeaf32c3be89511fc..0000000000000000000000000000000000000000
--- a/src/com/xeiam/xcharts/example/HugeChart.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/**
- * Copyright 2011 Xeiam LLC.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package com.xeiam.xcharts.example;
-
-import java.awt.BorderLayout;
-
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-
-import com.xeiam.xcharts.Chart;
-import com.xeiam.xcharts.JChartPanel;
-import com.xeiam.xcharts.series.Series;
-
-/**
- * @author timmolter
- */
-public class HugeChart {
-
-    private static void createAndShowGUI() {
-
-        // Create and set up the window.
-        JFrame frame = new JFrame("XChart");
-        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-        frame.setUndecorated(true);
-
-        // Create Chart
-        Chart chart = new Chart(800, 600);
-
-        long t = System.currentTimeMillis();
-        // generates linear data
-        int b = 1000000;
-        double[] xData = new double[b + 1];
-        double[] yData = new double[b + 1];
-        for (int x = 0; x <= b; x++) {
-            xData[x] = x;
-            yData[x] = x;
-        }
-        long t1 = System.currentTimeMillis() - t;
-        t = System.currentTimeMillis();
-        System.out.println("B:" + System.currentTimeMillis());
-        // Customize Chart
-        chart.setChartTitle("Sample Chart");
-        chart.setXAxisTitle("X");
-        chart.setYAxisTitle("Y");
-        // chart.setChartTitleVisible(false);
-        // chart.setChartLegendVisible(false);
-        // chart.setAxisTitlesVisible(false);
-
-        Series series = chart.addSeries("big data set", xData, yData);
-        // series.setLineColor(SeriesColor.PURPLE);
-        // series.setLineStyle(SeriesLineStyle.NONE);
-        // series.setMarkerColor(SeriesColor.GREEN);
-        // series.setMarker(SeriesMarker.NONE);
-
-        // Swing
-        JPanel chartPanel = new JChartPanel(chart);
-
-        // add the panel to the content pane
-        frame.getContentPane().add(chartPanel, BorderLayout.CENTER);
-
-        // Display the window
-        frame.pack();
-        frame.setLocationRelativeTo(null); // centers on screen
-        frame.setVisible(true);
-
-        long t2 = System.currentTimeMillis() - t;
-        System.out.println("Data Generation Time: " + t1);
-        System.out.println("Plot Generation Time: " + t2);
-    }
-
-    public static void main(String[] args) {
-
-        // Schedule a job for the event-dispatching thread:
-        // creating and showing this application's GUI.
-        javax.swing.SwingUtilities.invokeLater(new Runnable() {
-            @Override
-            public void run() {
-                createAndShowGUI();
-            }
-        });
-    }
-}
diff --git a/src/com/xeiam/xcharts/example/SwingChart.java b/src/com/xeiam/xcharts/example/SwingChart.java
index d6a7487d9ad81efa662c556fcae848fdd84110ce..2033d512aafd1b09a912f054a3ce0b9911c795c0 100644
--- a/src/com/xeiam/xcharts/example/SwingChart.java
+++ b/src/com/xeiam/xcharts/example/SwingChart.java
@@ -15,14 +15,11 @@
  */
 package com.xeiam.xcharts.example;
 
-import java.awt.BorderLayout;
-
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-
+import com.xeiam.swing.SwingHelper;
 import com.xeiam.xcharts.Chart;
-import com.xeiam.xcharts.JChartPanel;
 import com.xeiam.xcharts.series.Series;
+import com.xeiam.xcharts.series.SeriesColor;
+import com.xeiam.xcharts.series.SeriesLineStyle;
 import com.xeiam.xcharts.series.SeriesMarker;
 
 /**
@@ -32,15 +29,15 @@ public class SwingChart {
 
     private static void createAndShowGUI() {
 
-        // // generates sine data
-        // int size = 100;
-        // double[] xData1 = new double[size + 1];
-        // double[] yData1 = new double[size + 1];
-        // for (int i = 0; i <= size; i++) {
-        // double radians = (Math.PI / (size / 2) * i);
-        // xData1[i] = i - size / 2;
-        // yData1[i] = size * Math.sin(radians);
-        // }
+        // generates sine data
+        int size = 100;
+        double[] xData1 = new double[size + 1];
+        double[] yData1 = new double[size + 1];
+        for (int i = 0; i <= size; i++) {
+            double radians = (Math.PI / (size / 2) * i);
+            xData1[i] = i - size / 2;
+            yData1[i] = size * Math.sin(radians);
+        }
 
         // generates linear data
         int size2 = 100;
@@ -52,9 +49,6 @@ public class SwingChart {
         }
 
         // Create and set up the window.
-        JFrame frame = new JFrame("XChart");
-        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-        frame.setUndecorated(true);
 
         // Create Chart
         Chart chart = new Chart(800, 600);
@@ -68,29 +62,21 @@ public class SwingChart {
         // chart.setAxisTitlesVisible(false);
 
         // Series 1
-        // Series series1 = chart.addSeries("y=sin(x)", xData1, yData1);
-        // series1.setLineColor(SeriesColor.PURPLE);
-        // series1.setLineStyle(SeriesLineStyle.NONE);
-        // series1.setMarkerColor(SeriesColor.GREEN);
-        // series1.setMarker(SeriesMarker.NONE);
+        Series series1 = chart.addSeries("y=sin(x)", xData1, yData1);
+        series1.setLineColor(SeriesColor.PURPLE);
+        series1.setLineStyle(SeriesLineStyle.NONE);
+        series1.setMarkerColor(SeriesColor.GREEN);
+        series1.setMarker(SeriesMarker.NONE);
 
         // Series 2
-        Series series2 = chart.addSeries("y=x", xData2, yData2);
+        // Series series2 = chart.addSeries("y=x", xData2, yData2);
         // series2.setLineColor(SeriesColor.PURPLE);
         // series2.setLineStyle(SeriesLineStyle.NONE);
         // series2.setMarkerColor(SeriesColor.GREEN);
-        series2.setMarker(SeriesMarker.NONE);
-
-        // Swing
-        JPanel chartPanel = new JChartPanel(chart);
-
-        // add the panel to the content pane
-        frame.getContentPane().add(chartPanel, BorderLayout.CENTER);
+        // series2.setMarker(SeriesMarker.NONE);
 
-        // Display the window
-        frame.pack();
-        frame.setLocationRelativeTo(null); // centers on screen
-        frame.setVisible(true);
+        SwingHelper swingHelper = new SwingHelper(chart);
+        swingHelper.displayChart();
     }
 
     public static void main(String[] args) {
diff --git a/src/com/xeiam/xcharts/example/SwingChart2.java b/src/com/xeiam/xcharts/example/SwingChart2.java
index a0d22d13575e8a73eda59b1a26881b8633cc2570..ec068a7c154c65602c4b6e307d853f62330e6c3d 100644
--- a/src/com/xeiam/xcharts/example/SwingChart2.java
+++ b/src/com/xeiam/xcharts/example/SwingChart2.java
@@ -15,13 +15,8 @@
  */
 package com.xeiam.xcharts.example;
 
-import java.awt.BorderLayout;
-
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-
+import com.xeiam.swing.SwingHelper;
 import com.xeiam.xcharts.Chart;
-import com.xeiam.xcharts.JChartPanel;
 import com.xeiam.xcharts.series.Series;
 
 /**
@@ -31,11 +26,6 @@ public class SwingChart2 {
 
     private static void createAndShowGUI() {
 
-        // Create and set up the window.
-        JFrame frame = new JFrame("XChart");
-        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-        frame.setUndecorated(true);
-
         // Create Chart
         Chart chart = new Chart(800, 600);
 
@@ -65,16 +55,8 @@ public class SwingChart2 {
             // series.setMarker(SeriesMarker.NONE);
         }
 
-        // Swing
-        JPanel chartPanel = new JChartPanel(chart);
-
-        // add the panel to the content pane
-        frame.getContentPane().add(chartPanel, BorderLayout.CENTER);
-
-        // Display the window
-        frame.pack();
-        frame.setLocationRelativeTo(null); // centers on screen
-        frame.setVisible(true);
+        SwingHelper swingHelper = new SwingHelper(chart);
+        swingHelper.displayChart();
     }
 
     public static void main(String[] args) {
diff --git a/src/com/xeiam/xcharts/example/SwingChart3.java b/src/com/xeiam/xcharts/example/SwingChart3.java
index c0e74bd288d32ce2b5db67d20a3cea9e56c494eb..c78652b7f66c15cdf5f59564293168fe11484494 100644
--- a/src/com/xeiam/xcharts/example/SwingChart3.java
+++ b/src/com/xeiam/xcharts/example/SwingChart3.java
@@ -15,13 +15,8 @@
  */
 package com.xeiam.xcharts.example;
 
-import java.awt.BorderLayout;
-
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-
+import com.xeiam.swing.SwingHelper;
 import com.xeiam.xcharts.Chart;
-import com.xeiam.xcharts.JChartPanel;
 import com.xeiam.xcharts.series.Series;
 
 /**
@@ -39,11 +34,6 @@ public class SwingChart3 {
         double[] xData2 = new double[] { 0.0, 0.0, 0.0 };
         double[] yData2 = new double[] { 0.0, 1.0, 2.0 };
 
-        // Create and set up the window.
-        JFrame frame = new JFrame("XChart");
-        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-        frame.setUndecorated(true);
-
         // Create Chart
         Chart chart = new Chart(800, 600);
 
@@ -59,16 +49,8 @@ public class SwingChart3 {
         Series series1 = chart.addSeries("y=0", xData1, yData1);
         Series series2 = chart.addSeries("x=0", xData2, yData2);
 
-        // Swing
-        JPanel chartPanel = new JChartPanel(chart);
-
-        // add the panel to the content pane
-        frame.getContentPane().add(chartPanel, BorderLayout.CENTER);
-
-        // Display the window
-        frame.pack();
-        frame.setLocationRelativeTo(null); // centers on screen
-        frame.setVisible(true);
+        SwingHelper swingHelper = new SwingHelper(chart);
+        swingHelper.displayChart();
     }
 
     public static void main(String[] args) {
diff --git a/src/com/xeiam/xcharts/example/SwingChart4.java b/src/com/xeiam/xcharts/example/SwingChart4.java
index 0ebd99309407beff927461157ee8bf154c6b4e27..a294877c29283eacaff62e00e4ee8f9b3ae69ca7 100644
--- a/src/com/xeiam/xcharts/example/SwingChart4.java
+++ b/src/com/xeiam/xcharts/example/SwingChart4.java
@@ -15,13 +15,8 @@
  */
 package com.xeiam.xcharts.example;
 
-import java.awt.BorderLayout;
-
-import javax.swing.JFrame;
-import javax.swing.JPanel;
-
+import com.xeiam.swing.SwingHelper;
 import com.xeiam.xcharts.Chart;
-import com.xeiam.xcharts.JChartPanel;
 import com.xeiam.xcharts.series.Series;
 import com.xeiam.xcharts.series.SeriesMarker;
 
@@ -37,36 +32,24 @@ public class SwingChart4 {
         // generates linear data
         double[] yData1 = new double[] { 0.0, 0.0, 0.0, -10.0, 15.0, 15.0 };
 
-        // Create and set up the window.
-        JFrame frame = new JFrame("XChart");
-        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-        frame.setUndecorated(true);
-
         // Create Chart
-        Chart chart = new Chart(800, 600);
+        Chart chart = new Chart(600, 300);
 
         // Customize Chart
         chart.setChartTitle("Sample Chart");
         chart.setXAxisTitle("X");
         chart.setYAxisTitle("Y");
-        chart.setChartTitleVisible(false);
-        chart.setChartLegendVisible(false);
-        chart.setAxisTitlesVisible(false);
+        chart.setChartTitleVisible(true);
+        chart.setChartLegendVisible(true);
+        chart.setAxisTitlesVisible(true);
 
         // Series
         Series series1 = chart.addSeries("y=0", null, yData1);
         series1.setMarker(SeriesMarker.NONE);
 
-        // Swing
-        JPanel chartPanel = new JChartPanel(chart);
-
-        // add the panel to the content pane
-        frame.getContentPane().add(chartPanel, BorderLayout.CENTER);
+        SwingHelper swingHelper = new SwingHelper(chart);
+        swingHelper.displayChart();
 
-        // Display the window
-        frame.pack();
-        frame.setLocationRelativeTo(null); // centers on screen
-        frame.setVisible(true);
     }
 
     public static void main(String[] args) {
diff --git a/src/com/xeiam/xcharts/example/SwingChart5.java b/src/com/xeiam/xcharts/example/SwingChart5.java
new file mode 100644
index 0000000000000000000000000000000000000000..97297f2ee21edf74e4205726e33105687aa3cdca
--- /dev/null
+++ b/src/com/xeiam/xcharts/example/SwingChart5.java
@@ -0,0 +1,79 @@
+/**
+ * Copyright 2011 Xeiam LLC.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.xeiam.xcharts.example;
+
+import com.xeiam.swing.SwingHelper;
+import com.xeiam.xcharts.Chart;
+import com.xeiam.xcharts.series.Series;
+import com.xeiam.xcharts.series.SeriesMarker;
+
+/**
+ * Demonstrated/Tests plotting horizontal and vertical lines
+ * 
+ * @author timmolter
+ */
+public class SwingChart5 {
+
+    private static void createAndShowGUI() {
+
+        Chart[] charts = new Chart[3];
+        for (int i = 0; i < charts.length; i++) {
+            charts[i] = getRandomWalkChart(1000);
+        }
+
+        SwingHelper swingHelper = new SwingHelper(charts);
+        swingHelper.displayChart();
+
+    }
+
+    private static Chart getRandomWalkChart(int N) {
+
+        double[] y = new double[N];
+        for (int i = 1; i < y.length; i++) {
+            y[i] = y[i - 1] + Math.random() - .5;
+        }
+
+        // Create Chart
+        Chart chart = new Chart(600, 300);
+
+        // Customize Chart
+        chart.setChartTitle("Random Walk");
+        chart.setXAxisTitle("X");
+        chart.setYAxisTitle("Y");
+        chart.setChartTitleVisible(true);
+        chart.setChartLegendVisible(true);
+        chart.setAxisTitlesVisible(true);
+
+        // Series
+        Series series1 = chart.addSeries("y=0", null, y);
+        series1.setMarker(SeriesMarker.NONE);
+
+        return chart;
+
+    }
+
+    public static void main(String[] args) {
+
+        // Schedule a job for the event-dispatching thread:
+        // creating and showing this application's GUI.
+        javax.swing.SwingUtilities.invokeLater(new Runnable() {
+            @Override
+            public void run() {
+                createAndShowGUI();
+            }
+        });
+    }
+}