List werkt niet

Status
Niet open voor verdere reacties.

Creator1

Gebruiker
Lid geworden
10 feb 2011
Berichten
235
Ik probeer een LinkedList te maken maar dat lukt niet. Eclipse geeft continue de foutmelding "The type List is not generic; it cannot be parameterized with arguments <String>". In een ander programma (overgenomen uit een tutorial) werkt het echter wel. Ik heb geen idee wat ik fout doe.

Ik heb dit nodig in een rekenmachine die ik aan het schrijven ben. De plek van de foutmelding is gemarkeerd.
Dit is de code die niet werkt (nog niet af):
Code:
import java.awt.*;
import java.awt.List;
import java.awt.event.*;
import java.awt.List.*;
import java.util.*;
import javax.swing.*;

public class MainGUI extends JFrame{
	
	//fonts
	private static final Font ANSWER_FONT = new Font("monspaced", Font.PLAIN, 20);
	private static final Font BUTTON_FONT =	new Font("monspaced", Font.PLAIN, 13);
	//numbers
	private JButton b1;
	private JButton b2;
	private JButton b3;
	private JButton b4;
	private JButton b5;
	private JButton b6;
	private JButton b7;
	private JButton b8;
	private JButton b9;
	private JButton b0;
	//math operators
	private JButton addBtn;
	private JButton substractBtn;
	private JButton multiplyBtn;
	private JButton divideBtn;
	//other operators
	private JButton plusMinus;
	private JButton dot;
	private JButton backspace;
	private JButton clear;
	private JButton clearEntry;
	private JButton equalsBtn;
	//answer field
	private JTextField answerField;
	//panels
	private JPanel buttonPanel;
	private JPanel operatorPanel;
	private JPanel content;
	
	//HandlerClass variables
[U]        List<String> stringNumberList = new LinkedList<String>();
	private String testvar = "Hello";
	stringNumberList.add(testvar);[/U]

	//MainGUI constructor
	public MainGUI() {
		super("Calculator");
		
		//answer field		
		answerField = new JTextField("0");
		answerField.setFont(ANSWER_FONT);
		answerField.setHorizontalAlignment(JTextField.RIGHT);
		answerField.setBackground(Color.WHITE);
		answerField.setEditable(false);
		
		//ButtonPanel
		buttonPanel = new JPanel();
		buttonPanel.setLayout(new GridLayout(5, 3, 2, 2));
		
		//- Clear, clear entry and backspace buttons
		clear = new JButton("C");
		clear.setFont(BUTTON_FONT);
		buttonPanel.add(clear);
		
		clearEntry = new JButton("CE");
		clearEntry.setFont(BUTTON_FONT);
		buttonPanel.add(clearEntry);
		
		backspace = new JButton("<--");
		backspace.setFont(BUTTON_FONT);
		buttonPanel.add(backspace);
		//- numeric buttons
		b1 = new JButton("7");
		b1.setFont(BUTTON_FONT);
		buttonPanel.add(b1);
		
		b2 = new JButton("8");
		b2.setFont(BUTTON_FONT);
		buttonPanel.add(b2);
		
		b3 = new JButton("9");
		b3.setFont(BUTTON_FONT);
		buttonPanel.add(b3);
		
		b4 = new JButton("4");
		b4.setFont(BUTTON_FONT);
		buttonPanel.add(b4);
		
		b5 = new JButton("5");
		b5.setFont(BUTTON_FONT);
		buttonPanel.add(b5);
		
		b6 = new JButton("6");
		b6.setFont(BUTTON_FONT);
		buttonPanel.add(b6);
		
		b7 = new JButton("1");
		b7.setFont(BUTTON_FONT);
		buttonPanel.add(b7);
		
		b8 = new JButton("2");
		b8.setFont(BUTTON_FONT);
		buttonPanel.add(b8);
		
		b9 = new JButton("3");
		b9.setFont(BUTTON_FONT);
		buttonPanel.add(b9);		
		//period, negation and zero buttons
		plusMinus = new JButton("+/-");
		plusMinus.setFont(BUTTON_FONT);
		buttonPanel.add(plusMinus);
		
		b0 = new JButton("0");
		b0.setFont(BUTTON_FONT);
		buttonPanel.add(b0);
		
		dot = new JButton(".");
		dot.setFont(BUTTON_FONT);
		buttonPanel.add(dot);
		
		//operation buttons (OperatorPanel)
		operatorPanel = new JPanel();
		operatorPanel.setLayout(new GridLayout(5, 1, 2, 2));
		
		addBtn = new JButton("+");
		b1.setFont(BUTTON_FONT);
		operatorPanel.add(addBtn);
		
		substractBtn = new JButton("-");
		b1.setFont(BUTTON_FONT);
		operatorPanel.add(substractBtn);
		
		multiplyBtn = new JButton("x");
		b1.setFont(BUTTON_FONT);
		operatorPanel.add(multiplyBtn);
		
		divideBtn = new JButton(":");
		b1.setFont(BUTTON_FONT);
		operatorPanel.add(divideBtn);
		
		equalsBtn = new JButton("=");
		b1.setFont(BUTTON_FONT);
		operatorPanel.add(equalsBtn);
		
		//content
		content = new JPanel();
		content.setLayout(new BorderLayout(5,5));
		content.add(operatorPanel, BorderLayout.EAST);
		content.add(answerField, BorderLayout.NORTH);
		content.add(buttonPanel, BorderLayout.CENTER);
		
		content.setBorder(BorderFactory.createEmptyBorder(3,3,3,3));
		add(content);
		
		
		//Event handler
		//operatorHandler
		OperatorHandler operatorHandler = new OperatorHandler();
		addBtn.addActionListener(operatorHandler);
		substractBtn.addActionListener(operatorHandler);
		multiplyBtn.addActionListener(operatorHandler);
		divideBtn.addActionListener(operatorHandler);
		equalsBtn.addActionListener(operatorHandler);
		//numberHandler
		NumberHandler numberHandler = new NumberHandler();
		b1.addActionListener(numberHandler);
		b2.addActionListener(numberHandler);
		b3.addActionListener(numberHandler);
		b4.addActionListener(numberHandler);
		b5.addActionListener(numberHandler);
		b6.addActionListener(numberHandler);
		b7.addActionListener(numberHandler);
		b8.addActionListener(numberHandler);
		b9.addActionListener(numberHandler);
		b0.addActionListener(numberHandler);
		dot.addActionListener(numberHandler);
		//clearHandler
		ClearHandler clearHandler = new ClearHandler();
		clear.addActionListener(clearHandler);
		
	}

}

