java按钮下拉_java按钮下拉菜单

MyMenuButton类(自己做的按钮)

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import javax.swing.JPopupMenu;

import javax.swing.JToggleButton;

import javax.swing.SwingConstants;

public class MyMenuButton extends JToggleButton{

private JPopupMenu menu;

private static int i=0;

public MyMenuButton(){

super();

this.setText("▲");

this.setHorizontalTextPosition(SwingConstants.RIGHT );

addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent arg0) {

if(isSelected()){

setText("▼");

menu.show(MyMenuButton.this, 0, MyMenuButton.this.getHeight());

}else{

setText("▲");

menu.setVisible(false);

}

}

});

}

public MyMenuButton(final String label){

super(label);

this.setText("▲ "+label);

this.setHorizontalTextPosition(SwingConstants.RIGHT );

addActionListener(new ActionListener(){

@Override

public void actionPerformed(ActionEvent arg0) {

if(isSelected()){

setText("▼"+label);

menu.show(MyMenuButton.this, 0, MyMenuButton.this.getHeight());

}else{

setText("▲"+label);

menu.setVisible(false);

}

}

});

}

public void addMenu(JPopupMenu menu){

this.menu=menu;

}

}

Test类(测试类)

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JPopupMenu;

public class Test extends JFrame{//测试类

public Test(){

JPanel p=new JPanel();

//创建弹出菜单

JPopupMenu menu=new JPopupMenu();

menu.add("第一个菜单项");

menu.add("第二个菜单项");

menu.add("第三个个菜单项");

menu.add("第四个菜单项");

MyMenuButton button=new MyMenuButton();//创建按钮

MyMenuButton button2=new MyMenuButton("按钮菜单");

//把建好的菜单放到按钮上

button.addMenu(menu);

button2.addMenu(menu);

p.add(button);

p.add(button2);

this.add(p);

this.setSize(300, 200);

this.setLocationRelativeTo(null);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.setVisible(true);

}

public static void main(String[] args) {

new Test();

}

}

结果如图:

0_1270897190HDPL.gif

0_12708972100lzo.gif

0_1270897275088h.gif

注释:可以根据需求进行修改。

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下拉菜单和弹出式菜单都是常用的用户界面交互方式,下面是它们的实现方法: 1. 下拉菜单 下拉菜单通常在菜单栏或工具栏中使用,用户点击下拉菜单后,会弹出一个菜单列表,用户可以选择一个选项,或者取消菜单操作。下面是实现下拉菜单的步骤: (1)在菜单栏或工具栏中添加一个下拉菜单按钮,用户点击该按钮后,弹出下拉菜单列表。 (2)创建下拉菜单列表,通过添加菜单项实现。菜单项可以添加图标、文本等内容。 (3)为下拉菜单按钮添加事件监听器,当用户点击按钮时,显示下拉菜单列表。 (4)为下拉菜单列表中的菜单项添加事件监听器,当用户点击某个菜单项时,执行相应的操作。 2. 弹出式菜单 弹出式菜单通常在用户右键单击某个组件时使用,用户右键单击后,会弹出一个菜单列表,用户可以选择一个选项,或者取消菜单操作。下面是实现弹出式菜单的步骤: (1)为组件添加事件监听器,当用户右键单击时,弹出弹出式菜单列表。 (2)创建弹出式菜单列表,通过添加菜单项实现。菜单项可以添加图标、文本等内容。 (3)为弹出式菜单列表中的菜单项添加事件监听器,当用户点击某个菜单项时,执行相应的操作。 Java中可以使用Swing或JavaFX框架实现下拉菜单和弹出式菜单。具体实现步骤可以参考官方文档或者相关教程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值