JavaFX Fehler beim setzen von Farben

Lucaaa

Bekanntes Mitglied
Hallo!
In Folgendem Code:
Java:
package com.ludevstudio.schoolmanager.Schedule;
import java.util.ArrayList;
import java.util.ResourceBundle;
import com.ludevstudio.schoolmanager.DataBaseControler;
import com.ludevstudio.schoolmanager.Subject;
import javafx.geometry.Pos;
import javafx.scene.control.Label;
import javafx.scene.layout.ColumnConstraints;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.Priority;
import javafx.scene.layout.VBox;
import javafx.scene.paint.Color;
public class Schedule extends GridPane {
 String name;
 int days;
 int lessons;
 Boolean hasZeroLesson;
 Boolean hasWeekend;
 
 ResourceBundle bundle = ResourceBundle.getBundle("bundle");
 DataBaseControler controller;
 
 // Hex Colors
 final String basicColor = "blue";
 
 
 // Resources
 ArrayList<Subject> allSubjects;
 
 
 public Schedule(String name, int lessons, Boolean hasZeroLesson, Boolean hasWeekend) {
  controller =new DataBaseControler();
  
  this.name = name;
  this.lessons = lessons;
  this.hasZeroLesson = hasZeroLesson;
  this.hasWeekend = hasWeekend;
 
 // init
  setupGridpane();
  createEmptySchedule();
  load();
 }
 
 
 
 // tinit the Schedules UI before loading subjects
 private void createEmptySchedule() {
  // set nubmer of days
  if(hasWeekend) { 
   days = 7; 
   } else { 
    days = 5;
   } 
   
  // set top Left corner
  Label topLeftCorner = new Label();
  topLeftCorner.setText("");
  GridPane.setHgrow(topLeftCorner, Priority.ALWAYS);
  GridPane.setVgrow(topLeftCorner, Priority.ALWAYS);
  topLeftCorner.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
  topLeftCorner.setStyle("-fx-background-color: "+basicColor+";");
  add(topLeftCorner, 0, 0);
  
  
  
  // set the day Headline cells
  for(int i = 1; i<=days; i++) {
   add(dayUI(new Day(i)), i, 0);
  }
  
  // set the lessons headlines
  for(int i = 1; i<=lessons; i++) {
   add(lessonUI(new Lesson(i)), 0, i);
  }
  
  
 }
 
 
 // gridpane Settings
 private void setupGridpane() {
  // set Lines
  this.setGridLinesVisible(true);
  
  // set Stretching
  this.setMaxSize(Double.MAX_VALUE, Double.MAX_VALUE);
  
  
  
  // Set Column Width
  
  ColumnConstraints c =new ColumnConstraints();
  c.setMaxWidth(50);
  this.getColumnConstraints().add(c);
  for(int i =0; i<days; i++) {
   ColumnConstraints cc =new ColumnConstraints();
   cc.setPercentWidth(99/days);
   this.getColumnConstraints().add(cc);
  }
  
  
 }
 
 
 // Load schedule Subjects
   private void load() {
    
    // Load all existing Subjects
    ArrayList<String> allSubjectIDs = controller.getSubjectList();
    allSubjects =new ArrayList<>();
    
    for(String ID : allSubjectIDs) {
     ArrayList<String> subjectInfos = controller.loadSubject(ID);
     
     
     allSubjects.add(new Subject(subjectInfos.get(0), subjectInfos.get(1), 
       subjectInfos.get(2), subjectInfos.get(3), Color.web(subjectInfos.get(4))));
    }
    
    // fill subjects into schedule
    ArrayList<String[]> subjectIDs = controller.loadScheduleSubjects(name);
    
    for(int i=0; i<lessons; i++) {
     for(int j=0; j<days; j++) {
      Subject subject = getSubject(subjectIDs.get(i)[j]);
      if(subject!=null) {
      add(subjectUI(subject), j+1, i+1);
     }
     }
    }
    
   }
 
   
   
   
 // Cell UIs
 
