Nie wiem kompletnie jak poukładać kod, żeby działał. Przede wszystkim problem ze zmiennymi: wczytuję do N, UpperLimit i LowerLimit z labeli i nie mogę z nich korzystać następnie w main. Po prostu nie wiem.

Bardzo proszę, żeby ktoś mi z tym pomógł, poniżej kod źródłowy.

 

import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.text.NumberFormat;
import java.util.Random;
import javax.swing.*;
import org.jfree.chart.ChartFactory;
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 misiek implements Runnable, ActionListener
{
     public static int TableOfResults[][];
     public static int  Nmax, Hrozmiar;
     
   JFrame ramka;
   JPanel panel;
   JComboBox combobox;
   JLabel label1, label2, label3, label4, label5, label6, wykres;
   JButton rysuj, czysc;
   JTextField textfield1, textfield2, textfield3, textfield4, textfield5;
   XYSeries series;
   XYSeriesCollection seriescollection;
   JFreeChart freechart;
   BufferedImage image;
         
   public double a, b, c, x=0, bound1, bound2, LowerLimit, UpperLimit;
   public int time=0, N;
   boolean draw=false;
   
   public misiek(){
      
      
      ramka=new JFrame("Wykresy");
      ramka.setLayout(null);
      ramka.setSize(1000,700);
      ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
      //menu
      panel=new JPanel();
      panel.setLayout(new GridLayout(14,1));
      panel.setBackground(Color.LIGHT_GRAY);
      panel.setBounds(0,0,100,600);
      panel.setVisible(true);
      ramka.add(panel);
      
      rysuj=new JButton("rysuj");
      rysuj.addActionListener(this);
      panel.add(rysuj);   
      
      label1=new JLabel(" funkcja f(x)");
      panel.add(label1);
      
      combobox=new JComboBox();
      combobox.addItem("CountSort");
      combobox.addItem("SelectSort");
      combobox.addItem("Porównanie");
      panel.add(combobox);

      label2=new JLabel("Dolna Granica:");
      panel.add(label2);
      
      textfield1=new JTextField("0");
      panel.add(textfield1);
      
      label3=new JLabel("Górna Granica:");
      panel.add(label3);
      
      textfield2=new JTextField("10");
      panel.add(textfield2);
      
      label4=new JLabel("Ilość elementów");
      panel.add(label4);
      
      textfield3=new JTextField("1");
      panel.add(textfield3);
      
     
      
      czysc=new JButton("czysc");
      czysc.addActionListener(this);
      panel.add(czysc);   
      
      series=new XYSeries("");
      seriescollection=new XYSeriesCollection();
      freechart=ChartFactory.createXYLineChart(" ", "x", "f(x)", seriescollection, PlotOrientation.VERTICAL, true, true, false);   
      image=freechart.createBufferedImage(800, 500);
      
      
      //miejsce na wykres
      wykres=new JLabel();
      wykres.setIcon(new ImageIcon(image));
      wykres.setBounds(110, 10, 680, 580);
      ramka.add(wykres);      
      
      ramka.setVisible(true);
      ramka.requestFocus();
    
      N = Integer.valueOf(textfield3.getText()).intValue();
      LowerLimit = Double.parseDouble(textfield1.getText()); 
      UpperLimit = Double.parseDouble(textfield2.getText()); 

   }
 
   public void glowna(){
       final int p = 100;
    final int h = 5;
    int []T;
    int []Ts;
    int [][]results;
    int IndexTs = 0;
    int TsDominate = 0;
   
    
    T = new int[N];
    Ts = new int[p];
    results = new int[N][3];
 
    
    int i, j, k;
 
    float avarage;

   Random generator = new Random();
       
 
    for(i = h; i<N; i=i+h)
    {   IndexTs = 0;
            for(k=1; k<=p; k++, IndexTs++)
            {   for(j=0; j<=i-1; j++)
                    T[j] =(int) (generator.nextFloat()* (UpperLimit - LowerLimit) + LowerLimit);
                    TsDominate = Wykresy.select(T, i);
                    Ts[IndexTs] = TsDominate;
            }
 
            avarage = 0;
           for(j = 0; j<=p-1; j++)
               avarage = avarage + Ts[j];
               avarage = avarage / p;
 
               results[i][0] = i;
               results[i][1] = (int)avarage;
               results[i][2] = (i*i-i)/2;
 
    }
    
        TableOfResults = results;
        Nmax = N;
        Hrozmiar = h;
   }
   
  public static void main(String[] args){
   
   misiek wykres=new misiek();
   wykres.glowna();

   }
  

   public void run()
   {

   while(draw==true)
      {
      try
         {
         Thread.sleep(10);
         }
      catch(InterruptedException exc)
         {
         return;
         }
      if(x<=UpperLimit)
      {
   int x=0, i=0;
      
       if(combobox.getSelectedItem()=="CountSort")
 
      {
          for(i=0;i<Nmax-5;i=i+5,x++)
          series.add(x, TableOfResults[x][2]);
      }
   
      if(combobox.getSelectedItem()=="SelectSort")
 
      { for(i=0; i<Nmax-5; i=i+5, x++)
          series.add(x, (i*i-i)/2);
      }
      
      seriescollection.removeAllSeries();
      seriescollection.addSeries(series);
      freechart=ChartFactory.createXYLineChart(" ", "x", "f(x)", seriescollection, PlotOrientation.VERTICAL, false, false, false);
      image=freechart.createBufferedImage(800, 500);
      wykres.setIcon(new ImageIcon(image));
      time++;
      }
      else
         {
         draw=false;
         }
      }
   }
      
   public void actionPerformed(ActionEvent e)
   {
   if(e.getActionCommand()=="czysc")
      {
      draw=false;
      time=0;
      series.clear();
      seriescollection.removeAllSeries();
      freechart=ChartFactory.createXYLineChart(" ", "x", "f(x)", seriescollection, PlotOrientation.VERTICAL, true, true, false);
      image=freechart.createBufferedImage(800, 500);
      wykres.setIcon(new ImageIcon(image));
      }
   if(e.getActionCommand()=="rysuj")
   {
   draw=true;
   Thread t=new Thread(this);
   t.start();
   }
   
   }


}