1

我有一个我正在为其制作 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;
     }
4

1 回答 1

4

通常,您不想将 MouseListener 添加到 JButtons。如果您已经阅读过按钮教程,那么您肯定已经看到应该使用 ActionListeners。如果这样做,请调用getActionCommand()传递给侦听器actionPerformed(...)方法的 ActionEvent 对象,您将获得所需的字符串。

IE,

myButton.addActionListener(new ActionListener() {
   actionPerformed(ActionEvent evt) {
      System.out.println("Button's actionCommand: " + evt.getActionCommand());
   }
});

法律免责声明:此代码未经编译或测试,并非用于复制和粘贴解决方案,而是为了让您了解 ActionListeners 的工作原理,以便您可以将该概念应用于您的程序。

此外,请查看Swing JButton 教程以了解您需要了解的所有其他详细信息。

于 2012-04-22T17:15:53.243 回答