Ich versuche ein Schlachtschiff zu machen, ich habe die Kontrolle über die Boards. Wie mache ich ein Array, mit dem jeder Button eine Position zurückgeben kann. Zum Speichern der Schiffe und der Treffer und Sachen. Ich möchte jeden einzelnen Button machen, bin mir aber nicht sicher, wie ich das machen soll.Wie erstelle ich individuelle Schaltflächennamen in einem Array?
Antwort
Sie könnten auf die Schaltfläche Klasse erweitern:
public class BattleShipButton extends JButton {
private Coordinate coords;
public BattleShipButton(Coordinates coords) {
this.coords = coords;
setPreferredSize(new Dimension(20, 20));
}
public Coordinates getCoordinates() {
return coords;
}
}
Dann Sie die Tasten in einer Schleife instanziiert konnte und in den richtigen Koordinaten übergeben.
BattleShipButton[][] buttons = new BattleShipButton[boardWidth][boardHeight];
for(int i = (int)'a'; i < boardWidth; i++){
for(int j = 0; j < boardHeight; j++) {
buttons[i][j] = new BattleShipButton(new Coordinate((char)i, j));
}
}
Dann wird jede Taste, um die richtigen Koordinaten, die Sie bei Verwendung getCoordiantes()
bekommen können.
Tun Sie sie einfach in einer Matrix, wenn Sie wissen wollen, ihre Positionen, ihr Index, sollte ausreichen.
Wenn Sie wollen Genauer gesagt, können Sie Ihre eigenen Schaltflächen erstellen und dann eine Funktion vornehmen, die zurückkehren, diese Position
Nur nicht, wenn diese Ihnen helfen kann, aber besser als nichts i verwendete Form Anwendung gehen nehmen Sie einen Blick voraus
Sie ein Array wie diese
erstellenButton[] Barray = new Button[32,32];
than you will have to fill this array
for (int i = 0; i <= a - 1; i++)
{
for (int j = 0; j <= b - 1; j++)
{
Barray (i, j) = new Button(); // here you create a dynamic button
Barray (i, j).Location = new System.Drawing.Point(x, y); // here you locate the button in to your box or in a similar container
Barray (i, j).Size = new System.Drawing.Point(23, 23); // in this line you resize your button
Barray (i, j).Name = i + j; // in this lie you rename your button so that you will be able to reach your button and know what is its location
Barray (i, j).Click += Button_Click; // in this line you will add the button_click event to your dynamic buttons
Form1.box.Controls.Add(dizi(i, j)); // and this line adds your button to your container
x += 23; // in this line i am increasing the x location so i the buttons will not be placed at the same x location
}
x = 0; // this line i ll make x zero that means i m finis previous line and i ll start to place buttons on another line
y += 23; // this line i m increasing the y location to move the next line
}
nach diesen Codes i ll Notwendigkeit, ein Ereignis erstellen auf die Schaltfläche Click-Ereignis zu fangen :)
private void button_Click(object sender, System.Windows.Forms.MouseEventArgs e)
{
//here you can use e eventargs reach your buttons name so you can do anything you want :)
}
Hoffnung, dies hilft Ihnen
Wo hast du C# in der Frage gesehen? – adamax
eine neue Klasse erstellen, die Abstract erstreckt. Geben Sie ihm Attribute für die Koordinaten und erstellen Sie neue Instanzen, die beim Erstellen der Schaltflächen an den JButton-Konstruktor übergeben werden.
Dadurch überschreiben Sie die actionPerformed-Methode von Action, damit Sie mit einem Button-Klick-Event diese Koordinaten verwenden können, die alle in der gleichen Klasse enthalten sind.
- 1. Wie erstelle ich ein einzelnes Array aus einem Multi-Array?
- 2. Laravel5.2 individuelle Array Validierung
- 3. Wie erstelle ich ein Array in jquery?
- 4. Wie erstelle ich eine System.Windows.Media.ImageSource aus einem Byte-Array?
- 5. Wie erstelle ich ein Array/eine Liste?
- 6. Wie erstelle ich ein Array von Namespaces?
- 7. Wie erstelle ich ein JSON-Array
- 8. Wie erstelle ich Geofence in einem Android?
- 9. Wie erstelle ich ein JSON-Array?
- 10. Wie erstelle ich ein Array von Punkten?
- 11. Wie erstelle ich ein regelmäßiges Array von Werten in MATLAB?
- 12. Wie erstelle ich mehrdimensionale Vektoren in Scala?
- 13. Wie erstelle ich ein multidimensionales http-Post-Array in JSP?
- 14. Wie erstelle ich ein Array in JSF EL?
- 15. Wie erstelle ich ein heterogenes Array in Scala?
- 16. Wie erstelle ich Gitter in yii mit benutzerdefiniertem Array?
- 17. Wie erstelle ich ein Array eines String-Objekts in PHP?
- 18. Wie erstelle ich eine Variable aus einem anderen Variablennamen?
- 19. Erstelle blockdiagonales numpy Array von einem gegebenen numpy Array
- 20. Wie erstelle ich Objekte aus Werten in einem Array in Node.js?
- 21. Two-Way in einem Aurelia Individuelle Bindungseigenschaften
- 22. Wie erstelle ich eine Registerkarte in einem Tab in Android?
- 23. Wie erstelle ich dynamisch ein mehrdimensionales Javascript-Array
- 24. Apache Spark: Wie erstelle ich eine Matrix aus einem DataFrame?
- 25. Wie erstelle ich eine kommagetrennte Liste von einem Array in PHP?
- 26. java - Wie erstelle ich ein int-Array mit zufällig gemischten Zahlen in einem gegebenen Bereich
- 27. Wie erstelle ich eine URL in einem Servlet?
- 28. Wie erstelle ich ein Etikett in einem Element?
- 29. Wie erstelle ich einen Style in einem WPF UserControl?
- 30. Wie erstelle ich einen Ordner auf einem Server in Ruby?
der JButton möglicherweise ein Attribut, das die Position auf dem Bildschirm behalten. – Seva
@Alan, richtig, Sie können 'getLocation()' oder 'getLocationOnScreen()' verwenden, aber das gibt Ihnen nur Pixelkoordinaten. Dadurch erhalten Sie logische Schlachtschiffkoordinaten. – jjnguy
Vielen Dank :) – matt