2015-12-12 73 views
0

當我爲我的Sudoku網格創建內部邊框時,只要它碰到相交點,它的一部分就不會顯示出來。然而,在我的Java代碼中,如果我刪除了'topBorder'或'rightBorder'的double'for'循環,則邊界將完全穿過網格。但是,如果雙'for'循環存在,那麼缺少一部分邊界。JavaFX CSS Lines不會相交

CSS代碼:

.topBorder { 
-fx-border-color: black; 
-fx-pref-width: 3em; 
-fx-pref-height: 3em; 
-fx-border-width: 3 0 0 0; 
} 

.rightBorder { 
-fx-border-color: black; 
-fx-pref-width: 3em; 
-fx-pref-height: 3em; 
-fx-border-width: 0 3 0 0; 
} 

樣品Java代碼:

for(int i = 0; i < 9; i++) { 
       if((tf2D[col][row] == tf2D[i][3]) || 
         (tf2D[col][row] == tf2D[i][6])) { 
        limitNumberTextField.getStyleClass().add("topBorder"); 
       } 
      } 

for(int j = 0; j < 9; j++) { 
       if((tf2D[col][row] == tf2D[2][j]) || 
         (tf2D[col][row] == tf2D[5][j])) { 
        limitNumberTextField.getStyleClass().add(
          "rightBorder"); 
       } 
      } 

圖片:

Missing border at intersection points

+0

出了什麼問題我建議的方法[您剛纔的問題(http://stackoverflow.com/questions/34218434/數獨貴格線)? –

+0

什麼也沒有,我只是有一些問題習慣了僞類。我從來沒有與他們有過任何經驗。不過,我非常感謝你的幫助,James_D。謝謝一堆 – OhMoose

回答

0

如果元素既有風格類topBorder和樣式類rightBorder ,你嘗試應用兩個bor風格(彼此矛盾)。發生這種情況時,出現在樣式表中的最後一個規則應用,即你的規則

-fx-border-color: black; 
-fx-pref-width: 3em; 
-fx-pref-height: 3em; 
-fx-border-width: 0 3 0 0; 

此明確規定沒有頂部邊框,所以沒有邊框的頂部與兩個樣式類細胞。

你可以嘗試增加對細胞的特定規則與兩個樣式類:

.topBorder { 
-fx-border-color: black; 
-fx-pref-width: 3em; 
-fx-pref-height: 3em; 
-fx-border-width: 3 0 0 0; 
} 

.rightBorder { 
-fx-border-color: black; 
-fx-pref-width: 3em; 
-fx-pref-height: 3em; 
-fx-border-width: 0 3 0 0; 
} 

.topBorder.rightBorder { 
-fx-border-color: black; 
-fx-pref-width: 3em; 
-fx-pref-height: 3em; 
-fx-border-width: 3 3 0 0; 
}