mit SelectionListener Doppelklick?

Status
Nicht offen für weitere Antworten.

RobHarm

Mitglied
Hallo,

ich wollte in einem kleinen Progrämmchen, mit einem Doppelklick auf eine JList Komponente etwas in einem Textfield ausgeben lassen... geht das mit SelectionListener? Und wenn ja, könnte mir jemand erklären, wie?

Danke
Rob
 
G

Guest

Gast
Ich hatte dasselbe Problem mit einem JTabel.
Wollte auch einen Doppelklick, aber der ListSelectionListener, merkte nur, wenn überhaupt was ausgewählt wurde.
Ich hab dann den ListSelectionListener durch einen ActionListener ersetzt
und den JTable so eingestellt, dass immer nur eine Zeile selektiert werden kann.

also:
Code:
 JTable kundenTabelle=new JTable();
kundenTabelle.addActionListener(new Action Listener() {...Implementieren von actionPerformed(ActionEvent e)  }

Bei einer Action (Implementierung des ActionListeners) :

Code:
actionPerformed(ActionEvent e) {
if(evt.getButton()==MouseEvent.BUTTON1 && evt.getClickCount()>1) {
	if(kundenTabelle.getSelectedRow()!=-1){   //Prüfen, ob auch wirklich was ausgewählt wurde
                machWas();
            }
}
}


Hoffe das hilft dir, auch wenns bei mir ein JTable war.
 
G

Guest

Gast
Hallo,

da ein Doppelklick normalerweise von einer Maus ausgeführt wird wurde sich hier ein MouseListener anbieten :wink:
 

RobHarm

Mitglied
Anonymous hat gesagt.:
Hallo,

da ein Doppelklick normalerweise von einer Maus ausgeführt wird wurde sich hier ein MouseListener anbieten :wink:

jap das hab ich mir auch gedacht, aber mich mal umgelesen... aber für Doppelclick wurden mir andere Sachen angeboten und jemand hilfreiches hat mir schon den Anfang für den SelectionListener geschrieben, daher dacht ich ich probiers mal @Gast2

@Gast1 Danke für die Hilfe



edit so sieht es bereits bei mir aus:

Code:
this.messageList = new JList(shortMessages);
		this.messageList.setPreferredSize(new Dimension(300,400));
		this.messageList.addListSelectionListener(new ListSelectionListener () {
			public void valueChanged(ListSelectionEvent event) {
				int firstIndex = event.getFirstIndex();
				if (0<=firstIndex)
				{
					Message message = messages[firstIndex];
					messageContent.setText(message.toString());
				}
			};
		});
 
G

Guest

Gast
Hallo,

wollte nur darauf hinweisen, dass man einer JList keinen ActionListener zuweisen kann und dass man Ereignisse ausgelöst von einer Maus (was der Doppelclick ja nun einmal ist) nur durch einen MouseListener oder MouseMotionListener abfangen kann.

z.B.:

Code:
messageList.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent evt) {
        if (evt.getClickCount()==2)
            System.out.println(liste.getSelectedValue());
    }
});
 

RobHarm

Mitglied
Hallo Gast,

danke dein Tipp hat mir weitergeholfen... nur muss ich nun die Emails, weil das ein Emailprogramm werden sollte, vom Server zeigen... was noch nicht so ganz klappt ;-) Ist bestimmt wieder irgendso ne kleine Variable...


edit: habs bisher so abgeändert:

Code:
this.messageList.addMouseListener(new MouseAdapter()
		{
		    public void mouseClicked(MouseEvent evt)
		    {
		        if (evt.getClickCount()==2)
		        {
					Message message = messages[messageList.getSelectedIndex()];
		            System.out.println(message.toString());
					messageContent.setText(message.toString());
		        }
		    }
		});


und das ist die Ausgabe im Feld:

com.sun.mail.imap.IMAPMessage@111b910

tjoar die Zahl hinten is ne ID würd ich sagen und die is halt nicht immer gleich
 
G

Gast

Gast
Hallo,

ich kenne die Klasse Message leider nicht, aber scheinbar ist toString() nicht die richtige Methode. Aufgrund der ID könnte es sich hier vielleicht um ein Feld oder Vektor handeln.
In der API Dokumentation diese Packages sollte sich aber bestimmt eine geeignete Methode finden lassen.
 

RobHarm

Mitglied
Hallo Gast,

