Article View: es.comp.lenguajes.java
Article #569Re: Cuando calificar los nombres y cuando no...
From: Ricardo Palomares Martinez
Date: Sun, 08 Apr 2007 17:10
Date: Sun, 08 Apr 2007 17:10
121 lines
4523 bytes
4523 bytes
leonardoazpurua@cantv.net escribió:
> Hola.
>
> Tome un ejemplo, creo que de los que vienen con NetBeans, para jugar
> un poco con el.
>
> Es la aplicacion ContactEditorUI.
>
> Lo primero que noto es que el IDE (NetBeans) inserta toneladas de
> codigo innecesario. Por ejemplo:
>
> buttonGroup1.add(jRadioButton1);
> jRadioButton1.setText("HTML");
> jRadioButton1.setBorder(BorderFactory.createEmptyBorder(0, 0,
> 0, 0));
> jRadioButton1.setMargin(new java.awt.Insets(0, 0, 0, 0));
>
> las dos ultimas lineas puedes comentarlas o dejarlas, y da lo mismo
> (imagino que hay una especie de estandarizacion del codigo generado
> que hace cosas innecesarias si no se modifican las propiedades en
> tiempo de disenho).
Creo que lo que hace NetBeans aquí es no suponer que el comportamiento
de Swing cuando no se especifica algo es el que tiene, porque si no
está documentado, puede cambiar de una versión a otra sin previo
aviso. Por eso define los bordes y márgenes, aunque al no haberle dado
tú valores explícitos, son bordes y márgenes vacíos. :-)
Por cierto, que se supone que no debes tocar el código protegido por
el editor. Es la manera más rápida de que no puedas abrir el
formulario en el editor GUI. :-)
>
> Pero el ejemplo no importa nada, y califica todos los nombres. Es
> decir, en vez de hacer lo que haria uno codificando a mano:
>
> import javax.swing.*;
>
> y luego
>
> private ButtonGroup buttonGroup1;
>
> el IDE no genera ningun import, y en su lugar pone:
>
> private javax.swing.ButtonGroup buttonGroup1;
>
> imagino que es la clase de cosas que pone escamosos a los detractores
> de los IDE.
Hay un motivo para eso, y también hay un bug creado para que el
comportamiento cambie. El motivo es que no hay nada que impida que tú
definas el paquete net.mipaquete.grafico con la clase ButtonGroup
dentro de él; si importas manualmente al principio del archivo ese
paquete y el editor GUI importara javax.swing para definir la variable
buttonGroup así:
private ButtonGroup buttonGroup1;
no sabría a cuál de las dos clases se refiere el código. Para evitar
este tipo de problemas, usa siempre el nombre calificado.
>
> Pero la pregunta no es esa.
>
> Jugando con el ejemplo, mande a suprimir todas las "apariciones de
> javax.swing."
>
> El codigo no compilo, porque no reconocia
>
> border.TitledBorder.DEFAULT_JUSTIFICATION
Normal, no creo que esto te extrañase. :-)
>
> probe a agregar
>
> import javax.swing.border;
>
> escribiendo luego
>
> TitledBorder.DEFAULT_JUSTIFICATION
>
> pero tampoco anda.
Porque se importan clases, no paquetes. Deberías haber escrito:
import javax.swing.border.TitledBorder;
y luego habrías podido usar la propiedad estática
DEFAULT_JUSTIFICATION de la clase TitledBorder, que no hace falta que
califiques porque ya has importado.
> Solo he logrado que compile escribiendo el nombre
> totalmente calificado.
>
> Habra alguien que pueda explicarme como funciona eso?
Aparte de lo que te he dicho, lo único que creo que podría causarte
algún tipo de confusión es si cuando haces:
importa javax.swing.*;
importas cosas como javax.swing.border.TitledBorder. Y la respuesta es
no, el asterisco importa todas las *clases* que cuelgan de
javax.swing, pero no las que cuelgan de javax.swing.<otro_paquete>.
Saludos.
--
If it's true that we are here to help others,
then what exactly are the OTHERS here for?
Technical Details
Message-ID:
<v8kne4-kp6.ln1@Father.family>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.germany.com!aioe.org!Father.family!newsReferences:
<1175993837.599029.45350@d57g2000hsg.googlegroups.com>Show Full Headers
Complete Article Headers
X-Google-Thread: 1116f3,c378bba96c47ef62 X-Google-Attributes: gid1116f3,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.germany.com!aioe.org!Father.family!news From: Ricardo Palomares Martinez <rpm.PUBLI@iespana.es> Newsgroups: es.comp.lenguajes.java Subject: Re: Cuando calificar los nombres y cuando no... Date: Sun, 08 Apr 2007 19:10:23 +0200 Organization: Hogar, dulce hogar Lines: 121 Message-ID: <v8kne4-kp6.ln1@Father.family> References: <1175993837.599029.45350@d57g2000hsg.googlegroups.com> NNTP-Posting-Host: 0Va6f7bvhqDoiMrVyaOvxQ.user.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Complaints-To: abuse@aioe.org User-Agent: Mozilla/5.0 (X11; U; Linux i686; es-ES; rv:1.8.1.2) Gecko/20070221 SeaMonkey/1.1.1 Mnenhy/0.7.4.0