Swing JList Elemente ausgeben fehlerhaft

Status
Nicht offen für weitere Antworten.

N1klaZ

Mitglied
Hallo Community,

Ich habe eine List in die ich durch ein Button einen Link von einem Textfeld in eine Liste schreibe. Danach möchte ich durch einen weiteren Button das ausgewählte Element in ein Editor ausgeben. Und da liegt mein Problem wenn ich den Link anklicke und dann den Button klicke kommt keine Ausgabe. Da habe ich mir nun den Index ausgeben lassen und der ist bei jeder Ausgabe die ich gemacht habe -1. Das heißt ja das kein Element makiert wurde.

hier meine Liste
Java:
private JList getUrls() {
		if (urls == null) {
			urls = new JList(addurls);
			urls.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		}
		return urls;
	}

mein Ausgabe Button
Java:
private JButton getConnect() {
		if (connect == null) {
			connect = new JButton();
			connect.setBounds(new Rectangle(146, 448, 89, 18));
			connect.setText("Connect");
			connect.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
				int index=urls.getSelectedIndex();
				System.out.print(index);				
					System.out.println();					
					System.out.println("mouseClicked()"); 
					
					
					// TODO Auto-generated Event stub mouseClicked()
				}
			});
		}
		return connect;
	}

Ich hoffe ihr könnt mir helfen. Vielen Dank im Vorraus.

//Edit: addurls ist ein DefaultListModel.
 
S

SlaterB

Gast
grummel, diese unnützen Codeausschnitte,
kaum baut man sie zu einem Programm zusammen (was du auch hättest tun können..)
schon funktioniert alles
Java:
public class TestGUI  extends JFrame {
    JList urls;
    JButton connect;

    public TestGUI()
    {
        add(getUrls(), BorderLayout.CENTER);
        add(getConnect(), BorderLayout.SOUTH);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setSize(200, 300);
        setVisible(true);
    }

    private JList getUrls()
    {
        if (urls == null)
        {
            DefaultListModel addurls = new DefaultListModel();
            addurls.addElement("a");
            addurls.addElement("b");
            addurls.addElement("c");
            urls = new JList(addurls);
            urls.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        }
        return urls;
    }

    private JButton getConnect()
    {
        if (connect == null)
        {
            connect = new JButton();
            connect.setBounds(new Rectangle(146, 448, 89, 18));
            connect.setText("Connect");
            connect.addMouseListener(new java.awt.event.MouseAdapter()
                {
                    public void mouseClicked(java.awt.event.MouseEvent e)
                    {
                        int index = urls.getSelectedIndex();
                        System.out.print(index);
                        System.out.println();
                        System.out.println("mouseClicked()");
                    }
                });
        }
        return connect;
    }

    public static void main(String[] args)
    {
        new TestGUI();
    }
}
dein Problem kann alle möglichen Ursachen haben, Button schaut sich anderes Model an als in der GUI angezeigt oder oder oder,
ohne vollständige (kurze) Programme geht rein gar nix

-----

oder es liegt an
> einen Link von einem Textfeld in eine Liste schreibe.
davon hast du gar keinen Code gepostet, allgemein kann das vielleicht die Selektion aufheben oder wer weiß was schlimmes
 
Zuletzt bearbeitet von einem Moderator:

Michael...

Top Contributor
Handelt es sich den bei den urls tatsächlich um die selbe Liste?

Anmerkung: für Button-Clicks verwendet man normalerweise einen ActionListener anstelle eines MouseListeners
 

N1klaZ

Mitglied
Ich wollte euch den gesammten Code eigentlich nur ersparen weil es extrem viel ist aber wenn das hilft den Fehler zufinden habe ich kein Problem damit den hier zu Posten.

Java:
import javax.swing.SwingUtilities;
import java.awt.BorderLayout;

import javax.swing.DefaultListModel;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.KeyStroke;
import javax.swing.ListModel;

import java.awt.Dimension;
import javax.swing.JTextField;
import java.awt.Rectangle;
import java.awt.GridBagLayout;
import javax.swing.JButton;
import java.awt.GridBagConstraints;
import javax.swing.JList;
import javax.swing.JTextPane;
import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;

import javax.swing.JMenuBar;
import javax.swing.JEditorPane;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionListener;

public class Main extends JFrame  {									// Klassen anfang

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private JPanel jPanel = null;
	private JButton connect = null;
	private JButton Add = null;
	private JTextField urleingabe = null;
	private JList urls = null;
	private JTextPane test = null;
	private JMenuBar jJMenuBar = null;
	JMenu menu;														// menu Punkt wird Iniziallisiert
	JMenuItem öffnen, speichern;
	private JEditorPane Editor = null;
	private JScrollPane jScrollPane = null;
	private DefaultListModel addurls = new DefaultListModel();
	private JScrollPane scroll = null;
	
