Java - Código de C# a Java Swing

 
Vista:

Código de C# a Java Swing

Publicado por Marco (1 intervención) el 10/04/2019 00:08:42
Buenas tardes.

Solicito su amable ayuda para pasar este código de C# a Java, ya que necesito hacer algo similar con swing o javafx.

Llevo poco estudiando en c# pero hay algunas cosas que no me quedan muy claras.

La base de datos tiene el nombre de los formularios y las rutas donde se encuentran.
Lo que no logro bien comprender como utlizo el campo guardado en la base de datos que es texto y lo convierto a una venta que carge los respectivos componentes..

Tengo el siguiente código en c#:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
 
namespace Ctrl_Datos._SIS
{
    public class Cls_Menus : Cls_Seguridad
    {
        #region Miembros de la clase
        SqlCommand com;
        SqlConnection cnn;
        private int id_menu;
        private int id_menupadre;
        private string descripcionmenu;
        private int posicionmenu;
        private int habilitadomenu;
        private string urlmenu;
        private int formularioasociado;
        private int id_perfil;
        private string condicionadicional;
        #endregion
 
        #region "Condiciones para los miembros de la clase"
        private bool bid_menu;
        private bool bid_menupadre;
        private bool bdescripcionmenu;
        private bool bposicionmenu;
        private bool bhabilitadomenu;
        private bool burlmenu;
        private bool bformularioasociado;
        private bool bid_perfil;
        #endregion
 
        #region "Propiedades de la clase"
 
        /// <summary>
        /// Propiedad para el campo Id_Menu
        /// </summary>
        public int Id_Menu
        {
            get
            {
                return id_menu;
            }
            set
            {
                id_menu = value;
                bid_menu = true;
            }
        }
 
        /// <summary>
        /// Propiedad para el campo Id_MenuPadre
        /// </summary>
        public int Id_MenuPadre
        {
            get
            {
                return id_menupadre;
            }
            set
            {
                id_menupadre = value;
                bid_menupadre = true;
            }
        }
 
        /// <summary>
        /// Propiedad para el campo DescripcionMenu
        /// </summary>
        public string DescripcionMenu
        {
            get
            {
                return descripcionmenu;
            }
            set
            {
                descripcionmenu = value;
                bdescripcionmenu = true;
            }
        }
 
        /// <summary>
        /// Propiedad para el campo PosicionMenu
        /// </summary>
        public int PosicionMenu
        {
            get
            {
                return posicionmenu;
            }
            set
            {
                posicionmenu = value;
                bposicionmenu = true;
            }
        }
 
        /// <summary>
        /// Propiedad para el campo HabilitadoMenu
        /// </summary>
        public int HabilitadoMenu
        {
            get
            {
                return habilitadomenu;
            }
            set
            {
                habilitadomenu = value;
                bhabilitadomenu = true;
            }
        }
 
        /// <summary>
        /// Propiedad para el campo UrlMenu
        /// </summary>
        public string UrlMenu
        {
            get
            {
                return urlmenu;
            }
            set
            {
                urlmenu = value;
                burlmenu = true;
            }
        }
 
        /// <summary>
        /// Propiedad para el campo FormularioAsociado
        /// </summary>
        public int FormularioAsociado
        {
            get
            {
                return formularioasociado;
            }
            set
            {
                formularioasociado = value;
                bformularioasociado = true;
            }
        }
 
        /// <summary>
        /// Propiedad para el campo id_Perfil
        /// </summary>
        public int Id_Perfil
        {
            get
            {
                return id_perfil;
            }
            set
            {
                id_perfil = value;
                bid_perfil = true;
            }
        }
 
        /// <summary>
        /// Propiedad para estalecer condicion adicional de busqueda
        /// </summary>
        public string CondicionAdicional
        {
            get
            {
                return condicionadicional;
            }
            set
            {
                condicionadicional = value;
            }
        }
 
        #endregion
 
        #region Constructor
 
		/// <summary>
		/// Inicializa las variables para la conexión a la base de datos
		/// </summary>
        public Cls_Menus()
        {
			com = new SqlCommand();
			cnn = new SqlConnection(ConexionString);
		}
        #endregion
 
