当前位置:编程学习 > JAVA >>

运用Java Swing技术实现一个简单的计算

跪求啊啊啊 ~!!! 明天要交作业却不会编的孩纸求帮忙啊 有悬赏啊~!!! 有追加啊~!!!
答案:一共写了四个文件,
1.BlueButton.java
import java.awt.Color;

import javax.swing.JButton;


public class BlueButton extends JButton {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public BlueButton(String text){
		super(text);
		setForeground(Color.BLUE);
	}
}
2.RedButton.java
import java.awt.Color;

import javax.swing.JButton;


public class RedButton extends JButton {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public RedButton(String text){
		super(text);
		setForeground(Color.RED);
	}
}
3.GUI.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;


public class GUI extends JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	JMenuBar bar;
	JMenu edit, view, help;
	
	protected JMenuItem copy, paste, typical, science, group, subject, about;
	
	protected JTextField txt;
	protected JPanel buttonPane, numPane;
	protected JPanel subNorthPane, subWestPane;
	protected JButton[] numButtons;
	protected JButton btnAdd;
	protected JButton btnSub;
	protected JButton btnMul;
	protected JButton btnDiv;
	protected JButton btnSig;
	protected JButton btnPoint;
	protected JButton btnSqrt;
	protected JButton btnBack;
	protected JButton btnC;
	protected JButton btnCE;
	protected JButton btnReciprocal;
	protected JButton btnCalc;
	
	public GUI(){
		super("计算器");
		Toolkit tk = getToolkit();
		Image img = tk.getImage("");
		setIconImage(img);
		
		setLocation(400, 500);
		setResizable(false);
		
		getContentPane().setLayout(new BorderLayout());
		
		setGUI();
		
		setSize(380, 300);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	private void setGUI() {
		setMenu();
		Container c = getContentPane();
		
		txt = new JTextField("0.");
		txt.setHorizontalAlignment(JTextField.RIGHT);
		txt.setEditable(false);
		txt.setBackground(Color.WHITE);
		c.add(txt, BorderLayout.NORTH);
		
		buttonPane = new JPanel();
		buttonPane.setLayout(new BorderLayout(8, 3));
		
		subWestPane = new JPanel();
		subWestPane.setLayout(new GridLayout(4, 1, 3, 3));
		
		subWestPane.add(new RedButton("MC"));
		subWestPane.add(new RedButton("MR"));
		subWestPane.add(new RedButton("MS"));
		subWestPane.add(new RedButton("M+"));
		
		subNorthPane = new JPanel();
		subNorthPane.setLayout(new FlowLayout(FlowLayout.LEFT, 10, 3));
		JLabel j = new JLabel("          ");
		j.setBorder(BorderFactory.createLoweredBevelBorder());
		subNorthPane.add(j);
		
		btnBack = new RedButton("Backspace");
		btnCE = new RedButton("        CE        ");
		btnC = new RedButton("         C         ");
		subNorthPane.add(btnBack);
		subNorthPane.add(btnCE);
		subNorthPane.add(btnC);
		
		numPane = new JPanel();
		numPane.setLayout(new GridLayout(4, 5, 3, 3));
		numButtons = new JButton[10];
		for(int i=0; i<numButtons.length; i++){
			numButtons[i] = new BlueButton(String.valueOf(i));
		}
		
		numPane.add(numButtons[7]);
		numPane.add(numButtons[8]);
		numPane.add(numButtons[9]);
		btnDiv = new RedButton("/");
		numPane.add(btnDiv);
		btnSqrt = new RedButton("sqrt");
		numPane.add(btnSqrt);
		
		numPane.add(numButtons[4]);
		numPane.add(numButtons[5]);
		numPane.add(numButtons[6]);
		btnMul = new RedButton("*");
		numPane.add(btnMul);
		numPane.add(new RedButton("%"));
		
		numPane.add(numButtons[1]);
		numPane.add(numButtons[2]);
		numPane.add(numButtons[3]);
		btnSub = new RedButton("-");
		numPane.add(btnSub);
		btnReciprocal = new RedButton("1/x");
		numPane.add(btnReciprocal);
		
		numPane.add(numButtons[0]);
		btnSig = new RedButton("+ / -");
		numPane.add(btnSig);
		btnPoint = new RedButton(".");
		numPane.add(btnPoint);
		btnAdd = new RedButton("+");
		numPane.add(btnAdd);
		btnCalc = new RedButton("=");
		numPane.add(btnCalc);
		
		buttonPane.add(subWestPane, BorderLayout.WEST);
		buttonPane.add(subNorthPane, BorderLayout.NORTH);
		buttonPane.add(numPane, BorderLayout.CENTER);
		
		c.add(buttonPane, BorderLayout.CENTER);
	}

	private void setMenu() {
		bar = new JMenuBar();
		
		copy = new JMenuItem("Copy");
		copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, KeyEvent.CTRL_MASK, false));
		paste = new JMenuItem("Paste");
		paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, KeyEvent.CTRL_MASK, false));
		
		edit = new JMenu("EDIT");
		edit.add(copy);
		edit.add(paste);
		
		typical = new JMenuItem("Typical");
		science = new JMenuItem("Science");
		group = new JMenuItem("Group");
		view = new JMenu("VIEW");
		view.add(typical);
		view.add(science);
		view.addSeparator();
		view.add(group);
		
		subject = new JMenuItem("Subject");
		about = new JMenuItem("About");
		help =new JMenu("HELP");
		help.add(subject);
		help.addSeparator();
		help.add(about);
		
		bar.add(edit);
		bar.add(view);
		bar.add(help);
		
		setJMenuBar(bar);
	}
}
4.Calc.java
public class Calc {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		new GUI();

	}

}
其他:http://hi.zhaoxi.net/tjx1222/blog/item/014cc2eed990a93b2df534de.html  代码太长自己去看

上一个:上大一,我想买二手笔记本,平时玩玩魔兽,也调java,请问这样的电脑可以吗?
下一个:一道java试题--求解释

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,