我正在为酒店注册编写代码,我想在javafx窗口中显示可用的房间。这是爱沙尼亚语,但我希望你能理解这是什么问题。一切顺利,直到我添加Group root = new Group();
和之后的三行。
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());
}
}