2013-12-12 157 views
0

我有一个使用ShowLayout的6按钮的应用程序。当按下按钮时,按钮号码显示在控制台中。将ActionListener添加到按钮

我的代码有什么问题?我无法让它工作!按钮显示,但不能得到actionListenerto工作并显示数字。谢谢!

import java.awt.*; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 

import javax.swing.*; 


class ShowFlowlayout extends JFrame implements ActionListener{ 

JPanel p1 = new JPanel(); 
JButton one = new JButton("One"); 
JButton two = new JButton("Two"); 
JButton three = new JButton("Three"); 
JPanel p2 = new JPanel(); 
JButton four = new JButton("Four"); 
JButton five = new JButton("Five"); 
JButton six = new JButton("Six"); 


public ShowFlowlayout() { 

    this.setLayout (new FlowLayout(FlowLayout.LEFT, 10, 20)); 

    p1.add(one); 
    p1.add(two); 
    p1.add(three); 
    p2.add(four); 
    p2.add(five); 
    p2.add(six); 

    add(p1, FlowLayout.LEFT); 
    add(p2, FlowLayout.CENTER); 

} 

public void actionPerformed(ActionEvent e) { 
     if(e.getSource() == one) 
     { 
      System.out.println("Button One"); 
     } 
     if(e.getSource() == two) 
     { 
      System.out.println("Button Two"); 
     } 
     if(e.getSource() == three) 
     { 
      System.out.println("Button Three"); 
     } 
     if(e.getSource() == four) 
     { 
      System.out.println("Button Four"); 
     } 
     if(e.getSource() == five) 
     { 
      System.out.println("Button Five"); 
     } 
     if(e.getSource() == six) 
     { 
      System.out.println("Button Six"); 
     } 


    } 




public static void main(String[] args) 
{ 
    ShowFlowlayout frame = new ShowFlowlayout(); 

    frame.setTitle ("Programming 12.1"); 
    frame.setLocationRelativeTo(null); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setSize(440, 100); 
    frame.setVisible(true); 
} 

`

+0

不要编辑您的问题!现在对社区来说是没用的。只需投票选出你喜欢的答案,并将其标记为已接受。 – Blub

回答

1

注册ActionListener与按钮:

one.addActionListener(this); 
two.addActionListener(this); 
... 
1

其实你不添加ActionListener的按钮。尝试像这样:

public ShowFlowlayout() { 

    this.setLayout (new FlowLayout(FlowLayout.LEFT, 10, 20)); 

    p1.add(one); 
    p1.add(two); 
    p1.add(three); 
    p2.add(four); 
    p2.add(five); 
    p2.add(six); 

    one.addActionListener(this); 
    two.addActionListener(this); 
    three.addActionListener(this); 
    four.addActionListener(this); 
    five.addActionListener(this); 
    six.addActionListener(this); 

    add(p1, FlowLayout.LEFT); 
    add(p2, FlowLayout.CENTER); 

}