你的主函數(shù)沒有錯誤,你應(yīng)該恢復(fù)主函數(shù)原來的樣子public static void main(String[] args){
成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站建設(shè)、網(wǎng)站制作與策劃設(shè)計,蜀山網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:蜀山等地區(qū)。蜀山做網(wǎng)站價格咨詢:028-86922220
User user=new User();
user.setId(1001);
user.setName("user");
user.setStuNum("1001");
new TicketBooker(user);
}你的Java程序是在109行JCB_Year.setSelectedIndex(date.getYear()+1900-Integer.parseInt(arrayYear[0]));這句出問題了,因為今年是2018年,date.getYear()+1900=2018,2018-2014=4,JCB_Year.setSelectedIndex(4);而你的private JComboBox JCB_Year=new JComboBox(arrayYear);arrayYear是只定義了三個字符串的數(shù)組
private static final String arrayYear[]={"2014","2015","2016"};所以造成JComboBox下標Index越界,本來下標只有0到2你訪問到了4.改正辦法把arrayYear數(shù)組加兩個元素,把private static final String arrayYear[]={"2014","2015","2016"};改成private static final String arrayYear[]={"2014","2015","2016","2017","2018"};就沒問題了.注意,arrayYear數(shù)組 2019年還需要加"2019",2020年還需要加"2020"
import?java.awt.Canvas;
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);?}
//設(shè)置最底下一個的字符的顏色????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);
//將此圖形上下文的字體設(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只顯示藍色的一個字符??去掉charset[i].length顯示黑屏
int?index?=?(pos[i]?+?j)?%?charset[i].length;
//?將此圖形上下文的當前顏色設(shè)置為指定顏色。
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);?//?可改變睡眠時間以調(diào)節(jié)速度
}
catch?(InterruptedException?e)?{
System.out.println(e);
}
}
}
@Override
public?void?paint(Graphics?g)?{
//?當組件顯示時檢測是否要創(chuàng)建緩沖圖片,在組件還不可見時調(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();
}
}
你的代碼有很多問題,最主要的一個吧就是你的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;
}
}
}
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("反正是出錯了.");
}
}//
改好了,你把圖片的地址改一下,注意路徑
import java.awt.FlowLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class e extends JFrame implements ListSelectionListener{
private JList jl;
private JLabel b1;
private String name[]={"picture 1","picture 2","picture 3"};
private Icon icon[]={new ImageIcon("picture 1.jpg"),new ImageIcon("picture 2.jpg"),new ImageIcon("picture 3.jpg")};
public e(){
super("列表框中顯示圖形文件");
this.getContentPane().setLayout(new FlowLayout());
jl=new JList(name);
jl.setVisibleRowCount(3);
jl.addListSelectionListener(this);
this.getContentPane().add(new JScrollPane(jl));
b1=new JLabel("picture 1");
this.getContentPane().add(b1);
this.setSize(400,400);
this.setVisible(true);
}
public static void main(String args[]){
e ex=new e();
ex.addWindowListener(new WindowAdapter(){
public void WindowClosing(WindowEvent k){
System.exit(0);
}
});
}
public void valueChanged(ListSelectionEvent k){
b1.setIcon(icon[jl.getSelectedIndex()]);
}
}