        /// <summary>
        /// Retorna los registros que coinciden con los filtros especificados
        /// </summary>
        public DataTable BuscarPerfilesPermisos()
        {
            DataTable dt = new DataTable();
            //Construyendo la condición
            string condicion = "";
            if (id_menu > 0) condicion += " AND T1.Id_Menu =" + id_menu;
            if (id_menupadre > 0) condicion += " AND T1.Id_MenuPadre =" + id_menupadre;
            if (descripcionmenu.Length > 0) condicion += " AND T1.DescripcionMenu Like '%" + descripcionmenu + "%'";
            if (posicionmenu > 0) condicion += " AND T1.PosicionMenu =" + posicionmenu;
            if (habilitadomenu > 0) condicion += " AND T1.HabilitadoMenu =" + habilitadomenu;
            if (urlmenu.Length > 0) condicion += " AND T1.UrlMenu Like '%" + urlmenu + "%'";
            if (formularioasociado > 0) condicion += " AND T1.FormularioAsociado =" + formularioasociado;
            if (id_perfil > 0) condicion += " AND T1.Id_Perfil =" + id_perfil;
            if (condicionadicional.Length > 0) condicion += " AND " + condicionadicional;
            if (condicion != "") condicion = " WHERE " + condicion.Substring(5);
            string sql = @"SELECT T1.Id_Menu, T1.Id_MenuPadre, T1.DescripcionMenu,
					T1.PosicionMenu, 
					T1.HabilitadoMenu, T1.UrlMenu, 
					T1.FormularioAsociado, T1.Id_Perfil 
					FROM SIS.Qry_PerfilesPermisos as T1" + condicion;
            try
            {
                SqlDataAdapter da = new SqlDataAdapter(sql, cnn);
                da.Fill(dt);
                return dt;
            }
            catch (Exception e)
            {
                throw e;
            }
        }//buscar
 
        public bool ValidarCredenciales(string nombreUsuario, string contrasenia)
        {
            String sql = "SELECT Id_Usuario FROM SIS.TBL_Usuarios WHERE IdentificadorUsuario = '" + nombreUsuario + "' AND ContraseniaUsuario = '" + contrasenia + "'";
            try
            {
                SqlCommand sqlCmd = new SqlCommand(sql, cnn);
                sqlCmd.Connection.Open();
                Int32? id_Usuario = (Int32?)sqlCmd.ExecuteScalar();
                sqlCmd.Connection.Close();
                if (id_Usuario.HasValue)
                    return true;
                else return false;
            }
            catch (Exception ex)
            {
                return false;
            }
        }
 
        public int ObtenerPerfilUsuario(string nombreUsuario, string contrasenia)
        {
            String sql = "SELECT Id_Perfil FROM SIS.TBL_Usuarios WHERE IdentificadorUsuario = '" + nombreUsuario + "' AND ContraseniaUsuario = '" + contrasenia + "'";
            try
            {
                SqlCommand sqlCmd = new SqlCommand(sql, cnn);
                sqlCmd.Connection.Open();
                Int32 id_Usuario = Convert.ToInt32(sqlCmd.ExecuteScalar());
                sqlCmd.Connection.Close();
                return id_Usuario;
            }
            catch (Exception ex)
            {
                return -1;
            }
        }
 
        /// <summary>
        /// Obtiene la lista de menus para aplicacion ambiente windows de Acuerdo al perfil del usuario que inicia sesion
        /// </summary>
        /// <returns>Retorna una tabla que contiene los menus para ambiente windows, de Acuerdo al perfil del usuario que inicia sesion</returns>
        public DataTable MenusWindowsDelPerfil(Int32 id_Perfil)
        {
            HabilitadoMenu = 1;
            Id_Perfil = id_Perfil;
            DescripcionMenu = "";
            UrlMenu = "";
            CondicionAdicional = "";
            return BuscarPerfilesPermisos();
        }
 
