java程序问题添加关闭和清除

[复制链接]
查看11 | 回复3 | 2009-6-5 09:29:12 | 显示全部楼层 |阅读模式
Frame frame = new Frame("计算器"); //创建一个窗口P179改成JFrame frame = new JFrame("calc"); 就可以了所有的button和label 都改成JButton JLabel就可以了,因为你用的是awt界面所有没有关闭按钮,除非你重写它的关闭方法, 改成JFrame是Swing界面
回复

使用道具 举报

千问 | 2009-6-5 09:29:12 | 显示全部楼层
是要这种关闭么:(还是添加按钮的关闭)import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import javax.swing.JOptionPane;
public class Jsq implements ActionListener{ Frame frame = new Frame("计算器"); //创建一个窗口P179
Button jia = new Button("加+"); //添加加。减。乘。除键
Button sub = new Button("减-");
Button mul = new Button("乘*");
Button mod = new Button("除/");
Button qc = new Button("清除");
TextField one = new TextField();
TextField two = new TextField();
TextField result = new TextField();
Label l1 = new Label("计算器"); //添加标识P180
Label l2 = new Label("数1:");
Label l3 = new Label("数2:");
Label l4 = new Label("结果:");
public Jsq() { frame.setLayout(null); //设置布局为空 P181frame.setSize(260, 250); //设置窗口的尺寸大小 l1.setBounds(120, 40, 50, 20); //以下是设置各组件的位置 l2.setBounds(20, 70, 50, 20); l3.setBounds(20, 90, 50, 20); l4.setBounds(30, 150, 50, 20); jia.setBounds(200, 60, 50, 20); sub.setBounds(200, 80, 50, 20); mul.setBounds(200, 100, 50, 20); mod.setBounds(200, 120, 50, 20); qc.setBounds(200, 140, 50, 20); one.setBounds(70, 70, 50, 20); two.setBounds(70, 90, 50, 20); result.setBounds(80, 150, 100, 20); one.setText("0"); two.setText("0"); jia.addActionListener(this); sub.addActionListener(this); mul.addActionListener(this); mod.addActionListener(this); qc.addActionListener(this); frame.add(jia); //添加各个组件 P183frame.add(sub); frame.add(mul); frame.add(mod); frame.add(qc); frame.add(one); frame.add(two); frame.add(result); frame.add(l1); frame.add(l2); frame.add(l3); frame.add(l4); //*****************************************************************frame.addWindowListener(new WindowAdapter() {//添加关闭功能。 public void windowClosing(WindowEvent arg0) {
System.exit(0); }
});// *********************************************************************
frame.setVisible(true); //窗口设为可见 }
public static void main(String args[]) { new Jsq(); }
public void actionPerformed(ActionEvent e) {
String str = e.getActionCommand(); //设置计算器的计算功能P197double num1 = Double.parseDouble(one.getText().trim()); double num2 = Double.parseDouble(two.getText().trim()); double rs = 0.0; if(str.equals("加+")){ rs = num1+num2; }else if(str.equals("减-")){ rs = num1-num2; }else if(str.equals("乘*")){ rs = num1*num2; }else if(str.equals("除/")){ rs = num1/num2; } result.setText(String.valueOf(rs)); } }
回复

使用道具 举报

千问 | 2009-6-5 09:29:12 | 显示全部楼层
不用听楼上忽悠你,已经帮你添加了关闭监听:import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class Jsq implements ActionListener{ Frame frame = new Frame("计算器"); //创建一个窗口P179Button jia = new Button("加+"); //添加加。减。乘。除键Button sub = new Button("减-"); Button mul = new Button("乘*"); Button mod = new Button("除/"); Button qc = new Button("清除");TextField one = new TextField(); TextField two = new TextField(); TextField result = new TextField(); Label l1 = new Label("计算器"); //添加标识P180Label l2 = new Label("数1:"); Label l3 = new Label("数2:"); Label l4 = new Label("结果:"); public Jsq() { frame.setLayout(null); //设置布局为空 P181frame.setSize(260, 250); //设置窗口的尺寸大小 l1.setBounds(120, 40, 50, 20); //以下是设置各组件的位置 l2.setBounds(20, 70, 50, 20); l3.setBounds(20, 90, 50, 20); l4.setBounds(30, 150, 50, 20); jia.setBounds(200, 60, 50, 20); sub.setBounds(200, 80, 50, 20); mul.setBounds(200, 100, 50, 20); mod.setBounds(200, 120, 50, 20); qc.setBounds(200, 140, 50, 20); one.setBounds(70, 70, 50, 20); two.setBounds(70, 90, 50, 20); result.setBounds(80, 150, 100, 20); one.setText("0"); two.setText("0"); jia.addActionListener(this); sub.addActionListener(this); mul.addActionListener(this); mod.addActionListener(this); qc.addActionListener(this); frame.add(jia); //添加各个组件 P183frame.add(sub); frame.add(mul); frame.add(mod); frame.add(qc); frame.add(one); frame.add(two); frame.add(result); frame.add(l1); frame.add(l2); frame.add(l3); frame.add(l4); frame.setVisible(true); //窗口设为可见 frame.addWindowListener(new WindowAdapter() { public void windowClosing(final WindowEvent e) {System.exit(0); }});}public static void main(String args[]) { new Jsq(); } public void actionPerformed(ActionEvent e) { String str = e.getActionCommand(); //设置计算器的计算功能P197double num1 = Double.parseDouble(one.getText().trim()); double num2 = Double.parseDouble(two.getText().trim()); double rs = 0.0; if(str.equals("加+")){ rs = num1+num2; }else if(str.equals("减-")){ rs = num1-num2; }else if(str.equals("乘*")){ rs = num1*num2; }else if(str.equals("除/")){ rs = num1/num2; } result.setText(String.valueOf(rs)); } }
回复

使用道具 举报

千问 | 2009-6-5 09:29:12 | 显示全部楼层
发帖之前没看到楼上的回复,楼上的是正确,我跟他发重复了import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;import javax.swing.JOptionPane;public class Jsq extends WindowAdapter implements ActionListener{ Frame frame = new Frame("计算器"); // 创建一个窗口P179 Button jia = new Button("加+"); // 添加加。减。乘。除键 Button sub = new Button("减-"); Button mul = new Button("乘*"); Button mod = new Button("除/"); Button qc = new Button("清除"); TextField one = new TextField(); TextField two = new TextField(); TextField result = new TextField(); Label l1 = new Label("计算器"); // 添加标识P180 Label l2 = new Label("数1:"); Label l3 = new Label("数2:"); Label l4 = new Label("结果:"); public Jsq() {frame.setLayout(null); // 设置布局为空 P181frame.setSize(260, 250); // 设置窗口的尺寸大小l1.setBounds(120, 40, 50, 20); // 以下是设置各组件的位置l2.setBounds(20, 70, 50, 20);l3.setBounds(20, 90, 50, 20);l4.setBounds(30, 150, 50, 20);jia.setBounds(200, 60, 50, 20);sub.setBounds(200, 80, 50, 20);mul.setBounds(200, 100, 50, 20);mod.setBounds(200, 120, 50, 20);qc.setBounds(200, 140, 50, 20);one.setBounds(70, 70, 50, 20);two.setBounds(70, 90, 50, 20);result.setBounds(80, 150, 100, 20);one.setText("0");two.setText("0");jia.addActionListener(this);sub.addActionListener(this);mul.addActionListener(this);mod.addActionListener(this);qc.addActionListener(this);frame.add(jia); // 添加各个组件 P183frame.add(sub);frame.add(mul);frame.add(mod);frame.add(qc);frame.add(one);frame.add(two);frame.add(result);frame.add(l1);frame.add(l2);frame.add(l3);frame.add(l4);frame.addWindowListener(this);frame.setVisible(true); // 窗口设为可见 } public static void main(String args[]) {new Jsq(); } @Override public void windowClosing(WindowEvent e) {e.getWindow().setVisible(false);((Window)e.getComponent()).dispose();System.exit(0); } public void actionPerformed(ActionEvent e) {String str = e.getActionCommand(); // 设置计算器的计算功能P197double num1 = Double.parseDouble(one.getText().trim());double num2 = Double.parseDouble(two.getText().trim());double rs = 0.0;if (str.equals("加+")){ rs = num1 + num2;} else if (str.equals("减-")){ rs = num1 - num2;} else if (str.equals("乘*")){ rs = num1 * num2;} else if (str.equals("除/")){ rs = num1 / num2;}result.setText(String.valueOf(rs)); }}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行