我試圖運行一個實驗,我似乎無法找到任何提供任何幫助的地方。不同的按鈕執行不同的操作
我的實驗是一組多個按鈕,每個按鈕在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");
}
}
這是我迄今寫的。每次點擊一個按鈕時,我已經獲得了用於打印新文本的代碼。但代碼不會每個按鈕分開來,所以如果它的按鈕1或BUTTON2不要緊,同樣的情況發生
我有一個瘋狂的想法:使用不同的一個'ActionListener'爲每個不同的按鈕。 – Tom
爲您想要做不同事情的按鈕編寫不同的'ActionListener'類。 –
請考慮看看[如何使用操作](http://docs.oracle.com/javase/tutorial/uiswing/misc/action.html) – MadProgrammer