Notas de estudio de la interfaz Java Swing

Tabla de contenido

1. Relación de herencia entre los componentes de Java Swing

2. Marco J

3. JDiálogo

4. Paneles de uso común

5. Componentes de uso común

1. Componente de etiqueta JLabel

2. Componente del botón JButton

3. Barra de menú

4. Componente de texto

5. Componente del cuadro de contraseña

6. Componente de campo de texto

6. Diseños de uso común

1. Diseño de flujo

2. Diseño de borde Diseño de borde

3. Diseño de cuadrícula

7. Oyentes de eventos de uso común

8. JTable


1. Relación de herencia entre los componentes de Java Swing

2. Marco J

JFrame es un contenedor, que es el portador de cada componente.

1. Crea un nuevo objeto JFrame

JFrame jframe = new JFrame();  //创建没有标题的窗口
JFrame jframe = new JFrame(String s);  //创建标题为 s 的窗口

    //JFrame类的setTitle(String s)方法也可设置标题

2. Establezca el tamaño del formulario JFrame.

frame.setLocationRelativeTo(null); puede configurar la ventana para que esté centrada
//通过JFrame的对象名调用以下方法实现对应功能

public void setSize(int width,int height){}  //设置窗口的大小(单位为px)
public void setLocation(int x,int y){}  //设置窗口的位置,默认位置是(0,0)
public void setBounds(int a,int b,int width,int height){}  //设置窗口的初始位置是(a,b),窗口的宽是width,高是height
public void setVisible(boolean b){}  //设置窗口是否可见,默认是false不可见的
public void setResizable(boolean b){}  //设置窗口是否可被用户调整大小,默认是ture可调整
public void dispose(){}  //撤销当前窗口,并释放当前窗口的所使用的资源

public void setExtentedState(int state){}  //设置窗口的扩展状态
    /**
    *  其中state参数取JFrame类中下列类常量
    *  MAXIMIZED_HORIZ
    *  MAXIMIZED_VERT
    *  MAXIMIZED_BOTH
    */

3. Establecer el método de cierre de JFrame

