一个JAVA界面的实现【200分】

大家帮帮忙吧,这个界面我怎么也实现不了。 希望大家谁能给个思路,或者是给写一下也好。谢谢啦。 界面图片:http://hiphotos.baidu.com/restos/pic/item/60bc7e880e12e281a5c27259.jpg
谢谢各位啦,!
不好意思啦,分数写错啦。可以给大家追加分数哦。
=========================
不行啊,都不是那个界面啊,,我那个是用awt做的难看的界面,大家做的这么漂亮怎么行啊,,,

这个是awt的
package com;
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.*;
import javax.swing.border.*;

public class Calculator extends JApplet implements ActionListener
{
/**
*
*/
private static final long serialVersionUID = 0L;
private final String[] KEYS={"7","8","9","/","sqrt",
"4","5","6","*","%",
"1","2","3","-","1/x",
"0","+/-",".","+","="
};
private final String[] COMMAND={"Backspace","CE","C"};
private final String[] M={" ","MC","MR","MS","M+"};
private JButton keys[]=new JButton[KEYS.length];
private JButton commands[]=new JButton[COMMAND.length];
private JButton m[]=new JButton[M.length];
private JTextField display =new JTextField("0");

// public JTextField setHorizontalAlignment(int alignment);
// private JTextField display.setHorizontalAlignment(JTextField.RIGHT)=new JTextField("0");

private void setup()
{
display.setHorizontalAlignment(JTextField.RIGHT);
JPanel calckeys=new JPanel();
JPanel command=new JPanel();
JPanel calms=new JPanel();
calckeys.setLayout(new GridLayout(4,5,3,3));
command.setLayout(new GridLayout(1,3,3,3));
calms.setLayout(new GridLayout(5,1,3,3));

for(int i=0;i<KEYS.length;i++)
{
keys[i]=new JButton(KEYS[i]);
calckeys.add(keys[i]);
keys[i].setForeground(Color.blue);
}
keys[3].setForeground(Color.red);
keys[4].setForeground(Color.red);
keys[8].setForeground(Color.red);
keys[9].setForeground(Color.red);
keys[13].setForeground(Color.red);
keys[14].setForeground(Color.red);
keys[18].setForeground(Color.red);
keys[19].setForeground(Color.red);

for(int i=0;i<COMMAND.length;i++)
{
commands[i]=new JButton(COMMAND[i]);
command.add(commands[i]);
commands[i].setForeground(Color.red);
}
for(int i=0;i<M.length;i++)
{
m[i]=new JButton(M[i]);
calms.add(m[i]);
m[i].setForeground(Color.red);
}
JPanel panel1=new JPanel();
panel1.setLayout(new BorderLayout(3,3));
panel1.add("North",command);
panel1.add("Center",calckeys);
JPanel top=new JPanel();
top.setLayout(new BorderLayout());
display.setBackground(Color.WHITE);
top.add("Center",display);
getContentPane().setLayout(new BorderLayout(3,5));
getContentPane().add("North",top);
getContentPane().add("Center",panel1);
getContentPane().add("West",calms);
}

public void init()
{

setup();

for(int i=0;i<KEYS.length;i++)
{
keys[i].addActionListener(this);
}
for(int i=0;i<COMMAND.length;i++)
{
commands[i].addActionListener(this);
}
for(int i=0;i<M.length;i++)
{
m[i].addActionListener(this);
}
display.setEditable(false);
}

public void actionPerformed(ActionEvent e)
{
String label=e.getActionCommand();
// double zero=e.getActionCommand();
if(label=="C")
handleC();
else if(label=="Backspace")
handleBackspace();
else if(label=="CE")
display.setText("0");
else if("0123456789.".indexOf(label)>=0)
{handleNumber(label);
// handlezero(zero);
}

else
handleOperator(label);
}

private boolean firstDigit=true;

private void handleNumber(String key)
{
if(firstDigit)
display.setText(key);
else if((key.equals("."))&&(display.getText().indexOf(".")<0))
display.setText(display.getText()+".");
else if(!key.equals("."))
display.setText(display.getText()+key);
firstDigit=false;
}
//private void handlezero(String key)
//{
// if(!((double)display.setText(key))
// display.setText(0);
// }
private double number=0.0;
private String operator="=";

private void handleOperator(String key)
{
if(operator.equals("/"))
{
if(getNumberFromDisplay()==0.0)
display.setText("除数不能为零");
else
{
number/=getNumberFromDisplay();
long t1;
double t2;
t1=(long)number;
t2=number-t1;
if(t2==0)
display.setText(String.valueOf(t1));
else
display.setText(String.valueOf(number));
}
}
else if(operator.equals("1/x"))
{
if(number==0.0)
display.setText("零没有倒数");
else
{
number=1/number;
long t1;
double t2;
t1=(long)number;
t2=number-t1;
if(t2==0)
display.setText(String.valueOf(t1));
else
display.setText(String.valueOf(number));
}
}
else if(operator.equals("+"))
number+=getNumberFromDisplay();
else if(operator.equals("-"))
number-=getNumberFromDisplay();
else if(operator.equals("*"))
number*=getNumberFromDisplay();
else if(operator.equals("sqrt"))
{
number=Math.sqrt(number);

}
else if(operator.equals("%"))
number=number/100;
else if(operator.equals("+/-"))
number=number*(-1);
else if(operator.equals("="))
number=getNumberFromDisplay();
long t1;
double t2;
t1=(long)number;
t2=number-t1;
if(t2==0)
display.setText(String.valueOf(t1));
else
display.setText(String.valueOf(number));
operator=key;
firstDigit=true;
}

private double getNumberFromDisplay()
{
return Double.valueOf(display.getText()).doubleValue();
}

private void handleC()
{
display.setText("0");
firstDigit=true;
operator="=";
}
private void handleBackspace()
{
String text=display.getText();
int i=text.length();
if(i>0)
{
text=text.substring(0,i-1);
if(text.length()==0)
{
display.setText("0");
firstDigit=true;
operator="=";
}
else
display.setText(text);
}

}
public static void main(String args[])
{
JFrame f=new JFrame();
Calculator Calculator1=new Calculator();
Calculator1.init();
f.getContentPane().add("Center",Calculator1);
f.setVisible(true);
f.setBounds(300,200,380,245);
f.setBackground(Color.LIGHT_GRAY);
f.validate();
f.setResizable(false);
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
f.setTitle("计算器");
}

}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-06-24
Container cp=getContentPane();
cp.setLayout(new GridLayout(4,3);
JButton btn1=new JButton("1");
JButton btn2=new JButton("2");
JButton btn3=new JButton("3");
JButton btn4=new JButton("4");
JButton btn5=new JButton("5");
JButton btn6=new JButton("6");
JButton btn7=new JButton("7");
JButton btn8=new JButton("8");
JButton btn9=new JButton("9");
JLabel lab=new JLabel("结果");
JTextField textInput=new JTextFiled(30);
cp.add(btn1); cp.add(btn2); cp.add(btn3);
cp.add(btn4); cp.add(btn5); cp.add(btn6);
cp.add9btn7); cp.add(btn8); cp.add(btn9);
cp.add(lab);cp.add(textInput);
setVisible(true);
这样就可以了
第2个回答  2008-06-24
import javax.swing.*;
import java.awt.*;
import javax.swing.JLabel;

public class JieMian
extends JFrame {
JPanel panel = new JPanel();
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JTextField text = new JTextField(" ");
JButton jButton1 = new JButton("1"); //数字键1
JButton jButton2 = new JButton("2"); //数字键2
JButton jButton3 = new JButton("3"); //数字键3
JButton jButton4 = new JButton("4"); //数字键4
JButton jButton5 = new JButton("5"); //数字键5
JButton jButton6 = new JButton("6"); //数字键6
JButton jButton7 = new JButton("7"); //数字键7
JButton jButton8 = new JButton("8"); //数字键8
JButton jButton9 = new JButton("9"); //数字键9
JLabel label = new JLabel("结果");
public JieMian() {
try {
jbInit();
}
catch (Exception e) {
e.printStackTrace();
}
}

private void jbInit() throws Exception {
panel.add(jButton1);
panel.add(jButton2);
panel.add(jButton3);
panel.add(jButton4);
panel.add(jButton5);
panel.add(jButton6);
panel.add(jButton7);
panel.add(jButton8);
panel.add(jButton9);
panel2.add(label);
panel2.add(text);
panel1.setLayout(new BorderLayout());
panel.setLayout(new GridLayout(3, 3));
panel2.setLayout(new FlowLayout());
panel1.add(panel, BorderLayout.NORTH);
panel1.add(panel2, BorderLayout.SOUTH);
this.getContentPane().add(panel1, null);
setBounds(380, 220, 30, 80);
panel1.setBackground(Color.white);
panel2.setBackground(Color.white);
setContentPane(panel1);
this.setSize(new Dimension(288, 170));
this.setVisible(true);

}

public static void main(String[] args) {
new JieMian();
}
}
第3个回答  2008-06-26
我已经测试过了,和你要的一样,还是你自己看吧:
import java.awt.*;

public class ButWin extends Frame {
private Button[] btns;
private int totalBtns;
private Label lb;
private TextField txd;

public ButWin()
{
setLayout(new BorderLayout());

GridLayout gl = new GridLayout(3,3);
Panel btnPanel = new Panel(gl);
gl.setHgap(5); //设置按钮间的水平间距
gl.setVgap(5); //设置按钮间的垂直间距
btnPanel.setBackground(Color.white);

totalBtns = 9;
btns = new Button[totalBtns];
for(int i = 0; i < totalBtns; i++)
{
btns[i] = new Button("button" + (i + 1));
btnPanel.add(btns[i]);
}

Panel resPanel = new Panel();
resPanel.setBackground(Color.white);

lb = new Label("结果");
txd = new TextField(10);
resPanel.add(lb);
resPanel.add(txd);

add(btnPanel,BorderLayout.CENTER);
add(resPanel,BorderLayout.SOUTH);
}

public static void main(String[] args)
{
ButWin frm = new ButWin();

frm.pack();
frm.setVisible(true);
}
}
第4个回答  2008-06-25
人家要的是AWT做的,你们做的都是swing
都不看题啊!!
相似回答