import java.awt.*;
因?yàn)榕驼嬲\,有更多的客戶和我們聚集在一起,為了共同目標(biāo),創(chuàng)新互聯(lián)公司在工作上密切配合,從創(chuàng)業(yè)型企業(yè)到如今不斷成長,要感謝客戶對我們的高要求,讓我們敢于面對挑戰(zhàn),才有今天的進(jìn)步與發(fā)展。從網(wǎng)站到重慶小程序開發(fā),軟件開發(fā),app軟件開發(fā)公司,十多年企業(yè)網(wǎng)站建設(shè)服務(wù)經(jīng)驗(yàn),為企業(yè)提供網(wǎng)站設(shè)計(jì),綿陽服務(wù)器托管一條龍服務(wù).為企業(yè)提供營銷型網(wǎng)站建設(shè),按需網(wǎng)站開發(fā),原創(chuàng)設(shè)計(jì),十多年品質(zhì),值得您的信賴.
import java.awt.event.*;
//俄羅斯方塊類
public class ERS_Block extends Frame{
public static boolean isPlay=false;
public static int level=1,score=0;
public static TextField scoreField,levelField;
public static MyTimer timer;
GameCanvas gameScr;
public static void main(String[] argus){
ERS_Block ers = new ERS_Block("俄羅斯方塊游戲 V1.0 Author:Vincent");
WindowListener win_listener = new WinListener();
ers.addWindowListener(win_listener);
}
//俄羅斯方塊類的構(gòu)造方法
ERS_Block(String title){
super(title);
setSize(600,480);
setLayout(new GridLayout(1,2));
gameScr = new GameCanvas();
gameScr.addKeyListener(gameScr);
timer = new MyTimer(gameScr);
timer.setDaemon(true);
timer.start();
timer.suspend();
add(gameScr);
Panel rightScr = new Panel();
rightScr.setLayout(new GridLayout(2,1,0,30));
rightScr.setSize(120,500);
add(rightScr);
//右邊信息窗體的布局
MyPanel infoScr = new MyPanel();
infoScr.setLayout(new GridLayout(4,1,0,5));
infoScr.setSize(120,300);
rightScr.add(infoScr);
//定義標(biāo)簽和初始值
Label scorep = new Label("分?jǐn)?shù):",Label.LEFT);
Label levelp = new Label("級數(shù):",Label.LEFT);
scoreField = new TextField(8);
levelField = new TextField(8);
scoreField.setEditable(false);
levelField.setEditable(false);
infoScr.add(scorep);
infoScr.add(scoreField);
infoScr.add(levelp);
infoScr.add(levelField);
scorep.setSize(new Dimension(20,60));
scoreField.setSize(new Dimension(20,60));
levelp.setSize(new Dimension(20,60));
levelField.setSize(new Dimension(20,60));
scoreField.setText("0");
levelField.setText("1");
//右邊控制按鈕窗體的布局
MyPanel controlScr = new MyPanel();
controlScr.setLayout(new GridLayout(5,1,0,5));
rightScr.add(controlScr);
//定義按鈕play
Button play_b = new Button("開始游戲");
play_b.setSize(new Dimension(50,200));
play_b.addActionListener(new Command(Command.button_play,gameScr));
//定義按鈕Level UP
Button level_up_b = new Button("提高級數(shù)");
level_up_b.setSize(new Dimension(50,200));
level_up_b.addActionListener(new Command(Command.button_levelup,gameScr));
//定義按鈕Level Down
Button level_down_b =new Button("降低級數(shù)");
level_down_b.setSize(new Dimension(50,200));
level_down_b.addActionListener(new Command(Command.button_leveldown,gameScr));
//定義按鈕Level Pause
Button pause_b =new Button("游戲暫停");
pause_b.setSize(new Dimension(50,200));
pause_b.addActionListener(new Command(Command.button_pause,gameScr));
//定義按鈕Quit
Button quit_b = new Button("退出游戲");
quit_b.setSize(new Dimension(50,200));
quit_b.addActionListener(new Command(Command.button_quit,gameScr));
controlScr.add(play_b);
controlScr.add(level_up_b);
controlScr.add(level_down_b);
controlScr.add(pause_b);
controlScr.add(quit_b);
setVisible(true);
gameScr.requestFocus();
}
}
//重寫MyPanel類,使Panel的四周留空間
class MyPanel extends Panel{
public Insets getInsets(){
return new Insets(30,50,30,50);
}
}
//游戲畫布類
class GameCanvas extends Canvas implements KeyListener{
final int unitSize = 30; //小方塊邊長
int rowNum; //正方格的行數(shù)
int columnNum; //正方格的列數(shù)
int maxAllowRowNum; //允許有多少行未削
int blockInitRow; //新出現(xiàn)塊的起始行坐標(biāo)
int blockInitCol; //新出現(xiàn)塊的起始列坐標(biāo)
int [][] scrArr; //屏幕數(shù)組
Block b; //對方快的引用
//畫布類的構(gòu)造方法
GameCanvas(){
rowNum = 15;
columnNum = 10;
maxAllowRowNum = rowNum - 2;
b = new Block(this);
blockInitRow = rowNum - 1;
blockInitCol = columnNum/2 - 2;
scrArr = new int [32][32];
}
//初始化屏幕,并將屏幕數(shù)組清零的方法
void initScr(){
for(int i=0;irowNum;i++)
for (int j=0; jcolumnNum;j++)
{ scrArr[i][j]=0; }
b.reset();
repaint();
}
//重新刷新畫布方法
public void paint(Graphics g){
for(int i = 0; i rowNum; i++)
for(int j = 0; j columnNum; j++)
drawUnit(i,j,scrArr[i][j]);
}
//畫方塊的方法
public void drawUnit(int row,int col,int type){
scrArr[row][col] = type;
Graphics g = getGraphics();
switch(type){ //表示畫方快的方法
case 0: g.setColor(Color.black);break; //以背景為顏色畫
case 1: g.setColor(Color.blue);break; //畫正在下落的方塊
case 2: g.setColor(Color.magenta);break; //畫已經(jīng)落下的方法
}
g.fill3DRect(col*unitSize,getSize().height-(row+1)*unitSize,unitSize,unitSize,true);
g.dispose();
}
public Block getBlock(){
return b; //返回block實(shí)例的引用
}
//返回屏幕數(shù)組中(row,col)位置的屬性值
public int getScrArrXY(int row,int col){
if (row 0 || row = rowNum || col 0 || col = columnNum)
return(-1);
else
return(scrArr[row][col]);
}
//返回新塊的初始行坐標(biāo)方法
public int getInitRow(){
return(blockInitRow); //返回新塊的初始行坐標(biāo)
}
//返回新塊的初始列坐標(biāo)方法
public int getInitCol(){
return(blockInitCol); //返回新塊的初始列坐標(biāo)
}
//滿行刪除方法
void deleteFullLine(){
int full_line_num = 0;
int k = 0;
for (int i=0;irowNum;i++){
boolean isfull = true;
L1:for(int j=0;jcolumnNum;j++)
if(scrArr[i][j] == 0){
k++;
isfull = false;
break L1;
}
if(isfull) full_line_num++;
if(k!=0 k-1!=i !isfull)
for(int j = 0; j columnNum; j++){
if (scrArr[i][j] == 0)
drawUnit(k-1,j,0);
else
drawUnit(k-1,j,2);
scrArr[k-1][j] = scrArr[i][j];
}
}
for(int i = k-1 ;i rowNum; i++){
for(int j = 0; j columnNum; j++){
drawUnit(i,j,0);
scrArr[i][j]=0;
}
}
ERS_Block.score += full_line_num;
ERS_Block.scoreField.setText(""+ERS_Block.score);
}
//判斷游戲是否結(jié)束方法
boolean isGameEnd(){
for (int col = 0 ; col columnNum; col ++){
if(scrArr[maxAllowRowNum][col] !=0)
return true;
}
return false;
}
public void keyTyped(KeyEvent e){
}
public void keyReleased(KeyEvent e){
}
//處理鍵盤輸入的方法
public void keyPressed(KeyEvent e){
if(!ERS_Block.isPlay)
return;
switch(e.getKeyCode()){
case KeyEvent.VK_DOWN:b.fallDown();break;
case KeyEvent.VK_LEFT:b.leftMove();break;
case KeyEvent.VK_RIGHT:b.rightMove();break;
case KeyEvent.VK_SPACE:b.leftTurn();break;
}
}
}
//處理控制類
class Command implements ActionListener{
static final int button_play = 1; //給按鈕分配編號
static final int button_levelup = 2;
static final int button_leveldown = 3;
static final int button_quit = 4;
static final int button_pause = 5;
static boolean pause_resume = true;
int curButton; //當(dāng)前按鈕
GameCanvas scr;
//控制按鈕類的構(gòu)造方法
Command(int button,GameCanvas scr){
curButton = button;
this.scr=scr;
}
//按鈕執(zhí)行方法
public void actionPerformed (ActionEvent e){
switch(curButton){
case button_play:if(!ERS_Block.isPlay){
scr.initScr();
ERS_Block.isPlay = true;
ERS_Block.score = 0;
ERS_Block.scoreField.setText("0");
ERS_Block.timer.resume();
}
scr.requestFocus();
break;
case button_levelup:if(ERS_Block.level 10){
ERS_Block.level++;
ERS_Block.levelField.setText(""+ERS_Block.level);
ERS_Block.score = 0;
ERS_Block.scoreField.setText(""+ERS_Block.score);
}
scr.requestFocus();
break;
case button_leveldown:if(ERS_Block.level 1){
ERS_Block.level--;
ERS_Block.levelField.setText(""+ERS_Block.level);
ERS_Block.score = 0;
ERS_Block.scoreField.setText(""+ERS_Block.score);
}
scr.requestFocus();
break;
case button_pause:if(pause_resume){
ERS_Block.timer.suspend();
pause_resume = false;
}else{
ERS_Block.timer.resume();
pause_resume = true;
}
scr.requestFocus();
break;
case button_quit:System.exit(0);
}
}
}
//方塊類
class Block {
static int[][] pattern = {
{0x0f00,0x4444,0x0f00,0x4444},//用十六進(jìn)至表示,本行表示長條四種狀態(tài)
{0x04e0,0x0464,0x00e4,0x04c4},
{0x4620,0x6c00,0x4620,0x6c00},
{0x2640,0xc600,0x2640,0xc600},
{0x6220,0x1700,0x2230,0x0740},
{0x6440,0x0e20,0x44c0,0x8e00},
{0x0660,0x0660,0x0660,0x0660}
};
int blockType; //塊的模式號(0-6)
int turnState; //塊的翻轉(zhuǎn)狀態(tài)(0-3)
int blockState; //快的下落狀態(tài)
int row,col; //塊在畫布上的坐標(biāo)
GameCanvas scr;
//塊類的構(gòu)造方法
Block(GameCanvas scr){
this.scr = scr;
blockType = (int)(Math.random() * 1000)%7;
turnState = (int)(Math.random() * 1000)%4;
blockState = 1;
row = scr.getInitRow();
col = scr.getInitCol();
}
//重新初始化塊,并顯示新塊
public void reset(){
blockType = (int)(Math.random() * 1000)%7;
turnState = (int)(Math.random() * 1000)%4;
blockState = 1;
row = scr.getInitRow();
col = scr.getInitCol();
dispBlock(1);
}
//實(shí)現(xiàn)“塊”翻轉(zhuǎn)的方法
public void leftTurn(){
if(assertValid(blockType,(turnState + 1)%4,row,col)){
dispBlock(0);
turnState = (turnState + 1)%4;
dispBlock(1);
}
}
//實(shí)現(xiàn)“塊”的左移的方法
public void leftMove(){
if(assertValid(blockType,turnState,row,col-1)){
dispBlock(0);
col--;
dispBlock(1);
}
}
//實(shí)現(xiàn)塊的右移
public void rightMove(){
if(assertValid(blockType,turnState,row,col+1)){
dispBlock(0);
col++;
dispBlock(1);
}
}
//實(shí)現(xiàn)塊落下的操作的方法
public boolean fallDown(){
if(blockState == 2)
return(false);
if(assertValid(blockType,turnState,row-1,col)){
dispBlock(0);
row--;
dispBlock(1);
return(true);
}else{
blockState = 2;
dispBlock(2);
return(false);
}
}
//判斷是否正確的方法
boolean assertValid(int t,int s,int row,int col){
int k = 0x8000;
for(int i = 0; i 4; i++){
for(int j = 0; j 4; j++){
if((int)(pattern[t][s]k) != 0){
int temp = scr.getScrArrXY(row-i,col+j);
if (temp0||temp==2)
return false;
}
k = k 1;
}
}
return true;
}
//同步顯示的方法
public synchronized void dispBlock(int s){
int k = 0x8000;
for (int i = 0; i 4; i++){
for(int j = 0; j 4; j++){
if(((int)pattern[blockType][turnState]k) != 0){
scr.drawUnit(row-i,col+j,s);
}
k=k1;
}
}
}
}
//定時(shí)線程
class MyTimer extends Thread{
GameCanvas scr;
public MyTimer(GameCanvas scr){
this.scr = scr;
}
public void run(){
while(true){
try{
sleep((10-ERS_Block.level + 1)*100);
}
catch(InterruptedException e){}
if(!scr.getBlock().fallDown()){
scr.deleteFullLine();
if(scr.isGameEnd()){
ERS_Block.isPlay = false;
suspend();
}else
scr.getBlock().reset();
}
}
}
}
class WinListener extends WindowAdapter{
public void windowClosing (WindowEvent l){
System.exit(0);
}
}
比較完整的Java計(jì)算器
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
public class calculator extends JFrame implements ActionListener
{//這里我把JFrame寫成Frame,這個(gè)錯(cuò)誤找了好久
JFrame frame;
private JButton jia=new JButton("+");
private JButton jian=new JButton("-");
private JButton cheng=new JButton("*");
private JButton chu=new JButton("/");
private JButton qiuyi=new JButton("%");
private JButton deng=new JButton("=");
private JButton fu=new JButton("+/-");
private JButton dian=new JButton(".");
private JButton kai=new JButton("sqrt");
private JButton diao=new JButton("1/x");
private JButton aa=new JButton("A");
private JButton bb=new JButton("B");
private JButton cc=new JButton("C");
private JButton dd=new JButton("D");
private JButton ee=new JButton("E");
private JButton ff=new JButton("F");
private TextField k1=new TextField();
private objConversion convert = new objConversion();
JMenuItem copy,paste,s,t,help,about,me;
JRadioButton sixteen,ten,eight,two;
JButton backspace,ce,c,num0,num1,num2,num3,num4,num5,num6,num7,num8,num9;
Container cp;
JTextField text;
String copycontent="";
boolean clickable=true,clear=true;
int all=0;
double qian;
String fuhao;
int jin=10,first=1;
public calculator()
{
setTitle("計(jì)算器-楊彩制作");
setSize(400,300);
setLocation(250,200);
text=new JTextField(25);
// text.setEnabled(false);
text.setText("0.");
text.setHorizontalAlignment(JTextField.RIGHT);//從右到左
JPanel cp1=new JPanel();
JPanel cp2=new JPanel();
JPanel cp3=new JPanel();
cp=getContentPane();
cp.add(cp1,"North");
cp.add(cp2,"Center");
cp.add(cp3,"South");
cp1.setLayout(new GridLayout(1,6));
cp2.setLayout(new GridLayout(2,4));
cp3.setLayout(new GridLayout(6,6));
sixteen=new JRadioButton("十六進(jìn)制");
sixteen.setVisible(false);
ten=new JRadioButton("十進(jìn)制",true);
ten.setVisible(false);
eight=new JRadioButton("八進(jìn)制");
eight.setVisible(false);
two=new JRadioButton("二進(jìn)制");
two.setVisible(false);
sixteen.addActionListener(this);
ten.addActionListener(this);
eight.addActionListener(this);
two.addActionListener(this);
ButtonGroup btg=new ButtonGroup();
btg.add(sixteen);
btg.add(ten);
btg.add(eight);
btg.add(two);
JTextField t3=new JTextField(25);
cp1.add(text);
// text.setEnabled(false);
text.setEditable(false);
text.setBackground(new Color(255, 255, 255));
cp2.add(sixteen);
cp2.add(ten);
cp2.add(eight);
cp2.add(two);
backspace=new JButton("Backspace");
backspace.setForeground(new Color(255,0,0));
backspace.addActionListener(this);
ce=new JButton("CE");
ce.setForeground(new Color(255,0,0));
ce.addActionListener(this);
c=new JButton("C");
c.setForeground(new Color(255,0,0));
c.addActionListener(this);
k1.setVisible(false);
cp2.add(k1);
cp2.add(backspace);
cp2.add(ce);
cp2.add(c);
num0=new JButton("0");
num1=new JButton("1");
num2=new JButton("2");
num3=new JButton("3");
num4=new JButton("4");
num5=new JButton("5");
num6=new JButton("6");
num7=new JButton("7");
num8=new JButton("8");
num9=new JButton("9");
cp3.add(num7);
num7.addActionListener(this);
cp3.add(num8);
num8.addActionListener(this);
cp3.add(num9);
num9.addActionListener(this);
cp3.add(chu);
chu.setForeground(new Color(255,0,0));
chu.addActionListener(this);
cp3.add(kai);
kai.addActionListener(this);
cp3.add(num4);
num4.addActionListener(this);
cp3.add(num5);
num5.addActionListener(this);
cp3.add(num6);
num6.addActionListener(this);
cp3.add(cheng);
cheng.setForeground(new Color(255,0,0));
cheng.addActionListener(this);
cp3.add(qiuyi);
qiuyi.addActionListener(this);
cp3.add(num1);
num1.addActionListener(this);
cp3.add(num2);
num2.addActionListener(this);
cp3.add(num3);
num3.addActionListener(this);
cp3.add(jian);
jian.setForeground(new Color(255,0,0));
jian.addActionListener(this);
cp3.add(diao);
diao.addActionListener(this);
cp3.add(num0);
num0.addActionListener(this);
cp3.add(fu);
fu.addActionListener(this);
cp3.add(dian);
dian.addActionListener(this);
cp3.add(jia);
jia.setForeground(new Color(255,0,0));
jia.addActionListener(this);
cp3.add(deng);
deng.setForeground(new Color(255,0,0));
deng.addActionListener(this);
cp3.add(aa);
aa.addActionListener(this);
cp3.add(bb);
bb.addActionListener(this);
cp3.add(cc);
cc.addActionListener(this);
cp3.add(dd);
dd.addActionListener(this);
cp3.add(ee);
ee.addActionListener(this);
cp3.add(ff);
ff.addActionListener(this);
aa.setVisible(false);
bb.setVisible(false);
cc.setVisible(false);
dd.setVisible(false);
ee.setVisible(false);
ff.setVisible(false);
JMenuBar mainMenu = new JMenuBar();
setJMenuBar(mainMenu);
JMenu editMenu = new JMenu("編輯");
JMenu viewMenu = new JMenu("查看");
JMenu helpMenu = new JMenu("幫助");
mainMenu.add(editMenu);
mainMenu.add(viewMenu);
mainMenu.add(helpMenu);
copy = new JMenuItem(" 復(fù)制");
paste = new JMenuItem(" 粘貼");
KeyStroke copyks=KeyStroke.getKeyStroke(KeyEvent.VK_C,Event.CTRL_MASK);
copy.setAccelerator(copyks);//設(shè)置退出菜單選項(xiàng)加上快捷鍵
KeyStroke pasteks=KeyStroke.getKeyStroke(KeyEvent.VK_V,Event.CTRL_MASK);
paste.setAccelerator(pasteks);//設(shè)置退出菜單選項(xiàng)加上快捷鍵
editMenu.add(copy);
editMenu.add(paste);
copy.addActionListener(this);
paste.addActionListener(this);
t = new JMenuItem("●標(biāo)準(zhǔn)型");
s = new JMenuItem(" 科學(xué)型");
viewMenu.add(t);
viewMenu.add(s);
t.addActionListener(this);
s.addActionListener(this);
help = new JMenuItem(" 幫助主題");
about = new JMenuItem(" 關(guān)于計(jì)算器");
me = new JMenuItem(" 作者主頁");
helpMenu.add(help);
helpMenu.add(about);
helpMenu.add(me);
help.addActionListener(this);
about.addActionListener(this);
me.addActionListener(this);
addWindowListener(new WindowDestroyer());//結(jié)束窗口
}
public void actionPerformed(ActionEvent e)
{//響應(yīng)動作代碼
if(first==1)
text.setText("");
first=0;//第一次把文本框0.清空
Object temp = e.getSource();
if(temp==copy)
{
copycontent = text.getText();
}
if(temp==paste)
{
text.setText(text.getText()+copycontent);
}
if(temp==t)
{//標(biāo)準(zhǔn)
sixteen.setVisible(false);
ten.setVisible(false);
eight.setVisible(false);
two.setVisible(false);
t.setText("●標(biāo)準(zhǔn)型");
s.setText(" 科學(xué)型");
aa.setVisible(false);
bb.setVisible(false);
cc.setVisible(false);
dd.setVisible(false);
ee.setVisible(false);
ff.setVisible(false);
}
if(temp==s)
{//科學(xué)
sixteen.setVisible(true);
ten.setVisible(true);
eight.setVisible(true);
two.setVisible(true);
t.setText(" 標(biāo)準(zhǔn)型");
s.setText("●科學(xué)型");
aa.setVisible(true);
bb.setVisible(true);
cc.setVisible(true);
dd.setVisible(true);
ee.setVisible(true);
ff.setVisible(true);
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
}
if(temp==help)
{ //打開系統(tǒng)幫助文件 要查資料
try
{
String filePath = "C:/WINDOWS/Help/calc.chm";
Runtime.getRuntime().exec("cmd.exe /c "+filePath);
}
catch(Exception eeee)
{
System.out.println("打開系統(tǒng)的計(jì)算器出錯(cuò)");
}
}
if(temp==about)
{
JOptionPane.showMessageDialog(frame," Java計(jì)算器\n 楊彩 制作\n\n ","關(guān)于計(jì)算器",JOptionPane.INFORMATION_MESSAGE); ;
}
if(temp==me)
{
try
{
Process p = Runtime.getRuntime().exec("explorer ");
}
catch(Exception eeee)
{
System.out.println("打開指定網(wǎng)頁出錯(cuò)");
}
}
try
{
if(temp==sixteen)
{
String hex=text.getText();
int inthex=Integer.parseInt(hex,jin);//先把數(shù)變?yōu)?0進(jìn)制
text.setText(convert.decHex(inthex)) ;
jin=16;
aa.setEnabled(true);
bb.setEnabled(true);
cc.setEnabled(true);
dd.setEnabled(true);
ee.setEnabled(true);
ff.setEnabled(true);
num2.setEnabled(true);
num3.setEnabled(true);
num4.setEnabled(true);
num5.setEnabled(true);
num6.setEnabled(true);
num7.setEnabled(true);
num8.setEnabled(true);
num9.setEnabled(true);
}
if(temp==eight)
{
String oct =text.getText();
int intoct=Integer.parseInt(oct,jin);
text.setText(convert.decOct(intoct)) ;
jin=8;
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
num2.setEnabled(true);
num3.setEnabled(true);
num4.setEnabled(true);
num5.setEnabled(true);
num6.setEnabled(true);
num7.setEnabled(true);
num8.setEnabled(false);
num9.setEnabled(false);
}
if(temp==two)
{
String bin=text.getText();
int intbin=Integer.parseInt(bin,jin);
text.setText(convert.decBin(intbin));
jin=2;
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
num2.setEnabled(false);
num3.setEnabled(false);
num4.setEnabled(false);
num5.setEnabled(false);
num6.setEnabled(false);
num7.setEnabled(false);
num8.setEnabled(false);
num9.setEnabled(false);
}
if(temp==ten)
{
String dec=text.getText();
int intdec=Integer.parseInt(dec,jin);
// text.setText(convert.decDec(intdec)); //本句會把123變成321
text.setText(intdec+"");
jin=10;
aa.setEnabled(false);
bb.setEnabled(false);
cc.setEnabled(false);
dd.setEnabled(false);
ee.setEnabled(false);
ff.setEnabled(false);
num2.setEnabled(true);
num3.setEnabled(true);
num4.setEnabled(true);
num5.setEnabled(true);
num6.setEnabled(true);
num7.setEnabled(true);
num8.setEnabled(true);
num9.setEnabled(true);
}
}
catch(Exception ee)
{
System.out.println("轉(zhuǎn)換出錯(cuò),可能你沒有輸入任何字符");
text.setText("轉(zhuǎn)換出錯(cuò)");
clear=false;
}
if(temp==backspace)
{//退格
String s = text.getText();
text.setText("");
for (int i = 0; i s.length() - 1; i++)
{
char a = s.charAt(i);
text.setText(text.getText() + a);
}
}
if (temp==ce)
{
text.setText("0.");
clear=true;
first=1;
}
if (temp==c)
{
text.setText("0."); ;
clear=true;
first=1;
}
if(temp==num0)
{
if(clear==false)//判斷是否點(diǎn)擊了符號位
text.setText("");
text.setText(text.getText()+"0");
}
if(temp==num1)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"1");
clear=true;//第二次不在清空(前二句)
}
if(temp==num2)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"2");
clear=true;
}
if(temp==num3)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"3");
clear=true;
}
if(temp==num4)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"4");
clear=true;
}
if(temp==num5)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"5");
clear=true;
}
if(temp==num6)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"6");
clear=true;
}
if(temp==num7)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"7");
clear=true;
}
if(temp==num8)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"8");
clear=true;
}
if(temp==num9)
{
if(clear==false)
text.setText("");
text.setText(text.getText()+"9");
clear=true;
}
if(temp==aa)
{
text.setText(text.getText()+"A");
}
if(temp==bb)
{
text.setText(text.getText()+"B");
}
if(temp==cc)
{
text.setText(text.getText()+"C");
}
if(temp==dd)
{
text.setText(text.getText()+"D");
}
if(temp==ee)
{
text.setText(text.getText()+"E");
}
if(temp==ff)
{
text.setText(text.getText()+"F");
}
if(temp==dian)
{
clickable=true;
for (int i = 0; i text.getText().length(); i++)
if ('.' == text.getText().charAt(i))
{
clickable=false;
break;
} //第一層判斷是否里面含有小數(shù)點(diǎn);
if(clickable==true)//第二壇判斷
text.setText(text.getText()+".");
}
try
{
if(temp==jia)
{//加法
qian=Double.parseDouble(text.getText());
fuhao="+";
clear=false;
}
if(temp==jian)
{
qian=Double.parseDouble(text.getText());
fuhao="-";
clear=false;
;
}
if(temp==cheng)
{
qian=Double.parseDouble(text.getText());
fuhao="*";
clear=false;
}
if(temp==chu)
{
qian=Double.parseDouble(text.getText());
fuhao="/";
clear=false;
}
if(temp==deng)
{
double ss=Double.parseDouble(text.getText());
text.setText("");
if(fuhao=="+")
text.setText(qian+ss+"");
if(fuhao=="-")
text.setText(qian-ss+"");
if(fuhao=="*")
text.setText(qian*ss+"");
if(fuhao=="/")
text.setText(qian/ss+"");
clear=false;//要清空前一次的數(shù)據(jù)
;
}
if(temp==kai)
{
String s = text.getText();
if (s.charAt(0) == '-')
{
text.setText("負(fù)數(shù)不能開根號");
}
else
text.setText(Double.toString(java.lang.Math.sqrt(Double.parseDouble(text.getText()))));
clear=false;
}
if(temp==diao)
{
if (text.getText().charAt(0) == '0'text.getText().length() == 1)
{
text.setText("除數(shù)不能為零");
}
else
{
boolean isDec = true;
int i, j, k;
String s = Double.toString(1 / Double.parseDouble(text.getText()));
for (i = 0; i s.length(); i++)
if (s.charAt(i) == '.')
break;
for (j = i + 1; j s.length(); j++)
if (s.charAt(j) != '0')
{
isDec = false;
break;
}
if (isDec == true)
{
String stemp = "";
for (k = 0; k i; k++)
stemp += s.charAt(k);
text.setText(stemp);
}
else
text.setText(s);
}
clear=false;
}
if(temp==qiuyi)
{
text.setText("0");
clear=false;
}
if (temp == fu)
{ //導(dǎo)師,此方法參考書中例子
boolean isNumber = true;
String s = text.getText();
for (int i = 0; i s.length(); i++)
if (! (s.charAt(i) = '0' s.charAt(i) = '9' || s.charAt(i) == '.' ||
s.charAt(i) == '-'))
{
isNumber = false;
break;
}
if (isNumber == true)
{
//如果當(dāng)前字符串首字母有'-'號,代表現(xiàn)在是個(gè)負(fù)數(shù),再按下時(shí),則將首符號去掉
if (s.charAt(0) == '-')
{
text.setText("");
for (int i = 1; i s.length(); i++)
{
char a = s.charAt(i);
text.setText(text.getText() + a);
}
}
//如果當(dāng)前字符串第一個(gè)字符不是符號,則添加一個(gè)符號在首字母處
else
text.setText('-' + s);
}
}
}
catch(Exception eee)
{
System.out.println("運(yùn)算時(shí),首先輸入數(shù)字或字符");
text.setText("運(yùn)算出錯(cuò)");
clear=false;
}
}
class WindowDestroyer extends WindowAdapter
{//退出窗口動作
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
class objConversion
{//導(dǎo)師,本進(jìn)制類參考了CSMD類轉(zhuǎn)換例子
public void objConversion ()
{
}
public String decDec (int decNum)
{//10
String strDecNum = Integer.toString(decNum);
for (int i = strDecNum.length(); i 3; i++)
{
strDecNum = "0" + strDecNum;
}
// return strDecNum;
return invert (strDecNum, 5);
}
public String decHex (int decNum)
{//10 to 16
String strHexNum = "";
int currentNum = 0;
while (decNum != 0)
{
if (decNum 15)
{
currentNum = decNum % 16;
decNum /= 16;
}
else
{
currentNum = decNum;
decNum = 0;
}
switch (currentNum)
{
case 15: strHexNum += "F";
break;
case 14: strHexNum += "E";
break;
case 13: strHexNum += "D";
break;
case 12: strHexNum += "C";
break;
case 11: strHexNum += "B";
break;
case 10: strHexNum += "A";
break;
default: strHexNum += Integer.toString(currentNum);
break;
}
}
return invert (strHexNum, 2);
}
public String decOct (int decNum)
{//10 to 8
String strOctNum = "";
while (decNum != 0)
{
if (decNum 7)
{
strOctNum += Integer.toString(decNum % 8);
decNum /= 8;
}
else
{
strOctNum += Integer.toString(decNum);
decNum = 0;
}
}
return invert (strOctNum, 3);
}
public String decBin (int decNum)
{//10 to 2
String strBinNum = "";
while (decNum != 0)
{
if (decNum 1)
{
strBinNum += Integer.toString(decNum % 2);
decNum /= 2;
}
else
{
strBinNum += Integer.toString(decNum);
decNum = 0;
}
}
return invert (strBinNum, 8);
}
private String invert (String strNum, int minLength) //轉(zhuǎn)換長度
{
String answer = "";
int length = strNum.length();
if (length minLength)
{
for (int padding = (minLength - length); padding 0; padding--)
{
answer += "0";
}
}
for (int i = length; i 0; i--)
{
answer += strNum.charAt (i - 1);
}
return answer;
}
}
public static void main(String arg[])//產(chǎn)生窗口
{
calculator win = new calculator();
win.setVisible(true);
}
}
java課程設(shè)計(jì)題目及代碼分別是:
1、題目:計(jì)算器。設(shè)計(jì)內(nèi)容是設(shè)計(jì)一個(gè)圖形界面(GUI)的計(jì)算器應(yīng)用程序,完成簡單的算術(shù)運(yùn)算。
設(shè)計(jì)要求是設(shè)計(jì)的計(jì)算器應(yīng)用程序可以完成家法、減法、乘法、除法和取余運(yùn)算。且有小數(shù)點(diǎn)、正負(fù)號、求倒數(shù)、退格和清零功能。
2、代碼:
數(shù)字按鈕NumberButton類如下:
import java.awt.
import java.awt.event.
import javax.swing.
public class NumberButton extends Button.
{
int number.
public NumberButton(int number).
{
super(""+number).
this.number=number.
setForeground(Color.blue).
}
public int getNumber().
{
return number;
}
}
其它java課程設(shè)計(jì)題目及代碼是:
題目:華容道。編寫一個(gè)按鈕的子類,使用該子類創(chuàng)建的對象代表華容道中的人物。通過焦點(diǎn)事件控制人物顏色,當(dāng)人物獲得焦點(diǎn)時(shí)顏色為藍(lán)色,當(dāng)失去焦點(diǎn)時(shí)顏色為灰色。
通過鍵盤事件和鼠標(biāo)事件來實(shí)現(xiàn)曹操、關(guān)羽等人物的移動。當(dāng)人物上發(fā)生鼠標(biāo)事件或鍵盤事件時(shí),如果鼠標(biāo)指針的位置是在人物的下方(也就是組件的下半部分)或按下鍵盤的“↓“鍵,該人物向下移動。向左、向右和向上的移動原理類似。
代碼是:
String name[]={"曹操","關(guān)羽","張","劉","馬","許","兵","兵","兵","兵"}.
for(int i=0;iname.length;i++).
{
person[i]=new Person(i,name[i]).
person[i].addKeyListener(this).
person[i].addMouseListener(this).
//? ? ?person[i].addFocusListener(new Person).
add(person[i]).
}
person[0].setBounds(104,54,100,100).
person[1].setBounds(104,154,100,50).
person[2].setBounds(54,154,50,100).
person[3].setBounds(204,154,50,100).
person[4].setBounds(54,54,50,100).
person[5].setBounds(204,54,50,100);
person[6].setBounds(54,254,50,50);
person[7].setBounds(204,254,50,50);
person[8].setBounds(104,204,50,50);
person[9].setBounds(154,204,50,50);
public static void main(String[] args) {
/**
*
* (1)實(shí)現(xiàn)整型數(shù)組的創(chuàng)建要求由用戶輸入數(shù)組長度以及數(shù)組元素
*/
Scanner input = new Scanner(System.in);
System.out.print("請輸入整型數(shù)組的長度:");
int lengthInt = input.nextInt();
int[] arrInt = new int[lengthInt];
for (int i = 0; i arrInt.length; i++) {
System.out.println("請輸入第" + (i + 1) + "個(gè)元素");
arrInt[i] = input.nextInt();
}
System.out.print("整型數(shù)組:");
for (int i = 0; i arrInt.length; i++) {
System.out.print(arrInt[i] + "\t");
}
System.out.println();
/**
*
* (2)查找數(shù)組中最大值最小值以及求平均值
*/
int max = 0;
int min = arrInt[0];
double sum = 0;
for (int i = 0; i arrInt.length; i++) {
if (arrInt[i] max) {
max = arrInt[i];
}
if (arrInt[i] min) {
min = arrInt[i];
}
sum += arrInt[i];
}
double avg = sum / arrInt.length;
System.out.println("最大值:" + max);
System.out.println("最小值:" + min);
System.out.println("平均值:" + avg);
/**
*
* (3)實(shí)現(xiàn)數(shù)組的排序,有用戶選擇何種方式
*/
System.out.println("請選擇排序的方式(輸入數(shù)字即可):");
System.out.println("1:由小到大,2:由大到小");
int a = input.nextInt();
switch (a) {
case 1:
int i,
j,
t;
for (i = 0; i arrInt.length - 1; i++) {
for (j = 0; j arrInt.length - i - 1; j++) {
if (arrInt[j + 1] arrInt[j]) {
t = arrInt[j + 1];
arrInt[j + 1] = arrInt[j];
arrInt[j] = t;
}
}
}
break;
case 2:
int x,
y,
z;
for (x = 0; x arrInt.length - 1; x++) {
for (y = 0; y arrInt.length - x - 1; y++) {
if (arrInt[y + 1] arrInt[y]) {
z = arrInt[y + 1];
arrInt[y + 1] = arrInt[y];
arrInt[y] = z;
}
}
}
break;
default:
System.out.println("輸入有誤");
break;
}
for (int k = 0; k arrInt.length; k++) {
System.out.print(arrInt[k] + "\t");
}
System.out.println();
/**
*
* (4)實(shí)現(xiàn)數(shù)組的插入,并對插入后的數(shù)組重排序
*/
System.out.println("該數(shù)據(jù)長度為" + arrInt.length + ",插入數(shù)據(jù)后也記錄最后" + "個(gè)的元素");
boolean ref = true;
do {
System.out.println("請插入元素:");
for (int i = 0; i arrInt.length; i++) {
if (i arrInt.length - 1)
arrInt[i] = arrInt[i + 1];
else
arrInt[i] = input.nextInt();
}
System.out.println("是否再插入新的元素?(是:Y,否:其他任何字符)");
if (!input.next().equalsIgnoreCase("y")) {
ref = false;
}
} while (ref);
System.out.print("插入元素后的數(shù)組:");
for (int i = 0; i arrInt.length; i++) {
System.out.print(arrInt[i] + "\t");
}
System.out.println();
/**
*
* (5)實(shí)現(xiàn)對某個(gè)數(shù)組的刪除或者修改操作
*/
System.out.println("請選擇操作:1.刪除;2.修改");
int d = input.nextInt();
System.out.println("請輸入要操作的元素下標(biāo):(輸入0-" + (arrInt.length - 1)
+ "之內(nèi)的數(shù)字即可):");
int index = input.nextInt();
System.out.println(index);
int[] arrs = new int[arrInt.length - 1];
switch (d) {
case 1:
for (int i = 0; i arrInt.length - 1; i++) {
if (i == index index arrInt.length - 1) {
arrs[i] = arrInt[index + 1];
} else if (i index index arrInt.length - 1) {
arrs[i] = arrInt[i + 1];
} else {
arrs[i] = arrInt[i];
}
}
for (int i = 0; i arrs.length; i++) {
System.out.print(arrs[i] + "\t");
}
break;
case 2:
System.out.println("請輸入新的元素:");
int num = input.nextInt();
arrInt[index] = num;
for (int i = 0; i arrInt.length; i++) {
System.out.print(arrInt[i] + "\t");
}
break;
default:
System.out.println("輸入有誤");
break;
}
}