我正在开发一个插件。对于UI,我想添加一个箭头和一个标题如下。如果单击按钮,它下面的三个字段将展开或折叠。任何人都知道如何在Java ?在这里输入图像描述中实现它。
发布于 2022-04-03 05:57:47
JMenu可能是合适的。下面是一个演示的小应用程序。
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());
}
}请参阅如何使用菜单
https://stackoverflow.com/questions/71722967
复制相似问题