2016-09-21 37 views
-1

我在使複合邊框工作時遇到小問題。我以前玩過邊界遊戲,這似乎是實現我的計劃的最佳方式。難以製作複合邊框

我的計劃是非常簡單地有一個盒子,盒子的兩邊是藍色和紅色。

container.setBorder(BorderFactory.createCompoundBorder()); 
    container.setBorder(BorderFactory.createMatteBorder(0, 10, 0, 10, Color.red)); 
    container.setBorder(BorderFactory.createMatteBorder(10, 0, 10, 0, Color.blue)); 

這是我目前的代碼,我仍然無法獲取複合元素的工作。我想我錯過了一些非常明顯的東西,但是我覺得另一雙眼睛可能會有所幫助,這就是我在這裏發帖的原因。

+1

一個組件只能有一個'Border',這就是爲什麼該方法被稱爲'setBorder()',而不是像'getBorders()加()'。 「CompoundBorder」的功能是保存兩個獨立的Border,快速查看[documentation](https://docs.oracle.com/javase/7/docs/api/javax/swing/border/ CompoundBorder.html)會回答這個問題。另外,對於將來的問題,請始終包含可用於演示問題的可編譯[MCVE]。 –

回答

4

您無法爲組件設置3個不同的邊框。您只需設置邊框一次。嘗試以下操作:

Border inner = BorderFactory.createMatteBorder(0, 10, 0, 10, Color.RED); 
Border outer = BorderFactory.createMatteBorder(10, 0, 10, 0, Color.BLUE); 
container.setBorder(BorderFactory.createCompoundBorder(outer, inner)); 
+0

閱讀[如何使用邊框]上的Swing教程(http://docs.oracle.com/javase/tutorial/uiswing/components/border.html)。你會發現大量的工作實例展示瞭如何做到這一點。本教程也可以用作其他Swing基礎的參考。 – camickr