Example usage for javax.swing JFrame setLayout

List of usage examples for javax.swing JFrame setLayout

Introduction

In this page you can find the example usage for javax.swing JFrame setLayout.

Prototype

public void setLayout(LayoutManager manager) 

Source Link

Document

Sets the LayoutManager.

Usage

From source file:PopUpColorMenu.java

public PopUpColorMenu() {
    JFrame frame = new JFrame();

    final JPopupMenu colorMenu = new JPopupMenu("Color");
    colorMenu.add(makeMenuItem("Red"));
    colorMenu.add(makeMenuItem("Green"));
    colorMenu.add(makeMenuItem("Blue"));

    MouseListener mouseListener = new MouseAdapter() {
        public void mousePressed(MouseEvent e) {
            checkPopup(e);// w ww.  j a va 2 s .c  o m
        }

        public void mouseClicked(MouseEvent e) {
            checkPopup(e);
        }

        public void mouseReleased(MouseEvent e) {
            checkPopup(e);
        }

        private void checkPopup(MouseEvent e) {
            if (e.isPopupTrigger()) {
                selectedComponent = e.getComponent();
                colorMenu.show(e.getComponent(), e.getX(), e.getY());
            }
        }
    };

    frame.setLayout(new FlowLayout());
    JButton button = new JButton("Uno");
    button.addMouseListener(mouseListener);
    frame.add(button);
    button = new JButton("Due");
    button.addMouseListener(mouseListener);
    frame.add(button);
    button = new JButton("Tre");
    button.addMouseListener(mouseListener);
    frame.add(button);

    frame.getContentPane().addMouseListener(mouseListener);

    frame.setSize(200, 50);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setVisible(true);
}

From source file:projects.wdlf47tuc.ProcessAllSwathcal.java

/**
 * Computes the luminosity function for the current boxed region and plots it in a JFrame.
 * Also prints out the coordinates of the selection box vertices and the luminosity function
 * quantities./*from   ww  w.j a v  a 2s .com*/
 * 
 * @param sources
 *    The {@link Source}s to compute the luminosity function for.
 */
private void computeAndPlotLuminosityFunction(List<Source> sources) {

    // Print out coordinates of selection box corners
    System.out.println("# Coordinates of selection box corners:");
    System.out.println("# (" + col1Filter + "-" + col2Filter + ")\t" + magFilter);
    for (double[] point : points) {
        System.out.println("# " + point[0] + "\t" + point[1]);
    }
    System.out.println("# Luminosity function:");
    System.out.println("# Mag.\tN\tsigN");

    double magBinWidth = 0.5;

    // Get the range of the data
    double mMin = Double.MAX_VALUE;
    double mMax = -Double.MAX_VALUE;
    for (Source source : sources) {
        double mag = source.getMag(magFilter) - mu;
        mMin = Math.min(mMin, mag);
        mMax = Math.max(mMax, mag);
    }

    // Quantize this to a whole number
    mMin = Math.floor(mMin);
    mMax = Math.ceil(mMax);

    int nBins = (int) Math.rint((mMax - mMin) / magBinWidth);

    // Array to accumulate all objects in each bin
    int[] n = new int[nBins];

    for (Source source : sources) {
        double mag = source.getMag(magFilter) - mu;
        // Bin number
        int bin = (int) Math.floor((mag - mMin) / magBinWidth);
        n[bin]++;
    }

    YIntervalSeries luminosityFunction = new YIntervalSeries("Luminosity Function");

    for (int i = 0; i < nBins; i++) {
        // Bin centre
        double x = mMin + i * magBinWidth + 0.5 * magBinWidth;
        double y = n[i];
        double yErr = n[i] > 0 ? Math.sqrt(y) : 0;
        luminosityFunction.add(x, y, y - yErr, y + yErr);
        System.out.println(x + "\t" + y + "\t" + yErr);
    }

    final YIntervalSeriesCollection data = new YIntervalSeriesCollection();
    data.addSeries(luminosityFunction);

    XYErrorRenderer renderer = new XYErrorRenderer();
    renderer.setSeriesLinesVisible(0, true);
    renderer.setSeriesShapesVisible(0, true);
    renderer.setSeriesShape(0, new Ellipse2D.Float(-1f, -1f, 2, 2));
    renderer.setSeriesPaint(0, ChartColor.BLACK);

    NumberAxis xAxis = new NumberAxis("Absolute Magnitude (" + magFilter.toString() + ")");
    xAxis.setAutoRange(true);
    xAxis.setAutoRangeIncludesZero(false);

    NumberAxis yAxis = new NumberAxis("N");
    yAxis.setAutoRange(true);
    yAxis.setAutoRangeIncludesZero(true);

    // Configure plot
    XYPlot xyplot = new XYPlot(data, xAxis, yAxis, renderer);
    xyplot.setBackgroundPaint(Color.lightGray);
    xyplot.setDomainGridlinePaint(Color.white);
    xyplot.setDomainGridlinesVisible(true);
    xyplot.setRangeGridlinePaint(Color.white);

    // Configure chart
    JFreeChart chart = new JFreeChart("Luminosity Function", xyplot);
    chart.setBackgroundPaint(Color.white);
    chart.setTitle("47 Tuc luminosity function");
    chart.removeLegend();

    final ChartPanel lfChartPanel = new ChartPanel(chart);

    java.awt.EventQueue.invokeLater(new Runnable() {
        @Override
        public void run() {
            JFrame tester = new JFrame();
            tester.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            tester.setLayout(new BorderLayout());
            tester.add(lfChartPanel, BorderLayout.CENTER);
            tester.pack();
            tester.setVisible(true);
        }
    });

}

From source file:Main.java

public void makeUI() {
    String[] zones = { "Asia/Tokyo", "Asia/Hong_Kong", "Asia/Calcutta", "Europe/Paris", "Europe/London",
            "America/New_York", "America/Los_Angeles" };
    JLabel[] labels = new JLabel[zones.length];
    SimpleDateFormat[] formats = new SimpleDateFormat[zones.length];
    JFrame frame = new JFrame();

    Calendar cal = Calendar.getInstance();
    Date date = cal.getTime();/*from www .j  a v a  2 s.  co  m*/
    SpinnerDateModel model = new SpinnerDateModel();
    model.setValue(date);
    JSpinner spinner = new JSpinner(model);
    spinner.addChangeListener(new ChangeListener() {

        @Override
        public void stateChanged(ChangeEvent e) {
            Date date = (Date) ((JSpinner) e.getSource()).getValue();
            for (int i = 0; i < labels.length; i++) {
                labels[i].setText(formats[i].format(date));
            }
        }
    });
    SimpleDateFormat format = ((JSpinner.DateEditor) spinner.getEditor()).getFormat();
    format.setTimeZone(TimeZone.getTimeZone(zones[0]));
    format.applyPattern("yyyy-MM-dd HH:mm:ss");
    JPanel panel = new JPanel(new GridLayout(zones.length, 2, 10, 10));
    for (int i = 0; i < zones.length; i++) {
        formats[i] = new SimpleDateFormat("yyyy-MMM-dd HH:mm:ss");
        formats[i].setTimeZone(TimeZone.getTimeZone(zones[i]));
        JLabel label = new JLabel(zones[i]);
        labels[i] = new JLabel(formats[i].format(date));
        panel.add(label);
        panel.add(labels[i]);
    }
    frame.setLayout(new BorderLayout());
    frame.add(spinner, BorderLayout.NORTH);
    frame.add(panel, BorderLayout.CENTER);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.pack();
    frame.setVisible(true);
}

From source file:gui_pack.MainGui.java

private void runTestsButtonActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_runTestsButtonActionPerformed
    int rangeMin, rangeMax, spacing;
    int passing = 0;

    {//  Beginning of input validation
        String errorTitle, errorMessage;

        //make sure at least one sort algorithm is selected
        if (!(insertionCheckBox.isSelected() || mergeCheckBox.isSelected() || quickCheckBox.isSelected()
                || selectionCheckBox.isSelected())) {
            errorTitle = "Selection Error";
            errorMessage = "At least one sort algorithm (Insertion Sort, "
                    + "Merge Sort, Quick Sort, or Selection Sort) must be selected.";
            JOptionPane.showMessageDialog(null, errorMessage, errorTitle, JOptionPane.WARNING_MESSAGE);
            return;
        }//from   w w  w.  j  a  v a2  s.c  o m

        //make sure at least one order is selected
        if (!(ascendingCheckBox.isSelected() || descendingCheckBox.isSelected()
                || randomCheckBox.isSelected())) {
            errorTitle = "Selection Error";
            errorMessage = "At least one order (Ascending Order, Descending Order, or Random Order) "
                    + "must be selected.";
            JOptionPane.showMessageDialog(null, errorMessage, errorTitle, JOptionPane.WARNING_MESSAGE);
            return;
        }

        //make sure all the proper fields contain data
        try {
            rangeMin = Integer.parseInt(rangeMinField.getText());
            rangeMax = Integer.parseInt(rangeMaxField.getText());
            spacing = Integer.parseInt(spacingField.getText());
            //for the multithreaded version of this program "iterations" cannot be a variable
            //this was left in to catch if the iteration field is left blank or has no value
            if (iterationField.isEnabled()) {
                Integer.parseInt(iterationField.getText());
            }
        } catch (NumberFormatException arbitraryName) {
            errorTitle = "Input Error";
            if (iterationField.isEnabled()) {
                errorMessage = "The size, intervals, and iterations fields must contain "
                        + "integer values and only integer values.";
            } else {
                errorMessage = "The size and intervals fields must contain "
                        + "integer values and only integer values.";
            }
            JOptionPane.showMessageDialog(null, errorMessage, errorTitle, JOptionPane.WARNING_MESSAGE);
            return;
        }

        //make sure field data is appropriate
        if (rangeMin > rangeMax) {
            errorTitle = "Range Error";
            errorMessage = "Minimum Size must be less than or equal to Maximum Size.";
            JOptionPane.showMessageDialog(null, errorMessage, errorTitle, JOptionPane.WARNING_MESSAGE);
            return;
        }

        if (spacing < 1 || rangeMin < 1 || rangeMax < 1
                || (iterationField.isEnabled() && Integer.parseInt(iterationField.getText()) < 1)) {
            errorTitle = "Value Error";
            if (iterationField.isEnabled()) {
                errorMessage = "Intervals, sizes, and iterations must be in the positive domain. "
                        + "Spacing, Range(min), Range(max), and Iterations must be greater than or"
                        + " equal to one.";
            } else {
                errorMessage = "Intervals and sizes must be in the positive domain. "
                        + "Spacing, Range(min) and Range(max) be greater than or" + " equal to one.";
            }
            JOptionPane.showMessageDialog(null, errorMessage, errorTitle, JOptionPane.WARNING_MESSAGE);
            return;
        }

        if (!iterationField.isEnabled()) {
            passing = 0;
        }

    } // End of input validation

    //here's where we set up a loading bar in case the tests take a while
    JProgressBar loadBar = new JProgressBar();
    JFrame loadFrame = new JFrame();
    JLabel displayLabel1 = new JLabel();
    loadBar.setIndeterminate(true);
    loadBar.setVisible(true);
    displayLabel1.setText("Running large tests, or many tests, using inefficient algorithms \n"
            + "may take a while. Please be patient.");
    loadFrame.setLayout(new FlowLayout());
    loadFrame.add(loadBar);
    loadFrame.add(displayLabel1);
    loadFrame.setSize(600, 100);
    loadFrame.setTitle("Loading");
    loadFrame.setVisible(true);

    //now we will leave this open until the tests are completed
    //now we can conduct the actual tests
    SwingWorker worker = new SwingWorker<XYSeriesCollection, Void>() {
        XYSeriesCollection results = new XYSeriesCollection();

        @Override
        protected XYSeriesCollection doInBackground() {
            XYSeries insertSeries = new XYSeries("Insertion Sort");
            XYSeries mergeSeries = new XYSeries("Merge Sort");
            XYSeries quickSeries = new XYSeries("Quick Sort");
            XYSeries selectSeries = new XYSeries("Selection Sort");

            final boolean ascending = ascendingCheckBox.isSelected();
            final boolean descending = descendingCheckBox.isSelected();
            final boolean insertion = insertionCheckBox.isSelected();
            final boolean merge = mergeCheckBox.isSelected();
            final boolean quick = quickCheckBox.isSelected();
            final boolean selection = selectionCheckBox.isSelected();

            final int iterations = Integer.parseInt(iterationField.getText());

            ListGenerator generator = new ListGenerator();
            int[] list;
            for (int count = rangeMin; count <= rangeMax; count = count + spacing) {

                if (ascending) {

                    list = generator.ascending(count);
                    if (insertion) {
                        insertSeries.add(count, insertionSort.sort(list));
                    }
                    if (merge) {
                        mergeSeries.add(count, mergeSort.sort(list));
                    }
                    if (quick) {
                        quickSeries.add(count, quickSort.sort(list));
                    }
                    if (selection) {
                        selectSeries.add(count, selectionSort.sort(list));
                    }
                }
                if (descending) {

                    list = generator.descending(count);
                    if (insertion) {
                        insertSeries.add(count, insertionSort.sort(list));
                    }
                    if (merge) {
                        mergeSeries.add(count, mergeSort.sort(list));
                    }
                    if (quick) {
                        quickSeries.add(count, quickSort.sort(list));
                    }
                    if (selection) {
                        selectSeries.add(count, selectionSort.sort(list));
                    }
                }

                for (int iteration = 0; iteration < iterations; iteration++) {
                    list = generator.random(count);

                    if (insertion) {
                        insertSeries.add(count, insertionSort.sort(list));
                    }
                    if (merge) {
                        mergeSeries.add(count, mergeSort.sort(list));
                    }
                    if (quick) {
                        quickSeries.add(count, quickSort.sort(list));
                    }
                    if (selection) {
                        selectSeries.add(count, selectionSort.sort(list));
                    }
                }

            }

            //now we aggregate the results
            if (insertion) {
                results.addSeries(insertSeries);
            }
            if (merge) {
                results.addSeries(mergeSeries);
            }
            if (quick) {
                results.addSeries(quickSeries);
            }
            if (selection) {
                results.addSeries(selectSeries);
            }
            return results;
        }

        @Override
        protected void done() {
            //finally, we display the results
            JFreeChart chart = ChartFactory.createScatterPlot("SortExplorer", // chart title
                    "List Size", // x axis label
                    "Number of Comparisons", // y axis label
                    results, // data  
                    PlotOrientation.VERTICAL, true, // include legend
                    true, // tooltips
                    false // urls
            );
            ChartFrame frame = new ChartFrame("First", chart);
            frame.pack();
            frame.setVisible(true);
            loadFrame.setVisible(false);
        }
    };

    //having set up the multithreading 'worker' we can finally conduct the 
    //test
    worker.execute();

}

