Vinnaren i pepparkakshustävlingen!
2021-11-03, 09:32
  #1
Medlem
showMessageDialog fungerar inte?
showInputDialog fungerar, gr det inte stapla metoder frn JOptionPane klassen efter varandra eller vad r fel?

Kod:
if(e.getSource() == skapaKontoButton) {
				String val = JOptionPane.showInputDialog("Skapa konto 1-> sparkonto 2-> maxikonto 3-> lnekonto ");
				int i = Integer.parseInt(val);
				bank.skapaKonto(i);
				JOptionPane.showMessageDialog(null,"konto skapat.","Mikrobanken",JOptionPane.PLAIN_MESSAGE);
				}
Citera
2021-11-03, 09:41
  #2
Moderator
Protons avatar
Citat:
Ursprungligen postat av bosscs2
showMessageDialog fungerar inte?
showInputDialog fungerar, gr det inte stapla metoder frn JOptionPane klassen efter varandra eller vad r fel?

Kod:
if(e.getSource() == skapaKontoButton) {
				String val = JOptionPane.showInputDialog("Skapa konto 1-> sparkonto 2-> maxikonto 3-> lnekonto ");
				int i = Integer.parseInt(val);
				bank.skapaKonto(i);
				JOptionPane.showMessageDialog(null,"konto skapat.","Mikrobanken",JOptionPane.PLAIN_MESSAGE);
				}
VAD r fel?

Ritas den inte ut?
kompilerar inte koden? Fr du fel frn kompilatorn? Vilka isf?
Annat?
Citera
2021-11-03, 09:53
  #3
Medlem
showMessageDialog fnstret promptas inte, kompilatorn printar inget fel.
Citera
2021-11-03, 12:18
  #4
Moderator
Protons avatar
Citat:
Ursprungligen postat av bosscs2
showMessageDialog fnstret promptas inte, kompilatorn printar inget fel.
I sdana fall kan man ju gissa att villkoret i din if inte uppfylls.

Stt en breakpoint med debuggern i koden, alternativt om du inte vet/kan debuggerns funktion gr en utskrift i iffen s att du ser att koden krs.
Citera
2021-11-03, 13:29
  #5
Medlem
Jag vill loopa genom en lista av objekt och addera samtliga int x -> int sum.
Felet uppstr i sum+=t.getX();

"cannot static reference to a non static etc etc?

Kod:
import java.util.ArrayList;

public class Test {
	private int x;
	int sum;
	
	Test(int x){
	this.x = x;	
	}
	
	public int getX () {
		return x;
	}

	public static void main(String [] args) {
		
		Test test1 = new Test(1);
		Test test2 = new Test(2);
		Test test3 = new Test(3);
		
		ArrayList<Test>lista= new ArrayList();
		
		lista.add(test1);
		lista.add(test2);
		lista.add(test3);
		
		for(Test t : lista) {
			sum+= t.getX();
		}
	}
}
__________________
Senast redigerad av bosscs2 2021-11-03 kl. 13:42.
Citera
2021-11-03, 15:19
  #6
Moderator
Protons avatar
Citat:
Ursprungligen postat av bosscs2
Jag vill loopa genom en lista av objekt och addera samtliga int x -> int sum.
Felet uppstr i sum+=t.getX();

"cannot static reference to a non static etc etc?

Kod:
import java.util.ArrayList;

public class Test {
	private int x;
	int sum;
	
	Test(int x){
	this.x = x;	
	}
	
	public int getX () {
		return x;
	}

	public static void main(String [] args) {
		
		Test test1 = new Test(1);
		Test test2 = new Test(2);
		Test test3 = new Test(3);
		
		ArrayList<Test>lista= new ArrayList();
		
		lista.add(test1);
		lista.add(test2);
		lista.add(test3);
		
		for(Test t : lista) {
			sum+= t.getX();
		}
	}
}
Ett nytt fel nu allts, antar att du fixade det frra?

Felet beror p som sagt att du ifrn din staticmetod frsker anropa en ej static variabel. sum ligger som ett attribut i varje instans av test, men du frsker anropa den som om den vore en staticvariabel, alt en lokal variabel i din mainmetod.

Undvik publika attribut i dina klasser, tkomst till attribut sker medelst *etters i java till att brja med.

Det du sen vill gra(om det nu r nn slags summering du r ute efter) r att
1. antingen deklarera en lokal variabel i main och plussa p den
2. Lta sum vara static i din klass test.

Oavsett vilket ska du inte ha nt publikt i dina klasser om de inte r static final och anvnds som konstanter.
Citera
2021-11-03, 17:27
  #7
Medlem
Citat:
Ursprungligen postat av Proton
Ett nytt fel nu allts, antar att du fixade det frra?

Det berodde p att if parantesen inte var uppfylld precis som du skrev.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in