2014-04-03 31 views
9

Bölmenin rengini değiştirmek istiyorum. Rengi kullanıcıdan bir dize olarak almak istiyorum. kullanıcı bu dizeyi bir textfield içinde yazabilir. Bu dizeyi panele renk olarak ayarlayabilir miyim? . Kullanarak,Javafx'te panelin rengi nasıl değiştirilir?

böyle Nodes'CSS ayarlayın: Ben beginer değilim, bana yardım edin :(

+0

Senden anlıyoruz: i de (sadece JavaFX 8'de çalışır) bu kod örneği vereceğiz '-8 javafx' ile bu soruyu etiketli yanaacemi, bize çaba göstermelisin. Kod şu ana kadar nasıl görünüyor? Pano rengini sabit değere dönüştürmeyi başardınız mı? Kullanıcının girdiği metin alanında değeri alabilir miydiniz? –

+0

Evet, bu doğru, başlangıç ​​yapıyorum. Bunun gibi bir bileşen oluşturmak istiyorum: (http://www.uifaces.com) ve kendi kendime sorunu çözmeye çalışıyorum, ama çok fazla sorunum var :(. Ben !!! bölmesinde dize rengini ayarlamak nasıl bilmiyorum ve bu şu ana kadar benim kod parçasıdır: colorField.setOnKeyTyped (yeni EventHandler () { @Override public void kolu (KeyEvent t) { color = colorField.getText(); } }); – maryam

+0

Nereden başlayacağınızı bilmiyorsanız, [buradan] deneyin (http://docs.oracle.com/javase/8/javafx/user-interface- tutorial/index.html) ve buradaki soru için (burada http://docs.oracle.com/javase/8/javafx/user-interface-tutorial/apply-css.htm#CHDGHCDG). [Here] (http://docs.oracle.com/javase/8/javafx/api/javafx/scene/doc-files/cssref.html), JavaFX CSS için referans sayfası ve [Pane] için Javadocs'tır (http:/http://docs.oracle.com/javase/8/javafx/api/javafx/ sahne/düzen/Region.html) de yardımcı olacaktır. –

cevap

13

Eğer gerçekten sadece o belirli bir şeyi gerçekleştirmek için bilmek istiyorsanız, aşağıdaki öneririm hexacolor kullanıcı tarafından girilen olduğu. daha fazla bilgi sen sorulara daha spesifik olun ve bazı kod örnekleri sağlamak istiyorsanız

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

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

, Umarım yardımcı olur Laurenz

+0

Cevabınız için teşekkür ederim, ilk cevabınızı deniyorum, fakat işe yaramıyor, uyarıda bulunuyor: (UYARI: com.sun.javafx.css.parser.CSSParser terimi CSS Hatası in-line stili ayrıştırma hatası) -fx-background -renk: # '[email protected]: Beklenmeyen bir simge' # 'de [1,21]), başka bir yolu var mı? – maryam

+1

@maryam, stil ayarlanırken "girdByUser" dizesinin boş olması nedeniyle. –

+0

sağ dize kullanıcı tarafından girilen değeri temsil eder –

İlgili konular