 private Label dayUI(Day day) {
  Label cell =new Label();
  cell.setText(day.getName());
  cell.setStyle("-fx-background-color: "+basicColor+"; "
    + "-fx-text-fill: white; "
    + "-fx-padding: 7; "
    + "-fx-font-size: 1.4em;  "
    + "-fx-font-weight: bold;");
  cell.setAlignment(Pos.CENTER);
  cell.setMaxWidth(Double.MAX_VALUE);
  GridPane.setHgrow(cell, Priority.ALWAYS);
  return cell;
 }
 
 
 private Label lessonUI(Lesson lesson) {
  Label cell =new Label();
  cell.setText(lesson.getNumber()+"");
  cell.setStyle("-fx-background-color: "+basicColor+"; "
    + "-fx-text-fill: white; "
    + "-fx-padding: 7; "
    + "-fx-font-size: 1.4em;  "
    + "-fx-font-weight: bold;");
  cell.setAlignment(Pos.CENTER);
  cell.setMaxWidth(Double.MAX_VALUE);
  GridPane.setHgrow(cell, Priority.ALWAYS);
  return cell;
 }
 private VBox subjectUI(Subject subject) {
  String colorStr = "#"+Integer.toHexString(subject.getColor().hashCode());
  
  VBox cell =new VBox();
  Label labName =new Label(subject.getName());
  labName.setStyle("-fx-text-fill: white; -fx-font-weight: bold; -fx-font-size: 150%;");
  Label labTeacher =new Label(subject.getTeacher());
  labTeacher.setStyle("-fx-text-fill: white; -fx-font-weight: bold;");
  Label labRoom =new Label(subject.getRoom());
  labRoom.setStyle("-fx-text-fill: white; -fx-font-weight: bold;");
  cell.getChildren().addAll(labName, labTeacher, labRoom);
  cell.setStyle("-fx-background-color: "+colorStr+"; "
    + "-fx-padding: 5 10 5 10;");
  
  return cell;
 }
 
 
 
 
 // Other
 private Subject getSubject(String ID) {
  for(Subject s : allSubjects) {
   if(s.getID().equals(ID)) {
    return s;
   }
  }
  return null;
 }
 
 
}

In der load() übergebe ich eine aus einer Datenbank geladene Farbe.
Der geladene String sieht folgendermaßen aus:
Code:
00ff00

Fehlermeldung:
Code:
Exception in Application start method
Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
 at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
 at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$154(LauncherImpl.java:182)
 at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.IllegalArgumentException: Invalid color specification
 at javafx.scene.paint.Color.web(Color.java:389)
 at javafx.scene.paint.Color.web(Color.java:636)
 at com.ludevstudio.schoolmanager.Schedule.Schedule.load(Schedule.java:123)
 at com.ludevstudio.schoolmanager.Schedule.Schedule.<init>(Schedule.java:47)
 at com.ludevstudio.schoolmanager.SchedulePage.updateView(SchedulePage.java:151)
 at com.ludevstudio.schoolmanager.SchedulePage.initFooter(SchedulePage.java:104)
 at com.ludevstudio.schoolmanager.SchedulePage.<init>(SchedulePage.java:72)
 at com.ludevstudio.schoolmanager.MainWindow.initComponents(MainWindow.java:66)
 at com.ludevstudio.schoolmanager.MainWindow.start(MainWindow.java:56)
 at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$161(LauncherImpl.java:863)
 at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$174(PlatformImpl.java:326)
 at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295)
 at java.security.AccessController.doPrivileged(Native Method)
 at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294)
 at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
 at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
 at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
 ... 1 more

Kann mir da wer helfen?
 

Robat

Top Contributor
Bist du dir sicher, dass der String so aussieht und nicht noch irgendwelche anderen Zeichen (Leerzeichen, Zeilenumbruch, .. ) beinhaltet?
 

Robat

Top Contributor
An sich sollte Color.web("00ff00") wunderbar funktionieren. Dementsprechend muss ja irgendwo etwas mit dem String passieren, sonst würde die Exception nicht geworfen werden.
Lass dir den String (inkl. Länge) am Besten einfach mal ausgeben - irgendwo muss sich ja etwas eingeschlichen haben ;)
 

Robat

Top Contributor
Das ist wirklich merkwürdig. Was für einen Farbwert gibt dir denn System.out.println(Color.web("lime"));? Müsste ja theoretisch 0x00FF00FF sein.
Welche Java-Version nutzt du?
 

Robat

Top Contributor
Wenn ich Color.Web() den String "lime" übergebe, müsste es ja eigentlich Grün werden oder?
Bei mir ist es pink!
Hab gerade noch mal deinen gesamten Code angeschaut. In deiner subjectUI Methode schreibst du sowas:
Java:
String colorStr = "#"+ Integer.toHexString(subject.getColor().hashCode());
Deswegen kommt als Farbe auch pink heraus. hashcode() entspricht nicht zuverlässig dem RGB Integer-Wert. Versuch mal lieber sowas: String colorString = color.toString().replace("0x", "#");.

