Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1

    creazione grafica scacchiera

    Devo creare una scacchiera 8x8 e nelle caselle le rispettive pedine.

    Qualcuno mi può dare un consiglio?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Mi sembra un tantino generica come richiesta: cerca di fornire maggiori dettagli e magari dicci anche cosa hai già fatto, dove ti sei fermato, quali difficoltà hai incontrato.

    Posta anche un po' di codice di ciò che hai fatto in modo da capire come intendi portare avanti la cosa.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    sono ancora all'inizio sto cercando di capire il modo migliore per crearla.
    Quello che deve risultare è una finestra con dentro una scacchiera con a lato tre pulsanti:
    uno per caricare una nuova partita da file, uno per salvare la partita e il terzo per iniziare una nuova partita.
    Pensavo di creare un pannello poi usare java.awt.GridLayout perchè da quello che ho capito crea una matrice N x M e i bottoni sono tutti della stessa dimensione.
    Se no come potrei fare?

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315

    Moderazione

    Secondo me è la via giusta.
    Imposti il LayoutManager della finestra come BorderLayout.
    Nel centro ci metti il tuo pannello con GridLayout che ti costituisce la scacchiera. Ciascuna cella sarà a sua volta un pannello che visualizza l'immagine.
    Sulla destra, invece, aggiungi un pannello con un FlowLayout (o qualsiasi altra cosa a tua scelta) che visualizza i pulsanti.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Grazie mille per l'aiuto.

    Comincio a creare qualcosa poi se avessi ancora bisogno mi farò sicuramente risentire.

    Ciao

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Ciao, siccome immagino che le pedine vadano spostate tra le caselle, avrai bisogno di accedere velocemente ai vari JPanel casella. Mentre prosegui sulla strada che hai scelto (che e' molto sensata), credo che ti convenga salvare questi pannelli in un array bidimensionale NxM.
    Lo popoli dentro un for e nello stesso for metti le caselle nella posizioni corrette del layout in modo che il pannello che a video sta in posizione 0,0 del GridLayout, sia l'elemento [0][0] dell'array (se vuoi puoi anche colorare le varie caselle in stile scacchiera dentro al for).
    Poi accedi agli elementi dell'array quando hai bisogno di aggiungere/rimuovere le pedine durante la partita.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    18
    ciao ragazzi scusate che ho ripreso un post vecchio ma sto implementando la parte grafica della scacchiera vorrei un consiglio a riguardo il colore del bottone, visto che appena viene cliccato perde il colore che avevo assegnato con il metodo setBackground. Sapete mica come si puo gestire questa cosa con java?
    PS: Ho gestito il colore alternato della scacchiera con una seria di if else per quello che riguarda l'indice i(delle righe) e per ognuno di questi uno switch per l'indice j (colonne)
    if (i==0)
    switch (j)
    {
    case 0;

    b[i][j].setBackground(Color.black);
    break;
    case 1:
    b[i][j].setBackground(Color.white);
    break;

    e cosi via fino all'ultima j

    grazie per l'aiuto
    ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Io userei JPanel al posto di JButton per aggirare il problema.
    P.s. non voglio nemmeno sapere quante linee di codice t'e' costato colorarlo in quel modo quando bastano 2for, un if e 2 assegnamenti.
    codice:
    for(int i=0; i<b.size(); i++) {
       for(int j=0; j<b[i].size(); j++) {
          if(((i+j)%2)==0) {
             b[i][j].setBackground(Color.black);
          } else {
             b[i][j].setBackground(Color.white);
          }
       }
    }

  9. #9

    Re: Moderazione

    Originariamente inviato da LeleFT
    Secondo me è la via giusta.
    Imposti il LayoutManager della finestra come BorderLayout.
    Nel centro ci metti il tuo pannello con GridLayout che ti costituisce la scacchiera. Ciascuna cella sarà a sua volta un pannello che visualizza l'immagine.
    Sulla destra, invece, aggiungi un pannello con un FlowLayout (o qualsiasi altra cosa a tua scelta) che visualizza i pulsanti.


    Ciao.
    Mi stò cimentando anche io con una specie di scacchiera...e uso NetBeans...potete spiegarmi i passaggi per fare queste cose. Ho impostato GridLayout nel JPanel e messo righe e colonne, ma non vedo nulla, inoltre se provo ad aggiungere un JPannel sopra me lo mette bislungo, se lo modifico me lo torna a mettere come era all'inizio

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    18
    grazie mille per la tua risposta cosi immediata abbiamo provato ad implementare il tuo codice .. ma ci da questa eccezione quando eseguiamo il programma :

    Exception in thread "main" java.lang.NullPointerException
    at myframe.main(myframe.java:30)
    Press any key to continue...

    come possiamo aggirarla ?
    grazie mille ancora
    saluti

    ps : si è meglio che non ti diciamo quante righe di codice venivano..

    ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.