oct 09

Método recursivo para setear propiedades a todos los componentes swing contenidos en el que se mande. Por ejemplo le mandas el nombre de un panel y todos los que estén dentro de el quedarán a no editable. Pero puedes aplicar los cambios que quieras y solo a determinadas instancias. Por ejemplo, si solo quieres poner en rojo la letra de las JLabel borras todo excepto la llamada recursiva y pones:

1
if(component instanceof JLabel) ((JLabel) component).setForeground(Color.RED);

NOTA: IntegerField, LimitedTextField y DecimalField no son componentes propios de swing, si no variaciones del JTextField creadas por un compañero y yo mismo para determinados propósitos. Y el componente JDateChooser está sacado del JCalendar, puedes encontrar la librería en esta web.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
private void enableFields(boolean option, JComponent jCompo) {
	Component [] arrayCompo = jCompo.getComponents();
	for (Component component : arrayCompo) {
		if(component instanceof IntegerField)       ((IntegerField) component).setEnabled(option);
		if(component instanceof LimitedTextField)   ((LimitedTextField) component).setEnabled(option);
		if(component instanceof DecimalField)       ((DecimalField) component).setEnabled(option);
		if(component instanceof JTextField)         ((JTextField) component).setEnabled(option);
		if(component instanceof JTextArea)          ((JTextArea) component).setEnabled(option);
		if(component instanceof JComboBox)          ((JComboBox) component).setEnabled(option);
		if(component instanceof JButton)            ((JButton) component).setEnabled(option);
		if(component instanceof JDateChooser)       ((JDateChooser) component).getDateEditor().setEnabled(option);
		if(component instanceof JRadioButton)       ((JRadioButton) component).setEnabled(option);
		if(component instanceof JCheckBox)          ((JCheckBox) component).setEnabled(option);
		if(component instanceof JSlider)            ((JSlider) component).setEnabled(option);
		if(component instanceof JSpinner)           ((JSpinner) component).setEnabled(option);
		if(component instanceof JComponent)         enableFields(option, (JComponent)component);
	}
}
1
2
3
4
//habilitar
enableFields(true,MiPanel.this);
//deshabilitar
enableFields(false,MiPanel.this);
Etiquetas:
ago 07

En los mejores cines:

Etiquetas:
abr 16

Tengo esto muy abandonado, pero entre estudios y otras situaciones no dispongo de demasiado tiempo y ganas. Ahora mismo estoy de practicas en una empresa de software, de momento estoy haciendo pruebas y leyendo documentación de Java, JSP y demás derivados.

Hoy he hecho una clase para conectar a base de datos, y la pongo aquí para compartirla y revivir un poco el blog:

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
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
public class Conectadb{
 
 
//variables miembro
 
    private String usuario;
    private String clave;
    private String url;
    private String driverClassName;
    private Connection conn = null;
    private Statement estancia;
 
//CONSTRUCTORES
 
    //Constructor que toma los datos de conexion por medio de parametros
    public Conectadb(String usuario, String clave, String url, String driverClassName) {
        this.usuario = usuario;
        this.clave = clave;
        this.url = url;
        this.driverClassName = driverClassName;
    }
 
    //Constructor que crea la conexion sin parametros con unos definidos en la clase
    //(meter los datos correspondientes)
    public Conectadb() {
        //poner los datos apropiados
        this.usuario = "usuario";
        this.clave = "clave";
        this.url = "xxxx:xxxx://url:puerto/lugar";
        this.driverClassName = "el.driver.de.la.base.datos";
    }
 
    //metodos para recuperar los datos de conexion
    public String getClave() {
        return clave;
    }
 
    public String getUrl() {
        return url;
    }
 
    public String getUsuario() {
        return usuario;
    }
 
    public Connection getConn() {
        return conn;
    }
 
    public String getDriverClassName() {
        return driverClassName;
    }
 
    //metodos para establecer los valores de conexion
    public void setClave(String clave) {
        this.clave = clave;
    }
 
    public void setUrl(String url) {
        this.url = url;
    }
 
    public void setUsuario(String usuario) throws SQLException {
        this.usuario = usuario;
    }
 
    public void setConn(Connection conn) {
        this.conn = conn;
    }
 
    public void setDriverClassName(String driverClassName) {
        this.driverClassName = driverClassName;
    }
 
//la conexion propiamente dicha
 
    public void conectar() throws SQLException {
        try {
            Class.forName(this.driverClassName).newInstance();
            this.conn = DriverManager.getConnection(this.url, this.usuario, this.clave);
 
        } catch (Exception err) {
            System.out.println("Error " + err.getMessage());
        }
    }
    //Cerrar la conexion
 
    public void cierraConexion() throws SQLException {
        this.conn.close();
    }
 
//METODOS PARA TRABAJAR CON LA BASE DE DATOS
 
    public ResultSet consulta(String consulta) throws SQLException {
        this.estancia = (Statement) conn.createStatement();
        return this.estancia.executeQuery(consulta);
    }
 
    public void actualizar(String actualiza) throws SQLException {
        this.estancia = (Statement) conn.createStatement();
        estancia.executeUpdate(actualiza);
    }
 
    public ResultSet borrar(String borra) throws SQLException {
        Statement st = (Statement) this.conn.createStatement();
        return (ResultSet) st.executeQuery(borra);
    }
 
    public int insertar(String inserta) throws SQLException {
        Statement st = (Statement) this.conn.createStatement();
        return st.executeUpdate(inserta);
    }
 
}
Etiquetas:
preload preload preload