У меня есть 2 класса, mainFrame и панель. Нажимая кнопку на mainFrame, я вызываю панель из другого класса и устанавливаю ее в панели с вкладками, которая находится в JFrame (класс mainFrame). Теперь у меня есть еще одна кнопка (btnRemove) на моей панели в классе панели. Поэтому, когда я нажимаю эту кнопку, я хочу удалить панель из панели с вкладками в классе mainFrame. Как написать свой слушатель правильно?Снятие панели с JTabbedPane с помощью кнопки на панели
класс MainFrame: класс
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) Не вызывайте 'setVisible (true)' до тех пор, пока не будут добавлены компоненты и вызывается 'pack()'. 5) Графический интерфейс должен быть создан и изменен на EDT. 6) Изучите общие [соглашения об именах Java] (http://java.sun.com/docs/books/jls/second_edition/html/names.doc.html#73307) (в частности, для имен, используемых для имен) для класса , имя метода и атрибутов и использовать его последовательно. –