Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Hur funkar ActionListener??

Postades av 2001-09-07 08:10:00 - Krister Vikström, i forum java, Tråden har 4 Kommentarer och lästs av 1439 personer

Hej! Jag har precis börjat försöka sätta mig in i Java. Jag undrar hur man använder sig av ActionListener?? Jag har en combobox (swing) som jag fyller med namn och avslutar med:

jCboNamn.setSelectedIndex(-1);

Sedan vill jag printa det namn som användaren väljer ur combon. Jag har försökt göra detta med:

void jCboNamn_actionPerformed(ActionEvent e) {
System.out.println(jCboNamn.getSelectedItem());
}

Problemet är att detta event triggas även när combon fylls. Jag har förstått att man kan använda sig av sk actionlistetners men jag kan inte komma på hur man gör. Är det någon som kan förklara och kanske ge ett exempel??


Svara

Sv: Hur funkar ActionListener??

Postades av 2001-09-07 10:18:00 - Emma Magnusson

Du tar din klass och inkluderar ActionListener:

<code>
public class Levsystem extends JFrame implements ActionListener
</code>

Sedan skapar du de objekt du vill ha en ActionListener på och lägger till ActionListener på dem:

<code>
//Skapar det som ska finnas på rad 4
bAvbryt = new Button("Avbryt");
this.laggTillKomponent(4,1,10, 10, 'W', bAvbryt, loginFonster);
bAvbryt.addActionListener(this);
bLoggaIn = new Button("Logga in");
this.laggTillKomponent(4,1,10, 10, 'E', bLoggaIn, loginFonster);
bLoggaIn.addActionListener(this);
</code>

Sist men inte minst använder du dig av de lyssnare du har skapat genom:

<code>
//Implemetation av ActionListener
public void actionPerformed(ActionEvent e){
if (e.getSource() == bAvbryt){
stangApp();
}else
if (e.getSource() == bStang){
stangApp();
}else
if (e.getSource() == bLoggaUt){
;
}else
if (e.getSource() == bSQL){
//Utför det SQL-uttryck som skrivivits in
ResultSet rs = utforSQL(tSQL.getText());
skrivUtRS(rs);
}else
if (e.getSource() == bLoggaIn){
//Läser in värdena som behövs i inloggningen
sID = tID.getText();
sPW = tPW.getText();
sDB = cDB.getItem(cDB.getSelectedIndex());
db = new Databas()
koppling = db.loggaIn(sID, sPW, sDB);
dolj(wLogin);
oppnaDatabasFonster()
skrivUtFelen(koppling);
lasInDBListor();
}
}// Slut actionPerformed
</code>

Hoppas att du hänger med eftersom jag bara klippt några kodsnuttar ur ett gammalt program för att exemplifiera...

//Emma


Svara

Sv: Hur funkar ActionListener??

Postades av 2001-09-07 11:58:00 - Krister Vikström

Hej!
Jag testade ditt tips men ActionListener funkar inte som jag vill. Med ditt exempel kan jag bara hålla koll på vilken komponent som har utfört något, dvs jag kan skilja på en knapp och en combobox men ActionListener triggas även när comboboxen fylls. Jag vill att eventet enbart skall triggas när användaren väljer ett namn ur combon, inte när combon fylls. Jmfr med

<code>
Private Sub Combo1_Click() ' i VB
MsgBox Combo1.Text
End Sub
</code>

Som jag förstår så kan det kanske gå att använda ItemListener, men jag har inte lyckats lista ut hur man gör. Tipps emottages tacksamt =)


Svara

Sv: Hur funkar ActionListener??

Postades av 2001-09-07 14:12:00 - Emma Magnusson

Du använder egentligen ItemListener på samma sätt.

1. Du implementerar den i klassen
2. Du lägger in:

<code>
//Implementation av ItemListener
public void itemStateChanged(ItemEvent e){
if (e.getSource() == dinCombo){
//kolla eventTyp med getStateChange, vet tyvärr inte vad eventet heter.
}
</code>

3. Lägg till ItemListener på din combo på samma sätt som du lagt till ActionListeners på knapparna.

//Emma


Svara

Sv: Hur funkar ActionListener??

Postades av 2001-09-11 07:16:00 - Krister Vikström

Jag får fortfarande inte comboboxen att fungera som jag vill. När jag implementerat itemListener så lyckades jag inte trigga något event överhuvudtaget. Som sagt var, jag är nybörjare på java och har kanske missat något viktigt. Jag vill med System.out.println() skriva ut det namn som "Användaren" väljer ur combon, dvs ingen utskrift när combon fylls. Här är koden "ren", utan events...

<code>

package testproj;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class CFrame1 extends JFrame {
JPanel contentPane;
BorderLayout borderLayout1 = new BorderLayout();
JPanel jPanel1 = new JPanel();
JComboBox jComboBox1 = new JComboBox();

//Construct the frame
public CFrame1() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
//Fyller combon....
int i=1;
for(i=1;i<11;i++){
jComboBox1.addItem("Namn " +i);
}
jComboBox1.setSelectedIndex(-1);

}

//Component initialization
private void jbInit() throws Exception {
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(400, 300));
this.setTitle("Learning Java");
jPanel1.setLayout(null);
jComboBox1.setBackground(Color.white);
jComboBox1.setBounds(new Rectangle(57, 33, 286, 21));
contentPane.add(jPanel1, BorderLayout.CENTER);
jPanel1.add(jComboBox1, null);
}

//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
}
}
</code>


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 153
27 952
271 704
1 107
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies