import?java.awt.Canvas;
成都創(chuàng)新互聯(lián)公司主營文登網站建設的網絡公司,主營網站建設方案,成都app軟件開發(fā)公司,文登h5小程序開發(fā)搭建,文登網站營銷推廣歡迎文登等地區(qū)企業(yè)咨詢
import?java.awt.Color;
import?java.awt.Font;
import?java.awt.Graphics;
import?java.awt.Image;
import?java.util.Random;
import?javax.swing.JFrame;
class?RainCanvas?extends?Canvas?implements?Runnable{
private?int?width,?height;
private?Image?offScreen;?//?緩沖圖片
private?char[][]?charset;?//?隨機字符集合
private?int[]?pos;?//?列的起始位置
private?Color[]?colors?=?new?Color[25];?//?列的漸變顏色
public?RainCanvas(int?width,?int?height)?{
this.width?=?width;
this.height?=?height;
//?生成ASCII可見字符集合
//創(chuàng)建一個新的隨機器
Random?rand?=?new?Random();
?//width/10為字符雨屏幕的寬度??height/10為字符雨屏幕的長度
//隨機字符數(shù)組
charset?=?new?char[width?/?10][height?/?10];
for?(int?i?=?0;?i??charset.length;?i++)?{
for?(int?j?=?0;?j??charset[i].length;?j++)?{
//nextInt(int?n)?返回一個偽隨機數(shù),它是從此隨機數(shù)生成器的序列中取出的、在?0(包括)和指定值(不包括)之間均勻分布的?int值。
//48--144代表鍵盤上的字母?符號?數(shù)字
//為charset數(shù)組的每個元素取值
charset[i][j]?=?(char)?(rand.nextInt(96)?+?48);?}
}
//?隨機化列起始位置
pos?=?new?int[charset.length];
for?(int?i?=?0;?i??pos.length;?i++)?{
pos[i]?=?rand.nextInt(pos.length);
}
//?生成從黑色到綠色的漸變顏色,最后一個保持為白色
for?(int?i?=?0;?i??colors.length?-?1;?i++)?{
//顏色漸變
colors[i]?=?new?Color(0,?255?/?colors.length?*?(i?+?1),?0);?}
//設置最底下一個的字符的顏色????0?0?255?藍色??255?0?0?紅色??255?255?255?白色??0?255?0?綠色
colors[colors.length?-?1]?=?new?Color(0,?0,?255);?
setBackground(Color.black);
setSize(width,?height);
setVisible(true);
}
public?void?startRain()?{
new?Thread(this).start();
}
public?void?drawRain()?{
if?(offScreen?==?null)?{
return;
}
// Random?rand?=?new?Random();
//getGraphice()創(chuàng)建供繪制閉屏圖像使用的圖形上下文
Graphics?g?=?offScreen.getGraphics();
//通過使用當前繪圖表面的背景色進行填充來清除指定的矩形。
g.clearRect(0,?0,?width,?height);
//將此圖形上下文的字體設置為指定字體。使用此圖形上下文的所有后續(xù)文本操作均使用此字體。
g.setFont(new?Font("Arial",?Font.PLAIN,?14));
//
for?(int?i?=?0;?i??charset.length;?i++)?{
//int?speed?=?rand.nextInt(3);
for?(int?j?=?0;?j??colors.length;?j++)?{
//去掉j只顯示藍色的一個字符??去掉charset[i].length顯示黑屏
int?index?=?(pos[i]?+?j)?%?charset[i].length;
//?將此圖形上下文的當前顏色設置為指定顏色。
g.setColor(colors[j]);
//使用此圖形上下文的當前字體和顏色繪制由指定字符數(shù)組給定的文本
g.drawChars(charset[i],?index,?1,?i?*?10,?index?*?10);
}
pos[i]?=?(pos[i]+2?)?%?charset[i].length;
}
}
@Override
public?void?update(Graphics?g)?{
paint(g);
}
public?void?run()?{
while?(true)?{
drawRain();
repaint();
try?{
Thread.sleep(50);?//?可改變睡眠時間以調節(jié)速度
}
catch?(InterruptedException?e)?{
System.out.println(e);
}
}
}
@Override
public?void?paint(Graphics?g)?{
//?當組件顯示時檢測是否要創(chuàng)建緩沖圖片,在組件還不可見時調用createImage將返回null
if?(offScreen?==?null)?{
offScreen?=?createImage(width,?height);
}
g.drawImage(offScreen,?0,?0,?this);
}
}
public?class?ZFYTest?extends?JFrame{
private?RainCanvas?canvas?=?new?RainCanvas(1366,?768);
public?ZFYTest()?{
super("ZFY");
setUndecorated(true);
setExtendedState(JFrame.MAXIMIZED_BOTH);
setVisible(true);
canvas?=?new?RainCanvas(this.getWidth(),?this.getHeight());?//canvas?=?new?RainCanvas(800,600);
getContentPane().add(canvas);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public?static?void?main(String[]?args)?{
ZFYTest?test?=?new?ZFYTest();
test.canvas.startRain();
}
}
你的代碼有很多問題,最主要的一個吧就是你的inverse函數(shù)的參數(shù)沒傳進去,你自己定義一個空矩陣num[][],計算秩,怎么算都是零,然后就返回 null,自然就報空指針異常了。我改好了程序,供你參考:
import?java.util.Scanner;
public?class?Project2?{
public?static?void?main(String[]?args)?{
Scanner?input?=?new?Scanner(System.in);
System.out.println("請依次輸入:a11、a12、a13、a21、a22、a23、a31、a32、a33\n");
int?i,?j;
double[][]?number?=?new?double[3][3];
double[][]?number0?=?new?double[3][3];
for?(i?=?0;?i??3;?i++)
for?(j?=?0;?j??3;?j++)
number[i][j]?=?input.nextDouble();
System.out.println("Input?Matrix?is?:");
System.out.println(number[0][0]?+?"?"?+?number[0][1]?+?"?"
+?number[0][2]);
System.out.println(number[1][0]?+?"?"?+?number[1][1]?+?"?"
+?number[1][2]);
System.out.println(number[2][0]?+?"?"?+?number[2][1]?+?"?"
+?number[2][2]);
number0?=?inverse(number);
if?(number0?!=?null)?{
System.out.println("Inverse?Matrix?is?:");
System.out.println(number0[0][0]?+?"?"?+?number0[0][1]?+?"?"
+?number0[0][2]);
System.out.println(number0[1][0]?+?"?"?+?number0[1][1]?+?"?"
+?number0[1][2]);
System.out.println(number0[2][0]?+?"?"?+?number0[2][1]?+?"?"
+?number0[2][2]);
}?else
System.out.println("矩陣的秩為零");
}
public?static?double[][]?inverse(double[][]?A)?{
double?z;
double?A1,?B,?C,?D,?E,?F,?G,?H,?I;
//?double?[][]?num?=?new?double?[3][3];
double[][]?num0?=?new?double[3][3];
System.out.println("Inverse?Matrix?A?is?:");
System.out.println(A[0][0]?+?"?"?+?A[0][1]?+?"?"?+?A[0][2]);
System.out.println(A[1][0]?+?"?"?+?A[1][1]?+?"?"?+?A[1][2]);
System.out.println(A[2][0]?+?"?"?+?A[2][1]?+?"?"?+?A[2][2]);
z?=?A[0][0]?*?A[1][1]?*?A[2][2]?+?A[2][0]?*?A[0][1]?*?A[1][2]?+?A[0][2]
*?A[1][0]?*?A[2][1]?-?A[0][2]?*?A[1][1]?*?A[2][0]?-?A[0][0]
*?A[1][2]?*?A[2][1]?-?A[2][2]?*?A[1][0]?*?A[0][1];
if?(z?==?0)
return?null;
else?{
A1?=?A[0][0];
B?=?A[0][1];
C?=?A[0][2];
D?=?A[1][0];
E?=?A[1][1];
F?=?A[1][2];
G?=?A[2][0];
H?=?A[2][1];
I?=?A[2][2];
num0[0][0]?=?1?/?z?*?(E?*?I?-?F?*?H);
num0[0][1]?=?1?/?z?*?(C?*?H?-?B?*?I);
num0[0][2]?=?1?/?z?*?(B?*?F?-?C?*?E);
num0[1][0]?=?1?/?z?*?(F?*?G?-?D?*?I);
num0[1][1]?=?1?/?z?*?(A1?*?I?-?C?*?G);
num0[1][2]?=?1?/?z?*?(C?*?D?-?A1?*?F);
num0[2][0]?=?1?/?z?*?(D?*?H?-?E?*?G);
num0[2][1]?=?1?/?z?*?(B?*?H?-?A1?*?H);
num0[2][2]?=?1?/?z?*?(A1?*?E?-?B?*?D);
return?num0;
}
}
}
Button b1=new Button("加速");
b1.addActionListener(new aw());
animationPanel.add(b1,BorderLayout.WEST);
Button b2=new Button("減慢");
b2.addActionListener(new ax());
animationPanel.add(b2,BorderLayout.EAST);
Button b3=new Button("停止");
b3.addActionListener(new ay());
animationPanel.add(b3,BorderLayout.SOUTH);
Button b4=new Button("開始");
b4.addActionListener(new az());
animationPanel.add(b4,BorderLayout.NORTH);
這個改成
Button b1=new Button("加速");
b1.addActionListener(new aw());
add(b1,BorderLayout.WEST);
Button b2=new Button("減慢");
b2.addActionListener(new ax());
add(b2,BorderLayout.EAST);
Button b3=new Button("停止");
b3.addActionListener(new ay());
add(b3,BorderLayout.SOUTH);
Button b4=new Button("開始");
b4.addActionListener(new az());
add(b4,BorderLayout.NORTH);
因為看不到你的其他代碼,這一行要去掉
animationPanel.setLayout(new BorderLayout());
ResultSet rs=s.executeQuery("select * from teacher"); //查詢語句
s.executeUpdate("update into teacher set ....."); //插入,更新 ,刪除語句
/**
*插入,更新 ,刪除
*主要就是SQL語句不同
*/