Applet 类必须是任何嵌入在 Web 页中或用 Java Applet Viewer 查看的 applet 的超类。Applet 类提供了 applet 及其运行环境之间的标准接口。
Panel 是最简单的容器类。应用程序可以将其他组件放在面板提供的空间内,这些组件包括其他面板。
面板的默认布局管理器是 FlowLayout 布局管理器。
具体代码如下:
import javax.swing.*
import java.awt.event.*
import java.awt.*
public class Calculator extends JFrame implements ActionListener {
private JFrame jf
private JButton[] allButtons
private JButton clearButton
private JTextField jtf
public Calculator() {
//对图形组件实例化
jf=new JFrame("任静的计算器1.0:JAVA版")
jf.addWindowListener(new WindowAdapter(){
public void windowClosing(){
System.exit(0)
}
})
allButtons=new JButton[16]
clearButton=new JButton("清除")
jtf=new JTextField(25)
jtf.setEditable(false)
String str="123+456-789*0.=/"
for(int i=0i<allButtons.lengthi++){
allButtons[i]=new JButton(str.substring(i,i+1))
}
}
public void init(){
//完成布局
jf.setLayout(new BorderLayout())
JPanel northPanel=new JPanel()
JPanel centerPanel=new JPanel()
JPanel southPanel=new JPanel()
northPanel.setLayout(new FlowLayout())
centerPanel.setLayout(new GridLayout(4,4))
southPanel.setLayout(new FlowLayout())
northPanel.add(jtf)
for(int i=0i<16i++){
centerPanel.add(allButtons[i])
}
southPanel.add(clearButton)
jf.add(northPanel,BorderLayout.NORTH)
jf.add(centerPanel,BorderLayout.CENTER)
jf.add(southPanel,BorderLayout.SOUTH)
addEventHandler()
}
//添加事件监听
public void addEventHandler(){
jtf.addActionListener(this)
for(int i=0i<allButtons.lengthi++){
allButtons[i].addActionListener(this)
}
clearButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Calculator.this.jtf.setText("")
}
})
}
//事件处理
public void actionPerformed(ActionEvent e) {
//在这里完成事件处理 使计算器可以运行
String action=e.getActionCommand()
if(action=="+"||action=="-"||action=="*"||action=="/"){
}
}
public void setFontAndColor(){
Font f=new Font("宋体",Font.BOLD,24)
jtf.setFont(f)
jtf.setBackground(new Color(0x8f,0xa0,0xfb))
for(int i=0i<16i++){
allButtons[i].setFont(f)
allButtons[i].setForeground(Color.RED)
}
}
public void showMe(){
init()
setFontAndColor()
jf.pack()
jf.setVisible(true)
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
}
public static void main(String[] args){
new Calculator().showMe()
}
}
import java.awt.BorderLayoutimport java.awt.Button
import java.awt.Frame
import java.awt.GridLayout
import java.awt.Menu
import java.awt.MenuBar
import java.awt.MenuItem
import java.awt.Panel
import java.awt.TextField
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import javax.swing.JButton
import javax.swing.JFrame
//布局
public class LianXi extends JFrame implements ActionListener{
Panel p = null
TextField t = null
int x = 0
int y = 0
/* p.setLayout( new GridLayout(4,5))*/
JButton[] b = {new JButton("0"),new JButton("1"),new JButton("2"),new JButton("3")
,new JButton("4"),new JButton("5"),new JButton("6"),new JButton("7"),new JButton("8")
,new JButton("9"),new JButton("*"),new JButton("-"),new JButton("+"),new JButton("/")
,new JButton("="),new JButton("."),new JButton("删除"),new JButton("CE")}
public LianXi(String title){
super("计算器")
p = new Panel()
setLocation(200, 200)
setSize(300,200)
setResizable(true)
setVisible(true)
MenuBar m =new MenuBar()
Menu m1 = new Menu("编辑")
Menu m2 = new Menu("查看")
Menu m3 = new Menu("帮助")
m.add(m1)
m.add(m2)
m.add(m3)
setMenuBar(m)
MenuItem mi1 = new MenuItem("复制 ctrl + c")
MenuItem mi2 = new MenuItem("粘贴 ctrl + v ")
m1.add(mi1)
m1.add(mi2)
MenuItem mi3 = new MenuItem("●标准型")
MenuItem mi4 = new MenuItem("数字关系型")
MenuItem mi5 = new MenuItem("科学型")
m2.add(mi3)
m2.add(mi4)
m2.add(mi5)
MenuItem mi6 = new MenuItem("帮助主题")
MenuItem mi7 = new MenuItem("关于计算器")
m3.add(mi6)
m3.add(mi7)
t = new TextField()
add(t,BorderLayout.NORTH)
t.setVisible(true)
/*p.setLayout( new GridLayout(3,5))
JButton[] b = {new JButton("0"),new JButton("1"),new JButton("2"),new JButton("3")
,new JButton("4"),new JButton("5"),new JButton("6"),new JButton("7"),new JButton("8")
,new JButton("9"),new JButton("*"),new JButton("-"),new JButton("+"),new JButton("/")
,new JButton("="),new JButton("CE")}*/
p.setLayout( new GridLayout(4,5))
for (int i=0i<15i++){
p.add(b[i])
}
add(p)
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
p.add(b[0])
b[0].addActionListener(this)
p.add(b[1])
b[1].addActionListener(this)
p.add(b[2])
b[2].addActionListener(this)
p.add(b[3])
b[3].addActionListener(this)
p.add(b[4])
b[4].addActionListener(this)
p.add(b[5])
b[5].addActionListener(this)
p.add(b[6])
b[6].addActionListener(this)
p.add(b[7])
b[7].addActionListener(this)
p.add(b[8])
b[8].addActionListener(this)
p.add(b[9])
b[9].addActionListener(this)
p.add(b[10])
b[10].addActionListener(this)
p.add(b[11])
b[11].addActionListener(this)
p.add(b[12])
b[12].addActionListener(this)
p.add(b[13])
b[13].addActionListener(this)
p.add(b[14])
b[14].addActionListener(this)
p.add(b[15])
b[15].addActionListener(this)
p.add(b[16])
b[16].addActionListener(this)
p.add(b[17])
b[17].addActionListener(this)
}
boolean dian = true
double dou1
double dou2
String sing
double dou
public void actionPerformed(ActionEvent e) {
Object obj = e.getSource()
if(obj == b[0] )
{
String str = t.getText().toString()
t.setText(str+"0")
}
if(obj ==b[1])
{
String str = t.getText().toString()
t.setText(str+"1")
} if(obj == b[2])
{
String str = t.getText().toString()
t.setText(str+"2")
}
if(obj == b[3])
{
String str = t.getText().toString()
t.setText(str+"3")
}if(obj == b[4])
{
String str = t.getText().toString()
t.setText(str+"4")
}if(obj == b[5])
{
String str = t.getText().toString()
t.setText(str+"5")
}if(obj == b[6])
{
String str = t.getText().toString()
t.setText(str+"6")
} if(obj == b[7])
{
String str = t.getText().toString()
t.setText(str+"7")
}if(obj == b[8])
{
String str = t.getText().toString()
t.setText(str+"8")
}if(obj == b[9])
{
String str = t.getText().toString()
t.setText(str+"9")
} if(obj == b[10])
{
dou = Double.parseDouble(t.getText().toString())
sing = "*"
dian=true
t.setText("")
}if(obj == b[11])
{
dou = Double.parseDouble(t.getText().toString())
sing = "-"
dian=true
t.setText("")
}if(obj == b[12])
{
dou = Double.parseDouble(t.getText().toString())
sing = "+"
dian=true
t.setText("")
}if(obj == b[13])
{
dou = Double.parseDouble(t.getText().toString())
sing = "/"
dian=true
t.setText("")
} if(obj == b[16])
{
String str = t.getText().toString()
char ch
String ing
String ing1=""
for(int i=0i<str.length()-1i++){
ch = str.charAt(i)
ing =String.valueOf(ch)
t.setText(ing1 += ing)
}
t.setText(ing1)
} if (obj == b[17])
{
t.setText("")
} if(obj == b[15])
{
if(dian==true)
{
t.setText(t.getText()+".")
}
dian=false
} if(obj == b[14])
{
dou1 = Double.parseDouble(t.getText().toString())
if(sing=="+")
{
t.setText(dou+dou1+"")
}
if(sing=="-")
{
t.setText(dou-dou1+"")
}
if(sing=="*")
{
t.setText(dou*dou1+"")
}
if(sing=="/")
{
t.setText(dou/dou1+"")
}
}
}
public static void main(String [] args){
LianXi a = new LianXi("我的计算器")
}
}
你可以看看这个 基本功能都已经实现了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)