Ich nutze Ubuntu 8.10, und Eclipse(die offizielle aus dem Canonical Software pool). Und ich bin grade dabei. Java zu erlernen.
Folgendes Problem gab es gestern:
Ich hatte die Aufgabe ein graphisches Memory zu programmieren und hatte einen Code, den aber Eclipse nicht korrekt auflöste.
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class Memory extends Frame implements ActionListener
{
private int n;
private int paare;
private int Versuche;
private Button aufgedeckt = null;
private Vector <Button> spielfeld = new Vector<Button>();
public Memory(int n, String[] names)
{
super();
this.n = n;
//if(n % 2 != 0 || names.length == (n*n)/2) System.exit(1);
//else
setLayout(new GridLayout(n, n));
for(int i= 1; i <= names.length; i++)
{
Button a = new Button(names[i-1]);
Button b = new Button(names[i-1]);
a.addActionListener(this);
b.addActionListener(this);
spielfeld.add(a);
spielfeld.add(b);
}
int menge = n*n;
Random r = new Random();
while(!spielfeld.isEmpty())
{
int x = r.nextInt(menge);
spielfeld.elementAt(x).setBackground(Color.black);
add(spielfeld.elementAt(x));
spielfeld.removeElementAt(x);
menge--;
}
System.out.println("TEst");
pack();
setVisible(true);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
dispose();
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent e)
{
Button b =(Button)e.getSource();
b.setBackground(Color.BLUE);
if(aufgedeckt == null)
{
b.setBackground(Color.white);
aufgedeckt = b;
aufgedeckt.setEnabled(false);
}
else
{
if(aufgedeckt.getLabel().equals(b.getLabel()))
{
b.setEnabled(false);
paare++;
b.setBackground(Color.BLUE);
}
else
{
aufgedeckt.setEnabled(true);
b.setEnabled(true);
b.setBackground(Color.black);
aufgedeckt.setBackground(Color.black);
}
Versuche++;
aufgedeckt = null;
if(paare == ((n^2)/2))
{
System.out.println("Du hast " + Versuche + "gebraucht.");
System.exit(0);
}
}
}
public static void main(String[] args)
{
String[] names = {"Typ A", "TypB", "TypC", "TypD", "TypE", "TypF", "TypG", "TypH"};
new Memory(4, names);
}
}
[Edit: hab auf die schnelle nicht rausbekommen, wie man den Code in eine scrollbare Box drückt.]
[Und ja ich weiß, ne Main in ner Klasse ist keine sehr schöne Lösung! Aber wollte nur den Code testen!]
Eclipse produzierte zuerst nur ein Fenster mit 16 schwarzen Buttons[sollte es ja auch] die allerdings nicht anklickbar waren, und bei jedem weiteren Versuch das Kästchen ohne Buttons. Den addWindowListener(new WindowAdapter()) ignorierte es genauso gut.
Allerdings haben wir den Code auf nem Windows ausgeführt, und da klappte alles einwandfrei!)
jetzt zu meinen Fragen:
Sind solcherart Probleme bekannt, liegt es vielleicht an Ubuntu? (Ich habe gehört, dass einige Funktionen im Code auch auf nem Apple nicht funktionieren.) Auf welche Sachen müsste ich dann aufpassen?
Leider bin ich Anfänger und der Lehrstuhl unterstützt nur Eclipse was Alternativen so ziemlich ausschließt!(1. ist der Code auf die IDE ausgelegt[von wegen, Java ist ne plattformübergreifende Sprache.....], 2. ist die Autovervollständigung und Echtzeitfehlerüberprüfung für mich Gold wert)
Ist der vielleicht der Unterschied zwischen den Versionen vielleicht so gravierend, dass für mich eine andere Version besser wäre?
Ich schreibe und frag das alles, weil ich aktuell daheim bin und mit meiner Bandbreite haushalten muss, und nicht alles ausprobieren kann(Umts Stick mit Edge/GPRS Geschwindigkeit).
Danke,
Weiti