Textfelder als Klasse im Array?

Status
Nicht offen für weitere Antworten.

Timmothey

Mitglied
Hallo liebe Java Gemeinde!
Ich bin ein Berliner Schüler, der gerade im Informatikunterricht in Teamarbeit ein kleines "Programm" entwickelt, welches Sudokus löst. Wir sind schon so weit, dass wir eine Version am Laufen haben, die über die Konsole läuft und da wir noch Zeit haben und ich ein etwas zu großes "Maul" hatte, bot ich mich an eine nette graphische Oberfläche zu machen.
Zu Beginn dachte ich mir, es sei ja ganz einfach: Man schnappt sich den JavaEditor und klickt sich etwas zusammen... Nur man hat Nachteile. Der wohl größte ist es, dass ein Sudokufeld bekanntlich 81 Felder hat, die man beim Ein- und Auslesen oder anderen Dingen immer einzeln ansprechen soll. -> Unpraktisch!
Also haben wir und noch einmal zusammen gesetzt und sind auf die prima Idee gekommen, dass Textfelder ja im Grunde genommen wie Klassen zu benutzen sind. Daraus folgt bei 81 Feldern ein Array anzulegen, weiles vom Typ "TextField" ist.
Die Idee ist denke ich schon annährend richtig, nur klappt das nicht so, wie wir uns das dachten!

Hier der Gedankenganz zum Aufbau:


Code:
mport java.awt.*;
import java.awt.event.*;

public class gui extends Frame {
  // Anfang Variablen

  public static TextField[] textfeld;
  // Ende Variablen

  public gui(String title) {
    // Frame-Initialisierung
    super(title);
    addWindowListener(new WindowAdapter() {
      public void windowClosing(WindowEvent evt) {
        System.exit(0);
      }
    });

    int frameWidth = 339;
    int frameHeight = 405;
    setSize(frameWidth, frameHeight);
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    int x = (d.width - getSize().width) / 2;
    int y = (d.height - getSize().height) / 2 ;
    setLocation(x, y);
    Panel cp = new Panel(null);
    cp.setBackground(Color.GRAY);
    add(cp);

    // Anfang Komponenten
    textfeld = new TextField[81];
    int index = 0;
    for(int i = 16; i < 300; i = i + 32){
      for(int j = 16; j < 300; j = j + 32){
        if(f<81){
          textfeld[index].setBounds(j, i, 25, 25);
          textfeld[index].setText("");
          cp.add(textfeld[index]);
          index++;
        }
      }
    }

    // Ende Komponenten

    setResizable(false);
    setVisible(true);
  }

  public static void main(String[] args) {
    new gui("Sudokus Lösen");
  }
}

Sorry, das das hier jetzt relativ lang ist, aber den Rest habe ich schon rausgeschnitten...

Ich bekomme in dem Falle:

Exception in thread "main" java.lang.NullPointerException
at gui.<init>(gui.java:41)
at gui.main(gui.java:111)

(Zeilen stimmen nicht mit Beispiel überein, da ich ja gekürzt habe...)
Zeile 41 ist:
textfeld[index].setBounds(j, i, 25, 25);
Zeile 111 ist:
new gui("Sudokus Lösen");

Als Test, ob das mit der Klasse funktioniert, habe ich auch einmal direkt eien Index außerhalb des Bereiches angesprochen (z.B.: textfeld[90]), dann bekomme ich einen OutOfBound Fehler...


Ich bin verwirrt! Was mache ich falsch?

Würde mich freuen, wenn sich jemand dem Problem widmen würde!

Danke also schon im Voraus!

MfG
Tim

PS: Ich bitte die etlichen fachlichen Ungebauigkeiten bitte zu überlesen :)
 
B

Beni

Gast
Dieser Code:
Code:
Textfeld[] textfeld = new Textfeld[81];
legt ein leeres Textfeld-Array an. Du musst zuerst etwas in den Array schreiben (das ist so ähnlich, wie wenn du 81 leere Flaschen gekauft hättest, und nun aus ihnen trinken willst...).

z.B. so:
Code:
for( int i = 0; i < textfeld.length; i++ ){
  textfeld[ i ] = new TextField();
}
(oder auch direkt in deinen beiden verschachtelten Schleifen).