Warum die Exception fliegt weiß ich bisher immer noch nicht. Ich kann mir wirklich nur vorstellen, dass es irgendein Subject gibt, welches keine "richtige" Farbe als Farbstring besitzt.
 
Zuletzt bearbeitet:

Lucaaa

Bekanntes Mitglied
Der komplette Stacktrace besteht aus einer Zeile? o_O
Vorhin ja.
Nach einem Eclipse Neustart kommt wieder das:
Exception in Application start method Exception in thread "main" java.lang.RuntimeException: Exception in Application start method at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$154(LauncherImpl.java:182) at java.lang.Thread.run(Unknown Source) Caused by: java.lang.IllegalArgumentException: Invalid color specification at javafx.scene.paint.Color.web(Color.java:389) at javafx.scene.paint.Color.web(Color.java:636) at com.ludevstudio.schoolmanager.Schedule.Schedule.load(Schedule.java:124) at com.ludevstudio.schoolmanager.Schedule.Schedule.<init>(Schedule.java:47) at com.ludevstudio.schoolmanager.SchedulePage.updateView(SchedulePage.java:151) at com.ludevstudio.schoolmanager.SchedulePage.initFooter(SchedulePage.java:104) at com.ludevstudio.schoolmanager.SchedulePage.<init>(SchedulePage.java:72) at com.ludevstudio.schoolmanager.MainWindow.initComponents(MainWindow.java:66) at com.ludevstudio.schoolmanager.MainWindow.start(MainWindow.java:56) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$161(LauncherImpl.java:863) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$174(PlatformImpl.java:326) at com.sun.javafx.application.PlatformImpl.lambda$null$172(PlatformImpl.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater$173(PlatformImpl.java:294) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177) ... 1 more
 

Robat

Top Contributor
Wir sind wieder an der selben Stelle angelangt wie am Anfang. Das was bei subjectInfos.get(4) in Zeile 124 zurückkommt scheint nicht konform mit der Farbspezifikation von Color.web zu sein. Wie bereits davor gesagt kann ich mir nicht vorstellen, dass es an was anderem liegt. Prüf am besten noch mal Haar genau nach, ob es sich bei diesem String immer um einen validen Farbcode handelt - ob keine Sonderzeichen wie Space, Zeilenumbruch oder was auch immer dran hängen.
 

Lucaaa

Bekanntes Mitglied
String immer um einen validen Farbcode handelt
In der Datenbank waren 2 Leerzeilen (nicht null, sondern ein leerer String) Ich hatte zwar mit einer Abfrage geprüft, ob der String != null ist, aber nicht ob er leer ist. Werde das mal ändern (müssen).
Jetzt, wo ich die beiden Zeilen entfernt habe, funktioniert es wunderbar :)
Danke für deine Hilfe @Robat
 

looparda

