Domanda

che sto per creare un'applicazione java cruciverba, ma non sono sicuro di quali pacchetti da utilizzare per disegnare la griglia di cruciverba. So che è possibile disegnare manualmente le griglie con Graphics2D ecc, ma non sono sicuro se questo è il modo più semplice per farlo, come ho bisogno campi di testo nelle piazze della griglia.

Qualcuno ha qualche suggerimento per la creazione della rete di cruciverba.

È stato utile?

Soluzione

In realtà non credo che avete bisogno di campi di testo nelle piazze della griglia, ma solo per scrivere ogni singola lettera per ogni cella della griglia ..

Per consentire la modifica di pochi colpi di tastiera di cattura sopra il componente si utilizza e cellule insieme cruciverba in base alle quali le operazioni di scrittura degli utenti.

Facendo in questo modo sarebbe stato abbastanza facile perché si può usare un back matrice a 2 dimensioni che memorizza l'intera griglia, poi, quando l'utente seleziona una definizione che hai appena iniziare a riempire singole lettere ogni volta che le chiavi vengono digitati a partire dalla prima cella della la definizione .. la vostra routine sorteggio dovrà solo essere in grado di disegnare le lettere della griglia e centrale all'interno delle cellule, niente di più ..

Un JTable potrebbe funzionare, ma pensare che sia di grandi dimensioni per il vostro problema, perché si finirà per l'interfacciamento con un sacco di cose che non servono a tutti ..

EDIT (per il commento) :

L'ho fatto qualcosa di simile in questo modo: si può avere una classe di cellule

class Cell
{
   boolean isBlank;
   char value;
}

con una matrice di celle si ottiene la griglia:

Cell[][] gamefield = new Cell[15][15];

poi dentro paint() si può facilmente iterata:

for (int i = 0; i < Scheme.rows; ++i)
{
  for (int j = 0; j < Scheme.cols; ++j)
  {
    g2.drawRect(i*32, j*32, 32, 32);

    if (Scheme.scheme[i][j].isBlank)
      g2.fillRect(i*32 + 3, j*32 + 3, 32 - 5, 32 - 5);
  }
}

Solo perché ho ancora un risultato screenshot era qualcosa di simile alt text

Altri suggerimenti

Forse utilizzare un JTable e personalizzato renderer per le cellule. Questo dovrebbe essere almeno una soluzione semplice. Naturalmente ci vuole un po 'di tempo per abituarsi a JTable, ma alla fine è abbastanza semplice.

Avete considerato JavaFX a tutti? JavaFX vi permetterà di creare "scena-grafici" sulla base di vettore / grafica modificati utilizzando Adobe Photoshop / Inkscape etc.

In caso contrario, modo più semplice sarebbe quella di estendere JTextField tale che che sarà solo tenere 1 carattere e sarà nero / o qualunque colore per indicare non modificabili e disabili. Inoltre, aggiungere un bordo personalizzato per indicare il numero di puzzle domanda. Mettete il tutto in un GridLayout.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top