Wenn wir gerade dabei sind: man kann auch Arrays von Arrays machen, das passt vielleicht besser zu einer Tabelle :wink:
Code:
TextField[][] textfeld = new TextField[9][9];

textfeld[3][1] = new TextField();

textfeld[3][1].setText( "blabla" );
 

Timmothey

Mitglied
Ich danke dir vielmals!

Tja ich bin ebend noch nicht so klar bei der Objektorientierten Programmierung und schon gar nicht bei Java. Irgendwie vollkommen logisch :oops:

Zu deinem Vorschlag mit dem mehrdimensionalen Array: Hatte ich auch schon in Überlegung hatte es nur wieder aus meinen Gedanken verdrängt, da unser Informatiklehrer schon nicht so auf unsere 3 Dimensionalen anderen Arrays stand, die Permutationen und die Feldmatrix beinhalten :)
Aber ist mir relativ egal, wenn das mehrere so denken, dann widersetze ich mich seinen Vorstellungen einfach mal!

Nochmals Danke!

MfG
Tim

PS: Noch eine kleine, aber vielleicht auch wichtige Frage:
Ich habe, weil ich dachte, dass es so klappt das nun etwas geändert, damit man nur Zahlen un dzwar auch nur eine in jedes Feld schreiben kann.

Code:
    for(int j = 1; j < 10; j++){
      for( int i = 1; i < 10; i++ ){
        textfeld[i][j] = new JFormattedTextField (new DecimalFormat("#"));
        textfeld[i][j].setColumns(1);
      }
    }

