Swing JCheckBox in JList einbetten

Burny91

Mitglied
Hallo Allerseits,

ich versuche gerade JCheckboxen in eine JList einzubauen und bin auf folgendes Problem gestoßen. Wenn ich JCheckBoxen meiner JList hinzufüge erscheint in der JList nur ein Eintrag mit X Parametern von einem JCheckBox Objekt. Wie bekomme ich es auf die Reihe. JCheckBoxen mit Namen angezeigt zu bekommen?

Mein aktueller Stand:

Java:
public class ColumnFilter extends javax.swing.JDialog {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JLabel text;
	private JList spaltList;
	private JScrollPane listScroll;
	private JSeparator jSeparator1;
	private JButton cancelBut;
	private JButton okBut;
	private final Component[] stats_option = { new JCheckBox("1"),
			new JCheckBox("2"), new JCheckBox("3"), new JCheckBox("4"),
			new JCheckBox("5") };

	/**
	 * Auto-generated main method to display this JDialog
	 */
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				JFrame frame = new JFrame();
				ColumnFilter inst = new ColumnFilter(frame);
				inst.setVisible(true);
			}
		});
	}

	public ColumnFilter(JFrame frame) {
		super(frame);
		initGUI();
	}

	private void initGUI() {
		try {
			{
				GridBagLayout thisLayout = new GridBagLayout();
				thisLayout.columnWidths = new int[] { 31, 7 };
				thisLayout.columnWeights = new double[] { 0.0, 0.0 };
				thisLayout.rowWeights = new double[] { 0.0, 0.1, 0.0, 0.0, 0.0,
						0.1, 0.0 };
				thisLayout.rowHeights = new int[] { 7, 20, 7, 105, 7, 20, 7 };
				getContentPane().setLayout(thisLayout);
				this.setTitle("ColumnFilter");
				{
					okBut = new JButton();
					getContentPane().add(
							okBut,
							new GridBagConstraints(0, 5, 1, 1, 0.0, 0.0,
									GridBagConstraints.EAST,
									GridBagConstraints.NONE, new Insets(0, 0,
											0, 80), 0, 0));
					okBut.setText("OK");
				}
				{
					cancelBut = new JButton();
					getContentPane().add(
							cancelBut,
							new GridBagConstraints(0, 5, 1, 1, 0.0, 0.0,
									GridBagConstraints.EAST,
									GridBagConstraints.NONE, new Insets(0, 0,
											0, 0), 0, 0));
					cancelBut.setText("Cancel");
				}
				{
					jSeparator1 = new JSeparator();
					getContentPane().add(
							jSeparator1,
							new GridBagConstraints(0, 6, 1, 1, 0.0, 0.0,
									GridBagConstraints.CENTER,
									GridBagConstraints.NONE, new Insets(0, 0,
											0, 0), 0, 0));
				}
				{
					text = new JLabel();
					getContentPane().add(
							text,
							new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0,
									GridBagConstraints.CENTER,
									GridBagConstraints.HORIZONTAL, new Insets(
											0, 0, 0, 0), 0, 0));
					text.setText("Wähle die Spalten aus, die angezeigt werden sollen");
				}
				{
					listScroll = new JScrollPane();
					getContentPane().add(
							listScroll,
							new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0,
									GridBagConstraints.CENTER,
									GridBagConstraints.BOTH, new Insets(0, 0,
											0, 0), 0, 0));
					{
						// JCheckBox one = new JCheckBox("One");
						// JCheckBox two = new JCheckBox("Two");
						// ListModel spaltListModel = new
						// DefaultComboBoxModel(
						// new JCheckBox[] { one, two });
						spaltList = new JList(stats_option);
						listScroll.setViewportView(spaltList);
						// spaltList.setModel(spaltListModel);
					}
				}

			}
			this.setSize(327, 252);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

Mit freundlichen Grüßen

burny
 

Michael...

Top Contributor
Grundsätzlich stellt sich die Frage, wenn es sich - wie in dem Beispielcode - um eine feste und begrenzte Anzahl von JCheckBoxes handelt, müssen die in eine JList? Sollen diese tatsächlich ausgewählt werden können? Eine CheckBox wird ja i.d.R. nur de/aktiviert.
Wenn es also nur um die Anorderung der CheckBoxes geht, sollte man das über ein JPanel lösen.

