Java 如何使按钮在单击时显示对话框?
我有12个按钮,每个按钮上都有我家人的名字。我想让按钮发挥作用。当用户点击他们的名字时,我希望弹出一条消息并说“你好(无论名字)!”我的代码如下。你能告诉我如何使这些按钮按我所希望的方式工作吗。提前谢谢Java 如何使按钮在单击时显示对话框?,java,swing,jbutton,Java,Swing,Jbutton,我有12个按钮,每个按钮上都有我家人的名字。我想让按钮发挥作用。当用户点击他们的名字时,我希望弹出一条消息并说“你好(无论名字)!”我的代码如下。你能告诉我如何使这些按钮按我所希望的方式工作吗。提前谢谢 import javax.swing.JFrame; import javax.swing.JButton; import javax.swing.JPanel; import java.awt.Dimension; import java.awt.Gri
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;
import java.awt.Dimension;
import java.awt.GridLayout;
public class NameButtons{
public static void main(String[] args) throws Exception {
JFrame frame = new JFrame("Pick A Name");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel buttonPanel = new JPanel();
JPanel containerPanel = new JPanel();
buttonPanel.setLayout(new GridLayout(4,6));
buttonPanel.add(new JButton("Stephanie"));
buttonPanel.add(new JButton("Dwayne"));
buttonPanel.add(new JButton("Jennifer"));
buttonPanel.add(new JButton("Brian"));
buttonPanel.add(new JButton("Joseph"));
buttonPanel.add(new JButton("Justin"));
buttonPanel.add(new JButton("Raine"));
buttonPanel.add(new JButton("Hunter"));
buttonPanel.add(new JButton("Grayson"));
buttonPanel.add(new JButton("Abel"));
buttonPanel.add(new JButton("Janice"));
buttonPanel.add(new JButton("Bob"));
buttonPanel.setPreferredSize(new Dimension(300, 400));
containerPanel.add(buttonPanel);
frame.getContentPane().add(containerPanel);
frame.pack();
frame.setVisible(true);
}
}
我建议不要使用匿名对象,而是首先创建对象
JButton button = new JButton("Name");
然后可以使用所有的addActionListener
方法
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
// This is the code that is ran when the button is clicked.
System.out.println("Hello name");
}
});
我在干什么
好的,你告诉按钮的是使用这个ActionListener
对象。现在,由于ActionListener
包含抽象方法actionPerformed
,因此需要为该方法提供代码。因此,将方法与代码一起传递给它
以您的一个按钮为例
显示了将操作绑定到UI元素的最简单方法之一。您只需要为按钮设置“action”,并实现actionPerformed处理程序,如果单击任何UI元素,将调用该处理程序。您可以通过读取e.getActionCommand()来区分按钮。而不是:
buttonPanel.add(new JButton("Stephanie"));
做:
向每个按钮添加操作侦听器。
JButton b1=new JButton("Stephanie");
JButton b2=new JButton("Dwayne");
buttonPanel.add(b1);
buttonPanel.add(b2);
b1.addActionListener(this);
b2.addActionListener(this);
public void actionPerformed(ActionEvent e) {
if(e.getSource() == b1)
{
//Display Stephanie
}
}
您需要向每个按钮添加操作侦听器。就个人而言,我建议您在面板外部创建按钮,然后在附加按钮侦听器后将其添加到面板中 例如:
JButton Dwayne = new JButton("Dwayne");
Dwayne.addActionListener(this);
buttonPanel.add(Dwayne);
这里有一个教程也可能对您有所帮助:使用ActionListener使用Jbutton ActionListener。我需要从代码中删除哪些内容才能使其正常工作。我是一个初学者,这真的很让人困惑。如果你看看我给你的按钮示例,复制并粘贴到你的代码中。然后将
按钮添加到面板中。当程序加载时,单击它!
JButton b1=new JButton("Stephanie");
JButton b2=new JButton("Dwayne");
buttonPanel.add(b1);
buttonPanel.add(b2);
b1.addActionListener(this);
b2.addActionListener(this);
public void actionPerformed(ActionEvent e) {
if(e.getSource() == b1)
{
//Display Stephanie
}
}
JButton Dwayne = new JButton("Dwayne");
Dwayne.addActionListener(this);
buttonPanel.add(Dwayne);