Command Line + GUI

Hallo

Ist es mögilch mit Java die command line zu überschreiben? Also wenn ich z.B. in die command line “aaa” schreibe, dies dann mit etwas anderem zu überschreiben.

Zudem suche ich noch die einfachste Möglichkeit einen simplen GUI zu erstellen. Der GUI sollte einfach aus einer Tabelle bestehen, wobei die Anzahl Kolonnen fix ist und dann je nach Datenmenge Zeilen hinzugefügt werden. Zudem sollten zwei Buttons vorhanden sein und optional noch checkboxen. Er muss nicht schön aussehen, sondern einfach funktional sein.

Was würdet ihr mir da empfehlen? Es soll einfach schnell gehen und einfach sein. Habe in Java noch nie einen GUI erstellt.

Das ist leider nicht ganz einfach. Du könntest dir aber mal JCurses anschauen, ist leider plattformabhängig.

[quote=Helveticus;102189]Zudem suche ich noch die einfachste Möglichkeit einen simplen GUI zu erstellen. Der GUI sollte einfach aus einer Tabelle bestehen, wobei die Anzahl Kolonnen fix ist und dann je nach Datenmenge Zeilen hinzugefügt werden. Zudem sollten zwei Buttons vorhanden sein und optional noch checkboxen. Er muss nicht schön aussehen, sondern einfach funktional sein.

Was würdet ihr mir da empfehlen? Es soll einfach schnell gehen und einfach sein. Habe in Java noch nie einen GUI erstellt.[/quote]
Swing kennst du? Damit lässt sich ganz relativ einfach umsetzen wenn man mal die LayoutManager verstanden hat.

Vielen Dank für den Tipp. Ich kenne Swing noch nicht, habe aber folgendes Tutorial gefunden: http://niravjavadeveloper.blogspot.ch/2011/06/mysql-data-in-jtable-tutorial-hello.html

Das ist genau das was ich möchte, also eine database table als GUI darstellen. Nun habe ich aber noch ein paar Anliegen und hoffe, dass du mir helfen kannst:

  1. Ich möchte bestimmte Zeilen der Tabelle farbig hervorheben. Also wenn z.B. der Wert der Kolonne id > 3 ist sollen alle betreffenden Zeilen gelb werden.

  2. Ich würde gerne oberhalb der Tabelle eine popup Box haben wo man 3 Werte wählen kann. Zudem soll da rechts von der popup Box auch noch ein Button und ein Textfeld sein. Die Tabelle soll jeweils geupdatet werden (also die database query noch einmal ausgeführt werden), wenn sich etwas in der popup Box oder Textfeld ändert oder wenn der Button geklickt wird.

  3. Rechts neben dem Textfeld soll zudem noch eine Suchbox sein, wo man ein Suchwort eingeben kann. Dann soll die Tabelle jeweils mit entsprechendem SQL Query gefiltert werden und die neue Tabelle angezeigt werden.

Wäre es vielleicht mögilch, dass du das kurz zeigst wie du das in Code machen würdest? Muss nicht schön sein, einfach basic und z.B. SQL Queries kann ich selber schreiben.

Gibt es vielleicht einfache Verschönerungsmöglichkeiten für den GUI?

Ich danke dir schonmal vielmals Elke. :slight_smile:

Da steckt schon etwas Arbeit drin, die möchte ich dir ungerne abnehmen :wink: Aber ich gebe dir gerne ein paar Hinweise mit:

Das aussehen einer Zelle kannst du bei einer JTable mit dem TableCellRenderer ändern. Würde ich zunächst aber mal hinten anstellen, das ist schon etwas komplizierter.

Siehe ComboBox

Siehe: Button und TextField

Stichwort: ActionListener.

Vielen Dank. Ich probiere es mal aus. :wink:

Wenn ich z.B. möchte, dass die Tabelle automatisch jede 5s oder beim Drücken von F5 geupdated wird, kann ich das auch mit dem actionListener erreichen?

Nein, dafür nutzt du entweder einen Timer (alle 5 Sekunden), oder KeyBindings (per F5).

EikeB hat dir ja schon alle Links zu den nötigen Komponenten gegeben. Da du aber mit GUIs noch nichts am Hut hattest, hab ich für 1.) was für dich:

JTable myTable= new JTable(myTableModel)   //myTableModel enthält die Daten aus der SQL-Abfrage
			{
			    public Component prepareRenderer( TableCellRenderer renderer, int row, int column)
			        {	
			            Component c = super.prepareRenderer(renderer, row, column);
			            
			            //Alternierende Zeilenfarben:			            
		            	if(isRowSelected(row))
		            		c.setBackground(Color.RED); //Ausgewählte Zeile hat roten Hintergrund
		            	else 
                            c.setBackground(Color.WHITE); //Nicht ausgewählte Zeilte hat weißen Hintergund

		            	c.setForeground(Color.BLACK); //Schriftfarbe : Schwarz
		            	
		            	repaint();
			            return c;
			            
			        }
			};

Das hatte ich bei mir noch rumliegen. Es funktioniert, Änderungen musst du aber selbst vornehmen :wink: