"größeres Problem" mit JComboBox und Textfield

Status
Nicht offen für weitere Antworten.

sturdy

Mitglied
hi ,

hab ein Problem.
Ich hab ja dieses Filmverwaltungsprogramm.
Bei der Filmeingabe bzw später beim ändern der Details , möchte ich folgendes haben
Filmname , Format usw ist klar ist Textfield.
Jetzt soll beim Status eine Combox hin wo man auswählen kann ob "vorhanden" oder "verliehen" .
Wenn nun verliehen ausgewählt wird soll das Textfield "status" editable sein , ansonsten nicht.

Also das Filmeingabe Menü sieht wie folgt aus :

Code:
Container pane = getContentPane();
		JPanel p;
		// Eingabefelder im Center
		p = new JPanel();
		p.setLayout(new GridLayout(10,2,2,2));
		p.add(new JLabel("Filmnummer"));
		tNr = new JTextField(5);
		p.add(tNr);
		p.add(new JLabel("Filmname"));
		tName = new JTextField(10);
		p.add(tName);
		p.add(new JLabel("Genre"));
		tGenre = new JTextField(5);
		p.add(tGenre);
		p.add(new JLabel("Laufzeit"));
		tLaufzeit = new JTextField(5);
		p.add(tLaufzeit);
		p.add(new JLabel("Jahr"));
		tJahr = new JTextField(5);
		p.add(tJahr);
		p.add(new JLabel("Format"));
		tFilmFormat = new JTextField(5);
		p.add(tFilmFormat);
		p.add(new JLabel("Wertung ( IMDB )"));
		tWertung = new JTextField(5);
		p.add(tWertung);
		// JCOMBOBOX
		p.add(new JLabel("status"));
		tstatus = new JComboBox(5);              <--------- hier muss noch die auswahlbedigung rein
		p.add(tstatus);
//		tstatus.setLineWrap(true);
		pane.add(p, BorderLayout.WEST);
                                p.add(new JLabel("Person"));
		tPerson = new JTextField(5);
		p.add(tPerson);

Kann mir nun da jemand die Combobox einbinden ( + die Deklaration ausserhalb der Methode , also wie ich diese Oben anlege ?!
Und zusätzlich eventuell noch den Teil mit der Bedingung wenn Vorhanden oder Verliehen ausgewählt wurde ??

Schon vielen Tausend dank für die Mühe !!!!

greetz

Tom


SO HIER DER QUELLTEXT : HTTP://HOME.ARCOR.DE/FUTURELEECH/dvd/DVDPROGGIE.zip


edit :
Code:
if (tstatus.getText()==verliehen)
{
    tPerson.setEditable(true);
}
sieht das vielleicht so aus ^^ ?
 

Sky

Top Contributor
sturdy hat gesagt.:
Kann mir nun da jemand die Combobox einbinden ( + die Deklaration ausserhalb der Methode , also wie ich diese Oben anlege ?!
Äh, das geht doch genau wie die anderen Felder auch! Wo liegt das Problem???

sturdy hat gesagt.:
Und zusätzlich eventuell noch den Teil mit der Bedingung wenn Vorhanden oder Verliehen ausgewählt wurde ??
Du brauchst einen Listener dafür!
 

sturdy

Mitglied
Das Problem liegt bei Angabe der Auswahlmöglichkeiten.

Und braucht man wirklich nen Listener , reicht nicht ein einfach getText() ?
 

Sky

Top Contributor
sturdy hat gesagt.:
Das Problem liegt bei Angabe der Auswahlmöglichkeiten.

Und braucht man wirklich nen Listener , reicht nicht ein einfach getText() ?

Ich dachte Du wolltest dein Textfeld in Abhängigkeit der Combobox ändern. Das bedeutet: Änderung in der Box -> Listener reagiert -> Textfeld wird auf (dis/en)abled gesetzt.
 

sturdy

Mitglied
jo und ich dachte man könne das Problem mit einer If Bedingung abfragen so alla

if ( tstatus.getText()==verliehen )
{
tPerson.setEditable(true);
}

oder geht das nicht ?
 

Sky

Top Contributor
1.) Stringvergleiche immer mittels 'equals'!

2.) Ja klar geht das. Die Frage ist nur, wann wird diese Abfrage durchgeführt?? Mein Vorschlag war, das durch einen Listener zu machen, welcher direkt nach Änderung der Box die Abfrage durchführt. Ansonsten bekommt dein Textfeld das nicht mit!!
 