From source file:com.seanmadden.net.fast.FastInterpretype.java

public void configEditWindow() {
    final JFrame frame = new JFrame();
    final Vector<ConfigOption> components = new Vector<ConfigOption>();
    JPanel buttons = new JPanel(new GridLayout(1, 2));
    JButton ok = new JButton("Save");
    ok.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            for (ConfigOption config : components) {
                config.actionPerformed(null);
            }// w w w .j a  va 2 s. c  om
            frame.dispose();
            try {
                FileWriter writer = new FileWriter(filename);
                config.write(writer);
                writer.flush();
                writer.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            } catch (JSONException ex) {
                ex.printStackTrace();
            }
        }

    });
    JButton cancel = new JButton("Cancel");
    cancel.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {
            frame.dispose();
        }
    });
    buttons.add(ok);
    buttons.add(cancel);
    Iterator<String> rator = config.keys();
    int size = 0;
    try {
        while (rator.hasNext()) {
            String key = (String) rator.next();
            ConfigOption config = new ConfigOption(key, this.config.getString(key));
            frame.add(config);
            components.add(config);
            ++size;
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }
    frame.setLayout(new GridLayout(size + 1, 1));
    frame.add(buttons);
    frame.setSize(300, 400);
    frame.pack();
    frame.setVisible(true);
}

From source file:es.emergya.ui.plugins.admin.aux1.SummaryAction.java

private JFrame createJDialog(final String titulo) {
    final JFrame d = new JFrame(titulo);
    d.setResizable(false);/* w  w w  .  j a  va2 s .c o  m*/
    d.setAlwaysOnTop(true);
    d.setIconImage(window.getIconImage());
    d.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
    d.addWindowListener(new WindowAdapter() {

        @Override
        public void windowClosing(WindowEvent e) {
            super.windowClosing(e);
            if (cambios) {
                int res = JOptionPane.showConfirmDialog(d,
                        "Existen cambios sin guardar. Seguro que desea cerrar la ventana?",
                        "Cambios sin guardar", JOptionPane.OK_CANCEL_OPTION);
                if (res != JOptionPane.CANCEL_OPTION) {
                    e.getWindow().dispose();
                }
            } else {
                e.getWindow().dispose();
            }
        }
    });
    d.setLayout(new BorderLayout(5, 5));
    d.setBackground(Color.WHITE);
    d.getContentPane().setBackground(Color.WHITE);
    return d;
}

From source file:fs.MainWindow.java

public void GenerateTable(Object[][] data, String title, String subtitle, final String[] titles) {
    JFrame window = new JFrame(title);
    window.setLayout(new java.awt.BorderLayout(5, 5));
    JLabel label = new JLabel(subtitle);
    label.setFont(new java.awt.Font("Tahoma", 1, 12));
    label.setForeground(new java.awt.Color(0, 0, 255));
    label.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
    label.setOpaque(true);/*w w  w.j ava2s.com*/
    label.setPreferredSize(new java.awt.Dimension(50, 30));

    ListModel lm = new AbstractListModel() {

        String headers[] = titles;

        @Override
        public int getSize() {
            return headers.length;
        }

        @Override
        public Object getElementAt(int index) {
            return headers[index];
        }
    };

    //        String[] titles = getClasses();
    JList rowHeader = new JList(lm);
    rowHeader.setFixedCellWidth(50);
    JTable jTable = new JTable(data, titles);
    rowHeader.setFixedCellHeight(jTable.getRowHeight());
    rowHeader.setCellRenderer(new RowHeaderRenderer(jTable));
    JScrollPane scroll = new JScrollPane(jTable);
    scroll.setRowHeaderView(rowHeader);
    getContentPane().add(scroll, BorderLayout.CENTER);

    jTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
    jTable.setAlignmentX(JTable.CENTER_ALIGNMENT);

    window.add(label, java.awt.BorderLayout.NORTH);
    window.add(scroll, java.awt.BorderLayout.CENTER);

    java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
    window.setBounds((screenSize.width - 800) / 2, (screenSize.height - 270) / 2, 800, 270);
    window.setVisible(true);
}

From source file:ChiSquareCalculator.java

