Swing Drive-ComboBox

jf

Bekanntes Mitglied
Hallo, ich möchte eine ComboBox haben, welche mir alle verfügbaren Laufwerke auflistet.
Dabei soll die Datenträgerbezeichnung und der Pfad jeweils in einer eigenen Spalte stehen:
Code:
System              C:\
Wechseldatenträger  D:\

Mir fehlt gerade die zündende Idee, wie ich den ListCellRenderer dazu implementieren sollte.
Hat jemand einen Tipp dazu?

Außerdem muss ich aus dem String
Code:
System (C:)
das
Code:
(C:)
entfernen.
Wie lautet die Regular Expression hierfür?
"(?:)" funktioniert nicht - und die Klammern escapen klappt leider auch nicht.
 

Michael...

Top Contributor
Hallo, ich möchte eine ComboBox haben, welche mir alle verfügbaren Laufwerke auflistet.
Dabei soll die Datenträgerbezeichnung und der Pfad jeweils in einer eigenen Spalte stehen:
Code:
System              C:\
Wechseldatenträger  D:\

Mir fehlt gerade die zündende Idee, wie ich den ListCellRenderer dazu implementieren sollte.
Hat jemand einen Tipp dazu?
Was hast Du denn vorliegen und wie soll es aussehen? Spalten in einem Listeneintrag könnte z.B. erhalten wenn wann zwei JLabels auf einem JPanel als Renderer verwendet....

Außerdem muss ich aus dem String
Code:
System (C:)
das
Code:
(C:)
entfernen.
Wie lautet die Regular Expression hierfür?
"(?:)" funktioniert nicht - und die Klammern escapen klappt leider auch nicht.
Wie schaut denn Dein Versuch aus? Reicht eventuell einfach:
Java:
String text = "System (C:)";
System.out.println(text);
text =  text.replaceAll("\\s*\\(.*", "");
System.out.println(text);
 

jf

Bekanntes Mitglied
Was hast Du denn vorliegen und wie soll es aussehen? Spalten in einem Listeneintrag könnte z.B. erhalten wenn wann zwei JLabels auf einem JPanel als Renderer verwendet....
Die Datenträgerbezeichnung sollte einfach vom Laufwerksbuchstaben getrennt werden, damit es besser lesbar ist.
Das mit den Label wird aber nur funktionieren, wenn ich denen ein PreferredSize verpasse - eine dynamische Einrückung je nach Datenträgerbezeichnung ist nicht möglich?


Wie schaut denn Dein Versuch aus? Reicht eventuell einfach:
Java:
String text = "System (C:)";
System.out.println(text);
text =  text.replaceAll("\\s*\\(.*", "");
System.out.println(text);
Danke, das tut! :)

Damit ich es aber auch verstehe:
"\\s" bedeutet Whitespace, der Stern am Ende steht für beliebige Zeichen, aber was ist die Bedeutung von "*\\(."?
 

Michael...