        public void ObtenerPermisos(int Id_Perfil, String nombreFormulario,
            ref global::System.Windows.Forms.Label Lbl_PermisoEliminacion,
            ref global::System.Windows.Forms.Label Lbl_PermisoEscritura,
            ref global::System.Windows.Forms.Label Lbl_PermisoLectura)
        {
            String sql = "SELECT Lectura, Escritura, Eliminacion FROM [SIS].[Qry_PerfilesPermisos] WHERE Id_Perfil = " + Id_Perfil + " AND UrlMenu LIKE '%" + nombreFormulario + "'";
            try
            {
                SqlDataAdapter sqlDa = new SqlDataAdapter(sql, cnn);
                DataTable permisos = new DataTable("Permisos");
                sqlDa.Fill(permisos);
                if (permisos.Rows.Count == 1)
                {
                    Lbl_PermisoEliminacion.Text += (Convert.ToInt32(permisos.Rows[0]["Eliminacion"]) == 1) ? "SI" : "NO";
                    Lbl_PermisoEscritura.Text += (Convert.ToInt32(permisos.Rows[0]["Escritura"]) == 1) ? "SI" : "NO";
                    Lbl_PermisoLectura.Text += (Convert.ToInt32(permisos.Rows[0]["Lectura"]) == 1) ? "SI" : "NO";
                }
                else
                {
                    Lbl_PermisoEliminacion.Text = "WDF? hay catalogos con el mismo nombre y diferente ubicacion?";
                    Lbl_PermisoEscritura.Text = "WDF? hay catalogos con el mismo nombre y diferente ubicacion?";
                    Lbl_PermisoLectura.Text = "WDF? hay catalogos con el mismo nombre y diferente ubicacion?";
                }
            }
            catch (Exception ex)
            {
                Lbl_PermisoEliminacion.Text = "ERROR";
                Lbl_PermisoEscritura.Text = "ERROR";
                Lbl_PermisoLectura.Text = "ERROR";
            }
        }
    }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace MenuDinamico
{
    public partial class Frm_Mdi_Principal : Form
    {
        private DataTable dtMenus;
        private System.Reflection.Assembly Ensamblado;
        private Ctrl_Datos.Cls_Seguridad Sistema;
        private Int32 id_Perfil;
        public Frm_Mdi_Principal()
        {
            InitializeComponent();
        }
 
        private void Frm_Mdi_Principal_Load(object sender, EventArgs e)
        {
            Frm_Login login = new Frm_Login();
            login.ShowDialog();
            if (login.IngresoCorrecto)
            {
                Ensamblado = System.Reflection.Assembly.GetExecutingAssembly();
                this.MenuPpal.Items.Clear();
                this.CargarMenus(login.PerfilUsuario);
                id_Perfil = login.PerfilUsuario;
            }
            else
            {
                Application.Exit();
            }
        }
 
        private void CargarMenus(Int32 id_Perfil)
        {
            Ctrl_Datos._SIS.Cls_Menus OpcionesMenu = new Ctrl_Datos._SIS.Cls_Menus();
            dtMenus = new DataTable();
            dtMenus = OpcionesMenu.MenusWindowsDelPerfil(id_Perfil);
            foreach (DataRow MenuPadre in dtMenus.Select("Id_MenuPadre=0", "PosicionMenu ASC"))
            {
                ToolStripItem[] Menu = new ToolStripItem[1];
                Menu[0] = new ToolStripMenuItem();
                Menu[0].Name = MenuPadre["Id_Menu"].ToString();
                Menu[0].Text = MenuPadre["DescripcionMenu"].ToString();
                Menu[0].Tag = MenuPadre["UrlMenu"].ToString();
                //Menu[0].Image = (Image)MenuPadre["IconoMenu"];
                //Averiguando si tiene Hijos o no
                if (dtMenus.Select("Id_MenuPadre=" + MenuPadre["Id_Menu"]).Length == 0)
                {
                    //Sino tiene hijos lo agrego a la barra de menu principal
                    //mnu_Principal.Items.Add((String)MenuPadre["DescripcionMenu"], null, new EventHandler(MenuItemClicked));
                    Menu[0].Click += new EventHandler(MenuItemClicked);
                    MenuPpal.Items.Add(Menu[0]);
                }
                else
                {
                    //Si tiene hijos llamo a la funcion recursiva y Agrego el Item sin Evento
                    //AgregarMenuHijo(mnu_Principal.Items.Add((String)MenuPadre["DescripcionMenu"]));
                    MenuPpal.Items.Add(Menu[0]);
                    AgregarMenuHijo(Menu[0]);
                }
            }
        }
 
        private void AgregarMenuHijo(ToolStripItem MenuItemPadre)
        {
            ToolStripMenuItem MenuPadre = (ToolStripMenuItem)MenuItemPadre;
 
            //Obtengo el ID del menu Enviado para saber si tiene hijos o no
            //int Id = (int)(dtMenus.Select("DescripcionMenu='" +MenuPadre.Text+"'")[0]["Id_Menu"]);
            string Id = MenuPadre.Name;
 
 
            //Averiguando si tiene Hijos o no
            if (dtMenus.Select("Id_MenuPadre=" + Id).Length == 0)
            {
                //Si No tiene Hijos Solo Agrego el Evento
                MenuPadre.Click += new EventHandler(MenuItemClicked);
            }
            else
            {
                //Si Aun tiene Hijos
                foreach (DataRow Menu in dtMenus.Select("Id_MenuPadre=" + Id, "PosicionMenu ASC"))
                {
                    ToolStripItem[] NuevoMenu = new ToolStripItem[1];
                    NuevoMenu[0] = new ToolStripMenuItem();
                    NuevoMenu[0].Name = Menu["Id_Menu"].ToString();
                    NuevoMenu[0].Text = Menu["DescripcionMenu"].ToString();
                    NuevoMenu[0].Tag = Menu["UrlMenu"].ToString();
                    //Averiguo se es un separador
                    if (Menu["DescripcionMenu"].ToString() == "-")
                    {
                        //MenuPadre.DropDownItems.Add((String)Menu["DescripcionMenu"]);
                        MenuPadre.DropDownItems.Add(NuevoMenu[0].Text);
                    }
                    else
                    {
                        //Obtengo el ID del Menu del foreach
                        //int IdMenu = (int)dtMenus.Select("DescripcionMenu='" + Menu["DescripcionMenu"]+"'")[0]["Id_Menu"];
                        //int IdMenu = (int)Menu["Id_Menu"];
                        //Averiguando si tiene Hijos o no
                        if (dtMenus.Select("Id_MenuPadre=" + Menu["Id_Menu"]).Length == 0)
                        {
                            //Sino tiene hijos lo agrego al Menu Padre
                            //MenuPadre.DropDownItems.Add((String)Menu["DescripcionMenu"], null, new EventHandler(MenuItemClicked));
                            NuevoMenu[0].Click += new EventHandler(MenuItemClicked);
                            MenuPadre.DropDownItems.Add(NuevoMenu[0]);
                        }
                        else
                        {
                            //Si tiene hijos llamo a la funcion recursiva y Agrego el Item sin Evento
                            //AgregarMenuHijo(MenuPadre.DropDownItems.Add((String)Menu["DescripcionMenu"]));
                            MenuPadre.DropDownItems.Add(NuevoMenu[0]);
                            AgregarMenuHijo(NuevoMenu[0]);
                        }
                    }
                }
            }
        }
 
        private void MenuItemClicked(object sender, EventArgs e)
        {
            // if the sender is a ToolStripMenuItem
            if (sender.GetType() == typeof(ToolStripMenuItem))
            {
                string NombreFormulario = ((ToolStripItem)sender).Tag.ToString();
                Object ObjFrm;
                //Type tipo = default(Type);
                Type tipo = Ensamblado.GetType(Ensamblado.GetName().Name + "." + NombreFormulario);
                if (tipo == null)
                {
                    MessageBox.Show("No se encontró el formulario", "Error de ubicación", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else
                {
                    if (!this.FormularioEstaAbierto(NombreFormulario))
                    {
                        ObjFrm = Activator.CreateInstance(tipo);
                        Plantilla Formulario = (Plantilla)ObjFrm;
                        Formulario.Id_Perfil = id_Perfil;
                        Formulario.MdiParent = this;
                        Formulario.Show();
                    }
                }
            }
        }
 
        private Boolean FormularioEstaAbierto(String NombreDelFrm)
        {
            if (this.MdiChildren.Length > 0)
            {
                for (int i = 0; i < this.MdiChildren.Length; i++)
                {
                    //MessageBox.Show(NombreDelFrm.Substring(NombreDelFrm.IndexOf("Frm_"), NombreDelFrm.Length - NombreDelFrm.IndexOf("Frm_")));
                    if (this.MdiChildren.Name == NombreDelFrm.Substring(NombreDelFrm.IndexOf("Frm_"), NombreDelFrm.Length - NombreDelFrm.IndexOf("Frm_")))
                    {
                        MessageBox.Show("El formulario solicitado ya se encuentra abierto");
                        return true;
                    }
                }
                return false;
            }
            else
                return false;
        }
    }
}

[i]Saludos y muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 973
Bronce
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Código de C# a Java Swing

Publicado por Agustin (170 intervenciones) el 10/04/2019 00:36:46
No creo que nadie te ayude a convertir esto a java, por varias razones:

1 - no se entiende lo que hace tu programa. Esta escrito de una forma super retorcida
2 - Hace por lo menos 10 años que no se usa esta forma de escribir el SQL como strings en C#. Deberias estar usando Entity Framework o alguna otra forma feliz y usable de acceso a datos.
3 - El uso de DataTable ensucia todo tu codigo. DataTable como tal es obsoleto, y deberias reemplazarlo por un modelo estatico.
4 - Si queres que te ayuden vas a tener que pasar la estructura de la base y una explicación clara de que es lo que queres hacer.

Yo por una cuestión de buen gusto no toco codigo java, no me da el estómago para aguantar un lenguaje tan horrendo y arcaico, pero si respondes esas preguntas si queres te ayudo a hacerlo bien en C#.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
-3
Comentar