Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » General (non-technical) » Polish users » Problem z parseFloat w pętli(parseFloat problem projekt java)
Problem z parseFloat w pętli [message #1694487] Tue, 05 May 2015 15:23 Go to next message
Jakub Sobierski is currently offline Jakub SobierskiFriend
Messages: 1
Registered: May 2015
Junior Member
łWitam, mam pewien problem z parseFloat, ponieważ gdy próbóje umieścić go w pętli to odrazu wyświetla mi się stranie dużo błedów w eclipse.
for(i=0;i<5;i++) {					//sumowanie uzywajac combobox
for(j=0;j<5;j++) {
				tabela[i][j]=Float.parseFloat(data[i][j]);	//TUTAJ CO NIE TAK...
		System.out.println(tabela[i][j]);
	        wynik=wynik+tabela[i][j];
			            	rtext.setText("Suma kolumn="+wynik);
			            				 }
								 }


Umieszczę jeszcze cały kod, być może gdzieś indziej znajduje się błąd.
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/*import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;*/
import java.util.EventObject;

import javax.swing.*;
import javax.swing.border.Border;
import javax.swing.table.JTableHeader;										


//deklaracja bibliotek


public class Main extends JFrame{

	public static void main(String[] args) throws NumberFormatException { //main
		
	
		Main okno=new Main();
//		PrintWriter out = new PrintWriter("C:\\Tablica.txt");
	}
	JFrame f=new JFrame();
	
	JPanel p=new JPanel();
	
	JMenuBar jmb = new JMenuBar();
	JMenu file=new JMenu("Plik");
	JMenuItem zap2=new JMenuItem("Zapisz");		//tworzenie menu
	JMenuItem exit=new JMenuItem("Zakończ");
	
	//JMenu edit=new JMenu("Edycja");
	
	JMenu view=new JMenu("Widok");
	JMenuItem stanu=new JMenuItem("Pasek stanu");
	
	JMenu obl=new JMenu("Obliczenia");
	JMenuItem suma=new JMenuItem("Suma");
	JMenuItem avg=new JMenuItem("Średnia");			
	JMenuItem min=new JMenuItem("Minimum");
	JMenuItem max=new JMenuItem("Maximum");
	
	JMenu help=new JMenu("Pomoc");
	JMenuItem hitem1=new JMenuItem("Info");
	
	
	JToolBar tb=new JToolBar("123", JToolBar.VERTICAL);		//tworzenie toolbar
	Icon zap = new ImageIcon(getClass().getResource("save.png"));
	JButton save=new JButton(zap);
	Icon quit = new ImageIcon(getClass().getResource("wyjscie.png"));
	JButton qui=new JButton(quit);
	Icon wyp = new ImageIcon(getClass().getResource("wyp.png"));
	JButton wype=new JButton(wyp);
	Icon zer = new ImageIcon(getClass().getResource("zerow.png"));
	JButton zerow=new JButton(zer);
	Icon sum = new ImageIcon(getClass().getResource("sum.png"));
	JButton suma1=new JButton(sum);
	Icon avra = new ImageIcon(getClass().getResource("srednia.png"));
	JButton avg1=new JButton(avra);
	Icon mini = new ImageIcon(getClass().getResource("min.png"));
	JButton min1=new JButton(mini);
	Icon maxi = new ImageIcon(getClass().getResource("max.png"));
	JButton max1=new JButton(maxi);
	Icon pom = new ImageIcon(getClass().getResource("inf.png"));
	JButton pom1=new JButton(pom);
	
	
	
	JLabel jl1=new JLabel("Wprowadź liczbę");
	JLabel jl2=new JLabel("Numer Wiersza");
	JLabel jl3=new JLabel("Numer kolumny");
	JTextField liczba1=new JTextField();		//slidery i textfieldy
	JSlider wiersz=new JSlider(0, 4, 0);		//do wprowadzania danych
	JSlider kolumna=new JSlider(0, 4, 0);
	
	
	String[] columns123 = {"0", "1", "2", "3","4"};
 String[][] data = {{"0.0","0.0","0.0","0.0","0.0"},
    				   {"0.0","0.0","0.0","0.0","0.0"},
    				   {"0.0","0.0","0.0","0.0","0.0"},
    				   {"0.0","0.0","0.0","0.0","0.0"},
    				   {"0.0","0.0","0.0","0.0","0.0"}};

	JTable jt=new JTable(data, columns123);				//tworzenie tablicy 5x5
	JScrollPane jsp=new JScrollPane(jt);
	JTableHeader header = jt.getTableHeader();
	
	JButton dod=new JButton("Wypełnij");
	JButton zero=new JButton("Zerowanie");		//przyciski opcji
	JButton zapis=new JButton("Zapis");

Załączam jeszcze screena z odpalonym programem.
Z góry dzieki za pomoc.
	
	String[] items = {"--","Suma","Średnia","MIN","MAX"};
	JComboBox combo=new JComboBox(items);
	JButton cbutton=new JButton("Oblicz");			//combobox z
	JLabel cl=new JLabel("Obliczenia");			//obliczeniami
	
	JLabel rezu=new JLabel("Uzyskany Rezultat");
	JTextArea rtext=new JTextArea();
	
	JLabel info=new JLabel("Info:");
	JTextField itext=new JTextField("Start aplikacji");
	JLabel status=new JLabel("Status:");				//tworzenie paska stanu
	JTextField stext=new JTextField("ON");
	
	
	JFrame error=new JFrame();
	JButton ok=new JButton("OK");						//tworzenie okna error
	JLabel blad=new JLabel("Podałeś złą liczbę");

	
	int i,j,k,l;
	String cyfra1="0";
	boolean stan1=true;
	String stan2="...";				//wywolanie zmiennych
	float tabela[][];
	double wynik;
	boolean isNumeric=false;
	
	

	public Main()
	{	
		
		
		Dzialanie o = new Dzialanie();
		f.setVisible(true);
		f.setSize(685,500);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);		//okreslenie podstawowych parametrow jframe
		f.setTitle("Moje Okno");
		f.setLayout(null);

		
		f.setJMenuBar(jmb);
		jmb.add(file);
		file.add(zap2);						//menu pliku
		file.addSeparator();
		file.add(exit);
		zap2.addActionListener(o);
		exit.addActionListener(o);

		
		jmb.add(view);						//menu widoku
		view.add(stanu);
		stanu.addActionListener(o);				
		
		jmb.add(obl);
		obl.add(suma);
		suma.addActionListener(o);
		obl.addSeparator();
		obl.add(avg);
		avg.addActionListener(o);			//menu obliczen
		obl.addSeparator();
		obl.add(min);
		min.addActionListener(o);
		obl.addSeparator();
		obl.add(max);
		max1.addActionListener(o);
		
		jmb.add(help);
		help.add(hitem1);
		hitem1.addActionListener(o);			//menu pomocy
		
		
	    f.add(jl1);
	    jl1.setBounds(5, 55, 400, 20);
	    f.add(liczba1);
	    liczba1.setBounds(110, 55, 100, 20);			//pole na liczby
	    liczba1.addActionListener(o);
	    
	    
	    f.add(jl2);
	    jl2.setBounds(225, 55, 100, 20);
	    f.add(wiersz);
	    wiersz.setBounds(325, 55, 100, 45);				//slider od wierszy
	    wiersz.setMajorTickSpacing(1);
	    wiersz.setPaintLabels(true);
	    wiersz.setPaintTicks(true);
	    
	    f.add(jl3);
	    jl3.setBounds(450, 55, 100, 20);
	    f.add(kolumna);
	    kolumna.setBounds(545, 55, 100, 45);			//slider od kolumn
	    kolumna.setMajorTickSpacing(1);
	    kolumna.setPaintLabels(true);
	    kolumna.setPaintTicks(true);
	    
	    jt.setPreferredScrollableViewportSize(new Dimension(450, 63));
	    jt.setBounds(10,140,500,80);
	    f.add(header);
	    jt.getTableHeader().setReorderingAllowed(false);
	    header.setVisible(true);
	    header.setBounds(10, 120,500,20);				//dodanie tabeli do jframe
	    jt.setFillsViewportHeight(true);
	    f.add(jt);
	    f.add(dod);
	    dod.setBounds(540, 130, 100, 20);
	    dod.addActionListener(o);
	    
	    f.add(zero);
	    zero.setBounds(540, 160, 100, 20);				//przycisk do zerowania
	    zero.addActionListener(o);
	    
	    f.add(zapis);
	    zapis.setBounds(540, 190, 100, 20);				//przycisk do zapisu
	    zapis.addActionListener(o);
	    
	    f.add(combo);
	    combo.setBounds(100, 240, 150, 20);
	    f.add(cl);
	    cl.setBounds(15, 240, 100, 20);				//dodanie combobox
	    f.add(cbutton);
	    cbutton.setBounds(260, 240, 100, 20);
	    cbutton.addActionListener(o);
	    
	    f.add(rezu);
	    rezu.setBounds(275, 275, 150, 20);
	    f.add(rtext);
	    rtext.setBounds(10, 300, 650, 100);							//dodanie pola rezultatow
	    Border border = BorderFactory.createLineBorder(Color.BLACK);
	    rtext.setBorder(border);
	    rtext.setEditable(false);
	    
	    f.add(info);
	    info.setBounds(10, 415, 50, 20);
	    f.add(itext);
	    itext.setBounds(40, 415, 285, 20);
	    itext.setEditable(false);
	    												//dodanie paska statusu
	    f.add(status);
	    status.setBounds(330, 415, 50, 20);
	    f.add(stext);
	    stext.setBounds(375, 415, 285, 20);
	    stext.setEditable(false);
	    
	    
	    
	    tb.add(save);
	    save.addActionListener(o);
	    tb.add(qui);
	    qui.addActionListener(o);
	    tb.addSeparator();
	    tb.add(wype);
	    wype.addActionListener(o);
	    tb.add(zerow);
	    zerow.addActionListener(o);				//dodanie ikon do toolbar
	    tb.add(suma1);
	    suma1.addActionListener(o);
	    tb.add(avg1);
	    avg1.addActionListener(o);
	    tb.add(min1);
	    min1.addActionListener(o);
	    tb.add(max1);
	    max1.addActionListener(o);
	    tb.addSeparator();
	    tb.add(pom1);
	    pom1.addActionListener(o);
	    
	    
	    error.setVisible(false);
		error.setSize(300,200);
		error.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);		//dodanie okna error
		error.setTitle("ERROR");
		error.setLayout(null);
		error.add(ok);
		ok.setBounds(80, 100, 50, 20);
		ok.addActionListener(o);
		error.add(blad);
		blad.setBounds(100, 50, 150, 20);
	    
		f.setLayout(new BorderLayout());
	    f.getContentPane().add(tb, BorderLayout.NORTH);		//dodanie toolbara do jframe

				
				
			

	}
	
	
	public class Dzialanie implements ActionListener {
		
		public void actionPerformed(ActionEvent e){
			/*if(e.getSource()==zap2 | e.getSource()==zapis | e.getSource()==save){
				for(i=0;i<5;i++) {
		            for(j=0;j<5;j++) {
		            	PrintWriter out = null;  //niestety nie dziala
						out.println(data[i][j]);
		                
		            }
		        }
		       }
			*/
			
			if(e.getSource()==exit | e.getSource()==qui){		//funkcja wylaczajaca program
				System.exit(EXIT_ON_CLOSE);
				itext.setText("Zamykanie programu");
				stext.setText("OFF");
			}
			
			if(e.getSource()==dod | e.getSource()==wype){		//wypelnianie tabeli
				k=wiersz.getValue();
				l=kolumna.getValue();
				cyfra1=liczba1.getText();
				jt.setValueAt(cyfra1,k,l);
				itext.setText("Wypełniono kolumne:"+k+l);
				data[k][l]=cyfra1;
			}
			
			if(e.getSource()==zero | e.getSource()==zerow){		//zerowanie tabeli
				for(i=0;i<5;i++) {
		            for(j=0;j<5;j++) {
		            	jt.setValueAt("0.0",i,j);
		            }
				}
				itext.setText("Zerowanie kolumn");
			}
			if(e.getSource()==stanu){
				if(stan1==true){
					info.setVisible(false);
					itext.setVisible(false);		
					status.setVisible(false);
					stext.setVisible(false);
					stan1=false;
				}										//włączanie/wyłączanie paska statusu
				else if(stan1==false){
					info.setVisible(true);
					itext.setVisible(true);
					status.setVisible(true);
					stext.setVisible(true);
					stan1=true;
				};
			}
			if(e.getSource()==cbutton){
				stan2=combo.getSelectedItem().toString();
				if(stan2=="--"){
					rtext.setText("Wybierz działanie");}
				if(stan2=="Suma"){
						for(i=0;i<5;i++) {							//sumowanie uzywajac combobox
						for(j=0;j<5;j++) {
							tabela[i][j]=Float.parseFloat(data[i][j]);	//TUTAJ CO NIE TAK...
			            	System.out.println(tabela[i][j]);
			            	wynik=wynik+tabela[i][j];
			            	rtext.setText("Suma kolumn="+wynik);
			            				 }
										 }
					itext.setText("Obliczanie sumy");
				}
				else if(stan2=="Średnia"){
					for(i=0;i<5;i++) {
						for(j=0;j<5;j++) {
			            	System.out.println(tabela);					//liczenie sredniej uzywajac combobox
			            	//tabela[i][j]=Float.parseFloat(data[i][j]);
			            	wynik=(wynik+tabela[i][j])/25;
			            	rtext.setText("Średnia kolumn="+wynik);
						}
					}
					itext.setText("Obliczanie średniej");
				}
			   else if(stan2=="MIN"){
				   for(i=0;i<5;i++) {
					for(j=0;j<5;j++) {
						System.out.println(tabela);
						//tabela[i][j]=Float.parseFloat(data[i][j]);		//min uzywajac combobox
						wynik=wynik=Math.min(wynik, tabela[i][j]);
						rtext.setText("Minimalna wartość="+wynik);
						
						
					}
				   }
				   itext.setText("Obliczanie minimum");
			   }
			   else if(stan2=="MAX"){
				   for(i=0;i<5;i++) {
					for(j=0;j<5;j++) {
		            	System.out.println(tabela);
		            	//tabela[i][j]=Float.parseFloat(data[i][j]);		//max uzywajac combobox
		            	wynik=wynik=Math.max(wynik, tabela[i][j]);
		            	rtext.setText("Maksymalna wartość="+wynik);
					}
				   }
				   itext.setText("Obliczanie maximum");
			   };
			 }
			if(e.getSource()==suma | e.getSource()==suma1){
				for(i=0;i<5;i++) {
					for(j=0;j<5;j++) {
		            	System.out.println(tabela);
		            	//tabela[i][j]=Float.parseFloat(data[i][j]);     //sumowanie uzywajac toolbar/menu
		            	wynik=wynik+tabela[i][j];
		            	rtext.setText("Suma kolumn="+wynik);
					}
					itext.setText("Obliczanie sumy");
				}
			}
			if(e.getSource()==avg | e.getSource()==avg1){
				for(i=0;i<5;i++) {
					for(j=0;j<5;j++) {
		            	System.out.println(tabela);
		            	//tabela[i][j]=Float.parseFloat(data[i][j]);		//liczenie sredniej uzywajac toolbar/menu
		            	wynik=(wynik+tabela[i][j])/25;
		            	rtext.setText("Średnia kolumn="+wynik);
					}
				}
				itext.setText("Obliczanie średniej");
			}
			if(e.getSource()==min | e.getSource()==min1){
				 for(i=0;i<5;i++) {
						for(j=0;j<5;j++) {
							System.out.println(tabela);
						//	tabela[i][j]=Float.parseFloat(data[i][j]); 		//min uzywajac toolbar/menu
							wynik=wynik=Math.min(wynik, tabela[i][j]);
							rtext.setText("Minimalna wartość="+wynik);
						}
				 }
				 itext.setText("Obliczanie minimum");
			}
			if(e.getSource()==max | e.getSource()==max1){
				for(i=0;i<5;i++) {
					for(j=0;j<5;j++) {
		            	System.out.println(tabela);
		            //	tabela[i][j]=Float.parseFloat(data[i][j]);		//max uzywajac toolbar/menu
		            	wynik=wynik=Math.max(wynik, tabela[i][j]);
		            	rtext.setText("Maksymalna wartość="+wynik);
					}
				}
				itext.setText("Obliczanie maximum");
			}
			if(e.getSource()==hitem1 | e.getSource()==pom1){
				JFrame oknopomoc=new JFrame();
				oknopomoc.setVisible(true);
				oknopomoc.setSize(300,200);
				oknopomoc.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);		//wywołanie okna informacji
				oknopomoc.setTitle("Informacje");
				oknopomoc.setLayout(null);
				JTextArea informacje=new JTextArea();
				informacje.setEditable(false);
				informacje.setBounds(5, 5, 275, 150);
				oknopomoc.add(informacje);
				informacje.setText("");
				
			}
	}
  }
}

Dołączam screen z wyglądem programu po odpaleniu.
Z góry dzięki za pomoc.
Re: Problem z parseFloat w pętli [message #1694778 is a reply to message #1694487] Thu, 07 May 2015 19:58 Go to previous message
Mateusz Malinowski is currently offline Mateusz MalinowskiFriend
Messages: 36
Registered: March 2013
Location: Bristol
Member
Cześć Jakub,

Dzieje się tak, ponieważ przypisujesz wartość to 2-wymiarowej tabeli, którą zadeklarowałeś
float tabela[][];
, ale której nie zainicjalizowałeś. Twoja tabela musi mieć ten samy wymiar co zmienna data, czyli 5x5. Spróbuj
float tabela[][] = new float[5][5];
, a najlepiej powiąż rozmiar jednej tabeli z drugą za pomocą jakiejś zmiennej.

Pozdrawiam!
Previous Topic:Nie mogę zrobić nowego projektu w C
Next Topic:Getting java.net.SocketException: SSL implementation not available
Goto Forum:
  


Current Time: Thu Nov 15 01:58:31 GMT 2018

Powered by FUDForum. Page generated in 0.06344 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top