我一直在寻找几个小时来解决我的问题,我在 Java 语言中有点新的编程,并且已经设法创建了一个包含 6 个自定义按钮的自定义面板,但现在我需要创建一个可以检测到的事件我按下,我已经用 C# 完成了这个,但在 Java 中找不到方法。
这段代码在 C# 中,但我当然需要类似的 Java 代码。
/// <summary>
/// Enumerator with buttons states
/// </summary>
public enum EstadoBoton
{
Aceptar = 1,
Nuevo = 2,
Editar = 3,
Cancelar = 4,
Eliminar = 5,
Imprimir = 6,
Salir = 7
}
/// <summary>
/// Delegate method for buttons events
/// </summary>
/// <param name="edoBoton"></param>
public delegate void BotonPresionado(EstadoBoton edoBoton);
public partial class ctrlBotones : UserControl
{
/// <summary>
/// here I keep the state of the button
/// </summary>
private EstadoBoton estadoBoton;
/// <summary>
/// Event that manages the state of the button
/// </summary>
public event BotonPresionado BotonPresionado
{
add { this.botonpresion += value; }
remove { this.botonpresion -= value; }
}
private BotonPresionado botonpresion;
public ctrlBotones()
{
InitializeComponent();
}
该示例在 Visual Studio 的事件列表中显示名称“BotonPresionado”,因此我可以选择该事件并生成代码。
我会非常感谢你能给我的任何帮助。
提前感谢,如果我的英语不是很好,我很抱歉,还在学习。:)
当我在 GUI 上按下自定义事件时,我忘记编写生成的代码。
//As we can see, it generates en event for this control not for the buttons.
private void ctrlBotones1_BotonPresionado(HerramientasInterfaz.EstadoBoton edoBoton)
{
//I just use a switch to check wich button I pressed.
switch (edoBoton)
{
case HerramientasInterfaz.EstadoBoton.Aceptar:
Aceptar();
break;
case HerramientasInterfaz.EstadoBoton.Nuevo:
Nuevo();
break;
case HerramientasInterfaz.EstadoBoton.Salir:
Close();
break;
}
}