2013-12-06 4 views
0

В настоящее время я выполняю определенные действия, которые хранятся в ArrayList, и когда я нажимаю кнопку Play, они выводятся на TextArea. У меня есть две другие кнопки: Start и Stop.Как сделать действие при нажатии одной кнопки

  • Когда я нажимаю «Пуск», каждое действие, которое я делаю, должно начинаться с записи.
  • Когда я нажимаю 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){}} 
     }); 
    } 

Я очень ценю любую помощь !!

+1

Почему вы добавляете ActionListener к кнопке в течение всего времени actionPerformed? – MadProgrammer

+0

Я честно понятия не имею. Я очень новичок в программировании – user3062664

+0

... и почему вы ** не добавляете 'ActionListener' в свои кнопки * Start * и * Stop *, в то время как вы, видимо, ожидаете, что они будут выполнять какое-то действие? –

ответ

0

Самый лучший способ, чтобы добавить генерала 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 к классу. Это намного проще, чем добавлять один раз в один раз.

Смежные вопросы