Müssen die Boxen tatsächlich in eine JList, dann müss ein entsprechender Renderer verwendet werden.
Aller "höheren" Komponenten in Swing verwenden zum Darstellen Ihrer Inhalte Renderer. Die JList verwendet einen ListCellRenderer z.B. DefaultListCellRenderer. Mit dem Renderer kann man festlegen, wie der Zelleninhalt dargestellt werden soll, die im Renderer verwendete Komponente wird entsprechend dem Zelleninhalt modifierziert und dann an die passende Stelle in der JList gemalt.
Wenn man nach ListCellRenderer oder DefaultListCellRenderer hier oder im Internet sucht findet man genügend Beispiele zur Verwendung eines Renderers
 

Burny91

Mitglied
Um die Fragen zu beatworten, nein es handelt sich um eine variable Anzahl von CheckBoxen. Die Checkboxen repräsentieren die Spaltennamen einer Tablle. Durch das An- und Abwählen der Checkboxen wird eine JTable nur noch mit den angewählen CheckBoxen angezeigt. Das Ziel ist ein Filter für eine Tabelle.

Und zur anderen Frage ob die Boxen tatsächlich in eine JList müssen kann ich noch nicht beantworten. Weil ich noch keine plausiblen Alternativen habe.
 

hansmueller

Bekanntes Mitglied
Hallo,

wenn es nur eine einfache Liste von JCheckboxen sein soll, solltest du es so machen, wie Michael es beschrieben hat:
Michael... hat gesagt.:
Wenn es also nur um die Anorderung der CheckBoxes geht, sollte man das über ein JPanel lösen.
Für das JPanel könntest du einen BoxLayout-Manager verwenden um die JCheckboxen schön untereinander anzuordnen. Oder ein GridLayout, wenn die Anzahl der JCheckboxen bekannt sind.
Diese JPanel packst du dann in ein JScrollPane.
Dem JScrollPane kann man auch mit .setColumnHeaderView() eine Kopfzeile mitgeben.
Und fertig hast du deine "Liste".

Wenn du aber auf eine JList mit JCheckboxen bestehst, solltest du mal Google bemühen. Da gibt es schon viele Beispiele. Diese sind aber teilweise nicht so einfach. So was solltest du nur machen, wenn du etwas eher ausgefallenes haben möchtest, z. B. Einträge, die unterschiedlich aufgebaut (z. B. mehrzeilig) sind. Aber das ist dann mit einer ganzen Portion Arbeit und Gehirnschmalz verbunden.

MfG
hansmueller
 

jgh

Top Contributor
in einem JPanel wäre es -wie Michael... es sagt- die einfachste Alternative.

