/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package app;
import javax.swing.JComponent;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import org.jzy3d.chart.Chart;
import org.jzy3d.colors.Color;
import org.jzy3d.colors.ColorMapper;
import org.jzy3d.colors.colormaps.ColorMapRainbow;
import org.jzy3d.maths.Range;
import org.jzy3d.plot3d.builder.Builder;
import org.jzy3d.plot3d.builder.Mapper;
import org.jzy3d.plot3d.builder.concrete.OrthonormalGrid;
import org.jzy3d.plot3d.primitives.Shape;
import org.jzy3d.plot3d.rendering.canvas.*;
import org.jzy3d.plot3d.rendering.canvas.CanvasAWT;
import org.jzy3d.bridge.*;
/**
*
* @author kael
*/
public class App extends javax.swing.JFrame {
private final JPanel panel1 = new JPanel();
private final JPanel panel2 = new JPanel();
private final JPanel panel3 = new JPanel();
private final JLabel Banner = new JLabel("Environmental Degrading");
private final JLabel s1 = new JLabel("Rate Degrading For Jan");
JLabel s2 = new JLabel("Rate Degrading For Dec");
JTextField s1text = new JTextField(2);
JTextField s2text = new JTextField(2);
JButton Intro = new JButton("Introduction");
JButton Calc = new JButton("Calculate");
JPanel contentPane = new JPanel(new BorderLayout());
private final JPanel paneljan = new JPanel();
private final JPanel paneldec = new JPanel();
private final JPanel panelIntro = new JPanel();
private final JPanel graphpanel = new JPanel();
public App() {
mainGUI();
Mapper mapper = new Mapper() {
public double f(double x, double y) {
return x * Math.sin(x * y);
}
};
// Define range and precision for the function to plot
Range range = new Range(-3, 3);
int steps = 80;
// Create the object to represent the function over the given range.
final Shape surface = Builder.buildOrthonormal(new OrthonormalGrid(range, steps, range, steps), mapper);
surface.setColorMapper(new ColorMapper(new ColorMapRainbow(), surface.getBounds().getZmin(), surface.getBounds().getZmax(), new Color(1, 1, 1, .5f)));
surface.setFaceDisplayed(true);
surface.setWireframeDisplayed(false);
panelIntro.setLayout(new java.awt.BorderLayout());
Chart chart = new Chart(Quality.Advanced, "swing");
chart.getScene().getGraph().add(surface);
chart.render();
panelIntro.add((JPanel)chart.getCanvas());
//panelIntro.setPreferredSize(new Dimension(300,300));
}
public void mainGUI(){
Calc.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
panelIntro.setVisible(false);
panel2.setVisible(true);
}
});
Intro.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
panelIntro.setVisible(true);
panel2.setVisible(false);
}
});
paneljan.setLayout(new FlowLayout());
paneldec.setLayout(new FlowLayout());
paneljan.add(s1);
paneljan.add(s1text);
paneldec.add(s2);
paneldec.add(s2text);
panel3.add(Banner, rootPane);
panel2.add(paneljan);
panel2.add(paneldec);
panel2.setLayout(new GridLayout(12,2,2,1));
panel1.setLayout(new GridLayout(12,2,2,1));
panel1.add(Intro);
panel1.add(Calc);
panel1.setAlignmentX(Component.CENTER_ALIGNMENT);
s1text.setEditable(true);
s2text.setEditable(true);
panel2.setVisible(false);
JPanel contentPane = new JPanel(new BorderLayout());
//contentPane.setBorder();
contentPane.add(panel1, BorderLayout.LINE_START);
contentPane.add(panelIntro, BorderLayout.CENTER);
contentPane.add(panel2, BorderLayout.CENTER);
contentPane.add(panel3, BorderLayout.PAGE_START);
this.add(contentPane);
}
public void Calc(){
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws Exception {
// TODO code application logic here
App newapp = new App();
newapp.setVisible(true);
newapp.setSize(800,600);
newapp.setDefaultCloseOperation(EXIT_ON_CLOSE);
//newapp.remove(panel2);
}
}