2014-04-03 13 views
9

Chcę zmienić kolor panelu. Chcę uzyskać kolor jako ciąg od użytkownika. użytkownik wpisz ten ciąg w polu tekstowym. Jak ustawić ten ciąg jako kolor do okienka? . Proszę mi pomóc, jestem początkujący :(Jak zmienić kolor panelu w javafx?

+0

Rozumiem, że jesteś początkujący, choć powinieneś pokazać nam swój wysiłek. Jak do tej pory wygląda kod? Czy udało Ci się zmienić kolor panelu na wartość stałą? Czy byłeś w stanie wziąć wartość w polu tekstowym wprowadzonym przez użytkownika? –

+0

tak, to prawda, jestem początkujący. Chcę zbudować komponent taki jak ten: (http://www.uifaces.com) i próbuję rozwiązać mój problem sam, ale mam wiele problemów :(. nie wiem, jak ustawić kolor ciąg do okienka !!! i to jest część mojego kodu do tej pory: colorField.setOnKeyTyped (nowa Podprogram () { @Override public void uchwyt (keyEvent t) { color = colorField.getText(); } }); – maryam

+0

Jeśli nie wiesz, od czego zacząć, spróbuj [tutaj] (http://docs.oracle.com/javase/8/javafx/user-interface- tutorial/index.html) i [tutaj] (http://docs.oracle.com/javase/8/javafx/user-interface-tutorial/apply-css.htm#CHDGHCDG) dla tego konkretnego pytania. [tutaj] (http://docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/cssref.html) to strona odniesienia dla JavaFX CSS, a Javadocs dla [Pane] (http: // /docs.oracle.com/javase/8/javafx/api/javafx/scene/layout/Pane.html) i [Region] (http://docs.oracle.com/javase/8/javafx/api/javafx/ scene/layout/Region.html) również pomoże. –

Odpowiedz

13

Jeśli naprawdę chcesz wiedzieć, jak osiągnąć że szczególną rzecz, którą proponujemy następujące:

Ustaw Nodes'CSS takiego, za pomocą hexacolor, który został wprowadzony przez użytkownika.

String enteredByUser = "abcdef"; 
yournode.setStyle("-fx-background-color: #" + enteredByUser); 

Jeśli chcesz dowiedzieć się więcej proszę być bardziej szczegółowe pytania z wami i dostarczyć niektóre przykłady kodu

Ponieważ określili to pytanie „JavaFX-8” będę zapewnić, że przykład kodu, jak również (działa tylko w JavaFX 8):

yournode.setBackground(new Background(new BackgroundFill(Color.web("#" + enteredByUser), CornerRadii.EMPTY, Insets.EMPTY))); 

nadzieję, że to pomaga, Laurenz

+0

Dziękuję za odpowiedź, próbuję twojej pierwszej odpowiedzi, ale to nie działa, to powoduje ostrzeżenie: (OSTRZEŻENIE: com.sun.javafx.css.parser.CSSParser termin CSS Błąd parsujący styl in-line '-fx-background -color: # 'from [email protected]: Nieoczekiwany token' # 'w [1,21]), czy ma inny sposób? – maryam

+1

@maryam, ponieważ ciąg "entriesByUser" jest pusty podczas ustawiania stylu. –

+0

right the String reprezentuje wprowadzoną wartość przez użytkownika –