我有一个我正在制作Jbuttons的标题列表。我希望当我点击一个特定的按钮时,我得到那个文本。我在网上搜索并尝试了一些东西,但他们给出了列表中的随机标题而不是我点击的那个。请让我知道我在哪里弄错了。任何形式的帮助将受到高度赞赏。谢谢,
for(String title:listOfTitles){
button1.setText(title);
button1.setBounds(20,50,100,25);
button1.setBorderPainted(true);
button1.setFocusPainted(true);
button1.setContentAreaFilled(false);
button1.setOpaque(false);
button1.setBackground(Color.lightGray);
button1.setBounds(5,i,100,100);
button1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jTextField3.setText(((button1) evt.getSource()).getText());
}
});
jPanel3.add(button1);
jPanel3.revalidate();
jPanel3.repaint();
i = i+15;
}
答案 0 :(得分:4)
通常,您不希望将MouseListener添加到JButtons。如果您已经阅读了按钮教程,那么您肯定已经看到应该使用ActionListeners。如果这样做,请在传递给侦听器的getActionCommand()
方法的ActionEvent对象上调用actionPerformed(...)
,然后您将获得所需的字符串。
即,
myButton.addActionListener(new ActionListener() {
actionPerformed(ActionEvent evt) {
System.out.println("Button's actionCommand: " + evt.getActionCommand());
}
});
法律免责声明:此代码尚未编译或测试,并不是复制和粘贴解决方案,而是让您了解ActionListeners的工作原理,以便您可以将该概念调整到您的程序中。
此外,请查看Swing JButton tutorial以了解您需要了解的所有其他详细信息。