您现在的位置是:主页 > news > 中国文化网站建设策划书/企业推广策略

中国文化网站建设策划书/企业推广策略

admin2025/6/18 23:13:52news

简介中国文化网站建设策划书,企业推广策略,网站双机热备怎么做,建设网站细节JTabbedPane 点 x 关闭选项卡1.需求描述2.代码实现3.效果演示系统:Win10 JDK:1.8.0_333 IDEA:2020.3.4 1.需求描述 在写一个 Swing 项目的时候,写到 JTabbedPane 时,需要实现点击 TabComponent 的 x 关闭当前选项卡的…

中国文化网站建设策划书,企业推广策略,网站双机热备怎么做,建设网站细节JTabbedPane 点 x 关闭选项卡1.需求描述2.代码实现3.效果演示系统:Win10 JDK:1.8.0_333 IDEA:2020.3.4 1.需求描述 在写一个 Swing 项目的时候,写到 JTabbedPane 时,需要实现点击 TabComponent 的 x 关闭当前选项卡的…

JTabbedPane 点 x 关闭选项卡

  • 1.需求描述
  • 2.代码实现
  • 3.效果演示

系统:Win10
JDK:1.8.0_333
IDEA:2020.3.4

1.需求描述

在写一个 Swing 项目的时候,写到 JTabbedPane 时,需要实现点击 TabComponent 的 x 关闭当前选项卡的功能,就像浏览器的标签页的 x 一样,点击就关闭的功能

2.代码实现

public class JTabbedPaneClose {public static int sequence = 1; // 序号public static void main(String[] args) {try {// 设置 JTabbedPane 的 tab 标签的内衬UIManager.put("TabbedPane.tabInsets", new javax.swing.plaf.InsetsUIResource(3, 4, 2, 0));} catch (Exception e) {e.printStackTrace();}JTabbedPane tabbedPane = new JTabbedPane();tabbedPane.addTab(" 对象 ", new JPanel());tabbedPane.addTab(" + ", new JPanel());String filename = JTabbedPaneClose.class.getResource("/").getPath() + "images/close.png";ImageIcon icon = new ImageIcon(filename);icon.setImage(icon.getImage().getScaledInstance(20, 20, Image.SCALE_DEFAULT));// 添加监听tabbedPane.getModel().addChangeListener(new ChangeListener() {private boolean ignore = false; // 防止切换新选项卡引起的死循环@Overridepublic void stateChanged(ChangeEvent e) {if (!ignore) {ignore = true;try {int selected = tabbedPane.getSelectedIndex();String title = tabbedPane.getTitleAt(selected);if (" + ".equals(title)) {JPanel panel = new JPanel();String newTitle = "选项卡@" + sequence + "  ";sequence++;int index = tabbedPane.getTabCount() - 1;tabbedPane.insertTab(newTitle, null, panel, null, index);// 设置选项卡的标题组件JPanel tabComponent = new JPanel();tabComponent.setOpaque(false);tabComponent.setLayout(new BorderLayout());JLabel titleLabel = new JLabel(newTitle);tabComponent.add(titleLabel, BorderLayout.WEST);JLabel iconLabel = new JLabel();iconLabel.setIcon(icon);tabComponent.add(iconLabel, BorderLayout.EAST);tabbedPane.setTabComponentAt(index, tabComponent);// 删除图片添加鼠标监听操作iconLabel.addMouseListener(new MouseAdapter() {@Overridepublic void mousePressed(MouseEvent e) {if (e.getModifiers() == MouseEvent.BUTTON1_MASK) {JLabel source = (JLabel) e.getSource();Component parent = source.getParent();int index = tabbedPane.indexOfTabComponent(parent);tabbedPane.removeTabAt(index);if (index == tabbedPane.getSelectedIndex() && index == tabbedPane.getTabCount() - 1)tabbedPane.setSelectedIndex(index - 1);}}});tabbedPane.setSelectedComponent(panel);}} finally {ignore = false;}}}});JFrame frame = new JFrame();frame.setTitle("点击x关闭选项卡");frame.setSize(600, 480); // 设置大小frame.add(tabbedPane); // 添加组件frame.setLocationRelativeTo(null); // 居中frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置关闭默认操作frame.setVisible(true); // 设置可见}
}

3.效果演示

在这里插入图片描述