sturdy

Mitglied
wenn du grad zeit hättest wäre es voll lieb das grad mal aufzuschreiben ;) ich progge noch nicht so lang mit java und kenn mich daher noch nicht so gut mit aus , gesamter quelltext liegt dir ja oben vor , zu not einfach da reinschreiben und per mail wieder an mich ...
wollte das programm morgen meiner ausbildungsgrppe vorstellen und da sollte dieses feature noch drin sein ;)
hat dann nämlich keiner sowas :D
 

Frankie54

Mitglied
Du bist in der Ausbildung und programmierst nicht so lange?? Ausbildungsbeginn war 1.Sep 04, wenn ich mich nicht irre, das jetzt über nen halbes Jahr, da solltest sowas ja wohl schon gelernt haben, das kann ich jetzt ja gar nicht glauben und dann auch noch so dreist sein und uns hier einspannen um Deine Aufgaben zu machen. Ich frage mich ernsthaft ob das DVD-Proggie überhaupt von Dir ist, wenn Du nicht mal weißt wie man Strings miteinander vergleicht und dann willste uns sowas da hinzaubern??
 

sturdy

Mitglied
ich hatte wenn es hoch kommt 2 monate java am stück , weil ich auch sonst noch andere kurse habe wie datenbank , sql , html und webdesign.
in der schule habe ich c++ aber das bringt mich auch nicht viel weiter.
Ich habe alle Skripte die wir bekommen haben hier @java kurs zu hause , weil wir die vor einiger zeit mal bekommen haben und die JAva Hilfe bringt mir auch nicht viel ....

ausserdem weiss ich wie man strings vergleicht :p


S1.getXYZ().equals("zu vergleichender string")


und zur beruhigung : Das Programm stammt von mir .... müsste allein schon an der unsauberen Programmierweise auffallen o_O

Es wäre halt nur ein nettes Feature das noch drin stehen zu haben , die anderen Programmieren beispielsweise eine Kundenverwaltung , also bitte lasst mich net im Regen stehen , mit dem kleinen Feature ;)
 
G

Gast

Gast
wenn Du im Kurs bist wirst ja wohl sicher nicht der einzigste sein, dann lass Dir doch dort helfen.
Der Kursleiter, wird das sicherlich wissen...
 

sturdy

Mitglied
aber dann isses keine überraschung mehr -_-

naja aber schade wenn ihr mir nicht helfen wollt / könnt , muss ich mich auf die suche in anderen foren machen -_-
 

sturdy

Mitglied
so habe das Problem jetzt doch alleine fast gelöst bekommen und zwar wie folgt
siehe pfeile im code

Code:
protected boolean checkFields()
	{
		boolean ok = true;

		if ( tNr.getText().length() == 0 )
		{
			JOptionPane.showMessageDialog(this,
			  "Es muss eine gültige Filmnnummer eingegeben werden!",
			  "Fehler", JOptionPane.ERROR_MESSAGE);
			ok = false;
		}
		if ( tName.getText().length() == 0 )
		{
			JOptionPane.showMessageDialog(this,
			  "Es muss ein gültiger Filmtitel eingegeben werden!",
			  "Fehler", JOptionPane.ERROR_MESSAGE);
			ok = false;
		}	
		
---------->>>>>	if ( tstatus.getText().equals("verliehen"))
		{
			tPerson.setEditable(true);
			JOptionPane.showMessageDialog(this,"Bitte geben Sie nun noch die Person ein an    den Sie den Film ausgeliehen haben","Fehler",JOptionPane.ERROR_MESSAGE);
			if ( tPerson.getText().length() == 0 )
			{
			return ok;
		                }
			ok = false;
		}
	return ok;


Jetzt ist nur noch hierbei das Problem dass ich nicht mehr in der Lage bin den Namen einzugeben .

ohne diese if abfrage

Code:
if ( tPerson.getText().length() == 0 )
			{
			return ok;
		                }

hat er ständig gesagt "Bitte geben sie den namen der person ein , die den sie den film verliehen haben


Bitte um korrektur meines fehlers den ich im moment leider nicht finde ;)
 
G

Gast

Gast
Die Frage ist, wie Du den Namen eingeben willst übern DIalog oder dierekt in ein Textfeld?
und warum ohne den letzten Code die Abfrage immer kommt sollte Dir ja wohl klar sein, wenn nicht, dann enthalte ich mich mal meiner Meinung....
 
S

sturdy*notloggedin

Gast
Es sieht wie folgt aus :

Man gibt seinen Film ein , wenn man nun bei status verliehen eingibt , geht das Dialogfeld auf das sagt , dass man nun den namen der person eingeben soll an den der film verliehen wurde.
diesen namen gibt man in das textfeld ein und bestätgit dann mit ok.
Allerdings kommt dann dieses Dialogfeld erneut.
Ich denke das ein , dass dieses ok = false ; fehl am platz ist und er das return ok; gar nicht mehr erreicht
 

Frankie54

Mitglied
Was bringt es Dir, wenn das return erreicht wird, also ich weiß ja nicht was Du damit bezwecken willst, aber das return ok, wird erreicht sobald in dem Textfeld kein Text steht, nur so als Tip....
Das ja echte Logik...
*Achtung Sarkasmus*
 

sturdy

Mitglied
Es wäre einfach nur nett wenn ihr mir sagen könntet was falsch darin ist , damit er keinen Fehler bringt und das Programm so läuft wie ich mir das vorstelle ;)

bitte bitte :bahnhof:
 
G

Gast

Gast
Wenn Dich jemand verstehen würde, würde er Dir sicher helfen, das Problem ist aber, das Dein Quelltextausschnitt nicht zu gebrauchen ist und die Frage wo das Textfeld ist ob in einem Dialog oder nicht ist auch noch nicht beantwortet
 

Sky

Top Contributor
Ich habe deine Source mal runter geladen und angeschaut.

1.) es hat nicht geholfen dein Problem zu verstehen: Jemand der sowas schreibt wird doch wohl mit 'Kleinigkeiten' fertig, oder nicht?

2.) Es gibt noch ne Ganze Menge andere Sachen, die Du Dir vielleicht mal überlegen könntest, z.B.:
- Wenn eine Filmnummer bereits vergeben ist, so sollte diese nicht mehr eingebbar sein; besser noch, das Prog. gibt die Nr. vor.
- Die Eingabemöglichkeit von Buchstaben in den Feldern "Laufzeit" und "Jahr" macht nicht sonderlich viel Sinn.
- Die Spalten Format und Status sowie evtl. Genre sollten Comboxen sein
 

sturdy

Mitglied
Bei der Filmeingabe habe ich lauter Textfelder, einschließlich dem der Person an die der Film verliehen werden soll. Dieses Feld ist jedoch am Anfang von nicht editierbar.
Es wird erst in dem Moment editierbar wenn der Benutzer im darüberliegenden Feld "verliehen" eingibt.
Damit das Programm merkt das dort verliehen steht klickt er zunächst auf den OK Button. ( in diesem Moment überprüft das Programm ob "verliehen" eingegeben wurde ). Ist dies der Fall öffnet sich ein Dialogfeld in dem der Benutzer aufgefordert wird nun den Benutzernamen ( IN DAS FREIGSCHALTETE TEXTFELD ) einzugeben, und dann wieder mit OK zu bestätigen.

Dort liegt jetzt mein Fehler , wenn er wieder auf OK klickt , geht das Dialogfenster immer wieder auf , und er speichert die Person einfach nicht ...


@sky : ich weiss , das Programm ist noch verbesserungsdürftig. Solche Sachen werden später alle noch folgen aber ich wollte das Programm erstmal soweit lauffähig machen.
Der Rest kommt alles noch ;)
 

Sky

Top Contributor
Du mußt prüfen, ob der Status 'verliehen' ist und ob die Textlänge in Person größer null (also '0') ist.
 

sturdy

Mitglied
ist das so richtig :

Code:
if ( tstatus.getText().equals("verliehen"))
		{
			tPerson.setEditable(true);
			JOptionPane.showMessageDialog(this,"Bitte geben Sie nun noch die Person ein an den Sie den Film ausgeliehen haben"
			,"Fehler",JOptionPane.ERROR_MESSAGE);
			if ( tPerson.getText().length() <= 0 )
			{
				return ok;
			}
	
		}
 
G

Gast

Gast
Also nur mal so als Tip, wenn man auf einen Button unterschiedliche Funktionen setzt und diese auch nur unter bestimmten Bedingungen aufgerufen werden sollen, dann sollte man auch ne Flag setzen!!!!
 

Sky

Top Contributor
sturdy hat gesagt.:
ist das so richtig :

Code:
if ( tstatus.getText().equals("verliehen"))
		{
			tPerson.setEditable(true);
			JOptionPane.showMessageDialog(this,"Bitte geben Sie nun noch die Person ein an den Sie den Film ausgeliehen haben"
			,"Fehler",JOptionPane.ERROR_MESSAGE);
			if ( tPerson.getText().length() <= 0 )
			{
				return ok;
			}
	
		}

Übersetzen, Probieren, Selber sehen!
 

sturdy

Mitglied
narf mist , ersten fehler schon gefunden :D man sollte schon < & > unterscheiden können



aaah mir geht ein licht auf :D


klar kommt immer das dialog fenster ..... immer wenn das verliehen drin steht , geht das ja auf :D

Code:
		if ( tstatus.getText().equals("verliehen"))
		{
			tPerson.setEditable(true);
			JOptionPane.showMessageDialog(this,"Bitte geben Sie nun noch die Person ein an den Sie den Film ausgeliehen haben"
			,"Fehler",JOptionPane.ERROR_MESSAGE);
			tstatus.setText("ausgeliehen");
			
		}
		
		if ( tPerson.getText().length() >=-1  )
			{
			theFilm.setPerson(tPerson.getText());
			ok = true;
			}


so müsste das laufen
 
G

Gast

Gast
wie wäre es anstatt hier rumzuflamen ihm einfach ne Lösung anbietet ...

Meine Güte

jeder fängt mal klein an
 

Sky

Top Contributor
Anonymous hat gesagt.:
wie wäre es anstatt hier rumzuflamen ihm einfach ne Lösung anbietet ...

Meine Güte

jeder fängt mal klein an
Natürlich fängt jeder klein an. Aber ich finde es ist nicht zu viel verlangt auch selbst mal was nachzulesen!

