mainFrame 및 panel 클래스가 두 개 있습니다. mainFrame의 버튼을 클릭하여 다른 클래스의 패널을 호출하고 JFrame (mainFrame 클래스)에있는 탭 패널에 설정합니다. 이제 패널 클래스에서 내 패널에 다른 버튼 (btnRemove)이 있습니다. 따라서 해당 버튼을 클릭하면 mainFrame 클래스의 탭 패널에서 내 패널을 제거하려고합니다. 청취자를 올바르게 쓰려면 어떻게해야합니까?패널의 버튼을 통해 JTabbedPane에서 패널 제거
메인 프레임 클래스 :
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
public class MainFrame extends JFrame {
JTabbedPane tPane = new JTabbedPane();
JButton btn = new JButton("Add panel");
public MainFrame(){
setSize(400,300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setLayout(new BorderLayout());
add(tPane, BorderLayout.CENTER);
add(btn,BorderLayout.NORTH);
btn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
panel p = new panel();
tPane.add("Panel",p);
}
});
}
public static void main(String[] args){
new MainFrame();
}
}
패널 클래스 :
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Panel extends JPanel{
JButton btnRemove = new JButton("Remove panel");
public Panel(){
setLayout(new FlowLayout());
add(btnRemove);
btnRemove.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
}
});
}
}
패널 또는 전체 탭을 제거 하시겠습니까? BTW - 1)'JFrame' 또는'JPanel'을 확장하지 말고 - 대신 프레임 인스턴스와'JPanel'을 생성하는 메소드를 갖습니다. 2)'setSize()'를 호출하지 않습니다. 3)'JFrame.DISPOSE_ON_CLOSE' 4) 컴포넌트가 추가되고'pack()'이 호출 될 때까지는'setVisible (true)'를 호출하지 마십시오. 5) EDT에서 GUI를 작성하고 변경해야합니다. 6) 클래스에 대한 공통적 인 [Java 명명 규칙 (Java 命名 規則)] (http://java.sun.com/docs/books/books/books/jls/second_edition/html/names.doc.html#73307) (특히 이름에 사용 된 사례)을 배우십시오. , 메소드 및 속성 이름 및 일관되게 사용하십시오. –