import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
public class Main extends JFrame {
private JTabbedPane tp;
private int tabCounter = 0;
public Main() {
super("Browser");
setDefaultCloseOperation(EXIT_ON_CLOSE);
JMenuBar mb = new JMenuBar();
JMenu mFile = new JMenu("File");
JMenuItem mi = new JMenuItem("Add Tab");
ActionListener addTabl = new ActionListener() {
public void actionPerformed(ActionEvent e) {
addTab();
}
};
mi.addActionListener(addTabl);
mFile.add(mi);
mb.add(mFile);
setJMenuBar(mb);
JPanel pnlURL = new JPanel();
tp = new JTabbedPane();
addTab();
add(tp, BorderLayout.CENTER);
setSize(300, 300);
setVisible(true);
}
void addTab() {
JEditorPane ep = new JEditorPane();
ep.setEditable(false);
tp.addTab(null, new JScrollPane(ep));
JButton tabCloseButton = new JButton("Close");
tabCloseButton.setActionCommand("" + tabCounter);
ActionListener al;
al = new ActionListener() {
public void actionPerformed(ActionEvent ae) {
JButton btn = (JButton) ae.getSource();
String s1 = btn.getActionCommand();
for (int i = 1; i < tp.getTabCount(); i++) {
JPanel pnl = (JPanel) tp.getTabComponentAt(i);
btn = (JButton) pnl.getComponent(0);
String s2 = btn.getActionCommand();
if (s1.equals(s2)) {
tp.removeTabAt(i);
break;
}
}
}
};
tabCloseButton.addActionListener(al);
if (tabCounter != 0) {
JPanel pnl = new JPanel();
pnl.setOpaque(false);
pnl.add(tabCloseButton);
tp.setTabComponentAt(tp.getTabCount() - 1, pnl);
tp.setSelectedIndex(tp.getTabCount() - 1);
}
tabCounter++;
}
public static void main(String[] args) {
new Main();
}
}
|