十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
import javax.swing.*;
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:域名申請、網(wǎng)絡(luò)空間、營銷軟件、網(wǎng)站建設(shè)、南溪網(wǎng)站維護(hù)、網(wǎng)站推廣。
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
public class GUI extends JFrame implements ActionListener {//實現(xiàn)監(jiān)聽接口
JTextField field = new JTextField(15);
double num1=0,num2;
char op;
public GUI(){
setLayout(new BorderLayout(10,10));
JPanel p1 = new JPanel(new FlowLayout(FlowLayout.CENTER));
p1.add(new JLabel("計算框:"));
p1.add(field);
add(p1,BorderLayout.NORTH);
JPanel p2 = new JPanel(new GridLayout(4,1));
//添加按鈕
JButton bt1 = new JButton("1");
JButton bt2 = new JButton("2");
JButton bt3 = new JButton("3");
JButton bt4 = new JButton("4");
JButton bt5 = new JButton("5");
JButton bt6 = new JButton("6");
JButton bt7 = new JButton("7");
JButton bt8 = new JButton("8");
JButton bt9 = new JButton("9");
JButton bt0 = new JButton("0");
JButton btDel = new JButton("Del");
JButton btEqual = new JButton("=");
p2.add(bt1);p2.add(bt2);
p2.add(bt3); p2.add(bt4);
p2.add(bt5); p2.add(bt6);
p2.add(bt7);p2.add(bt8);
p2.add(bt9);p2.add(bt0);
p2.add(btDel);p2.add(btEqual);
add(p2,BorderLayout.CENTER);
JPanel p3 = new JPanel(new GridLayout(0,1));
JButton bta = new JButton("+");
JButton btb = new JButton("-");
JButton btc = new JButton("*");
JButton btd = new JButton("/");
p3.add(bta);p3.add(btb);
p3.add(btc);p3.add(btd);
add(p3,BorderLayout.EAST);
//添加監(jiān)聽器
bt1.addActionListener(this);
bt2.addActionListener(this);
bt3.addActionListener(this);
bt4.addActionListener(this);
bt5.addActionListener(this);
bt6.addActionListener(this);
bt7.addActionListener(this);
bt8.addActionListener(this);
bt9.addActionListener(this);
bt0.addActionListener(this);
bta.addActionListener(this);
btb.addActionListener(this);
btc.addActionListener(this);
btd.addActionListener(this);
btDel.addActionListener(this);
btEqual.addActionListener(this);
}
//事件的響應(yīng)
public void actionPerformed(ActionEvent e){
String str =e.getActionCommand();
String s1 = field.getText();
if(str!="+"str!="-"str!="*"str!="/"str!="="str!="Del"){//為數(shù)字按鈕時
field.setText(s1+str);
}
else if(str=="Del"){//刪除鍵
field.setText("");
str=null;
}
else if(str=="="){//等號按鈕
s1 =field.getText();
String t2 ="";
int flag=0;//標(biāo)記操作符的位置
if(s1.indexOf("+")!=-1)
flag = s1.indexOf("+");
if(s1.indexOf("-")!=-1)
flag = s1.indexOf("-");
if(s1.indexOf("*")!=-1)
flag = s1.indexOf("*");
if(s1.indexOf("/")!=-1)
flag = s1.indexOf("/");
for(int i=flag+1;is1.length();i++)
{
t2+=s1.charAt(i);//獲得第二個操作數(shù)
}
num2 =Double.parseDouble(t2);//將第二個操作數(shù)轉(zhuǎn)換為double
switch(op){
case '+': num1+=num2;break;
case '-': num1-=num2;break;
case '*': num1*=num2;break;
case '/': num1/=num2;break;
}
field.setText(s1+"="+num1+"");//顯示在文本框里
}
else{//加減乘除符號
num1 = Double.parseDouble(field.getText());
field.setText(s1+str);
op = str.charAt(0);//獲得操作符
}
}
public static void main(String[] args){
GUI frame = new GUI();
frame.setTitle("簡易計算器");
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300,200);
//frame.pack();
frame.setVisible(true);
}
}
不懂再問
你說的java源代碼是指編譯成的class文件前的java文件。
當(dāng)我們運行.java文件時,它會被系統(tǒng)編譯成.class文件,例如Test.java編譯之后就是Test.class,
源文件就是指Test.java文件,
一般部署項目時,有.class文件就可以發(fā)布運行了,但是如果想修改這個系統(tǒng),.class是不能修改的,要有.java文件才能修改
也可以上網(wǎng)去下反編譯軟件,就是能把.class文件大部分還原成.java文件的工具,但不是100%還原,而且如果不是正版的,小心有毒啊,什么的。
java計算器源程序
java計算器
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class calculation extends JFrame
{public calculation() /*構(gòu)造方法*/
{super("計數(shù)器");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initTextPanel(); /*文本框*/
initControlPanel(); /*控制鍵*/
initKeyPanel(); /*數(shù)字和運算符*/
Container pane = getContentPane();
pane.setLayout(new BorderLayout());
pane.add(TextPanel,BorderLayout.NORTH);
pane.add(ControlPanel,BorderLayout.CENTER);
pane.add(KeyPanel,BorderLayout.SOUTH);
pack();
try
{UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
catch(Exception ex)
{;} /*設(shè)置Windons觀感*/
SwingUtilities.updateComponentTreeUI(this);
setResizable(false);
setVisible(true);
}
private void initTextPanel() /*設(shè)置文本框*/
{ TextPanel=new JPanel();
TextPanel.setLayout(new FlowLayout());
Resultarea =new JTextField("0",25);
Resultarea.setEditable(false); /*設(shè)置不可編輯*/
Color color=Color.white;
Resultarea.setBackground(color); /*顏色*/
Resultarea.setHorizontalAlignment(JTextField.RIGHT); /*設(shè)置顯示位置*/
TextPanel.add(Resultarea);
}
private void initControlPanel() /*設(shè)置控制鍵*/
{ControlPanel=new JPanel();
ControlPanel.setLayout(new GridLayout(1,3,4,4));
JButton b1=new JButton("Backspace"); /*Backspace鍵*/
b1.setFont(font1);
b1.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{String s1=Resultarea.getText();
int l=s1.length();
Resultarea.setText(s1.substring(0 ,l-1));
}
});
ControlPanel.add(b1);
JButton b2=new JButton("CE"); /*CE鍵*/
b2.setFont(font1);
b2.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{Resultarea.setText("0");
isNew=true;
}
});
ControlPanel.add(b2);
JButton b3=new JButton("C"); /*C鍵*/
b3.setFont(font1);
b3.addActionListener(new ActionListener()
{public void actionPerformed(ActionEvent e)
{Resultarea.setText("0");
pnum="";
operation="";
isNew=true;
}
});
ControlPanel.add(b3);
}
private void initKeyPanel() /*設(shè)置數(shù)字鍵和運算符鍵*/
{String key[] = {"7","8","9","/","sqrt","4","5","6","*","%","1","2","3","-","1/x","0","+/-",".","+","="};
KeyPanel = new JPanel();
KeyPanel.setLayout(new GridLayout(4,5,4,4));
for(int i=0;i20;i++)
{String label = key[i];
JButton b = new JButton(label);
b.setActionCommand(key[i]);
b.setFont(font2);
KeyPanel.add(b);
b.addActionListener(new ActionListener() /*無名監(jiān)聽器*/
{public void actionPerformed(ActionEvent e)
{Key_actionPerformed(e);
}
});
}
}
public void Key_actionPerformed(ActionEvent e) /*數(shù)字鍵和運算符鍵無名監(jiān)聽器*/
{String s=(e.getActionCommand());
String st=Resultarea.getText();
if(s.equals("0")) /*輸入數(shù)為0*/
{if(st.equals("0"))
return;
else
{if(!isNew)
Resultarea.setText(st+"0");
else
Resultarea.setText("0");
}
isNew=false;
return;
}
if(s.equals("+/-")) /*輸入數(shù)為+/-*/
{double k=Double.parseDouble(st);
{if(k!=0)
display(-k);
}
return;
}
if(s.equals("1")||s.equals("2")||s.equals("3")||s.equals("4")||s.equals("5")||s.equals("6")||s.equals("7")||s.equals("8")||s.equals("9")) /*輸入1-9*/
{if(!isNew)
Resultarea.setText(st+s);
else
{ Resultarea.setText(s);
isNew=false;
}
return;
}
if(s.equals(".")) /*輸入小數(shù)點*/
{if(Resultarea.getText().indexOf(".")==-1) /*不存在小數(shù)點*/
{if(isNew)
{Resultarea.setText("0.");
isNew=false;
}
else
Resultarea.setText(st+".");
}
return;
}
isNew=true; /*按下運算符,輸入新的數(shù)*/
if(s.equals("="))
{compute(s);
operation="";
}
else
{if(s.equals("+")||s.equals("-")||s.equals("*")||s.equals("/")) /*二目運算符號*/
{if(operation.equals(""))
{pnum=Resultarea.getText();
operation=s;
}
else
compute(s);
}
else /*一目運算*/
{Count count1=new Count(Double.parseDouble(st));
if(s.equals("sqrt"))
{
display(count1.sqrt());
}
else
{if(s.equals("1/x"))
{if(st.equals("0"))
{Resultarea.setText("除數(shù)不能為0.");
operation="";
pnum="";
}
else
display(count1.reciprocal()); /*求倒數(shù)*/
}
else
display(Double.parseDouble(st)/100); /*輸入%,使當(dāng)前顯示的值除于100*/
}
}
}
}
private void compute(String s)
{if(s.equals("="))
{if(operation.equals(""))
return;
}
double data1=Double.parseDouble(pnum);
double data2=Double.parseDouble(Resultarea.getText());
Count count2=new Count(data1,data2); /*加減乘除計算*/
if(operation.equals("+"))
display((count2.plus()));
else
{if(operation.equals("-"))
display((count2.minus()));
else
{if(operation.equals("*"))
display((count2.multiply()));
else
if(operation.equals("/"))
{if(data2==0)
{Resultarea.setText("除數(shù)不能為0");
operation="";
pnum="";
return;
}
else
display((count2.divide()));
}
}
}
operation=""; /*符號為當(dāng)前符*/
pnum=Resultarea.getText();/*運算數(shù)為當(dāng)前文本數(shù)*/
}
public void display(double result) /*顯示輸出方法*/
{int a=(int)result;
if(a==result)
Resultarea.setText(String.valueOf(a));
else
Resultarea.setText(String.valueOf(result));
if(Resultarea.getText().equals("NaN"))
Resultarea.setText("輸入函數(shù)無效");
}
private JPanel TextPanel; /*文本框棉板*/
private JTextField Resultarea; /*文本框*/
private JPanel ControlPanel; /*控制鍵鍵面板*/
private JPanel KeyPanel; /*數(shù)字鍵和運算符鍵面板*/
private Font font1=new Font("Dialog",0, 10); /*控制鍵字體*/
private Font font2 = new Font("Dialog",0,10); /*數(shù)字鍵和符號鍵字體*/
private String pnum=""; /*前操作數(shù)*/
private boolean isNew=true; /*控制是否是新數(shù)*/
private String operation=""; /*運算符*/
}
class tester /*測試類*/
{
public static void main(String[] args)
{
new calculation();
}
}
看別人的代碼是一種痛苦的事情,不過只要你喜歡可以把這種痛苦的經(jīng)歷變成與一個陌生人的交流,看代碼首先要熟悉業(yè)務(wù),再次通過注釋尋求,模塊功能。其實最好的方式是你通過對某一塊代碼的閱讀,進(jìn)行繪制流程圖,VISIO畫起流程圖來很方便,找出數(shù)據(jù)流,再加上自己的閱讀的注釋。
在你閱讀學(xué)習(xí)的過程中,會發(fā)現(xiàn)其他coder的非常巧妙的做法,這是你應(yīng)該慶幸,因為你在進(jìn)步。閱讀是必須的。 --------------個人觀點僅供參考