【问题标题】:How to do an action when a certain button is clicked单击某个按钮时如何执行操作
【发布时间】:2013-12-06 03:52:29
【问题描述】:

基本上,目前我正在执行某些操作,这些操作被保存在ArrayList 中,当我单击Play 按钮时,它们将被输出到TextArea。我还有另外两个按钮,Start 和 Stop。

  • 当我点击开始时,我所做的每一个动作都应该开始录制。
  • 当我单击停止时,它会停止记录动作。
  • 当我单击“播放”时,操作应该会打印在文本区域中。

我已经完成了一些艰苦的工作,但我似乎无法实现开始和停止按钮。我将附上我的部分代码,以便您查看。提前致谢!!

public class jPanelBottom extends javax.swing.JPanel
{

private JTextField jtfBoundaryLength, jtfArea;
private JSlider jsShapes;
private JLabel jLabelBoundaryLength, jLabelArea, jLabelSlider;
private JButton jbStart, jbStop, jbPlay;
public static ActionPanel yes;

public jPanelBottom()
  {
    initComponents();


    jbStart = new JButton();
    jbStop.setText("Start");
    jbStart.setSize(80, 25);
    jbStart.setLocation(400, 95);
    this.add(jbStart);

    jbStop = new JButton();
    jbStop.setText("Stop");
    jbStop.setSize(80, 25);
    jbStop.setLocation(500, 95);
    this.add(jbStop);

    jbPlay = new JButton();
    jbPlay.setText("Play");
    jbPlay.setSize(80, 25);
    jbPlay.setLocation(600, 95);
    this.add(jbPlay);

    jbPlay.addActionListener(new ActionListener()
      {
        @Override
        public void actionPerformed(ActionEvent e)
          {
            try{
            //jbStart.addActionListener(this);
            {   
                jbPlay.addActionListener(this);

            ArrayList<String> list = MyFrame.shape1.getArrayList();
            for (String s : list)
              {

                  ActionPanel.jtaWoof.append(s); 
                  ActionPanel.jtaWoof.append("\n");
              }              
           }}catch(Throwable ex){}}
      });
  }

非常感谢任何帮助!

【问题讨论】:

  • 为什么要在调用 actionPerformed 时将 ActionListener 添加到按钮?
  • 我真的不知道。我对编程很陌生
  • ...以及为什么您不将ActionListener 添加到您的开始和停止按钮,而您显然期望他们执行一些操作?
  • 老实说,我也不是 100% 确定如何正确地做到这一点
  • 那么你需要一些教育。你可能想试试Event ListenersTutorial,看看你是否需要回到更基本的东西。

标签: java swing jbutton actionlistener


【解决方案1】:

最好的方法是添加一个通用的actionPerformed:

public class Frame extends JFrame implements ActionListener{

[...]
    public Frame(){
        JButton Test = new JButton("Nutton Name");
        [...]
        Test.addActionListener(this);
    }

    @Override
    public void actionPerformed(ActionEvent e){
        Object src = e.getSource();
        if(src == Test){
            System.out.print("You've pressed Test!");
        }

    }
}

不要忘记添加 .addActionListener 并在类中实现 ActionListener。 这比每次添加一个要容易得多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-18
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-02
    • 2021-09-15
    • 1970-01-01
    相关资源
    最近更新 更多