gibt keine Fehler (Nötiges wurde importiert) aber man kann trotzdem noch alles mögliche in ein Feld krachen, was ich aber nicht möchte.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
AmsananKING Textfelder sind gleich null AWT, Swing, JavaFX & SWT 2
B Mit der ChoiceBox-Auswahl Textfelder hinzufügen AWT, Swing, JavaFX & SWT 18
B Textfelder in einer ListView ausgeben AWT, Swing, JavaFX & SWT 13
M Swing Mehrere Textfelder mit ScrollBars - Größe der Felder AWT, Swing, JavaFX & SWT 0
r4w Changelistener auf mehrere Textfelder AWT, Swing, JavaFX & SWT 5
C AWT Textfelder werden nicht automatisch angezeigt AWT, Swing, JavaFX & SWT 2
X Swing Per Button die Labels und Textfelder auslesen AWT, Swing, JavaFX & SWT 8
F Textfelder auslesen AWT, Swing, JavaFX & SWT 12
A Swing JDialog KeyBindings und Textfelder AWT, Swing, JavaFX & SWT 5
P Komische Zeichen beim Abspeichern von TextFelder AWT, Swing, JavaFX & SWT 2
P 2D-Grafik versch. Rectangles aus array von textfelder zeichen AWT, Swing, JavaFX & SWT 6
C TextFelder auslesen AWT, Swing, JavaFX & SWT 20
Landei Swing JToolbar: Textfelder mit normaler Höhe? AWT, Swing, JavaFX & SWT 2
F Swing Mehrere Textfelder in Scrollpane einfügen und dann zum Scrollen bringen? AWT, Swing, JavaFX & SWT 4
S Textfelder JLabels AWT, Swing, JavaFX & SWT 3
D Benutzeroberfläche, Textfelder AWT, Swing, JavaFX & SWT 6
M AWT TextFelder und Labels nicht ausgerichtet AWT, Swing, JavaFX & SWT 6
N Textfelder werden nicht richtig angezeigt AWT, Swing, JavaFX & SWT 2
P Leere Textfelder abfangen AWT, Swing, JavaFX & SWT 4
J Textfelder AWT, Swing, JavaFX & SWT 3
S 2 Textfelder und nen Strich AWT, Swing, JavaFX & SWT 6
C DocumentListener auf mehrere Textfelder AWT, Swing, JavaFX & SWT 5
J Textfelder zu groß für den Text AWT, Swing, JavaFX & SWT 10
P Textfelder in einem Frame lassen sich nicht editieren AWT, Swing, JavaFX & SWT 3
K Textfelder auslesen gibt immer Fehler AWT, Swing, JavaFX & SWT 2
N Textfelder in JDIALOG AWT, Swing, JavaFX & SWT 6
J Durch Textfelder iterieren AWT, Swing, JavaFX & SWT 8
M Textfelder leeren AWT, Swing, JavaFX & SWT 6
T Per Dialog Textfelder löschen AWT, Swing, JavaFX & SWT 4
J Textfelder in Applet übernehmen größen angabe nicht! AWT, Swing, JavaFX & SWT 4
K Textfelder auslesen AWT, Swing, JavaFX & SWT 3
P SWT: GridLayout und Textfelder AWT, Swing, JavaFX & SWT 1
B NULL Layout - TextFelder verschwinden AWT, Swing, JavaFX & SWT 8
H Textfelder erzeugen AWT, Swing, JavaFX & SWT 2
D Überwachung mehrerer Textfelder AWT, Swing, JavaFX & SWT 4
N auf textfelder ueber namen zugreifen AWT, Swing, JavaFX & SWT 2
N Textfelder = Inhalt vorhanden && Jtable rendern AWT, Swing, JavaFX & SWT 8
L Textfelder für Dezimal, Binär und Hexwerte. AWT, Swing, JavaFX & SWT 6
D Mehrere verschiedene Textfelder auslesen? AWT, Swing, JavaFX & SWT 10
R Textfelder formatieren AWT, Swing, JavaFX & SWT 11
M Eigene Java Klasse für allgemeine Grafikelemente AWT, Swing, JavaFX & SWT 8
Jose05 Aus einer normalen Java Klasse eine FXML-Klasse laden AWT, Swing, JavaFX & SWT 12
W Gibt es einen "automatischen Listener" in Swing oder JTable oder der ATM-Klasse? AWT, Swing, JavaFX & SWT 14
_user_q Versionscode aus build.gradle in Java-Klasse ausgeben lassen AWT, Swing, JavaFX & SWT 14
H MouseAdapter Klasse nutzen wenn eigene Klasse bereits von anderer erbt AWT, Swing, JavaFX & SWT 13
Jose05 JavaFx Fxml: GUI aus einer anderen Klasse starten AWT, Swing, JavaFX & SWT 1
T JavaFX TableColumn in separate Klasse auslagern AWT, Swing, JavaFX & SWT 7
Monokuma KeyEvent in der Canvas Klasse AWT, Swing, JavaFX & SWT 0
B Was würden Profis an meiner Klasse verbessern? AWT, Swing, JavaFX & SWT 1
B JavaFX Verständnisfrage EventHandler<ActionEvent> Implementierung in meiner Klasse AWT, Swing, JavaFX & SWT 2
B JavaFX Farbe eines Quadrates in einer separaten Klasse ändern AWT, Swing, JavaFX & SWT 4
S Stream API, Anonyme Klasse AWT, Swing, JavaFX & SWT 8
B JavaFX Von welcher Klasse und zu welchem Zeitpunkt werden Event-Objekte erstellt? AWT, Swing, JavaFX & SWT 3
N Aufruf einer anderen Klasse durch Button ActionListener AWT, Swing, JavaFX & SWT 2
F jTree und das Model aus einer eigenen Klasse AWT, Swing, JavaFX & SWT 1
F Jtree aus Klasse mit Arraylisten AWT, Swing, JavaFX & SWT 1
L Javafx Controller Klasse in Maven AWT, Swing, JavaFX & SWT 7
karlmasutra JavaFX Zugriff auf eine erzeugte Scene aus einer anderen Klasse AWT, Swing, JavaFX & SWT 1
J Bild von anderer Klasse will nicht laden AWT, Swing, JavaFX & SWT 1
L CardLayout in einer Klasse? AWT, Swing, JavaFX & SWT 2
L Java- UI zweites Fenster aus einer anderen Klasse öffnen durch ButtonClick AWT, Swing, JavaFX & SWT 4
ralfb1105 Swing Ausführung einer SwingWorker Klasse stoppen AWT, Swing, JavaFX & SWT 4
xYurisha JLabel Text einer geöffneten Gui über eine andere Klasse ändern! AWT, Swing, JavaFX & SWT 3
J 2D-Grafik Background einer Jpanel Klasse ändern AWT, Swing, JavaFX & SWT 1
J JFram Location aus Konstruktor einer anderen Klasse auslesen AWT, Swing, JavaFX & SWT 10
J 2D-Grafik Background Image Klasse AWT, Swing, JavaFX & SWT 14
K Frame aus anderer Klasse schließen AWT, Swing, JavaFX & SWT 3
M Eigene Klasse mit Grafikobjekten schreiben AWT, Swing, JavaFX & SWT 4
0 Swing JTable aus anderer Klasse updaten AWT, Swing, JavaFX & SWT 5
it_is_all Event Handling ActionListener in anderer Klasse klappt nicht AWT, Swing, JavaFX & SWT 4
L JavaFX button über andere Klasse ändern AWT, Swing, JavaFX & SWT 7
K über Button andere Java Klasse aufrufen AWT, Swing, JavaFX & SWT 15
C Nach Aufruf von anderer Klasse streikt Grafik AWT, Swing, JavaFX & SWT 1
S per Button Variableninhalt aus anderer Klasse holen AWT, Swing, JavaFX & SWT 3
F AWT Robot Klasse Screenshot nach Pixelmustern in bestimmten Radius um Bildschirmmittelpunkt absuchen AWT, Swing, JavaFX & SWT 13
K JButton auf anderer Klasse AWT, Swing, JavaFX & SWT 6
R Update eines Labels bei Methodenaufruf einer anderen Klasse AWT, Swing, JavaFX & SWT 9
Java_RY AWT Frame in eine eigene klasse auslagern und aufrufen AWT, Swing, JavaFX & SWT 6
L JavaFX Verbindung zwischen Beschreibung und Listener (Codebehind Klasse) AWT, Swing, JavaFX & SWT 4
J JTextfield automatisch aus zweiter Klasse aktualisieren AWT, Swing, JavaFX & SWT 5
J JavaFX Tableview Daten hinzufügen aus anderer Klasse AWT, Swing, JavaFX & SWT 7
Ghostman1711 GUI Java von Klasse mit Application Windows anderes Application Window aufrufen AWT, Swing, JavaFX & SWT 6
K JTable in extra Klasse, Zugriff in einer anderen klasse nicht möglich AWT, Swing, JavaFX & SWT 26
D JavaFX Probleme bei Service-Klasse beim ändern der GUI AWT, Swing, JavaFX & SWT 8
T Klasse über JButton schließen AWT, Swing, JavaFX & SWT 4
N JavaFX Erweitern der Line(Shape)-Klasse AWT, Swing, JavaFX & SWT 1
T Durch klicken eines Buttons Klasse wechseln AWT, Swing, JavaFX & SWT 2
7 JavaFX Verwendung einer ResizableCanvas-Klasse in fxml-Datei AWT, Swing, JavaFX & SWT 3
A JavaFX Von Klasse auf Controller Inhalt zugreifen AWT, Swing, JavaFX & SWT 9
L Swing Teile eines JPanel in eigene Klasse auslagern AWT, Swing, JavaFX & SWT 3
J Eigene Klasse auf Basis Textfield in SceneBuilder anzeigen AWT, Swing, JavaFX & SWT 4
B Swing Auf JList-Elemente aus einer anderen Klasse zugreifen AWT, Swing, JavaFX & SWT 1
J JavaFX Mehrfache Benutzung von Methoden einer Klasse AWT, Swing, JavaFX & SWT 17
B Jlabel Text von anderen Klasse aus ändern AWT, Swing, JavaFX & SWT 9
stylegangsta Eigene Klasse für JButton aus dem JFrame abrufen AWT, Swing, JavaFX & SWT 29
N JavaFX GUI Elemente einer anderen (FXML)Klasse ansprechen AWT, Swing, JavaFX & SWT 16
O JTabeddpane aber jedes JPanel als eigene Klasse anlegen AWT, Swing, JavaFX & SWT 7
B Swing GUI in einer anderen Klasse aufrufen AWT, Swing, JavaFX & SWT 4
B Klasse mit ArrayList AWT, Swing, JavaFX & SWT 1
G Event Handling Event Handling in eigene Klasse AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben