2017-05-11 2 views
0

Zuerst tut mir leid, wenn ich diese Frage nicht richtig formulieren kann, aber mein Problem ist wie folgt. Ich habe eine JcomboBox in einem Dateisuchprogramm verwendet. In der jcombobox musst du den Typ des Objekts auswählen und so etwas machen.Kann ich einen anderen Namen als den Wert einer JcomboBox in netBeans setzen

type = new javax.swing.JComboBox(); 

type.setModel(new javax.swing.DefaultComboBoxModel(new String[] { ".jpg", ".png", ".gif", ".psd", ".ppt", ".pptx", ".doc", ".docx" })); 

Ich habe einen JcomboList whith ".jpg", ".png", ".gif", ".psd", ".ppt", ".pptx", ".doc",“.docx "Aber ich mochte das Aussehen der JcomboBox nicht.

Meine Frage ist dies, kann ich den Elementen der Jcombobox einen anderen Namen geben, anders als ihr Wert in NetBeans?

+0

Ich würde vorschlagen, einen Blick auf mit [Konzepte: Redakteure und Renderers] (https://docs.oracle.com/javase/tutorial/uiswing/components/table.html#editrender), dann ich Weitere Informationen finden Sie unter [Bereitstellen eines benutzerdefinierten Renderers] (https://docs.oracle.com/javase/tutorial/uiswing/components/combobox.html#renderer) – MadProgrammer

+0

Wenn Sie das Renderer-Beispiel aus dem Lernprogramm verwenden, wird die Standardfunktionalität von das Kombinationsfeld, da Sie mit der Tastatur keine Objekte mehr auswählen können. – camickr

Antwort

0

Sie müssen ein benutzerdefiniertes Objekt im Kombinationsfeld speichern. Diese Aufgabe wird zwei Eigenschaften enthalten:

  1. Wert für die Anzeige in der Combo-Box
  2. ein Wert für die Verarbeitung in der Anwendung verwendet.

Dann müssen Sie das Objekt rendern. Zwei Ansätze

  1. Überschreiben Sie die toString() - Methode des benutzerdefinierten Objekts, um den entsprechenden Wert anzuzeigen. Einen Arbeitsbeispiel mit diesem Ansatz finden Sie unter Combo Box With Hidden Data.

  2. Erstellen Sie einen benutzerdefinierten Renderer, um den entsprechenden Wert anzuzeigen. Schauen Sie sich Combo Box With Custom Renderer an. Dies wäre der bevorzugte Ansatz, solange Sie die enthaltene Rendering-Klasse verwenden. Dies bietet eine vollständigere Lösung als Sie im Swing-Lernprogramm finden, da das Lernprogrammbeispiel die Standard-Kombinationsfeldfunktionalität aufgibt.

Verwandte Themen