die hab ich bereits mehrmals durchgelesen... und bin jedesmal noch verwirrter als zuvor :-( Hat nicht jemand noch ne andere Idee?
 

RobHarm

Mitglied
Hallo momentan siehts so aus:

Code:
    public void mouseClicked(MouseEvent evt)
		    {
		        try {
					if (evt.getClickCount()==2)
					{
						Message message = messages[messageList.getSelectedIndex()];

						String ct = message.getContentType();
						System.out.println("content type = <" + ct + ">");
						String content = "no content available";
						if (-1!=ct.indexOf("TEXT/"))
						{
							content = (String)message.getDataHandler().getInputStream(content);
						}
						else if (-1!=ct.indexOf("multipart/"))
						{

						}
						messageContent.setText(content);

					    //mbp.setText(this.messages);
					}
				} catch (Exception e) {
					messageContent.setText(e.toString());
				}
		    }

PS: langsam bin ich echt am Ende, wenn es nicht langsam funzt
 
G

Gast

Gast
würde ja gerne helfen, aber kenne mich mit dem Package nicht aus.
Was liefert denn message.getContent().toString()?
 

RobHarm

Mitglied
Im AusgabeFeld:
Code:
 javax.activation.DataHandler@b2c6a6

und bei Eclipse in der Console:
Code:
content type = <multipart/mixed; 
	boundary="----_=_NextPart_001_01C5021C.41F81035">
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
K SWT TitleAreaDialog - SelectionListener zur Message hinzufügen AWT, Swing, JavaFX & SWT 3
M JTable SelectionListener AWT, Swing, JavaFX & SWT 7
S SWT Tabellenzellen SelectionListener AWT, Swing, JavaFX & SWT 10
C Mit SelectionListener herausfinden welche zeile in Jtable angeklickt wurde AWT, Swing, JavaFX & SWT 5
J Swing JTable SelectionListener AWT, Swing, JavaFX & SWT 5
M Swing JTable + SelectionListener AWT, Swing, JavaFX & SWT 22
H JTable und SelectionListener AWT, Swing, JavaFX & SWT 15
D SelectionListener doppeltes Event AWT, Swing, JavaFX & SWT 4
W SWT SelectionListener AWT, Swing, JavaFX & SWT 2
H doppelter Aufruf von selectionListener für JList AWT, Swing, JavaFX & SWT 4
C Swing Component bei Doppelklick löschen AWT, Swing, JavaFX & SWT 4
P Swing JFrame minimiert sich bei Doppelklick auf die Titel-Leiste AWT, Swing, JavaFX & SWT 17
P JFrame schrumpft bei Doppelklick auf die Titelleiste AWT, Swing, JavaFX & SWT 0
I JTable: Doppelklick auf Table soll neues Fenster öffnen und Daten aus JTable anzeigen AWT, Swing, JavaFX & SWT 4
T JTree - Elemente mit Doppelklick auswählen AWT, Swing, JavaFX & SWT 6
C Swing Fensterresize durch doppelklick - wie die neue Grösse erhalten? AWT, Swing, JavaFX & SWT 3
TheWhiteShadow Swing JTextPanel Auswahlkriterium bei Doppelklick AWT, Swing, JavaFX & SWT 3
propra Doppelklick von Einzelklick unterscheiden, aber richtig ... AWT, Swing, JavaFX & SWT 10
J Doppelklick Event AWT, Swing, JavaFX & SWT 32
Landei Swing JTree - Element mit Doppelklick auswählen AWT, Swing, JavaFX & SWT 4
O AWT Automatischer Doppelklick AWT, Swing, JavaFX & SWT 3
T JTable: editieren bei Doppelklick deaktivieren, aber... AWT, Swing, JavaFX & SWT 2
C Swing MouseListener Doppelklick-Geschwindigkeit AWT, Swing, JavaFX & SWT 4
M Doppelklick auf JTextField AWT, Swing, JavaFX & SWT 2
KrokoDiehl Swing Optimale Spaltenbreite auf Doppelklick (JTable) AWT, Swing, JavaFX & SWT 2
G JTree und doppelklick AWT, Swing, JavaFX & SWT 4
S Auswahlfenster: Datei beim Doppelklick öffnen AWT, Swing, JavaFX & SWT 8
Go ein "JLabel" mit Doppelklick editieren. AWT, Swing, JavaFX & SWT 5
M Doppelklick auf Component abfangen AWT, Swing, JavaFX & SWT 5
Daniel_L JTable - Links-rechts-Klick ist gleich Doppelklick? AWT, Swing, JavaFX & SWT 2
G JTable auf Doppelklick reagieren AWT, Swing, JavaFX & SWT 4
B MouseListener / doppelklick geht net AWT, Swing, JavaFX & SWT 16
F Ignoriere Mausklick falls erster Klick von Doppelklick . AWT, Swing, JavaFX & SWT 4
W MouseListener, getClickCount und Doppelklick AWT, Swing, JavaFX & SWT 6
S Bei SWT in einer Tabelle ein Event per Doppelklick auslösen? AWT, Swing, JavaFX & SWT 3
G JInternalFrame mit Doppelklick schließen möglich? AWT, Swing, JavaFX & SWT 2
R SWT-TreeViewer Doppelklick verarbeiten AWT, Swing, JavaFX & SWT 4
T JList + Doppelklick feststellen AWT, Swing, JavaFX & SWT 4
S [JTable] Editor erst nach Doppelklick AWT, Swing, JavaFX & SWT 5
C Aktion auführen nach Doppelklick auf Zeile in JTable AWT, Swing, JavaFX & SWT 10
T Zeile in JTable mit Doppelklick auswählen AWT, Swing, JavaFX & SWT 8
J Doppelklick auf JPanel AWT, Swing, JavaFX & SWT 3
J JList - doppelklick auf item -> neues fenster öffnet sich AWT, Swing, JavaFX & SWT 2
D Doppelklick in JList --> Wert auslesen AWT, Swing, JavaFX & SWT 8
E JTable: Selektion nur mit einem Doppelklick? AWT, Swing, JavaFX & SWT 7

Ähnliche Java Themen


Oben