import?java.awt.Canvas;
在樺甸等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站設(shè)計(jì),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,樺甸網(wǎng)站建設(shè)費(fèi)用合理。
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;?//?隨機(jī)字符集合
private?int[]?pos;?//?列的起始位置
private?Color[]?colors?=?new?Color[25];?//?列的漸變顏色
public?RainCanvas(int?width,?int?height)?{
this.width?=?width;
this.height?=?height;
//?生成ASCII可見字符集合
//創(chuàng)建一個(gè)新的隨機(jī)器
Random?rand?=?new?Random();
?//width/10為字符雨屏幕的寬度??height/10為字符雨屏幕的長度
//隨機(jī)字符數(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)?返回一個(gè)偽隨機(jī)數(shù),它是從此隨機(jī)數(shù)生成器的序列中取出的、在?0(包括)和指定值(不包括)之間均勻分布的?int值。
//48--144代表鍵盤上的字母?符號(hào)?數(shù)字
//為charset數(shù)組的每個(gè)元素取值
charset[i][j]?=?(char)?(rand.nextInt(96)?+?48);?}
}
//?隨機(jī)化列起始位置
pos?=?new?int[charset.length];
for?(int?i?=?0;?i??pos.length;?i++)?{
pos[i]?=?rand.nextInt(pos.length);
}
//?生成從黑色到綠色的漸變顏色,最后一個(gè)保持為白色
for?(int?i?=?0;?i??colors.length?-?1;?i++)?{
//顏色漸變
colors[i]?=?new?Color(0,?255?/?colors.length?*?(i?+?1),?0);?}
//設(shè)置最底下一個(gè)的字符的顏色????0?0?255?藍(lán)色??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();
//通過使用當(dāng)前繪圖表面的背景色進(jìn)行填充來清除指定的矩形。
g.clearRect(0,?0,?width,?height);
//將此圖形上下文的字體設(shè)置為指定字體。使用此圖形上下文的所有后續(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只顯示藍(lán)色的一個(gè)字符??去掉charset[i].length顯示黑屏
int?index?=?(pos[i]?+?j)?%?charset[i].length;
//?將此圖形上下文的當(dāng)前顏色設(shè)置為指定顏色。
g.setColor(colors[j]);
//使用此圖形上下文的當(dāng)前字體和顏色繪制由指定字符數(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);?//?可改變睡眠時(shí)間以調(diào)節(jié)速度
}
catch?(InterruptedException?e)?{
System.out.println(e);
}
}
}
@Override
public?void?paint(Graphics?g)?{
//?當(dāng)組件顯示時(shí)檢測是否要?jiǎng)?chuàng)建緩沖圖片,在組件還不可見時(shí)調(diào)用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();
}
}
Connection conn;
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:taian", "hr", "hr"); //連接Oracle
conn.setAutoCommit(false);
Statement myStat = conn.createStatement();
String sqlTxt = "update BankAccount set account=account-" + this.amount.getText() + " where accId=" + this.payOut.getText();
System.out.println("第一步 執(zhí)行:" + sqlTxt);
//
try {
int affectedRow = myStat.executeUpdate(sqlTxt);
System.out.println("從匯出方扣減" + this.amount.getText() + "元,修改了" + affectedRow + "行數(shù)據(jù).");
sqlTxt = "update BankAccount set account=account+" + this.amount.getText() + " where accId=" + this.saveIn.getText();
System.out.println("第二步 執(zhí)行:" + sqlTxt);
affectedRow = myStat.executeUpdate(sqlTxt);
System.out.println("從匯入方增加" + this.amount.getText() + "元,修改了" + affectedRow + "行數(shù)據(jù).");
// 事務(wù)成功結(jié)束, 提交
conn.commit();
} catch (SQLException sqlEx) {
System.out.println
sqlEx.printStackTrace();
// 事務(wù)中斷,整體回滾到事務(wù)開始前狀態(tài)
conn.rollback();
}
myStat.close();
conn.close();
} catch (Exception ex) {
System.out.println("反正是出錯(cuò)了.");
}
}//
你的代碼有很多問題,最主要的一個(gè)吧就是你的inverse函數(shù)的參數(shù)沒傳進(jìn)去,你自己定義一個(gè)空矩陣num[][],計(jì)算秩,怎么算都是零,然后就返回 null,自然就報(bào)空指針異常了。我改好了程序,供你參考:
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;
}
}
}