Video de aprendizaje de la novena semana (1)

Primero, el campo de texto JTextArea

Se proporciona un área para manipular múltiples líneas de texto.
A diferencia de JTextField, JTextArea no tiene eventos de acción.
Los cambios en el texto en JTextArea se pueden manejar a través de eventos activados por otro componente de la GUI.
JTextArea no proporciona barras de desplazamiento, por lo que para mostrar el contenido completo, debe cargar las barras de desplazamiento para el campo de texto.

Segundo, administrador de diseño de BoxLayout

Coloque el componente GUI horizontalmente a lo largo del eje x del contenedor, o verticalmente a lo largo del eje Y del contenedor. El contenedor Box usa BoxLayout de forma predeterminada.
Mediante el método estático de la clase Box, createHorizontalBox () devuelve una referencia al contenedor Box. El Box creado contiene un BoxLayout horizontal que organiza los componentes de izquierda a derecha en el orden en que se agregaron.
El método estático createVerticalBox () de la clase Box devuelve una referencia al contenedor Box. El Box creado contiene un BoxLayout vertical, y los componentes se ordenan de arriba a abajo en el orden en que se agregan.

Tres componentes transparentes en caja

Si desea ajustar el espacio entre componentes en Box, utilizará los componentes transparentes proporcionados por Box como relleno para llenar el espacio entre componentes.
El contenedor Box proporciona 4 componentes transparentes, a saber: área rígida; puntal; pegamento; relleno.


Puntal: el usuario solo puede definir el tamaño en una dirección, es decir, en dirección horizontal o vertical, que se puede utilizar para establecer con precisión la distancia entre los componentes.
relleno: es una clase interna de Box. Es similar al área rígida. Ambos pueden especificar el tamaño horizontal o vertical, pero pueden establecer los tamaños mínimo, máximo y prioritario.
Pegamento: cuando el usuario coloca pegamento entre dos controles, ocupará el espacio extra entre los dos controles tanto como sea posible, apretando así los dos controles hacia los lados.
Área rígida: es un componente transparente donde los usuarios pueden definir dimensiones horizontales y verticales. Este método agrega un área fija al contenedor, que es un componente GUI invisible con una altura y ancho de píxel fijo.

Cuatro, administrador de diseño GridBagLayout

De manera similar a GridLayout, los componentes se administran en forma de cuadrícula en el contenedor, pero la función es más potente que GridLayout:
(1) Todas las filas y columnas administradas por GridBagLayout pueden ser de diferentes tamaños.
(2) GridLayout limita cada componente a una celda, y los componentes en GridBagLayout pueden ocupar un área rectangular de cualquier tamaño en el contenedor.


GridBagLayout tiene un concepto adicional de restricciones. Se puede entender de esta manera que GridBagLayout es muy personalizable para celdas internas, por lo que este diseño necesita establecer muchas propiedades, y estas propiedades se abstraen en objetos GridBagConstraints, todos los cuales son públicos.


GridBagConstraints.anchor: cuando el componente es más pequeño que su área de visualización, se utiliza para determinar dónde colocar el componente en el área de visualización. NORTE; SUR; OESTE; ESTE; NOROESTE; NOROESTE; NOROESTE; NOROESTE; SURESTE; SURESTE; CENTRO.


GridBagConstraints.fill: cuando el área de visualización del componente es mayor que el tamaño requerido del componente, se utiliza para determinar si (y cómo) ajustar el componente.
GridBagConstraints.NONE: el valor predeterminado.
GridBagConstraints.HORIZONTAL: amplía el componente hasta que sea suficiente para llenar su área de visualización horizontalmente, pero no cambia su altura.
GridBagConstraints.VERTICAL: aumenta el componente hasta que sea suficiente para llenar su área de visualización verticalmente, pero no cambie su ancho.
GridBagConstraints.BOTH: Haz que el componente llene completamente su área de visualización.


GridBagConstraints.gridx; GridBagConstraints.gridy
especifica las filas y columnas en la esquina superior izquierda del componente. La columna más a la izquierda es gridx = 0, y la fila superior es gridy = 0, que en realidad son las coordenadas a partir de (0, 0).