Java:
panel = new JPanel();
					panel.setLayout(new GridLayout(stats_option.length, 2));
					for (int i = 0; i < stats_option.length; i++) {
						panel.add(new JLabel("beschreibung\t\t"));
						panel.add(stats_option[i]);
					}
					listScroll = new JScrollPane(panel);
					getContentPane().add(
							listScroll,
							new GridBagConstraints(0, 3, 1, 1, 0.0, 0.0,
									GridBagConstraints.CENTER,
									GridBagConstraints.BOTH, new Insets(0, 0,
											0, 0), 0, 0));
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Falsches Rendern durch JCheckBox in eigenem JTree AWT, Swing, JavaFX & SWT 6
C JCheckBox disabled text color AWT, Swing, JavaFX & SWT 9
S JRadioButton und JCheckBox im JTree AWT, Swing, JavaFX & SWT 14
B JCheckBox ausrichten ? AWT, Swing, JavaFX & SWT 1
Paul15 JCheckBox und JToggleButton AWT, Swing, JavaFX & SWT 5
M Swing JCheckbox Namen vergeben? AWT, Swing, JavaFX & SWT 5
E Zustand der JCheckBox abfragen AWT, Swing, JavaFX & SWT 1
D JCheckbox und JSpinner in JTable AWT, Swing, JavaFX & SWT 9
K Swing JCheckbox ändern AWT, Swing, JavaFX & SWT 3
N ChangeListener und jCheckBox AWT, Swing, JavaFX & SWT 3
B JTable inkl. JCheckbox AWT, Swing, JavaFX & SWT 5
StrikeTom JCheckBox in JTable AWT, Swing, JavaFX & SWT 6
A Swing JCheckbox transparent machen AWT, Swing, JavaFX & SWT 7
G Swing JCheckBox, setEnabled(false) und HTML Text Problem AWT, Swing, JavaFX & SWT 5
Z Swing JCheckBox in einer JTable AWT, Swing, JavaFX & SWT 8
B JCheckbox ja oder nein AWT, Swing, JavaFX & SWT 3
O Jcheckbox Status nachträglich abfragen AWT, Swing, JavaFX & SWT 2
C Swing JCheckBox setEditable(false)? AWT, Swing, JavaFX & SWT 9
X Swing JCheckbox in JTable AWT, Swing, JavaFX & SWT 6
F DefaultTableCellRenderer blendet JCheckBox aus AWT, Swing, JavaFX & SWT 4
K JCheckBox datenstruktur AWT, Swing, JavaFX & SWT 10
J Swing JCheckBox enabled, aber graues Kästchen AWT, Swing, JavaFX & SWT 2
S Swing Problem mit JCheckBox auf JPanel in JScrollPane AWT, Swing, JavaFX & SWT 8
C JCheckBox Kreuz statt Haken AWT, Swing, JavaFX & SWT 7
S Swing Werte einer Jcheckbox aus eine Klasse A in eine Klasse B aufrufen AWT, Swing, JavaFX & SWT 6
S GUI blocked after checked a JcheckBox AWT, Swing, JavaFX & SWT 2
S JCheckBox Paint AWT, Swing, JavaFX & SWT 7
M JCheckBox Icon anpassen AWT, Swing, JavaFX & SWT 2
E Matrix mit JCheckBox AWT, Swing, JavaFX & SWT 29
Balbes Änderung des Wertes von JCheckBox in einer JTable AWT, Swing, JavaFX & SWT 4
S Frage zu JCheckBox AWT, Swing, JavaFX & SWT 2
T Swing JCheckBox: Wie getState() abfragen? AWT, Swing, JavaFX & SWT 2
FoolMoon Swing JCheckBox neben Text in einer Tabelle AWT, Swing, JavaFX & SWT 2
J Icon einer JCheckBox AWT, Swing, JavaFX & SWT 6
E Swing Wechsel in JCheckBox abfangen AWT, Swing, JavaFX & SWT 10
S JCheckBox AWT, Swing, JavaFX & SWT 9
D JTable - JCheckbox und Renderer AWT, Swing, JavaFX & SWT 2
V JCheckBox in JTable AWT, Swing, JavaFX & SWT 3
T JCheckBox deselektieren (Haken wieder entfernen) - wie? AWT, Swing, JavaFX & SWT 5
W JRadioButton / JCheckBox problem AWT, Swing, JavaFX & SWT 6
K JCheckBox in einer JTable auswählbar machen AWT, Swing, JavaFX & SWT 2
J Listener erkennt Deselektierung von JCheckbox nicht AWT, Swing, JavaFX & SWT 13
T Dynamische Anpassung einer jCheckBox AWT, Swing, JavaFX & SWT 11
T JCheckBox ohne "Box"? AWT, Swing, JavaFX & SWT 6
H JCheckBox - Ist die Abfrage wirklich so umständlich ? AWT, Swing, JavaFX & SWT 3
A Problem der Größe von JCheckBox nach Hinzufügen eines Popups AWT, Swing, JavaFX & SWT 2
F Wie Item Listener zu JCheckBox(in JTable) hinzufügen? AWT, Swing, JavaFX & SWT 6
M JCheckbox, das selektieren verhindern AWT, Swing, JavaFX & SWT 9
M JCheckBox Standard MouseListener entfernen AWT, Swing, JavaFX & SWT 13
A JCheckBox abfragen AWT, Swing, JavaFX & SWT 6
J Variabler VariablenIdentifier - JCheckBox AWT, Swing, JavaFX & SWT 9
I JTree und JCheckbox Problem AWT, Swing, JavaFX & SWT 4
G jCheckBox AWT, Swing, JavaFX & SWT 8
G JMenu problem mit der Breite von einer JCheckBox AWT, Swing, JavaFX & SWT 2
D Seltsamer Rahmen bei JCheckBox AWT, Swing, JavaFX & SWT 7
G JCheckBox mit Text und Icon AWT, Swing, JavaFX & SWT 5
M JCheckbox in JCombobox AWT, Swing, JavaFX & SWT 7
L jCheckBox - aktiviert und nicht aktiviert AWT, Swing, JavaFX & SWT 7
H jCheckBox abschalten AWT, Swing, JavaFX & SWT 3
B JTextFiled, JCheckBox, JSpinner Eigenschaften speichern AWT, Swing, JavaFX & SWT 2
G JCheckbox Buttongroup Problem AWT, Swing, JavaFX & SWT 7
P JCheckBox: das 4eck mit kreuz soll rechts vom wort stehen AWT, Swing, JavaFX & SWT 3
R JCheckBox mit Image und Text AWT, Swing, JavaFX & SWT 5
G JCheckBox nicht änderbar machen AWT, Swing, JavaFX & SWT 2
V Statusabfrage von JCheckBox und JComboBox AWT, Swing, JavaFX & SWT 7
P JCheckBox AWT, Swing, JavaFX & SWT 4
L Probleme mit JCheckBox AWT, Swing, JavaFX & SWT 15
A JButton und JCheckBox im JTree reagieren nicht AWT, Swing, JavaFX & SWT 13
J JCheckBoxMenuItem und JCheckBox synchronisieren AWT, Swing, JavaFX & SWT 6
D Welche JCheckBox des Arrays ist das? AWT, Swing, JavaFX & SWT 2
P JCheckbox einmal gewählt immer gewählt ? AWT, Swing, JavaFX & SWT 2
M Weiße JCheckBox? AWT, Swing, JavaFX & SWT 5
S Herausbekommen welche JCheckBox selectiert wurde AWT, Swing, JavaFX & SWT 6
B Jlist füllen AWT, Swing, JavaFX & SWT 4
H JList.setEnabled(false) - Text soll nicht grau sein AWT, Swing, JavaFX & SWT 2
BananenBrötchen Swing Arraylist in jList anzeigen AWT, Swing, JavaFX & SWT 6
J Swing JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
A Swing JList zu JTree AWT, Swing, JavaFX & SWT 11
G Eingabe in JTextField in Array speichern und in JList ausgeben AWT, Swing, JavaFX & SWT 7
cezary Choice, JComboBox oder JList AWT, Swing, JavaFX & SWT 5
J JList scrollen AWT, Swing, JavaFX & SWT 3
Neumi5694 Swing JList - Klick abfangen AWT, Swing, JavaFX & SWT 3
G Swing Swing Binding JList funktioniert nicht AWT, Swing, JavaFX & SWT 5
M Swing JList Auswahl-GUI-Konzept AWT, Swing, JavaFX & SWT 9
C JList: Bestimmte Objekte ausschließen AWT, Swing, JavaFX & SWT 1
F JList aktualisiert nicht AWT, Swing, JavaFX & SWT 24
F JList auffüllen aus Array von Instanzen AWT, Swing, JavaFX & SWT 4
F Event wenn Maus eine JList verlässt AWT, Swing, JavaFX & SWT 13
F JList bei Windowbuilder AWT, Swing, JavaFX & SWT 8
F JList zeigt keine Einträge mehr AWT, Swing, JavaFX & SWT 1
P JList erstellen AWT, Swing, JavaFX & SWT 4
G DefaultListModel für JList AWT, Swing, JavaFX & SWT 2
P Einer JList mit eigenem ListModel einen Eintrag hinzfügen AWT, Swing, JavaFX & SWT 5
P Übergeben von ListModel an nichtparametrisierte JList AWT, Swing, JavaFX & SWT 8
M Ein Element in mehreren JList selektieren AWT, Swing, JavaFX & SWT 5
J Swing Probleme mit ListSelectionListener(), Inhalte der JList werden gelöscht? AWT, Swing, JavaFX & SWT 6
Z Swing Variable eines Objekt aus Hashmap in JList anzeigen AWT, Swing, JavaFX & SWT 1
Nabbit Über JList kein JPopupMenu AWT, Swing, JavaFX & SWT 2
O Swing JList beim Klicken in der GUI erstellen AWT, Swing, JavaFX & SWT 6
C Swing JList zeigt keine neuen Einträge an AWT, Swing, JavaFX & SWT 1

Ähnliche Java Themen

Neue Themen


Oben