Bueno, las respuestas dadas a continuación explican brillantemente cómo el software no es más que un conjunto de lógica diferente. Así que solo te daré un ejemplo. Recientemente completé mi curso de Java de un instituto. Allí, como tarea final, tuve que presentar un proyecto, una calculadora simple. Ahora, esa fue realmente una tarea aburrida. Me refiero a común en serio? Quería hacer algo más. Ahora ese instituto tenía un software que administraba la información de sus estudiantes, como el número de admisión de un estudiante, nombre, curso, tarifas, saldo, etc. Así que tomé su permiso y simplemente creé una réplica exacta de ese software que consistía en siete clases diferentes para siete diferentes marcos (Windows). Ahora el total consistía en alrededor de 3000 líneas y confía en mí. No necesitaba un solo If-Else o un bucle en todo el programa. Como prueba, proporciono el código completo de una de esas 7 clases. Entonces, lo que quiero decir es que nada en la programación es seguro. No podemos genrelizar algo y decir que siempre usaremos XYZ (aunque puede haber algunas excepciones). Solo depende de nuestra necesidad.
Espero eso ayude…
paquete shashank.project;
import javax.swing. *;
import java.sql.Connection;
importar java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import javax.swing.table.DefaultTableModel;
- ¿Contratarías un campista de Free Code Camp?
- ¿Cuál es la forma más creativa de manejar defectos / errores provocados por un probador en el software que desarrolló, que técnicamente no son errores?
- ¿Cuáles son algunos de los fragmentos de código más ineficientes que has visto en el trabajo?
- ¿Cuál es el código más peligroso jamás escrito?
- ¿Cuál prefiere, desarrollo de software incrustado vs. aplicación? ¿Cuál tiene más demanda? ¿Tiene algún consejo para un futuro ingeniero de software integrado?
/ **
* *
* @autor Shashank
* /
AddStudent de clase pública extiende JFrame {
Conexión pública estática conn = null;
Declaración estática pública stmt = null;
ResultSet público estático rs = nulo;
Cadena estática JDBC_Driver = “com.mysql.jdbc.Driver”;
Cadena estática DB_URL = “jdbc: mysql: // localhost: 3306 / Shashank”;
usuario de cadena estática = “root”;
Pase de cadena estático = “0000”;
Cadena estática SQL = “”;
static int admn = 0;
AddStudent público () {
initComponents ();
initConnection ();
tratar {
stmt = conn.createStatement ();
// Las siguientes 6 líneas obtienen el último valor de admin no para actualizar el valor
// para la siguiente entrada automáticamente
SQL = “SELECCIONAR Admn_No de Stud_Details ORDENAR POR Admn_No DESC LIMIT 1;”;
rs = stmt.executeQuery (SQL);
while (rs.next ()) {
admn = rs.getInt (“admn_no”);
}
} catch (SQLException ex) {
Logger.getLogger (AddStudent.class.getName ()). Log (Level.SEVERE, null, ex);
}
LAdmnNo.setText (String.valueOf (++ admn));
}
void initConnection ()
{
tratar {
System.out.println (“Registrando …”);
Class.forName (JDBC_Driver);
System.out.println (“¡El registro se realizó correctamente!”);
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog (nulo, “Problema de registro !!!”, “Error”, JOptionPane.ERROR_MESSAGE);
}
tratar {
System.out.println (“Conectando …”);
conn = DriverManager.getConnection (DB_URL, usuario, pase);
System.out.println (“¡Conexión exitosa!”);
} catch (SQLException ex) {
JOptionPane.showMessageDialog (nulo, “Problema de conexión !!!”, “Error”, JOptionPane.ERROR_MESSAGE);
}
}
/ **
* Este método se llama desde el constructor para inicializar el formulario.
* ADVERTENCIA: NO modifique este código. El contenido de este método es siempre
* regenerado por el Editor de formularios.
* /
@SuppressWarnings (“sin marcar”)
//
privado vacío initComponents () {
jTextField3 = new javax.swing.JTextField ();
jSpinner1 = new javax.swing.JSpinner ();
jLabel1 = new javax.swing.JLabel ();
jLabel2 = new javax.swing.JLabel ();
jLabel3 = new javax.swing.JLabel ();
jLabel4 = new javax.swing.JLabel ();
jLabel5 = new javax.swing.JLabel ();
jButton1 = new javax.swing.JButton ();
tname = new javax.swing.JTextField ();
tCname = new javax.swing.JTextField ();
tfees = new javax.swing.JTextField ();
ComboDate = new javax.swing.JComboBox ();
ComboMonth = new javax.swing.JComboBox ();
ComboYear = new javax.swing.JComboBox ();
jLabel6 = new javax.swing.JLabel ();
LAdmnNo = new javax.swing.JLabel ();
Balance = new javax.swing.JLabel ();
EMI = nuevo javax.swing.JLabel ();
TxtBal = new javax.swing.JTextField ();
ComboDate2 = new javax.swing.JComboBox ();
ComboMonth2 = new javax.swing.JComboBox ();
ComboYear2 = new javax.swing.JComboBox ();
jTextField3.setText (“jTextField3”);
setDefaultCloseOperation (javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
jLabel1.setFont (nuevo java.awt.Font (“Comic Sans MS”, 1, 18)); // NOI18N
jLabel1.setText (“Nuevos estudiantes”);
jLabel2.setFont (nuevo java.awt.Font (“Comic Sans MS”, 1, 12)); // NOI18N
jLabel2.setText (“Nombre”);
jLabel3.setFont (nuevo java.awt.Font (“Comic Sans MS”, 1, 12)); // NOI18N
jLabel3.setText (“Nombre del curso”);
jLabel4.setFont (nuevo java.awt.Font (“Comic Sans MS”, 1, 12)); // NOI18N
jLabel4.setText (“Fecha de incorporación”);
jLabel5.setFont (nuevo java.awt.Font (“Comic Sans MS”, 1, 12)); // NOI18N
jLabel5.setText (“Tarifas totales”);
jButton1.setText (“Enviar”);
jButton1.addActionListener (new java.awt.event.ActionListener () {
public void actionPerformed (java.awt.event.ActionEvent evt) {
jButton1ActionPerformed (evt);
}
});
tfees.addActionListener (new java.awt.event.ActionListener () {
public void actionPerformed (java.awt.event.ActionEvent evt) {
tfeesActionPerformed (evt);
}
});
ComboDate.setModel (new javax.swing.DefaultComboBoxModel (new String [] {“Day”, “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”}));
ComboDate.addActionListener (new java.awt.event.ActionListener () {
public void actionPerformed (java.awt.event.ActionEvent evt) {
ComboDateActionPerformed (evt);
}
});
ComboMonth.setModel (new javax.swing.DefaultComboBoxModel (new String [] {“Month”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8 “,” 9 “,” 10 “,” 11 “,” 12 “}));
ComboYear.setModel (new javax.swing.DefaultComboBoxModel (new String [] {“Year”, “2010”, “2011”, “2012”, “2013”, “2014”, “2015”, “2016”, “2017 “,” 2018 “,” 2019 “,” 2020 “,” 2021 “,” 2022 “,” 2020 “,” 2021 “,” 2022 “,” 2023 “,” 2024 “,” 2025 “,” 2026 “, “2027”, “2028”, “2029”, “2030”}));
jLabel6.setFont (nuevo java.awt.Font (“Comic Sans MS”, 1, 14)); // NOI18N
jLabel6.setText (“Admisión No:”);
LAdmnNo.setFont (nuevo java.awt.Font (“Comic Sans MS”, 0, 14)); // NOI18N
Balance.setFont (nuevo java.awt.Font (“Comic Sans MS”, 1, 12)); // NOI18N
Balance.setText (“Balance”);
EMI.setFont (nuevo java.awt.Font (“Comic Sans MS”, 1, 12)); // NOI18N
EMI.setText (“Fecha EMI”);
ComboDate2.setModel (new javax.swing.DefaultComboBoxModel (new String [] {“Day”, “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”}));
ComboMonth2.setModel (new javax.swing.DefaultComboBoxModel (new String [] {“Month”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8 “,” 9 “,” 10 “,” 11 “,” 12 “}));
ComboYear2.setModel (new javax.swing.DefaultComboBoxModel (new String [] {“Year”, “2010”, “2011”, “2012”, “2013”, “2014”, “2015”, “2016”, “2017 “,” 2018 “,” 2019 “,” 2020 “,” 2021 “,” 2022 “,” 2020 “,” 2021 “,” 2022 “,” 2023 “,” 2024 “,” 2025 “,” 2026 “, “2027”, “2028”, “2029”, “2030”}));
javax.swing.GroupLayout layout = new javax.swing.GroupLayout (getContentPane ());
getContentPane (). setLayout (layout);
layout.setHorizontalGroup (
layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addGroup (layout.createSequentialGroup ()
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addGroup (layout.createSequentialGroup ()
.addContainerGap ()
.addComponent (jLabel1))
.addGroup (layout.createSequentialGroup ()
.addGap (70, 70, 70)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addGroup (layout.createSequentialGroup ()
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addComponent (jLabel3)
.addComponent (jLabel2))
.addGap (8, 8, 8)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addComponent (tname)
.addComponent (tCname)))
.addGroup (layout.createSequentialGroup ()
.addComponent (jLabel4)
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent (ComboDate, 0, 57, Short.MAX_VALUE)
.addGap (18, 18, 18)
.addComponent (ComboMonth, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent (ComboYear, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup (layout.createSequentialGroup ()
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addComponent (jLabel5)
.addComponent (Balance)
.addComponent (EMI))
.addGap (22, 22, 22)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addComponent (TxtBal)
.addComponent (tfees)
.addGroup (layout.createSequentialGroup ()
.addComponent (ComboDate2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent (ComboMonth2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap (18, 18, 18)
.addComponent (ComboYear2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addGroup (javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup ()
.addGap (0, 0, Short.MAX_VALUE)
.addComponent (jButton1))
.addGroup (javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup ()
.addComponent (jLabel6)
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent (LAdmnNo, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap (0, 0, Short.MAX_VALUE)))))
.addGap (70, 70, 70))
);
layout.setVerticalGroup (
layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addGroup (layout.createSequentialGroup ()
.addContainerGap ()
.addComponent (jLabel1)
.addGap (23, 23, 23)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent (LAdmnNo, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent (jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent (tname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent (jLabel2))
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.LEADING)
.addComponent (tCname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent (jLabel3))
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent (jLabel4)
.addComponent (ComboDate, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent (ComboMonth, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent (ComboYear, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent (jLabel5)
.addComponent (tfees, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent (Balance)
.addComponent (TxtBal, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap (javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup (layout.createParallelGroup (javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent (EMI)
.addComponent (ComboDate2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent (ComboMonth2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent (ComboYear2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap (18, 18, 18)
.addComponent (jButton1)
.addContainerGap (16, Short.MAX_VALUE))
);
paquete();
} //
private void jButton1ActionPerformed (java.awt.event.ActionEvent evt) {
tratar {
// Las siguientes 6 variables de cadena obtienen el texto ingresado en el marco de agregar estudiante
Nombre de cadena = tname.getText ();
Curso de cadena = tCname.getText ();
Fecha de cadena = (Cadena) ComboDate.getSelectedItem ();
Cadena mes = (Cadena) ComboMonth.getSelectedItem ();
String year = (String) ComboYear.getSelectedItem ();
Tarifas de cadena = tfees.getText ();
int bal = Integer.parseInt (TxtBal.getText ());
// Las siguientes líneas agregan una nueva fila a la JTable
Modelo DefaultTableModel;
modelo = (DefaultTableModel) MainActivity.MainTable.getModel ();
model.addRow (nuevo objeto [] {“”, “”, “”, “”, “”, “”});
// El valor de SQL se usa para agregar una nueva entrada en la tabla;
stmt = conn.createStatement ();
SQL = “INSERTAR EN Stud_Details VALUES (” +
(admn) + “,” + “\” “+ nombre +” \ “” + “,” + “\” “+ curso +” \ “” + “,” +
“\” “+ fecha +” – “+ mes +” – “+ año +” \ “” + “,” + tarifas + “,” + bal + “)”;
System.out.println (SQL);
// Esta declaración actualiza la tabla llamada stud_details
stmt.executeUpdate (SQL);
disponer();
} catch (SQLException ex) {
System.out.println (“¡Error al agregar detalles del alumno!”);
}
}
privado vacío ComboDateActionPerformed (java.awt.event.ActionEvent evt) {
// TODO agregue su código de manejo aquí:
}
private void tfeesActionPerformed (java.awt.event.ActionEvent evt) {
// TODO agregue su código de manejo aquí:
}
/ **
* @param argumenta los argumentos de la línea de comando
* /
public static void main (String args []) {
/ * Establecer el aspecto y la sensación de Nimbus * /
//
/ * Si Nimbus (introducido en Java SE 6) no está disponible, manténgase con el aspecto predeterminado.
* Para más detalles, vea Cómo configurar la apariencia.
* /
tratar {
for (javax.swing.UIManager.LookAndFeelInfo información: javax.swing.UIManager.getInstalledLookAndFeels ()) {
if (“Nimbus” .equals (info.getName ())) {
javax.swing.UIManager.setLookAndFeel (info.getClassName ());
rotura;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger (AddStudent.class.getName ()). log (java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger (AddStudent.class.getName ()). log (java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger (AddStudent.class.getName ()). log (java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger (AddStudent.class.getName ()). log (java.util.logging.Level.SEVERE, null, ex);
}
//
/ * Crear y mostrar el formulario * /
java.awt.EventQueue.invokeLater (new Runnable () {
public void run () {
nuevo AddStudent (). setVisible (verdadero);
}
});
}
// Declaración de variables – no modificar
private javax.swing.JLabel Balance;
private javax.swing.JComboBox ComboDate;
private javax.swing.JComboBox ComboDate2;
private javax.swing.JComboBox ComboMonth;
private javax.swing.JComboBox ComboMonth2;
private javax.swing.JComboBox ComboYear;
private javax.swing.JComboBox ComboYear2;
private javax.swing.JLabel EMI;
private javax.swing.JLabel LAdmnNo;
private javax.swing.JTextField TxtBal;
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JSpinner jSpinner1;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField tCname;
privado javax.swing.JTextField tfees;
nombre privado t javax.swing.JTextField;
// Fin de la declaración de variables
}