ChiSquareCalculator() {
    final JFrame jfrm = new JFrame("Chi Square Calculator");
    jfrm.setSize(400, 550);/* w  w  w  .  j  av  a  2s  .  com*/
    jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jfrm.setResizable(false);

    // panel 1
    JPanel pn1 = new JPanel();
    pn1.setOpaque(true);
    pn1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "2 x 2"));

    JLabel jlab1 = new JLabel("class 1");
    JLabel jlab2 = new JLabel("class 2");
    JLabel jlab3 = new JLabel("case");
    JLabel jlab4 = new JLabel("control");

    jtf1 = new JTextField();
    jtf2 = new JTextField();
    jtf3 = new JTextField();
    jtf4 = new JTextField();

    // pn1 layout all
    GridBagLayout CalLayout1 = new GridBagLayout();
    GridBagConstraints gbc1 = new GridBagConstraints();
    pn1.setLayout(CalLayout1);
    gbc1.weightx = 1.0; //default 0.0
    gbc1.weighty = 1.0; //default 0.0      
    gbc1.insets = new Insets(4, 4, 4, 4); // Add some space
    gbc1.fill = GridBagConstraints.BOTH;

    gbc1.gridwidth = 1;

    gbc1.gridx = 1;
    gbc1.gridy = 0;
    CalLayout1.setConstraints(jlab1, gbc1);

    gbc1.gridx = 2;
    gbc1.gridy = 0;
    CalLayout1.setConstraints(jlab2, gbc1);

    gbc1.gridx = 0;
    gbc1.gridy = 1;
    CalLayout1.setConstraints(jlab3, gbc1);

    gbc1.gridx = 1;
    gbc1.gridy = 1;
    CalLayout1.setConstraints(jtf1, gbc1);

    gbc1.gridx = 2;
    gbc1.gridy = 1;
    CalLayout1.setConstraints(jtf2, gbc1);

    gbc1.gridx = 0;
    gbc1.gridy = 2;
    CalLayout1.setConstraints(jlab4, gbc1);

    gbc1.gridx = 1;
    gbc1.gridy = 2;
    CalLayout1.setConstraints(jtf3, gbc1);

    gbc1.gridx = 2;
    gbc1.gridy = 2;
    CalLayout1.setConstraints(jtf4, gbc1);

    pn1.add(jlab1);
    pn1.add(jlab2);
    pn1.add(jlab3);
    pn1.add(jlab4);
    pn1.add(jtf1);
    pn1.add(jtf2);
    pn1.add(jtf3);
    pn1.add(jtf4);

    // panel 2
    JPanel pn2 = new JPanel();
    pn2.setOpaque(true);
    pn2.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "2 x 3"));

    JLabel jlab5 = new JLabel("class 1");
    JLabel jlab6 = new JLabel("class 2");
    JLabel jlab7 = new JLabel("class 3");
    JLabel jlab8 = new JLabel("case");
    JLabel jlab9 = new JLabel("control");

    jtf5 = new JTextField();
    jtf6 = new JTextField();
    jtf7 = new JTextField();
    jtf8 = new JTextField();
    jtf9 = new JTextField();
    jtf10 = new JTextField();

    // pn2 layout all
    GridBagLayout CalLayout2 = new GridBagLayout();
    GridBagConstraints gbc2 = new GridBagConstraints();
    pn2.setLayout(CalLayout2);
    gbc2.weightx = 1.0; //default 0.0
    gbc2.weighty = 1.0; //default 0.0      
    gbc2.insets = new Insets(4, 4, 4, 4); // Add some space
    gbc2.fill = GridBagConstraints.BOTH;

    gbc2.gridwidth = 1;

    gbc2.gridx = 1;
    gbc2.gridy = 0;
    CalLayout2.setConstraints(jlab5, gbc2);

    gbc2.gridx = 2;
    gbc2.gridy = 0;
    CalLayout2.setConstraints(jlab6, gbc2);

    gbc2.gridx = 3;
    gbc2.gridy = 0;
    CalLayout2.setConstraints(jlab7, gbc2);

    gbc2.gridx = 0;
    gbc2.gridy = 1;
    CalLayout2.setConstraints(jlab8, gbc2);

    gbc2.gridx = 1;
    gbc2.gridy = 1;
    CalLayout2.setConstraints(jtf5, gbc2);

    gbc2.gridx = 2;
    gbc2.gridy = 1;
    CalLayout2.setConstraints(jtf6, gbc2);

    gbc2.gridx = 3;
    gbc2.gridy = 1;
    CalLayout2.setConstraints(jtf7, gbc2);

    gbc2.gridx = 0;
    gbc2.gridy = 2;
    CalLayout2.setConstraints(jlab9, gbc2);

    gbc2.gridx = 1;
    gbc2.gridy = 2;
    CalLayout2.setConstraints(jtf8, gbc2);

    gbc2.gridx = 2;
    gbc2.gridy = 2;
    CalLayout2.setConstraints(jtf9, gbc2);

    gbc2.gridx = 3;
    gbc2.gridy = 2;
    CalLayout2.setConstraints(jtf10, gbc2);

    pn2.add(jlab5);
    pn2.add(jlab6);
    pn2.add(jlab7);
    pn2.add(jlab8);
    pn2.add(jlab9);
    pn2.add(jtf5);
    pn2.add(jtf6);
    pn2.add(jtf7);
    pn2.add(jtf8);
    pn2.add(jtf9);
    pn2.add(jtf10);

    // panel 3      
    JPanel pn3 = new JPanel();
    pn3.setOpaque(true);
    pn3.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "statistic"));

    JLabel jlab10 = new JLabel("chi-square");
    JLabel jlab11 = new JLabel("degree of freedom");

    jtf11 = new JTextField();
    jtf12 = new JTextField();

    GridBagLayout CalLayout3 = new GridBagLayout();
    GridBagConstraints gbc3 = new GridBagConstraints();
    pn3.setLayout(CalLayout3);
    gbc3.weightx = 1.0; //default 0.0
    gbc3.weighty = 1.0; //default 0.0      
    gbc3.insets = new Insets(4, 4, 4, 4); // Add some space
    gbc3.fill = GridBagConstraints.BOTH;

    gbc3.gridwidth = 1;

    gbc3.gridx = 0;
    gbc3.gridy = 0;
    CalLayout3.setConstraints(jlab10, gbc3);

    gbc3.gridwidth = 3;

    gbc3.gridx = 1;
    gbc3.gridy = 0;
    CalLayout3.setConstraints(jtf11, gbc3);

    gbc3.gridwidth = 2;

    gbc3.gridx = 0;
    gbc3.gridy = 1;
    CalLayout3.setConstraints(jlab11, gbc3);

    gbc3.gridx = 2;
    gbc3.gridy = 1;
    CalLayout3.setConstraints(jtf12, gbc3);

    pn3.add(jlab10);
    pn3.add(jlab11);
    pn3.add(jtf11);
    pn3.add(jtf12);

    JPanel pn4 = new JPanel();
    pn4.setOpaque(true);
    pn4.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "result"));

    JLabel jlab12 = new JLabel("p-value");
    final JLabel jlab13 = new JLabel("odds ratio");
    final JLabel jlab14 = new JLabel("standard error");
    final JLabel jlab15 = new JLabel("confidence interval 95%");

    jtf13 = new JTextField();
    jtf14 = new JTextField();
    jtf15 = new JTextField();
    jtf16 = new JTextField();
    jtf17 = new JTextField();

    jlab13.setEnabled(false);
    jlab14.setEnabled(false);
    jlab15.setEnabled(false);
    jtf14.setEnabled(false);
    jtf15.setEnabled(false);
    jtf16.setEnabled(false);
    jtf17.setEnabled(false);

    JButton jbtn1 = new JButton("Run 2x2");
    jbtn1.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            long number1, number2, number3, number4;
            try {
                number1 = Long.parseLong(jtf1.getText());
                number2 = Long.parseLong(jtf2.getText());
                number3 = Long.parseLong(jtf3.getText());
                number4 = Long.parseLong(jtf4.getText());
            } catch (Exception ne) {
                JOptionPane.showMessageDialog(jfrm, "Error: Bad input, only integer is acceptable!");
                return;
            }

            long[][] obs = new long[2][2];

            obs[0][0] = number1;
            obs[0][1] = number2;
            obs[1][0] = number3;
            obs[1][1] = number4;

            ChiSquareTest mychiSquare = new ChiSquareTest();

            double stats = mychiSquare.chiSquare(obs);
            jtf11.setText(String.valueOf(stats));
            jtf12.setText(String.valueOf(1));

            double pvalue = mychiSquare.chiSquareTest(obs);
            jtf13.setText(String.valueOf(pvalue));

            jtf5.setText("");
            jtf6.setText("");
            jtf7.setText("");
            jtf8.setText("");
            jtf9.setText("");
            jtf10.setText("");

            jlab13.setEnabled(true);
            jlab14.setEnabled(true);
            jlab15.setEnabled(true);
            jtf14.setEnabled(true);
            jtf15.setEnabled(true);
            jtf16.setEnabled(true);
            jtf17.setEnabled(true);

            double or = (double) (number2 * number3) / (number1 * number4);
            double se = Math.sqrt(
                    (double) 1 / number1 + (double) 1 / number2 + (double) 1 / number3 + (double) 1 / number4);
            double logOR = Math.log(or);
            double logU95 = logOR + 1.96 * se;
            double logL95 = logOR - 1.96 * se;
            double U95 = Math.exp(logU95);
            double L95 = Math.exp(logL95);

            final java.text.DecimalFormat mydf = new java.text.DecimalFormat("0.000000");

            jtf14.setText(String.valueOf(or));
            jtf15.setText(String.valueOf(se));
            jtf16.setText(String.valueOf(mydf.format(L95)));
            jtf17.setText(String.valueOf(mydf.format(U95)));

        }
    });

    JButton jbtn2 = new JButton("Run 2x3");
    jbtn2.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            long number1, number2, number3, number4, number5, number6;
            try {
                number1 = Long.parseLong(jtf5.getText());
                number2 = Long.parseLong(jtf6.getText());
                number3 = Long.parseLong(jtf7.getText());
                number4 = Long.parseLong(jtf8.getText());
                number5 = Long.parseLong(jtf9.getText());
                number6 = Long.parseLong(jtf10.getText());
            } catch (Exception ne) {
                JOptionPane.showMessageDialog(jfrm, "Error: Bad input, only integer is acceptable!");
                return;
            }

            long[][] obs = new long[2][3];

            obs[0][0] = number1;
            obs[0][1] = number2;
            obs[0][2] = number3;
            obs[1][0] = number4;
            obs[1][1] = number5;
            obs[1][2] = number6;

            ChiSquareTest mychiSquare = new ChiSquareTest();

            double stats = mychiSquare.chiSquare(obs);
            jtf11.setText(String.valueOf(stats));
            jtf12.setText(String.valueOf(2));

            double pvalue = mychiSquare.chiSquareTest(obs);
            jtf13.setText(String.valueOf(pvalue));

            jtf1.setText("");
            jtf2.setText("");
            jtf3.setText("");
            jtf4.setText("");
            jtf14.setText("");
            jtf15.setText("");
            jtf16.setText("");
            jtf17.setText("");

            jlab13.setEnabled(false);
            jlab14.setEnabled(false);
            jlab15.setEnabled(false);
            jtf14.setEnabled(false);
            jtf15.setEnabled(false);
            jtf16.setEnabled(false);
            jtf17.setEnabled(false);

        }
    });

    JButton jbtn3 = new JButton("Run Statistic");
    jbtn3.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            double stat, df;
            try {
                stat = Double.parseDouble(jtf11.getText());
                df = Double.parseDouble(jtf12.getText());
            } catch (Exception ne) {
                JOptionPane.showMessageDialog(jfrm, "Error: Bad input, only number is acceptable!");
                return;
            }
            ChiSquaredDistribution distribution = new ChiSquaredDistribution(df);
            double pvalue = 1 - distribution.cumulativeProbability(stat);
            jtf13.setText(String.valueOf(pvalue));

            jtf1.setText("");
            jtf2.setText("");
            jtf3.setText("");
            jtf4.setText("");
            jtf5.setText("");
            jtf6.setText("");
            jtf7.setText("");
            jtf8.setText("");
            jtf9.setText("");
            jtf10.setText("");
            jtf14.setText("");
            jtf15.setText("");
            jtf16.setText("");
            jtf17.setText("");

            jlab13.setEnabled(false);
            jlab14.setEnabled(false);
            jlab15.setEnabled(false);
            jtf14.setEnabled(false);
            jtf15.setEnabled(false);
            jtf16.setEnabled(false);
            jtf17.setEnabled(false);
        }
    });

    JButton jbtn4 = new JButton("clear");
    jbtn4.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            jtf1.setText("");
            jtf2.setText("");
            jtf3.setText("");
            jtf4.setText("");
            jtf5.setText("");
            jtf6.setText("");
            jtf7.setText("");
            jtf8.setText("");
            jtf9.setText("");
            jtf10.setText("");
            jtf11.setText("");
            jtf12.setText("");
            jtf13.setText("");
            jtf14.setText("");
            jtf15.setText("");
            jtf16.setText("");
            jtf17.setText("");

            jlab13.setEnabled(false);
            jlab14.setEnabled(false);
            jlab15.setEnabled(false);
            jtf14.setEnabled(false);
            jtf15.setEnabled(false);
            jtf16.setEnabled(false);
            jtf17.setEnabled(false);
        }
    });

    GridBagLayout CalLayout4 = new GridBagLayout();
    GridBagConstraints gbc4 = new GridBagConstraints();
    pn4.setLayout(CalLayout4);
    gbc4.weightx = 1.0; //default 0.0
    gbc4.weighty = 1.0; //default 0.0      
    gbc4.insets = new Insets(4, 4, 4, 4); // Add some space
    gbc4.fill = GridBagConstraints.BOTH;

    gbc4.gridwidth = 1;

    gbc4.gridx = 0;
    gbc4.gridy = 0;
    CalLayout4.setConstraints(jbtn1, gbc4);

    gbc4.gridx = 1;
    gbc4.gridy = 0;
    CalLayout4.setConstraints(jbtn2, gbc4);

    gbc4.gridx = 2;
    gbc4.gridy = 0;
    CalLayout4.setConstraints(jbtn3, gbc4);

    gbc4.gridx = 3;
    gbc4.gridy = 0;
    CalLayout4.setConstraints(jbtn4, gbc4);

    gbc4.gridx = 0;
    gbc4.gridy = 1;
    CalLayout4.setConstraints(jlab12, gbc4);

    gbc4.gridwidth = 3;

    gbc4.gridx = 1;
    gbc4.gridy = 1;
    CalLayout4.setConstraints(jtf13, gbc4);

    gbc4.gridwidth = 2;

    gbc4.gridx = 0;
    gbc4.gridy = 2;
    CalLayout4.setConstraints(jlab13, gbc4);

    gbc4.gridx = 2;
    gbc4.gridy = 2;
    CalLayout4.setConstraints(jtf14, gbc4);

    gbc4.gridx = 0;
    gbc4.gridy = 3;
    CalLayout4.setConstraints(jlab14, gbc4);

    gbc4.gridx = 2;
    gbc4.gridy = 3;
    CalLayout4.setConstraints(jtf15, gbc4);

    gbc4.gridx = 0;
    gbc4.gridy = 4;
    CalLayout4.setConstraints(jlab15, gbc4);

    gbc4.gridwidth = 1;

    gbc4.gridx = 2;
    gbc4.gridy = 4;
    CalLayout4.setConstraints(jtf16, gbc4);

    gbc4.gridx = 3;
    gbc4.gridy = 4;
    CalLayout4.setConstraints(jtf17, gbc4);

    pn4.add(jlab12);
    pn4.add(jlab13);
    pn4.add(jlab14);
    pn4.add(jlab15);
    pn4.add(jtf13);
    pn4.add(jtf14);
    pn4.add(jtf15);
    pn4.add(jtf16);
    pn4.add(jtf17);
    pn4.add(jbtn1);
    pn4.add(jbtn2);
    pn4.add(jbtn3);
    pn4.add(jbtn4);

    // jfrm layout all
    GridBagLayout CalLayout = new GridBagLayout();
    GridBagConstraints gbc = new GridBagConstraints();
    jfrm.setLayout(CalLayout);

    gbc.weightx = 1.0; //default 0.0
    gbc.weighty = 1.0; //default 0.0

    gbc.insets = new Insets(4, 4, 4, 4); // Add some space
    gbc.fill = GridBagConstraints.BOTH;

    gbc.gridwidth = 4;

    gbc.gridx = 0;
    gbc.gridy = 0;
    CalLayout.setConstraints(pn1, gbc);

    gbc.gridx = 0;
    gbc.gridy = 1;
    CalLayout.setConstraints(pn2, gbc);

    gbc.gridx = 0;
    gbc.gridy = 2;
    CalLayout.setConstraints(pn3, gbc);

    gbc.gridx = 0;
    gbc.gridy = 3;
    CalLayout.setConstraints(pn4, gbc);

    jfrm.add(pn1);
    jfrm.add(pn2);
    jfrm.add(pn3);
    jfrm.add(pn4);

    // Help Menu Bar
    JMenuBar jmb = new JMenuBar();
    JMenu jmh = new JMenu("Help");
    JMenuItem jmiAbout = new JMenuItem("About");
    jmiAbout.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            JOptionPane.showMessageDialog(jfrm,
                    "Name:          Chi Square Calculator\n" + "Version:       1.0\n"
                            + "Author:         Felix Yanhui Fan\n" + "EMail:           nolanfyh@gmail.com\n"
                            + "Website:     http://felixfan.github.io/ChiSquareCalculator\n");

        }
    });
    JMenuItem jmiLisence = new JMenuItem("Lisence");
    jmiLisence.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(jfrm,
                    "This program is licensed under the terms of \n"
                            + "the GNU General Public License version 3 \n" + "Available online under: \n"
                            + "http://www.gnu.org/licenses/gpl-3.0.html\n");

        }
    });

    jmh.add(jmiAbout);
    jmh.add(jmiLisence);

    jmb.add(Box.createHorizontalGlue()); // Aligning JMenu on the right corner of JMenuBar
    jmb.add(jmh);

    jfrm.setJMenuBar(jmb);

    jfrm.setVisible(true);
}