	/**
	 * This method initializes jPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanel() {
		if (jPanel == null) {
			jPanel = new JPanel();
			jPanel.setLayout(null);
			jPanel.setBounds(new Rectangle(472, 0, 235, 515));
			jPanel.add(getConnect(), null);
			jPanel.add(getAdd(), null);
			jPanel.add(getUrleingabe(), null);
			jPanel.add(getTest(), null);
			jPanel.add(getScroll(), null);
		}
		return jPanel;
	}

	/**
	 * This method initializes connect	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getConnect() {
		if (connect == null) {
			connect = new JButton();
			connect.setBounds(new Rectangle(146, 448, 89, 18));
			connect.setText("Connect");
			connect.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
				int index=urls.getSelectedIndex();
				System.out.print(index);				
					System.out.println();					
					System.out.println("mouseClicked()"); 
					
					
					// TODO Auto-generated Event stub mouseClicked()
				}
			});
		}
		return connect;
	}

	/**
	 * This method initializes Add	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getAdd() {
		if (Add == null) {
			Add = new JButton();
			Add.setBounds(new Rectangle(175, 495, 62, 18));
			Add.setText("Add");
			Add.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					addurls.addElement(urleingabe.getText());										
					urls = new JList(addurls);
					urleingabe.setText("");
					// TODO Auto-generated Event stub actionPerformed()
				
				}
			});
		}
		return Add;
	}

	/**
	 * This method initializes urleingabe	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getUrleingabe() {
		if (urleingabe == null) {
			urleingabe = new JTextField();
			urleingabe.setBounds(new Rectangle(0, 472, 236, 25));
			urleingabe.setText("");
		}
		return urleingabe;
	}

	/**
	 * This method initializes urls	
	 * 	
	 * @return javax.swing.JList	
	 */
	private JList getUrls() {
		if (urls == null) {
			urls = new JList(addurls);
			urls.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		}
		return urls;
	}

	/**
	 * This method initializes test	
	 * 	
	 * @return javax.swing.JTextPane	
	 */
	private JTextPane getTest() {
		if (test == null) {
			test = new JTextPane();
			test.setBounds(new Rectangle(1, 450, 131, 20));
			test.setEnabled(true);
			test.setBackground(new Color(238, 238, 238));
			test.setForeground(Color.black);
			test.setEditable(false);
			test.setText("URL eingeben:");
		}
		return test;
	}

