创建根、场景、标题和stage.show()后,Javafx窗口崩溃;
我正在编写酒店注册代码,我想在javafx窗口中显示可用的房间。这是用爱沙尼亚语写的,但我希望你能理解问题所在。在我添加创建根、场景、标题和stage.show()后,Javafx窗口崩溃;,javafx,crash,Javafx,Crash,我正在编写酒店注册代码,我想在javafx窗口中显示可用的房间。这是用爱沙尼亚语写的,但我希望你能理解问题所在。在我添加grouproot=newgroup()之前,一切正常和之后的三行 public class Peaklass extends Application { public static void main(String[] args) { launch(args); } @Override public void start(St
grouproot=newgroup()之前,一切正常代码>和之后的三行
public class Peaklass extends Application {
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage pealava) throws IOException, ParseException {
List<Hotellituba> toad = new ArrayList<>();
//loeme faili algse sisu listi, et hiljem seda muuta ja uuesti välja kirjutada
List <String> sisu = new ArrayList<>();
//loeme failist sisse kõik olemasolevad toad ning koostame neist listi
try(BufferedReader lugeja = new BufferedReader(new InputStreamReader(new FileInputStream("toad.txt"), "UTF-8"))){
String rida = lugeja.readLine();
String[] tükid;
while(rida!=null){
tükid = rida.split(",");
if(Integer.parseInt(tükid[2])>60){
toad.add(new Sviit(tükid[0], Integer.parseInt(tükid[1]), Integer.parseInt(tükid[2]),
Boolean.parseBoolean(tükid[3]), Boolean.parseBoolean(tükid[4])));
}
else{
toad.add(new Tavatuba(tükid[0], Integer.parseInt(tükid[1]), Integer.parseInt(tükid[2]),
Boolean.parseBoolean(tükid[3]), Boolean.parseBoolean(tükid[4])));
}
sisu.add(rida);
rida = lugeja.readLine();
}
}
System.out.println(toad);
System.out.println(sisu);
Scanner sisendid = new Scanner(System.in);
JOptionPane.showMessageDialog(null,"Tere tulemast meie hotelli broneerimissüsteemi! Broneeringu tegemiseks" +
" palume vastata järgnevale ankeedile. ");
//System.out.print("Tere tulemast meie hotelli broneerimissüsteemi! Broneeringu tegemiseks" +
//" palume vastata järgnevale ankeedile. " + System.lineSeparator() + "Teie eesnimi: ");
String eesnimi = JOptionPane.showInputDialog(null,"Teie eesnimi: ");
String perekonnanimi = JOptionPane.showInputDialog(null, "Teie perekonnanimi: ");
int külastajaid = Integer.parseInt(JOptionPane.showInputDialog(null,"Külastajate arv (maksimaalselt 4 inimest): "));
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
Date saabumineDate;
Date lahkumineDate;
try {
String saabumineString = JOptionPane.showInputDialog(null, "Saabumiskuupäev (sisestage palun formaadis pp-kk-aaaa): ");
saabumineDate = dateFormat.parse(saabumineString);
}catch (ParseException p){
String saabumineString = JOptionPane.showInputDialog(null, "Vigane kuupäevaformaat! Sisesta kuupäev uuesti. " +
"Saabumiskuupäev (sisestage palun formaadis pp-kk-aaaa): ");
saabumineDate = dateFormat.parse(saabumineString);
}
try {
String lahkumineString = JOptionPane.showInputDialog(null, "Lahkumiskuupäev (sisestage palun formaadis pp-kk-aaaa: ");
lahkumineDate = dateFormat.parse(lahkumineString);
}catch(ParseException p){
String lahkumineString = JOptionPane.showInputDialog(null, "Vigane kuupäevaformaat! Sisesta kuupäev uuesti. " +
"Lahkumiskuupäev (sisestage palun formaadis pp-kk-aaaa: ");
lahkumineDate = dateFormat.parse(lahkumineString);
}
int maxHind = Integer.parseInt(JOptionPane.showInputDialog(null,"Toa maksimaalne maksumus öö kohta eurodes: " ));
//koostame sisestatud info põhjal uue Klient isendi
Klient klient = new Klient(eesnimi + " " + perekonnanimi, külastajaid, saabumineDate, lahkumineDate, maxHind);
System.out.println("Teie kriteeriumitele vastavad meie hotellis järgmised toad: ");
//saadaval olevad külastajate arvu poolest sobivad
//hotellitoad väljastada tsüklina ja seejärel lasta külastajal nende seast valida
//lisame loenduri i, mis väljastab vastava teate juhul, kui sobivaid tube hotellis ei leidu
int i = 0;
List<Hotellituba> sobivadToad = new ArrayList<>();
for (Hotellituba hotellituba : toad) {
if (hotellituba.getSaadavus() && hotellituba.getMahutavus() >= klient.getInimesteArv() && hotellituba.getMaksumus() <= maxHind) {
sobivadToad.add(hotellituba);
} else {
i++;
}
}
//juhul, kui sobivaid tube ei leidu, lõpeb programmi töö:
if (i == toad.size()) {
System.out.println("Teie kriteeriumitele sobivaid tube meie hotellis kahjuks ei leidu. ");
System.exit(0);
}
Group root = new Group();
Scene scene = new Scene(root, 500, 500, Color.BLACK);
pealava.setTitle("JavaFX Scene Graph Demo");
pealava.setScene(scene);
pealava.show();
System.out.println();
System.out.print("Sisestage soovitud toa number (juhul, kui sobivat ei leidu, sisestage \"0\"): ");
String valik = sisendid.next();
System.out.println();
if (valik.equals("0")) {
System.exit(0);
}
Broneering broneering = null; //tehakse siin, sest muidu for-tsüklis jääb skoopi ja ei saaks väljastada teda. Teen siin ära, siis
//muudetakse teda for-i sees.
for (Hotellituba hotellituba : toad) {
if (valik.equals(hotellituba.getToanumber())) {
hotellituba.setSaadavus(false);
broneering = new Broneering(klient, hotellituba, saabumineDate, lahkumineDate);
}
}
int o = 0;
for(String rida: sisu){
if(rida.contains(valik)){
String[] tükid = rida.split(",");
tükid[3]= "false";
String uusrida = valik + ",";
for(int a = 1; a<tükid.length;a++){
if(!(a==(tükid.length-1))){
uusrida += (tükid[a] + ",");
}
else{
uusrida+=(tükid[a]);
}
}
sisu.set(o,uusrida);
}
o++;
}
try(BufferedWriter kirjutaja1 = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("toad.txt"),"UTF-8"))){
for(String rida: sisu){
kirjutaja1.write(rida);
kirjutaja1.newLine();
}
}
try( PrintWriter out = new PrintWriter(new FileWriter("broneeringud.txt", true));){
out.write(broneering.haldajaleToString() + "\r\n");
}
System.out.println(broneering.kliendileToString());
}
}
公共类Peaklass扩展应用程序{
公共静态void main(字符串[]args){
发射(args);
}
@凌驾
public void start(Stage pealava)抛出IOException、ParseException{
List toad=new ArrayList();
//所有这些都是失败的,而且都是失败的
List sisu=new ArrayList();
//这是一个失败的例子
try(BufferedReader lugeja=new BufferedReader(new InputStreamReader(新文件InputStream(“toad.txt”),“UTF-8”)){
字符串rida=lugeja.readLine();
字符串[]tükid;
while(rida!=null){
tükid=rida.split(“,”);
if(Integer.parseInt(tükid[2])>60){
toad.add(新的Sviit(tükid[0],Integer.parseInt(tükid[1]),Integer.parseInt(tükid[2]),
Boolean.parseBoolean(tükid[3]),Boolean.parseBoolean(tükid[4]);
}
否则{
toad.add(new-Tavatuba(tükid[0],Integer.parseInt(tükid[1]),Integer.parseInt(tükid[2]),
Boolean.parseBoolean(tükid[3]),Boolean.parseBoolean(tükid[4]);
}
添加(rida);
rida=lugeja.readLine();
}
}
系统输出打印LN(蟾蜍);
系统输出打印LN(sisu);
扫描仪sisendid=新扫描仪(System.in);
showMessageDialog(null,“Tere tulemast meie hotelli BronerieMissüsteemi!Broneriengu Tegemieks”+
“palume vastata järgnevale ankeedile.”);
//系统输出打印(“Tere tulemast meie hotelli BroneriMissüsteemi!Broneringu Tegemieks”+
//“palume vastata järgnevale ankeedile。”+System.lineSeparator()+“Teie eesnimi:”;
字符串eesnimi=JOptionPane.showInputDialog(null,“Teie eesnimi:”);
字符串perekonnanimi=JOptionPane.showInputDialog(null,“Teie perekonnanimi:”);
int külastajaid=Integer.parseInt(JOptionPane.showInputDialog(null,“külastajate arv(maksimaalselt 4 inimest):”);
SimpleDataFormat dateFormat=新的SimpleDataFormat(“dd-MM-yyyy”);
日期:saabumineDate;
红枣;
试一试{
String saabumineString=JOptionPane.showInputDialog(null,“Saabumiskuupäev(sisestage palun formaadis pp kk aaaa):”;
saabumineDate=dateFormat.parse(saabumineString);
}捕获(解析异常){
String saabumineString=JOptionPane.showInputDialog(null,“Vigane kuupäevaformat!Sisesta kuupäev uuesti.”+
“Saabumiskuupäev(Sissetage palun formaadis pp kk aaaa):”;
saabumineDate=dateFormat.parse(saabumineString);
}
试一试{
字符串lahkumineString=JOptionPane.showInputDialog(null,“lahkumiskupäev(sisestage palun formaadis pp kk aaaa:”);
lahkumineDate=dateFormat.parse(lahkumineString);
}捕获(解析异常){
字符串lahkumineString=JOptionPane.showInputDialog(null,“Vigane kuupäevaformat!Sisesta kuupäev uuesti.”+
“Lahkumiskupäev(Sissetage palun formaadis pp kk aaaa:”);
lahkumineDate=dateFormat.parse(lahkumineString);
}
int maxHind=Integer.parseInt(JOptionPane.showInputDialog(null,“Toa maksimaalne maksumusökohta eurodes:”);
//库斯塔姆·西斯塔德信息公司
Klient Klient=新Klient(eesnimi+“”+perekonnanimi、külastajaid、saabumineDate、lahkumineDate、maxHind);
println(“Teie kriteeriumitele vastavad meie hotellis järgmised蟾蜍:”);
//萨达瓦尔·奥列瓦德·库拉斯塔贾特·阿武·普洛斯特·索比瓦德
//瓦利达酒店
//lisame loenduri i,mis väljastab vastava Teat juhul,kui sobivaid tube hotellis ei leidu
int i=0;
List sobivaddoad=new ArrayList();
用于(Hotellituba Hotellituba:toad){
if(hotellituba.getSaadavus()&&hotellituba.getMahutavus()>=klient.getInimesteArv()&&hotellituba.getMaksumus()你能把这个错误添加到问题中吗?事实证明扫描器就是问题所在。它现在正在工作!注意,JavaFX有一个应该使用的类,而不是一个。一般来说,不建议在JavaFX应用程序中使用Swing组件,如JOptionPane,除非你必须这样做。