From source file:chisquarecalculator.ChisqCal.java

public ChisqCal() {
    final JFrame jfrm = new JFrame("Chi Square Calculator");
    jfrm.setSize(400, 550);/*from   w w  w  . j  a  va2  s . co m*/
    jfrm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jfrm.setResizable(false);

    // panel 1
    JPanel pn1 = new JPanel();
    pn1.setOpaque(true);
    pn1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "2 x 2"));

    JLabel jlab1 = new JLabel("class 1");
    JLabel jlab2 = new JLabel("class 2");
    JLabel jlab3 = new JLabel("case");
    JLabel jlab4 = new JLabel("control");

    jtf1 = new JTextField();
    jtf2 = new JTextField();
    jtf3 = new JTextField();
    jtf4 = new JTextField();

    // pn1 layout all
    GridBagLayout CalLayout1 = new GridBagLayout();
    GridBagConstraints gbc1 = new GridBagConstraints();
    pn1.setLayout(CalLayout1);
    gbc1.weightx = 1.0; //default 0.0
    gbc1.weighty = 1.0; //default 0.0      
    gbc1.insets = new Insets(4, 4, 4, 4); // Add some space
    gbc1.fill = GridBagConstraints.BOTH;

    gbc1.gridwidth = 1;

    gbc1.gridx = 1;
    gbc1.gridy = 0;
    CalLayout1.setConstraints(jlab1, gbc1);

    gbc1.gridx = 2;
    gbc1.gridy = 0;
    CalLayout1.setConstraints(jlab2, gbc1);

    gbc1.gridx = 0;
    gbc1.gridy = 1;
    CalLayout1.setConstraints(jlab3, gbc1);

    gbc1.gridx = 1;
    gbc1.gridy = 1;
    CalLayout1.setConstraints(jtf1, gbc1);

    gbc1.gridx = 2;
    gbc1.gridy = 1;
    CalLayout1.setConstraints(jtf2, gbc1);

    gbc1.gridx = 0;
    gbc1.gridy = 2;
    CalLayout1.setConstraints(jlab4, gbc1);

    gbc1.gridx = 1;
    gbc1.gridy = 2;
    CalLayout1.setConstraints(jtf3, gbc1);

    gbc1.gridx = 2;
    gbc1.gridy = 2;
    CalLayout1.setConstraints(jtf4, gbc1);

    pn1.add(jlab1);
    pn1.add(jlab2);
    pn1.add(jlab3);
    pn1.add(jlab4);
    pn1.add(jtf1);
    pn1.add(jtf2);
    pn1.add(jtf3);
    pn1.add(jtf4);

    // panel 2
    JPanel pn2 = new JPanel();
    pn2.setOpaque(true);
    pn2.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "2 x 3"));

    JLabel jlab5 = new JLabel("class 1");
    JLabel jlab6 = new JLabel("class 2");
    JLabel jlab7 = new JLabel("class 3");
    JLabel jlab8 = new JLabel("case");
    JLabel jlab9 = new JLabel("control");

    jtf5 = new JTextField();
    jtf6 = new JTextField();
    jtf7 = new JTextField();
    jtf8 = new JTextField();
    jtf9 = new JTextField();
    jtf10 = new JTextField();

    // pn2 layout all
    GridBagLayout CalLayout2 = new GridBagLayout();
    GridBagConstraints gbc2 = new GridBagConstraints();
    pn2.setLayout(CalLayout2);
    gbc2.weightx = 1.0; //default 0.0
    gbc2.weighty = 1.0; //default 0.0      
    gbc2.insets = new Insets(4, 4, 4, 4); // Add some space
    gbc2.fill = GridBagConstraints.BOTH;

    gbc2.gridwidth = 1;

    gbc2.gridx = 1;
    gbc2.gridy = 0;
    CalLayout2.setConstraints(jlab5, gbc2);

    gbc2.gridx = 2;
    gbc2.gridy = 0;
    CalLayout2.setConstraints(jlab6, gbc2);

    gbc2.gridx = 3;
    gbc2.gridy = 0;
    CalLayout2.setConstraints(jlab7, gbc2);

    gbc2.gridx = 0;
    gbc2.gridy = 1;
    CalLayout2.setConstraints(jlab8, gbc2);

    gbc2.gridx = 1;
    gbc2.gridy = 1;
    CalLayout2.setConstraints(jtf5, gbc2);

    gbc2.gridx = 2;
    gbc2.gridy = 1;
    CalLayout2.setConstraints(jtf6, gbc2);

    gbc2.gridx = 3;
    gbc2.gridy = 1;
    CalLayout2.setConstraints(jtf7, gbc2);

    gbc2.gridx = 0;
    gbc2.gridy = 2;
    CalLayout2.setConstraints(jlab9, gbc2);

    gbc2.gridx = 1;
    gbc2.gridy = 2;
    CalLayout2.setConstraints(jtf8, gbc2);

    gbc2.gridx = 2;
    gbc2.gridy = 2;
    CalLayout2.setConstraints(jtf9, gbc2);

    gbc2.gridx = 3;
    gbc2.gridy = 2;
    CalLayout2.setConstraints(jtf10, gbc2);

    pn2.add(jlab5);
    pn2.add(jlab6);
    pn2.add(jlab7);
    pn2.add(jlab8);
    pn2.add(jlab9);
    pn2.add(jtf5);
    pn2.add(jtf6);
    pn2.add(jtf7);
    pn2.add(jtf8);
    pn2.add(jtf9);
    pn2.add(jtf10);

    // panel 3      
    JPanel pn3 = new JPanel();
    pn3.setOpaque(true);
    pn3.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "statistic"));

    JLabel jlab10 = new JLabel("chi-square");
    JLabel jlab11 = new JLabel("degree of freedom");

    jtf11 = new JTextField();
    jtf12 = new JTextField();

    GridBagLayout CalLayout3 = new GridBagLayout();
    GridBagConstraints gbc3 = new GridBagConstraints();
    pn3.setLayout(CalLayout3);
    gbc3.weightx = 1.0; //default 0.0
    gbc3.weighty = 1.0; //default 0.0      
    gbc3.insets = new Insets(4, 4, 4, 4); // Add some space
    gbc3.fill = GridBagConstraints.BOTH;

    gbc3.gridwidth = 1;

    gbc3.gridx = 0;
    gbc3.gridy = 0;
    CalLayout3.setConstraints(jlab10, gbc3);

    gbc3.gridwidth = 3;

    gbc3.gridx = 1;
    gbc3.gridy = 0;
    CalLayout3.setConstraints(jtf11, gbc3);

    gbc3.gridwidth = 2;

    gbc3.gridx = 0;
    gbc3.gridy = 1;
    CalLayout3.setConstraints(jlab11, gbc3);

    gbc3.gridx = 2;
    gbc3.gridy = 1;
    CalLayout3.setConstraints(jtf12, gbc3);

    pn3.add(jlab10);
    pn3.add(jlab11);
    pn3.add(jtf11);
    pn3.add(jtf12);

    JPanel pn4 = new JPanel();
    pn4.setOpaque(true);
    pn4.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "result"));

    JLabel jlab12 = new JLabel("p-value");
    final JLabel jlab13 = new JLabel("odds ratio");
    final JLabel jlab14 = new JLabel("standard error");
    final JLabel jlab15 = new JLabel("confidence interval 95%");

    jtf13 = new JTextField();
    jtf14 = new JTextField();
    jtf15 = new JTextField();
    jtf16 = new JTextField();
    jtf17 = new JTextField();

    jlab13.setEnabled(false);
    jlab14.setEnabled(false);
    jlab15.setEnabled(false);
    jtf14.setEnabled(false);
    jtf15.setEnabled(false);
    jtf16.setEnabled(false);
    jtf17.setEnabled(false);

    JButton jbtn1 = new JButton("Run 2x2");
    jbtn1.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            long number1, number2, number3, number4;
            try {
                number1 = Long.parseLong(jtf1.getText());
                number2 = Long.parseLong(jtf2.getText());
                number3 = Long.parseLong(jtf3.getText());
                number4 = Long.parseLong(jtf4.getText());
            } catch (Exception ne) {
                JOptionPane.showMessageDialog(jfrm, "Error: Bad input, only integer is acceptable!");
                return;
            }

            long[][] obs = new long[2][2];

            obs[0][0] = number1;
            obs[0][1] = number2;
            obs[1][0] = number3;
            obs[1][1] = number4;

            ChiSquareTest mychiSquare = new ChiSquareTest();

            final java.text.DecimalFormat mydf = new java.text.DecimalFormat("0.0000");

            double stats = mychiSquare.chiSquare(obs);
            jtf11.setText(String.valueOf(mydf.format(stats)));
            jtf12.setText(String.valueOf(1));

            double pvalue = mychiSquare.chiSquareTest(obs);
            jtf13.setText(String.valueOf(pvalue));

            jtf5.setText("");
            jtf6.setText("");
            jtf7.setText("");
            jtf8.setText("");
            jtf9.setText("");
            jtf10.setText("");

            jlab13.setEnabled(true);
            jlab14.setEnabled(true);
            jlab15.setEnabled(true);
            jtf14.setEnabled(true);
            jtf15.setEnabled(true);
            jtf16.setEnabled(true);
            jtf17.setEnabled(true);

            double or = (double) (number2 * number3) / (number1 * number4);
            double se = Math.sqrt(
                    (double) 1 / number1 + (double) 1 / number2 + (double) 1 / number3 + (double) 1 / number4);
            double logOR = Math.log(or);
            double logU95 = logOR + 1.96 * se;
            double logL95 = logOR - 1.96 * se;
            double U95 = Math.exp(logU95);
            double L95 = Math.exp(logL95);

            jtf14.setText(String.valueOf(mydf.format(or)));
            jtf15.setText(String.valueOf(mydf.format(se)));
            jtf16.setText(String.valueOf(mydf.format(L95)));
            jtf17.setText(String.valueOf(mydf.format(U95)));

        }
    });

    JButton jbtn2 = new JButton("Run 2x3");
    jbtn2.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            long number1, number2, number3, number4, number5, number6;
            try {
                number1 = Long.parseLong(jtf5.getText());
                number2 = Long.parseLong(jtf6.getText());
                number3 = Long.parseLong(jtf7.getText());
                number4 = Long.parseLong(jtf8.getText());
                number5 = Long.parseLong(jtf9.getText());
                number6 = Long.parseLong(jtf10.getText());
            } catch (Exception ne) {
                JOptionPane.showMessageDialog(jfrm, "Error: Bad input, only integer is acceptable!");
                return;
            }

            long[][] obs = new long[2][3];

            obs[0][0] = number1;
            obs[0][1] = number2;
            obs[0][2] = number3;
            obs[1][0] = number4;
            obs[1][1] = number5;
            obs[1][2] = number6;

            ChiSquareTest mychiSquare = new ChiSquareTest();

            final java.text.DecimalFormat mydf = new java.text.DecimalFormat("0.0000");

            double stats = mychiSquare.chiSquare(obs);
            jtf11.setText(String.valueOf(mydf.format(stats)));
            jtf12.setText(String.valueOf(2));

            double pvalue = mychiSquare.chiSquareTest(obs);
            jtf13.setText(String.valueOf(pvalue));

            jtf1.setText("");
            jtf2.setText("");
            jtf3.setText("");
            jtf4.setText("");
            jtf14.setText("");
            jtf15.setText("");
            jtf16.setText("");
            jtf17.setText("");

            jlab13.setEnabled(false);
            jlab14.setEnabled(false);
            jlab15.setEnabled(false);
            jtf14.setEnabled(false);
            jtf15.setEnabled(false);
            jtf16.setEnabled(false);
            jtf17.setEnabled(false);

        }
    });

    JButton jbtn3 = new JButton("Run Statistic");
    jbtn3.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            double stat, df;
            try {
                stat = Double.parseDouble(jtf11.getText());
                df = Double.parseDouble(jtf12.getText());
            } catch (Exception ne) {
                JOptionPane.showMessageDialog(jfrm, "Error: Bad input, only number is acceptable!");
                return;
            }
            ChiSquaredDistribution distribution = new ChiSquaredDistribution(df);
            double pvalue = 1 - distribution.cumulativeProbability(stat);
            jtf13.setText(String.valueOf(pvalue));

            jtf1.setText("");
            jtf2.setText("");
            jtf3.setText("");
            jtf4.setText("");
            jtf5.setText("");
            jtf6.setText("");
            jtf7.setText("");
            jtf8.setText("");
            jtf9.setText("");
            jtf10.setText("");
            jtf14.setText("");
            jtf15.setText("");
            jtf16.setText("");
            jtf17.setText("");

            jlab13.setEnabled(false);
            jlab14.setEnabled(false);
            jlab15.setEnabled(false);
            jtf14.setEnabled(false);
            jtf15.setEnabled(false);
            jtf16.setEnabled(false);
            jtf17.setEnabled(false);
        }
    });

    JButton jbtn4 = new JButton("clear");
    jbtn4.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            jtf1.setText("");
            jtf2.setText("");
            jtf3.setText("");
            jtf4.setText("");
            jtf5.setText("");
            jtf6.setText("");
            jtf7.setText("");
            jtf8.setText("");
            jtf9.setText("");
            jtf10.setText("");
            jtf11.setText("");
            jtf12.setText("");
            jtf13.setText("");
            jtf14.setText("");
            jtf15.setText("");
            jtf16.setText("");
            jtf17.setText("");

            jlab13.setEnabled(false);
            jlab14.setEnabled(false);
            jlab15.setEnabled(false);
            jtf14.setEnabled(false);
            jtf15.setEnabled(false);
            jtf16.setEnabled(false);
            jtf17.setEnabled(false);
        }
    });

    GridBagLayout CalLayout4 = new GridBagLayout();
    GridBagConstraints gbc4 = new GridBagConstraints();
    pn4.setLayout(CalLayout4);
    gbc4.weightx = 1.0; //default 0.0
    gbc4.weighty = 1.0; //default 0.0      
    // gbc4.insets = new Insets(4, 4, 4, 4); // Add some space
    gbc4.insets = new Insets(1, 1, 1, 1);
    gbc4.fill = GridBagConstraints.BOTH;

    gbc4.gridwidth = 1;

    gbc4.gridx = 0;
    gbc4.gridy = 0;
    CalLayout4.setConstraints(jbtn1, gbc4);

    gbc4.gridx = 1;
    gbc4.gridy = 0;
    CalLayout4.setConstraints(jbtn2, gbc4);

    gbc4.gridx = 2;
    gbc4.gridy = 0;
    CalLayout4.setConstraints(jbtn3, gbc4);

    gbc4.gridx = 3;
    gbc4.gridy = 0;
    CalLayout4.setConstraints(jbtn4, gbc4);

    gbc4.gridx = 0;
    gbc4.gridy = 1;
    CalLayout4.setConstraints(jlab12, gbc4);

    gbc4.gridwidth = 3;

    gbc4.gridx = 1;
    gbc4.gridy = 1;
    CalLayout4.setConstraints(jtf13, gbc4);

    gbc4.gridwidth = 2;

    gbc4.gridx = 0;
    gbc4.gridy = 2;
    CalLayout4.setConstraints(jlab13, gbc4);

    gbc4.gridx = 2;
    gbc4.gridy = 2;
    CalLayout4.setConstraints(jtf14, gbc4);

    gbc4.gridx = 0;
    gbc4.gridy = 3;
    CalLayout4.setConstraints(jlab14, gbc4);

    gbc4.gridx = 2;
    gbc4.gridy = 3;
    CalLayout4.setConstraints(jtf15, gbc4);

    gbc4.gridx = 0;
    gbc4.gridy = 4;
    CalLayout4.setConstraints(jlab15, gbc4);

    gbc4.gridwidth = 1;

    gbc4.gridx = 2;
    gbc4.gridy = 4;
    CalLayout4.setConstraints(jtf16, gbc4);

    gbc4.gridx = 3;
    gbc4.gridy = 4;
    CalLayout4.setConstraints(jtf17, gbc4);

    pn4.add(jlab12);
    pn4.add(jlab13);
    pn4.add(jlab14);
    pn4.add(jlab15);
    pn4.add(jtf13);
    pn4.add(jtf14);
    pn4.add(jtf15);
    pn4.add(jtf16);
    pn4.add(jtf17);
    pn4.add(jbtn1);
    pn4.add(jbtn2);
    pn4.add(jbtn3);
    pn4.add(jbtn4);

    // jfrm layout all
    GridBagLayout CalLayout = new GridBagLayout();
    GridBagConstraints gbc = new GridBagConstraints();
    jfrm.setLayout(CalLayout);

    gbc.weightx = 1.0; //default 0.0
    gbc.weighty = 1.0; //default 0.0

    gbc.insets = new Insets(4, 4, 4, 4); // Add some space
    gbc.fill = GridBagConstraints.BOTH;

    gbc.gridwidth = 4;

    gbc.gridx = 0;
    gbc.gridy = 0;
    CalLayout.setConstraints(pn1, gbc);

    gbc.gridx = 0;
    gbc.gridy = 1;
    CalLayout.setConstraints(pn2, gbc);

    gbc.gridx = 0;
    gbc.gridy = 2;
    CalLayout.setConstraints(pn3, gbc);

    gbc.gridx = 0;
    gbc.gridy = 3;
    CalLayout.setConstraints(pn4, gbc);

    jfrm.add(pn1);
    jfrm.add(pn2);
    jfrm.add(pn3);
    jfrm.add(pn4);

    // Help Menu Bar
    JMenuBar jmb = new JMenuBar();
    JMenu jmh = new JMenu("Help");
    JMenuItem jmiAbout = new JMenuItem("About");
    jmiAbout.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent arg0) {
            JOptionPane.showMessageDialog(jfrm,
                    "Name:          Chi Square Calculator\n" + "Version:       1.0\n"
                            + "Author:         Felix Yanhui Fan\n" + "EMail:          felixfanyh@gmail.com\n"
                            + "Website:     http://felixfan.github.io/ChiSquareCalculator\n");
        }
    });
    JMenuItem jmiLisence = new JMenuItem("Lisence");
    jmiLisence.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            JOptionPane.showMessageDialog(jfrm,
                    "This program is licensed under the terms of \n"
                            + "the GNU General Public License version 3 \n" + "Available online under: \n"
                            + "http://www.gnu.org/licenses/gpl-3.0.html\n");
        }
    });

    jmh.add(jmiAbout);
    jmh.add(jmiLisence);

    jmb.add(Box.createHorizontalGlue()); // Aligning JMenu on the right corner of JMenuBar
    jmb.add(jmh);

    jfrm.setJMenuBar(jmb);

    jfrm.setVisible(true);
}

