tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
537
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    starbug starbug ist offline Mitglied Gold
    Registriert seit
    Jan 2011
    Beiträge
    191
    Hallo allerseits,

    habe eine neu Aufgabe bekommen und damit noch so meine Probleme. Es geht darum mittels Swing ein Schachbrett zu erstellen wobei die Felder JButtons seien sollen. Das ist der erste Teil zu dem ich auch schon einen Code geschrieben habe:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    public void erstelleSpielfeld()
        {
            JFrame frame = new JFrame("Schachbrett");
            frame.setSize(800,800);
            JPanel feld = new JPanel();
            
            feld.setLayout(new GridLayout(8,8));
            
            for(int i = 0; i<64; i++)
            {
                feld.add(new JButton());
            }
            
            frame.add(feld);
            frame.setVisible(true);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            
        }

    Das geht soweit auch nur mein Problem ist jetzt das ich die Farbe der Buttons nicht mehr ändern kann, denn diese sollen ja Schwarz-Weiß sein. Was kann ich tun ?
     

  2. #2
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    Ich würde mir ein 2-Dimensionales Array vom Typ JButton erstellen. Wenn du das gemacht hast kannst du dann die Schleife anpassen...
    a) aus einer Schleife der Größe 64 werden dann 2 verschachtelte Schleifen der Größe 8 für die horizontale und die vertikale Position
    b) Du initialisierst dann zuerst den Button an der entsprechenden Position und fügst diesen dann dem Feld hinzu. Ich würde hier auch gleich die Farbgebung (schwarz/weiß) mit übernehmen.
    Viel Glück!

    PS.: Bitte setzte Java-Code auch in die entsprechenden Tags, liest sich besser aufgrund Syntax Highlighting und die Chance, dass dir geholfen wird erhöht sich auf diese Weise enorm!
     
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  3. #3
    Technoblade Technoblade ist offline Mitglied Gold
    Registriert seit
    Feb 2009
    Beiträge
    193
    Was die Farbe betrifft, du solltest am besten einfach die paint-Methode von JButton überschreiben. Und dann dort einfach alles weiß bzw. schwarz an malen. Die alternative, allerdings etwas komplexer wäre den JButton ein Bild anzeigen zu lassen das dann einfach nur schwarz oder weiß ist.
     

  4. #4
    Avatar von HonniCilest
    HonniCilest HonniCilest ist offline Mitglied Platin
    Registriert seit
    Jun 2009
    Ort
    Java Insel
    Beiträge
    501
    Die alternative, allerdings etwas komplexer wäre den JButton ein Bild anzeigen zu lassen das dann einfach nur schwarz oder weiß ist.
    Ich persönlich vermute, was ich auch empfehlen würde, dass das Bild auf einem Button die Spielfigur darstellen wird.
     
    Jeder Fehler, aus dem wir lernen, ist ein Erfolg...
    ...Aber mach' nicht den Fehler, nicht aus deinen Fehlern zu lernen.

  5. #5
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hi,

    ich würde hier eher JLabel verwenden und bei diesen einen MouseListener implementieren. So bist du von der Farbgebung her unabhängig und kannst dann meiner Meinung nach später leichter damit arbeiten.

    Wenn die JButtons aber von der Aufgabenstellung her fix vorgegeben sind, dann würde ich eine neue Klasse machen und diese von JButton erben lassen. Die paint()-Methode überschreiben und diese dann gesamten "Button" in einer Farbe anstreichen lassen. Welche Farbe der Button hast, kannst du ja zum Beispiel im Konstruktor mitgeben lassen.

    Gruß
    BK
    Geändert von Bratkartoffel (22.06.11 um 10:26 Uhr)
     
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  6. #6
    genodeftest genodeftest ist offline Mitglied Brillant
    Registriert seit
    Jun 2009
    Beiträge
    870
    @Bratkartoffel: du meinst paintComponent() überschreiben, richtig?
     
    Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  7. #7
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hi,

    nö, ich meine schon die paint()-Methode

    Wobei ich aus den Docs jetzt nicht genau rauslesen kann, was jetzt für dein Ziel bevorzugt werden soll.

    Gruß
    BK
     
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

Ähnliche Themen

  1. Schachbrett
    Von Drizzt2812 im Forum Java
    Antworten: 3
    Letzter Beitrag: 30.11.09, 13:01
  2. schachbrett
    Von edition im Forum Photoshop
    Antworten: 4
    Letzter Beitrag: 11.12.07, 22:52
  3. Schachbrett v.1
    Von SGC-Fireball im Forum 3D-Stills
    Antworten: 21
    Letzter Beitrag: 18.03.07, 03:33
  4. Schachbrett
    Von Der_Crazy im Forum Werkstatt
    Antworten: 9
    Letzter Beitrag: 25.01.06, 18:24
  5. Schachbrett
    Von CreatorX im Forum Cinema 4D
    Antworten: 7
    Letzter Beitrag: 02.08.04, 11:08