我在编一个模仿UltraEdit的编辑软件,碰到两个关于JTabbedPanel的问题:
1、当我新增加一个Tab时,如何让他成为当前编辑状态(就像UltraEdit,我原先已经打开了几个文件,当我再打开一个文件时,这个文件所在的Tab就显示出来,而其他文件的Tab被覆盖);
2、如何设置监听事件,实现当我双击某个Tab时,他就关闭。
望不吝指教,谢谢!
1、当我新增加一个Tab时,如何让他成为当前编辑状态(就像UltraEdit,我原先已经打开了几个文件,当我再打开一个文件时,这个文件所在的Tab就显示出来,而其他文件的Tab被覆盖);
2、如何设置监听事件,实现当我双击某个Tab时,他就关闭。
望不吝指教,谢谢!
移除 index 位置的选项卡。
setSelectedComponent(Component c)
设置此选项卡窗格的已选组件。这两个函数应该有用吧
import java.awt.BorderLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;public class T {
public static void main(String[] args) {
final JTabbedPane tabbedPane = new JTabbedPane();
tabbedPane.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.getClickCount() == 2 && e.getButton() == MouseEvent.BUTTON1) {
int tabIndex = tabbedPane.indexAtLocation(e.getX(), e.getY());
if (tabIndex != -1) {
tabbedPane.remove(tabIndex);
}
}
}
});
tabbedPane.addTab("Tab1", new JPanel());
tabbedPane.addTab("Tab2", new JPanel());
tabbedPane.addTab("Tab3", new JPanel());
tabbedPane.addTab("Tab4", new JPanel());
tabbedPane.addTab("Tab5", new JPanel());JFrame f = new JFrame();
f.getContentPane().add(tabbedPane, BorderLayout.CENTER);
f.setSize(300, 200);
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
MouseCliked事件里
用getClickCount方法
getClickCount == 2 就表示双击了
不过这个是不分左右中键的!!!就是说,你左键双击和你右键双击效果一样