2016-09-21 4 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'을 가질 수 있습니다, 그건() 추가()'.. 'CompoundBorder'의 기능은 두 개의 별도 'Border'를 유지하는 것입니다. [documentation] (https://docs.oracle.com/javase/7/docs/api/javax/swing/border/)를 잠깐 살펴보십시오. CompoundBorder.html)이 대답했습니다. 또한 앞으로의 질문을 위해 문제를 보여주는 컴파일 가능한 [MCVE]를 항상 포함하십시오. –

답변

4

구성 요소에 3 가지 테두리를 설정할 수 없습니다. 경계선을 한 번만 설정해야합니다. 다음보십시오 : 방법은`setBorder()`이 아닌`getBorders 같은라는 이유

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

[테두리 사용 방법] (http://docs.oracle.com/javase/tutorial/uiswing/components/border.html)에서 스윙 튜토리얼을 읽으십시오. 이 작업을 수행하는 방법을 보여주는 많은 예제가 있습니다. 이 튜토리얼은 다른 Swing 기본 사항에 대한 참조로 사용할 수도 있습니다. – camickr