【发布时间】:2016-12-02 16:44:57
【问题描述】:
所以我想要做的是,当我打开程序时,我之前存储的信息会出现在相应的字段中。打开程序时如何加载信息??
这是我的代码
public class Empleadofrm extends javax.swing.JFrame {
ArrayList<Empleado> arr = new ArrayList<Empleado>();
/**
* Creates new form Empleadofrm
*/
public Empleadofrm() {
initComponents();
Cargar();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
lblnombre = new javax.swing.JLabel();
txtnombre = new javax.swing.JTextField();
jLabel2 = new javax.swing.JLabel();
jLabel3 = new javax.swing.JLabel();
jLabel4 = new javax.swing.JLabel();
txtedad = new javax.swing.JTextField();
txtsalario = new javax.swing.JTextField();
btnatras = new javax.swing.JButton();
btnadelante = new javax.swing.JButton();
jLabel7 = new javax.swing.JLabel();
cmbsexo = new javax.swing.JComboBox<String>();
btnguardar = new javax.swing.JButton();
btncancelar = new javax.swing.JButton();
jLabel8 = new javax.swing.JLabel();
btnagregar = new javax.swing.JButton();
txtFecha = new javax.swing.JFormattedTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jLabel1.setText("Nombre: ");
jLabel2.setText("Edad: ");
jLabel3.setText("Salario: ");
jLabel4.setText("Fecha: ");
btnatras.setText("<");
btnadelante.setText(">");
jLabel7.setText("Sexo: ");
cmbsexo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Masculino", "Femenino" }));
btnguardar.setText("Guardar");
btnguardar.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
btnguardarMouseClicked(evt);
}
});
btncancelar.setText("Cancelar");
jLabel8.setFont(new java.awt.Font("Microsoft Tai Le", 0, 24)); // NOI18N
jLabel8.setText("INGRESO DE EMPLEADO");
btnagregar.setText("Agregar");
btnagregar.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
btnagregarMouseClicked(evt);
}
});
txtFecha.setFormatterFactory(new javax.swing.text.DefaultFormatterFactory(new javax.swing.text.DateFormatter()));
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()
.addGap(66, 66, 66)
.addComponent(btnguardar))
.addGroup(layout.createSequentialGroup()
.addGap(44, 44, 44)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(jLabel3)
.addComponent(jLabel2)
.addComponent(jLabel1)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel7)
.addComponent(jLabel4)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
.addComponent(txtedad, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 170, Short.MAX_VALUE)
.addComponent(txtnombre, javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(txtsalario))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(lblnombre, javax.swing.GroupLayout.PREFERRED_SIZE, 192, javax.swing.GroupLayout.PREFERRED_SIZE)
.addGroup(layout.createSequentialGroup()
.addComponent(btnatras)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(btnadelante))))
.addComponent(jLabel8)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGap(53, 53, 53)
.addComponent(btnagregar)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, Short.MAX_VALUE)
.addComponent(btncancelar)
.addGap(151, 151, 151))
.addComponent(cmbsexo, 0, 170, Short.MAX_VALUE)
.addComponent(txtFecha))))
.addContainerGap(15, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(9, 9, 9)
.addComponent(jLabel8)
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(lblnombre)
.addComponent(txtnombre, 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(jLabel2)
.addComponent(txtedad, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(btnatras)
.addComponent(btnadelante))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(txtsalario, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel4)
.addComponent(txtFecha, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel7)
.addComponent(cmbsexo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(btnguardar)
.addComponent(btncancelar)
.addComponent(btnagregar))
.addContainerGap(81, Short.MAX_VALUE))
);
pack();
}// </editor-fold>
private void btnagregarMouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
Empleado e1 = new Empleado();
e1.setNombre(this.txtnombre.getText());
e1.setEdad(Integer.parseInt(this.txtedad.getText()));
e1.setSalario(Double.parseDouble(this.txtsalario.getText()));
e1.setFecha(this.txtFecha.getText());
e1.setSexo(this.cmbsexo.getSelectedItem().toString());
arr.add(e1);
JOptionPane.showMessageDialog(null,"empleado agregado");
}
private void btnguardarMouseClicked(java.awt.event.MouseEvent evt) {
File f = new File("ControlEmpleados.txt");
try{
FileWriter fw = new FileWriter(f);
for(Empleado e: arr){
fw.write(e.toString());
}
fw.close();
}
catch(Exception e){}
JOptionPane.showMessageDialog(null,"Empleados han sido guardados");
}
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Empleadofrm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Empleadofrm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Empleadofrm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Empleadofrm.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Empleadofrm().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JButton btnadelante;
private javax.swing.JButton btnagregar;
private javax.swing.JButton btnatras;
private javax.swing.JButton btncancelar;
private javax.swing.JButton btnguardar;
private javax.swing.JComboBox<String> cmbsexo;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel lblnombre;
private javax.swing.JFormattedTextField txtFecha;
private javax.swing.JTextField txtedad;
private javax.swing.JTextField txtnombre;
private javax.swing.JTextField txtsalario;
// End of variables declaration
private void Cargar() {
}
}
这是我的课:
public class Empleado {
private String nombre;
private int edad;
private double salario;
private String fecha;
private String sexo;
public Empleado() {
}
public Empleado(String nombre, int edad, double salario, String fecha, String sexo) {
this.nombre = nombre;
this.edad = edad;
this.salario = salario;
this.fecha = fecha;
this.sexo = sexo;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public int getEdad() {
return edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
public String getFecha() {
return fecha;
}
public void setFecha(String fecha) {
this.fecha = fecha;
}
@Override
public String toString() {
return nombre + "//" + edad + "//" + salario + "//" + fecha + "//" + sexo + "\r\n";
}
}
【问题讨论】:
-
Cargar应该从文件中读取? -
使用属性,或者序列化,或者数据库,或者XMLEncoder,...
-
cargar是我试图添加代码但我删除的地方 -
进入 Netbeans 并禁用完全合格的包 b.s.没有人愿意查看自动生成的代码。
标签: java jframe jtextfield