Top Contributor
Ich hatte gestern noch dein Repository angeschaut und zum Laufen gebracht. Mir ist aufgefallen, dass du beim Erstellen von Tabellen keine Datentypen angibst und in der Erstellung von der Subjects Tabelle die ID vergessen hattest. Ich frage mich ob das so bei dir überhaupt funktioniert hat mit dem Stand.
Den Fehler mit den Farben konnte ich nicht reproduzieren. Aber mit deiner Erklärung ergibt es auch Sinn.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Fehler beim Öffnen weiterer FXML AWT, Swing, JavaFX & SWT 11
M AWT Kann meinen Fehler beim ActionListener nicht finden AWT, Swing, JavaFX & SWT 5
A Fehler beim Hintergrund AWT, Swing, JavaFX & SWT 17
Tronert JavaFX Fehler beim Ändern der font-weight AWT, Swing, JavaFX & SWT 7
Tommy135 JavaFX JavaFX Fehler beim Scenewechsel AWT, Swing, JavaFX & SWT 23
H JavaFX Kriege fehler beim Fenster wechseln AWT, Swing, JavaFX & SWT 7
S Fehler beim Zweites 3D Bild AWT, Swing, JavaFX & SWT 2
L Fehler beim erstellen einer Tabelle mithilfe von 2d-Array AWT, Swing, JavaFX & SWT 3
J Fehler beim Einklappen eines Trees AWT, Swing, JavaFX & SWT 4
P 2D-Grafik Fehler beim Laden eines Bildes AWT, Swing, JavaFX & SWT 25
K 2D-Grafik Fehler beim Farbe auslesen AWT, Swing, JavaFX & SWT 3
J Fehler beim Gif Datei öffnen AWT, Swing, JavaFX & SWT 2
J 2D-Grafik Fehler beim Überzeichnen von Linien AWT, Swing, JavaFX & SWT 11
hdi Swing JTable: Fehler beim Nutzen von RowSorter#setRowFilter AWT, Swing, JavaFX & SWT 4
M Fehler beim Zugriff von awt-KeyListener auf swt-Shell AWT, Swing, JavaFX & SWT 2
P Fehler beim Einlesen eines JTextFields AWT, Swing, JavaFX & SWT 2
G Viele Fehler beim zeichen AWT, Swing, JavaFX & SWT 5
A Fehler beim Auslesen aus einem Textfeld AWT, Swing, JavaFX & SWT 2
spacegaier Fehler beim Aufrufen von Dialog aus ActionListener AWT, Swing, JavaFX & SWT 12
P Fehler beim Verwenden von swt.jar mit NetBeans AWT, Swing, JavaFX & SWT 2
S Fehler beim Auslesen des Textes im textfield AWT, Swing, JavaFX & SWT 8
T Fehler beim Compilieren AWT, Swing, JavaFX & SWT 29
S Fehler beim addTextListener . AWT, Swing, JavaFX & SWT 2
hannibalstgt Fehler bei JCOMBOBOX GUI Anzeige AWT, Swing, JavaFX & SWT 4
J Fehler bei jFame.setTitle() AWT, Swing, JavaFX & SWT 8
thor_norsk SpringBoot-Fehler AWT, Swing, JavaFX & SWT 7
J Ich kriege eine Fehler Messesage bei meinem Media Player AWT, Swing, JavaFX & SWT 8
H Fehler: Zum Ausführen dieser Anwendung benötigte JavaFX-Runtime-Komponenten fehlen AWT, Swing, JavaFX & SWT 44
S JavaFX Fehler zwischen View und Controller bei MouseEvent (MVC) AWT, Swing, JavaFX & SWT 13
T ListView nach Erweiterung Fehler in CellFactory AWT, Swing, JavaFX & SWT 8
beli3ver JavaFX Anwendung startet nicht, kann den Fehler nicht finden (Exception in Application start method) AWT, Swing, JavaFX & SWT 1
J "Exception in thread "AWT-EventQueue-0"" Fehler AWT, Swing, JavaFX & SWT 3
parrot JavaFX Fehler AWT, Swing, JavaFX & SWT 4
H JavaFX JavaFX Import Fehler AWT, Swing, JavaFX & SWT 4
T Anderen Java Code durch Code kompilieren und Fehler in Label ausgeben AWT, Swing, JavaFX & SWT 5
Z Swing Wert aus Textfeld auslesen -- null Fehler AWT, Swing, JavaFX & SWT 4
A eine Fehler AWT, Swing, JavaFX & SWT 9
B JavaFX Text wird nicht angezeigt, kein Fehler AWT, Swing, JavaFX & SWT 2
W fillRect() in Schleife spukt nur Fehler aus AWT, Swing, JavaFX & SWT 3
S Fehler: Hauptklasse neon.Main konnte nicht gefunden oder geladen werden AWT, Swing, JavaFX & SWT 5
V JavaFX Button Controller Fehler, trotz Erfolg in einem anderem Code? AWT, Swing, JavaFX & SWT 7
E Fehler bei Button AWT, Swing, JavaFX & SWT 1
L Unbekannter Fehler AWT, Swing, JavaFX & SWT 13
I Fehler bei Alert AWT, Swing, JavaFX & SWT 6
J Fehler bei PixelColor erkennung AWT, Swing, JavaFX & SWT 4
T Fehler bei ActionEvent? AWT, Swing, JavaFX & SWT 3
V Fehler bei Würfelsimulator GUI AWT, Swing, JavaFX & SWT 2
Z GUI-Problem, finde meinen Fehler nicht! AWT, Swing, JavaFX & SWT 11
Seikuassi SWING - (Hoffentlicher) simpler Color-Fehler AWT, Swing, JavaFX & SWT 4
M Swing finde den fehler nicht AWT, Swing, JavaFX & SWT 9
A Fehler bei erstellen eines JTextFields AWT, Swing, JavaFX & SWT 2
D Unlogischer Fehler? AWT, Swing, JavaFX & SWT 2
L Eclipse Fehler besser zu verstehen!!! AWT, Swing, JavaFX & SWT 4
E Warum macht die einfache Animation einen kleinen Fehler? AWT, Swing, JavaFX & SWT 14
bluerob Fehler bei Wertübermittlung über KeyListener AWT, Swing, JavaFX & SWT 3
H GUI-Textausgabe Fehler AWT, Swing, JavaFX & SWT 5
S String is null Fehler AWT, Swing, JavaFX & SWT 2
P Swing GroupLayout() Fehler? AWT, Swing, JavaFX & SWT 3
J JMenuBar ist geaddet, aber nicht im Frame. Wo ist der Fehler? (inkl. Code) AWT, Swing, JavaFX & SWT 2
N Touchscreen-Scrollen, wo liegt der Fehler? AWT, Swing, JavaFX & SWT 3
N Fehler Inhalt von JTable wird gelöscht AWT, Swing, JavaFX & SWT 5
M GEF tutorial Fehler finden AWT, Swing, JavaFX & SWT 4
S Grafik Fehler AWT, Swing, JavaFX & SWT 15
M Fehler bei Arrayübergabe an JComboBox AWT, Swing, JavaFX & SWT 10
S LayoutManager Fehler gesucht 18.6.2011 AWT, Swing, JavaFX & SWT 4
C Fehler nur bei manchen Usern AWT, Swing, JavaFX & SWT 8
Screen Fehler bei Get-Methode für ArrayList AWT, Swing, JavaFX & SWT 8
K JFrame + KeyListener + Runnable = Fehler AWT, Swing, JavaFX & SWT 3
I Fehler bei JFileChooser AWT, Swing, JavaFX & SWT 2
E Swing Fehler nach Befüllen einer JTable mit gesetzem Rowsort?! AWT, Swing, JavaFX & SWT 10
P Swing Misteriöser Fehler JTable AWT, Swing, JavaFX & SWT 5
Y Swing JPasswordField Fehler AWT, Swing, JavaFX & SWT 14
A Swing Unknown Source Fehler AWT, Swing, JavaFX & SWT 9
N Fehler bei Grouplayout AWT, Swing, JavaFX & SWT 17
S ActionPerformed Fehler... AWT, Swing, JavaFX & SWT 9
C BufferedImage-Fehler? Falsches Bild wir gezeichnet AWT, Swing, JavaFX & SWT 5
A Tabellen Überschriften ändern -setColumnIdentifiers()- Fehler AWT, Swing, JavaFX & SWT 7
M.F.G. Fehler bei der Anzeige Grafischer Elemente AWT, Swing, JavaFX & SWT 13
D Swing Verwirrender Fehler AWT, Swing, JavaFX & SWT 7
J Fehler in fillRoundRect AWT, Swing, JavaFX & SWT 2
D Probleme mit Spiel-Engine. Komische Fehler. AWT, Swing, JavaFX & SWT 5
W fehler jedoch ka wo AWT, Swing, JavaFX & SWT 14
F Fehler in der Startklasse AWT, Swing, JavaFX & SWT 13
A Fehler bei der Parametereingabe? AWT, Swing, JavaFX & SWT 16
P finde den Fehler im JTable nicht AWT, Swing, JavaFX & SWT 2
Spin Fehler in Vergleich AWT, Swing, JavaFX & SWT 6
K Swing: ContentPane von JDialog ist transparent (Fehler) AWT, Swing, JavaFX & SWT 10
Dragonfire ZoomImage flackert -> Fehler: repaint-Aufruf [gelöst] AWT, Swing, JavaFX & SWT 5
T Invalid Range - Fehler bei TableRowSorter / Tabelle AWT, Swing, JavaFX & SWT 17
DasDogma Fehler bei getText() AWT, Swing, JavaFX & SWT 10
I Fehler bei verschachtelten JScrollPanes AWT, Swing, JavaFX & SWT 2
GilbertGrape Fehler bei HTML in JTextPane AWT, Swing, JavaFX & SWT 2
K Textfelder auslesen gibt immer Fehler AWT, Swing, JavaFX & SWT 2
D Fehler bei Button Array AWT, Swing, JavaFX & SWT 8
M Fehler mit Jigloo AWT, Swing, JavaFX & SWT 3
M setColor mit Fehler cannot fiend symbol (java.awt.Color) AWT, Swing, JavaFX & SWT 2
Z habe code, habe fehler, habe keine lösung AWT, Swing, JavaFX & SWT 7
R JComboBox Fehler AWT, Swing, JavaFX & SWT 7
B NPE-Fehler AWT, Swing, JavaFX & SWT 11
P JRadioButton in Schleife erstellen > wo liegt mein Fehler AWT, Swing, JavaFX & SWT 2

Ähnliche Java Themen

Neue Themen


Oben