자바의 JPanel 패딩


107

Java 스윙 응용 프로그램에 대한 형식 지정 질문이 있습니다. 상당히 간단해야하지만 도움을 찾는 데 어려움이 있습니다 (모든 주제는 JPanel의 기본 패딩 제거 에 관한 것 같습니다 ). 다양한 JPanel의 텍스트가 옆면과 위쪽을 감싸고 색 테두리에 닿습니다. 패딩을 추가하려면 어떻게해야합니까? 감사합니다.

답변:


234

을 설정 EmptyBorder하여 주위에 JPanel.
예:

JPanel p =new JPanel();
p.setBorder(new EmptyBorder(10, 10, 10, 10));

45
또는 기존 테두리 p.setBorder(BorderFactory.createCompoundBorder(new EmptyBorder(10, 10, 10, 10), new EtchedBorder()));
주위에

창 크기를 조정하면 어떻게됩니까? 이 솔루션은 좋지 않습니까?
Andrew S

@Synox Legend 참으로! 내부 패딩의 마지막 매개 변수로 EmptyBorder를 넣을 수 있습니다
Hunter S

3

내부에 패딩이 필요한 경우 JPanel일반적으로 사용중인 레이아웃 관리자로 패딩을 추가합니다. .NET Framework의 테두리 만 확장 할 수있는 경우가 있습니다 JPanel.


1
레이아웃 관리자 (내 경우에는 GridLayout)에 패딩을 추가하면 인접한 패널 사이에 패딩이 추가되지만 개별 패널에는 추가되지 않습니다. 그러나 국경은 할 것입니다. 도움을 주셔서 감사합니다.
코너

3

데모를 위해 JPanel에 JTextField가 포함되어 있다고 가정합니다.

이러한 구성 요소는 JTextComponent#setMargin()사용자가 찾고있는 것처럼 보이는 방법을 제공합니다 .

텍스트 주위에 크기에 관계없이 빈 테두리를 찾고 있다면 EmptyBorder


0
JPanel p=new JPanel();  
GridBagLayout layout=new GridBagLayout(); 
p.setLayout(layout); 
GridBagConstraints gbc = new GridBagConstraints();
gbc.fill=GridBagConstraints.HORIZONTAL; 
gbc.gridx=0;   
gbc.gridy=0;   
p2.add("",gbc);
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.