求一个java程序 基于Swing的图形用户界面设计

编写程序,设计一个GUI程序,实现100以内两位整数相加的加法器。
功能是随机产生两个整数(加数和被加数),考生输入和数,若输入正确,给出“正确”提示,总分加1,否则,给出“错”提示,共100道题程序结束,给出“总分是:****”的提示。
PS:不要用对话框做,最好以回车输入答案~~
我的邮箱是[email protected],做好后发到我邮箱里,谢!
很急的,各位高手帮帮忙~~

第1个回答  2010-04-13
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.util.Enumeration;
import java.util.Random;

import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.plaf.FontUIResource;

public class NewFrame extends JFrame {
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private int a;
private int b;
private int total = 0;
private int result = 0;
private Random random = new Random();

public NewFrame() {
initComponents();
}

public int getA() {
a = random.nextInt(100);
return a;
}

public void setA(int a) {
this.a = a;
}

public int getB() {
b = random.nextInt(100);
return b;
}

public void setB(int b) {
this.b = b;
}

private void initComponents() {
java.awt.GridBagConstraints gridBagConstraints;

jTextField1 = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jTextField2 = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
jTextField3 = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();
jLabel1 = new javax.swing.JLabel();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setTitle("加法测试");
getContentPane().setLayout(new java.awt.GridBagLayout());

jTextField1.setColumns(8);
jTextField1.setText(getA() + "");
jTextField1.setEditable(false);
getContentPane().add(jTextField1, new java.awt.GridBagConstraints());

jLabel2.setText("加");
getContentPane().add(jLabel2, new java.awt.GridBagConstraints());

jTextField2.setColumns(8);
jTextField2.setEditable(false);
jTextField2.setText(getB() + "");
jTextField3.addKeyListener(new KeyListener() {

public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
if (KeyEvent.VK_ENTER == e.getKeyCode()) {
System.out.println("keyPressed");
action();
}
}

public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}

public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub

}

});
getContentPane().add(jTextField2, new java.awt.GridBagConstraints());

jLabel3.setText("等于");
getContentPane().add(jLabel3, new java.awt.GridBagConstraints());

jTextField3.setColumns(8);
getContentPane().add(jTextField3, new java.awt.GridBagConstraints());

jButton1.setText("确定");
jButton1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
action();
}
});
getContentPane().add(jButton1, new java.awt.GridBagConstraints());

jLabel1.setText("总分:0 ");
gridBagConstraints = new java.awt.GridBagConstraints();
gridBagConstraints.weightx = 1.0;
gridBagConstraints.weighty = 1.0;
getContentPane().add(jLabel1, gridBagConstraints);

pack();
}

private void action() {

try {
if (total >= 99) {
JOptionPane.showMessageDialog(null, "测试结束" + jLabel1.getText(),
"提示", 1);
jTextField3.setText("测试结束");
return;
}
int a = Integer.parseInt(jTextField1.getText());
int b = Integer.parseInt(jTextField2.getText());
int c = Integer.parseInt(jTextField3.getText().trim());
System.out.println(a + " " + b + " " + c);
if (a + b == c) {
result++;
JOptionPane.showMessageDialog(null, "正确", "正确提示", 1);
} else {
JOptionPane.showMessageDialog(null, "错误", "错误提示", 1);
}
total++;
if (total < 3) {
jLabel1.setText("总分:" + result + " ");
jTextField1.setText(getA() + "");
jTextField2.setText(getB() + "");
jTextField3.setText("");
}
} catch (Exception e) {
JOptionPane.showMessageDialog(null, "输入提示", "请输入数字", 1);
}

}

public static void main(String[] args) {
Font font = new Font("宋体", Font.PLAIN, 12);
for (Enumeration keys = UIManager.getDefaults().keys(); keys
.hasMoreElements();) {
Object key = keys.nextElement();
Object value = UIManager.get(key);
if (value instanceof FontUIResource) {
UIManager.put(key, font);
}
}
NewFrame frame = new NewFrame();
frame.setLocationRelativeTo(null);
frame.setSize(400, 200);
frame.setVisible(true);
}
}本回答被提问者采纳
第2个回答  2010-04-13
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.math.*;
public class RandomCalculator implements ActionListener {
JFrame f;
JTextField tf1,tf2,tf3;
JLabel lb1,lb2 ,lb,nlb;
JPanel pa,pa1,pa2;
JButton bt1,bt2;
JTextArea ta;
int count=0;
int score=0;
int datasum=0;
public RandomCalculator(){
f=new JFrame("随机计算器");
f.setVisible(true);
f.setSize(200,200);
Container cp=f.getContentPane();
cp.setLayout(new GridLayout(4,1));
pa=new JPanel(new GridLayout(1,2));
pa1=new JPanel(new GridLayout(1,5));
pa2=new JPanel(new GridLayout(1,2));
cp.add(pa);
cp.add(pa1);
cp.add(pa2);
bt1=new JButton("开始做题");
bt1.addActionListener(this);
pa.add(bt1);
lb=new JLabel();
pa.add(lb);
tf1=new JTextField();
pa1.add(tf1);
lb1=new JLabel("+",JLabel.CENTER);
pa1.add(lb1);
tf2=new JTextField();
pa1.add(tf2);
lb2=new JLabel("=",JLabel.CENTER);
pa1.add(lb2);
tf3=new JTextField();
pa1.add(tf3);
bt2=new JButton("确定");
bt2.addActionListener(this);
pa2.add(bt2);
ta=new JTextArea("最后得分为:");
pa2.add(ta);
nlb=new JLabel();
cp.add(nlb);
}
public void actionPerformed(ActionEvent e){
int data1,data2;
if(e.getSource()==bt1){
data1=(int)(Math.random()*100+0);
data2=(int)(Math.random()*100+0);
datasum=data1+data2;
tf1.setText(""+data1);
tf2.setText(""+data2);
tf3.setText("");
count++;
lb.setText("这是第"+count+"题");

}
if(e.getSource()==bt2){
String st=tf3.getText();
int sum=Integer.parseInt(st);
if(sum==datasum){
score+=10;
nlb.setText("答案输入正确请进行下一题");
}
else{
nlb.setText("答案输入错误请重新输入");
tf3.setText("");
}
if(count==100){
String std=""+score;
ta.setText(std);
}
}
}
public static void main(String[] args) {
new RandomCalculator();
}
}
相似回答