Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.Color;
- import java.awt.event.*;
- import javax.swing.*;
- import org.jfree.chart.ChartFactory;
- import org.jfree.chart.ChartFrame;
- import org.jfree.chart.JFreeChart;
- import org.jfree.chart.plot.PlotOrientation;
- import org.jfree.data.xy.XYSeries;
- import org.jfree.data.xy.XYSeriesCollection;
- public class mmm1_0 extends JFrame implements ActionListener {
- JButton JWykresX = new JButton("Wykres położenia x");
- JButton JWykresY = new JButton("Wykres położenia y");
- JButton JWykresVx = new JButton("Wykres prędkości Vx");
- JButton JWykresVy = new JButton("Wykres prędkości Vy");
- JTextField JM1 = new JTextField();
- JTextField JM2 = new JTextField();
- JTextField JK1 = new JTextField();
- JTextField JK2 = new JTextField();
- JTextField JB = new JTextField();
- JRadioButton JProstokat = new JRadioButton();
- JRadioButton JTrojkat = new JRadioButton();
- JRadioButton JSinus = new JRadioButton();
- ButtonGroup grupa_radiowa = new ButtonGroup();
- JLabel Probny1 = new JLabel();
- JLabel Probny2 = new JLabel();
- double u[];
- double x[];
- double y[];
- double vx[];
- double vy[];
- int wybranePobudzenie;
- public mmm1_0() {
- super("Model amortyzatora");
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- setVisible(true);
- setSize(1000,600);
- setLayout(null);
- wybranePobudzenie=0;
- JWykresX.addActionListener(this);
- JWykresY.addActionListener(this);
- JWykresVx.addActionListener(this);
- JWykresVy.addActionListener(this);
- add(JWykresX);
- JWykresX.setBounds(20, 450, 160, 30);
- JWykresX.setBackground(new Color(238, 238, 0));
- add(JWykresY);
- JWykresY.setBounds(200, 450, 160, 30);
- JWykresY.setBackground(new Color(238, 238, 0));
- add(JWykresVx);
- JWykresVx.setBounds(380, 450, 160, 30);
- JWykresVx.setBackground(new Color(238, 238, 0));
- add(JWykresVy);
- JWykresVy.setBounds(560, 450, 160, 30);
- JWykresVy.setBackground(new Color(238, 238, 0));
- JLabel JNapis1 = new JLabel("Wpisz parametry:");
- JNapis1.setBounds(100, 50, 150, 30);
- add(JNapis1);
- JLabel JNapisM1 = new JLabel("m1 = ");
- JNapisM1.setBounds(100, 100, 33, 30);
- add(JNapisM1);
- add(JM1);
- JM1.setBounds(140, 100, 80, 30);
- JLabel JNapisM2 = new JLabel("m2 = ");
- JNapisM2.setBounds(100, 150, 33, 30);
- add(JNapisM2);
- add(JM2);
- JM2.setBounds(140, 150, 80, 30);
- JLabel JNapisK1 = new JLabel("k1 = ");
- JNapisK1.setBounds(100, 200, 33, 30);
- add(JNapisK1);
- add(JK1);
- JK1.setBounds(140, 200, 80, 30);
- JLabel JNapisK2 = new JLabel("k2 = ");
- JNapisK2.setBounds(100, 250, 33, 30);
- add(JNapisK2);
- add(JK2);
- JK2.setBounds(140, 250, 80, 30);
- JLabel JNapisB = new JLabel("b = ");
- JNapisB.setBounds(100, 300, 30, 30);
- add(JNapisB);
- add(JB);
- JB.setBounds(140, 300, 80, 30);
- JLabel JNapis2 = new JLabel("Pobudzenie sygnałem u:");
- JNapis2.setBounds(300, 50, 200, 30);
- add(JNapis2);
- add(JProstokat);
- JProstokat.setText("prostokątnym");
- JProstokat.setBounds(300, 100, 150, 30);
- grupa_radiowa.add(JProstokat);
- JProstokat.addActionListener(this);
- add(JTrojkat);
- JTrojkat.setText("trójkątnym");
- JTrojkat.setBounds(300, 150, 150, 30);
- grupa_radiowa.add(JTrojkat);
- JTrojkat.addActionListener(this);
- add(JSinus);
- JSinus.setText("harmonicznym");
- JSinus.setBounds(300, 200, 150, 30);
- grupa_radiowa.add(JSinus);
- JSinus.addActionListener(this);
- Probny1.setText("nic");
- Probny1.setBounds(500, 100, 100, 30);
- add(Probny1);
- Probny2.setText("nic");
- Probny2.setBounds(500, 150, 100, 30);
- add(Probny2);
- // JLabel obrazek1 = new JLabel();
- // add(obrazek1);
- // obrazek1.setBounds(450, 50, 148, 272);
- // obrazek1.setIcon(new ImageIcon("obrazy/schemat.jpg"));
- // JLabel JObrazek2 = new JLabel(new ImageIcon("schemat.jpg"));
- // JObrazek2.setBounds(450, 50, 148, 272);
- // JObrazek2.setVisible(true);
- //
- }
- public void actionPerformed(ActionEvent evt){
- boolean blad = false;
- double m1=1.0, m2=1.0, k1=1., k2=1., b=1.;
- Object klikniete = evt.getSource();
- try {
- m1 = Double.parseDouble(JM1.getText());
- }
- catch(NumberFormatException e) {
- JM1.setText("błędne dane");
- blad=true;
- }
- try {
- m2 = Double.parseDouble(JM2.getText());
- }
- catch(NumberFormatException e) {
- JM2.setText("błędne dane");
- blad=true;
- }
- try {
- k1 = Double.parseDouble(JK1.getText());
- }
- catch(NumberFormatException e) {
- JK1.setText("błędne dane");
- blad=true;
- }
- try {
- k2 = Double.parseDouble(JK2.getText());
- }
- catch(NumberFormatException e) {
- JK2.setText("błędne dane");
- blad=true;
- }
- try {
- b = Double.parseDouble(JB.getText());
- }
- catch(NumberFormatException e) {
- JB.setText("błędne dane");
- blad=true;
- }
- if (klikniete==JProstokat){
- wybranePobudzenie=1;
- Probny2.setText("Prostokat");
- }
- if (klikniete==JTrojkat){
- wybranePobudzenie=2;
- Probny2.setText("Trojkat");
- }
- if (klikniete==JSinus){
- wybranePobudzenie=3;
- Probny2.setText("Sinus");
- }
- if (wybranePobudzenie==0)
- blad=true;
- if (!blad){
- if (klikniete == JWykresX) {
- Probny1.setText("X");
- wykres("Wykres X", wybranePobudzenie, m1, m2, k1, k2, b);
- }
- if (klikniete == JWykresY) {
- Probny1.setText("Y");
- wykres("Wykres Y", wybranePobudzenie, m1, m2, k1, k2, b);
- }
- if (klikniete == JWykresVx) {
- Probny1.setText("Vx");
- wykres("Wykres Vx", wybranePobudzenie, m1, m2, k1, k2, b);
- }
- if (klikniete == JWykresVy) {
- Probny1.setText("Vy");
- wykres("Wykres Vy", wybranePobudzenie, m1, m2, k1, k2, b);
- }
- }
- }
- public static void wykres(String tytul, int ktory, double m1, double m2, double k1, double k2, double b){
- //Dane do wykresu 3d
- XYSeries series = new XYSeries("XYGraph");
- series.add(0, ktory);
- series.add(1, m1);
- series.add(2, m2);
- series.add(3, k1);
- series.add(4, k2);
- series.add(5, b);
- XYSeriesCollection dataset = new XYSeriesCollection();
- dataset.addSeries(series);
- //Tworzymy wykres XY
- JFreeChart chart = ChartFactory.createXYLineChart(
- tytul,//Tytuł
- "x- Lable", // x-axis Opis
- "y- Lable", // y-axis Opis
- dataset, // Dane
- PlotOrientation.VERTICAL, // Orjentacja wykresu /HORIZONTAL
- true, // pozkaż legende
- true, // podpowiedzi tooltips
- false
- );
- //Dodanie wykresu do okna
- ChartFrame frame1=new ChartFrame("XYArea Chart",chart);
- frame1.setVisible(true);
- frame1.setSize(500,400);
- }
- public static void main(String[] args) {
- new mmm1_0();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement