我有四个按钮,分别命名为A,B,C,D,并且每个按钮都有动作监听器,结果当我按A它工作但是当我按下其他按钮时它会删除第一个,它只显示一个文本字段中的按钮,是什么我应该在文本字段中打印多个按钮。
'package actionlistenerdemo;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class ActionListenerDemo {
public static void main(String[] args) {
JFrame win = new JFrame("Action Listener");
JPanel P1, P2;
P1 = new JPanel();
JTextField tf = new JTextField();
tf.setColumns(10);
tf.setEditable(false);
P1.add(tf);
win.add(P1,BorderLayout.PAGE_START);
P2 = new JPanel();
P2.setLayout (new GridLayout(2,2));
JButton b1, b2, b3, b4;
b1 = new JButton(" A ");
P2.add(b1);
b2 = new JButton(" B ");
P2.add(b2);
b3 = new JButton(" C ");
P2.add(b3);
b4 = new JButton(" D ");
P2.add(b4);
b1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
tf.setText("A");
}
});
b2.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
tf.setText("B");
}
});
b3.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
tf.setText("C");
}
});
b4.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
tf.setText("D");
}
});
win.add(P2);
win.setSize(200,200);
win.setVisible(true);
}
}'
答案 0 :(得分:0)
tk.Canvas
会覆盖Textfield中的当前文本。
如果你想显示tf.setText("X");
你按下按钮A然后按下按钮B,那么你需要从文本字段中获取当前文本添加下一个字符并设置文本:
AB