GridLayout - wie am besten implementieren

blz

Bekanntes Mitglied
Hallo zusammen,
ich habe keine große Erfahrung in der GUI-Programmierung.
Habe ein kleines Projekt, bei dem ich jetzt aber doch eine graphische Eingabe brauche, und zwar möchte ich ein Raster mit 8 x 11 Eingabefeldern haben, bei dem in jedes eine Zahl von 1 bis 33 eingegeben werden kann.
Meine Recherchen haben ergeben, dass ich als Layout hier wohl das GridLayout wählen sollte.
Erst habe ich versucht, mir die ganze GUI-Sache from scratch zu erarbeiten und mir das Fenster händisch zu basteln, bin aber gescheitert. Habe dann gedacht, vllt. ist das auch nicht unbedingt nötig, da ich so etwas so gut wie nie brauche, und habe zwei Editoren ausprobiert. (erst in eclipse und dann eine BlueJ-Erweiterung).
Aber auch damit hab ich das nicht vernünftig hingekriegt.
Daher wollte ich mal anfragen, was ihr mir empfehlen könnt und ob nicht vllt. jemand ein Minimalbeispiel posten könnte, dass ich mir ausbauen könnt :)
Vielen Dank für die Hilfe!
 

Enceladus271

Bekanntes Mitglied
GridLayout ist doch sehr simpel:
Java:
  public static void main(String[] args) {

     JPanel panel = new JPanel();
     panel.setLayout(new GridLayout(8, 11));
     for (int i = 0; i < 88; i++) {
       panel.add(new JTextField(2));
     }

     JFrame frame = new JFrame();
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     frame.add(panel);
     frame.pack();
     frame.setLocationRelativeTo(null);
     frame.setVisible(true);
   }
 

Blender3D

Top Contributor
bei dem in jedes eine Zahl von 1 bis 33 eingegeben werden kann.
Ich denke sein Hauptproblem ist die Begrenzung des Inputs auf 1 - 33. Deshalb meine Erweiterung Deines Codes Enceladus27.

Java:
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class start {
    public static void main(String[] args) {
        JPanel panel = new JPanel();
        panel.setLayout(new GridLayout(8, 11));
        for (int i = 0; i < 88; i++) {
            JTextField txt = new JTextField(2);          
            txt.setDocument(new NumberRange(33));
            panel.add(txt);        }

        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(panel);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}

Java:
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

public class NumberRange extends PlainDocument {
    private static final long serialVersionUID = 3293080459192819357L;
    private int max = 100; // maximum allowed value
    private int maxLenght = 1; // maximum allowed string length

    public NumberRange(int max) {
        this.max = max;
        maxLenght = (max + "").length();
    }

    @Override
    public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException {
        if (str == null || getLength() == maxLenght)
            return;
        str = str.replaceAll(".*[^0-9]", ""); // remove all non digits
        try {
            int len = getLength();
            String test = getText(0, offset) + str; // cursor at end
            if (len != offset) // cursor not at end
                test = getText(0, offset) + str + getText(offset, len);
            int value = Integer.parseInt(test.trim()); // calculate value
            if (value > max) // value larger then maximum
                return;
            super.insertString(offset, str, attr);
        } catch (NumberFormatException e) {
            System.out.println(e);
        } catch (BadLocationException e) {
            System.out.println(e);
        }
    }
}
Die Klasse NumberRange lässt sich natürlich noch verfeinern. ;)
 
Zuletzt bearbeitet von einem Moderator:

blz

