2016-03-30 45 views
0

Kolejde biraz java yapıyorum ve şu an olmadığı gibi ilerliyorum. Kendimi olay işleme ve gui'nin gelecekteki sınav sorularına vb. Bakarak öğretmeye çalıştım ve şimdiye kadar gui oldukça kullanışlı ama olay işleme çok fazla sahip değil ... Şu an bir süredir bu konuya gittim ve sadece kafamın etrafına bakamıyor gibiyim, düğmeye basıldığında bunu elde etmeye çalışıyorum. JTextField'ın uzunluğunu() JLabel'e döndürür, herhangi bir yardım büyük ölçüde takdir edilecektir. TeşekkürÖğrenme Etkinleştirme

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

public class guiWithCatchBlock extends JFrame implements ActionListener, MouseListener { 


guiWithCatchBlock() { 

    super("Attempting Event Handling"); 

    Container c = getContentPane(); 
    JButton stringLengthButton = new JButton("Get String Length"); 
    JTextField inputField = new JTextField(); 
    JLabel outputLabel = new JLabel("String Length = "); 
    stringLengthButton.addActionListener(this); 
    inputField.addActionListener(this); 
    outputLabel.addMouseListener(this); 
    c.add(stringLengthButton,BorderLayout.NORTH); 
    c.add(inputField,BorderLayout.CENTER); 
    c.add(outputLabel,BorderLayout.SOUTH); 
    setSize(400, 300); 
    show(); 

} 

public static void main(String args[]) { 

    guiWithCatchBlock testAction = new guiWithCatchBlock(); 

} 

public void actionPerformed(ActionEvent e) { 

    System.out.print(paramString()); 

} 

@Override 
public void mouseClicked(MouseEvent arg0) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void mouseEntered(MouseEvent arg0) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void mouseExited(MouseEvent arg0) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void mousePressed(MouseEvent arg0) { 
    // TODO Auto-generated method stub 

} 

@Override 
public void mouseReleased(MouseEvent arg0) { 
    // TODO Auto-generated method stub 

} 

}

cevap

0

Sen Sen ActionListener Class uyguladıklarını olarak kullanabilirsiniz düğmeye

stringLengthButton.addActionListener(this); 

için ActionListener geçmesi gerekiyor. ateş edeceği Şimdi olaydır:

public void actionPerformed(ActionEvent e) { 
    // Do GUI manipulations 
    System.out.print(paramString()); 
} 
0

Eğer kurucu içinde sizin inputField ve outputLabel ilan etmeye çalıştık, sınıf üyesi olarak ilan etmek, daha sonra başvurmak için daha iyi zor olacak. senin actionPerform olarak
,

public class guiWithCatchBlock extends JFrame implements ActionListener, MouseListener { 
    JTextField inputField; 
    JLabel outputLabel; 
    guiWithCatchBlock() { 
     super("Attempting Event Handling"); 
     Container c = getContentPane(); 
     JButton stringLengthButton = new JButton("Get String Length"); 
     inputField = new JTextField(); 
     outputLabel = new JLabel("String Length = "); 
     stringLengthButton.addActionListener(this); 
     inputField.addActionListener(this); 
     outputLabel.addMouseListener(this); 
     c.add(stringLengthButton, BorderLayout.NORTH); 
     c.add(inputField, BorderLayout.CENTER); 
     c.add(outputLabel, BorderLayout.SOUTH); 
     setSize(400, 300); 
     show(); 

    } 

    public static void main(String args[]) { 
     guiWithCatchBlock testAction = new guiWithCatchBlock(); 
    } 

    @Override 
    public void actionPerformed(ActionEvent e) { 
     outputLabel.setText("String Length = " + inputField.getText().length()); 
    } 

    @Override 
    public void mouseClicked(MouseEvent arg0) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void mouseEntered(MouseEvent arg0) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void mouseExited(MouseEvent arg0) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void mousePressed(MouseEvent arg0) { 
     // TODO Auto-generated method stub 

    } 

    @Override 
    public void mouseReleased(MouseEvent arg0) { 
     // TODO Auto-generated method stub 

    } 
} 
olarak bu

@Override 
public void actionPerformed(ActionEvent e) { 
    outputLabel.setText("String Length = " + inputField.getText().length()); 
} 

Tamamlanan kodu gibi metin uzunluğu ve tekrar etiketi almaya çalıştı