Top Contributor
Die Datenträgerbezeichnung sollte einfach vom Laufwerksbuchstaben getrennt werden, damit es besser lesbar ist.
Das mit den Label wird aber nur funktionieren, wenn ich denen ein PreferredSize verpasse - eine dynamische Einrückung je nach Datenträgerbezeichnung ist nicht möglich?
Um es einfach zu halten könnte man ja in dem Label mit dem Laufwerksbuchstaben den Text rechtsbündig ausrichten. Die Labels auf ein JPanel mit BorderLayout jeweils in CENTER und EAST anordnen. Das setzen der PreferredSize ist dann nicht notwendig.
Damit ich es aber auch verstehe:
"\\s" bedeutet Whitespace, der Stern am Ende steht für beliebige Zeichen, aber was ist die Bedeutung von "*\\(."?
* beliebig viele (in dem Fall Whitespaces)
\ Java Escape für den \
\ Regex Escape für die (, da diese in Regex ein Metazeichnen ist
. beliebiges Zeichen
 

jf

Bekanntes Mitglied
Um es einfach zu halten könnte man ja in dem Label mit dem Laufwerksbuchstaben den Text rechtsbündig ausrichten. Die Labels auf ein JPanel mit BorderLayout jeweils in CENTER und EAST anordnen. Das setzen der PreferredSize ist dann nicht notwendig.
Ok, das Problem ist, dass ich im Falle dessen, dass eine bestimmte Datei in der Wurzel gefunden wird, diese dem Pfad hinzufgefügt werden soll, also:
Code:
System              C:\
Wechseldatenträger  D:\datei.ext
Rechtsbündig würde da nicht gut aussehen. Angeachtet dessen, wäre ein sehr großer Freiraum in der Mitte auch nicht gerade schön.
Hat jemand hierzu vlt. noch eine zündende Idee?

* beliebig viele (in dem Fall Whitespaces)
\ Java Escape für den \
\ Regex Escape für die (, da diese in Regex ein Metazeichnen ist
. beliebiges Zeichen
Prima, danke!
 
Zuletzt bearbeitet:

mla.rue

Bekanntes Mitglied
das listmodel der combobox mit nem tablemodel einer tabelle kombinieren (ähnliche wie wenn man eine TreeTable machen möchte). Das wäre mein Ansatz, aber habe grad nichtmal ansatzweise ne Idee, wie ich anfangen sollte (falls sowas überhaupt geht)
 

jf

Bekanntes Mitglied
das listmodel der combobox mit nem tablemodel einer tabelle kombinieren (ähnliche wie wenn man eine TreeTable machen möchte). Das wäre mein Ansatz, aber habe grad nichtmal ansatzweise ne Idee, wie ich anfangen sollte (falls sowas überhaupt geht)
Ich kenne mich mit Renderern leider nicht so gut aus. Ich wollte daher erst einmal den erst Tipp von Michael... ausprobieren - aber mit Pfad links und Laufwerksbezeichung rechts (rechtsbündig).
Haber aber hier schon Probleme... Folgender Renderer ändert zwar die Umrandung der Selektierung, kann aber keinen Text ausgeben (sobald ich super.getListCell... auskommentiere, ist die Liste leer):


Java:
@SuppressWarnings("serial")
class ColorCellRenderer extends DefaultListCellRenderer {

	// Width doesn't matter as the combo box will size
	private final static Dimension preferredSize = new Dimension(0, 20);
	
	JLabel lblLeft  = new JLabel();
	JLabel lblRight = new JLabel();
	
	
	public ColorCellRenderer() {
		this.setLayout(new BorderLayout());
		this.add(lblLeft,  BorderLayout.CENTER);
		this.add(lblRight, BorderLayout.EAST);
		this.setPreferredSize(preferredSize);
	}
	
	  
	public Component getListCellRendererComponent(JList list,
			                                      Object value,
			                                      int index,
	                                              boolean isSelected,
	                                              boolean cellHasFocus) {
	
		super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
			
		//System.out.println((String) value);
		lblLeft.setText((String) value);
		
		
		if (value instanceof Color) {
			this.setBackground((Color) value);
		}
		    
		if(cellHasFocus || isSelected){
			this.setBorder(new LineBorder(Color.ORANGE));
		} else {
			this.setBorder(null);
		}
		    
		return this;
	}
}

Ich verstehe den Renderer so: es ist eine Componente, welche jeden einzelnen Listeneintrag zeichnet.
Die Item-Informationen erhält die Komponente über das ListCellRenderer-Interface (getListCellRendererComponent()).

Wenn dem so wäre, dann müsste aber
Code:
lblLeft.setText((String) value);
doch zu eine Ausgabe führen... ???:L

Ich verstehe das nicht! :bahnhof:
Wer ist schlauer?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
W Element aus comboBox mit observableList löschen AWT, Swing, JavaFX & SWT 3
T Combobox mit Autocomplete-Funktion AWT, Swing, JavaFX & SWT 7
J Eingaben aus Textfield & ComboBox speichern und in ComboBox wieder ausgeben AWT, Swing, JavaFX & SWT 3
N Promt Text der Combobox AWT, Swing, JavaFX & SWT 0
Doppel JavaFX ComboBox AWT, Swing, JavaFX & SWT 5
P JavaFX ClassCastException bei ComboBox.getValue AWT, Swing, JavaFX & SWT 4
F Wie bekomme ich den Wert der ComboBox in eine Variable gespeichert welche ich für meinen ActionListener nutzen kann? AWT, Swing, JavaFX & SWT 3
M Swing Java Swing/AWT Combobox Bug AWT, Swing, JavaFX & SWT 3
M Combobox bild anklicken AWT, Swing, JavaFX & SWT 2
L JavaFX Wiederspenstige ComboBox AWT, Swing, JavaFX & SWT 0
P Combobox und Enum AWT, Swing, JavaFX & SWT 3
L ComboBox Wert automatisch auswählen AWT, Swing, JavaFX & SWT 6
L Methode zum Füllen einer ComboBox AWT, Swing, JavaFX & SWT 4
K Nullpointer Combobox Listener AWT, Swing, JavaFX & SWT 2
K JavaFX Combobox, Textfield & setOnMouseClicked AWT, Swing, JavaFX & SWT 2
it_is_all Swing Button, ComboBox,... -- Unterschied: NetBeans Design <-> Ausführung AWT, Swing, JavaFX & SWT 2
D JavaFX ComboBox String setzen AWT, Swing, JavaFX & SWT 20
offi Combobox in TableCell AWT, Swing, JavaFX & SWT 1
D Javafx Combobox Abfrage aus mysql AWT, Swing, JavaFX & SWT 8
K Event Handling ComboBox Event Handler AWT, Swing, JavaFX & SWT 7
MrSnake ComboBox-Einträge werden unsichtbar AWT, Swing, JavaFX & SWT 0
L ComboBox: slider positionieren AWT, Swing, JavaFX & SWT 0
M JavaFX ComboBox: Update zur Laufzeit AWT, Swing, JavaFX & SWT 16
M JavaFX Combobox bindBidirectional AWT, Swing, JavaFX & SWT 4
D [Anfänger]ComboBox erstellt Einträge in einer anderen ComboBox AWT, Swing, JavaFX & SWT 3
T JavaFX Editable Combobox Text-Selektierung nach Trigger AWT, Swing, JavaFX & SWT 4
H Combobox aktualisieren AWT, Swing, JavaFX & SWT 2
G Swing ComboBox: Auswahl eines Items der Liste durch Eingabe eines Buchstabens AWT, Swing, JavaFX & SWT 3
M JavaFX ComboBox AWT, Swing, JavaFX & SWT 5
T Problem: ComboBox und addItem AWT, Swing, JavaFX & SWT 5
J ComboBox als Filter benutzen AWT, Swing, JavaFX & SWT 1
M ausgewählte Inhalt von ListItem inn ComboBox in der Tabelle speichern AWT, Swing, JavaFX & SWT 0
Developer_X Java JTable - Combobox + Checkbox - Cellrenderer + Editor AWT, Swing, JavaFX & SWT 3
G Dynamische ComboBox AWT, Swing, JavaFX & SWT 3
U Combobox mit individuellen Texten AWT, Swing, JavaFX & SWT 5
M JavaFX Combobox - Item Auswahl mit Tasten AWT, Swing, JavaFX & SWT 8
F JavaFX Daten aus Tabelle in ComboBox AWT, Swing, JavaFX & SWT 9
C Beschriftungen von Tabellenspalten mit Combobox aussuchen AWT, Swing, JavaFX & SWT 2
G JavaFX ComboBox .getItems().add() Problem AWT, Swing, JavaFX & SWT 9
D Swing [Frage] ComboBox + Label AWT, Swing, JavaFX & SWT 3
F SWT Problem mit Tabelle und Combobox in einem Wizard AWT, Swing, JavaFX & SWT 5
B JAVAFX icon in ComboBox einfügen AWT, Swing, JavaFX & SWT 5
W Swing Combobox Abhängigkeit AWT, Swing, JavaFX & SWT 1
S ComboBox-Werte aus einem Array an Textfields übergeben AWT, Swing, JavaFX & SWT 3
A Swing GUI mit ComboBox, wenn Item ausgewählt wurde neues GUI AWT, Swing, JavaFX & SWT 7
S Combobox aktualisieren AWT, Swing, JavaFX & SWT 3
B Erstellen eigener Combobox ("CellFactory") AWT, Swing, JavaFX & SWT 4
C Swing ComboBox - ActionListener deaktivieren AWT, Swing, JavaFX & SWT 2
A combobox automatisch in ein textfeld wechseln AWT, Swing, JavaFX & SWT 3
C TextFeld in Verbindung zur ComboBox automatisch aktualisieren AWT, Swing, JavaFX & SWT 7
L Swing Model für ComboBox AWT, Swing, JavaFX & SWT 14
H Combobox in einer einzelnen Zelle der Jtable AWT, Swing, JavaFX & SWT 2
T Java Combobox Problem AWT, Swing, JavaFX & SWT 3
C SWT Combobox mit Textdatei füllen AWT, Swing, JavaFX & SWT 2
M comboBox Listener? AWT, Swing, JavaFX & SWT 2
R Datenbanktabellen in Combobox AWT, Swing, JavaFX & SWT 3
C Combobox bei Tabellenänderung mit aktualisieren AWT, Swing, JavaFX & SWT 11
1 CellEditor mit ComboBox richtig beenden AWT, Swing, JavaFX & SWT 4
L SWT Actionlistener Combobox öffnen AWT, Swing, JavaFX & SWT 4
E Swing CellEditor mit Combobox durch Tastatureingabe editieren?! AWT, Swing, JavaFX & SWT 3
GianaSisters Swing ComboBox im jTable (in bestimmter Zelle nicht über die ganze Spalte) AWT, Swing, JavaFX & SWT 4
T Daten mittels ComboBox in ein JTable adden AWT, Swing, JavaFX & SWT 7
N Filternde Combobox in JTable verliert Fokus nach erster Eingabe AWT, Swing, JavaFX & SWT 2
F Wert zu Eintrag in ComboBox speichern?! AWT, Swing, JavaFX & SWT 7
P Swing ComboBox(en) in JTable auslesen und ausgeben AWT, Swing, JavaFX & SWT 11
M Index von Combobox AWT, Swing, JavaFX & SWT 20
L ComboBox in Action AWT, Swing, JavaFX & SWT 4
D ComboBox & CellListRenderer AWT, Swing, JavaFX & SWT 6
D ComboBox-Model mit Observer AWT, Swing, JavaFX & SWT 3
B Taschenrechner mit ComboBox AWT, Swing, JavaFX & SWT 7
T ComboBox auslesen AWT, Swing, JavaFX & SWT 11
P Combobox liesst falschen Wert AWT, Swing, JavaFX & SWT 10
C Combobox im JFrame aus Datenbank befüllen AWT, Swing, JavaFX & SWT 6
M Combobox soll Farbe einer Komponente setzen AWT, Swing, JavaFX & SWT 2
M Swing ComboBox ein SelectedItem übergeben/anzeigen AWT, Swing, JavaFX & SWT 7
J Werte aus Combobox speichern AWT, Swing, JavaFX & SWT 3
J Combobox als Filterkriterium (Gruppierung) in JTable AWT, Swing, JavaFX & SWT 7
R Swing ComboBox und doppelter Event!? AWT, Swing, JavaFX & SWT 10
M SWT Wie Textfeld hinzufügen, nach Auswahl von einem bestimmten Combobox-item? AWT, Swing, JavaFX & SWT 3
M SWT ComboBox mit DB-Inhalten Designfrage AWT, Swing, JavaFX & SWT 5
W MouseListener im editable ComboBox AWT, Swing, JavaFX & SWT 14
W Combobox mit eingabefeld AWT, Swing, JavaFX & SWT 7
T Editable ComboBox / kein Weiterspringen AWT, Swing, JavaFX & SWT 12
M Combobox in JTable AWT, Swing, JavaFX & SWT 4
S Swing ComboBox aus Array befüllen AWT, Swing, JavaFX & SWT 2
K Per ComboBox Dateien einlesen AWT, Swing, JavaFX & SWT 23
0 Hintergundfarbe von editierbarer ComboBox ändern AWT, Swing, JavaFX & SWT 2
M Frage zu ComboBox AWT, Swing, JavaFX & SWT 7
O Bitte um Hilfe bei ComboBox in TableHeader AWT, Swing, JavaFX & SWT 9
A NetBeans und ComboBox AWT, Swing, JavaFX & SWT 2
SuperSeppel13 Combobox zur Farbwahl kollidiert mit NimbusLookAndFeel AWT, Swing, JavaFX & SWT 7
D ComboBox(Model) mit dummyItem AWT, Swing, JavaFX & SWT 10
D Inhalt von Textfield nach ComboBox AWT, Swing, JavaFX & SWT 2
GilbertGrape nochmal editierbare Combobox AWT, Swing, JavaFX & SWT 3
GilbertGrape JTable mit Combobox-Editierung schon nach einem Klick AWT, Swing, JavaFX & SWT 7
E Swing Button ActionListener Infos aus Textfield und ComboBox AWT, Swing, JavaFX & SWT 3
G ComboBox wird nicht angezeigt beim anhängen an eine Gruppe AWT, Swing, JavaFX & SWT 2
G Combobox Event AWT, Swing, JavaFX & SWT 4
G ComboBox aktualisieren AWT, Swing, JavaFX & SWT 13
C Binding eines EntityBean als SelectionInList in ComboBox AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen

Neue Themen


Oben