java的一个怪问题
解决时间 2021-05-05 12:36
- 提问者网友:謫仙
- 2021-05-04 15:59
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class keyboard extends Applet implements ActionListener
{
public Label lab;
public Button
b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b
26,b27,b28;
public Panel p1,p2,p3,p4,p5,p6;
public TextField txt;
public int i;
public String sum1,sum2;
public void init()
{
p1=new Panel(new GridLayout(1,10,10,10));
b1=new Button("Q");
b2=new Button("W");
b3=new Button("E");
b4=new Button("R");
b5=new Button("T");
b6=new Button("Y");
b7=new Button("U");
b8=new Button("I");
b9=new Button("O");
b10=new Button("P");
p1.add(b1);p1.add(b2);p1.add(b3);p1.add(b4);p1.add(b5);
p1.add(b6);p1.add(b7);p1.add(b8);p1.add(b9);p1.add(b10);
p2=new Panel(new GridLayout(1,9,20,20));
b11=new Button("A");
b12=new Button("S");
b13=new Button("D");
b14=new Button("F");
b15=new Button("G");
b16=new Button("H");
b17=new Button("J");
b18=new Button("K");
b19=new Button("l");
p2.add(b11);p2.add(b12);p2.add(b13);p2.add(b14);p2.add(b15);
p2.add(b16);p2.add(b17);p2.add(b18);p2.add(b19);
p3=new Panel(new GridLayout(1,7,10,10));
b20=new Button("Z");
b21=new Button("X");
b22=new Button("C");
b23=new Button("V");
b24=new Button("B");
b25=new Button("N");
b26=new Button("M");
p3.add(b20);p3.add(b21);p3.add(b22);p3.add(b23);p3.add(b24);
p3.add(b25);p3.add(b26);
p4=new Panel(new GridLayout(2,1,10,10));
b27=new Button("空格");
b28=new Button("删除");
p4.add(b27);
p4.add(b28);
p5=new Panel(new FlowLayout(FlowLayout.CENTER));
lab=new Label("输出");
txt=new TextField(100);
p5.add(lab);p5.add(txt);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
b5.addActionListener(this);
b6.addActionListener(this);
b7.addActionListener(this);
b8.addActionListener(this);
b9.addActionListener(this);
b10.addActionListener(this);
b11.addActionListener(this);
b12.addActionListener(this);
b13.addActionListener(this);
b14.addActionListener(this);
b15.addActionListener(this);
b16.addActionListener(this);
b17.addActionListener(this);
b18.addActionListener(this);
b19.addActionListener(this);
b20.addActionListener(this);
b21.addActionListener(this);
b22.addActionListener(this);
b23.addActionListener(this);
b24.addActionListener(this);
b25.addActionListener(this);
b26.addActionListener(this);
b27.addActionListener(this);
b28.addActionListener(this);
p6=new Panel(new GridLayout(5,1,10,10));
p6.add(p1);
p6.add(p2);
p6.add(p3);
p6.add(p4);
p6.add(p5);
add(p6);
}
public void actionPerformed(ActionEvent e)
{
if(e.getActionCommand().equals("Q"))
{
txt.setText("Q");
}
if(e.getActionCommand().equals("W"))
{
txt.setText("W");
}
if(e.getActionCommand().equals("E"))
{
txt.setText("E");
}
if(e.getActionCommand().equals("R"))
{
txt.setText("R");
}
if(e.getActionCommand().equals("T"))
{
txt.setText("T");
}
if(e.getActionCommand().equals("Y"))
{
txt.setText("Y");
}
if(e.getActionCommand().equals("U"))
{
txt.setText("U");
}
if(e.getActionCommand().equals("I"))
{
txt.setText("I");
}
if(e.getActionCommand().equals("O"))
{
txt.setText("O");
}
if(e.getActionCommand().equals("P"))
{
txt.setText("P");
}
if(e.getActionCommand().equals("A"))
{
txt.setText("A");
}
if(e.getActionCommand().equals("S"))
{
txt.setText("S");
}
if(e.getActionCommand().equals("D"))
{
txt.setText("D");
}
if(e.getActionCommand().equals("F"))
{
txt.setText("F");
}
if(e.getActionCommand().equals("G"))
{
txt.setText("G");
}
if(e.getActionCommand().equals("H"))
{
txt.setText("H");
}
if(e.getActionCommand().equals("J"))
{
txt.setText("J");
}
if(e.getActionCommand().equals("K"))
{
txt.setText("K");
}
if(e.getActionCommand().equals("L"))
{
txt.setText("L");
}
if(e.getActionCommand().equals("Z"))
{
txt.setText("Z");
}
if(e.getActionCommand().equals("X"))
{
txt.setText("X");
}
if(e.getActionCommand().equals("C"))
{
txt.setText("C");
}
else if(e.getActionCommand().equals("V"))
{
txt.setText("V");
}
if(e.getActionCommand().equals("B"))
{
txt.setText("B");
}
if(e.getActionCommand().equals("N"))
{
txt.setText("N");
}
if(e.getActionCommand().equals("M"))
{
txt.setText("M");
}
if(e.getActionCommand().equals("空格"))
{
txt.setText(" ");
}
if(e.getActionCommand().equals("删除"))
{
txt.setText("");
}
sum1=txt.getText();
sum2+=sum1;
txt.setText(sum2);
}
}
为什么在点I的时候就成了复制了呀,顺便把删除给加上吧
最佳答案
- 五星知识达人网友:一秋
- 2021-05-04 17:03
您的程序有两个问题:1. 您设计键盘的时候字母“L”不知为何选了小写,所以把您自己弄糊涂了,把小写的“L” 当作大写的“I”。而您的程序设计使小写的“L”输入后不会进入任何一个条件语句,所以txt.getText()的值不会变化,还是上一轮的值,再做sum2+=sum1;自然就产生了复制。2. 您的sum2没有赋初值,所以在第一次按键的时候,sum2还是null,sum2+=sum1的结果,就成了nullQ(假定您的第一个输入是Q)。一个小的建议是既然每次只输入比较一个键,用if/else条件语句会比单纯的if要有效率一些。给您改了一下程序,加了删除键功能(我的Eclipse不支持中文,所以改成了英文):
import java.applet.*;import java.awt.*;import java.awt.event.*;public class Keyboard extends Applet implements ActionListener{ public Label lab; public Button b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26,b27,b28; public Panel p1,p2,p3,p4,p5,p6; public TextField txt; public int i; public String sum1,sum2; public void init() { sum2 = ""; p1=new Panel(new GridLayout(1,10,10,10)); b1=new Button("Q"); b2=new Button("W"); b3=new Button("E"); b4=new Button("R"); b5=new Button("T"); b6=new Button("Y"); b7=new Button("U"); b8=new Button("I"); b9=new Button("O"); b10=new Button("P"); p1.add(b1);p1.add(b2);p1.add(b3);p1.add(b4);p1.add(b5); p1.add(b6);p1.add(b7);p1.add(b8);p1.add(b9);p1.add(b10); p2=new Panel(new GridLayout(1,9,20,20)); b11=new Button("A"); b12=new Button("S"); b13=new Button("D"); b14=new Button("F"); b15=new Button("G"); b16=new Button("H"); b17=new Button("J"); b18=new Button("K"); b19=new Button("L"); p2.add(b11);p2.add(b12);p2.add(b13);p2.add(b14);p2.add(b15); p2.add(b16);p2.add(b17);p2.add(b18);p2.add(b19); p3=new Panel(new GridLayout(1,7,10,10)); b20=new Button("Z"); b21=new Button("X"); b22=new Button("C"); b23=new Button("V"); b24=new Button("B"); b25=new Button("N"); b26=new Button("M"); p3.add(b20);p3.add(b21);p3.add(b22);p3.add(b23);p3.add(b24); p3.add(b25);p3.add(b26); p4=new Panel(new GridLayout(2,1,10,10)); b27=new Button("Space"); b28=new Button("Delete"); p4.add(b27); p4.add(b28); p5=new Panel(new FlowLayout(FlowLayout.CENTER)); lab=new Label("Output"); txt=new TextField(100); p5.add(lab);p5.add(txt); b1.addActionListener(this); b2.addActionListener(this); b3.addActionListener(this); b4.addActionListener(this); b5.addActionListener(this); b6.addActionListener(this); b7.addActionListener(this); b8.addActionListener(this); b9.addActionListener(this); b10.addActionListener(this); b11.addActionListener(this); b12.addActionListener(this); b13.addActionListener(this); b14.addActionListener(this); b15.addActionListener(this); b16.addActionListener(this); b17.addActionListener(this); b18.addActionListener(this); b19.addActionListener(this); b20.addActionListener(this); b21.addActionListener(this); b22.addActionListener(this); b23.addActionListener(this); b24.addActionListener(this); b25.addActionListener(this); b26.addActionListener(this); b27.addActionListener(this); b28.addActionListener(this); p6=new Panel(new GridLayout(5,1,10,10)); p6.add(p1); p6.add(p2); p6.add(p3); p6.add(p4); p6.add(p5); add(p6); } public void actionPerformed(ActionEvent e) { if(e.getActionCommand().equals("Delete")) { if (sum2.length() > 0) sum2 = sum2.substring(0, sum2.length() -1); else sum2 = ""; } else {
if(e.getActionCommand().equals("Q")) { txt.setText("Q"); } else if(e.getActionCommand().equals("W")) { txt.setText("W"); } else if(e.getActionCommand().equals("E")) { txt.setText("E"); } else if(e.getActionCommand().equals("R")) { txt.setText("R"); } else if(e.getActionCommand().equals("T")) { txt.setText("T"); } else if(e.getActionCommand().equals("Y")) { txt.setText("Y"); } else if(e.getActionCommand().equals("U")) { txt.setText("U"); } else if(e.getActionCommand().equals("I")) { txt.setText("I"); } else if(e.getActionCommand().equals("O")) { txt.setText("O"); } else if(e.getActionCommand().equals("P")) { txt.setText("P"); } else if(e.getActionCommand().equals("A")) { txt.setText("A"); } else if(e.getActionCommand().equals("S")) { txt.setText("S"); } else if(e.getActionCommand().equals("D")) { txt.setText("D"); } else if(e.getActionCommand().equals("F")) { txt.setText("F"); } else if(e.getActionCommand().equals("G")) { txt.setText("G"); } else if(e.getActionCommand().equals("H")) { txt.setText("H"); } else if(e.getActionCommand().equals("J")) { txt.setText("J"); } else if(e.getActionCommand().equals("K")) { txt.setText("K"); } else if(e.getActionCommand().equals("L")) { txt.setText("L"); } else if(e.getActionCommand().equals("Z")) { txt.setText("Z"); } if(e.getActionCommand().equals("X")) { txt.setText("X"); } if(e.getActionCommand().equals("C")) { txt.setText("C"); } else if(e.getActionCommand().equals("V")) { txt.setText("V"); } else if(e.getActionCommand().equals("B")) { txt.setText("B"); } else if(e.getActionCommand().equals("N")) { txt.setText("N"); } else if(e.getActionCommand().equals("M")) { txt.setText("M"); } else if(e.getActionCommand().equals("Space")) { txt.setText(" "); } sum1=txt.getText(); sum2+=sum1; } txt.setText(sum2); }}
全部回答
- 1楼网友:怀裏藏嬌
- 2021-05-04 17:53
这个问题还是百度一下比较实在。太强悍了!
- 2楼网友:北城痞子
- 2021-05-04 17:27
public void paint(Graphics g)
{
//加下面这句,初学者很容易违反这个常规协定,加下面这句是绘制图形的常识
super.paint(g);
//其他的不变
}
我要举报
大家都在看
推荐资讯