私は自分の問題の解決策を何時間も探していました。私は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();
}
この例では、ビジュアル スタジオのイベント リストに "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;
}
}