public void setDefaultCloseOperation(int operation)  //该方法用来设置单击窗体右上角的关闭图标后,程序会作出怎样的处理,其中operation参数取JFrame类中的下列int型static常量,程序会根据参数operation的取值作出不同的处理

    /**
    *  DO_NOTHING_ON_CLOSE(什么也不做)
    *  HIDE_ON_CLOSE(隐藏当前窗口)
    *  DISPOSE_ON_CLOSE(隐藏当前窗口,并释放窗口所占有的其他资源)
    *  EXIT_ON_CLOSE(结束窗口所在的应用程序)
    /

3. JDiálogo

        Heredado de la clase java.awt.Dialog. Es otra forma que surge de una forma. Es similar a JFrame y requiere

Llame a getContentPane para convertir el formulario en un contenedor y luego configure el contenido del formulario en el contenedor.

        JDialog: se puede utilizar como JFrame, pero debe estar subordinado a JFrame. Los métodos de la clase JFrame también están en JDialog

Sí, la única diferencia es que JDialog no tiene EXIT_ON_CLOSE en el método de cierre. Al mismo tiempo, debido a que JDialog está subordinado a JFrame,

Entonces, cuando se cierra la ventana JFrame, JDialog también se cerrará y viceversa no se verá afectado.

Constructor

JDialog jdialog = new JDialog();
JDialog jdialog = new JDialog(Frame f);  //指定父窗口
JDialog jdialog = new JDialog(Frame f,String title);  //指定父窗口+标题

4. Paneles de uso común

        El panel también es un contenedor oscilante, se puede utilizar como contenedor para añadir o acomodar otros componentes, pero también debe estar en una posición

Dentro del contenedor.

1、JPanel

        JPanel es el panel más simple, que hereda de la clase java.awt.Container

JFrame jframe = new JFrame("标题");
jframe.setBounds(400,300,1200,1200);
jframe.setVisible(true);
JButton jb = new JButton("按钮");  //new两个按钮组件
JButton jb1 = new JButton("按钮1");
JPanel jp = new JPanel(new FlowLayout());  //生成一个面板

jp.add(jb);  //将两个按钮加入到面板中
jp.add(jb1);
jframe.add(jp);  //将面板加入到另外的容器中

2、Panel de desplazamiento J

        JScrollPane es un panel con barras de desplazamiento. Por lo tanto, utilice este panel cuando necesite colocar un componente grande en un espacio más pequeño. Solo se puede agregar un componente a un JScrollPane, por lo tanto, si necesita agregar varios componentes a un JScrollPane, primero debe agregar los componentes que se agregarán al JPanel y luego agregar el JPanel al JScrollPane.

JFrame jframe = new JFrame("标题");
jframe.setBounds(400,300,1200,1200);
jframe.setVisible(true);
JButton jb = new JButton("按钮");
jb.setSize(800,200);  //设置按钮组件的尺寸
JScrollPane jp = new JScrollPane(jb);  //把按钮组件放在JScrollPane中
jframe.add(jp);

5. Componentes de uso común

1. Componente de etiqueta JLabel

        Mostrar texto o información solicitada

Método de construcción

JLabel jlabel = new JLabel();
JLabel jlabel = new JLabel(String str);  //设置文本
JLabel jlabel = new JLabel(Icon icon);  //设置图标
JLabel jlabel = new JLabel(String str,int aligment);  //设置文本+水平对齐方式(LEFT、CENTER、RIGHT)
JLabel jlabel = new JLabel(String str,Icon icon,int aligment);  //设置文本+图标+水平对齐方式
JFrame jf = new JFrame("标题");
jf.setBounds(400,300,1000,1000);
JLabel jl = new JLabel();
jl.setText("账号:");
jl.setFont(new Font("宋体",Font.PLAIN,30));  //设置标签的字体,尺寸等
jf.add(jl);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

2. Componente del botón JButton

        Método de construcción

JButton jb = new JButton();
JButton jb = new JButton(String text);  //指定文字
JButton jb = new JButton(Icon icon);  //指定图标
JButton jb = new JButton(String text,Icon icon);  //指定文字+图标

        Otros metodos

setEnabled(boolean n);  //设置按钮是否可用
setBorderPainted(boolean n);  //设置边界是否显示,默认是显示的

       

        (1) Componente del botón de radio

               JRadioButton es un botón de opción y el botón de opción debe agregarse al grupo de botones ButtonGroup.

                

                Método de construcción

JRadioButton jrb = new JRadioButton();  
JRadioButton jrb = new JRadioButton(String text);  //指定文字
JRadioButton jrb = new JRadioButton(String text,boolean selected);  //指定文字+是否选中

                Ejemplo

JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);
JRadioButton jrb = new JRadioButton("男");
JRadioButton jrb1 = new JRadioButton("女");
ButtonGroup bg = new ButtonGroup();
bg.add(jrb);
bg.add(jrb1);
jf.add(jrb);
jf.add(jrb1);

        

        (2) Marque la casilla del componente

                JCheckBox

                

                Método de construcción

JCheckBox jb = new JCheckBox();
JCheckBox jb = new JCheckBox(String text,boolean checked);  //指定文字+是否被选中

                Ejemplo

JFrame jf = new JFrame("标题");
jf.setBounds(400,300,1000,1000);
JCheckBox jcb1 = new JCheckBox("篮球");
JCheckBox jcb1 = new JCheckBox("游戏");
JCheckBox jcb1 = new JCheckBox("睡觉");
JCheckBox jcb1 = new JCheckBox("学习");
jf.add(jcb1);
jf.add(jcb2);
jf.add(jcb3);
jf.add(jcb4);

jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        (3) Componente del cuadro de lista desplegable

                

                Método de construcción

JComboBox jb = new JComboBox();

//addItem添加下拉内容

                Ejemplo

JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);

JComboBox box = new JComboBox();
box.addItem("--请选择你的学历--");
box.addItem("高中");
box.addItem("大学");
box.addItem("研究生");
jf.add(box);

jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

3. Barra de menú

        (1) Crear barra de menú: JMenuBar

        (2) Crear menú: JMenu

        (3) Crear elemento de menú: JMenuItem

//菜单项依附于菜单,菜单依附于菜单栏

JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);

JMenuBar bar = new JMenuBar();
JMenu menu = new JMenu("菜单1");
JMenuItem item1 = new JMenuItem("菜单项1");
JMenuItem item2 = new JMenuItem("菜单项2");
JMenuItem item3 = new JMenuItem("菜单项3");
menu.add(item1);
menu.add(item2);
menu.add(item3);
bar.add(menu);
jf.add(bar);

jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

4. Componente de texto

Constructor

JTextField text = new JTextField();
JTextField text = new JTextField(String text);  //指定默认文字
JTextField text = new JTextField(int fieldWidth);  //指定文本框长度
JTextField text = new JTextField(String text,int fieldWidth);  //指定默认文字+文本框长度

Ejemplo

JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);

JLabel label = new JLabel("账号");
JTextField text = new JTextField("请输入",20);
jf.add(lable);
jf.add(text);

jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

5. Componente del cuadro de contraseña

Constructor

JPasswordField pwd = new JPasswordField();
JPasswordField pwd = new JPasswordField(String str);  //指定默认文字
JPasswordField pwd = new JPasswordField(int fiedWidth);  //指定文本框长度
JPasswordField pwd = new JPasswordField(String str,int fiedWidth);  //指定默认文字+文本框长度

Ejemplo

//setEchoChar('*')  显示回显字符,默认·

JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);

JLabel label = new JLabel("密码:");
JPasswordField text = new JPasswordField("请输入密码",20);
jf.add(lable);
jf.add(text);

jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

6. Componente de campo de texto

Constructor

JTextArea area = new JTextArea();
JTextArea area = new JTextArea(String text);  //指定默认文字
JTextArea area = new JTextArea(int rows,int cols);  //指定行+列

Ejemplo

//setLineWrap(boolean x);  设置文本域是否自动换行

JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);

JTextArea area = new JTextArea(12,20);
jf.add(area);

jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

6. Diseños de uso común

1. Diseño de flujo

        Todos los componentes se descargan uno por uno como una secuencia. Después de llenar una fila, la siguiente fila se pone en cola. De forma predeterminada, cada componente se

Está dispuesto en el centro, pero también se puede ambientar.

Constructor

FlowLayout fl = new FlowLayout();
FlowLayout fl = new FlowLayout(int aligment);  //设置对齐方式(默认FlowLayout.CENTER居中)

/**
*  aligment取值:
*  FlowLayout.LEFT = 0
*  FlowLayout.CENTER = 1
*  FlowLayout.RIGHT = 2
*/