	/**
	 * This method initializes jJMenuBar	
	 * 	
	 * @return javax.swing.JMenuBar	
	 */
	private JMenuBar getJJMenuBar() {
		if (jJMenuBar == null) {
			jJMenuBar = new JMenuBar();
		}
		menu = new JMenu("Datei");									// Menu Punkt Datei wird erstellt
		menu.setMnemonic(KeyEvent.VK_A);							// Tastenkürzel Alt+a wird gesetzt
		jJMenuBar.add(menu);										// Datei wird der Menubar zugeordnet
		
		öffnen = new JMenuItem("öffnen",KeyEvent.VK_T);				// MenuItem öffnen wird erstellt
		öffnen.setAccelerator(KeyStroke.getKeyStroke(
		        KeyEvent.VK_1, ActionEvent.ALT_MASK));				// Tasten Kürzel wird gesetzt
		menu.add(öffnen);											// MenuItem wird dem Menu Datei hinzugefügt
		
		speichern = new JMenuItem("speichern",KeyEvent.VK_T);			// MenuItem speichern wird erstellt
		speichern.setAccelerator(KeyStroke.getKeyStroke(
		        KeyEvent.VK_2, ActionEvent.ALT_MASK));				// Tasten Kürzel wird gesetzt
		menu.add(speichern);	
		
		return jJMenuBar;
	}
	/**
	 * This method initializes Editor	
	 * 	
	 * @return javax.swing.JEditorPane	
	 */
	private JEditorPane getEditor() {
		if (Editor == null) {
			Editor = new JEditorPane();
		}
		return Editor;
	}

	
	/**
	 * This method initializes jScrollPane	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJScrollPane2() {
		if (jScrollPane == null) {
			jScrollPane = new JScrollPane();
			jScrollPane.setBounds(new Rectangle(1, 0, 472, 517));
			jScrollPane.setViewportView(getEditor());
			jScrollPane.setVerticalScrollBarPolicy(jScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
			
			jScrollPane.setHorizontalScrollBarPolicy(jScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
								
		}
		return jScrollPane;
	}

	/**
	 * This method initializes scroll	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getScroll() {
		if (scroll == null) {
			scroll = new JScrollPane();
			scroll.setBounds(new Rectangle(-1, 0, 238, 450));
			scroll.setViewportView(getUrls());
			scroll.setVerticalScrollBarPolicy(jScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
			scroll.setHorizontalScrollBarPolicy(jScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
		}
		return scroll;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {						// Hauptprogramm anfang
		// TODO Auto-generated method stub
		SwingUtilities.invokeLater(new Runnable() {
			public void run() {
				Main thisClass = new Main();
				thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				thisClass.setVisible(true);
			}
		});
	}

	/**
	 * This is the default constructor
	 */
	public Main() {													// Methode
		super();
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {										// Methode
		this.setSize(717, 573);
		this.setJMenuBar(getJJMenuBar());
		this.setContentPane(getJContentPane());
		this.setTitle("JFrame");
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {								// Methode des JContentPane
		if (jContentPane == null) {
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getJPanel(), null);
			jContentPane.add(getJScrollPane2(), null);
		}
		return jContentPane;
	}

}  //  @jve:decl-index=0:visual-constraint="10,10"



//Edit: Ich glaube ich habe den Fehler gefunden es liegt daran das ich die Listen 2 mal erstelle einmmal wenn ich den Button Add betätige und einmal wo ich die Listeinizialisieren oder ?

//Edit: Ok jetzt funktioniert es dran lag es...
 
Zuletzt bearbeitet:

Michael...

Top Contributor
Ich wollte euch den gesammten Code eigentlich nur ersparen weil es extrem viel ist aber wenn das hilft den Fehler zufinden habe ich kein Problem damit den hier zu Posten.
Das hast Du falsch verstanden ;-) den Code soweit reduzieren, dass er das Problem darstellt und am besten noch direkt kompliert und ausgeführt werden kann. Dabei stopert man meist selbst über den Fehler.

Dein Fehler ist, dass bei jedem hinzufügen eine neue Liste erstellst.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Elemente einer JList ausgeben AWT, Swing, JavaFX & SWT 11
B Swing Auf JList-Elemente aus einer anderen Klasse zugreifen AWT, Swing, JavaFX & SWT 1
T Swing Elemente der JList überlappend darstellen AWT, Swing, JavaFX & SWT 5
B JList zeigt Elemente nicht an AWT, Swing, JavaFX & SWT 3
1 JList - Elemente mit rechter Maustaste wählen AWT, Swing, JavaFX & SWT 6
C Swing Elemente in JList sortieren AWT, Swing, JavaFX & SWT 2
T Elemente zu JList dynamisch hinzufügen AWT, Swing, JavaFX & SWT 4
E Swing JList zur Laufzeit hinzugefügt elemente nicht sichtbar?! AWT, Swing, JavaFX & SWT 2
S Swing Elemente einer JList Farbig hinterlegen AWT, Swing, JavaFX & SWT 6
T DND mit JList Elemente nicht am Ende einfügen AWT, Swing, JavaFX & SWT 3
Tobse Swing JList elemente hinzufügen AWT, Swing, JavaFX & SWT 4
B Swing Problem beim Elemente zu JList hinzufügen AWT, Swing, JavaFX & SWT 5
P JList: Reihenfolge der Elemente per Drag'n'Drop ändern. AWT, Swing, JavaFX & SWT 9
M Swing JList - Elemente umbenennen? AWT, Swing, JavaFX & SWT 4
M JList zeigt nicht alle Elemente AWT, Swing, JavaFX & SWT 4
Icewind Jlist zeigt neue elemente im model nicht sofort an AWT, Swing, JavaFX & SWT 3
G Elemente in JList einfügen AWT, Swing, JavaFX & SWT 3
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
T Generische Klasse in JList über DefaultListModel AWT, Swing, JavaFX & SWT 1
T Swing WindowBuilder: JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
C Button Text in JList neue Zeile AWT, Swing, JavaFX & SWT 6
C Hilfe bei JSpinner und JList AWT, Swing, JavaFX & SWT 1
D Swing ArrayList in Jlist/ List oder Array in JList/List AWT, Swing, JavaFX & SWT 5
S JList ist leer, aber DefaultListModel hat die Daten? AWT, Swing, JavaFX & SWT 9
M JList wird angezeigt, JTable (DefaultTableModel) nicht AWT, Swing, JavaFX & SWT 7
H Swing JList/JTable mit JButton, JTextField, Image, JComboBox und JLable AWT, Swing, JavaFX & SWT 2
D Swing Jlist Größe während der Laufzeit verändern. AWT, Swing, JavaFX & SWT 11
Q JList Update Problem AWT, Swing, JavaFX & SWT 1
W Sichtbarer Bereich JScrollPane vs. JList AWT, Swing, JavaFX & SWT 3
N AWT Markierte Zeile jList aus mySQL DB löschen AWT, Swing, JavaFX & SWT 2
S JList repaint AWT, Swing, JavaFX & SWT 1
F Swing JTextField in JList (Funktion beibehalten) AWT, Swing, JavaFX & SWT 2
H JList AWT, Swing, JavaFX & SWT 5
B Swing Bild von Webseite herunterladen, diese dann in JList anzeigen. AWT, Swing, JavaFX & SWT 1
B Swing Dynamische JList mit Bildern AWT, Swing, JavaFX & SWT 4
D JList&JButton erst nach Resize des JFRame sichtbar AWT, Swing, JavaFX & SWT 2
S JList Index finden AWT, Swing, JavaFX & SWT 6
3 Swing JList-Inhalt als verschlüsselte Datei schreiben und lesen AWT, Swing, JavaFX & SWT 1
N JComponenten in JList oder doch anders? AWT, Swing, JavaFX & SWT 0
S Swing JList, ArrayList + DefaultModel AWT, Swing, JavaFX & SWT 5
B Tabelleneinträge in JList anzeigen AWT, Swing, JavaFX & SWT 5
P JList/JScroolPane Text verschieben und text wrappen AWT, Swing, JavaFX & SWT 3
D Swing JList keine Selektionsänderung bei "dragged-Maus" AWT, Swing, JavaFX & SWT 4
M JList Model filtern AWT, Swing, JavaFX & SWT 4
K Swing JList - Element richtig hinzufügen AWT, Swing, JavaFX & SWT 4
P Swing JList mit Objekten - Name anzeigen AWT, Swing, JavaFX & SWT 5
Ollek JList - neuer Eintrag in ArrayList dadurch keine Anzeige der Objekte AWT, Swing, JavaFX & SWT 18
K Mehrfachselektierungen in einer JList AWT, Swing, JavaFX & SWT 6
L Swing Component alignment innerhalb einer JList AWT, Swing, JavaFX & SWT 3
M Swing JList Listener AWT, Swing, JavaFX & SWT 20
M Accelerator zu JMenuItem des JPopupMenu einer JList AWT, Swing, JavaFX & SWT 2
S Swing JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
M Element aus JList eines JFileChooser entfernen AWT, Swing, JavaFX & SWT 3
E selektierter Datensatz in JList als String Datentyp AWT, Swing, JavaFX & SWT 23
E selektiertes Element aus JList zurückgeben AWT, Swing, JavaFX & SWT 7
E JList /DefaultListModel mit Datenbank verbinden AWT, Swing, JavaFX & SWT 10
L SQL & Jtable o. JList AWT, Swing, JavaFX & SWT 5
K Swing JList und veränderte CellRenderer AWT, Swing, JavaFX & SWT 8
B JList + ListCellRenderer AWT, Swing, JavaFX & SWT 5
B JList -> Disabled AWT, Swing, JavaFX & SWT 6
J JList, Anzeige aktualisieren AWT, Swing, JavaFX & SWT 7
I Jlist isselectionEmpty AWT, Swing, JavaFX & SWT 4
I Jlist dynamisch aus Datenbank füllen AWT, Swing, JavaFX & SWT 14
R Swing unbegrenzte Anzahl vonEinträgen in JList AWT, Swing, JavaFX & SWT 2
MiMa Dateien aus Ordner in einer JList Ausgeben AWT, Swing, JavaFX & SWT 32
M JList mit 2-zeiligen Objekten füllen AWT, Swing, JavaFX & SWT 7
S JList mit Einträgen versehen schlägt fehl AWT, Swing, JavaFX & SWT 4
F Swing ArrayList in JList anzeigen und Objekte auswählen AWT, Swing, JavaFX & SWT 2
S Fragen zu JList AWT, Swing, JavaFX & SWT 3
B Aktualisierung einer JList AWT, Swing, JavaFX & SWT 5
W JList valueChanges weiterleiten? AWT, Swing, JavaFX & SWT 14
D JButton-Click in JList mit Panels (auf dem der Button ist) AWT, Swing, JavaFX & SWT 6
E Jlist nur mit Klasse? AWT, Swing, JavaFX & SWT 5
D Swing JList <-> AdapterModel <-> Model AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben