2012-07-13 3 views
3

자바 스윙 응용 프로그램에 제목이 표시된 구분 기호를 표시하려고합니다.자바 스윙의 제목 구분 기호

하지만 제 3 자 API를 사용하여. JSeparator를 확장하여이 작업을 수행 할 수 있습니까? 어떻게 그럴 수 있니?

+0

참조 내 대답은 여기에 : http://stackoverflow.com/a/9533238/995822. 'TitledBorder'를 사용합니다. –

+0

@SoboLAN 예, 도움이됩니다. 감사. –

답변

4

제목이있는 경계선을 사용하십시오. 예를 들어 다음과 같이 :

import javax.swing.BorderFactory; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.SwingUtilities; 
import javax.swing.border.TitledBorder; 

public class TestBorder { 

    protected void initUI() { 
     JFrame frame = new JFrame(TestBorder.class.getSimpleName()); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     JPanel panel = new JPanel(); 
     TitledBorder titledBorder = BorderFactory.createTitledBorder("Some title"); 
     titledBorder.setTitleJustification(TitledBorder.CENTER); 
     panel.setBorder(titledBorder); 
     frame.add(panel); 
     frame.setSize(400, 300); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     SwingUtilities.invokeLater(new Runnable() { 

      @Override 
      public void run() { 
       new TestBorder().initUI(); 
      } 
     }); 
    } 

} 
+0

왼쪽 텍스트를 표시합니다. 텍스트를 줄 구분 기호의 중심에 넣기를 원합니다. –

+0

@mark 업데이트 내 코드입니다. 테두리의 양쪽 맞춤을 설정하기 만하면됩니다. –

+0

네, 이제 좋습니다. :) 감사. –

5

난 당신이 MatteBorder의 조합 TitledBorder의 간단하고 낮은 경우가

MatteBorder mb = new MatteBorder(1, 0, 0, 0, Color.BLACK); 
TitledBorder tb = new TitledBorder(mb, "Some Long Text", TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION); 
+0

좋습니다. :) 그리고'TitleBorder'가 아니라'TitledBorder'이어야합니다. –

+0

iPad에서 항상 재미있게 타이핑 : P – MadProgrammer

0

을 사용할 수있을 것 같아요.

import javax.swing.border.*; 

다음

BevelBorder bedge=new BevelBorder(BevelBorder.RAISED); 
lbl.setBorder(bedge); 

----------------- 다음 보더 유형 다음

import javax.swing.border.*; 

TitledBorder tedge=new TitledBorder(TitledBorder.CENTER); 
lbl.setBorder(tedge);