Bekanntes Mitglied
Hey, vielen Dank,
hilft mir beides voll!!
Werde ggf. nochmal nachhaken müssen demnächst, wenn ich das alles eingearbeitet hab ... :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E GridLayout auf ScrollPane AWT, Swing, JavaFX & SWT 4
thor_norsk GridLayout AWT, Swing, JavaFX & SWT 11
H Swing , GridLayout, Größenbestimmung der Komponenten im Layout AWT, Swing, JavaFX & SWT 8
M Swing GridLayout AWT, Swing, JavaFX & SWT 2
D [Swing] Anordnung von Komponenten mit GridLayout Manager AWT, Swing, JavaFX & SWT 13
pkm kryptisches Verhalten bei GridLayout AWT, Swing, JavaFX & SWT 4
K Swing GridLayout - x und y bei Mausklick ausgeben AWT, Swing, JavaFX & SWT 4
S GridLayout SWT: Anordnung Composites nebeneinander AWT, Swing, JavaFX & SWT 2
B GridLayout Basics AWT, Swing, JavaFX & SWT 1
L Eigene JComponent in GridLayout AWT, Swing, JavaFX & SWT 9
fLooojava GridLayout - Frage bezüglich Kachelgröße AWT, Swing, JavaFX & SWT 5
F JPanel "verschmelzen" GridLayout AWT, Swing, JavaFX & SWT 10
M LayoutManager GridLayout funktioniert nicht AWT, Swing, JavaFX & SWT 0
T LayoutManager GridLayout panel.setSize funktioniert nicht AWT, Swing, JavaFX & SWT 1
F Gridlayout AWT, Swing, JavaFX & SWT 6
A JPanel oder GridLayout Größe festsetzten AWT, Swing, JavaFX & SWT 4
X GridLayout JPanel austauschen AWT, Swing, JavaFX & SWT 2
A JFrame Größenänderung mit Maus und GridLayout AWT, Swing, JavaFX & SWT 10
J Button in GridLayout AWT, Swing, JavaFX & SWT 2
C LayoutManager Grafik soll nicht im GridLayout Skalieren AWT, Swing, JavaFX & SWT 3
L LayoutManager GridLayout verschiebt sich AWT, Swing, JavaFX & SWT 6
B GridLayout AWT, Swing, JavaFX & SWT 6
T Spaltengröße einzelner Spalten in Gridlayout festlegen AWT, Swing, JavaFX & SWT 3
Karuka Abstände im GridLayout ändern AWT, Swing, JavaFX & SWT 8
Karuka 2D-Grafik Bilder in GridLayout einfügen AWT, Swing, JavaFX & SWT 7
C Scollpane an dynamisches GridLayout anpassen? AWT, Swing, JavaFX & SWT 3
J Swing Bilder anzeigen in Gridlayout AWT, Swing, JavaFX & SWT 11
C Linien über GridLayout zeichnen AWT, Swing, JavaFX & SWT 3
K Probleme mit Gridlayout AWT, Swing, JavaFX & SWT 4
U Elemente im Panel zentrieren mit GridLayout AWT, Swing, JavaFX & SWT 3
Z Swing JButton erweitern/Gridlayout AWT, Swing, JavaFX & SWT 2
L Swing GridLayout AWT, Swing, JavaFX & SWT 4
lumo LayoutManager SWT GridLayout - Reihenfolge ändern AWT, Swing, JavaFX & SWT 7
C Swing GridLayout: Kann man die Spaltenbreiten variabel gestalten? AWT, Swing, JavaFX & SWT 4
J SWT Größe eines Composite mit Gridlayout festlegen AWT, Swing, JavaFX & SWT 2
Y Kein GantChart in einem GridLayout AWT, Swing, JavaFX & SWT 5
M Formular in GridLayout ? AWT, Swing, JavaFX & SWT 17
R LayoutManager Problem mit GridLayout AWT, Swing, JavaFX & SWT 5
F LayoutManager GridLayout 0/0 auf andere Ecke setzen AWT, Swing, JavaFX & SWT 4
Rudolf Swing Gridlayout und Grouper vorhanden? AWT, Swing, JavaFX & SWT 4
S SWT GridLayout scrollbar machen? AWT, Swing, JavaFX & SWT 7
A Gridlayout Vertikal anordnen AWT, Swing, JavaFX & SWT 6
D LayoutManager GridLayout, 2 labels nebeneinander AWT, Swing, JavaFX & SWT 8
B Swing GridLayout.add über 2 Spalten? AWT, Swing, JavaFX & SWT 7
R LayoutManager GridLayout verändert isch andauernd AWT, Swing, JavaFX & SWT 4
A Frage zu GridLayout AWT, Swing, JavaFX & SWT 4
B GridLayout und scrollbar AWT, Swing, JavaFX & SWT 5
J Swing Bild in GridLayout AWT, Swing, JavaFX & SWT 8
aze GridLayout: Keine automatische Ausdehnung AWT, Swing, JavaFX & SWT 2
M SWT keine Scrollbar bei widgets.List und GridLayout AWT, Swing, JavaFX & SWT 2
M Image an Gridlayout anpassen AWT, Swing, JavaFX & SWT 5
E SWT Problem mit Gridlayout AWT, Swing, JavaFX & SWT 3
G SWT GridLayout AWT, Swing, JavaFX & SWT 2
lumo SWT GridLayout - clear? AWT, Swing, JavaFX & SWT 4
T GridLayout Zeilen Hintergrund AWT, Swing, JavaFX & SWT 5
N Gridlayout macht Probleme AWT, Swing, JavaFX & SWT 3
L GridLayout verändert festgesetzte Größe der Komponenten AWT, Swing, JavaFX & SWT 12
S Gridlayout - Tabellenzeile "beenden" AWT, Swing, JavaFX & SWT 3
Dragonfire GridLayout Probleme AWT, Swing, JavaFX & SWT 4
A JLabel, Icons und GridLayout AWT, Swing, JavaFX & SWT 3
C JPanel-Array in GridLayout AWT, Swing, JavaFX & SWT 4
G SWT GridLayout AWT, Swing, JavaFX & SWT 3
N Gridlayout 2. Spalte füllen AWT, Swing, JavaFX & SWT 4
W Problem mit GridLayout AWT, Swing, JavaFX & SWT 11
K Problem mit nem GridLayout AWT, Swing, JavaFX & SWT 5
T GridLayout, zu wenig Platz zwischen Widgets AWT, Swing, JavaFX & SWT 3
T SWT/Eclipse Form Controls zur Laufzeit hinzufügen,GridLayout AWT, Swing, JavaFX & SWT 4
M GridLayout mit fester Größe möglich? AWT, Swing, JavaFX & SWT 3
E Einfache Frage zu GridLayout AWT, Swing, JavaFX & SWT 35
G Größe der einzelenen Felder im GridLayout einstellbar? AWT, Swing, JavaFX & SWT 5
P Canvas in JFrame mit GridLayout AWT, Swing, JavaFX & SWT 4
F GridLayout: verschiedene Spaltenbreiten AWT, Swing, JavaFX & SWT 2
S GridLayout ? AWT, Swing, JavaFX & SWT 5
D AutoResize bei GridLayout ausschalten? AWT, Swing, JavaFX & SWT 2
D GridLayout mit nur einer Spalte, aber n Zeilen AWT, Swing, JavaFX & SWT 2
E GridLayout seltsame Anordnungsstrategie AWT, Swing, JavaFX & SWT 6
S Problemen mit Canvas-Objekten im GridLayout AWT, Swing, JavaFX & SWT 8
L Grids benennen beim GridLayout AWT, Swing, JavaFX & SWT 5
S GridLayout mit sehr großen Abständen AWT, Swing, JavaFX & SWT 3
I SWT GridLayout AWT, Swing, JavaFX & SWT 5
V Frage zu GridLayout. AWT, Swing, JavaFX & SWT 3
P SWT GridLayout AWT, Swing, JavaFX & SWT 5
O gridlayout konstante größe AWT, Swing, JavaFX & SWT 3
TRunKX Problem mit dem GridLayout und den proportionen AWT, Swing, JavaFX & SWT 4
P SWT: GridLayout und Textfelder AWT, Swing, JavaFX & SWT 1
M GridLayout funktioniert nicht mehr. AWT, Swing, JavaFX & SWT 2
F GridLayout horizontal ausrichten AWT, Swing, JavaFX & SWT 6
K GridLayout: Colspan, Rowspan AWT, Swing, JavaFX & SWT 2
R GridLayout spinnt AWT, Swing, JavaFX & SWT 14
C leeres Element in Gridlayout einfuegen AWT, Swing, JavaFX & SWT 3
D Problem bei GridLayout und JPanels AWT, Swing, JavaFX & SWT 4
J GridLayout AWT, Swing, JavaFX & SWT 5
H GridLayout: Größe einer Komponente ändern AWT, Swing, JavaFX & SWT 2
L Frage zum GridLayout AWT, Swing, JavaFX & SWT 4
G kann man die aufteilung von GridLayout beeinflussen ? AWT, Swing, JavaFX & SWT 10
W JavaFX Kontextmenü - wie am Besten? AWT, Swing, JavaFX & SWT 6
Soloeco LayoutManager Wie und welches Layout nutze ich am Besten? AWT, Swing, JavaFX & SWT 13
Z Wie gehe ich dieses Vorhaben am besten vor? AWT, Swing, JavaFX & SWT 3
M Wie am besten realisieren AWT, Swing, JavaFX & SWT 3
Rudolf Swing Wie testet man am besten eine GUI? AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen


Oben