我有一个使用ShowLayout的带有6个按钮的应用程序。按下按钮时,控制台中会显示按钮编号。
我的代码出了什么问题?我无法上班!按钮显示,但无法使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 :(得分:1)
使用以下按钮注册ActionListener
:
one.addActionListener(this);
two.addActionListener(this);
...
答案 1 :(得分: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);
}