Die Frage:
sturdy hat gesagt.:
nur wie mach ich das jetzt mit dem listener auf die combobox ?
beantwortet man sich doch selbst wenn man in der API mal ein bißchen stöbert! (vor allem wenn man weiß, dass man auf eine JComboBox einen Listener setzen muss!)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Events, Listener, GUI . Größeres Projekt AWT, Swing, JavaFX & SWT 4
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
H 2D-Grafik Problem mit Paint AWT, Swing, JavaFX & SWT 1
S Layout - Problem AWT, Swing, JavaFX & SWT 1
Tassos JavaFX/Problem mit der Maussteuerung in Stackpane AWT, Swing, JavaFX & SWT 7
sserio Java Fx - Problem AWT, Swing, JavaFX & SWT 3
A Problem Spiel auf Panel der GUI zu bringen AWT, Swing, JavaFX & SWT 1
A JavaFX Controller Problem AWT, Swing, JavaFX & SWT 1
TheWhiteShadow JavaFX ListView Problem beim Entfernen von Elementen AWT, Swing, JavaFX & SWT 1
E LayoutManager Welcher Layout-Mix löst mein Problem? AWT, Swing, JavaFX & SWT 3
Umb3rus JavaFX Problem mit PropertyValueFactory: can not read from unreadable property AWT, Swing, JavaFX & SWT 1
T Problem mit paintComponent() AWT, Swing, JavaFX & SWT 17
AmsananKING Java Menü-Problem AWT, Swing, JavaFX & SWT 1
K JavaFX Resizing-Problem beim BorderLayout (Center Component) beim Arbeiten mit mehreren FXMLs AWT, Swing, JavaFX & SWT 2
G Instance OF Problem AWT, Swing, JavaFX & SWT 9
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
M Problem mit dem Anzeigen von Frames im Vordergrund AWT, Swing, JavaFX & SWT 5
Badebay Problem mit JButton AWT, Swing, JavaFX & SWT 2
newJavaGeek Grid-Layout problem AWT, Swing, JavaFX & SWT 7
J JavaFX Löschen im Tabelview macht Problem AWT, Swing, JavaFX & SWT 15
JavaTalksToMe JavaFx ExekutorService Problem AWT, Swing, JavaFX & SWT 2
Zrebna Problem bei Eventhandling (Value soll nach jedem erneutem Klick gelöscht werden) AWT, Swing, JavaFX & SWT 4
B Problem mit JavaFX AWT, Swing, JavaFX & SWT 5
J css Problem AWT, Swing, JavaFX & SWT 5
B JavaFX habe mein Problem fett markiert AWT, Swing, JavaFX & SWT 2
A Swing Filter-Problem AWT, Swing, JavaFX & SWT 1
temi JavaFX Problem mit IntelliJ und JavaFx 11 unter XUbuntu AWT, Swing, JavaFX & SWT 3
L Java FX Problem mit Ubuntu 18 und JavaFx AWT, Swing, JavaFX & SWT 27
H JTable TableCellEditor-Problem AWT, Swing, JavaFX & SWT 0
kodela Swing Problem mit Warten-Dialog AWT, Swing, JavaFX & SWT 16
B JavaFx Scene Builder Problem AWT, Swing, JavaFX & SWT 2
B [Problem] Java öffnet Word-Datein nicht AWT, Swing, JavaFX & SWT 14
T DataBinding Problem AWT, Swing, JavaFX & SWT 5
Blender3D Problem mit € Symbol Font Gotham Windows 10 Swing AWT, Swing, JavaFX & SWT 11
T Problem mit JTable Sortierung AWT, Swing, JavaFX & SWT 2
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 15
J Problem mit Platfrom run later AWT, Swing, JavaFX & SWT 0
D Swing SwingUtils / Thread Problem AWT, Swing, JavaFX & SWT 3
L JavaFX Problem beim Aufrufen einer Methode AWT, Swing, JavaFX & SWT 5
T Swing Problem mit Datum und FormattedTextField AWT, Swing, JavaFX & SWT 2
S AWT Java print dialog Problem AWT, Swing, JavaFX & SWT 0
olfibits JavaFX Problem mit HTMLEditor AWT, Swing, JavaFX & SWT 0
W SWT hover-background-problem with first column in TreeViewer AWT, Swing, JavaFX & SWT 0
M Problem mit Add JScrollPane AWT, Swing, JavaFX & SWT 25
Mario1409 Swing JTextArea scroll Problem AWT, Swing, JavaFX & SWT 0
N Swing Problem mit loop AWT, Swing, JavaFX & SWT 2
S Swing Problem mit Button und ActionListener AWT, Swing, JavaFX & SWT 5
S Swing & Clean und build Problem AWT, Swing, JavaFX & SWT 12
S JLabel setText() Problem AWT, Swing, JavaFX & SWT 6
I 2D-Grafik Problem beim Ändern der Farbe eine 2d Objekts AWT, Swing, JavaFX & SWT 3
G Swing Splitpane Problem AWT, Swing, JavaFX & SWT 1
F Problem mit der FXML Rectangle Shape AWT, Swing, JavaFX & SWT 2
N JavaFX Stranges Problem mit der Autoscroll-Eigenschaft von Textareas AWT, Swing, JavaFX & SWT 0
E Java FX FXML Problem mit html Scriptausführung AWT, Swing, JavaFX & SWT 2
J JavaFX Intersect Problem mit Shapes AWT, Swing, JavaFX & SWT 10
R JavaFX MediaPlayer AVI-Problem AWT, Swing, JavaFX & SWT 1
M Swing Problem mit ListCellRenderer AWT, Swing, JavaFX & SWT 7
D Problem mit JTable AWT, Swing, JavaFX & SWT 1
F GUI Auflösung ändern - Koordianten und Proportions Problem AWT, Swing, JavaFX & SWT 21
J Problem mit Button darstellung AWT, Swing, JavaFX & SWT 23
M Problem mit Layoutmanagern... Hilfe wäre sehr nett. AWT, Swing, JavaFX & SWT 2
S 2D-Grafik Problem mit Variablen AWT, Swing, JavaFX & SWT 4
7 JavaFX Problem beim Zeichnen eines Dreiecks in einem GUI AWT, Swing, JavaFX & SWT 6
M Swing AttributiveCellTableModel addRow() Problem AWT, Swing, JavaFX & SWT 1
J Swing Problem mit Graphics Methode AWT, Swing, JavaFX & SWT 4
N JavaFX Problem mit table multiple selection AWT, Swing, JavaFX & SWT 5
K CheckBox Problem AWT, Swing, JavaFX & SWT 5
Grevak DisplayMode Problem seit Windows 10 AWT, Swing, JavaFX & SWT 2
S Swing Eigene JComboBox Problem! AWT, Swing, JavaFX & SWT 1
B Swing Problem mit Bildpfad AWT, Swing, JavaFX & SWT 4
N Swing Problem beim Scrollen mit JScrollPane AWT, Swing, JavaFX & SWT 6
V Graphics g - drawOval problem mit background AWT, Swing, JavaFX & SWT 1
C AWT Problem mit Protokol Fenster AWT, Swing, JavaFX & SWT 0
M Swing pack() Problem mit Taskleiste AWT, Swing, JavaFX & SWT 4
N Swing Choice- Problem! AWT, Swing, JavaFX & SWT 8
Q "AWT-EventQueue-0" Exception Problem AWT, Swing, JavaFX & SWT 4
D jButton Problem, ein Rieser Button bedeckt das ganze frame AWT, Swing, JavaFX & SWT 1
A Problem: repaint() - Schleife AWT, Swing, JavaFX & SWT 3
J Anfänger GUI Problem bei der Ausführung eines sehr einfachen Programms AWT, Swing, JavaFX & SWT 2
P AWT Problem mit Platzierung (GridBagLayout) AWT, Swing, JavaFX & SWT 2
N Swing JTree Problem beim erstellen der Knoten AWT, Swing, JavaFX & SWT 0
N Swing CardLayout: Problem beim Wechsel zwischen den JPanels AWT, Swing, JavaFX & SWT 3
A Mini-Menu-Schriften. Ein Problem bei hohen DPI Zahlen AWT, Swing, JavaFX & SWT 2
Z Canvas in Frame einfügen. Problem mit 4-Gewinnt AWT, Swing, JavaFX & SWT 1
C Thread-/ Simulations- Problem AWT, Swing, JavaFX & SWT 18
G Swing Setvisible problem AWT, Swing, JavaFX & SWT 1
J JTabbedPane: close Button Problem AWT, Swing, JavaFX & SWT 2
Tom299 JavaFX -> fxmlLoader -> getResourceAsStream Problem AWT, Swing, JavaFX & SWT 1
T Problem: ComboBox und addItem AWT, Swing, JavaFX & SWT 5
M JTextArea wird nicht aktualisiert (ActionListener-Problem) AWT, Swing, JavaFX & SWT 1
T LayoutManager LookAndFeel-Problem AWT, Swing, JavaFX & SWT 4
F Problem mit Implementierung von Kollisionsabfrage AWT, Swing, JavaFX & SWT 5
vodkaz (javafx) Image Problem AWT, Swing, JavaFX & SWT 2
T Problem beim Zeichnen von Rechteck AWT, Swing, JavaFX & SWT 3
B JavaFX Problem bei Kamera / Group, gesamte Scene bewegt sich mit AWT, Swing, JavaFX & SWT 0
L Swing Vier Gewinnt Problem AWT, Swing, JavaFX & SWT 2
Z GUI-Problem, finde meinen Fehler nicht! AWT, Swing, JavaFX & SWT 11
B JavaFX KeyEvent und Canvas draw Problem AWT, Swing, JavaFX & SWT 9
R Swing Problem: IOException bei ActionListener AWT, Swing, JavaFX & SWT 1
GianaSisters JFrame mit JInternalFrames, Keylistener-Problem AWT, Swing, JavaFX & SWT 9

Ähnliche Java Themen

Neue Themen


Oben