Я пытаюсь запустить эксперимент, и я не могу найти нигде, где вам поможет.различные кнопки выполняют разные действия
Мой эксперимент представляет собой набор из нескольких кнопок, каждый из которых печатает отдельную строку текста в текстовом поле SwingView.
У меня есть несколько кнопок, но каждая кнопка ведет к тому же ActionListener.
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TextArea1 implements ActionListener{
JTextArea text;
int numClick = 0;
public static void main(String[] args){
TextArea1 gui = new TextArea1();
gui.go();
}
public void go(){
JFrame aFrame = new JFrame();
JPanel aPanel = new JPanel();
JPanel aPanel2 = new JPanel();
JPanel aPanel3 = new JPanel();
JPanel aPanel4 = new JPanel();
JPanel aBoard = new JPanel();
JButton aButton = new JButton("Just Click it");
JButton aButton1 = new JButton("1");
JButton aButton2 = new JButton("2");
...
JButton aButton9 = new JButton("9");
aPanel2.setBackground(Color.darkGray);
aPanel3.setBackground(Color.darkGray);
aPanel4.setBackground(Color.darkGray);
aBoard.setLayout(new GridLayout(3,3));
aBoard.add(aButton1);
aBoard.add(aButton2);
...
aBoard.add(aButton9);
aButton.addActionListener(this);
aButton1.addActionListener(this);
aButton2.addActionListener(this);
...
aButton9.addActionListener(this);
text = new JTextArea(3,20);
text.setLineWrap(true);
JScrollPane scroller = new JScrollPane(text);
scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
aPanel.add(scroller);
aFrame.getContentPane() .add(BorderLayout.EAST, aPanel2);
aFrame.getContentPane() .add(BorderLayout.WEST, aPanel3);
aFrame.getContentPane() .add(BorderLayout.NORTH, aPanel4);
aFrame.getContentPane() .add(BorderLayout.SOUTH, aPanel);
aFrame.getContentPane() .add(BorderLayout.CENTER, aBoard);
aFrame.setSize(350,300);
aFrame.setVisible(true);
}
public void actionPerformed(ActionEvent ev){
numClick++;
text.append("button clicked " + numClick + "time(s) \n");
}
}
Это то, что я написал до сих пор. Я получил код для печати нового текста каждый раз, когда нажимается кнопка. но код не делает различий между каждой кнопки, так что это не имеет значения, если это button1 или button2, такая же ситуация происходит
У меня есть сумасшедшая идея: использовать другой в 'ActionListener' для каждой отдельной кнопки. – Tom
Назовите разные классы ActionListener для своих кнопок, которые вы хотите делать разными способами. –
Рассмотрите возможность просмотра [Как использовать действия] (http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html) – MadProgrammer