Introducción a Java Swing

Introducción a los componentes de la interfaz de usuario

Antes de comenzar a aprender Swing, debe responder una pregunta para principiantes reales: ¿Qué es la IU? La respuesta para los principiantes es "interfaz de usuario". Pero debido a que el objetivo de este tutorial es asegurarse de que ya no sea solo un principiante, necesitamos una definición más avanzada que esta.

Entonces, vuelvo a hacer esta pregunta: ¿Qué es la IU? Puede definirlo como el botón que presiona, la barra de direcciones para escribir, la ventana abierta y cerrada, etc. Todos estos son elementos de la interfaz de usuario, pero además de los que ve en la pantalla, hay más Son elementos de la interfaz de usuario. Como el mouse, el teclado, el volumen, el color de la pantalla, las fuentes utilizadas y la posición de un objeto en relación con otro objeto, se incluyen en la interfaz de usuario. De hecho, cualquier objeto que desempeñe un papel en la interacción entre la computadora y el usuario es una parte integral de la interfaz de usuario. Esto parece bastante simple, pero debería sorprenderse de que muchas personas y grandes empresas hayan estado trabajando en él durante muchos años. De hecho, el único curso de algunas carreras universitarias es estudiar este tipo de interacción.
Swing es un kit de desarrollo que se utiliza para desarrollar la interfaz de usuario de aplicaciones Java. Proporciona una interfaz visual interactiva para Java, lo que permite que los programas se ejecuten sin la consola.

Ahora miramos el contenido específico en el paquete Swing

JFrame:代表一个界面的窗口,也就是一个程序的门面,我们在创建图形化界面的时候必须要首先创建这个窗口

JLabel:这是一个标签组件,仅仅用于显示文字,图像等内容。这是Swing最简单的一个组件。

JBtton:这是按钮组件,我们可以为其添加事件。

JTextField:这是一个单行文本框,用于接收输入的文本
JPasswordField:这是一个密码文本框

Jpanel:这是一个面板组件,相当于一个小容器

A continuación, echemos un vistazo a la apariencia de Java Swing a través de un simple código "HelloWorld"

package swing;

import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingConstants;

public class HelloWorldSwing {
    
    
    /**{
     * 创建并显示GUI。出于线程安全的考虑,
     * 这个方法在事件调用线程中调用。
     */
private static JFrame frame;
private static JLabel label;
    private static void createAndShowGUI() {

         // 创建及设置窗口
        frame = new JFrame("HelloWorldSwing");
//创建容器
        Container c=frame.getContentPane();
        // 添加 "Hello World" 标签
        label = new JLabel("Hello World");

        //设置标签居中显示
        label.setHorizontalAlignment(SwingConstants.CENTER);
        c.add(label);

        // 显示窗口
        frame.setSize(500,500);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
       createAndShowGUI();
    }
}

Como puede ver en el código anterior, primero instanciamos una ventana y luego obtenemos una clase Container a través del método getContentPane ()

Deberíamos tener un concepto tal que la ventana de los componentes de Swing generalmente está relacionada con componentes y contenedores, por lo que después de que se crea el objeto de ventana JFrame, necesitamos llamar al método getContentPane () para convertir la ventana en un contenedor, y luego agregar varios componentes y Establece el diseño. Si necesita agregar un componente al contenedor, podemos usar el método add () en la clase Container para agregarlo.
Por ejemplo, el código anterior:

c.add(label);

En este código, agregamos nuestro componente de etiqueta al contenedor a través del método add ().

其实这个Swing无非就是将一个个组件添加到容器中去,设置组件的属性(对齐方式啊,颜色啊,大小啊),为组件添加响应事件(按了这个按钮会怎样,离开这个文本框会怎样等等),设置布局管理器(就是设置各个组件的排列方式)。

A continuación modificamos el programa anterior, agregamos un botón al programa, después de presionar este botón, el texto que se muestra en la interfaz lo dejamos que se convierta en "Hola, mundo"

public class HelloWorldSwing {
    
    
    /**{
     * 创建并显示GUI。出于线程安全的考虑,
     * 这个方法在事件调用线程中调用。
     */
    private static JFrame frame;
    private static JLabel label;
    private static JPanel jp1;
    private static JPanel jp2;
    private static Button change;
    private static void createAndShowGUI() {

       // 创建及设置窗口
         frame = new JFrame("Hello World");
        Container c=frame.getContentPane();
        // 添加 "Hello World" 标签
        label = new JLabel("Hello World");

        //实例化按钮组件
        change=new Button("change");

        //为按钮添加响应时间
        change.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent arg0) {
                // TODO Auto-generated method stub

                //改变标签中的文字
                label.setText("你好,世界");
            }
        });
        //设置居中显示
        label.setHorizontalAlignment(SwingConstants.CENTER);

        //实例化面板
        jp1=new JPanel();
        jp2=new JPanel();

        //向面板中添加内容
        jp1.add(label);
        jp2.add(change);

        //向容器中添加内容
        c.add(BorderLayout.NORTH,jp1);
        c.add(BorderLayout.SOUTH,jp2);

        // 显示窗口
        frame.setSize(500,500);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
       createAndShowGUI();
    }
}

Podemos ver que en el código anterior hemos agregado dos paneles JPanel. Esto es para separar la "etiqueta" y el "botón". Luego creamos un componente de botón y le agregamos un evento de escucha. El contenido es cambiar el texto en la etiqueta. A continuación, agregaremos la "etiqueta" y el "botón" a los dos paneles respectivamente, y agregaremos los paneles al contenedor de acuerdo con el diseño de "BorderLayout"


Estrés de nuevo

Swing no es más que agregar cada componente al contenedor, configurar las propiedades del componente (alineación, color, tamaño), agregar eventos de respuesta al componente (qué sucede cuando presionas este botón, qué sucede cuando sales del cuadro de texto, etc. ), configure el administrador de diseño (es decir, configure la disposición de cada componente).

Ok, después de este concepto podemos aprender Swing felices

Supongo que te gusta

Origin blog.csdn.net/mrliqifeng/article/details/73610397
Recomendado
Clasificación