首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指向右方的箭头指向折叠,向下指向展开(Java)

指向右方的箭头指向折叠,向下指向展开(Java)
EN

Stack Overflow用户
提问于 2022-04-03 04:14:42
回答 1查看 49关注 0票数 0

我正在开发一个插件。对于UI,我想添加一个箭头和一个标题如下。如果单击按钮,它下面的三个字段将展开或折叠。任何人都知道如何在Java ?在这里输入图像描述中实现它。

EN

回答 1

Stack Overflow用户

发布于 2022-04-03 05:57:47

JMenu可能是合适的。下面是一个演示的小应用程序。

代码语言:javascript
复制
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;

import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.event.PopupMenuEvent;
import javax.swing.event.PopupMenuListener;

public class MenuTest {

    private JPanel createButton() {
        JPanel panel = new JPanel();
        JMenu menu = new JMenu("George  \u25B6");
        menu.setBorder(BorderFactory.createLineBorder(Color.black));
        menu.getPopupMenu().addPopupMenuListener(new PopupMenuListener() {
            
            @Override
            public void popupMenuWillBecomeVisible(PopupMenuEvent e) {
                menu.setText("George  \u25BC");
            }
            
            @Override
            public void popupMenuWillBecomeInvisible(PopupMenuEvent e) {
                menu.setText("George  \u25B6");
            }
            
            @Override
            public void popupMenuCanceled(PopupMenuEvent e) {
                // Do nothing.
            }
        });
        JMenuItem first = new JMenuItem("Best");
        menu.add(first);
        JMenuItem second = new JMenuItem("Northern");
        menu.add(second);
        JMenuItem last = new JMenuItem("Ireland");
        menu.add(last);
        JMenuBar menuBar = new JMenuBar();
        menuBar.add(menu);
        panel.add(menuBar);
        JButton button = new JButton("Exit");
        button.addActionListener(e -> System.exit(0));
        panel.add(button);
        return panel;
    }

    private void showGui() {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(createButton(), BorderLayout.PAGE_END);
        frame.pack();
        frame.setLocationByPlatform(true);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(() -> new MenuTest().showGui());
    }
}

请参阅如何使用菜单

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71722967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档