From source file:onetimepad.frame.java

public frame() {
    //create a layout
    JFrame app = new JFrame("secure chat");
    fc = new JFileChooser();
    app.setLayout(new BorderLayout());
    log = new JTextArea(15, 30);
    log.setMargin(new Insets(5, 5, 5, 5));
    log.setEditable(false);//from w  w w.  j  a  va  2  s  . c  o  m
    JScrollPane logScrollPane = new JScrollPane(log);
    //Create the open button
    newchat = new JButton("Start new chat");
    newchat.addActionListener(this);

    //Create the save button.
    loadchat = new JButton("Load key");
    loadchat.addActionListener(this);

    sendmessage = new JButton("send");
    sendmessage.addActionListener(this);

    start = new JButton("start");
    start.addActionListener(this);

    JPanel buttonPanel = new JPanel();
    buttonPanel.add(newchat);
    buttonPanel.add(loadchat);
    buttonPanel.add(sendmessage);
    buttonPanel.add(start);

    JPanel you = new JPanel();
    JTextArea me = new JTextArea("Username: ");
    me.setEnabled(false);
    name = new JTextArea();
    name.setColumns(20);
    you.add(me);
    you.add(name);

    JPanel rec = new JPanel();
    JTextArea to = new JTextArea("To: ");
    to.setEnabled(false);
    user = new JTextArea();
    user.setColumns(20);
    rec.add(to);
    rec.add(user);

    JPanel deelnemers = new JPanel();
    deelnemers.setLayout(new BorderLayout());
    deelnemers.add(you, BorderLayout.PAGE_START);
    deelnemers.add(rec, BorderLayout.CENTER);

    JPanel top = new JPanel();
    top.setLayout(new BorderLayout());
    top.add(buttonPanel, BorderLayout.PAGE_START);
    top.add(deelnemers, BorderLayout.CENTER);

    JPanel send = new JPanel();
    send.setLayout(new BorderLayout());
    JTextArea label = new JTextArea("Message: ");
    label.setEnabled(false);
    message = new JTextArea();
    message.setColumns(30);
    message.setRows(3);

    send.add(label, BorderLayout.PAGE_START);
    send.add(message, BorderLayout.CENTER);

    super.add(top, BorderLayout.PAGE_START);
    super.add(send, BorderLayout.CENTER);
    super.add(logScrollPane, BorderLayout.SOUTH);
}