Ejemplo

//一般都通过setLayout方法来设置布局,例如jf.setLayout(new FlowLayout(FlowLayout.LEFT));

JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);

JButton jb = new JButton("A");
JButton jb1 = new JButton("B");
jf.add(jb);
jf.add(jb1);

jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

2. Diseño de borde Diseño de borde

        El diseño del borde es el método de gestión de diseño predeterminado. El diseño del borde divide el contenedor en Norte (BorderLayout.NORTH) y Sur.

(BorderLayout.SORTH), Este (BorderLayout.EAST), Oeste (BorderLayout.WAST), Medio

(BorderLayout.CENTER) 5 áreas.

Ejemplo

//再给JFrame容器add组件的时候,指定边界

JFrame jf = new JFrame("标题");
jf.setLayout(new BorderLayout());
jf.setBounds(400,300,1000,1000);

JButton jb = new JButton("中部");
JButton jb1 = new JButton("西部");
jf.add(jb,BorderLayout.CENTER);
jf.add(jb1,BorderLayout.WEST);

jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

3. Diseño de cuadrícula

        El diseño de cuadrícula divide los contenedores en cuadrículas. Todos los componentes están organizados en filas y columnas, y el número de cuadrículas está determinado por el número de filas y columnas.

Ciertamente. Cada componente completará los espacios, cambiará el tamaño del contenedor y el tamaño del componente cambiará en consecuencia.

Método de construcción

GridLayout gl = new GridLayout(int rows,int columns);  //指定行数+列数
GridLayout gl = new GridLayout(int rows,int columns,int horizGap,int vertGap)  //指定行数+列数+水平间隔+垂直间隔

Ejemplo

JFrame jf = new JFrame("标题");
jf.setLayout(new GridLayout(2,2));
jf.setBounds(400,300,1000,1000);

JButton jb = new JButton("A");
JButton jb1 = new JButton("B");
JButton jb2 = new JButton("C");
JButton jb3 = new JButton("D");
jf.add(jb);
jf.add(jb1);
jf.add(jb2);
jf.add(jb3);

jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

7. Oyentes de eventos de uso común

evento Interfaz de escucha método
oyente de eventos de acción Evento de acción Oyente de acción

addActionListener();

eliminarActionListener();

oyente de eventos de enfoque Evento de enfoque Oyente de enfoque

addFocusListener();

eliminarFocusListener();

        Pasos para el uso

(1) Cree un nuevo componente (como un botón)

(2) Agregue el componente al contenedor correspondiente (como JFrame)

(3) Registre un oyente para escuchar los eventos generados por la fuente del evento (como usar ActionListener para responder cuando el usuario hace clic en un botón)

(4) Defina el método para manejar el evento (como definir el método correspondiente en actionPerformed en ActionListener)

        Ejemplo

JFrame jf = new JFrame("标题");
jf.setLayout(new FlowLayout());
jf.setBounds(400,300,1000,1000);

JButton jb = new JButton("A");
    jb.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){
               此处重写方法,要让此按钮做什么
            }
        });

jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

8. JTable

        JTable es un componente de la tabla y debe considerarse como dos partes, el título de la tabla y el contenido de la tabla, pero el funcionamiento real de estas dos partes

es el objeto DefaultTableModel, y una vez completada la operación, el objeto JTable debe colocarse en el panel JPanel o JScrollPane, etc.

contenedor, por lo que su relación jerárquica es:

        JScrollPane

                JTable

                        Modelo de tabla predeterminado

Supongo que te gusta

Origin blog.csdn.net/weixin_64709241/article/details/125098387
Recomendado
Clasificación