GridBagConstraints.gridwidth; GridBagConstraints.gridheight
especifica el número de celdas en la fila (para gridwidth) o columna (para gridheight) del área de visualización del componente. El valor predeterminado es 1.


GridBagConstraints.weightx; GridBagConstraints.weighty
weight se usa para determinar cómo asignar espacio entre filas (weightx) y columnas (weighty). Cuando se utiliza espacio adicional, la cuadrícula se vuelve más ancha / alta.


Por ejemplo, los valores de weightx son 10, 20 y 30. respectivamente. En la dirección x del contenedor, es decir, la dirección de la columna, se asignan tres celdas de la cuadrícula de acuerdo con una determinada proporción. Cuanto mayor sea el valor del peso, mayores serán las celdas de la cuadrícula. El tamaño del valor es irrelevante. La función del valor ponderado es permitir que el contenedor distribuya la cuadrícula en las direcciones horizontal y vertical en la relación del valor establecido, y esta relación no cambia cuando cambia el tamaño del contenedor.
Cuando solo un componente establece el valor de peso (weightx / weighty), los otros componentes no participan en la asignación de espacio y todo el espacio sobrante se reserva para el componente.

Five, slider JSlider

Permite a los usuarios elegir entre un rango de valores enteros. Es un JSlider con marcas y controles deslizantes.
JSlider puede ser horizontal o vertical. La posición relativa del control deslizante representa el valor actual de JSlider.
Para la dirección horizontal, el valor mínimo es su extremo izquierdo y el valor máximo es su extremo derecho. Para la dirección vertical, el valor mínimo es su extremo inferior y el valor máximo es su extremo superior. El método setInveted (true) de JSlider puede invertir la posición del valor mínimo y máximo de JSlider.


JSlider generará ChangeEvent en respuesta a la interacción del usuario. El oyente que maneja este evento es un objeto que implementa la interfaz ChangeListener e implementa el método stateChanged.

Seis, el menú

El menú en Swing solo puede vincularse al objeto de la clase que proporciona el método setJMenuBar. Estas dos clases son: JFrame; JApplet.

Siete, composición del menú Swing

Barra de menú: JMenuBar
contiene los métodos necesarios para administrar la barra de menú y es el contenedor del menú.


Menú: JMenu
contiene los métodos necesarios para administrar el menú, que puede contener elementos de menú u otros menús, y otros menús se convierten en sus submenús.


Elementos del menú:
JMenuItem: contiene los métodos necesarios para administrar los elementos del menú. Es un componente interactivo en el menú. Cuando se selecciona, se producirá un evento de acción.
JCheckBoxMenuItem: contiene los métodos necesarios para administrar elementos de menú que se pueden activar o desactivar. Cuando se selecciona JCheckBoxMenuItem, aparece una marca de verificación a la izquierda del elemento del menú; selecciónelo nuevamente para eliminar la marca de verificación.
JRadioButtonMenuItem: contiene los métodos necesarios para administrar los elementos del menú que pueden activarse o desactivarse. Cuando se mantienen múltiples JRadioButtonMenuItems como parte del ButtonGroup, solo se seleccionará un elemento en el grupo a la vez.


La barra de menú es la raíz de todos los menús y elementos de menú.

Op 、 JPopupMenu

Menú desplegable Cuando el usuario presiona o suelta el botón derecho del mouse, se produce un evento de activación emergente.

Nueve eventos de mouse

Cualquier componente GUI derivado de java.awt.Component puede capturar eventos del mouse.
Interfaz para manejar eventos del mouse (MouseEvent): (1) MouseListener (2) MouseMotionListener.
Cuando el mouse interactúa con un Componente, si este Componente registra un detector de eventos apropiado, llamará a los métodos definidos en las dos interfaces anteriores para manejar varios eventos del mouse.

Supongo que te gusta

Origin www.cnblogs.com/caihan/p/12689587.html
Recomendado
Clasificación