gpt4 book ai didi

java - "AWT-EventQueue-0"java.lang 中的 NullPointerException

转载 作者:行者123 更新时间:2023-11-30 04:20:36 25 4
gpt4 key购买 nike

嘿,我正在制作一个航类预订系统,当我点击预订座位时出现此错误“AWT-EventQueue-0”java.lang.NullPointerException我认为我的有一个错误2D 对象初始化...PS:有没有办法去掉 Seats[][]sets = new Seats[4][5];

前面的 final

这是我的座位类别:

public class Seats {

private int row_number;
private boolean booked;
private Passenger myPassenger;
private String seat_name;
private String type;
private int column_number;
private long booking_nr;

public Seats(){
myPassenger = new Passenger();
booked = false;
}

public boolean isBooked() {
return booked;
}

public void setBooked(boolean booked) {
this.booked = booked;
}

}

下面是我的 GUI:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

public class Book_GUI extends JFrame {

//private EconomyClass eco;
private JPanel contentPane;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Book_GUI frame = new Book_GUI();
frame.setTitle("Economy Class");
frame.setVisible(true);

} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the frame.
*/
public Book_GUI() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);

int left = 3;
int middle = 3;
int right = 4;

String[] singleRowAll = new String [left+middle+right];

for(int i = 1;i<singleRowAll.length;i++){singleRowAll[i] = "";}
singleRowAll[0] = "Window";
singleRowAll[left-1] = "Aisle";
singleRowAll[left] = "Aisle";
singleRowAll[left+middle-1] = "Aisle";
singleRowAll[left+middle] = "Aisle";
singleRowAll[left+middle+right-1] = "Window";


//eco = new EconomyClass(4,5,3,3,4);

final Seats[][] seats = new Seats[4][10];
for ( int i = 0; i < 4; i++) {
char c= 'A';
for ( int j = 0; j < 10; j++) {
final int x = i;
final int z = j;
final JButton btnBookFlight = new JButton(" " + (i+1) + c++ + " " + singleRowAll[j] );
btnBookFlight.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if(seats[x][z].isBooked()){btnBookFlight.setBackground(Color.GREEN);}

seats[x][z].setBooked(true);

//JButton button = (JButton)arg0.getSource();
//button.setBackground(Color.RED);
// btnBookFlight.setBackground(Color.RED);
btnBookFlight.setOpaque(true);
}
});
contentPane.add(btnBookFlight);
}
}

contentPane.setLayout(new GridLayout(4, 10));
pack();
}

}

感谢您的阅读和宝贵的时间!

最佳答案

您没有初始化 Seats[][] 数组。尝试将 Book_GUI.java 的构造函数替换为:

public Seats[][] seats = new Seats[4][10]; 

public Book_GUI() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);

int left = 3;
int middle = 3;
int right = 4;

String[] singleRowAll = new String[left + middle + right];

for (int i = 1; i < singleRowAll.length; i++) {
singleRowAll[i] = "";
}
singleRowAll[0] = "Window";
singleRowAll[left - 1] = "Aisle";
singleRowAll[left] = "Aisle";
singleRowAll[left + middle - 1] = "Aisle";
singleRowAll[left + middle] = "Aisle";
singleRowAll[left + middle + right - 1] = "Window";

// eco = new EconomyClass(4,5,3,3,4);

//Delete this line:
//final Seats[][] seats = new Seats[4][5];

for(int i = 0; i < 4; i++) {
for(int j = 0; j < 5; j++) {
seats[i][j] = new Seats();
}
}

for (int i = 0; i < 4; i++) {
char c = 'A';
for (int j = 0; j < 10; j++) {
final int x = i;
final int z = j;
final JButton btnBookFlight = new JButton(" " + (i + 1) + c++
+ " " + singleRowAll[j]);
btnBookFlight.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
if (seats[x][z].isBooked()) {
btnBookFlight.setBackground(Color.GREEN);
}

seats[x][z].setBooked(true);

// JButton button = (JButton)arg0.getSource();
// button.setBackground(Color.RED);
// btnBookFlight.setBackground(Color.RED);
btnBookFlight.setOpaque(true);
}
});
contentPane.add(btnBookFlight);
}
}

contentPane.setLayout(new GridLayout(4, 10));
pack();
}

这应该有帮助:)

关于java - "AWT-EventQueue-0"java.lang 中的 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17157617/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com