Dit is de code die wel werkt (dus die ik heb overgenomen):
Code:
import java.util.*;

public class Class1 {
	
	public static void main(String[] args) {
		
		String[] things = {"apples", "noobs", "pwnge", "bacon", "goats"};
		List<String> list1 = new LinkedList<String>();
		for (String x : things)
			list1.add(x);
		
		String[] things2 = {"sausage", "bacon", "goats", "harrypotter"};
		List<String> list2 = new LinkedList<String>();
		for (String y : things2)
			list2.add(y);
		
		list1.addAll(list2);
		list2 = null;
		
		printMe(list1);
		removeStuff(list1, 2, 5);
		printMe(list1);
		reverseMe(list1);
	}
	
	//printMe method
	private static void printMe(List<String> l) {
		for (String b : l)
			System.out.printf("%s ", b);
		System.out.println();
	}
	
	//removeStuff method
	private static void removeStuff(List<String> l, int from, int to) {
		l.subList(from, to).clear();
	}
	
	//reverseMe method
	private static void reverseMe(List<String> l) {
		ListIterator<String> bobby = l.listIterator(l.size());
		while(bobby.hasPrevious())
			System.out.printf("%s ", bobby.previous());
	}
}

Ik kan heet verschil tussen de twee codes niet vinden; ik hoop dat iemand hier er wel iets meer mee kan.
 
Laatst bewerkt:
Dag Creator1,

Probeer het zonder de java.awt imports en gebruik alleen de java.util.List import. Verder lijkt het me ook beter dat je "stringNumberList.add(testvar);" in de constructor doet.
Ik hoop dat het hiermee gaat lukken!

Vriendelijke groet,

Bart
 
Ok, dan betekend her dus eigenlijk dat ik de list in een nieuwe class moet doen. Als ik die andere imports weg ga halen werkt de rest in deze class niet meer...
 
Dag Creator1,

Nee, dat hoeft niet, probeer het eerst eens zonder de awt.List en met de util.List. Ik verwacht dat het dan al moet werken :)

Groeten,

Bart
 
Ok, ik heb nu in ieder geval een andere class aangemaakt en daar werkt het wel. Met die andere class is het voor mijn programma zelfs makkelijker.
In ieder geval bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan