java案例源代码_求java案例源代码 越多越好!
展開全部
import?java.awt.*;
import?java.awt.event.*;
import?java.lang.*;
import?javax.swing.*;
public?class?Counter?extends?Frame
{
//聲明三個面板的布局
GridLayout?gl1,gl2,gl3;
Panel?p0,p1,p2,p3;
JTextField?tf1;
TextField?tf2;
Button?b0,b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12,b13,b14,b15,b16,b17,b18,b19,b20,b21,b22,b23,b24,b25,b26;
StringBuffer?str;//顯示屏所32313133353236313431303231363533e78988e69d8331333337373662顯示的字符串
double?x,y;//x和y都是運(yùn)算數(shù)
int?z;//Z表示單擊了那一個運(yùn)算符.0表示"+",1表示"-",2表示"*",3表示"/"
static?double?m;//記憶的數(shù)字
public?Counter()
{
gl1=new?GridLayout(1,4,10,0);//實(shí)例化三個面板的布局
gl2=new?GridLayout(4,1,0,15);
gl3=new?GridLayout(4,5,10,15);
tf1=new?JTextField(27);//顯示屏
tf1.setHorizontalAlignment(JTextField.RIGHT);
tf1.setEnabled(false);
tf1.setText("0");
tf2=new?TextField(10);//顯示記憶的索引值
tf2.setEditable(false);
//實(shí)例化所有按鈕、設(shè)置其前景色并注冊監(jiān)聽器
b0=new?Button("Backspace");
b0.setForeground(Color.red);
b0.addActionListener(new?Bt());
b1=new?Button("CE");
b1.setForeground(Color.red);
b1.addActionListener(new?Bt());
b2=new?Button("C");
b2.setForeground(Color.red);
b2.addActionListener(new?Bt());
b3=new?Button("MC");
b3.setForeground(Color.red);
b3.addActionListener(new?Bt());
b4=new?Button("MR");
b4.setForeground(Color.red);
b4.addActionListener(new?Bt());
b5=new?Button("MS");
b5.setForeground(Color.red);
b5.addActionListener(new?Bt());
b6=new?Button("M+");
b6.setForeground(Color.red);
b6.addActionListener(new?Bt());
b7=new?Button("7");
b7.setForeground(Color.blue);
b7.addActionListener(new?Bt());
b8=new?Button("8");
b8.setForeground(Color.blue);
b8.addActionListener(new?Bt());
b9=new?Button("9");
b9.setForeground(Color.blue);
b9.addActionListener(new?Bt());
b10=new?Button("/");
b10.setForeground(Color.red);
b10.addActionListener(new?Bt());
b11=new?Button("sqrt");
b11.setForeground(Color.blue);
b11.addActionListener(new?Bt());
b12=new?Button("4");
b12.setForeground(Color.blue);
b12.addActionListener(new?Bt());
b13=new?Button("5");
b13.setForeground(Color.blue);
b13.addActionListener(new?Bt());
b14=new?Button("6");
b14.setForeground(Color.blue);
b14.addActionListener(new?Bt());
b15=new?Button("*");
b15.setForeground(Color.red);
b15.addActionListener(new?Bt());
b16=new?Button("%");
b16.setForeground(Color.blue);
b16.addActionListener(new?Bt());
b17=new?Button("1");
b17.setForeground(Color.blue);
b17.addActionListener(new?Bt());
b18=new?Button("2");
b18.setForeground(Color.blue);
b18.addActionListener(new?Bt());
b19=new?Button("3");
b19.setForeground(Color.blue);
b19.addActionListener(new?Bt());
b20=new?Button("-");
b20.setForeground(Color.red);
b20.addActionListener(new?Bt());
b21=new?Button("1/X");
b21.setForeground(Color.blue);
b21.addActionListener(new?Bt());
b22=new?Button("0");
b22.setForeground(Color.blue);
b22.addActionListener(new?Bt());
b23=new?Button("+/-");
b23.setForeground(Color.blue);
b23.addActionListener(new?Bt());
b24=new?Button(".");
b24.setForeground(Color.blue);
b24.addActionListener(new?Bt());
b25=new?Button("+");
b25.setForeground(Color.red);
b25.addActionListener(new?Bt());
b26=new?Button("=");
b26.setForeground(Color.red);
b26.addActionListener(new?Bt());
//實(shí)例化四個面板
p0=new?Panel();
p1=new?Panel();
p2=new?Panel();
p3=new?Panel();
//創(chuàng)建一個空字符串緩沖區(qū)
str=new?StringBuffer();
//添加面板p0中的組件和設(shè)置其在框架中的位置和大小
p0.add(tf1);
p0.setBounds(10,25,300,40);
//添加面板p1中的組件和設(shè)置其在框架中的位置和大小
p1.setLayout(gl1);
p1.add(tf2);
p1.add(b0);
p1.add(b1);
p1.add(b2);
p1.setBounds(10,65,300,25);
//添加面板p2中的組件并設(shè)置其的框架中的位置和大小
p2.setLayout(gl2);
p2.add(b3);
p2.add(b4);
p2.add(b5);
p2.add(b6);
p2.setBounds(10,110,40,150);
//添加面板p3中的組件并設(shè)置其在框架中的位置和大小
p3.setLayout(gl3);//設(shè)置p3的布局
p3.add(b7);
p3.add(b8);
p3.add(b9);
p3.add(b10);
p3.add(b11);
p3.add(b12);
p3.add(b13);
p3.add(b14);
p3.add(b15);
p3.add(b16);
p3.add(b17);
p3.add(b18);
p3.add(b19);
p3.add(b20);
p3.add(b21);
p3.add(b22);
p3.add(b23);
p3.add(b24);
p3.add(b25);
p3.add(b26);
p3.setBounds(60,110,250,150);
//設(shè)置框架中的布局為空布局并添加4個面板
setLayout(null);
add(p0);
add(p1);
add(p2);
add(p3);
setResizable(false);//禁止調(diào)整框架的大小
//匿名類關(guān)閉窗口
addWindowListener(new?WindowAdapter(){
public?void?windowClosing(WindowEvent?e1)
{
System.exit(0);
}
});
setBackground(Color.lightGray);
setBounds(100,100,320,280);
setVisible(true);
}
//構(gòu)造監(jiān)聽器
class?Bt?implements?ActionListener
{
public?void?actionPerformed(ActionEvent?e2)
{
try{
if(e2.getSource()==b1)//選擇"CE"清零
{
tf1.setText("0");//把顯示屏清零
str.setLength(0);//清空字符串緩沖區(qū)以準(zhǔn)備接收新的輸入運(yùn)算數(shù)
}
else?if(e2.getSource()==b2)//選擇"C"清零
{
tf1.setText("0");//把顯示屏清零
str.setLength(0);
}
else?if(e2.getSource()==b23)//單擊"+/-"選擇輸入的運(yùn)算數(shù)是正數(shù)還是負(fù)數(shù)
{
x=Double.parseDouble(tf1.getText().trim());
tf1.setText(""+(-x));
}
else?if(e2.getSource()==b25)//單擊加號按鈕獲得x的值和z的值并清空y的值
{
x=Double.parseDouble(tf1.getText().trim());
str.setLength(0);//清空緩沖區(qū)以便接收新的另一個運(yùn)算數(shù)
y=0d;
z=0;
}
else?if(e2.getSource()==b20)//單擊減號按鈕獲得x的值和z的值并清空y的值
{
x=Double.parseDouble(tf1.getText().trim());
str.setLength(0);
y=0d;
z=1;
}
else?if(e2.getSource()==b15)//單擊乘號按鈕獲得x的值和z的值并清空y的值
{
x=Double.parseDouble(tf1.getText().trim());
str.setLength(0);
y=0d;
z=2;
}
else?if(e2.getSource()==b10)//單擊除號按鈕獲得x的值和z的值并空y的值
{
x=Double.parseDouble(tf1.getText().trim());
str.setLength(0);
y=0d;
z=3;
}
else?if(e2.getSource()==b26)//單擊等號按鈕輸出計(jì)算結(jié)果
{
str.setLength(0);
switch(z)
{
case?0?:?tf1.setText(""+(x+y));break;
case?1?:?tf1.setText(""+(x-y));break;
case?2?:?tf1.setText(""+(x*y));break;
case?3?:?tf1.setText(""+(x/y));break;
}
}
else?if(e2.getSource()==b24)//單擊"."按鈕輸入小數(shù)
{
if(tf1.getText().trim().indexOf(′.′)!=-1)//判斷字符串中是否已經(jīng)包含了小數(shù)點(diǎn)
{
}
else//如果沒數(shù)點(diǎn)有小
{
if(tf1.getText().trim().equals("0"))//如果初時顯示為0
{
str.setLength(0);
tf1.setText((str.append("0"+e2.getActionCommand())).toString());
}
else?if(tf1.getText().trim().equals(""))//如果初時顯示為空則不做任何操作
{
}
else
{
tf1.setText(str.append(e2.getActionCommand()).toString());
}
}
y=0d;
}
else?if(e2.getSource()==b11)//求平方根
{
x=Double.parseDouble(tf1.getText().trim());
tf1.setText("數(shù)字格式異常");
if(x<0)
tf1.setText("負(fù)數(shù)沒有平方根");
else
tf1.setText(""+Math.sqrt(x));
str.setLength(0);
y=0d;
}
else?if(e2.getSource()==b16)//單擊了"%"按鈕
{
x=Double.parseDouble(tf1.getText().trim());
tf1.setText(""+(0.01*x));
str.setLength(0);
y=0d;
}
else?if(e2.getSource()==b21)//單擊了"1/X"按鈕
{
x=Double.parseDouble(tf1.getText().trim());
if(x==0)
{
tf1.setText("除數(shù)不能為零");
}
else
{
tf1.setText(""+(1/x));
}
str.setLength(0);
y=0d;
}
else?if(e2.getSource()==b3)//MC為清除內(nèi)存
{
m=0d;
tf2.setText("");
str.setLength(0);
}
else?if(e2.getSource()==b4)//MR為重新調(diào)用存儲的數(shù)據(jù)
{
if(tf2.getText().trim()!="")//有記憶數(shù)字
{
tf1.setText(""+m);
}
}
else?if(e2.getSource()==b5)//MS為存儲顯示的數(shù)據(jù)
{
m=Double.parseDouble(tf1.getText().trim());
tf2.setText("M");
tf1.setText("0");
str.setLength(0);
}
else?if(e2.getSource()==b6)//M+為將顯示的數(shù)字與已經(jīng)存儲的數(shù)據(jù)相加要查看新的數(shù)字單擊MR
{
m=m+Double.parseDouble(tf1.getText().trim());
}
else//選擇的是其他的按鈕
{
if(e2.getSource()==b22)//如果選擇的是"0"這個數(shù)字鍵
{
if(tf1.getText().trim().equals("0"))//如果顯示屏顯示的為零不做操作
{
}
else
{
tf1.setText(str.append(e2.getActionCommand()).toString());
y=Double.parseDouble(tf1.getText().trim());
}
}
else?if(e2.getSource()==b0)//選擇的是“BackSpace”按鈕
{
if(!tf1.getText().trim().equals("0"))//如果顯示屏顯示的不是零
{
if(str.length()!=1)
{
tf1.setText(str.delete(str.length()-1,str.length()).toString());//可能拋出字符串越界異常
}
else
{
tf1.setText("0");
str.setLength(0);
}
}
y=Double.parseDouble(tf1.getText().trim());
}
else//其他的數(shù)字鍵
{
tf1.setText(str.append(e2.getActionCommand()).toString());
y=Double.parseDouble(tf1.getText().trim());
}
}
}
catch(NumberFormatException?e){
tf1.setText("數(shù)字格式異常");
}
catch(StringIndexOutOfBoundsException?e){
tf1.setText("字符串索引越界");
}
}
}
public?static?void?main(String?args[])
{
new?Counter();
}
}
總結(jié)
以上是生活随笔為你收集整理的java案例源代码_求java案例源代码 越多越好!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用java自带的日志管理_java日志
- 下一篇: c语言ddos攻击源代码(ddos攻击v