2016-07-26 4 views
0

JTabbedPane을 사용하고 있으며 닫기 버튼에 탭을 추가하려고합니다.JTabbedPane 탭에 닫기 버튼을 추가하는 방법

다음과 같이 하나의 JButton을 만들었습니다. ActionListener를 클릭하면이 탭이 하나씩 열립니다.

은 또한, 나는이 JTabbedPane에 만들기 ...

//Tabbed. 
JTabbedPane Tabbedr = new JTabbedPane(); 
File F = new File("HTML1.html"); 
Frame.getContentPane().add(Tabbedr); 
Tabbedr.addTab(F.getName()); 

//Button. 
JButton Close = new JButton(); 
Close.addActionListener(new ActionListener(){ 
public void actionPerformed(ActionEvent a){ 
Tabbedr.remove(1);}}); 

그래서, 여기에 모든 좋은,하지만 난 내 탭으로, JButton에 "닫기"를 추가하는 방법을 잘 모릅니다. 일부 유명 편집인과 마찬가지로

단추를 테스트하려면 도구 모음에이 단추를 추가했지만이 단추를 내부에 넣으려고합니다. 예 : 안녕하세요, txt "X".

¿ 누군가 나를 도울 수 있습니까? 읽어 주셔서 감사 드리며 시간을드립니다.

+0

['ButtonTabComponent'] (https://docs.oracle.com/javase/tutorial/uiswing/components/tabbedpane.html)와 중복되지 않는 경우 [mcve]를 포함하도록 질문을 편집하십시오. 현재 접근 방식을 보여줍니다. – trashgod

답변

1
public class CustomTabbedPane extends JTabbedPane { 

    public CustomTabbedPane() { 

     // Add panel to tab screen 
     JPanel tab1Panel = new JPanel(); 
     addTab(null, null, tab1Panel, ""); 

     // Add label and button to the tab name 
     JPanel tab1 = new JPanel(); 
     temp.add(new JLabel("Tab Name")); 
     temp.add(new JButton("x")); 
     setTabComponentAt(0, tab1); 
    } 
} 

물론 JButton에 ActionListener를 추가하고 단추를 누를 때 탭이 사라지도록 구성하는 것이 좋습니다. 이 좋은 보이게

, 나는

button.setMargin(new Insets(0, 0, 0, 0)) 

는 테두리를 제거, 당신이하는 JButton의 마진을 없애

button.setBorder(BorderFactory.createEmptyBorder()); 

을 제안하고 TAB1의 JPanel의 설정 "null"레이아웃으로 이동하여 "x"버튼과 레이블을 수동으로 배치합니다.

관련 문제